Add webgames
Christian Krinitsin mail@krinitsin.com
Mon, 26 Jan 2026 19:44:08 +0100
22 files changed,
4084 insertions(+),
0 deletions(-)
jump to
A
games/fruity-sorter/Bombs Sorter.audio.worklet.js
@@ -0,0 +1,211 @@
+/*************************************************************************/ +/* audio.worklet.js */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +class RingBuffer { + constructor(p_buffer, p_state, p_threads) { + this.buffer = p_buffer; + this.avail = p_state; + this.threads = p_threads; + this.rpos = 0; + this.wpos = 0; + } + + data_left() { + return this.threads ? Atomics.load(this.avail, 0) : this.avail; + } + + space_left() { + return this.buffer.length - this.data_left(); + } + + read(output) { + const size = this.buffer.length; + let from = 0; + let to_write = output.length; + if (this.rpos + to_write > size) { + const high = size - this.rpos; + output.set(this.buffer.subarray(this.rpos, size)); + from = high; + to_write -= high; + this.rpos = 0; + } + if (to_write) { + output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from); + } + this.rpos += to_write; + if (this.threads) { + Atomics.add(this.avail, 0, -output.length); + Atomics.notify(this.avail, 0); + } else { + this.avail -= output.length; + } + } + + write(p_buffer) { + const to_write = p_buffer.length; + const mw = this.buffer.length - this.wpos; + if (mw >= to_write) { + this.buffer.set(p_buffer, this.wpos); + this.wpos += to_write; + if (mw === to_write) { + this.wpos = 0; + } + } else { + const high = p_buffer.subarray(0, mw); + const low = p_buffer.subarray(mw); + this.buffer.set(high, this.wpos); + this.buffer.set(low); + this.wpos = low.length; + } + if (this.threads) { + Atomics.add(this.avail, 0, to_write); + Atomics.notify(this.avail, 0); + } else { + this.avail += to_write; + } + } +} + +class GodotProcessor extends AudioWorkletProcessor { + constructor() { + super(); + this.threads = false; + this.running = true; + this.lock = null; + this.notifier = null; + this.output = null; + this.output_buffer = new Float32Array(); + this.input = null; + this.input_buffer = new Float32Array(); + this.port.onmessage = (event) => { + const cmd = event.data['cmd']; + const data = event.data['data']; + this.parse_message(cmd, data); + }; + } + + process_notify() { + if (this.notifier) { + Atomics.add(this.notifier, 0, 1); + Atomics.notify(this.notifier, 0); + } + } + + parse_message(p_cmd, p_data) { + if (p_cmd === 'start' && p_data) { + const state = p_data[0]; + let idx = 0; + this.threads = true; + this.lock = state.subarray(idx, ++idx); + this.notifier = state.subarray(idx, ++idx); + const avail_in = state.subarray(idx, ++idx); + const avail_out = state.subarray(idx, ++idx); + this.input = new RingBuffer(p_data[1], avail_in, true); + this.output = new RingBuffer(p_data[2], avail_out, true); + } else if (p_cmd === 'stop') { + this.running = false; + this.output = null; + this.input = null; + } else if (p_cmd === 'start_nothreads') { + this.output = new RingBuffer(p_data[0], p_data[0].length, false); + } else if (p_cmd === 'chunk') { + this.output.write(p_data); + } + } + + static array_has_data(arr) { + return arr.length && arr[0].length && arr[0][0].length; + } + + process(inputs, outputs, parameters) { + if (!this.running) { + return false; // Stop processing. + } + if (this.output === null) { + return true; // Not ready yet, keep processing. + } + const process_input = GodotProcessor.array_has_data(inputs); + if (process_input) { + const input = inputs[0]; + const chunk = input[0].length * input.length; + if (this.input_buffer.length !== chunk) { + this.input_buffer = new Float32Array(chunk); + } + if (!this.threads) { + GodotProcessor.write_input(this.input_buffer, input); + this.port.postMessage({ 'cmd': 'input', 'data': this.input_buffer }); + } else if (this.input.space_left() >= chunk) { + GodotProcessor.write_input(this.input_buffer, input); + this.input.write(this.input_buffer); + } else { + this.port.postMessage('Input buffer is full! Skipping input frame.'); + } + } + const process_output = GodotProcessor.array_has_data(outputs); + if (process_output) { + const output = outputs[0]; + const chunk = output[0].length * output.length; + if (this.output_buffer.length !== chunk) { + this.output_buffer = new Float32Array(chunk); + } + if (this.output.data_left() >= chunk) { + this.output.read(this.output_buffer); + GodotProcessor.write_output(output, this.output_buffer); + if (!this.threads) { + this.port.postMessage({ 'cmd': 'read', 'data': chunk }); + } + } else { + this.port.postMessage('Output buffer has not enough frames! Skipping output frame.'); + } + } + this.process_notify(); + return true; + } + + static write_output(dest, source) { + const channels = dest.length; + for (let ch = 0; ch < channels; ch++) { + for (let sample = 0; sample < dest[ch].length; sample++) { + dest[ch][sample] = source[sample * channels + ch]; + } + } + } + + static write_input(dest, source) { + const channels = source.length; + for (let ch = 0; ch < channels; ch++) { + for (let sample = 0; sample < source[ch].length; sample++) { + dest[sample * channels + ch] = source[ch][sample]; + } + } + } +} + +registerProcessor('godot-processor', GodotProcessor);
A
games/fruity-sorter/Bombs Sorter.js
@@ -0,0 +1,796 @@
+ +var Godot = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(Godot) { + Godot = Godot || {}; + +var Module=typeof Godot!="undefined"?Godot:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});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 scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;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=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}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}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||false;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}function getCFunc(ident){var func=Module["_"+ident];return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(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":function(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;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}function cwrap(ident,returnType,argTypes,opts){argTypes=argTypes||[];var numericArgs=argTypes.every(function(type){return type==="number"});var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}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))}else{var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>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<str.length;++i){var u=str.charCodeAt(i);if(u>=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;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){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||33554432;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}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(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){___funcs_on_exit();callRuntimeCallbacks(__ATEXIT__);FS.quit();TTY.shutdown();IDBFS.quit();runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="godot.javascript.opt.debug.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{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={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["ek"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["sk"];addOnInit(Module["asm"]["fk"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){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);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&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);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function getValue(ptr,type="i8"){if(type.endsWith("*"))type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return Number(HEAPF64[ptr>>3]);default:abort("invalid type for getValue: "+type)}return null}function getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}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 ___call_sighandler(fp,sig){getWasmTableEntry(fp)(sig)}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};function asyncLoad(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency("al "+url):"";readAsync(url,function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)}var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(this.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>{return PATH.join2(root,p)}}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={"timestamp":stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(this.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={"timestamp":cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{"timestamp":stat.mtime,"mode":stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{"timestamp":stat.mtime,"mode":stat.mode,"contents":node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>{callback(null,event.target.result)};req.onerror=e=>{callback(this.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(this.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(this.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=e=>{done(this.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count+1});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev:(path,mode,dev)=>{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;_fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:(parent,name,input,output)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:(stream,buffer,offset,length,pos)=>{for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile:obj=>{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall__newselect(nfds,readfds,writefds,exceptfds,timeout){try{var total=0;var srcReadLow=readfds?HEAP32[readfds>>2]:0,srcReadHigh=readfds?HEAP32[readfds+4>>2]:0;var srcWriteLow=writefds?HEAP32[writefds>>2]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>2]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>2]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>2]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>2]:0)|(writefds?HEAP32[writefds>>2]:0)|(exceptfds?HEAP32[exceptfds>>2]:0);var allHigh=(readfds?HEAP32[readfds+4>>2]:0)|(writefds?HEAP32[writefds+4>>2]:0)|(exceptfds?HEAP32[exceptfds+4>>2]:0);var check=function(fd,low,high,val){return fd<32?low&val:high&val};for(var fd=0;fd<nfds;fd++){var mask=1<<fd%32;if(!check(fd,allLow,allHigh,mask)){continue}var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var flags=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){flags=stream.stream_ops.poll(stream)}if(flags&1&&check(fd,srcReadLow,srcReadHigh,mask)){fd<32?dstReadLow=dstReadLow|mask:dstReadHigh=dstReadHigh|mask;total++}if(flags&4&&check(fd,srcWriteLow,srcWriteHigh,mask)){fd<32?dstWriteLow=dstWriteLow|mask:dstWriteHigh=dstWriteHigh|mask;total++}if(flags&2&&check(fd,srcExceptLow,srcExceptHigh,mask)){fd<32?dstExceptLow=dstExceptLow|mask:dstExceptHigh=dstExceptHigh|mask;total++}}if(readfds){HEAP32[readfds>>2]=dstReadLow;HEAP32[readfds+4>>2]=dstReadHigh}if(writefds){HEAP32[writefds>>2]=dstWriteLow;HEAP32[writefds+4>>2]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>2]=dstExceptLow;HEAP32[exceptfds+4>>2]=dstExceptHigh}return total}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}var SOCKFS={mount:function(mount){Module["websocket"]=Module["websocket"]&&"object"===typeof Module["websocket"]?Module["websocket"]:{};Module["websocket"]._callbacks={};Module["websocket"]["on"]=function(event,callback){if("function"===typeof callback){this._callbacks[event]=callback}return this};Module["websocket"].emit=function(event,param){if("function"===typeof this._callbacks[event]){this._callbacks[event].call(this,param)}};return FS.createNode(null,"/",16384|511,0)},createSocket:function(family,type,protocol){type&=~526336;var streaming=type==1;if(streaming&&protocol&&protocol!=6){throw new FS.ErrnoError(66)}var sock={family:family,type:type,protocol:protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket:function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll:function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl:function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read:function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write:function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close:function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname:function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return"socket["+SOCKFS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(sock,addr,port){var ws;if(typeof addr=="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module["websocket"]&&"object"===typeof Module["websocket"];var url="ws:#".replace("#","//");if(runtimeConfig){if("string"===typeof Module["websocket"]["url"]){url=Module["websocket"]["url"]}}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}var subProtocols="binary";if(runtimeConfig){if("string"===typeof Module["websocket"]["subprotocol"]){subProtocols=Module["websocket"]["subprotocol"]}}var opts=undefined;if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=subProtocols}if(runtimeConfig&&null===Module["websocket"]["subprotocol"]){subProtocols="null";opts=undefined}var WebSocketConstructor;{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(23)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!="undefined"){peer.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer},getPeer:function(sock,addr,port){return sock.peers[addr+":"+port]},addPeer:function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer:function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents:function(sock,peer){var first=true;var handleOpen=function(){Module["websocket"].emit("open",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data=="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}else{data=new Uint8Array(data)}}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module["websocket"].emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,isBinary){if(!isBinary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on("close",function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.on("error",function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){Module["websocket"].emit("close",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}}},poll:function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask},ioctl:function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return 28}},close:function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i<peers.length;i++){var peer=sock.peers[peers[i]];try{peer.socket.close()}catch(e){}SOCKFS.websocket_sock_ops.removePeer(sock,peer)}return 0},bind:function(sock,addr,port){if(typeof sock.saddr!="undefined"||typeof sock.sport!="undefined"){throw new FS.ErrnoError(28)}sock.saddr=addr;sock.sport=port;if(sock.type===2){if(sock.server){sock.server.close();sock.server=null}try{sock.sock_ops.listen(sock,0)}catch(e){if(!(e instanceof FS.ErrnoError))throw e;if(e.errno!==138)throw e}}},connect:function(sock,addr,port){if(sock.server){throw new FS.ErrnoError(138)}if(typeof sock.daddr!="undefined"&&typeof sock.dport!="undefined"){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(dest){if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(7)}else{throw new FS.ErrnoError(30)}}}var peer=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);sock.daddr=peer.addr;sock.dport=peer.port;throw new FS.ErrnoError(26)},listen:function(sock,backlog){if(!ENVIRONMENT_IS_NODE){throw new FS.ErrnoError(138)}},accept:function(listensock){if(!listensock.server||!listensock.pending.length){throw new FS.ErrnoError(28)}var newsock=listensock.pending.shift();newsock.stream.flags=listensock.stream.flags;return newsock},getname:function(sock,peer){var addr,port;if(peer){if(sock.daddr===undefined||sock.dport===undefined){throw new FS.ErrnoError(53)}addr=sock.daddr;port=sock.dport}else{addr=sock.saddr||0;port=sock.sport||0}return{addr:addr,port:port}},sendmsg:function(sock,buffer,offset,length,addr,port){if(sock.type===2){if(addr===undefined||port===undefined){addr=sock.daddr;port=sock.dport}if(addr===undefined||port===undefined){throw new FS.ErrnoError(17)}}else{addr=sock.daddr;port=sock.dport}var dest=SOCKFS.websocket_sock_ops.getPeer(sock,addr,port);if(sock.type===1){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){throw new FS.ErrnoError(53)}else if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(6)}}if(ArrayBuffer.isView(buffer)){offset+=buffer.byteOffset;buffer=buffer.buffer}var data;data=buffer.slice(offset,offset+length);if(sock.type===2){if(!dest||dest.socket.readyState!==dest.socket.OPEN){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){dest=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port)}dest.dgram_send_queue.push(data);return length}}try{dest.socket.send(data);return length}catch(e){throw new FS.ErrnoError(28)}},recvmsg:function(sock,length){if(sock.type===1&&sock.server){throw new FS.ErrnoError(53)}var queued=sock.recv_queue.shift();if(!queued){if(sock.type===1){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(!dest){throw new FS.ErrnoError(53)}else if(dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){return null}else{throw new FS.ErrnoError(6)}}else{throw new FS.ErrnoError(6)}}var queuedLength=queued.data.byteLength||queued.data.length;var queuedOffset=queued.data.byteOffset||0;var queuedBuffer=queued.data.buffer||queued.data;var bytesRead=Math.min(length,queuedLength);var res={buffer:new Uint8Array(queuedBuffer,queuedOffset,bytesRead),addr:queued.addr,port:queued.port};if(sock.type===1&&bytesRead<queuedLength){var bytesRemaining=queuedLength-bytesRead;queued.data=new Uint8Array(queuedBuffer,queuedOffset+bytesRead,bytesRemaining);sock.recv_queue.unshift(queued)}return res}}};function getSocketFromFD(fd){var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function inetPton4(str){var b=str.split(".");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}function jstoi_q(str){return parseInt(str)}function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return[0,0,0,0,0,0,0,0]}if(str.startsWith("::")){str=str.replace("::","Z:")}else{str=str.replace("::",":Z:")}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(":")}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]=="string"){if(words[w]==="Z"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0}offset=z-1}else{parts[w+offset]=_htons(parseInt(words[w],16))}}else{parts[w+offset]=words[w]}}return[parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]}function writeSockaddr(sa,family,addr,port,addrlen){switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>2]=16}HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>2]=28}HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);break;default:return 5}return 0}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,"exceeded max address mappings of 65535");addr="172.29."+(id&255)+"."+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function ___syscall_accept4(fd,addr,addrlen,flags){try{var sock=getSocketFromFD(fd);var newsock=sock.sock_ops.accept(sock);if(addr){var errno=writeSockaddr(addr,newsock.family,DNS.lookup_name(newsock.daddr),newsock.dport,addrlen)}return newsock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function inetNtop4(addr){return(addr&255)+"."+(addr>>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255)}function inetNtop6(ints){var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=":";if(zstart===0)str+=":"}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?":":""}return str}function readSockaddr(sa,salen){var family=HEAP16[sa>>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}function ___syscall_bind(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_connect(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);if(!stream.getdents){stream.getdents=FS.readdir(stream.path)}var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var idx=Math.floor(off/struct_size);while(idx<stream.getdents.length&&pos+struct_size<=count){var id;var type;var name=stream.getdents[idx];if(name==="."){id=stream.node.id;type=4}else if(name===".."){var lookup=FS.lookupPath(stream.path,{parent:true});id=lookup.node.id;type=4}else{var child=FS.lookupNode(stream.node,name);id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8}tempI64=[id>>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getsockname(fd,addr,addrlen){try{err("__syscall_getsockname "+fd);var sock=getSocketFromFD(fd);var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.saddr||"0.0.0.0"),sock.sport,addrlen);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getsockopt(fd,level,optname,optval,optlen){try{var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>2]=sock.error;HEAP32[optlen>>2]=4;sock.error=null;return 0}}return-50}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_listen(fd,backlog){try{var sock=getSocketFromFD(fd);sock.sock_ops.listen(sock,backlog);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~4352;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_poll(fds,nfds,timeout){try{var nonzero=0;for(var i=0;i<nfds;i++){var pollfd=fds+8*i;var fd=HEAP32[pollfd>>2];var events=HEAP16[pollfd+4>>1];var mask=32;var stream=FS.getStream(fd);if(stream){mask=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){mask=stream.stream_ops.poll(stream)}}mask&=events|8|16;if(mask)nonzero++;HEAP16[pollfd+6>>1]=mask}return nonzero}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){try{var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_sendto(fd,message,length,flags,addr,addr_len){try{var sock=getSocketFromFD(fd);var dest=getSocketAddress(addr,addr_len,true);if(!dest){return FS.write(sock.stream,HEAP8,message,length)}else{return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_statfs64(path,size,buf){try{path=SYSCALLS.getStr(path);HEAP32[buf+4>>2]=4096;HEAP32[buf+40>>2]=4096;HEAP32[buf+8>>2]=1e6;HEAP32[buf+12>>2]=5e5;HEAP32[buf+16>>2]=5e5;HEAP32[buf+20>>2]=FS.nextInode;HEAP32[buf+24>>2]=1e6;HEAP32[buf+28>>2]=42;HEAP32[buf+44>>2]=2;HEAP32[buf+36>>2]=255;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_symlink(target,linkpath){try{target=SYSCALLS.getStr(target);linkpath=SYSCALLS.getStr(linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function __dlinit(main_dso_handle){}var dlopenMissingError="To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking";function __dlopen_js(filename,flag){abort(dlopenMissingError)}function __dlsym_js(handle,symbol){abort(dlopenMissingError)}function __emscripten_date_now(){return Date.now()}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function __gmtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset<winterOffset){HEAPU32[tzname>>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort("")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){runtimeKeepalivePush();Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}var _emscripten_get_now;_emscripten_get_now=()=>performance.now();function _emscripten_webgl_do_commit_frame(){if(!GL.currentContext||!GL.currentContext.GLctx){return-3}if(GL.currentContext.defaultFbo){GL.blitOffscreenFramebuffer(GL.currentContext);return 0}if(!GL.currentContext.attributes.explicitSwapControl){return-3}return 0}function _emscripten_webgl_commit_frame(){return _emscripten_webgl_do_commit_frame()}function runtimeKeepalivePush(){runtimeKeepaliveCounter+=1}function _exit(status){exit(status)}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop){runtimeKeepalivePop();maybeExit();return false}return true}Browser.mainLoop.running=false;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}function callUserCallback(func,synchronous){if(runtimeExited||ABORT){return}if(synchronous){func();return}try{func();maybeExit()}catch(e){handleException(e)}}function runtimeKeepalivePop(){runtimeKeepaliveCounter-=1}function safeSetTimeout(func,timeout){runtimeKeepalivePush();return setTimeout(function(){runtimeKeepalivePop();callUserCallback(func)},timeout)}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining<expected){Module["setStatus"](message+" ("+(expected-remaining)+"/"+expected+")")}else{Module["setStatus"](message)}}else{Module["setStatus"]("")}}},runIter:function(func){if(ABORT)return;if(Module["preMainLoop"]){var preRet=Module["preMainLoop"]();if(preRet===false){return}}callUserCallback(func);if(Module["postMainLoop"])Module["postMainLoop"]()}},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(!Module["preloadPlugins"])Module["preloadPlugins"]=[];if(Browser.initted)return;Browser.initted=true;try{new Blob;Browser.hasBlobConstructor=true}catch(e){Browser.hasBlobConstructor=false;out("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:!Browser.hasBlobConstructor?out("warning: no BlobBuilder"):null;Browser.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:undefined;if(!Module.noImageDecoding&&typeof Browser.URLObject=="undefined"){out("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");Module.noImageDecoding=true}var imagePlugin={};imagePlugin["canHandle"]=function imagePlugin_canHandle(name){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(name)};imagePlugin["handle"]=function imagePlugin_handle(byteArray,name,onload,onerror){var b=null;if(Browser.hasBlobConstructor){try{b=new Blob([byteArray],{type:Browser.getMimetype(name)});if(b.size!==byteArray.length){b=new Blob([new Uint8Array(byteArray).buffer],{type:Browser.getMimetype(name)})}}catch(e){warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}}if(!b){var bb=new Browser.BlobBuilder;bb.append(new Uint8Array(byteArray).buffer);b=bb.getBlob()}var url=Browser.URLObject.createObjectURL(b);var img=new Image;img.onload=()=>{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;preloadedAudios[name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",function(){finish(audio)},false);audio.onerror=function audio_onerror(event){if(done)return;out("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i<data.length;i++){leftchar=leftchar<<8|data[i];leftbits+=8;while(leftbits>=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},handledByPreloadPlugin:function(byteArray,fullname,finish,onerror){Browser.init();var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){runtimeKeepalivePush();return Browser.requestAnimationFrame(function(){runtimeKeepalivePop();callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h<Module["forcedAspectRatio"]){w=Math.round(h*Module["forcedAspectRatio"])}else{h=Math.round(w/Module["forcedAspectRatio"])}}if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvas.parentNode&&typeof screen!="undefined"){var factor=Math.min(screen.width/w,screen.height/h);w=Math.round(w*factor);h=Math.round(h*factor)}if(Browser.resizeCanvas){if(canvas.width!=w)canvas.width=w;if(canvas.height!=h)canvas.height=h;if(typeof canvas.style!="undefined"){canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}else{if(canvas.width!=wNative)canvas.width=wNative;if(canvas.height!=hNative)canvas.height=hNative;if(typeof canvas.style!="undefined"){if(w!=wNative||h!=hNative){canvas.style.setProperty("width",w+"px","important");canvas.style.setProperty("height",h+"px","important")}else{canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}}}};function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_force_exit(status){noExitRuntime=false;runtimeKeepaliveCounter=0;exit(status)}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i<ret;i++){table[i]=null}return ret},getSource:function(shader,count,string,length){var source="";for(var i=0;i<count;++i){var len=length?HEAP32[length+i*4>>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(webGLContextAttributes.renderViaOffscreenBackBuffer)webGLContextAttributes["preserveDrawingBuffer"]=true;if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},enableOffscreenFramebufferAttributes:function(webGLContextAttributes){webGLContextAttributes.renderViaOffscreenBackBuffer=true;webGLContextAttributes.preserveDrawingBuffer=true},createOffscreenFramebuffer:function(context){var gl=context.GLctx;var fbo=gl.createFramebuffer();gl.bindFramebuffer(36160,fbo);context.defaultFbo=fbo;context.defaultFboForbidBlitFramebuffer=false;if(gl.getContextAttributes().antialias){context.defaultFboForbidBlitFramebuffer=true}else{var firefoxMatch=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(firefoxMatch!=null){var firefoxVersion=firefoxMatch[1];context.defaultFboForbidBlitFramebuffer=firefoxVersion<67}}context.defaultColorTarget=gl.createTexture();context.defaultDepthTarget=gl.createRenderbuffer();GL.resizeOffscreenFramebuffer(context);gl.bindTexture(3553,context.defaultColorTarget);gl.texParameteri(3553,10241,9728);gl.texParameteri(3553,10240,9728);gl.texParameteri(3553,10242,33071);gl.texParameteri(3553,10243,33071);gl.texImage2D(3553,0,6408,gl.canvas.width,gl.canvas.height,0,6408,5121,null);gl.framebufferTexture2D(36160,36064,3553,context.defaultColorTarget,0);gl.bindTexture(3553,null);var depthTarget=gl.createRenderbuffer();gl.bindRenderbuffer(36161,context.defaultDepthTarget);gl.renderbufferStorage(36161,33189,gl.canvas.width,gl.canvas.height);gl.framebufferRenderbuffer(36160,36096,36161,context.defaultDepthTarget);gl.bindRenderbuffer(36161,null);var vertices=[-1,-1,-1,1,1,-1,1,1];var vb=gl.createBuffer();gl.bindBuffer(34962,vb);gl.bufferData(34962,new Float32Array(vertices),35044);gl.bindBuffer(34962,null);context.blitVB=vb;var vsCode="attribute vec2 pos;"+"varying lowp vec2 tex;"+"void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }";var vs=gl.createShader(35633);gl.shaderSource(vs,vsCode);gl.compileShader(vs);var fsCode="varying lowp vec2 tex;"+"uniform sampler2D sampler;"+"void main() { gl_FragColor = texture2D(sampler, tex); }";var fs=gl.createShader(35632);gl.shaderSource(fs,fsCode);gl.compileShader(fs);var blitProgram=gl.createProgram();gl.attachShader(blitProgram,vs);gl.attachShader(blitProgram,fs);gl.linkProgram(blitProgram);context.blitProgram=blitProgram;context.blitPosLoc=gl.getAttribLocation(blitProgram,"pos");gl.useProgram(blitProgram);gl.uniform1i(gl.getUniformLocation(blitProgram,"sampler"),0);gl.useProgram(null);context.defaultVao=undefined;if(gl.createVertexArray){context.defaultVao=gl.createVertexArray();gl.bindVertexArray(context.defaultVao);gl.enableVertexAttribArray(context.blitPosLoc);gl.bindVertexArray(null)}},resizeOffscreenFramebuffer:function(context){var gl=context.GLctx;if(context.defaultColorTarget){var prevTextureBinding=gl.getParameter(32873);gl.bindTexture(3553,context.defaultColorTarget);gl.texImage2D(3553,0,6408,gl.drawingBufferWidth,gl.drawingBufferHeight,0,6408,5121,null);gl.bindTexture(3553,prevTextureBinding)}if(context.defaultDepthTarget){var prevRenderBufferBinding=gl.getParameter(36007);gl.bindRenderbuffer(36161,context.defaultDepthTarget);gl.renderbufferStorage(36161,33189,gl.drawingBufferWidth,gl.drawingBufferHeight);gl.bindRenderbuffer(36161,prevRenderBufferBinding)}},blitOffscreenFramebuffer:function(context){var gl=context.GLctx;var prevScissorTest=gl.getParameter(3089);if(prevScissorTest)gl.disable(3089);var prevFbo=gl.getParameter(36006);if(gl.blitFramebuffer&&!context.defaultFboForbidBlitFramebuffer){gl.bindFramebuffer(36008,context.defaultFbo);gl.bindFramebuffer(36009,null);gl.blitFramebuffer(0,0,gl.canvas.width,gl.canvas.height,0,0,gl.canvas.width,gl.canvas.height,16384,9728)}else{gl.bindFramebuffer(36160,null);var prevProgram=gl.getParameter(35725);gl.useProgram(context.blitProgram);var prevVB=gl.getParameter(34964);gl.bindBuffer(34962,context.blitVB);var prevActiveTexture=gl.getParameter(34016);gl.activeTexture(33984);var prevTextureBinding=gl.getParameter(32873);gl.bindTexture(3553,context.defaultColorTarget);var prevBlend=gl.getParameter(3042);if(prevBlend)gl.disable(3042);var prevCullFace=gl.getParameter(2884);if(prevCullFace)gl.disable(2884);var prevDepthTest=gl.getParameter(2929);if(prevDepthTest)gl.disable(2929);var prevStencilTest=gl.getParameter(2960);if(prevStencilTest)gl.disable(2960);function draw(){gl.vertexAttribPointer(context.blitPosLoc,2,5126,false,0,0);gl.drawArrays(5,0,4)}if(context.defaultVao){var prevVAO=gl.getParameter(34229);gl.bindVertexArray(context.defaultVao);draw();gl.bindVertexArray(prevVAO)}else{var prevVertexAttribPointer={buffer:gl.getVertexAttrib(context.blitPosLoc,34975),size:gl.getVertexAttrib(context.blitPosLoc,34339),stride:gl.getVertexAttrib(context.blitPosLoc,34340),type:gl.getVertexAttrib(context.blitPosLoc,34341),normalized:gl.getVertexAttrib(context.blitPosLoc,34922),pointer:gl.getVertexAttribOffset(context.blitPosLoc,34373)};var maxVertexAttribs=gl.getParameter(34921);var prevVertexAttribEnables=[];for(var i=0;i<maxVertexAttribs;++i){var prevEnabled=gl.getVertexAttrib(i,34338);var wantEnabled=i==context.blitPosLoc;if(prevEnabled&&!wantEnabled){gl.disableVertexAttribArray(i)}if(!prevEnabled&&wantEnabled){gl.enableVertexAttribArray(i)}prevVertexAttribEnables[i]=prevEnabled}draw();for(var i=0;i<maxVertexAttribs;++i){var prevEnabled=prevVertexAttribEnables[i];var nowEnabled=i==context.blitPosLoc;if(prevEnabled&&!nowEnabled){gl.enableVertexAttribArray(i)}if(!prevEnabled&&nowEnabled){gl.disableVertexAttribArray(i)}}gl.bindBuffer(34962,prevVertexAttribPointer.buffer);gl.vertexAttribPointer(context.blitPosLoc,prevVertexAttribPointer.size,prevVertexAttribPointer.type,prevVertexAttribPointer.normalized,prevVertexAttribPointer.stride,prevVertexAttribPointer.offset)}if(prevStencilTest)gl.enable(2960);if(prevDepthTest)gl.enable(2929);if(prevCullFace)gl.enable(2884);if(prevBlend)gl.enable(3042);gl.bindTexture(3553,prevTextureBinding);gl.activeTexture(prevActiveTexture);gl.bindBuffer(34962,prevVB);gl.useProgram(prevProgram)}gl.bindFramebuffer(36160,prevFbo);if(prevScissorTest)gl.enable(3089)},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}if(webGLContextAttributes.renderViaOffscreenBackBuffer)GL.createOffscreenFramebuffer(context);return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents=="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);__webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);__webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQuery(target,id){GLctx["beginQuery"](target,GL.queries[id])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBeginTransformFeedback(x0){GLctx["beginTransformFeedback"](x0)}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindBufferBase(target,index,buffer){GLctx["bindBufferBase"](target,index,GL.buffers[buffer])}function _emscripten_glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx["bindBufferRange"](target,index,GL.buffers[buffer],offset,ptrsize)}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,framebuffer?GL.framebuffers[framebuffer]:GL.currentContext.defaultFbo)}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindSampler(unit,sampler){GLctx["bindSampler"](unit,GL.samplers[sampler])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindTransformFeedback(target,id){GLctx["bindTransformFeedback"](target,GL.transformFeedbacks[id])}function _emscripten_glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _emscripten_glBufferData(target,size,data,usage){if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _emscripten_glBufferSubData(target,offset,size,data){if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearBufferfi(x0,x1,x2,x3){GLctx["clearBufferfi"](x0,x1,x2,x3)}function _emscripten_glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _emscripten_glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function _emscripten_glClearBufferuiv(buffer,drawbuffer,value){GLctx["clearBufferuiv"](buffer,drawbuffer,HEAPU32,value>>2)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _emscripten_glClientWaitSync(sync,flags,timeoutLo,timeoutHi){return GLctx.clientWaitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _emscripten_glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx["copyTexSubImage3D"](x0,x1,x2,x3,x4,x5,x6,x7,x8)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i<n;i++){var id=HEAP32[buffers+i*4>>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i<n;++i){var id=HEAP32[framebuffers+i*4>>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueries(n,ids){for(var i=0;i<n;i++){var id=HEAP32[ids+i*4>>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i<n;i++){var id=HEAP32[ids+i*4>>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i<n;i++){var id=HEAP32[renderbuffers+i*4>>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteSamplers(n,samplers){for(var i=0;i<n;i++){var id=HEAP32[samplers+i*4>>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i<n;i++){var id=HEAP32[textures+i*4>>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteTransformFeedbacks(n,ids){for(var i=0;i<n;i++){var id=HEAP32[ids+i*4>>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx["deleteTransformFeedback"](transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}}function _emscripten_glDeleteVertexArrays(n,vaos){for(var i=0;i<n;i++){var id=HEAP32[vaos+i*4>>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i<n;i++){var id=HEAP32[vaos+i*4>>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersEXT(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQuery(x0){GLctx["endQuery"](x0)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glEndTransformFeedback(){GLctx["endTransformFeedback"]()}function _emscripten_glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}else{return 0}}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i<n;i++){var buffer=GLctx[createFunction]();var id=buffer&&GL.getNewId(objectTable);if(buffer){buffer.name=id;objectTable[id]=buffer}else{GL.recordError(1282)}HEAP32[buffers+i*4>>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i<n;i++){var query=GLctx.disjointTimerQueryExt["createQueryEXT"]();if(!query){GL.recordError(1282);while(i<n)HEAP32[ids+i++*4>>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)}function _emscripten_glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniformBlockName(program,uniformBlockIndex,bufSize,length,uniformBlockName){program=GL.programs[program];var result=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx["getActiveUniformBlockParameter"](program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i<result.length;i++){HEAP32[params+i*4>>2]=result[i]}}else{HEAP32[params>>2]=result}}function _emscripten_glGetActiveUniformsiv(program,uniformCount,uniformIndices,pname,params){if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i<uniformCount;i++){ids.push(HEAP32[uniformIndices+i*4>>2])}var result=GLctx["getActiveUniforms"](program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i<len;i++){HEAP32[params+i*4>>2]=result[i]}}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i<len;++i){var id=GL.shaders.indexOf(result[i]);HEAP32[shaders+i*4>>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i<result.length;++i){switch(type){case 0:HEAP32[p+i*4>>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFragDataLocation(program,name){return GLctx["getFragDataLocation"](GL.programs[program],UTF8ToString(name))}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function emscriptenWebGLGetIndexed(target,index,data,type){if(!data){GL.recordError(1281);return}var result=GLctx["getIndexedParameter"](target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data>>0]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}}function _emscripten_glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}function _emscripten_glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}function _emscripten_glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetInternalformativ(target,internalformat,pname,bufSize,params){if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx["getInternalformatParameter"](target,internalformat,pname);if(ret===null)return;for(var i=0;i<ret.length&&i<bufSize;++i){HEAP32[params+i*4>>2]=ret[i]}}function _emscripten_glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i<GLctx.getProgramParameter(program,35718);++i){program.maxUniformLength=Math.max(program.maxUniformLength,GLctx.getActiveUniform(program,i).name.length+1)}}HEAP32[p>>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i<GLctx.getProgramParameter(program,35721);++i){program.maxAttributeLength=Math.max(program.maxAttributeLength,GLctx.getActiveAttrib(program,i).name.length+1)}}HEAP32[p>>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i<GLctx.getProgramParameter(program,35382);++i){program.maxUniformBlockNameLength=Math.max(program.maxUniformBlockNameLength,GLctx.getActiveUniformBlockName(program,i).length+1)}}HEAP32[p>>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx["getQueryParameter"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx["getQueryParameter"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx["getQuery"](target,pname)}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx["getSamplerParameter"](GL.samplers[sampler],pname)}function _emscripten_glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx["getSamplerParameter"](GL.samplers[sampler],pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _emscripten_glGetSynciv(sync,pname,bufSize,length,values){if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTransformFeedbackVarying(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx["getTransformFeedbackVarying"](program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _emscripten_glGetUniformIndices(program,uniformCount,uniformNames,uniformIndices){if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i<uniformCount;i++)names.push(UTF8ToString(HEAP32[uniformNames+i*4>>2]));var result=GLctx["getUniformIndices"](program,names);if(!result)return;var len=result.length;for(var i=0;i<len;i++){HEAP32[uniformIndices+i*4>>2]=result[i]}}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i<GLctx.getProgramParameter(program,35718);++i){var u=GLctx.getActiveUniform(program,i);var nm=u.name;var sz=u.size;var lb=webglGetLeftBracePos(nm);var arrayName=lb>0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j<sz;++j){uniformLocsById[id]=j;program.uniformArrayNamesById[id++]=arrayName}}}}function _emscripten_glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex<sizeAndId[0]){arrayIndex+=sizeAndId[1];if(uniformLocsById[arrayIndex]=uniformLocsById[arrayIndex]||GLctx.getUniformLocation(program,name)){return arrayIndex}}}else{GL.recordError(1281)}return-1}function webglGetUniformLocation(location){var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i<data.length;i++){switch(type){case 0:HEAP32[params+i*4>>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i<data.length;i++){switch(type){case 0:HEAP32[params+i*4>>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribIuiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i<numAttachments;i++){list[i]=HEAP32[attachments+i*4>>2]}GLctx["invalidateFramebuffer"](target,list)}function _emscripten_glInvalidateSubFramebuffer(target,numAttachments,attachments,x,y,width,height){var list=tempFixedLengthArray[numAttachments];for(var i=0;i<numAttachments;i++){list[i]=HEAP32[attachments+i*4>>2]}GLctx["invalidateSubFramebuffer"](target,list,x,y,width,height)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx["isQuery"](query)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx["isSampler"](sampler)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsSync(sync){return GLctx.isSync(GL.syncs[sync])}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsTransformFeedback(id){return GLctx["isTransformFeedback"](GL.transformFeedbacks[id])}function _emscripten_glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPauseTransformFeedback(){GLctx["pauseTransformFeedback"]()}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function _emscripten_glProgramParameteri(program,pname,value){GL.recordError(1280)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function _emscripten_glReadBuffer(x0){GLctx["readBuffer"](x0)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<<shift;var sizePerPixel=__colorChannelsInGlTextureFormat(format)*byteSize;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);return heap.subarray(pixels>>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _emscripten_glResumeTransformFeedback(){GLctx["resumeTransformFeedback"]()}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,null)}}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _emscripten_glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _emscripten_glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i<count;i++)vars.push(UTF8ToString(HEAP32[varyings+i*4>>2]));GLctx["transformFeedbackVaryings"](program,vars,bufferMode)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count);return}if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i<count;++i){view[i]=HEAPF32[value+4*i>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i<count;++i){view[i]=HEAP32[value+4*i>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1ui(location,v0){GLctx.uniform1ui(webglGetUniformLocation(location),v0)}function _emscripten_glUniform1uiv(location,count,value){count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2ui(location,v0,v1){GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2uiv(location,count,value){count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3);return}if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3uiv(location,count,value){count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4uiv(location,count,value){count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)}function _emscripten_glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix2x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix2x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix3x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix4x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx["vertexAttribI4i"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}function _emscripten_glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}function _emscripten_glVertexAttribIPointer(index,size,type,stride,ptr){GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_glWaitSync(sync,flags,timeoutLo,timeoutHi){GLctx.waitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence<y.precedence})},removeDeferredCalls:function(targetFunction){for(var i=0;i<JSEvents.deferredCalls.length;++i){if(JSEvents.deferredCalls[i].targetFunction==targetFunction){JSEvents.deferredCalls.splice(i,1);--i}}},canPerformEventHandlerRequests:function(){return JSEvents.inEventHandler&&JSEvents.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(!JSEvents.canPerformEventHandlerRequests()){return}for(var i=0;i<JSEvents.deferredCalls.length;++i){var call=JSEvents.deferredCalls[i];JSEvents.deferredCalls.splice(i,1);--i;call.targetFunction.apply(null,call.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(target,eventTypeString){for(var i=0;i<JSEvents.eventHandlers.length;++i){if(JSEvents.eventHandlers[i].target==target&&(!eventTypeString||eventTypeString==JSEvents.eventHandlers[i].eventTypeString)){JSEvents._removeHandler(i--)}}},_removeHandler:function(i){var h=JSEvents.eventHandlers[i];h.target.removeEventListener(h.eventTypeString,h.eventListenerFunc,h.useCapture);JSEvents.eventHandlers.splice(i,1)},registerOrRemoveHandler:function(eventHandler){var jsEventHandler=function jsEventHandler(event){++JSEvents.inEventHandler;JSEvents.currentEventHandler=eventHandler;JSEvents.runDeferredCalls();eventHandler.handlerFunc(event);JSEvents.runDeferredCalls();--JSEvents.inEventHandler};if(eventHandler.callbackfunc){eventHandler.eventListenerFunc=jsEventHandler;eventHandler.target.addEventListener(eventHandler.eventTypeString,jsEventHandler,eventHandler.useCapture);JSEvents.eventHandlers.push(eventHandler);JSEvents.registerRemoveEventListeners()}else{for(var i=0;i<JSEvents.eventHandlers.length;++i){if(JSEvents.eventHandlers[i].target==eventHandler.target&&JSEvents.eventHandlers[i].eventTypeString==eventHandler.eventTypeString){JSEvents._removeHandler(i--)}}}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl&&!contextAttributes.renderViaOffscreenBackBuffer){contextAttributes.renderViaOffscreenBackBuffer=true}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}function _emscripten_webgl_destroy_context(contextHandle){if(GL.currentContext==contextHandle)GL.currentContext=0;GL.deleteContext(contextHandle)}function _emscripten_webgl_init_context_attributes(attributes){var a=attributes>>2;for(var i=0;i<56>>2;++i){HEAP32[a+i]=0}HEAP32[a+(0>>2)]=HEAP32[a+(4>>2)]=HEAP32[a+(12>>2)]=HEAP32[a+(16>>2)]=HEAP32[a+(32>>2)]=HEAP32[a+(40>>2)]=1}function _emscripten_webgl_make_context_current(contextHandle){var success=GL.makeContextCurrent(contextHandle);return success?0:-5}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _getTempRet0(){return getTempRet0()}function _getaddrinfo(node,service,hint,out){var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>2]=family;HEAP32[ai+8>>2]=type;HEAP32[ai+12>>2]=proto;HEAP32[ai+24>>2]=canon;HEAPU32[ai+20>>2]=sa;if(family===10){HEAP32[ai+16>>2]=28}else{HEAP32[ai+16>>2]=16}HEAP32[ai+28>>2]=0;return ai}if(hint){flags=HEAP32[hint>>2];family=HEAP32[hint+4>>2];type=HEAP32[hint+8>>2];proto=HEAP32[hint+12>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAPU32[out>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>2]=ai;return 0}function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=""+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBeginTransformFeedback(x0){GLctx["beginTransformFeedback"](x0)}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindBufferBase(target,index,buffer){GLctx["bindBufferBase"](target,index,GL.buffers[buffer])}function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,framebuffer?GL.framebuffers[framebuffer]:GL.currentContext.defaultFbo)}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _glBlendEquation(x0){GLctx["blendEquation"](x0)}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _glBufferData(target,size,data,usage){if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glBufferSubData(target,offset,size,data){if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _glClear(x0){GLctx["clear"](x0)}function _glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i<n;i++){var id=HEAP32[buffers+i*4>>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i<n;++i){var id=HEAP32[framebuffers+i*4>>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i<n;i++){var id=HEAP32[renderbuffers+i*4>>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i<n;i++){var id=HEAP32[textures+i*4>>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDeleteVertexArrays(n,vaos){for(var i=0;i<n;i++){var id=HEAP32[vaos+i*4>>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx["drawBuffers"](bufArray)}function _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glEndTransformFeedback(){GLctx["endTransformFeedback"]()}function _glFinish(){GLctx["finish"]()}function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i<GLctx.getProgramParameter(program,35718);++i){program.maxUniformLength=Math.max(program.maxUniformLength,GLctx.getActiveUniform(program,i).name.length+1)}}HEAP32[p>>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i<GLctx.getProgramParameter(program,35721);++i){program.maxAttributeLength=Math.max(program.maxAttributeLength,GLctx.getActiveAttrib(program,i).name.length+1)}}HEAP32[p>>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i<GLctx.getProgramParameter(program,35382);++i){program.maxUniformBlockNameLength=Math.max(program.maxUniformBlockNameLength,GLctx.getActiveUniformBlockName(program,i).length+1)}}HEAP32[p>>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex<sizeAndId[0]){arrayIndex+=sizeAndId[1];if(uniformLocsById[arrayIndex]=uniformLocsById[arrayIndex]||GLctx.getUniformLocation(program,name)){return arrayIndex}}}else{GL.recordError(1281)}return-1}function _glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i<numAttachments;i++){list[i]=HEAP32[attachments+i*4>>2]}GLctx["invalidateFramebuffer"](target,list)}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function _glProgramParameteri(program,pname,value){GL.recordError(1280)}function _glReadBuffer(x0){GLctx["readBuffer"](x0)}function _glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,null)}}function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i<count;i++)vars.push(UTF8ToString(HEAP32[varyings+i*4>>2]));GLctx["transformFeedbackVaryings"](program,vars,bufferMode)}function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i<count;++i){view[i]=HEAP32[value+4*i>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform1ui(location,v0){GLctx.uniform1ui(webglGetUniformLocation(location),v0)}function _glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _glUniform2fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _glUniform2iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _glUniform3fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _glUniformMatrix2fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _glUniformMatrix3fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _glVertexAttribIPointer(index,size,type,stride,ptr){GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}var GodotRuntime={get_func:function(ptr){return wasmTable.get(ptr)},error:function(){err.apply(null,Array.from(arguments))},print:function(){out.apply(null,Array.from(arguments))},malloc:function(p_size){return _malloc(p_size)},free:function(p_ptr){_free(p_ptr)},getHeapValue:function(p_ptr,p_type){return getValue(p_ptr,p_type)},setHeapValue:function(p_ptr,p_value,p_type){setValue(p_ptr,p_value,p_type)},heapSub:function(p_heap,p_ptr,p_len){const bytes=p_heap.BYTES_PER_ELEMENT;return p_heap.subarray(p_ptr/bytes,p_ptr/bytes+p_len)},heapSlice:function(p_heap,p_ptr,p_len){const bytes=p_heap.BYTES_PER_ELEMENT;return p_heap.slice(p_ptr/bytes,p_ptr/bytes+p_len)},heapCopy:function(p_dst,p_src,p_ptr){const bytes=p_src.BYTES_PER_ELEMENT;return p_dst.set(p_src,p_ptr/bytes)},parseString:function(p_ptr){return UTF8ToString(p_ptr)},parseStringArray:function(p_ptr,p_size){const strings=[];const ptrs=GodotRuntime.heapSub(HEAP32,p_ptr,p_size);ptrs.forEach(function(ptr){strings.push(GodotRuntime.parseString(ptr))});return strings},strlen:function(p_str){return lengthBytesUTF8(p_str)},allocString:function(p_str){const length=GodotRuntime.strlen(p_str)+1;const c_str=GodotRuntime.malloc(length);stringToUTF8(p_str,c_str,length);return c_str},allocStringArray:function(p_strings){const size=p_strings.length;const c_ptr=GodotRuntime.malloc(size*4);for(let i=0;i<size;i++){HEAP32[(c_ptr>>2)+i]=GodotRuntime.allocString(p_strings[i])}return c_ptr},freeStringArray:function(p_ptr,p_len){for(let i=0;i<p_len;i++){GodotRuntime.free(HEAP32[(p_ptr>>2)+i])}GodotRuntime.free(p_ptr)},stringToHeap:function(p_str,p_ptr,p_len){return stringToUTF8Array(p_str,HEAP8,p_ptr,p_len)}};var GodotConfig={canvas:null,locale:"en",canvas_resize_policy:2,virtual_keyboard:false,persistent_drops:false,on_execute:null,on_exit:null,init_config:function(p_opts){GodotConfig.canvas_resize_policy=p_opts["canvasResizePolicy"];GodotConfig.canvas=p_opts["canvas"];GodotConfig.locale=p_opts["locale"]||GodotConfig.locale;GodotConfig.virtual_keyboard=p_opts["virtualKeyboard"];GodotConfig.persistent_drops=!!p_opts["persistentDrops"];GodotConfig.on_execute=p_opts["onExecute"];GodotConfig.on_exit=p_opts["onExit"];if(p_opts["focusCanvas"]){GodotConfig.canvas.focus()}},locate_file:function(file){return Module["locateFile"](file)},clear:function(){GodotConfig.canvas=null;GodotConfig.locale="en";GodotConfig.canvas_resize_policy=2;GodotConfig.virtual_keyboard=false;GodotConfig.persistent_drops=false;GodotConfig.on_execute=null;GodotConfig.on_exit=null}};var ERRNO_CODES={};var GodotFS={_idbfs:false,_syncing:false,_mount_points:[],is_persistent:function(){return GodotFS._idbfs?1:0},init:function(persistentPaths){GodotFS._idbfs=false;if(!Array.isArray(persistentPaths)){return Promise.reject(new Error("Persistent paths must be an array"))}if(!persistentPaths.length){return Promise.resolve()}GodotFS._mount_points=persistentPaths.slice();function createRecursive(dir){try{FS.stat(dir)}catch(e){if(e.errno!==ERRNO_CODES.ENOENT){throw e}FS.mkdirTree(dir)}}GodotFS._mount_points.forEach(function(path){createRecursive(path);FS.mount(IDBFS,{},path)});return new Promise(function(resolve,reject){FS.syncfs(true,function(err){if(err){GodotFS._mount_points=[];GodotFS._idbfs=false;GodotRuntime.print(`IndexedDB not available: ${err.message}`)}else{GodotFS._idbfs=true}resolve(err)})})},deinit:function(){GodotFS._mount_points.forEach(function(path){try{FS.unmount(path)}catch(e){GodotRuntime.print("Already unmounted",e)}if(GodotFS._idbfs&&IDBFS.dbs[path]){IDBFS.dbs[path].close();delete IDBFS.dbs[path]}});GodotFS._mount_points=[];GodotFS._idbfs=false;GodotFS._syncing=false},sync:function(){if(GodotFS._syncing){GodotRuntime.error("Already syncing!");return Promise.resolve()}GodotFS._syncing=true;return new Promise(function(resolve,reject){FS.syncfs(false,function(error){if(error){GodotRuntime.error(`Failed to save IDB file system: ${error.message}`)}GodotFS._syncing=false;resolve(error)})})},copy_to_fs:function(path,buffer){const idx=path.lastIndexOf("/");let dir="/";if(idx>0){dir=path.slice(0,idx)}try{FS.stat(dir)}catch(e){if(e.errno!==ERRNO_CODES.ENOENT){throw e}FS.mkdirTree(dir)}FS.writeFile(path,new Uint8Array(buffer))}};var GodotOS={request_quit:function(){},_async_cbs:[],_fs_sync_promise:null,atexit:function(p_promise_cb){GodotOS._async_cbs.push(p_promise_cb)},cleanup:function(exit_code){const cb=GodotConfig.on_exit;GodotFS.deinit();GodotConfig.clear();if(cb){cb(exit_code)}},finish_async:function(callback){GodotOS._fs_sync_promise.then(function(err){const promises=[];GodotOS._async_cbs.forEach(function(cb){promises.push(new Promise(cb))});return Promise.all(promises)}).then(function(){return GodotFS.sync()}).then(function(err){setTimeout(function(){callback()},0)})}};var GodotAudio={ctx:null,input:null,driver:null,interval:0,init:function(mix_rate,latency,onstatechange,onlatencyupdate){const opts={};if(mix_rate){opts["sampleRate"]=mix_rate}const ctx=new(window.AudioContext||window.webkitAudioContext)(opts);GodotAudio.ctx=ctx;ctx.onstatechange=function(){let state=0;switch(ctx.state){case"suspended":state=0;break;case"running":state=1;break;case"closed":state=2;break}onstatechange(state)};ctx.onstatechange();GodotAudio.interval=setInterval(function(){let computed_latency=0;if(ctx.baseLatency){computed_latency+=GodotAudio.ctx.baseLatency}if(ctx.outputLatency){computed_latency+=GodotAudio.ctx.outputLatency}onlatencyupdate(computed_latency)},1e3);GodotOS.atexit(GodotAudio.close_async);return ctx.destination.channelCount},create_input:function(callback){if(GodotAudio.input){return 0}function gotMediaInput(stream){try{GodotAudio.input=GodotAudio.ctx.createMediaStreamSource(stream);callback(GodotAudio.input)}catch(e){GodotRuntime.error("Failed creaating input.",e)}}if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){navigator.mediaDevices.getUserMedia({"audio":true}).then(gotMediaInput,function(e){GodotRuntime.error("Error getting user media.",e)})}else{if(!navigator.getUserMedia){navigator.getUserMedia=navigator.webkitGetUserMedia||navigator.mozGetUserMedia}if(!navigator.getUserMedia){GodotRuntime.error("getUserMedia not available.");return 1}navigator.getUserMedia({"audio":true},gotMediaInput,function(e){GodotRuntime.print(e)})}return 0},close_async:function(resolve,reject){const ctx=GodotAudio.ctx;GodotAudio.ctx=null;if(!ctx){resolve();return}if(GodotAudio.interval){clearInterval(GodotAudio.interval);GodotAudio.interval=0}if(GodotAudio.input){GodotAudio.input.disconnect();GodotAudio.input=null}let closed=Promise.resolve();if(GodotAudio.driver){closed=GodotAudio.driver.close()}closed.then(function(){return ctx.close()}).then(function(){ctx.onstatechange=null;resolve()}).catch(function(e){ctx.onstatechange=null;GodotRuntime.error("Error closing AudioContext",e);resolve()})}};function _godot_audio_capture_start(){return GodotAudio.create_input(function(input){input.connect(GodotAudio.driver.get_node())})}function _godot_audio_capture_stop(){if(GodotAudio.input){const tracks=GodotAudio.input["mediaStream"]["getTracks"]();for(let i=0;i<tracks.length;i++){tracks[i]["stop"]()}GodotAudio.input.disconnect();GodotAudio.input=null}}function _godot_audio_has_script_processor(){return GodotAudio.ctx&&GodotAudio.ctx.createScriptProcessor?1:0}function _godot_audio_has_worklet(){return GodotAudio.ctx&&GodotAudio.ctx.audioWorklet?1:0}function _godot_audio_init(p_mix_rate,p_latency,p_state_change,p_latency_update){const statechange=GodotRuntime.get_func(p_state_change);const latencyupdate=GodotRuntime.get_func(p_latency_update);const mix_rate=GodotRuntime.getHeapValue(p_mix_rate,"i32");const channels=GodotAudio.init(mix_rate,p_latency,statechange,latencyupdate);GodotRuntime.setHeapValue(p_mix_rate,GodotAudio.ctx.sampleRate,"i32");return channels}function _godot_audio_is_available(){if(!(window.AudioContext||window.webkitAudioContext)){return 0}return 1}function _godot_audio_resume(){if(GodotAudio.ctx&&GodotAudio.ctx.state!=="running"){GodotAudio.ctx.resume()}}var GodotAudioScript={script:null,create:function(buffer_length,channel_count){GodotAudioScript.script=GodotAudio.ctx.createScriptProcessor(buffer_length,2,channel_count);GodotAudio.driver=GodotAudioScript;return GodotAudioScript.script.bufferSize},start:function(p_in_buf,p_in_size,p_out_buf,p_out_size,onprocess){GodotAudioScript.script.onaudioprocess=function(event){const inb=GodotRuntime.heapSub(HEAPF32,p_in_buf,p_in_size);const input=event.inputBuffer;if(GodotAudio.input){const inlen=input.getChannelData(0).length;for(let ch=0;ch<2;ch++){const data=input.getChannelData(ch);for(let s=0;s<inlen;s++){inb[s*2+ch]=data[s]}}}onprocess();const outb=GodotRuntime.heapSub(HEAPF32,p_out_buf,p_out_size);const output=event.outputBuffer;const channels=output.numberOfChannels;for(let ch=0;ch<channels;ch++){const data=output.getChannelData(ch);for(let sample=0;sample<data.length;sample++){data[sample]=outb[sample*channels+ch]}}};GodotAudioScript.script.connect(GodotAudio.ctx.destination)},get_node:function(){return GodotAudioScript.script},close:function(){return new Promise(function(resolve,reject){GodotAudioScript.script.disconnect();GodotAudioScript.script.onaudioprocess=null;GodotAudioScript.script=null;resolve()})}};function _godot_audio_script_create(buffer_length,channel_count){const buf_len=GodotRuntime.getHeapValue(buffer_length,"i32");try{const out_len=GodotAudioScript.create(buf_len,channel_count);GodotRuntime.setHeapValue(buffer_length,out_len,"i32")}catch(e){GodotRuntime.error("Error starting AudioDriverScriptProcessor",e);return 1}return 0}function _godot_audio_script_start(p_in_buf,p_in_size,p_out_buf,p_out_size,p_cb){const onprocess=GodotRuntime.get_func(p_cb);GodotAudioScript.start(p_in_buf,p_in_size,p_out_buf,p_out_size,onprocess)}var GodotAudioWorklet={promise:null,worklet:null,ring_buffer:null,create:function(channels){const path=GodotConfig.locate_file("godot.audio.worklet.js");GodotAudioWorklet.promise=GodotAudio.ctx.audioWorklet.addModule(path).then(function(){GodotAudioWorklet.worklet=new AudioWorkletNode(GodotAudio.ctx,"godot-processor",{"outputChannelCount":[channels]});return Promise.resolve()});GodotAudio.driver=GodotAudioWorklet},start:function(in_buf,out_buf,state){GodotAudioWorklet.promise.then(function(){const node=GodotAudioWorklet.worklet;node.connect(GodotAudio.ctx.destination);node.port.postMessage({"cmd":"start","data":[state,in_buf,out_buf]});node.port.onmessage=function(event){GodotRuntime.error(event.data)}})},start_no_threads:function(p_out_buf,p_out_size,out_callback,p_in_buf,p_in_size,in_callback){function RingBuffer(){let wpos=0;let rpos=0;let pending_samples=0;const wbuf=new Float32Array(p_out_size);function send(port){if(pending_samples===0){return}const buffer=GodotRuntime.heapSub(HEAPF32,p_out_buf,p_out_size);const size=buffer.length;const tot_sent=pending_samples;out_callback(wpos,pending_samples);if(wpos+pending_samples>=size){const high=size-wpos;wbuf.set(buffer.subarray(wpos,size));pending_samples-=high;wpos=0}if(pending_samples>0){wbuf.set(buffer.subarray(wpos,wpos+pending_samples),tot_sent-pending_samples)}port.postMessage({"cmd":"chunk","data":wbuf.subarray(0,tot_sent)});wpos+=pending_samples;pending_samples=0}this.receive=function(recv_buf){const buffer=GodotRuntime.heapSub(HEAPF32,p_in_buf,p_in_size);const from=rpos;let to_write=recv_buf.length;let high=0;if(rpos+to_write>=p_in_size){high=p_in_size-rpos;buffer.set(recv_buf.subarray(0,high),rpos);to_write-=high;rpos=0}if(to_write){buffer.set(recv_buf.subarray(high,to_write),rpos)}in_callback(from,recv_buf.length);rpos+=to_write};this.consumed=function(size,port){pending_samples+=size;send(port)}}GodotAudioWorklet.ring_buffer=new RingBuffer;GodotAudioWorklet.promise.then(function(){const node=GodotAudioWorklet.worklet;const buffer=GodotRuntime.heapSlice(HEAPF32,p_out_buf,p_out_size);node.connect(GodotAudio.ctx.destination);node.port.postMessage({"cmd":"start_nothreads","data":[buffer,p_in_size]});node.port.onmessage=function(event){if(!GodotAudioWorklet.worklet){return}if(event.data["cmd"]==="read"){const read=event.data["data"];GodotAudioWorklet.ring_buffer.consumed(read,GodotAudioWorklet.worklet.port)}else if(event.data["cmd"]==="input"){const buf=event.data["data"];if(buf.length>p_in_size){GodotRuntime.error("Input chunk is too big");return}GodotAudioWorklet.ring_buffer.receive(buf)}else{GodotRuntime.error(event.data)}}})},get_node:function(){return GodotAudioWorklet.worklet},close:function(){return new Promise(function(resolve,reject){if(GodotAudioWorklet.promise===null){return}GodotAudioWorklet.promise.then(function(){GodotAudioWorklet.worklet.port.postMessage({"cmd":"stop","data":null});GodotAudioWorklet.worklet.disconnect();GodotAudioWorklet.worklet=null;GodotAudioWorklet.promise=null;resolve()}).catch(function(err){})})}};function _godot_audio_worklet_create(channels){try{GodotAudioWorklet.create(channels)}catch(e){GodotRuntime.error("Error starting AudioDriverWorklet",e);return 1}return 0}function _godot_audio_worklet_start_no_threads(p_out_buf,p_out_size,p_out_callback,p_in_buf,p_in_size,p_in_callback){const out_callback=GodotRuntime.get_func(p_out_callback);const in_callback=GodotRuntime.get_func(p_in_callback);GodotAudioWorklet.start_no_threads(p_out_buf,p_out_size,out_callback,p_in_buf,p_in_size,in_callback)}function _godot_js_config_canvas_id_get(p_ptr,p_ptr_max){GodotRuntime.stringToHeap(`#${GodotConfig.canvas.id}`,p_ptr,p_ptr_max)}function _godot_js_config_locale_get(p_ptr,p_ptr_max){GodotRuntime.stringToHeap(GodotConfig.locale,p_ptr,p_ptr_max)}var GodotDisplayCursor={shape:"auto",visible:true,cursors:{},set_style:function(style){GodotConfig.canvas.style.cursor=style},set_shape:function(shape){GodotDisplayCursor.shape=shape;let css=shape;if(shape in GodotDisplayCursor.cursors){const c=GodotDisplayCursor.cursors[shape];css=`url("${c.url}") ${c.x} ${c.y}, auto`}if(GodotDisplayCursor.visible){GodotDisplayCursor.set_style(css)}},clear:function(){GodotDisplayCursor.set_style("");GodotDisplayCursor.shape="auto";GodotDisplayCursor.visible=true;Object.keys(GodotDisplayCursor.cursors).forEach(function(key){URL.revokeObjectURL(GodotDisplayCursor.cursors[key]);delete GodotDisplayCursor.cursors[key]})},lockPointer:function(){const canvas=GodotConfig.canvas;if(canvas.requestPointerLock){canvas.requestPointerLock()}},releasePointer:function(){if(document.exitPointerLock){document.exitPointerLock()}},isPointerLocked:function(){return document.pointerLockElement===GodotConfig.canvas}};var GodotEventListeners={handlers:[],has:function(target,event,method,capture){return GodotEventListeners.handlers.findIndex(function(e){return e.target===target&&e.event===event&&e.method===method&&e.capture===capture})!==-1},add:function(target,event,method,capture){if(GodotEventListeners.has(target,event,method,capture)){return}function Handler(p_target,p_event,p_method,p_capture){this.target=p_target;this.event=p_event;this.method=p_method;this.capture=p_capture}GodotEventListeners.handlers.push(new Handler(target,event,method,capture));target.addEventListener(event,method,capture)},clear:function(){GodotEventListeners.handlers.forEach(function(h){h.target.removeEventListener(h.event,h.method,h.capture)});GodotEventListeners.handlers.length=0}};function _emscripten_webgl_do_get_current_context(){return GL.currentContext?GL.currentContext.handle:0}function _emscripten_webgl_get_current_context(){return _emscripten_webgl_do_get_current_context()}var GodotDisplayScreen={desired_size:[0,0],hidpi:true,getPixelRatio:function(){return GodotDisplayScreen.hidpi?window.devicePixelRatio||1:1},isFullscreen:function(){const elem=document.fullscreenElement||document.mozFullscreenElement||document.webkitFullscreenElement||document.msFullscreenElement;if(elem){return elem===GodotConfig.canvas}return document.fullscreen||document.mozFullScreen||document.webkitIsFullscreen},hasFullscreen:function(){return document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled},requestFullscreen:function(){if(!GodotDisplayScreen.hasFullscreen()){return 1}const canvas=GodotConfig.canvas;try{const promise=(canvas.requestFullscreen||canvas.msRequestFullscreen||canvas.mozRequestFullScreen||canvas.mozRequestFullscreen||canvas.webkitRequestFullscreen).call(canvas);if(promise){promise.catch(function(){})}}catch(e){return 1}return 0},exitFullscreen:function(){if(!GodotDisplayScreen.isFullscreen()){return 0}try{const promise=document.exitFullscreen();if(promise){promise.catch(function(){})}}catch(e){return 1}return 0},_updateGL:function(){const gl_context_handle=_emscripten_webgl_get_current_context();const gl=GL.getContext(gl_context_handle);if(gl){GL.resizeOffscreenFramebuffer(gl)}},updateSize:function(){const isFullscreen=GodotDisplayScreen.isFullscreen();const wantsFullWindow=GodotConfig.canvas_resize_policy===2;const noResize=GodotConfig.canvas_resize_policy===0;const wwidth=GodotDisplayScreen.desired_size[0];const wheight=GodotDisplayScreen.desired_size[1];const canvas=GodotConfig.canvas;let width=wwidth;let height=wheight;if(noResize){if(canvas.width!==width||canvas.height!==height){GodotDisplayScreen.desired_size=[canvas.width,canvas.height];GodotDisplayScreen._updateGL();return 1}return 0}const scale=GodotDisplayScreen.getPixelRatio();if(isFullscreen||wantsFullWindow){width=window.innerWidth*scale;height=window.innerHeight*scale}const csw=`${width/scale}px`;const csh=`${height/scale}px`;if(canvas.style.width!==csw||canvas.style.height!==csh||canvas.width!==width||canvas.height!==height){canvas.width=width;canvas.height=height;canvas.style.width=csw;canvas.style.height=csh;GodotDisplayScreen._updateGL();return 1}return 0}};var GodotDisplayVK={textinput:null,textarea:null,available:function(){return GodotConfig.virtual_keyboard&&"ontouchstart"in window},init:function(input_cb){function create(what){const elem=document.createElement(what);elem.style.display="none";elem.style.position="absolute";elem.style.zIndex="-1";elem.style.background="transparent";elem.style.padding="0px";elem.style.margin="0px";elem.style.overflow="hidden";elem.style.width="0px";elem.style.height="0px";elem.style.border="0px";elem.style.outline="none";elem.readonly=true;elem.disabled=true;GodotEventListeners.add(elem,"input",function(evt){const c_str=GodotRuntime.allocString(elem.value);input_cb(c_str,elem.selectionEnd);GodotRuntime.free(c_str)},false);GodotEventListeners.add(elem,"blur",function(evt){elem.style.display="none";elem.readonly=true;elem.disabled=true},false);GodotConfig.canvas.insertAdjacentElement("beforebegin",elem);return elem}GodotDisplayVK.textinput=create("input");GodotDisplayVK.textarea=create("textarea");GodotDisplayVK.updateSize()},show:function(text,multiline,start,end){if(!GodotDisplayVK.textinput||!GodotDisplayVK.textarea){return}if(GodotDisplayVK.textinput.style.display!==""||GodotDisplayVK.textarea.style.display!==""){GodotDisplayVK.hide()}GodotDisplayVK.updateSize();const elem=multiline?GodotDisplayVK.textarea:GodotDisplayVK.textinput;elem.readonly=false;elem.disabled=false;elem.value=text;elem.style.display="block";elem.focus();elem.setSelectionRange(start,end)},hide:function(){if(!GodotDisplayVK.textinput||!GodotDisplayVK.textarea){return}[GodotDisplayVK.textinput,GodotDisplayVK.textarea].forEach(function(elem){elem.blur();elem.style.display="none";elem.value=""})},updateSize:function(){if(!GodotDisplayVK.textinput||!GodotDisplayVK.textarea){return}const rect=GodotConfig.canvas.getBoundingClientRect();function update(elem){elem.style.left=`${rect.left}px`;elem.style.top=`${rect.top}px`;elem.style.width=`${rect.width}px`;elem.style.height=`${rect.height}px`}update(GodotDisplayVK.textinput);update(GodotDisplayVK.textarea)},clear:function(){if(GodotDisplayVK.textinput){GodotDisplayVK.textinput.remove();GodotDisplayVK.textinput=null}if(GodotDisplayVK.textarea){GodotDisplayVK.textarea.remove();GodotDisplayVK.textarea=null}}};var GodotDisplay={window_icon:"",findDPI:function(){function testDPI(dpi){return window.matchMedia(`(max-resolution: ${dpi}dpi)`).matches}function bisect(low,high,func){const mid=parseInt((high-low)/2+low,10);if(high-low<=1){return func(high)?high:low}if(func(mid)){return bisect(low,mid,func)}return bisect(mid,high,func)}try{const dpi=bisect(0,800,testDPI);return dpi>=96?dpi:96}catch(e){return 96}}};function _godot_js_display_alert(p_text){window.alert(GodotRuntime.parseString(p_text))}function _godot_js_display_canvas_focus(){GodotConfig.canvas.focus()}function _godot_js_display_canvas_is_focused(){return document.activeElement===GodotConfig.canvas}function _godot_js_display_clipboard_get(callback){const func=GodotRuntime.get_func(callback);try{navigator.clipboard.readText().then(function(result){const ptr=GodotRuntime.allocString(result);func(ptr);GodotRuntime.free(ptr)}).catch(function(e){})}catch(e){}}function _godot_js_display_clipboard_set(p_text){const text=GodotRuntime.parseString(p_text);if(!navigator.clipboard||!navigator.clipboard.writeText){return 1}navigator.clipboard.writeText(text).catch(function(e){GodotRuntime.error("Setting OS clipboard is only possible from an input callback for the HTML5 plafrom. Exception:",e)});return 0}function _godot_js_display_cursor_is_hidden(){return!GodotDisplayCursor.visible}function _godot_js_display_cursor_is_locked(){return GodotDisplayCursor.isPointerLocked()?1:0}function _godot_js_display_cursor_lock_set(p_lock){if(p_lock){GodotDisplayCursor.lockPointer()}else{GodotDisplayCursor.releasePointer()}}function _godot_js_display_cursor_set_custom_shape(p_shape,p_ptr,p_len,p_hotspot_x,p_hotspot_y){const shape=GodotRuntime.parseString(p_shape);const old_shape=GodotDisplayCursor.cursors[shape];if(p_len>0){const png=new Blob([GodotRuntime.heapSlice(HEAPU8,p_ptr,p_len)],{type:"image/png"});const url=URL.createObjectURL(png);GodotDisplayCursor.cursors[shape]={url:url,x:p_hotspot_x,y:p_hotspot_y}}else{delete GodotDisplayCursor.cursors[shape]}if(shape===GodotDisplayCursor.shape){GodotDisplayCursor.set_shape(GodotDisplayCursor.shape)}if(old_shape){URL.revokeObjectURL(old_shape.url)}}function _godot_js_display_cursor_set_shape(p_string){GodotDisplayCursor.set_shape(GodotRuntime.parseString(p_string))}function _godot_js_display_cursor_set_visible(p_visible){const visible=p_visible!==0;if(visible===GodotDisplayCursor.visible){return}GodotDisplayCursor.visible=visible;if(visible){GodotDisplayCursor.set_shape(GodotDisplayCursor.shape)}else{GodotDisplayCursor.set_style("none")}}function _godot_js_display_desired_size_set(width,height){GodotDisplayScreen.desired_size=[width,height];GodotDisplayScreen.updateSize()}function _godot_js_display_fullscreen_cb(callback){const canvas=GodotConfig.canvas;const func=GodotRuntime.get_func(callback);function change_cb(evt){if(evt.target===canvas){func(GodotDisplayScreen.isFullscreen())}}GodotEventListeners.add(document,"fullscreenchange",change_cb,false);GodotEventListeners.add(document,"mozfullscreenchange",change_cb,false);GodotEventListeners.add(document,"webkitfullscreenchange",change_cb,false)}function _godot_js_display_fullscreen_exit(){return GodotDisplayScreen.exitFullscreen()}function _godot_js_display_fullscreen_request(){return GodotDisplayScreen.requestFullscreen()}function _godot_js_display_glGetBufferSubData(target,offset,size,data){const gl_context_handle=_emscripten_webgl_get_current_context();const gl=GL.getContext(gl_context_handle);if(gl){gl.GLctx["getBufferSubData"](target,offset,HEAPU8,data,size)}}function _godot_js_display_has_webgl(p_version){if(p_version!==1&&p_version!==2){return false}try{return!!document.createElement("canvas").getContext(p_version===2?"webgl2":"webgl")}catch(e){}return false}function _godot_js_display_is_swap_ok_cancel(){const win=["Windows","Win64","Win32","WinCE"];const plat=navigator.platform||"";if(win.indexOf(plat)!==-1){return 1}return 0}function _godot_js_display_notification_cb(callback,p_enter,p_exit,p_in,p_out){const canvas=GodotConfig.canvas;const func=GodotRuntime.get_func(callback);const notif=[p_enter,p_exit,p_in,p_out];["mouseover","mouseleave","focus","blur"].forEach(function(evt_name,idx){GodotEventListeners.add(canvas,evt_name,function(){func(notif[idx])},true)})}function _godot_js_display_pixel_ratio_get(){return GodotDisplayScreen.getPixelRatio()}function _godot_js_display_screen_dpi_get(){return GodotDisplay.findDPI()}function _godot_js_display_screen_size_get(width,height){const scale=GodotDisplayScreen.getPixelRatio();GodotRuntime.setHeapValue(width,window.screen.width*scale,"i32");GodotRuntime.setHeapValue(height,window.screen.height*scale,"i32")}function _godot_js_display_setup_canvas(p_width,p_height,p_fullscreen,p_hidpi){const canvas=GodotConfig.canvas;GodotEventListeners.add(canvas,"contextmenu",function(ev){ev.preventDefault()},false);GodotEventListeners.add(canvas,"webglcontextlost",function(ev){alert("WebGL context lost, please reload the page");ev.preventDefault()},false);GodotDisplayScreen.hidpi=!!p_hidpi;switch(GodotConfig.canvas_resize_policy){case 0:GodotDisplayScreen.desired_size=[canvas.width,canvas.height];break;case 1:GodotDisplayScreen.desired_size=[p_width,p_height];break;default:canvas.style.position="absolute";canvas.style.top=0;canvas.style.left=0;break}GodotDisplayScreen.updateSize();if(p_fullscreen){GodotDisplayScreen.requestFullscreen()}}function _godot_js_display_size_update(){const updated=GodotDisplayScreen.updateSize();if(updated){GodotDisplayVK.updateSize()}return updated}function _godot_js_display_touchscreen_is_available(){return"ontouchstart"in window}function _godot_js_display_vk_available(){return GodotDisplayVK.available()}function _godot_js_display_vk_cb(p_input_cb){const input_cb=GodotRuntime.get_func(p_input_cb);if(GodotDisplayVK.available()){GodotDisplayVK.init(input_cb)}}function _godot_js_display_vk_hide(){GodotDisplayVK.hide()}function _godot_js_display_vk_show(p_text,p_multiline,p_start,p_end){const text=GodotRuntime.parseString(p_text);const start=p_start>0?p_start:0;const end=p_end>0?p_end:start;GodotDisplayVK.show(text,p_multiline,start,end)}function _godot_js_display_window_blur_cb(callback){const func=GodotRuntime.get_func(callback);GodotEventListeners.add(window,"blur",function(){func()},false)}function _godot_js_display_window_icon_set(p_ptr,p_len){let link=document.getElementById("-gd-engine-icon");if(link===null){link=document.createElement("link");link.rel="icon";link.id="-gd-engine-icon";document.head.appendChild(link)}const old_icon=GodotDisplay.window_icon;const png=new Blob([GodotRuntime.heapSlice(HEAPU8,p_ptr,p_len)],{type:"image/png"});GodotDisplay.window_icon=URL.createObjectURL(png);link.href=GodotDisplay.window_icon;if(old_icon){URL.revokeObjectURL(old_icon)}}function _godot_js_display_window_size_get(p_width,p_height){GodotRuntime.setHeapValue(p_width,GodotConfig.canvas.width,"i32");GodotRuntime.setHeapValue(p_height,GodotConfig.canvas.height,"i32")}function _godot_js_display_window_title_set(p_data){document.title=GodotRuntime.parseString(p_data)}function _godot_js_eval(p_js,p_use_global_ctx,p_union_ptr,p_byte_arr,p_byte_arr_write,p_callback){const js_code=GodotRuntime.parseString(p_js);let eval_ret=null;try{if(p_use_global_ctx){const global_eval=eval;eval_ret=global_eval(js_code)}else{eval_ret=eval(js_code)}}catch(e){GodotRuntime.error(e)}switch(typeof eval_ret){case"boolean":GodotRuntime.setHeapValue(p_union_ptr,eval_ret,"i32");return 1;case"number":GodotRuntime.setHeapValue(p_union_ptr,eval_ret,"double");return 3;case"string":GodotRuntime.setHeapValue(p_union_ptr,GodotRuntime.allocString(eval_ret),"*");return 4;case"object":if(eval_ret===null){break}if(ArrayBuffer.isView(eval_ret)&&!(eval_ret instanceof Uint8Array)){eval_ret=new Uint8Array(eval_ret.buffer)}else if(eval_ret instanceof ArrayBuffer){eval_ret=new Uint8Array(eval_ret)}if(eval_ret instanceof Uint8Array){const func=GodotRuntime.get_func(p_callback);const bytes_ptr=func(p_byte_arr,p_byte_arr_write,eval_ret.length);HEAPU8.set(eval_ret,bytes_ptr);return 20}break}return 0}var IDHandler={_last_id:0,_references:{},get:function(p_id){return IDHandler._references[p_id]},add:function(p_data){const id=++IDHandler._last_id;IDHandler._references[id]=p_data;return id},remove:function(p_id){delete IDHandler._references[p_id]}};var GodotFetch={onread:function(id,result){const obj=IDHandler.get(id);if(!obj){return}if(result.value){obj.chunks.push(result.value)}obj.reading=false;obj.done=result.done},onresponse:function(id,response){const obj=IDHandler.get(id);if(!obj){return}let chunked=false;response.headers.forEach(function(value,header){const v=value.toLowerCase().trim();const h=header.toLowerCase().trim();if(h==="transfer-encoding"&&v==="chunked"){chunked=true}});obj.status=response.status;obj.response=response;obj.reader=response.body.getReader();obj.chunked=chunked},onerror:function(id,err){GodotRuntime.error(err);const obj=IDHandler.get(id);if(!obj){return}obj.error=err},create:function(method,url,headers,body){const obj={request:null,response:null,reader:null,error:null,done:false,reading:false,status:0,chunks:[],bodySize:-1};const id=IDHandler.add(obj);const init={method:method,headers:headers,body:body};obj.request=fetch(url,init);obj.request.then(GodotFetch.onresponse.bind(null,id)).catch(GodotFetch.onerror.bind(null,id));return id},free:function(id){const obj=IDHandler.get(id);if(!obj){return}IDHandler.remove(id);if(!obj.request){return}obj.request.then(function(response){response.abort()}).catch(function(e){})},read:function(id){const obj=IDHandler.get(id);if(!obj){return}if(obj.reader&&!obj.reading){if(obj.done){obj.reader=null;return}obj.reading=true;obj.reader.read().then(GodotFetch.onread.bind(null,id)).catch(GodotFetch.onerror.bind(null,id))}}};function _godot_js_fetch_body_length_get(p_id){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return-1}return obj.bodySize}function _godot_js_fetch_create(p_method,p_url,p_headers,p_headers_size,p_body,p_body_size){const method=GodotRuntime.parseString(p_method);const url=GodotRuntime.parseString(p_url);const headers=GodotRuntime.parseStringArray(p_headers,p_headers_size);const body=p_body_size?GodotRuntime.heapSlice(HEAP8,p_body,p_body_size):null;return GodotFetch.create(method,url,headers.map(function(hv){const idx=hv.indexOf(":");if(idx<=0){return[]}return[hv.slice(0,idx).trim(),hv.slice(idx+1).trim()]}).filter(function(v){return v.length===2}),body)}function _godot_js_fetch_free(id){GodotFetch.free(id)}function _godot_js_fetch_http_status_get(p_id){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return 0}return obj.status}function _godot_js_fetch_is_chunked(p_id){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return-1}return obj.chunked?1:0}function _godot_js_fetch_read_chunk(p_id,p_buf,p_buf_size){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return 0}let to_read=p_buf_size;const chunks=obj.chunks;while(to_read&&chunks.length){const chunk=obj.chunks[0];if(chunk.length>to_read){GodotRuntime.heapCopy(HEAP8,chunk.slice(0,to_read),p_buf);chunks[0]=chunk.slice(to_read);to_read=0}else{GodotRuntime.heapCopy(HEAP8,chunk,p_buf);to_read-=chunk.length;chunks.pop()}}if(!chunks.length){GodotFetch.read(p_id)}return p_buf_size-to_read}function _godot_js_fetch_read_headers(p_id,p_parse_cb,p_ref){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return 1}const cb=GodotRuntime.get_func(p_parse_cb);const arr=[];obj.response.headers.forEach(function(v,h){arr.push(`${h}:${v}`)});const c_ptr=GodotRuntime.allocStringArray(arr);cb(arr.length,c_ptr,p_ref);GodotRuntime.freeStringArray(c_ptr,arr.length);return 0}function _godot_js_fetch_state_get(p_id){const obj=IDHandler.get(p_id);if(!obj){return-1}if(obj.error){return-1}if(!obj.response){return 0}if(obj.reader){return 1}if(obj.done){return 2}return-1}var GodotInputGamepads={samples:[],get_pads:function(){try{const pads=navigator.getGamepads();if(pads){return pads}return[]}catch(e){return[]}},get_samples:function(){return GodotInputGamepads.samples},get_sample:function(index){const samples=GodotInputGamepads.samples;return index<samples.length?samples[index]:null},sample:function(){const pads=GodotInputGamepads.get_pads();const samples=[];for(let i=0;i<pads.length;i++){const pad=pads[i];if(!pad){samples.push(null);continue}const s={standard:pad.mapping==="standard",buttons:[],axes:[],connected:pad.connected};for(let b=0;b<pad.buttons.length;b++){s.buttons.push(pad.buttons[b].value)}for(let a=0;a<pad.axes.length;a++){s.axes.push(pad.axes[a])}samples.push(s)}GodotInputGamepads.samples=samples},init:function(onchange){GodotInputGamepads.samples=[];function add(pad){const guid=GodotInputGamepads.get_guid(pad);const c_id=GodotRuntime.allocString(pad.id);const c_guid=GodotRuntime.allocString(guid);onchange(pad.index,1,c_id,c_guid);GodotRuntime.free(c_id);GodotRuntime.free(c_guid)}const pads=GodotInputGamepads.get_pads();for(let i=0;i<pads.length;i++){if(pads[i]){add(pads[i])}}GodotEventListeners.add(window,"gamepadconnected",function(evt){if(evt.gamepad){add(evt.gamepad)}},false);GodotEventListeners.add(window,"gamepaddisconnected",function(evt){if(evt.gamepad){onchange(evt.gamepad.index,0)}},false)},get_guid:function(pad){if(pad.mapping){return pad.mapping}const ua=navigator.userAgent;let os="Unknown";if(ua.indexOf("Android")>=0){os="Android"}else if(ua.indexOf("Linux")>=0){os="Linux"}else if(ua.indexOf("iPhone")>=0){os="iOS"}else if(ua.indexOf("Macintosh")>=0){os="MacOSX"}else if(ua.indexOf("Windows")>=0){os="Windows"}const id=pad.id;const exp1=/vendor: ([0-9a-f]{4}) product: ([0-9a-f]{4})/i;const exp2=/^([0-9a-f]+)-([0-9a-f]+)-/i;let vendor="";let product="";if(exp1.test(id)){const match=exp1.exec(id);vendor=match[1].padStart(4,"0");product=match[2].padStart(4,"0")}else if(exp2.test(id)){const match=exp2.exec(id);vendor=match[1].padStart(4,"0");product=match[2].padStart(4,"0")}if(!vendor||!product){return`${os}Unknown`}return os+vendor+product}};var GodotInputDragDrop={promises:[],pending_files:[],add_entry:function(entry){if(entry.isDirectory){GodotInputDragDrop.add_dir(entry)}else if(entry.isFile){GodotInputDragDrop.add_file(entry)}else{GodotRuntime.error("Unrecognized entry...",entry)}},add_dir:function(entry){GodotInputDragDrop.promises.push(new Promise(function(resolve,reject){const reader=entry.createReader();reader.readEntries(function(entries){for(let i=0;i<entries.length;i++){GodotInputDragDrop.add_entry(entries[i])}resolve()})}))},add_file:function(entry){GodotInputDragDrop.promises.push(new Promise(function(resolve,reject){entry.file(function(file){const reader=new FileReader;reader.onload=function(){const f={"path":file.relativePath||file.webkitRelativePath,"name":file.name,"type":file.type,"size":file.size,"data":reader.result};if(!f["path"]){f["path"]=f["name"]}GodotInputDragDrop.pending_files.push(f);resolve()};reader.onerror=function(){GodotRuntime.print("Error reading file");reject()};reader.readAsArrayBuffer(file)},function(err){GodotRuntime.print("Error!");reject()})}))},process:function(resolve,reject){if(GodotInputDragDrop.promises.length===0){resolve();return}GodotInputDragDrop.promises.pop().then(function(){setTimeout(function(){GodotInputDragDrop.process(resolve,reject)},0)})},_process_event:function(ev,callback){ev.preventDefault();if(ev.dataTransfer.items){for(let i=0;i<ev.dataTransfer.items.length;i++){const item=ev.dataTransfer.items[i];let entry=null;if("getAsEntry"in item){entry=item.getAsEntry()}else if("webkitGetAsEntry"in item){entry=item.webkitGetAsEntry()}if(entry){GodotInputDragDrop.add_entry(entry)}}}else{GodotRuntime.error("File upload not supported")}new Promise(GodotInputDragDrop.process).then(function(){const DROP=`/tmp/drop-${parseInt(Math.random()*(1<<30),10)}/`;const drops=[];const files=[];FS.mkdir(DROP.slice(0,-1));GodotInputDragDrop.pending_files.forEach(elem=>{const path=elem["path"];GodotFS.copy_to_fs(DROP+path,elem["data"]);let idx=path.indexOf("/");if(idx===-1){drops.push(DROP+path)}else{const sub=path.substr(0,idx);idx=sub.indexOf("/");if(idx<0&&drops.indexOf(DROP+sub)===-1){drops.push(DROP+sub)}}files.push(DROP+path)});GodotInputDragDrop.promises=[];GodotInputDragDrop.pending_files=[];callback(drops);if(GodotConfig.persistent_drops){GodotOS.atexit(function(resolve,reject){GodotInputDragDrop.remove_drop(files,DROP);resolve()})}else{GodotInputDragDrop.remove_drop(files,DROP)}})},remove_drop:function(files,drop_path){const dirs=[drop_path.substr(0,drop_path.length-1)];files.forEach(function(file){FS.unlink(file);let dir=file.replace(drop_path,"");let idx=dir.lastIndexOf("/");while(idx>0){dir=dir.substr(0,idx);if(dirs.indexOf(drop_path+dir)===-1){dirs.push(drop_path+dir)}idx=dir.lastIndexOf("/")}});dirs.sort(function(a,b){const al=(a.match(/\//g)||[]).length;const bl=(b.match(/\//g)||[]).length;if(al>bl){return-1}else if(al<bl){return 1}return 0}).forEach(function(dir){FS.rmdir(dir)})},handler:function(callback){return function(ev){GodotInputDragDrop._process_event(ev,callback)}}};var GodotInput={getModifiers:function(evt){return evt.shiftKey+0+(evt.altKey+0<<1)+(evt.ctrlKey+0<<2)+(evt.metaKey+0<<3)},computePosition:function(evt,rect){const canvas=GodotConfig.canvas;const rw=canvas.width/rect.width;const rh=canvas.height/rect.height;const x=(evt.clientX-rect.x)*rw;const y=(evt.clientY-rect.y)*rh;return[x,y]}};function _godot_js_input_drop_files_cb(callback){const func=GodotRuntime.get_func(callback);const dropFiles=function(files){const args=files||[];if(!args.length){return}const argc=args.length;const argv=GodotRuntime.allocStringArray(args);func(argv,argc);GodotRuntime.freeStringArray(argv,argc)};const canvas=GodotConfig.canvas;GodotEventListeners.add(canvas,"dragover",function(ev){ev.preventDefault()},false);GodotEventListeners.add(canvas,"drop",GodotInputDragDrop.handler(dropFiles))}function _godot_js_input_gamepad_cb(change_cb){const onchange=GodotRuntime.get_func(change_cb);GodotInputGamepads.init(onchange)}function _godot_js_input_gamepad_sample(){GodotInputGamepads.sample();return 0}function _godot_js_input_gamepad_sample_count(){return GodotInputGamepads.get_samples().length}function _godot_js_input_gamepad_sample_get(p_index,r_btns,r_btns_num,r_axes,r_axes_num,r_standard){const sample=GodotInputGamepads.get_sample(p_index);if(!sample||!sample.connected){return 1}const btns=sample.buttons;const btns_len=btns.length<16?btns.length:16;for(let i=0;i<btns_len;i++){GodotRuntime.setHeapValue(r_btns+(i<<2),btns[i],"float")}GodotRuntime.setHeapValue(r_btns_num,btns_len,"i32");const axes=sample.axes;const axes_len=axes.length<10?axes.length:10;for(let i=0;i<axes_len;i++){GodotRuntime.setHeapValue(r_axes+(i<<2),axes[i],"float")}GodotRuntime.setHeapValue(r_axes_num,axes_len,"i32");const is_standard=sample.standard?1:0;GodotRuntime.setHeapValue(r_standard,is_standard,"i32");return 0}function _godot_js_input_key_cb(callback,code,key){const func=GodotRuntime.get_func(callback);function key_cb(pressed,evt){const modifiers=GodotInput.getModifiers(evt);GodotRuntime.stringToHeap(evt.code,code,32);GodotRuntime.stringToHeap(evt.key,key,32);func(pressed,evt.repeat,modifiers);evt.preventDefault()}GodotEventListeners.add(GodotConfig.canvas,"keydown",key_cb.bind(null,1),false);GodotEventListeners.add(GodotConfig.canvas,"keyup",key_cb.bind(null,0),false)}function _godot_js_input_mouse_button_cb(callback){const func=GodotRuntime.get_func(callback);const canvas=GodotConfig.canvas;function button_cb(p_pressed,evt){const rect=canvas.getBoundingClientRect();const pos=GodotInput.computePosition(evt,rect);const modifiers=GodotInput.getModifiers(evt);if(p_pressed){GodotConfig.canvas.focus()}if(func(p_pressed,evt.button,pos[0],pos[1],modifiers)){evt.preventDefault()}}GodotEventListeners.add(canvas,"mousedown",button_cb.bind(null,1),false);GodotEventListeners.add(window,"mouseup",button_cb.bind(null,0),false)}function _godot_js_input_mouse_move_cb(callback){const func=GodotRuntime.get_func(callback);const canvas=GodotConfig.canvas;function move_cb(evt){const rect=canvas.getBoundingClientRect();const pos=GodotInput.computePosition(evt,rect);const rw=canvas.width/rect.width;const rh=canvas.height/rect.height;const rel_pos_x=evt.movementX*rw;const rel_pos_y=evt.movementY*rh;const modifiers=GodotInput.getModifiers(evt);func(pos[0],pos[1],rel_pos_x,rel_pos_y,modifiers)}GodotEventListeners.add(window,"mousemove",move_cb,false)}function _godot_js_input_mouse_wheel_cb(callback){const func=GodotRuntime.get_func(callback);function wheel_cb(evt){if(func(evt["deltaX"]||0,evt["deltaY"]||0)){evt.preventDefault()}}GodotEventListeners.add(GodotConfig.canvas,"wheel",wheel_cb,false)}function _godot_js_input_paste_cb(callback){const func=GodotRuntime.get_func(callback);GodotEventListeners.add(window,"paste",function(evt){const text=evt.clipboardData.getData("text");const ptr=GodotRuntime.allocString(text);func(ptr);GodotRuntime.free(ptr)},false)}function _godot_js_input_touch_cb(callback,ids,coords){const func=GodotRuntime.get_func(callback);const canvas=GodotConfig.canvas;function touch_cb(type,evt){if(type===0){GodotConfig.canvas.focus()}const rect=canvas.getBoundingClientRect();const touches=evt.changedTouches;for(let i=0;i<touches.length;i++){const touch=touches[i];const pos=GodotInput.computePosition(touch,rect);GodotRuntime.setHeapValue(coords+i*2*8,pos[0],"double");GodotRuntime.setHeapValue(coords+(i*2+1)*8,pos[1],"double");GodotRuntime.setHeapValue(ids+i*4,touch.identifier,"i32")}func(type,touches.length);if(evt.cancelable){evt.preventDefault()}}GodotEventListeners.add(canvas,"touchstart",touch_cb.bind(null,0),false);GodotEventListeners.add(canvas,"touchend",touch_cb.bind(null,1),false);GodotEventListeners.add(canvas,"touchcancel",touch_cb.bind(null,1),false);GodotEventListeners.add(canvas,"touchmove",touch_cb.bind(null,2),false)}function _godot_js_input_vibrate_handheld(p_duration_ms){if(typeof navigator.vibrate!=="function"){GodotRuntime.print("This browser does not support vibration.")}else{navigator.vibrate(p_duration_ms)}}function _godot_js_os_download_buffer(p_ptr,p_size,p_name,p_mime){const buf=GodotRuntime.heapSlice(HEAP8,p_ptr,p_size);const name=GodotRuntime.parseString(p_name);const mime=GodotRuntime.parseString(p_mime);const blob=new Blob([buf],{type:mime});const url=window.URL.createObjectURL(blob);const a=document.createElement("a");a.href=url;a.download=name;a.style.display="none";document.body.appendChild(a);a.click();a.remove();window.URL.revokeObjectURL(url)}function _godot_js_os_execute(p_json){const json_args=GodotRuntime.parseString(p_json);const args=JSON.parse(json_args);if(GodotConfig.on_execute){GodotConfig.on_execute(args);return 0}return 1}function _godot_js_os_finish_async(p_callback){const func=GodotRuntime.get_func(p_callback);GodotOS.finish_async(func)}function _godot_js_os_fs_is_persistent(){return GodotFS.is_persistent()}function _godot_js_os_fs_sync(callback){const func=GodotRuntime.get_func(callback);GodotOS._fs_sync_promise=GodotFS.sync();GodotOS._fs_sync_promise.then(function(err){func()})}function _godot_js_os_hw_concurrency_get(){return navigator.hardwareConcurrency||1}function _godot_js_os_request_quit_cb(p_callback){GodotOS.request_quit=GodotRuntime.get_func(p_callback)}function _godot_js_os_shell_open(p_uri){window.open(GodotRuntime.parseString(p_uri),"_blank")}var GodotPWA={hasUpdate:false,updateState:function(cb,reg){if(!reg){return}if(!reg.active){return}if(reg.waiting){GodotPWA.hasUpdate=true;cb()}GodotEventListeners.add(reg,"updatefound",function(){const installing=reg.installing;GodotEventListeners.add(installing,"statechange",function(){if(installing.state==="installed"){GodotPWA.hasUpdate=true;cb()}})})}};function _godot_js_pwa_cb(p_update_cb){if("serviceWorker"in navigator){const cb=GodotRuntime.get_func(p_update_cb);navigator.serviceWorker.getRegistration().then(GodotPWA.updateState.bind(null,cb))}}function _godot_js_pwa_update(){if("serviceWorker"in navigator&&GodotPWA.hasUpdate){navigator.serviceWorker.getRegistration().then(function(reg){if(!reg||!reg.waiting){return}reg.waiting.postMessage("update")});return 0}return 1}var GodotRTCDataChannel={connect:function(p_id,p_on_open,p_on_message,p_on_error,p_on_close){const ref=IDHandler.get(p_id);if(!ref){return}ref.binaryType="arraybuffer";ref.onopen=function(event){p_on_open()};ref.onclose=function(event){p_on_close()};ref.onerror=function(event){p_on_error()};ref.onmessage=function(event){let buffer;let is_string=0;if(event.data instanceof ArrayBuffer){buffer=new Uint8Array(event.data)}else if(event.data instanceof Blob){GodotRuntime.error("Blob type not supported");return}else if(typeof event.data==="string"){is_string=1;const enc=new TextEncoder("utf-8");buffer=new Uint8Array(enc.encode(event.data))}else{GodotRuntime.error("Unknown message type");return}const len=buffer.length*buffer.BYTES_PER_ELEMENT;const out=GodotRuntime.malloc(len);HEAPU8.set(buffer,out);p_on_message(out,len,is_string);GodotRuntime.free(out)}},close:function(p_id){const ref=IDHandler.get(p_id);if(!ref){return}ref.onopen=null;ref.onmessage=null;ref.onerror=null;ref.onclose=null;ref.close()},get_prop:function(p_id,p_prop,p_def){const ref=IDHandler.get(p_id);return ref&&ref[p_prop]!==undefined?ref[p_prop]:p_def}};function _godot_js_rtc_datachannel_close(p_id){const ref=IDHandler.get(p_id);if(!ref){return}GodotRTCDataChannel.close(p_id)}function _godot_js_rtc_datachannel_connect(p_id,p_ref,p_on_open,p_on_message,p_on_error,p_on_close){const onopen=GodotRuntime.get_func(p_on_open).bind(null,p_ref);const onmessage=GodotRuntime.get_func(p_on_message).bind(null,p_ref);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_ref);const onclose=GodotRuntime.get_func(p_on_close).bind(null,p_ref);GodotRTCDataChannel.connect(p_id,onopen,onmessage,onerror,onclose)}function _godot_js_rtc_datachannel_destroy(p_id){GodotRTCDataChannel.close(p_id);IDHandler.remove(p_id)}function _godot_js_rtc_datachannel_get_buffered_amount(p_id){return GodotRTCDataChannel.get_prop(p_id,"bufferedAmount",0)}function _godot_js_rtc_datachannel_id_get(p_id){return GodotRTCDataChannel.get_prop(p_id,"id",65535)}function _godot_js_rtc_datachannel_is_negotiated(p_id){return GodotRTCDataChannel.get_prop(p_id,"negotiated",65535)}function _godot_js_rtc_datachannel_is_ordered(p_id){return GodotRTCDataChannel.get_prop(p_id,"ordered",true)}function _godot_js_rtc_datachannel_label_get(p_id){const ref=IDHandler.get(p_id);if(!ref||!ref.label){return 0}return GodotRuntime.allocString(ref.label)}function _godot_js_rtc_datachannel_max_packet_lifetime_get(p_id){const ref=IDHandler.get(p_id);if(!ref){return 65535}if(ref["maxPacketLifeTime"]!==undefined){return ref["maxPacketLifeTime"]}else if(ref["maxRetransmitTime"]!==undefined){return ref["maxRetransmitTime"]}return 65535}function _godot_js_rtc_datachannel_max_retransmits_get(p_id){return GodotRTCDataChannel.get_prop(p_id,"maxRetransmits",65535)}function _godot_js_rtc_datachannel_protocol_get(p_id){const ref=IDHandler.get(p_id);if(!ref||!ref.protocol){return 0}return GodotRuntime.allocString(ref.protocol)}function _godot_js_rtc_datachannel_ready_state_get(p_id){const ref=IDHandler.get(p_id);if(!ref){return 3}switch(ref.readyState){case"connecting":return 0;case"open":return 1;case"closing":return 2;case"closed":default:return 3}}function _godot_js_rtc_datachannel_send(p_id,p_buffer,p_length,p_raw){const ref=IDHandler.get(p_id);if(!ref){return 1}const bytes_array=new Uint8Array(p_length);for(let i=0;i<p_length;i++){bytes_array[i]=GodotRuntime.getHeapValue(p_buffer+i,"i8")}if(p_raw){ref.send(bytes_array.buffer)}else{const string=new TextDecoder("utf-8").decode(bytes_array);ref.send(string)}return 0}var GodotRTCPeerConnection={onstatechange:function(p_id,p_conn,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}let state;switch(p_conn.iceConnectionState){case"new":state=0;break;case"checking":state=1;break;case"connected":case"completed":state=2;break;case"disconnected":state=3;break;case"failed":state=4;break;case"closed":default:state=5;break}callback(state)},onicecandidate:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref||!event.candidate){return}const c=event.candidate;const candidate_str=GodotRuntime.allocString(c.candidate);const mid_str=GodotRuntime.allocString(c.sdpMid);callback(mid_str,c.sdpMLineIndex,candidate_str);GodotRuntime.free(candidate_str);GodotRuntime.free(mid_str)},ondatachannel:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}const cid=IDHandler.add(event.channel);callback(cid)},onsession:function(p_id,callback,session){const ref=IDHandler.get(p_id);if(!ref){return}const type_str=GodotRuntime.allocString(session.type);const sdp_str=GodotRuntime.allocString(session.sdp);callback(type_str,sdp_str);GodotRuntime.free(type_str);GodotRuntime.free(sdp_str)},onerror:function(p_id,callback,error){const ref=IDHandler.get(p_id);if(!ref){return}GodotRuntime.error(error);callback()}};function _godot_js_rtc_pc_close(p_id){const ref=IDHandler.get(p_id);if(!ref){return}ref.close()}function _godot_js_rtc_pc_create(p_config,p_ref,p_on_state_change,p_on_candidate,p_on_datachannel){const onstatechange=GodotRuntime.get_func(p_on_state_change).bind(null,p_ref);const oncandidate=GodotRuntime.get_func(p_on_candidate).bind(null,p_ref);const ondatachannel=GodotRuntime.get_func(p_on_datachannel).bind(null,p_ref);const config=JSON.parse(GodotRuntime.parseString(p_config));let conn=null;try{conn=new RTCPeerConnection(config)}catch(e){GodotRuntime.error(e);return 0}const base=GodotRTCPeerConnection;const id=IDHandler.add(conn);conn.oniceconnectionstatechange=base.onstatechange.bind(null,id,conn,onstatechange);conn.onicecandidate=base.onicecandidate.bind(null,id,oncandidate);conn.ondatachannel=base.ondatachannel.bind(null,id,ondatachannel);return id}function _godot_js_rtc_pc_datachannel_create(p_id,p_label,p_config){try{const ref=IDHandler.get(p_id);if(!ref){return 0}const label=GodotRuntime.parseString(p_label);const config=JSON.parse(GodotRuntime.parseString(p_config));const channel=ref.createDataChannel(label,config);return IDHandler.add(channel)}catch(e){GodotRuntime.error(e);return 0}}function _godot_js_rtc_pc_destroy(p_id){const ref=IDHandler.get(p_id);if(!ref){return}ref.oniceconnectionstatechange=null;ref.onicecandidate=null;ref.ondatachannel=null;IDHandler.remove(p_id)}function _godot_js_rtc_pc_ice_candidate_add(p_id,p_mid_name,p_mline_idx,p_sdp){const ref=IDHandler.get(p_id);if(!ref){return}const sdpMidName=GodotRuntime.parseString(p_mid_name);const sdpName=GodotRuntime.parseString(p_sdp);ref.addIceCandidate(new RTCIceCandidate({"candidate":sdpName,"sdpMid":sdpMidName,"sdpMlineIndex":p_mline_idx}))}function _godot_js_rtc_pc_local_description_set(p_id,p_type,p_sdp,p_obj,p_on_error){const ref=IDHandler.get(p_id);if(!ref){return}const type=GodotRuntime.parseString(p_type);const sdp=GodotRuntime.parseString(p_sdp);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_obj);ref.setLocalDescription({"sdp":sdp,"type":type}).catch(function(error){GodotRTCPeerConnection.onerror(p_id,onerror,error)})}function _godot_js_rtc_pc_offer_create(p_id,p_obj,p_on_session,p_on_error){const ref=IDHandler.get(p_id);if(!ref){return}const onsession=GodotRuntime.get_func(p_on_session).bind(null,p_obj);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_obj);ref.createOffer().then(function(session){GodotRTCPeerConnection.onsession(p_id,onsession,session)}).catch(function(error){GodotRTCPeerConnection.onerror(p_id,onerror,error)})}function _godot_js_rtc_pc_remote_description_set(p_id,p_type,p_sdp,p_obj,p_session_created,p_on_error){const ref=IDHandler.get(p_id);if(!ref){return}const type=GodotRuntime.parseString(p_type);const sdp=GodotRuntime.parseString(p_sdp);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_obj);const onsession=GodotRuntime.get_func(p_session_created).bind(null,p_obj);ref.setRemoteDescription({"sdp":sdp,"type":type}).then(function(){if(type!=="offer"){return Promise.resolve()}return ref.createAnswer().then(function(session){GodotRTCPeerConnection.onsession(p_id,onsession,session)})}).catch(function(error){GodotRTCPeerConnection.onerror(p_id,onerror,error)})}var GodotWebSocket={_onopen:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}const c_str=GodotRuntime.allocString(ref.protocol);callback(c_str);GodotRuntime.free(c_str)},_onmessage:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}let buffer;let is_string=0;if(event.data instanceof ArrayBuffer){buffer=new Uint8Array(event.data)}else if(event.data instanceof Blob){GodotRuntime.error("Blob type not supported");return}else if(typeof event.data==="string"){is_string=1;const enc=new TextEncoder("utf-8");buffer=new Uint8Array(enc.encode(event.data))}else{GodotRuntime.error("Unknown message type");return}const len=buffer.length*buffer.BYTES_PER_ELEMENT;const out=GodotRuntime.malloc(len);HEAPU8.set(buffer,out);callback(out,len,is_string);GodotRuntime.free(out)},_onerror:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}callback()},_onclose:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}const c_str=GodotRuntime.allocString(event.reason);callback(event.code,c_str,event.wasClean?1:0);GodotRuntime.free(c_str)},send:function(p_id,p_data){const ref=IDHandler.get(p_id);if(!ref||ref.readyState!==ref.OPEN){return 1}ref.send(p_data);return 0},bufferedAmount:function(p_id){const ref=IDHandler.get(p_id);if(!ref){return 0}return ref.bufferedAmount},create:function(socket,p_on_open,p_on_message,p_on_error,p_on_close){const id=IDHandler.add(socket);socket.onopen=GodotWebSocket._onopen.bind(null,id,p_on_open);socket.onmessage=GodotWebSocket._onmessage.bind(null,id,p_on_message);socket.onerror=GodotWebSocket._onerror.bind(null,id,p_on_error);socket.onclose=GodotWebSocket._onclose.bind(null,id,p_on_close);return id},close:function(p_id,p_code,p_reason){const ref=IDHandler.get(p_id);if(ref&&ref.readyState<ref.CLOSING){const code=p_code;const reason=GodotRuntime.parseString(p_reason);ref.close(code,reason)}},destroy:function(p_id){const ref=IDHandler.get(p_id);if(!ref){return}GodotWebSocket.close(p_id,3001,"destroyed");IDHandler.remove(p_id);ref.onopen=null;ref.onmessage=null;ref.onerror=null;ref.onclose=null}};function _godot_js_websocket_buffered_amount(p_id){return GodotWebSocket.bufferedAmount(p_id)}function _godot_js_websocket_close(p_id,p_code,p_reason){const code=p_code;const reason=GodotRuntime.parseString(p_reason);GodotWebSocket.close(p_id,code,reason)}function _godot_js_websocket_create(p_ref,p_url,p_proto,p_on_open,p_on_message,p_on_error,p_on_close){const on_open=GodotRuntime.get_func(p_on_open).bind(null,p_ref);const on_message=GodotRuntime.get_func(p_on_message).bind(null,p_ref);const on_error=GodotRuntime.get_func(p_on_error).bind(null,p_ref);const on_close=GodotRuntime.get_func(p_on_close).bind(null,p_ref);const url=GodotRuntime.parseString(p_url);const protos=GodotRuntime.parseString(p_proto);let socket=null;try{if(protos){socket=new WebSocket(url,protos.split(","))}else{socket=new WebSocket(url)}}catch(e){return 0}socket.binaryType="arraybuffer";return GodotWebSocket.create(socket,on_open,on_message,on_error,on_close)}function _godot_js_websocket_destroy(p_id){GodotWebSocket.destroy(p_id)}function _godot_js_websocket_send(p_id,p_buf,p_buf_len,p_raw){const bytes_array=new Uint8Array(p_buf_len);let i=0;for(i=0;i<p_buf_len;i++){bytes_array[i]=GodotRuntime.getHeapValue(p_buf+i,"i8")}let out=bytes_array.buffer;if(!p_raw){out=new TextDecoder("utf-8").decode(bytes_array)}return GodotWebSocket.send(p_id,out)}var GodotJSWrapper={proxies:null,MyProxy:function(val){const id=IDHandler.add(this);GodotJSWrapper.proxies.set(val,id);let refs=1;this.ref=function(){refs++};this.unref=function(){refs--;if(refs===0){IDHandler.remove(id);GodotJSWrapper.proxies.delete(val)}};this.get_val=function(){return val};this.get_id=function(){return id}},get_proxied:function(val){const id=GodotJSWrapper.proxies.get(val);if(id===undefined){const proxy=new GodotJSWrapper.MyProxy(val);return proxy.get_id()}IDHandler.get(id).ref();return id},get_proxied_value:function(id){const proxy=IDHandler.get(id);if(proxy===undefined){return undefined}return proxy.get_val()},variant2js:function(type,val){switch(type){case 0:return null;case 1:return!!GodotRuntime.getHeapValue(val,"i64");case 2:return GodotRuntime.getHeapValue(val,"i64");case 3:return GodotRuntime.getHeapValue(val,"double");case 4:return GodotRuntime.parseString(GodotRuntime.getHeapValue(val,"*"));case 17:return GodotJSWrapper.get_proxied_value(GodotRuntime.getHeapValue(val,"i64"));default:return undefined}},js2variant:function(p_val,p_exchange){if(p_val===undefined||p_val===null){return 0}const type=typeof p_val;if(type==="boolean"){GodotRuntime.setHeapValue(p_exchange,p_val,"i64");return 1}else if(type==="number"){if(Number.isInteger(p_val)){GodotRuntime.setHeapValue(p_exchange,p_val,"i64");return 2}GodotRuntime.setHeapValue(p_exchange,p_val,"double");return 3}else if(type==="string"){const c_str=GodotRuntime.allocString(p_val);GodotRuntime.setHeapValue(p_exchange,c_str,"*");return 4}const id=GodotJSWrapper.get_proxied(p_val);GodotRuntime.setHeapValue(p_exchange,id,"i64");return 17}};function _godot_js_wrapper_create_cb(p_ref,p_func){const func=GodotRuntime.get_func(p_func);let id=0;const cb=function(){if(!GodotJSWrapper.get_proxied_value(id)){return}const args=Array.from(arguments);func(p_ref,GodotJSWrapper.get_proxied(args),args.length)};id=GodotJSWrapper.get_proxied(cb);return id}function _godot_js_wrapper_create_object(p_object,p_args,p_argc,p_convert_callback,p_exchange,p_lock,p_free_lock_callback){const name=GodotRuntime.parseString(p_object);if(typeof window[name]==="undefined"){return-1}const convert=GodotRuntime.get_func(p_convert_callback);const freeLock=GodotRuntime.get_func(p_free_lock_callback);const args=new Array(p_argc);for(let i=0;i<p_argc;i++){const type=convert(p_args,i,p_exchange,p_lock);const lock=GodotRuntime.getHeapValue(p_lock,"*");args[i]=GodotJSWrapper.variant2js(type,p_exchange);if(lock){freeLock(p_lock,type)}}try{const res=new window[name](...args);return GodotJSWrapper.js2variant(res,p_exchange)}catch(e){GodotRuntime.error(`Error calling constructor ${name} with args:`,args,"error:",e);return-1}}function _godot_js_wrapper_interface_get(p_name){const name=GodotRuntime.parseString(p_name);if(typeof window[name]!=="undefined"){return GodotJSWrapper.get_proxied(window[name])}return 0}function _godot_js_wrapper_object_call(p_id,p_method,p_args,p_argc,p_convert_callback,p_exchange,p_lock,p_free_lock_callback){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return-1}const method=GodotRuntime.parseString(p_method);const convert=GodotRuntime.get_func(p_convert_callback);const freeLock=GodotRuntime.get_func(p_free_lock_callback);const args=new Array(p_argc);for(let i=0;i<p_argc;i++){const type=convert(p_args,i,p_exchange,p_lock);const lock=GodotRuntime.getHeapValue(p_lock,"*");args[i]=GodotJSWrapper.variant2js(type,p_exchange);if(lock){freeLock(p_lock,type)}}try{const res=obj[method](...args);return GodotJSWrapper.js2variant(res,p_exchange)}catch(e){GodotRuntime.error(`Error calling method ${method} on:`,obj,"error:",e);return-1}}function _godot_js_wrapper_object_get(p_id,p_exchange,p_prop){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return 0}if(p_prop){const prop=GodotRuntime.parseString(p_prop);try{return GodotJSWrapper.js2variant(obj[prop],p_exchange)}catch(e){GodotRuntime.error(`Error getting variable ${prop} on object`,obj);return 0}}return GodotJSWrapper.js2variant(obj,p_exchange)}function _godot_js_wrapper_object_getvar(p_id,p_type,p_exchange){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return-1}const prop=GodotJSWrapper.variant2js(p_type,p_exchange);if(prop===undefined||prop===null){return-1}try{return GodotJSWrapper.js2variant(obj[prop],p_exchange)}catch(e){GodotRuntime.error(`Error getting variable ${prop} on object`,obj,e);return-1}}function _godot_js_wrapper_object_set(p_id,p_name,p_type,p_exchange){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return}const name=GodotRuntime.parseString(p_name);try{obj[name]=GodotJSWrapper.variant2js(p_type,p_exchange)}catch(e){GodotRuntime.error(`Error setting variable ${name} on object`,obj)}}function _godot_js_wrapper_object_setvar(p_id,p_key_type,p_key_ex,p_val_type,p_val_ex){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return-1}const key=GodotJSWrapper.variant2js(p_key_type,p_key_ex);try{obj[key]=GodotJSWrapper.variant2js(p_val_type,p_val_ex);return 0}catch(e){GodotRuntime.error(`Error setting variable ${key} on object`,obj);return-1}}function _godot_js_wrapper_object_unref(p_id){const proxy=IDHandler.get(p_id);if(proxy!==undefined){proxy.unref()}}var GodotWebXR={gl:null,session:null,space:null,frame:null,pose:null,orig_requestAnimationFrame:null,requestAnimationFrame:callback=>{if(GodotWebXR.session&&GodotWebXR.space){const onFrame=function(time,frame){GodotWebXR.frame=frame;GodotWebXR.pose=frame.getViewerPose(GodotWebXR.space);callback(time);GodotWebXR.frame=null;GodotWebXR.pose=null};GodotWebXR.session.requestAnimationFrame(onFrame)}else{GodotWebXR.orig_requestAnimationFrame(callback)}},monkeyPatchRequestAnimationFrame:enable=>{if(GodotWebXR.orig_requestAnimationFrame===null){GodotWebXR.orig_requestAnimationFrame=Browser.requestAnimationFrame}Browser.requestAnimationFrame=enable?GodotWebXR.requestAnimationFrame:GodotWebXR.orig_requestAnimationFrame},pauseResumeMainLoop:()=>{Browser.mainLoop.pause();window.setTimeout(function(){Browser.mainLoop.resume()},0)},shaderProgram:null,programInfo:null,buffer:null,vsSource:"\n\t\t\tconst vec2 scale = vec2(0.5, 0.5);\n\t\t\tattribute vec4 aVertexPosition;\n\n\t\t\tvarying highp vec2 vTextureCoord;\n\n\t\t\tvoid main () {\n\t\t\t\tgl_Position = aVertexPosition;\n\t\t\t\tvTextureCoord = aVertexPosition.xy * scale + scale;\n\t\t\t}\n\t\t",fsSource:"\n\t\t\tvarying highp vec2 vTextureCoord;\n\n\t\t\tuniform sampler2D uSampler;\n\n\t\t\tvoid main() {\n\t\t\t\tgl_FragColor = texture2D(uSampler, vTextureCoord);\n\t\t\t}\n\t\t",initShaderProgram:(gl,vsSource,fsSource)=>{const vertexShader=GodotWebXR.loadShader(gl,gl.VERTEX_SHADER,vsSource);const fragmentShader=GodotWebXR.loadShader(gl,gl.FRAGMENT_SHADER,fsSource);const shaderProgram=gl.createProgram();gl.attachShader(shaderProgram,vertexShader);gl.attachShader(shaderProgram,fragmentShader);gl.linkProgram(shaderProgram);if(!gl.getProgramParameter(shaderProgram,gl.LINK_STATUS)){GodotRuntime.error(`Unable to initialize the shader program: ${gl.getProgramInfoLog(shaderProgram)}`);return null}return shaderProgram},loadShader:(gl,type,source)=>{const shader=gl.createShader(type);gl.shaderSource(shader,source);gl.compileShader(shader);if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){GodotRuntime.error(`An error occurred compiling the shader: ${gl.getShaderInfoLog(shader)}`);gl.deleteShader(shader);return null}return shader},initBuffer:gl=>{const positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);const positions=[-1,-1,1,-1,-1,1,1,1];gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(positions),gl.STATIC_DRAW);return positionBuffer},blitTexture:(gl,texture)=>{if(GodotWebXR.shaderProgram===null){GodotWebXR.shaderProgram=GodotWebXR.initShaderProgram(gl,GodotWebXR.vsSource,GodotWebXR.fsSource);GodotWebXR.programInfo={program:GodotWebXR.shaderProgram,attribLocations:{vertexPosition:gl.getAttribLocation(GodotWebXR.shaderProgram,"aVertexPosition")},uniformLocations:{uSampler:gl.getUniformLocation(GodotWebXR.shaderProgram,"uSampler")}};GodotWebXR.buffer=GodotWebXR.initBuffer(gl)}const orig_program=gl.getParameter(gl.CURRENT_PROGRAM);gl.useProgram(GodotWebXR.shaderProgram);gl.bindBuffer(gl.ARRAY_BUFFER,GodotWebXR.buffer);gl.vertexAttribPointer(GodotWebXR.programInfo.attribLocations.vertexPosition,2,gl.FLOAT,false,0,0);gl.enableVertexAttribArray(GodotWebXR.programInfo.attribLocations.vertexPosition);gl.activeTexture(gl.TEXTURE0);gl.bindTexture(gl.TEXTURE_2D,texture);gl.uniform1i(GodotWebXR.programInfo.uniformLocations.uSampler,0);gl.drawArrays(gl.TRIANGLE_STRIP,0,4);gl.bindTexture(gl.TEXTURE_2D,null);gl.disableVertexAttribArray(GodotWebXR.programInfo.attribLocations.vertexPosition);gl.bindBuffer(gl.ARRAY_BUFFER,null);gl.useProgram(orig_program)},controllers:[],sampleControllers:()=>{if(!GodotWebXR.session){return}let other_index=2;const controllers=[];GodotWebXR.session.inputSources.forEach(input_source=>{if(input_source.targetRayMode==="tracked-pointer"){if(input_source.handedness==="right"){controllers[1]=input_source}else if(input_source.handedness==="left"||!controllers[0]){controllers[0]=input_source}}else{controllers[other_index++]=input_source}});GodotWebXR.controllers=controllers},getControllerId:input_source=>GodotWebXR.controllers.indexOf(input_source)};function _godot_webxr_commit_for_eye(p_eye,p_texture_id){if(!GodotWebXR.session||!GodotWebXR.pose){return}const view_index=p_eye===2?1:0;const glLayer=GodotWebXR.session.renderState.baseLayer;const view=GodotWebXR.pose.views[view_index];const viewport=glLayer.getViewport(view);const gl=GodotWebXR.gl;const orig_framebuffer=gl.getParameter(gl.FRAMEBUFFER_BINDING);const orig_viewport=gl.getParameter(gl.VIEWPORT);gl.bindFramebuffer(gl.FRAMEBUFFER,glLayer.framebuffer);gl.viewport(viewport.x,viewport.y,viewport.width,viewport.height);GodotWebXR.blitTexture(gl,GL.textures[p_texture_id]);gl.bindFramebuffer(gl.FRAMEBUFFER,orig_framebuffer);gl.viewport(orig_viewport[0],orig_viewport[1],orig_viewport[2],orig_viewport[3])}function _godot_webxr_get_bounds_geometry(){if(!GodotWebXR.space||!GodotWebXR.space.boundsGeometry){return 0}const point_count=GodotWebXR.space.boundsGeometry.length;if(point_count===0){return 0}const buf=GodotRuntime.malloc((point_count*3+1)*4);GodotRuntime.setHeapValue(buf,point_count,"i32");for(let i=0;i<point_count;i++){const point=GodotWebXR.space.boundsGeometry[i];GodotRuntime.setHeapValue(buf+(i*3+1)*4,point.x,"float");GodotRuntime.setHeapValue(buf+(i*3+2)*4,point.y,"float");GodotRuntime.setHeapValue(buf+(i*3+3)*4,point.z,"float")}return buf}function _godot_webxr_get_controller_axes(p_controller,p_xr_standard_mapping){if(GodotWebXR.controllers.length===0){return 0}const controller=GodotWebXR.controllers[p_controller];if(!controller||!controller.gamepad){return 0}let axes=controller.gamepad.axes;if(controller.gamepad.mapping==="xr-standard"){if(p_xr_standard_mapping){const trigger_axis=controller.gamepad.buttons[0].value;const grip_axis=controller.gamepad.buttons[1].value;axes=[axes[2],axes[3]*-1,trigger_axis,grip_axis,grip_axis,0,axes[0],axes[1]*-1]}else{axes[1]*=-1;axes[3]*=-1}}const buf=GodotRuntime.malloc((axes.length+1)*4);GodotRuntime.setHeapValue(buf,axes.length,"i32");for(let i=0;i<axes.length;i++){GodotRuntime.setHeapValue(buf+4+i*4,axes[i],"float")}return buf}function _godot_webxr_get_controller_buttons(p_controller,p_xr_standard_mapping){if(GodotWebXR.controllers.length===0){return 0}const controller=GodotWebXR.controllers[p_controller];if(!controller||!controller.gamepad){return 0}let buttons=controller.gamepad.buttons;if(controller.gamepad.mapping==="xr-standard"&&p_xr_standard_mapping){buttons=[0,buttons[5],buttons[1],buttons[3],buttons[6],buttons[7],buttons[8],buttons[4],buttons[9],buttons[10],buttons[11],buttons[12],buttons[13],buttons[14],buttons[2],buttons[0]]}const buf=GodotRuntime.malloc((buttons.length+1)*4);GodotRuntime.setHeapValue(buf,buttons.length,"i32");for(let i=0;i<buttons.length;i++){GodotRuntime.setHeapValue(buf+4+i*4,buttons[i]?buttons[i].value:0,"float")}return buf}function _godot_webxr_get_controller_count(){if(!GodotWebXR.session||!GodotWebXR.frame){return 0}return GodotWebXR.controllers.length}function _godot_webxr_get_controller_target_ray_mode(p_controller){if(p_controller<0||p_controller>=GodotWebXR.controllers.length){return 0}const controller=GodotWebXR.controllers[p_controller];if(!controller){return 0}switch(controller.targetRayMode){case"gaze":return 1;case"tracked-pointer":return 2;case"screen":return 3;default:break}return 0}function _godot_webxr_get_controller_transform(p_controller){if(!GodotWebXR.session||!GodotWebXR.frame){return 0}const controller=GodotWebXR.controllers[p_controller];if(!controller){return 0}const frame=GodotWebXR.frame;const space=GodotWebXR.space;const pose=frame.getPose(controller.targetRaySpace,space);if(!pose){return 0}const matrix=pose.transform.matrix;const buf=GodotRuntime.malloc(16*4);for(let i=0;i<16;i++){GodotRuntime.setHeapValue(buf+i*4,matrix[i],"float")}return buf}function _godot_webxr_get_projection_for_eye(p_eye){if(!GodotWebXR.session||!GodotWebXR.pose){return 0}const view_index=p_eye===2?1:0;const matrix=GodotWebXR.pose.views[view_index].projectionMatrix;const buf=GodotRuntime.malloc(16*4);for(let i=0;i<16;i++){GodotRuntime.setHeapValue(buf+i*4,matrix[i],"float")}return buf}function _godot_webxr_get_render_targetsize(){if(!GodotWebXR.session||!GodotWebXR.pose){return 0}const glLayer=GodotWebXR.session.renderState.baseLayer;const view=GodotWebXR.pose.views[0];const viewport=glLayer.getViewport(view);const buf=GodotRuntime.malloc(2*4);GodotRuntime.setHeapValue(buf+0,viewport.width,"i32");GodotRuntime.setHeapValue(buf+4,viewport.height,"i32");return buf}function _godot_webxr_get_transform_for_eye(p_eye){if(!GodotWebXR.session||!GodotWebXR.pose){return 0}const views=GodotWebXR.pose.views;let matrix;if(p_eye===0){matrix=GodotWebXR.pose.transform.matrix}else{matrix=views[p_eye-1].transform.matrix}const buf=GodotRuntime.malloc(16*4);for(let i=0;i<16;i++){GodotRuntime.setHeapValue(buf+i*4,matrix[i],"float")}return buf}function _godot_webxr_get_view_count(){if(!GodotWebXR.session||!GodotWebXR.pose){return 0}return GodotWebXR.pose.views.length}function _godot_webxr_get_visibility_state(){if(!GodotWebXR.session||!GodotWebXR.session.visibilityState){return 0}return GodotRuntime.allocString(GodotWebXR.session.visibilityState)}function _godot_webxr_initialize(p_session_mode,p_required_features,p_optional_features,p_requested_reference_spaces,p_on_session_started,p_on_session_ended,p_on_session_failed,p_on_controller_changed,p_on_input_event,p_on_simple_event){GodotWebXR.monkeyPatchRequestAnimationFrame(true);const session_mode=GodotRuntime.parseString(p_session_mode);const required_features=GodotRuntime.parseString(p_required_features).split(",").map(s=>s.trim()).filter(s=>s!=="");const optional_features=GodotRuntime.parseString(p_optional_features).split(",").map(s=>s.trim()).filter(s=>s!=="");const requested_reference_space_types=GodotRuntime.parseString(p_requested_reference_spaces).split(",").map(s=>s.trim());const onstarted=GodotRuntime.get_func(p_on_session_started);const onended=GodotRuntime.get_func(p_on_session_ended);const onfailed=GodotRuntime.get_func(p_on_session_failed);const oncontroller=GodotRuntime.get_func(p_on_controller_changed);const oninputevent=GodotRuntime.get_func(p_on_input_event);const onsimpleevent=GodotRuntime.get_func(p_on_simple_event);const session_init={};if(required_features.length>0){session_init["requiredFeatures"]=required_features}if(optional_features.length>0){session_init["optionalFeatures"]=optional_features}navigator.xr.requestSession(session_mode,session_init).then(function(session){GodotWebXR.session=session;session.addEventListener("end",function(evt){onended()});session.addEventListener("inputsourceschange",function(evt){let controller_changed=false;[evt.added,evt.removed].forEach(lst=>{lst.forEach(input_source=>{if(input_source.targetRayMode==="tracked-pointer"){controller_changed=true}})});if(controller_changed){oncontroller()}});["selectstart","selectend","select","squeezestart","squeezeend","squeeze"].forEach((input_event,index)=>{session.addEventListener(input_event,function(evt){GodotWebXR.sampleControllers();oninputevent(index,GodotWebXR.getControllerId(evt.inputSource))})});session.addEventListener("visibilitychange",function(evt){const c_str=GodotRuntime.allocString("visibility_state_changed");onsimpleevent(c_str);GodotRuntime.free(c_str)});const gl_context_handle=_emscripten_webgl_get_current_context();const gl=GL.getContext(gl_context_handle).GLctx;GodotWebXR.gl=gl;gl.makeXRCompatible().then(function(){session.updateRenderState({baseLayer:new XRWebGLLayer(session,gl)});function onReferenceSpaceSuccess(reference_space,reference_space_type){GodotWebXR.space=reference_space;reference_space.onreset=function(evt){const c_str=GodotRuntime.allocString("reference_space_reset");onsimpleevent(c_str);GodotRuntime.free(c_str)};GodotWebXR.pauseResumeMainLoop();window.setTimeout(function(){const c_str=GodotRuntime.allocString(reference_space_type);onstarted(c_str);GodotRuntime.free(c_str)},0)}function requestReferenceSpace(){const reference_space_type=requested_reference_space_types.shift();session.requestReferenceSpace(reference_space_type).then(refSpace=>{onReferenceSpaceSuccess(refSpace,reference_space_type)}).catch(()=>{if(requested_reference_space_types.length===0){const c_str=GodotRuntime.allocString("Unable to get any of the requested reference space types");onfailed(c_str);GodotRuntime.free(c_str)}else{requestReferenceSpace()}})}requestReferenceSpace()}).catch(function(error){const c_str=GodotRuntime.allocString(`Unable to make WebGL context compatible with WebXR: ${error}`);onfailed(c_str);GodotRuntime.free(c_str)})}).catch(function(error){const c_str=GodotRuntime.allocString(`Unable to start session: ${error}`);onfailed(c_str);GodotRuntime.free(c_str)})}function _godot_webxr_is_controller_connected(p_controller){if(!GodotWebXR.session||!GodotWebXR.frame){return false}return!!GodotWebXR.controllers[p_controller]}function _godot_webxr_is_session_supported(p_session_mode,p_callback){const session_mode=GodotRuntime.parseString(p_session_mode);const cb=GodotRuntime.get_func(p_callback);if(navigator.xr){navigator.xr.isSessionSupported(session_mode).then(function(supported){const c_str=GodotRuntime.allocString(session_mode);cb(c_str,supported?1:0);GodotRuntime.free(c_str)})}else{const c_str=GodotRuntime.allocString(session_mode);cb(c_str,0);GodotRuntime.free(c_str)}}function _godot_webxr_is_supported(){return!!navigator.xr}function _godot_webxr_sample_controller_data(){GodotWebXR.sampleControllers()}function _godot_webxr_uninitialize(){if(GodotWebXR.session){GodotWebXR.session.end().catch(e=>{})}GodotWebXR.session=null;GodotWebXR.space=null;GodotWebXR.frame=null;GodotWebXR.pose=null;GodotWebXR.monkeyPatchRequestAnimationFrame(false);GodotWebXR.pauseResumeMainLoop()}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,"0")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["request_quit"]=function(){GodotOS.request_quit()};Module["onExit"]=GodotOS.cleanup;GodotOS._fs_sync_promise=Promise.resolve();Module["initConfig"]=GodotConfig.init_config;Module["initFS"]=GodotFS.init;Module["copyToFS"]=GodotFS.copy_to_fs;ERRNO_CODES={"EPERM":63,"ENOENT":44,"ESRCH":71,"EINTR":27,"EIO":29,"ENXIO":60,"E2BIG":1,"ENOEXEC":45,"EBADF":8,"ECHILD":12,"EAGAIN":6,"EWOULDBLOCK":6,"ENOMEM":48,"EACCES":2,"EFAULT":21,"ENOTBLK":105,"EBUSY":10,"EEXIST":20,"EXDEV":75,"ENODEV":43,"ENOTDIR":54,"EISDIR":31,"EINVAL":28,"ENFILE":41,"EMFILE":33,"ENOTTY":59,"ETXTBSY":74,"EFBIG":22,"ENOSPC":51,"ESPIPE":70,"EROFS":69,"EMLINK":34,"EPIPE":64,"EDOM":18,"ERANGE":68,"ENOMSG":49,"EIDRM":24,"ECHRNG":106,"EL2NSYNC":156,"EL3HLT":107,"EL3RST":108,"ELNRNG":109,"EUNATCH":110,"ENOCSI":111,"EL2HLT":112,"EDEADLK":16,"ENOLCK":46,"EBADE":113,"EBADR":114,"EXFULL":115,"ENOANO":104,"EBADRQC":103,"EBADSLT":102,"EDEADLOCK":16,"EBFONT":101,"ENOSTR":100,"ENODATA":116,"ETIME":117,"ENOSR":118,"ENONET":119,"ENOPKG":120,"EREMOTE":121,"ENOLINK":47,"EADV":122,"ESRMNT":123,"ECOMM":124,"EPROTO":65,"EMULTIHOP":36,"EDOTDOT":125,"EBADMSG":9,"ENOTUNIQ":126,"EBADFD":127,"EREMCHG":128,"ELIBACC":129,"ELIBBAD":130,"ELIBSCN":131,"ELIBMAX":132,"ELIBEXEC":133,"ENOSYS":52,"ENOTEMPTY":55,"ENAMETOOLONG":37,"ELOOP":32,"EOPNOTSUPP":138,"EPFNOSUPPORT":139,"ECONNRESET":15,"ENOBUFS":42,"EAFNOSUPPORT":5,"EPROTOTYPE":67,"ENOTSOCK":57,"ENOPROTOOPT":50,"ESHUTDOWN":140,"ECONNREFUSED":14,"EADDRINUSE":3,"ECONNABORTED":13,"ENETUNREACH":40,"ENETDOWN":38,"ETIMEDOUT":73,"EHOSTDOWN":142,"EHOSTUNREACH":23,"EINPROGRESS":26,"EALREADY":7,"EDESTADDRREQ":17,"EMSGSIZE":35,"EPROTONOSUPPORT":66,"ESOCKTNOSUPPORT":137,"EADDRNOTAVAIL":4,"ENETRESET":39,"EISCONN":30,"ENOTCONN":53,"ETOOMANYREFS":141,"EUSERS":136,"EDQUOT":19,"ESTALE":72,"ENOTSUP":138,"ENOMEDIUM":148,"EILSEQ":25,"EOVERFLOW":61,"ECANCELED":11,"ENOTRECOVERABLE":56,"EOWNERDEAD":62,"ESTRPIPE":135};GodotOS.atexit(function(resolve,reject){GodotDisplayCursor.clear();resolve()});GodotOS.atexit(function(resolve,reject){GodotEventListeners.clear();resolve()});GodotOS.atexit(function(resolve,reject){GodotDisplayVK.clear();resolve()});GodotJSWrapper.proxies=new Map;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"a":___assert_fail,"dk":___call_sighandler,"ck":___syscall__newselect,"bk":___syscall_accept4,"ak":___syscall_bind,"$j":___syscall_chdir,"_j":___syscall_chmod,"Zj":___syscall_connect,"Yj":___syscall_faccessat,"Ma":___syscall_fcntl64,"Xj":___syscall_getcwd,"Wj":___syscall_getdents64,"Vj":___syscall_getsockname,"Uj":___syscall_getsockopt,"Mb":___syscall_ioctl,"Tj":___syscall_listen,"Sj":___syscall_lstat64,"Rj":___syscall_mkdirat,"Qj":___syscall_newfstatat,"Lb":___syscall_openat,"Pj":___syscall_poll,"Oj":___syscall_readlinkat,"Nj":___syscall_recvfrom,"Mj":___syscall_renameat,"Lj":___syscall_rmdir,"Kj":___syscall_sendto,"Kb":___syscall_socket,"Jj":___syscall_stat64,"Ij":___syscall_statfs64,"Hj":___syscall_symlink,"Gj":___syscall_unlinkat,"Cj":__dlinit,"Bj":__dlopen_js,"Aj":__dlsym_js,"fb":__emscripten_date_now,"zj":__emscripten_get_now_is_monotonic,"yj":__emscripten_throw_longjmp,"xj":__gmtime_js,"wj":__localtime_js,"vj":__tzset_js,"na":_abort,"Hb":_emscripten_cancel_main_loop,"uj":_emscripten_force_exit,"eb":_emscripten_get_now,"tj":_emscripten_glActiveTexture,"sj":_emscripten_glAttachShader,"rj":_emscripten_glBeginQuery,"qj":_emscripten_glBeginQueryEXT,"pj":_emscripten_glBeginTransformFeedback,"oj":_emscripten_glBindAttribLocation,"nj":_emscripten_glBindBuffer,"mj":_emscripten_glBindBufferBase,"lj":_emscripten_glBindBufferRange,"kj":_emscripten_glBindFramebuffer,"jj":_emscripten_glBindRenderbuffer,"ij":_emscripten_glBindSampler,"hj":_emscripten_glBindTexture,"gj":_emscripten_glBindTransformFeedback,"fj":_emscripten_glBindVertexArray,"ej":_emscripten_glBindVertexArrayOES,"dj":_emscripten_glBlendColor,"cj":_emscripten_glBlendEquation,"bj":_emscripten_glBlendEquationSeparate,"aj":_emscripten_glBlendFunc,"$i":_emscripten_glBlendFuncSeparate,"_i":_emscripten_glBlitFramebuffer,"Zi":_emscripten_glBufferData,"Yi":_emscripten_glBufferSubData,"Xi":_emscripten_glCheckFramebufferStatus,"Wi":_emscripten_glClear,"Vi":_emscripten_glClearBufferfi,"Ui":_emscripten_glClearBufferfv,"Ti":_emscripten_glClearBufferiv,"Si":_emscripten_glClearBufferuiv,"Ri":_emscripten_glClearColor,"Qi":_emscripten_glClearDepthf,"Pi":_emscripten_glClearStencil,"Oi":_emscripten_glClientWaitSync,"Ni":_emscripten_glColorMask,"Mi":_emscripten_glCompileShader,"Li":_emscripten_glCompressedTexImage2D,"Ki":_emscripten_glCompressedTexImage3D,"Ji":_emscripten_glCompressedTexSubImage2D,"Ii":_emscripten_glCompressedTexSubImage3D,"Hi":_emscripten_glCopyBufferSubData,"Gi":_emscripten_glCopyTexImage2D,"Fi":_emscripten_glCopyTexSubImage2D,"Ei":_emscripten_glCopyTexSubImage3D,"Di":_emscripten_glCreateProgram,"Ci":_emscripten_glCreateShader,"Bi":_emscripten_glCullFace,"Ai":_emscripten_glDeleteBuffers,"zi":_emscripten_glDeleteFramebuffers,"yi":_emscripten_glDeleteProgram,"xi":_emscripten_glDeleteQueries,"wi":_emscripten_glDeleteQueriesEXT,"vi":_emscripten_glDeleteRenderbuffers,"ui":_emscripten_glDeleteSamplers,"ti":_emscripten_glDeleteShader,"si":_emscripten_glDeleteSync,"ri":_emscripten_glDeleteTextures,"qi":_emscripten_glDeleteTransformFeedbacks,"pi":_emscripten_glDeleteVertexArrays,"oi":_emscripten_glDeleteVertexArraysOES,"ni":_emscripten_glDepthFunc,"mi":_emscripten_glDepthMask,"li":_emscripten_glDepthRangef,"ki":_emscripten_glDetachShader,"ji":_emscripten_glDisable,"ii":_emscripten_glDisableVertexAttribArray,"hi":_emscripten_glDrawArrays,"gi":_emscripten_glDrawArraysInstanced,"fi":_emscripten_glDrawArraysInstancedANGLE,"ei":_emscripten_glDrawArraysInstancedARB,"di":_emscripten_glDrawArraysInstancedEXT,"ci":_emscripten_glDrawArraysInstancedNV,"bi":_emscripten_glDrawBuffers,"ai":_emscripten_glDrawBuffersEXT,"$h":_emscripten_glDrawBuffersWEBGL,"_h":_emscripten_glDrawElements,"Zh":_emscripten_glDrawElementsInstanced,"Yh":_emscripten_glDrawElementsInstancedANGLE,"Xh":_emscripten_glDrawElementsInstancedARB,"Wh":_emscripten_glDrawElementsInstancedEXT,"Vh":_emscripten_glDrawElementsInstancedNV,"Uh":_emscripten_glDrawRangeElements,"Th":_emscripten_glEnable,"Sh":_emscripten_glEnableVertexAttribArray,"Rh":_emscripten_glEndQuery,"Qh":_emscripten_glEndQueryEXT,"Ph":_emscripten_glEndTransformFeedback,"Oh":_emscripten_glFenceSync,"Nh":_emscripten_glFinish,"Mh":_emscripten_glFlush,"Lh":_emscripten_glFramebufferRenderbuffer,"Kh":_emscripten_glFramebufferTexture2D,"Jh":_emscripten_glFramebufferTextureLayer,"Ih":_emscripten_glFrontFace,"Hh":_emscripten_glGenBuffers,"Gh":_emscripten_glGenFramebuffers,"Fh":_emscripten_glGenQueries,"Eh":_emscripten_glGenQueriesEXT,"Dh":_emscripten_glGenRenderbuffers,"Ch":_emscripten_glGenSamplers,"Bh":_emscripten_glGenTextures,"Ah":_emscripten_glGenTransformFeedbacks,"zh":_emscripten_glGenVertexArrays,"yh":_emscripten_glGenVertexArraysOES,"xh":_emscripten_glGenerateMipmap,"wh":_emscripten_glGetActiveAttrib,"vh":_emscripten_glGetActiveUniform,"uh":_emscripten_glGetActiveUniformBlockName,"th":_emscripten_glGetActiveUniformBlockiv,"sh":_emscripten_glGetActiveUniformsiv,"rh":_emscripten_glGetAttachedShaders,"qh":_emscripten_glGetAttribLocation,"ph":_emscripten_glGetBooleanv,"oh":_emscripten_glGetBufferParameteri64v,"nh":_emscripten_glGetBufferParameteriv,"mh":_emscripten_glGetError,"lh":_emscripten_glGetFloatv,"kh":_emscripten_glGetFragDataLocation,"jh":_emscripten_glGetFramebufferAttachmentParameteriv,"ih":_emscripten_glGetInteger64i_v,"hh":_emscripten_glGetInteger64v,"gh":_emscripten_glGetIntegeri_v,"fh":_emscripten_glGetIntegerv,"eh":_emscripten_glGetInternalformativ,"dh":_emscripten_glGetProgramBinary,"ch":_emscripten_glGetProgramInfoLog,"bh":_emscripten_glGetProgramiv,"ah":_emscripten_glGetQueryObjecti64vEXT,"$g":_emscripten_glGetQueryObjectivEXT,"_g":_emscripten_glGetQueryObjectui64vEXT,"Zg":_emscripten_glGetQueryObjectuiv,"Yg":_emscripten_glGetQueryObjectuivEXT,"Xg":_emscripten_glGetQueryiv,"Wg":_emscripten_glGetQueryivEXT,"Vg":_emscripten_glGetRenderbufferParameteriv,"Ug":_emscripten_glGetSamplerParameterfv,"Tg":_emscripten_glGetSamplerParameteriv,"Sg":_emscripten_glGetShaderInfoLog,"Rg":_emscripten_glGetShaderPrecisionFormat,"Qg":_emscripten_glGetShaderSource,"Pg":_emscripten_glGetShaderiv,"Og":_emscripten_glGetString,"Ng":_emscripten_glGetStringi,"Mg":_emscripten_glGetSynciv,"Lg":_emscripten_glGetTexParameterfv,"Kg":_emscripten_glGetTexParameteriv,"Jg":_emscripten_glGetTransformFeedbackVarying,"Ig":_emscripten_glGetUniformBlockIndex,"Hg":_emscripten_glGetUniformIndices,"Gg":_emscripten_glGetUniformLocation,"Fg":_emscripten_glGetUniformfv,"Eg":_emscripten_glGetUniformiv,"Dg":_emscripten_glGetUniformuiv,"Cg":_emscripten_glGetVertexAttribIiv,"Bg":_emscripten_glGetVertexAttribIuiv,"Ag":_emscripten_glGetVertexAttribPointerv,"zg":_emscripten_glGetVertexAttribfv,"yg":_emscripten_glGetVertexAttribiv,"xg":_emscripten_glHint,"wg":_emscripten_glInvalidateFramebuffer,"vg":_emscripten_glInvalidateSubFramebuffer,"ug":_emscripten_glIsBuffer,"tg":_emscripten_glIsEnabled,"sg":_emscripten_glIsFramebuffer,"rg":_emscripten_glIsProgram,"qg":_emscripten_glIsQuery,"pg":_emscripten_glIsQueryEXT,"og":_emscripten_glIsRenderbuffer,"ng":_emscripten_glIsSampler,"mg":_emscripten_glIsShader,"lg":_emscripten_glIsSync,"kg":_emscripten_glIsTexture,"jg":_emscripten_glIsTransformFeedback,"ig":_emscripten_glIsVertexArray,"hg":_emscripten_glIsVertexArrayOES,"gg":_emscripten_glLineWidth,"fg":_emscripten_glLinkProgram,"eg":_emscripten_glPauseTransformFeedback,"dg":_emscripten_glPixelStorei,"cg":_emscripten_glPolygonOffset,"bg":_emscripten_glProgramBinary,"ag":_emscripten_glProgramParameteri,"$f":_emscripten_glQueryCounterEXT,"_f":_emscripten_glReadBuffer,"Zf":_emscripten_glReadPixels,"Yf":_emscripten_glReleaseShaderCompiler,"Xf":_emscripten_glRenderbufferStorage,"Wf":_emscripten_glRenderbufferStorageMultisample,"Vf":_emscripten_glResumeTransformFeedback,"Uf":_emscripten_glSampleCoverage,"Tf":_emscripten_glSamplerParameterf,"Sf":_emscripten_glSamplerParameterfv,"Rf":_emscripten_glSamplerParameteri,"Qf":_emscripten_glSamplerParameteriv,"Pf":_emscripten_glScissor,"Of":_emscripten_glShaderBinary,"Nf":_emscripten_glShaderSource,"Mf":_emscripten_glStencilFunc,"Lf":_emscripten_glStencilFuncSeparate,"Kf":_emscripten_glStencilMask,"Jf":_emscripten_glStencilMaskSeparate,"If":_emscripten_glStencilOp,"Hf":_emscripten_glStencilOpSeparate,"Gf":_emscripten_glTexImage2D,"Ff":_emscripten_glTexImage3D,"Ef":_emscripten_glTexParameterf,"Df":_emscripten_glTexParameterfv,"Cf":_emscripten_glTexParameteri,"Bf":_emscripten_glTexParameteriv,"Af":_emscripten_glTexStorage2D,"zf":_emscripten_glTexStorage3D,"yf":_emscripten_glTexSubImage2D,"xf":_emscripten_glTexSubImage3D,"wf":_emscripten_glTransformFeedbackVaryings,"vf":_emscripten_glUniform1f,"uf":_emscripten_glUniform1fv,"tf":_emscripten_glUniform1i,"sf":_emscripten_glUniform1iv,"rf":_emscripten_glUniform1ui,"qf":_emscripten_glUniform1uiv,"pf":_emscripten_glUniform2f,"of":_emscripten_glUniform2fv,"nf":_emscripten_glUniform2i,"mf":_emscripten_glUniform2iv,"lf":_emscripten_glUniform2ui,"kf":_emscripten_glUniform2uiv,"jf":_emscripten_glUniform3f,"hf":_emscripten_glUniform3fv,"gf":_emscripten_glUniform3i,"ff":_emscripten_glUniform3iv,"ef":_emscripten_glUniform3ui,"df":_emscripten_glUniform3uiv,"cf":_emscripten_glUniform4f,"bf":_emscripten_glUniform4fv,"af":_emscripten_glUniform4i,"$e":_emscripten_glUniform4iv,"_e":_emscripten_glUniform4ui,"Ze":_emscripten_glUniform4uiv,"Ye":_emscripten_glUniformBlockBinding,"Xe":_emscripten_glUniformMatrix2fv,"We":_emscripten_glUniformMatrix2x3fv,"Ve":_emscripten_glUniformMatrix2x4fv,"Ue":_emscripten_glUniformMatrix3fv,"Te":_emscripten_glUniformMatrix3x2fv,"Se":_emscripten_glUniformMatrix3x4fv,"Re":_emscripten_glUniformMatrix4fv,"Qe":_emscripten_glUniformMatrix4x2fv,"Pe":_emscripten_glUniformMatrix4x3fv,"Oe":_emscripten_glUseProgram,"Ne":_emscripten_glValidateProgram,"Me":_emscripten_glVertexAttrib1f,"Le":_emscripten_glVertexAttrib1fv,"Ke":_emscripten_glVertexAttrib2f,"Je":_emscripten_glVertexAttrib2fv,"Ie":_emscripten_glVertexAttrib3f,"He":_emscripten_glVertexAttrib3fv,"Ge":_emscripten_glVertexAttrib4f,"Fe":_emscripten_glVertexAttrib4fv,"Ee":_emscripten_glVertexAttribDivisor,"De":_emscripten_glVertexAttribDivisorANGLE,"Ce":_emscripten_glVertexAttribDivisorARB,"Be":_emscripten_glVertexAttribDivisorEXT,"Ae":_emscripten_glVertexAttribDivisorNV,"ze":_emscripten_glVertexAttribI4i,"ye":_emscripten_glVertexAttribI4iv,"xe":_emscripten_glVertexAttribI4ui,"we":_emscripten_glVertexAttribI4uiv,"ve":_emscripten_glVertexAttribIPointer,"ue":_emscripten_glVertexAttribPointer,"te":_emscripten_glViewport,"se":_emscripten_glWaitSync,"re":_emscripten_memcpy_big,"db":_emscripten_resize_heap,"Gb":_emscripten_set_main_loop,"Fb":_emscripten_webgl_commit_frame,"qe":_emscripten_webgl_create_context,"pe":_emscripten_webgl_destroy_context,"oe":_emscripten_webgl_init_context_attributes,"ne":_emscripten_webgl_make_context_current,"Fj":_environ_get,"Ej":_environ_sizes_get,"Ba":_fd_close,"Dj":_fd_fdstat_get,"Jb":_fd_read,"Pb":_fd_seek,"Ib":_fd_write,"l":_getTempRet0,"cb":_getaddrinfo,"me":_getnameinfo,"d":_glActiveTexture,"Sa":_glAttachShader,"bb":_glBeginTransformFeedback,"Eb":_glBindAttribLocation,"c":_glBindBuffer,"Q":_glBindBufferBase,"f":_glBindFramebuffer,"da":_glBindRenderbuffer,"b":_glBindTexture,"n":_glBindVertexArray,"E":_glBlendEquation,"_":_glBlendFunc,"x":_glBlendFuncSeparate,"ja":_glBlitFramebuffer,"r":_glBufferData,"M":_glBufferSubData,"L":_glCheckFramebufferStatus,"K":_glClear,"va":_glClearBufferfv,"P":_glClearColor,"ca":_glClearDepthf,"O":_glColorMask,"ma":_glCompileShader,"Db":_glCompressedTexImage2D,"le":_glCompressedTexSubImage2D,"Cb":_glCompressedTexSubImage3D,"ke":_glCopyBufferSubData,"ab":_glCopyTexSubImage2D,"$a":_glCreateProgram,"Ha":_glCreateShader,"ua":_glCullFace,"N":_glDeleteBuffers,"G":_glDeleteFramebuffers,"U":_glDeleteProgram,"V":_glDeleteRenderbuffers,"J":_glDeleteShader,"B":_glDeleteTextures,"fa":_glDeleteVertexArrays,"Z":_glDepthFunc,"I":_glDepthMask,"j":_glDisable,"q":_glDisableVertexAttribArray,"D":_glDrawArrays,"Aa":_glDrawArraysInstanced,"La":_glDrawBuffers,"Y":_glDrawElements,"qa":_glDrawElementsInstanced,"t":_glEnable,"k":_glEnableVertexAttribArray,"_a":_glEndTransformFeedback,"Bb":_glFinish,"ba":_glFramebufferRenderbuffer,"y":_glFramebufferTexture2D,"je":_glFramebufferTextureLayer,"Ab":_glFrontFace,"C":_glGenBuffers,"F":_glGenFramebuffers,"ia":_glGenRenderbuffers,"w":_glGenTextures,"W":_glGenVertexArrays,"T":_glGenerateMipmap,"zb":_glGetError,"yb":_glGetFloatv,"aa":_glGetIntegerv,"ie":_glGetProgramBinary,"xb":_glGetProgramInfoLog,"Ga":_glGetProgramiv,"Ra":_glGetShaderInfoLog,"he":_glGetShaderSource,"ea":_glGetShaderiv,"za":_glGetString,"ge":_glGetStringi,"fe":_glGetUniformBlockIndex,"ya":_glGetUniformLocation,"ee":_glInvalidateFramebuffer,"wb":_glLinkProgram,"la":_glPixelStorei,"de":_glProgramBinary,"ce":_glProgramParameteri,"ha":_glReadBuffer,"Za":_glReadPixels,"ga":_glRenderbufferStorage,"Ka":_glRenderbufferStorageMultisample,"S":_glScissor,"Qa":_glShaderSource,"s":_glTexImage2D,"Ja":_glTexImage3D,"h":_glTexParameterf,"e":_glTexParameteri,"be":_glTexStorage2D,"Ia":_glTexSubImage2D,"Pa":_glTexSubImage3D,"ae":_glTransformFeedbackVaryings,"g":_glUniform1f,"v":_glUniform1i,"Ya":_glUniform1iv,"vb":_glUniform1ui,"Xa":_glUniform2f,"o":_glUniform2fv,"Fa":_glUniform2i,"ka":_glUniform2iv,"Wa":_glUniform3f,"X":_glUniform3fv,"Ea":_glUniform3i,"xa":_glUniform4f,"z":_glUniform4fv,"Da":_glUniform4i,"$d":_glUniformBlockBinding,"ub":_glUniformMatrix2fv,"tb":_glUniformMatrix3fv,"p":_glUniformMatrix4fv,"ta":_glUseProgram,"A":_glVertexAttrib4f,"R":_glVertexAttrib4fv,"H":_glVertexAttribDivisor,"_d":_glVertexAttribI4ui,"Ca":_glVertexAttribIPointer,"i":_glVertexAttribPointer,"u":_glViewport,"Zd":_godot_audio_capture_start,"Yd":_godot_audio_capture_stop,"Xd":_godot_audio_has_script_processor,"Wd":_godot_audio_has_worklet,"Vd":_godot_audio_init,"Ud":_godot_audio_is_available,"Td":_godot_audio_resume,"Sd":_godot_audio_script_create,"Rd":_godot_audio_script_start,"Qd":_godot_audio_worklet_create,"Pd":_godot_audio_worklet_start_no_threads,"Od":_godot_js_config_canvas_id_get,"Nd":_godot_js_config_locale_get,"Md":_godot_js_display_alert,"Ld":_godot_js_display_canvas_focus,"Kd":_godot_js_display_canvas_is_focused,"Jd":_godot_js_display_clipboard_get,"Id":_godot_js_display_clipboard_set,"Hd":_godot_js_display_cursor_is_hidden,"Gd":_godot_js_display_cursor_is_locked,"Va":_godot_js_display_cursor_lock_set,"sb":_godot_js_display_cursor_set_custom_shape,"Fd":_godot_js_display_cursor_set_shape,"Ua":_godot_js_display_cursor_set_visible,"Ed":_godot_js_display_desired_size_set,"Dd":_godot_js_display_fullscreen_cb,"Cd":_godot_js_display_fullscreen_exit,"Bd":_godot_js_display_fullscreen_request,"Ad":_godot_js_display_glGetBufferSubData,"rb":_godot_js_display_has_webgl,"zd":_godot_js_display_is_swap_ok_cancel,"yd":_godot_js_display_notification_cb,"xd":_godot_js_display_pixel_ratio_get,"wd":_godot_js_display_screen_dpi_get,"vd":_godot_js_display_screen_size_get,"ud":_godot_js_display_setup_canvas,"td":_godot_js_display_size_update,"sd":_godot_js_display_touchscreen_is_available,"rd":_godot_js_display_vk_available,"qd":_godot_js_display_vk_cb,"pd":_godot_js_display_vk_hide,"od":_godot_js_display_vk_show,"nd":_godot_js_display_window_blur_cb,"md":_godot_js_display_window_icon_set,"ld":_godot_js_display_window_size_get,"kd":_godot_js_display_window_title_set,"jd":_godot_js_eval,"id":_godot_js_fetch_body_length_get,"hd":_godot_js_fetch_create,"qb":_godot_js_fetch_free,"gd":_godot_js_fetch_http_status_get,"fd":_godot_js_fetch_is_chunked,"ed":_godot_js_fetch_read_chunk,"dd":_godot_js_fetch_read_headers,"Ta":_godot_js_fetch_state_get,"cd":_godot_js_input_drop_files_cb,"bd":_godot_js_input_gamepad_cb,"ad":_godot_js_input_gamepad_sample,"$c":_godot_js_input_gamepad_sample_count,"_c":_godot_js_input_gamepad_sample_get,"Zc":_godot_js_input_key_cb,"Yc":_godot_js_input_mouse_button_cb,"Xc":_godot_js_input_mouse_move_cb,"Wc":_godot_js_input_mouse_wheel_cb,"Vc":_godot_js_input_paste_cb,"Uc":_godot_js_input_touch_cb,"Tc":_godot_js_input_vibrate_handheld,"Sc":_godot_js_os_download_buffer,"Rc":_godot_js_os_execute,"Qc":_godot_js_os_finish_async,"Pc":_godot_js_os_fs_is_persistent,"Oc":_godot_js_os_fs_sync,"Nc":_godot_js_os_hw_concurrency_get,"Mc":_godot_js_os_request_quit_cb,"Lc":_godot_js_os_shell_open,"Kc":_godot_js_pwa_cb,"Jc":_godot_js_pwa_update,"Ic":_godot_js_rtc_datachannel_close,"Hc":_godot_js_rtc_datachannel_connect,"Gc":_godot_js_rtc_datachannel_destroy,"Fc":_godot_js_rtc_datachannel_get_buffered_amount,"Ec":_godot_js_rtc_datachannel_id_get,"Dc":_godot_js_rtc_datachannel_is_negotiated,"Cc":_godot_js_rtc_datachannel_is_ordered,"Bc":_godot_js_rtc_datachannel_label_get,"Ac":_godot_js_rtc_datachannel_max_packet_lifetime_get,"zc":_godot_js_rtc_datachannel_max_retransmits_get,"yc":_godot_js_rtc_datachannel_protocol_get,"xc":_godot_js_rtc_datachannel_ready_state_get,"wc":_godot_js_rtc_datachannel_send,"vc":_godot_js_rtc_pc_close,"uc":_godot_js_rtc_pc_create,"tc":_godot_js_rtc_pc_datachannel_create,"pb":_godot_js_rtc_pc_destroy,"sc":_godot_js_rtc_pc_ice_candidate_add,"rc":_godot_js_rtc_pc_local_description_set,"qc":_godot_js_rtc_pc_offer_create,"pc":_godot_js_rtc_pc_remote_description_set,"ob":_godot_js_websocket_buffered_amount,"oc":_godot_js_websocket_close,"nc":_godot_js_websocket_create,"nb":_godot_js_websocket_destroy,"mc":_godot_js_websocket_send,"lc":_godot_js_wrapper_create_cb,"kc":_godot_js_wrapper_create_object,"jc":_godot_js_wrapper_interface_get,"ic":_godot_js_wrapper_object_call,"hc":_godot_js_wrapper_object_get,"mb":_godot_js_wrapper_object_getvar,"gc":_godot_js_wrapper_object_set,"fc":_godot_js_wrapper_object_setvar,"ec":_godot_js_wrapper_object_unref,"dc":_godot_webxr_commit_for_eye,"cc":_godot_webxr_get_bounds_geometry,"lb":_godot_webxr_get_controller_axes,"bc":_godot_webxr_get_controller_buttons,"ac":_godot_webxr_get_controller_count,"Oa":_godot_webxr_get_controller_target_ray_mode,"$b":_godot_webxr_get_controller_transform,"_b":_godot_webxr_get_projection_for_eye,"Zb":_godot_webxr_get_render_targetsize,"Yb":_godot_webxr_get_transform_for_eye,"Xb":_godot_webxr_get_view_count,"Wb":_godot_webxr_get_visibility_state,"Vb":_godot_webxr_initialize,"kb":_godot_webxr_is_controller_connected,"Ub":_godot_webxr_is_session_supported,"Tb":_godot_webxr_is_supported,"jb":_godot_webxr_sample_controller_data,"Sb":_godot_webxr_uninitialize,"pa":invoke_ii,"oa":invoke_iii,"ib":invoke_iiii,"hb":invoke_iiiii,"Rb":invoke_iiiiii,"Qb":invoke_iiiiiii,"Ob":invoke_iij,"$":invoke_vi,"sa":invoke_vii,"wa":invoke_viii,"ra":invoke_viiii,"Na":invoke_viiiiiii,"m":_setTempRet0,"gb":_strftime,"Nb":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["fk"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["gk"]).apply(null,arguments)};var __Z13godot_js_mainiPPc=Module["__Z13godot_js_mainiPPc"]=function(){return(__Z13godot_js_mainiPPc=Module["__Z13godot_js_mainiPPc"]=Module["asm"]["hk"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ik"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["jk"]).apply(null,arguments)};var _htonl=Module["_htonl"]=function(){return(_htonl=Module["_htonl"]=Module["asm"]["kk"]).apply(null,arguments)};var _htons=Module["_htons"]=function(){return(_htons=Module["_htons"]=Module["asm"]["lk"]).apply(null,arguments)};var _ntohs=Module["_ntohs"]=function(){return(_ntohs=Module["_ntohs"]=Module["asm"]["mk"]).apply(null,arguments)};var _fflush=Module["_fflush"]=function(){return(_fflush=Module["_fflush"]=Module["asm"]["nk"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ok"]).apply(null,arguments)};var __emwebxr_on_input_event=Module["__emwebxr_on_input_event"]=function(){return(__emwebxr_on_input_event=Module["__emwebxr_on_input_event"]=Module["asm"]["pk"]).apply(null,arguments)};var __emwebxr_on_simple_event=Module["__emwebxr_on_simple_event"]=function(){return(__emwebxr_on_simple_event=Module["__emwebxr_on_simple_event"]=Module["asm"]["qk"]).apply(null,arguments)};var ___funcs_on_exit=Module["___funcs_on_exit"]=function(){return(___funcs_on_exit=Module["___funcs_on_exit"]=Module["asm"]["rk"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["tk"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["uk"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["vk"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["wk"]).apply(null,arguments)};var dynCall_iij=Module["dynCall_iij"]=function(){return(dynCall_iij=Module["dynCall_iij"]=Module["asm"]["xk"]).apply(null,arguments)};function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module["cwrap"]=cwrap;Module["callMain"]=callMain;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];args=args||[];args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv>>2;args.forEach(arg=>{HEAP32[argv_ptr++]=allocateUTF8OnStack(arg)});HEAP32[argv_ptr]=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(!keepRuntimeAlive()){exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=false;if(Module["noInitialRun"])shouldRunNow=false;run(); + + + return Godot.ready +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Godot; +else if (typeof define === 'function' && define['amd']) + define([], function() { return Godot; }); +else if (typeof exports === 'object') + exports["Godot"] = Godot; + +const Preloader = /** @constructor */ function () { // eslint-disable-line no-unused-vars + function getTrackedResponse(response, load_status) { + function onloadprogress(reader, controller) { + return reader.read().then(function (result) { + if (load_status.done) { + return Promise.resolve(); + } + if (result.value) { + controller.enqueue(result.value); + load_status.loaded += result.value.length; + } + if (!result.done) { + return onloadprogress(reader, controller); + } + load_status.done = true; + return Promise.resolve(); + }); + } + const reader = response.body.getReader(); + return new Response(new ReadableStream({ + start: function (controller) { + onloadprogress(reader, controller).then(function () { + controller.close(); + }); + }, + }), { headers: response.headers }); + } + + function loadFetch(file, tracker, fileSize, raw) { + tracker[file] = { + total: fileSize || 0, + loaded: 0, + done: false, + }; + return fetch(file).then(function (response) { + if (!response.ok) { + return Promise.reject(new Error(`Failed loading file '${file}'`)); + } + const tr = getTrackedResponse(response, tracker[file]); + if (raw) { + return Promise.resolve(tr); + } + return tr.arrayBuffer(); + }); + } + + function retry(func, attempts = 1) { + function onerror(err) { + if (attempts <= 1) { + return Promise.reject(err); + } + return new Promise(function (resolve, reject) { + setTimeout(function () { + retry(func, attempts - 1).then(resolve).catch(reject); + }, 1000); + }); + } + return func().catch(onerror); + } + + const DOWNLOAD_ATTEMPTS_MAX = 4; + const loadingFiles = {}; + const lastProgress = { loaded: 0, total: 0 }; + let progressFunc = null; + + const animateProgress = function () { + let loaded = 0; + let total = 0; + let totalIsValid = true; + let progressIsFinal = true; + + Object.keys(loadingFiles).forEach(function (file) { + const stat = loadingFiles[file]; + if (!stat.done) { + progressIsFinal = false; + } + if (!totalIsValid || stat.total === 0) { + totalIsValid = false; + total = 0; + } else { + total += stat.total; + } + loaded += stat.loaded; + }); + if (loaded !== lastProgress.loaded || total !== lastProgress.total) { + lastProgress.loaded = loaded; + lastProgress.total = total; + if (typeof progressFunc === 'function') { + progressFunc(loaded, total); + } + } + if (!progressIsFinal) { + requestAnimationFrame(animateProgress); + } + }; + + this.animateProgress = animateProgress; + + this.setProgressFunc = function (callback) { + progressFunc = callback; + }; + + this.loadPromise = function (file, fileSize, raw = false) { + return retry(loadFetch.bind(null, file, loadingFiles, fileSize, raw), DOWNLOAD_ATTEMPTS_MAX); + }; + + this.preloadedFiles = []; + this.preload = function (pathOrBuffer, destPath, fileSize) { + let buffer = null; + if (typeof pathOrBuffer === 'string') { + const me = this; + return this.loadPromise(pathOrBuffer, fileSize).then(function (buf) { + me.preloadedFiles.push({ + path: destPath || pathOrBuffer, + buffer: buf, + }); + return Promise.resolve(); + }); + } else if (pathOrBuffer instanceof ArrayBuffer) { + buffer = new Uint8Array(pathOrBuffer); + } else if (ArrayBuffer.isView(pathOrBuffer)) { + buffer = new Uint8Array(pathOrBuffer.buffer); + } + if (buffer) { + this.preloadedFiles.push({ + path: destPath, + buffer: pathOrBuffer, + }); + return Promise.resolve(); + } + return Promise.reject(new Error('Invalid object for preloading')); + }; +}; + +/** + * An object used to configure the Engine instance based on godot export options, and to override those in custom HTML + * templates if needed. + * + * @header Engine configuration + * @summary The Engine configuration object. This is just a typedef, create it like a regular object, e.g.: + * + * ``const MyConfig = { executable: 'godot', unloadAfterInit: false }`` + * + * @typedef {Object} EngineConfig + */ +const EngineConfig = {}; // eslint-disable-line no-unused-vars + +/** + * @struct + * @constructor + * @ignore + */ +const InternalConfig = function (initConfig) { // eslint-disable-line no-unused-vars + const cfg = /** @lends {InternalConfig.prototype} */ { + /** + * Whether the unload the engine automatically after the instance is initialized. + * + * @memberof EngineConfig + * @default + * @type {boolean} + */ + unloadAfterInit: true, + /** + * The HTML DOM Canvas object to use. + * + * By default, the first canvas element in the document will be used is none is specified. + * + * @memberof EngineConfig + * @default + * @type {?HTMLCanvasElement} + */ + canvas: null, + /** + * The name of the WASM file without the extension. (Set by Godot Editor export process). + * + * @memberof EngineConfig + * @default + * @type {string} + */ + executable: '', + /** + * An alternative name for the game pck to load. The executable name is used otherwise. + * + * @memberof EngineConfig + * @default + * @type {?string} + */ + mainPack: null, + /** + * Specify a language code to select the proper localization for the game. + * + * The browser locale will be used if none is specified. See complete list of + * :ref:`supported locales <doc_locales>`. + * + * @memberof EngineConfig + * @type {?string} + * @default + */ + locale: null, + /** + * The canvas resize policy determines how the canvas should be resized by Godot. + * + * ``0`` means Godot won't do any resizing. This is useful if you want to control the canvas size from + * javascript code in your template. + * + * ``1`` means Godot will resize the canvas on start, and when changing window size via engine functions. + * + * ``2`` means Godot will adapt the canvas size to match the whole browser window. + * + * @memberof EngineConfig + * @type {number} + * @default + */ + canvasResizePolicy: 2, + /** + * The arguments to be passed as command line arguments on startup. + * + * See :ref:`command line tutorial <doc_command_line_tutorial>`. + * + * **Note**: :js:meth:`startGame <Engine.prototype.startGame>` will always add the ``--main-pack`` argument. + * + * @memberof EngineConfig + * @type {Array<string>} + * @default + */ + args: [], + /** + * When enabled, the game canvas will automatically grab the focus when the engine starts. + * + * @memberof EngineConfig + * @type {boolean} + * @default + */ + focusCanvas: true, + /** + * When enabled, this will turn on experimental virtual keyboard support on mobile. + * + * @memberof EngineConfig + * @type {boolean} + * @default + */ + experimentalVK: false, + /** + * The progressive web app service worker to install. + * @memberof EngineConfig + * @default + * @type {string} + */ + serviceWorker: '', + /** + * @ignore + * @type {Array.<string>} + */ + persistentPaths: ['/userfs'], + /** + * @ignore + * @type {boolean} + */ + persistentDrops: false, + /** + * @ignore + * @type {Array.<string>} + */ + gdnativeLibs: [], + /** + * @ignore + * @type {Array.<string>} + */ + fileSizes: [], + /** + * A callback function for handling Godot's ``OS.execute`` calls. + * + * This is for example used in the Web Editor template to switch between project manager and editor, and for running the game. + * + * @callback EngineConfig.onExecute + * @param {string} path The path that Godot's wants executed. + * @param {Array.<string>} args The arguments of the "command" to execute. + */ + /** + * @ignore + * @type {?function(string, Array.<string>)} + */ + onExecute: null, + /** + * A callback function for being notified when the Godot instance quits. + * + * **Note**: This function will not be called if the engine crashes or become unresponsive. + * + * @callback EngineConfig.onExit + * @param {number} status_code The status code returned by Godot on exit. + */ + /** + * @ignore + * @type {?function(number)} + */ + onExit: null, + /** + * A callback function for displaying download progress. + * + * The function is called once per frame while downloading files, so the usage of ``requestAnimationFrame()`` + * is not necessary. + * + * If the callback function receives a total amount of bytes as 0, this means that it is impossible to calculate. + * Possible reasons include: + * + * - Files are delivered with server-side chunked compression + * - Files are delivered with server-side compression on Chromium + * - Not all file downloads have started yet (usually on servers without multi-threading) + * + * @callback EngineConfig.onProgress + * @param {number} current The current amount of downloaded bytes so far. + * @param {number} total The total amount of bytes to be downloaded. + */ + /** + * @ignore + * @type {?function(number, number)} + */ + onProgress: null, + /** + * A callback function for handling the standard output stream. This method should usually only be used in debug pages. + * + * By default, ``console.log()`` is used. + * + * @callback EngineConfig.onPrint + * @param {...*} [var_args] A variadic number of arguments to be printed. + */ + /** + * @ignore + * @type {?function(...*)} + */ + onPrint: function () { + console.log.apply(console, Array.from(arguments)); // eslint-disable-line no-console + }, + /** + * A callback function for handling the standard error stream. This method should usually only be used in debug pages. + * + * By default, ``console.error()`` is used. + * + * @callback EngineConfig.onPrintError + * @param {...*} [var_args] A variadic number of arguments to be printed as errors. + */ + /** + * @ignore + * @type {?function(...*)} + */ + onPrintError: function (var_args) { + console.error.apply(console, Array.from(arguments)); // eslint-disable-line no-console + }, + }; + + /** + * @ignore + * @struct + * @constructor + * @param {EngineConfig} opts + */ + function Config(opts) { + this.update(opts); + } + + Config.prototype = cfg; + + /** + * @ignore + * @param {EngineConfig} opts + */ + Config.prototype.update = function (opts) { + const config = opts || {}; + // NOTE: We must explicitly pass the default, accessing it via + // the key will fail due to closure compiler renames. + function parse(key, def) { + if (typeof (config[key]) === 'undefined') { + return def; + } + return config[key]; + } + // Module config + this.unloadAfterInit = parse('unloadAfterInit', this.unloadAfterInit); + this.onPrintError = parse('onPrintError', this.onPrintError); + this.onPrint = parse('onPrint', this.onPrint); + this.onProgress = parse('onProgress', this.onProgress); + + // Godot config + this.canvas = parse('canvas', this.canvas); + this.executable = parse('executable', this.executable); + this.mainPack = parse('mainPack', this.mainPack); + this.locale = parse('locale', this.locale); + this.canvasResizePolicy = parse('canvasResizePolicy', this.canvasResizePolicy); + this.persistentPaths = parse('persistentPaths', this.persistentPaths); + this.persistentDrops = parse('persistentDrops', this.persistentDrops); + this.experimentalVK = parse('experimentalVK', this.experimentalVK); + this.focusCanvas = parse('focusCanvas', this.focusCanvas); + this.serviceWorker = parse('serviceWorker', this.serviceWorker); + this.gdnativeLibs = parse('gdnativeLibs', this.gdnativeLibs); + this.fileSizes = parse('fileSizes', this.fileSizes); + this.args = parse('args', this.args); + this.onExecute = parse('onExecute', this.onExecute); + this.onExit = parse('onExit', this.onExit); + }; + + /** + * @ignore + * @param {string} loadPath + * @param {Response} response + */ + Config.prototype.getModuleConfig = function (loadPath, response) { + let r = response; + return { + 'print': this.onPrint, + 'printErr': this.onPrintError, + 'thisProgram': this.executable, + 'noExitRuntime': true, + 'dynamicLibraries': [`${loadPath}.side.wasm`], + 'instantiateWasm': function (imports, onSuccess) { + function done(result) { + onSuccess(result['instance'], result['module']); + } + if (typeof (WebAssembly.instantiateStreaming) !== 'undefined') { + WebAssembly.instantiateStreaming(Promise.resolve(r), imports).then(done); + } else { + r.arrayBuffer().then(function (buffer) { + WebAssembly.instantiate(buffer, imports).then(done); + }); + } + r = null; + return {}; + }, + 'locateFile': function (path) { + if (path.endsWith('.worker.js')) { + return `${loadPath}.worker.js`; + } else if (path.endsWith('.audio.worklet.js')) { + return `${loadPath}.audio.worklet.js`; + } else if (path.endsWith('.js')) { + return `${loadPath}.js`; + } else if (path.endsWith('.side.wasm')) { + return `${loadPath}.side.wasm`; + } else if (path.endsWith('.wasm')) { + return `${loadPath}.wasm`; + } + return path; + }, + }; + }; + + /** + * @ignore + * @param {function()} cleanup + */ + Config.prototype.getGodotConfig = function (cleanup) { + // Try to find a canvas + if (!(this.canvas instanceof HTMLCanvasElement)) { + const nodes = document.getElementsByTagName('canvas'); + if (nodes.length && nodes[0] instanceof HTMLCanvasElement) { + this.canvas = nodes[0]; + } + if (!this.canvas) { + throw new Error('No canvas found in page'); + } + } + // Canvas can grab focus on click, or key events won't work. + if (this.canvas.tabIndex < 0) { + this.canvas.tabIndex = 0; + } + + // Browser locale, or custom one if defined. + let locale = this.locale; + if (!locale) { + locale = navigator.languages ? navigator.languages[0] : navigator.language; + locale = locale.split('.')[0]; + } + locale = locale.replace('-', '_'); + const onExit = this.onExit; + + // Godot configuration. + return { + 'canvas': this.canvas, + 'canvasResizePolicy': this.canvasResizePolicy, + 'locale': locale, + 'persistentDrops': this.persistentDrops, + 'virtualKeyboard': this.experimentalVK, + 'focusCanvas': this.focusCanvas, + 'onExecute': this.onExecute, + 'onExit': function (p_code) { + cleanup(); // We always need to call the cleanup callback to free memory. + if (typeof (onExit) === 'function') { + onExit(p_code); + } + }, + }; + }; + return new Config(initConfig); +}; + +/** + * Projects exported for the Web expose the :js:class:`Engine` class to the JavaScript environment, that allows + * fine control over the engine's start-up process. + * + * This API is built in an asynchronous manner and requires basic understanding + * of `Promises <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises>`__. + * + * @module Engine + * @header HTML5 shell class reference + */ +const Engine = (function () { + const preloader = new Preloader(); + + let loadPromise = null; + let loadPath = ''; + let initPromise = null; + + /** + * @classdesc The ``Engine`` class provides methods for loading and starting exported projects on the Web. For default export + * settings, this is already part of the exported HTML page. To understand practical use of the ``Engine`` class, + * see :ref:`Custom HTML page for Web export <doc_customizing_html5_shell>`. + * + * @description Create a new Engine instance with the given configuration. + * + * @global + * @constructor + * @param {EngineConfig} initConfig The initial config for this instance. + */ + function Engine(initConfig) { // eslint-disable-line no-shadow + this.config = new InternalConfig(initConfig); + this.rtenv = null; + } + + /** + * Load the engine from the specified base path. + * + * @param {string} basePath Base path of the engine to load. + * @param {number=} [size=0] The file size if known. + * @returns {Promise} A Promise that resolves once the engine is loaded. + * + * @function Engine.load + */ + Engine.load = function (basePath, size) { + if (loadPromise == null) { + loadPath = basePath; + loadPromise = preloader.loadPromise(`${loadPath}.wasm`, size, true); + requestAnimationFrame(preloader.animateProgress); + } + return loadPromise; + }; + + /** + * Unload the engine to free memory. + * + * This method will be called automatically depending on the configuration. See :js:attr:`unloadAfterInit`. + * + * @function Engine.unload + */ + Engine.unload = function () { + loadPromise = null; + }; + + /** + * Check whether WebGL is available. Optionally, specify a particular version of WebGL to check for. + * + * @param {number=} [majorVersion=1] The major WebGL version to check for. + * @returns {boolean} If the given major version of WebGL is available. + * @function Engine.isWebGLAvailable + */ + Engine.isWebGLAvailable = function (majorVersion = 1) { + try { + return !!document.createElement('canvas').getContext(['webgl', 'webgl2'][majorVersion - 1]); + } catch (e) { /* Not available */ } + return false; + }; + + /** + * Safe Engine constructor, creates a new prototype for every new instance to avoid prototype pollution. + * @ignore + * @constructor + */ + function SafeEngine(initConfig) { + const proto = /** @lends Engine.prototype */ { + /** + * Initialize the engine instance. Optionally, pass the base path to the engine to load it, + * if it hasn't been loaded yet. See :js:meth:`Engine.load`. + * + * @param {string=} basePath Base path of the engine to load. + * @return {Promise} A ``Promise`` that resolves once the engine is loaded and initialized. + */ + init: function (basePath) { + if (initPromise) { + return initPromise; + } + if (loadPromise == null) { + if (!basePath) { + initPromise = Promise.reject(new Error('A base path must be provided when calling `init` and the engine is not loaded.')); + return initPromise; + } + Engine.load(basePath, this.config.fileSizes[`${basePath}.wasm`]); + } + const me = this; + function doInit(promise) { + // Care! Promise chaining is bogus with old emscripten versions. + // This caused a regression with the Mono build (which uses an older emscripten version). + // Make sure to test that when refactoring. + return new Promise(function (resolve, reject) { + promise.then(function (response) { + const cloned = new Response(response.clone().body, { 'headers': [['content-type', 'application/wasm']] }); + Godot(me.config.getModuleConfig(loadPath, cloned)).then(function (module) { + const paths = me.config.persistentPaths; + module['initFS'](paths).then(function (err) { + me.rtenv = module; + if (me.config.unloadAfterInit) { + Engine.unload(); + } + resolve(); + }); + }); + }); + }); + } + preloader.setProgressFunc(this.config.onProgress); + initPromise = doInit(loadPromise); + return initPromise; + }, + + /** + * Load a file so it is available in the instance's file system once it runs. Must be called **before** starting the + * instance. + * + * If not provided, the ``path`` is derived from the URL of the loaded file. + * + * @param {string|ArrayBuffer} file The file to preload. + * + * If a ``string`` the file will be loaded from that path. + * + * If an ``ArrayBuffer`` or a view on one, the buffer will used as the content of the file. + * + * @param {string=} path Path by which the file will be accessible. Required, if ``file`` is not a string. + * + * @returns {Promise} A Promise that resolves once the file is loaded. + */ + preloadFile: function (file, path) { + return preloader.preload(file, path, this.config.fileSizes[file]); + }, + + /** + * Start the engine instance using the given override configuration (if any). + * :js:meth:`startGame <Engine.prototype.startGame>` can be used in typical cases instead. + * + * This will initialize the instance if it is not initialized. For manual initialization, see :js:meth:`init <Engine.prototype.init>`. + * The engine must be loaded beforehand. + * + * Fails if a canvas cannot be found on the page, or not specified in the configuration. + * + * @param {EngineConfig} override An optional configuration override. + * @return {Promise} Promise that resolves once the engine started. + */ + start: function (override) { + this.config.update(override); + const me = this; + return me.init().then(function () { + if (!me.rtenv) { + return Promise.reject(new Error('The engine must be initialized before it can be started')); + } + + let config = {}; + try { + config = me.config.getGodotConfig(function () { + me.rtenv = null; + }); + } catch (e) { + return Promise.reject(e); + } + // Godot configuration. + me.rtenv['initConfig'](config); + + // Preload GDNative libraries. + const libs = []; + me.config.gdnativeLibs.forEach(function (lib) { + libs.push(me.rtenv['loadDynamicLibrary'](lib, { 'loadAsync': true })); + }); + return Promise.all(libs).then(function () { + return new Promise(function (resolve, reject) { + preloader.preloadedFiles.forEach(function (file) { + me.rtenv['copyToFS'](file.path, file.buffer); + }); + preloader.preloadedFiles.length = 0; // Clear memory + me.rtenv['callMain'](me.config.args); + initPromise = null; + if (me.config.serviceWorker && 'serviceWorker' in navigator) { + navigator.serviceWorker.register(me.config.serviceWorker); + } + resolve(); + }); + }); + }); + }, + + /** + * Start the game instance using the given configuration override (if any). + * + * This will initialize the instance if it is not initialized. For manual initialization, see :js:meth:`init <Engine.prototype.init>`. + * + * This will load the engine if it is not loaded, and preload the main pck. + * + * This method expects the initial config (or the override) to have both the :js:attr:`executable` and :js:attr:`mainPack` + * properties set (normally done by the editor during export). + * + * @param {EngineConfig} override An optional configuration override. + * @return {Promise} Promise that resolves once the game started. + */ + startGame: function (override) { + this.config.update(override); + // Add main-pack argument. + const exe = this.config.executable; + const pack = this.config.mainPack || `${exe}.pck`; + this.config.args = ['--main-pack', pack].concat(this.config.args); + // Start and init with execName as loadPath if not inited. + const me = this; + return Promise.all([ + this.init(exe), + this.preloadFile(pack, pack), + ]).then(function () { + return me.start.apply(me); + }); + }, + + /** + * Create a file at the specified ``path`` with the passed as ``buffer`` in the instance's file system. + * + * @param {string} path The location where the file will be created. + * @param {ArrayBuffer} buffer The content of the file. + */ + copyToFS: function (path, buffer) { + if (this.rtenv == null) { + throw new Error('Engine must be inited before copying files'); + } + this.rtenv['copyToFS'](path, buffer); + }, + + /** + * Request that the current instance quit. + * + * This is akin the user pressing the close button in the window manager, and will + * have no effect if the engine has crashed, or is stuck in a loop. + * + */ + requestQuit: function () { + if (this.rtenv) { + this.rtenv['request_quit'](); + } + }, + }; + + Engine.prototype = proto; + // Closure compiler exported instance methods. + Engine.prototype['init'] = Engine.prototype.init; + Engine.prototype['preloadFile'] = Engine.prototype.preloadFile; + Engine.prototype['start'] = Engine.prototype.start; + Engine.prototype['startGame'] = Engine.prototype.startGame; + Engine.prototype['copyToFS'] = Engine.prototype.copyToFS; + Engine.prototype['requestQuit'] = Engine.prototype.requestQuit; + // Also expose static methods as instance methods + Engine.prototype['load'] = Engine.load; + Engine.prototype['unload'] = Engine.unload; + Engine.prototype['isWebGLAvailable'] = Engine.isWebGLAvailable; + return new Engine(initConfig); + } + + // Closure compiler exported static methods. + SafeEngine['load'] = Engine.load; + SafeEngine['unload'] = Engine.unload; + SafeEngine['isWebGLAvailable'] = Engine.isWebGLAvailable; + + return SafeEngine; +}()); +if (typeof window !== 'undefined') { + window['Engine'] = Engine; +}
A
games/fruity-sorter/index.html
@@ -0,0 +1,248 @@
+<!DOCTYPE html> +<html xmlns='http://www.w3.org/1999/xhtml' lang='' xml:lang=''> +<head> + <meta charset='utf-8' /> + <meta name='viewport' content='width=device-width, user-scalable=no' /> + <title>Fruity Sorter</title> + <style type='text/css'> + + body { + touch-action: none; + margin: 0; + border: 0 none; + padding: 0; + text-align: center; + background-color: black; + } + + #canvas { + display: block; + margin: 0; + color: white; + } + + #canvas:focus { + outline: none; + } + + .godot { + font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif; + color: #e0e0e0; + background-color: #3b3943; + background-image: linear-gradient(to bottom, #403e48, #35333c); + border: 1px solid #45434e; + box-shadow: 0 0 1px 1px #2f2d35; + } + + + /* Status display + * ============== */ + + #status { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + /* don't consume click events - make children visible explicitly */ + visibility: hidden; + } + + #status-progress { + width: 366px; + height: 7px; + background-color: #38363A; + border: 1px solid #444246; + padding: 1px; + box-shadow: 0 0 2px 1px #1B1C22; + border-radius: 2px; + visibility: visible; + } + + @media only screen and (orientation:portrait) { + #status-progress { + width: 61.8%; + } + } + + #status-progress-inner { + height: 100%; + width: 0; + box-sizing: border-box; + transition: width 0.5s linear; + background-color: #202020; + border: 1px solid #222223; + box-shadow: 0 0 1px 1px #27282E; + border-radius: 3px; + } + + #status-indeterminate { + height: 42px; + visibility: visible; + position: relative; + } + + #status-indeterminate > div { + width: 4.5px; + height: 0; + border-style: solid; + border-width: 9px 3px 0 3px; + border-color: #2b2b2b transparent transparent transparent; + transform-origin: center 21px; + position: absolute; + } + + #status-indeterminate > div:nth-child(1) { transform: rotate( 22.5deg); } + #status-indeterminate > div:nth-child(2) { transform: rotate( 67.5deg); } + #status-indeterminate > div:nth-child(3) { transform: rotate(112.5deg); } + #status-indeterminate > div:nth-child(4) { transform: rotate(157.5deg); } + #status-indeterminate > div:nth-child(5) { transform: rotate(202.5deg); } + #status-indeterminate > div:nth-child(6) { transform: rotate(247.5deg); } + #status-indeterminate > div:nth-child(7) { transform: rotate(292.5deg); } + #status-indeterminate > div:nth-child(8) { transform: rotate(337.5deg); } + + #status-notice { + margin: 0 100px; + line-height: 1.3; + visibility: visible; + padding: 4px 6px; + visibility: visible; + } + </style> +<link id='-gd-engine-icon' rel='icon' type='image/png' href='Bombs Sorter.icon.png' /> +<link rel='apple-touch-icon' href='Bombs Sorter.apple-touch-icon.png'/> + +</head> +<body> + <canvas id='canvas'> + HTML5 canvas appears to be unsupported in the current browser.<br /> + Please try updating or use a different browser. + </canvas> + <div id='status'> + <div id='status-progress' style='display: none;' oncontextmenu='event.preventDefault();'><div id ='status-progress-inner'></div></div> + <div id='status-indeterminate' style='display: none;' oncontextmenu='event.preventDefault();'> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + </div> + <div id='status-notice' class='godot' style='display: none;'></div> + </div> + + <script type='text/javascript' src='Bombs Sorter.js'></script> + <script type='text/javascript'>//<![CDATA[ + + const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"executable":"Bombs Sorter","experimentalVK":false,"fileSizes":{"Bombs Sorter.pck":3710016,"Bombs Sorter.wasm":17862218},"focusCanvas":true,"gdnativeLibs":[]}; + var engine = new Engine(GODOT_CONFIG); + + (function() { + const INDETERMINATE_STATUS_STEP_MS = 100; + var statusProgress = document.getElementById('status-progress'); + var statusProgressInner = document.getElementById('status-progress-inner'); + var statusIndeterminate = document.getElementById('status-indeterminate'); + var statusNotice = document.getElementById('status-notice'); + + var initializing = true; + var statusMode = 'hidden'; + + var animationCallbacks = []; + function animate(time) { + animationCallbacks.forEach(callback => callback(time)); + requestAnimationFrame(animate); + } + requestAnimationFrame(animate); + + function setStatusMode(mode) { + + if (statusMode === mode || !initializing) + return; + [statusProgress, statusIndeterminate, statusNotice].forEach(elem => { + elem.style.display = 'none'; + }); + animationCallbacks = animationCallbacks.filter(function(value) { + return (value != animateStatusIndeterminate); + }); + switch (mode) { + case 'progress': + statusProgress.style.display = 'block'; + break; + case 'indeterminate': + statusIndeterminate.style.display = 'block'; + animationCallbacks.push(animateStatusIndeterminate); + break; + case 'notice': + statusNotice.style.display = 'block'; + break; + case 'hidden': + break; + default: + throw new Error('Invalid status mode'); + } + statusMode = mode; + } + + function animateStatusIndeterminate(ms) { + var i = Math.floor(ms / INDETERMINATE_STATUS_STEP_MS % 8); + if (statusIndeterminate.children[i].style.borderTopColor == '') { + Array.prototype.slice.call(statusIndeterminate.children).forEach(child => { + child.style.borderTopColor = ''; + }); + statusIndeterminate.children[i].style.borderTopColor = '#dfdfdf'; + } + } + + function setStatusNotice(text) { + while (statusNotice.lastChild) { + statusNotice.removeChild(statusNotice.lastChild); + } + var lines = text.split('\n'); + lines.forEach((line) => { + statusNotice.appendChild(document.createTextNode(line)); + statusNotice.appendChild(document.createElement('br')); + }); + }; + + function displayFailureNotice(err) { + var msg = err.message || err; + console.error(msg); + setStatusNotice(msg); + setStatusMode('notice'); + initializing = false; + }; + + if (!Engine.isWebGLAvailable()) { + displayFailureNotice('WebGL not available'); + } else { + setStatusMode('indeterminate'); + engine.startGame({ + 'onProgress': function (current, total) { + if (total > 0) { + statusProgressInner.style.width = current/total * 100 + '%'; + setStatusMode('progress'); + if (current === total) { + // wait for progress bar animation + setTimeout(() => { + setStatusMode('indeterminate'); + }, 500); + } + } else { + setStatusMode('indeterminate'); + } + }, + }).then(() => { + setStatusMode('hidden'); + initializing = false; + }, displayFailureNotice); + } + })(); + //]]></script> +</body> +</html> +
A
games/pac-survivors/index.apple-touch-icon.png.import
@@ -0,0 +1,40 @@
+[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://crq62vsyhtu5m" +path="res://.godot/imported/index.apple-touch-icon.png-2786902287ee3c081d87ddba9fd253fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://export/index.apple-touch-icon.png" +dest_files=["res://.godot/imported/index.apple-touch-icon.png-2786902287ee3c081d87ddba9fd253fe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1
A
games/pac-survivors/index.audio.position.worklet.js
@@ -0,0 +1,66 @@
+/**************************************************************************/ +/* godot.audio.position.worklet.js */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +class GodotPositionReportingProcessor extends AudioWorkletProcessor { + static get parameterDescriptors() { + return [ + { + name: 'reset', + defaultValue: 0, + minValue: 0, + maxValue: 1, + automationRate: 'k-rate', + }, + ]; + } + + constructor(...args) { + super(...args); + this.position = 0; + } + + process(inputs, _outputs, parameters) { + if (parameters['reset'][0] > 0) { + this.position = 0; + } + + if (inputs.length > 0) { + const input = inputs[0]; + if (input.length > 0) { + this.position += input[0].length; + this.port.postMessage({ type: 'position', data: this.position }); + } + } + + return true; + } +} + +registerProcessor('godot-position-reporting-processor', GodotPositionReportingProcessor);
A
games/pac-survivors/index.audio.worklet.js
@@ -0,0 +1,213 @@
+/**************************************************************************/ +/* audio.worklet.js */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +class RingBuffer { + constructor(p_buffer, p_state, p_threads) { + this.buffer = p_buffer; + this.avail = p_state; + this.threads = p_threads; + this.rpos = 0; + this.wpos = 0; + } + + data_left() { + return this.threads ? Atomics.load(this.avail, 0) : this.avail; + } + + space_left() { + return this.buffer.length - this.data_left(); + } + + read(output) { + const size = this.buffer.length; + let from = 0; + let to_write = output.length; + if (this.rpos + to_write > size) { + const high = size - this.rpos; + output.set(this.buffer.subarray(this.rpos, size)); + from = high; + to_write -= high; + this.rpos = 0; + } + if (to_write) { + output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from); + } + this.rpos += to_write; + if (this.threads) { + Atomics.add(this.avail, 0, -output.length); + Atomics.notify(this.avail, 0); + } else { + this.avail -= output.length; + } + } + + write(p_buffer) { + const to_write = p_buffer.length; + const mw = this.buffer.length - this.wpos; + if (mw >= to_write) { + this.buffer.set(p_buffer, this.wpos); + this.wpos += to_write; + if (mw === to_write) { + this.wpos = 0; + } + } else { + const high = p_buffer.subarray(0, mw); + const low = p_buffer.subarray(mw); + this.buffer.set(high, this.wpos); + this.buffer.set(low); + this.wpos = low.length; + } + if (this.threads) { + Atomics.add(this.avail, 0, to_write); + Atomics.notify(this.avail, 0); + } else { + this.avail += to_write; + } + } +} + +class GodotProcessor extends AudioWorkletProcessor { + constructor() { + super(); + this.threads = false; + this.running = true; + this.lock = null; + this.notifier = null; + this.output = null; + this.output_buffer = new Float32Array(); + this.input = null; + this.input_buffer = new Float32Array(); + this.port.onmessage = (event) => { + const cmd = event.data['cmd']; + const data = event.data['data']; + this.parse_message(cmd, data); + }; + } + + process_notify() { + if (this.notifier) { + Atomics.add(this.notifier, 0, 1); + Atomics.notify(this.notifier, 0); + } + } + + parse_message(p_cmd, p_data) { + if (p_cmd === 'start' && p_data) { + const state = p_data[0]; + let idx = 0; + this.threads = true; + this.lock = state.subarray(idx, ++idx); + this.notifier = state.subarray(idx, ++idx); + const avail_in = state.subarray(idx, ++idx); + const avail_out = state.subarray(idx, ++idx); + this.input = new RingBuffer(p_data[1], avail_in, true); + this.output = new RingBuffer(p_data[2], avail_out, true); + } else if (p_cmd === 'stop') { + this.running = false; + this.output = null; + this.input = null; + this.lock = null; + this.notifier = null; + } else if (p_cmd === 'start_nothreads') { + this.output = new RingBuffer(p_data[0], p_data[0].length, false); + } else if (p_cmd === 'chunk') { + this.output.write(p_data); + } + } + + static array_has_data(arr) { + return arr.length && arr[0].length && arr[0][0].length; + } + + process(inputs, outputs, parameters) { + if (!this.running) { + return false; // Stop processing. + } + if (this.output === null) { + return true; // Not ready yet, keep processing. + } + const process_input = GodotProcessor.array_has_data(inputs); + if (process_input) { + const input = inputs[0]; + const chunk = input[0].length * input.length; + if (this.input_buffer.length !== chunk) { + this.input_buffer = new Float32Array(chunk); + } + if (!this.threads) { + GodotProcessor.write_input(this.input_buffer, input); + this.port.postMessage({ 'cmd': 'input', 'data': this.input_buffer }); + } else if (this.input.space_left() >= chunk) { + GodotProcessor.write_input(this.input_buffer, input); + this.input.write(this.input_buffer); + } else { + // this.port.postMessage('Input buffer is full! Skipping input frame.'); // Uncomment this line to debug input buffer. + } + } + const process_output = GodotProcessor.array_has_data(outputs); + if (process_output) { + const output = outputs[0]; + const chunk = output[0].length * output.length; + if (this.output_buffer.length !== chunk) { + this.output_buffer = new Float32Array(chunk); + } + if (this.output.data_left() >= chunk) { + this.output.read(this.output_buffer); + GodotProcessor.write_output(output, this.output_buffer); + if (!this.threads) { + this.port.postMessage({ 'cmd': 'read', 'data': chunk }); + } + } else { + // this.port.postMessage('Output buffer has not enough frames! Skipping output frame.'); // Uncomment this line to debug output buffer. + } + } + this.process_notify(); + return true; + } + + static write_output(dest, source) { + const channels = dest.length; + for (let ch = 0; ch < channels; ch++) { + for (let sample = 0; sample < dest[ch].length; sample++) { + dest[ch][sample] = source[sample * channels + ch]; + } + } + } + + static write_input(dest, source) { + const channels = source.length; + for (let ch = 0; ch < channels; ch++) { + for (let sample = 0; sample < source[ch].length; sample++) { + dest[sample * channels + ch] = source[ch][sample]; + } + } + } +} + +registerProcessor('godot-processor', GodotProcessor);
A
games/pac-survivors/index.html
@@ -0,0 +1,220 @@
+<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0"> + <title>Pac Survivors</title> + <style> +html, body, #canvas { + margin: 0; + padding: 0; + border: 0; +} + +body { + color: white; + background-color: black; + overflow: hidden; + touch-action: none; +} + +#canvas { + display: block; +} + +#canvas:focus { + outline: none; +} + +#status, #status-splash, #status-progress { + position: absolute; + left: 0; + right: 0; +} + +#status, #status-splash { + top: 0; + bottom: 0; +} + +#status { + background-color: #242424; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + visibility: hidden; +} + +#status-splash { + max-height: 100%; + max-width: 100%; + margin: auto; +} + +#status-splash.show-image--false { + display: none; +} + +#status-splash.fullsize--true { + height: 100%; + width: 100%; + object-fit: contain; +} + +#status-splash.use-filter--false { + image-rendering: pixelated; +} + +#status-progress, #status-notice { + display: none; +} + +#status-progress { + bottom: 10%; + width: 50%; + margin: 0 auto; +} + +#status-notice { + background-color: #5b3943; + border-radius: 0.5rem; + border: 1px solid #9b3943; + color: #e0e0e0; + font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif; + line-height: 1.3; + margin: 0 2rem; + overflow: hidden; + padding: 1rem; + text-align: center; + z-index: 1; +} + </style> + <link id="-gd-engine-icon" rel="icon" type="image/png" href="index.icon.png" /> +<link rel="apple-touch-icon" href="index.apple-touch-icon.png"/> + + </head> + <body> + <canvas id="canvas"> + Your browser does not support the canvas tag. + </canvas> + + <noscript> + Your browser does not support JavaScript. + </noscript> + + <div id="status"> + <img id="status-splash" class="show-image--true fullsize--true use-filter--true" src="index.png" alt=""> + <progress id="status-progress"></progress> + <div id="status-notice"></div> + </div> + + <script src="index.js"></script> + <script> +const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"emscriptenPoolSize":8,"ensureCrossOriginIsolationHeaders":true,"executable":"index","experimentalVK":false,"fileSizes":{"index.pck":21496132,"index.wasm":38034280},"focusCanvas":true,"gdextensionLibs":[],"godotPoolSize":4}; +const GODOT_THREADS_ENABLED = false; +const engine = new Engine(GODOT_CONFIG); + +(function () { + const statusOverlay = document.getElementById('status'); + const statusProgress = document.getElementById('status-progress'); + const statusNotice = document.getElementById('status-notice'); + + let initializing = true; + let statusMode = ''; + + function setStatusMode(mode) { + if (statusMode === mode || !initializing) { + return; + } + if (mode === 'hidden') { + statusOverlay.remove(); + initializing = false; + return; + } + statusOverlay.style.visibility = 'visible'; + statusProgress.style.display = mode === 'progress' ? 'block' : 'none'; + statusNotice.style.display = mode === 'notice' ? 'block' : 'none'; + statusMode = mode; + } + + function setStatusNotice(text) { + while (statusNotice.lastChild) { + statusNotice.removeChild(statusNotice.lastChild); + } + const lines = text.split('\n'); + lines.forEach((line) => { + statusNotice.appendChild(document.createTextNode(line)); + statusNotice.appendChild(document.createElement('br')); + }); + } + + function displayFailureNotice(err) { + console.error(err); + if (err instanceof Error) { + setStatusNotice(err.message); + } else if (typeof err === 'string') { + setStatusNotice(err); + } else { + setStatusNotice('An unknown error occurred.'); + } + setStatusMode('notice'); + initializing = false; + } + + const missing = Engine.getMissingFeatures({ + threads: GODOT_THREADS_ENABLED, + }); + + if (missing.length !== 0) { + if (GODOT_CONFIG['serviceWorker'] && GODOT_CONFIG['ensureCrossOriginIsolationHeaders'] && 'serviceWorker' in navigator) { + let serviceWorkerRegistrationPromise; + try { + serviceWorkerRegistrationPromise = navigator.serviceWorker.getRegistration(); + } catch (err) { + serviceWorkerRegistrationPromise = Promise.reject(new Error('Service worker registration failed.')); + } + // There's a chance that installing the service worker would fix the issue + Promise.race([ + serviceWorkerRegistrationPromise.then((registration) => { + if (registration != null) { + return Promise.reject(new Error('Service worker already exists.')); + } + return registration; + }).then(() => engine.installServiceWorker()), + // For some reason, `getRegistration()` can stall + new Promise((resolve) => { + setTimeout(() => resolve(), 2000); + }), + ]).then(() => { + // Reload if there was no error. + window.location.reload(); + }).catch((err) => { + console.error('Error while registering service worker:', err); + }); + } else { + // Display the message as usual + const missingMsg = 'Error\nThe following features required to run Godot projects on the Web are missing:\n'; + displayFailureNotice(missingMsg + missing.join('\n')); + } + } else { + setStatusMode('progress'); + engine.startGame({ + 'onProgress': function (current, total) { + if (current > 0 && total > 0) { + statusProgress.value = current; + statusProgress.max = total; + } else { + statusProgress.removeAttribute('value'); + statusProgress.removeAttribute('max'); + } + }, + }).then(() => { + setStatusMode('hidden'); + }, displayFailureNotice); + } +}()); + </script> + </body> +</html> +
A
games/pac-survivors/index.icon.png.import
@@ -0,0 +1,40 @@
+[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dl8enpaw7l3pu" +path="res://.godot/imported/index.icon.png-3b121a4922cb9cfa20e3529a349a6f72.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://export/index.icon.png" +dest_files=["res://.godot/imported/index.icon.png-3b121a4922cb9cfa20e3529a349a6f72.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1
A
games/pac-survivors/index.js
@@ -0,0 +1,927 @@
+var Godot = (() => { + var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; + return ( +async function(moduleArg = {}) { + var moduleRtn; + +var Module=moduleArg;var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&process.versions?.node&&process.type!="renderer";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_SHELL){const isNode=typeof process=="object"&&process.versions?.node&&process.type!="renderer";if(isNode||typeof window=="object"||typeof WorkerGlobalScope!="undefined")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?)")}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}if(!(typeof window=="object"||typeof WorkerGlobalScope!="undefined"))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(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{assert(!isFileURI(url),"readAsync does not work with file:// URLs");var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{throw new Error("environment detection error")}var out=console.log.bind(console);var err=console.error.bind(console);var IDBFS="IDBFS is no longer included by default; build with -lidbfs.js";assert(!ENVIRONMENT_IS_NODE,"node environment detected but not enabled at build time. Add `node` to `-sENVIRONMENT` to enable.");assert(!ENVIRONMENT_IS_SHELL,"shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable.");var wasmBinary;if(typeof WebAssembly!="object"){err("no native wasm support detected")}var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed"+(text?": "+text:""))}}var isFileURI=filename=>filename.startsWith("file://");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>>2]=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>>2]!=1668509029){abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}}var runtimeDebug=true;(()=>{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)"})();function consumedModuleProp(prop){if(!Object.getOwnPropertyDescriptor(Module,prop)){Object.defineProperty(Module,prop,{configurable:true,set(){abort(`Attempt to set \`Module.${prop}\` after it has already been processed. This can happen, for example, when code is injected via '--post-js' rather than '--pre-js'`)}})}}function makeInvalidEarlyAccess(name){return()=>assert(false,`call to '${name}' via reference taken before Wasm module initialization`)}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 hookGlobalSymbolAccess(sym,func){}function missingGlobal(sym,msg){hookGlobalSymbolAccess(sym,()=>{warnOnce(`\`${sym}\` is not longer defined by emscripten. ${msg}`)})}missingGlobal("buffer","Please use HEAP8.buffer or wasmMemory.buffer");missingGlobal("asm","Please use wasmExports instead");function missingLibrarySymbol(sym){hookGlobalSymbolAccess(sym,()=>{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)});unexportedRuntimeSymbol(sym)}function unexportedRuntimeSymbol(sym){if(!Object.getOwnPropertyDescriptor(Module,sym)){Object.defineProperty(Module,sym,{configurable:true,get(){var msg=`'${sym}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}abort(msg)}})}}var readyPromiseResolve,readyPromiseReject;var wasmMemory;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;var runtimeExited=false;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}assert(typeof Int32Array!="undefined"&&typeof Float64Array!=="undefined"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,"JS engine does not provide full typed array support");function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}consumedModuleProp("preRun");callRuntimeCallbacks(onPreRuns)}function initRuntime(){assert(!runtimeInitialized);runtimeInitialized=true;checkStackCookie();if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["__wasm_call_ctors"]();FS.ignorePermissions=false}function preMain(){checkStackCookie()}function exitRuntime(){assert(!runtimeExited);checkStackCookie();___funcs_on_exit();FS.quit();TTY.shutdown();IDBFS.quit();runtimeExited=true}function postRun(){checkStackCookie();if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}consumedModuleProp("postRun");callRuntimeCallbacks(onPostRuns)}var runDependencies=0;var dependenciesFulfilled=null;var runDependencyTracking={};var runDependencyWatcher=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies);if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!="undefined"){runDependencyWatcher=setInterval(()=>{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--;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){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}function createExportWrapper(name,nargs){return(...args)=>{assert(runtimeInitialized,`native function \`${name}\` called before runtime initialization`);assert(!runtimeExited,`native function \`${name}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`);var f=wasmExports[name];assert(f,`exported native function \`${name}\` not found`);assert(args.length<=nargs,`native function \`${name}\` called with ${args.length} args but expects ${nargs}`);return f(...args)}}var wasmBinaryFile;function findWasmBinary(){return locateFile("godot.web.template_release.wasm32.nothreads.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(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)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["memory"];assert(wasmMemory,"memory not found in wasm exports");updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];assert(wasmTable,"table not found in wasm exports");assignWasmExports(wasmExports);removeRunDependency("wasm-instantiate");return wasmExports}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;return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{try{Module["instantiateWasm"](info,(mod,inst)=>{resolve(receiveInstance(mod,inst))})}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);reject(e)}})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP64[ptr>>3];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=false;var ptrToString=ptr=>{assert(typeof ptr==="number");ptr>>>=0;return"0x"+ptr.toString(16).padStart(8,"0")};function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":HEAP64[ptr>>3]=BigInt(value);break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var ___call_sighandler=(fp,sig)=>getWasmTableEntry(fp)(sig);var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>view=>crypto.getRandomValues(view);var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{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<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{if((u0&248)!=240)warnOnce("Invalid UTF-8 leading byte "+ptrToString(u0)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!");u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{assert(typeof str==="string",`stringToUTF8Array expects a string (got ${typeof str})`);if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);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;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var mmapAlloc=size=>{abort("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported")};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw new FS.ErrnoError(44)},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){assert(!(buffer instanceof ArrayBuffer));if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){assert(position===0,"canOwn must imply no weird position inside the file");node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}HEAP8.set(contents,ptr)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);assert(arrayBuffer,`Loading data file "${url}" failed (no arrayBuffer).`);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>{var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}};var preloadPlugins=[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url).then(processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",queuePersist:mount=>{function onPersistComplete(){if(mount.idbPersistState==="again")startPersist();else mount.idbPersistState=0}function startPersist(){mount.idbPersistState="idb";IDBFS.syncfs(mount,false,onPersistComplete)}if(!mount.idbPersistState){mount.idbPersistState=setTimeout(startPersist,0)}else if(mount.idbPersistState==="idb"){mount.idbPersistState="again"}},mount:mount=>{var mnt=MEMFS.mount(mount);if(mount?.opts?.autoPersist){mnt.idbPersistState=0;var memfs_node_ops=mnt.node_ops;mnt.node_ops={...mnt.node_ops};mnt.node_ops.mknod=(parent,name,mode,dev)=>{var node=memfs_node_ops.mknod(parent,name,mode,dev);node.node_ops=mnt.node_ops;node.idbfs_mount=mnt.mount;node.memfs_stream_ops=node.stream_ops;node.stream_ops={...node.stream_ops};node.stream_ops.write=(stream,buffer,offset,length,position,canOwn)=>{stream.node.isModified=true;return node.memfs_stream_ops.write(stream,buffer,offset,length,position,canOwn)};node.stream_ops.close=stream=>{var n=stream.node;if(n.isModified){IDBFS.queuePersist(n.idbfs_mount);n.isModified=false}if(n.memfs_stream_ops.close)return n.memfs_stream_ops.close(stream)};return node};mnt.node_ops.mkdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.mkdir(...args));mnt.node_ops.rmdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rmdir(...args));mnt.node_ops.symlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.symlink(...args));mnt.node_ops.unlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.unlink(...args));mnt.node_ops.rename=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rename(...args))}return mnt},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>PATH.join2(root,p)}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push(...FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(e.target.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db,entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>callback(null,event.target.result);req.onerror=e=>{callback(e.target.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(key=>{var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(key=>{if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=transaction.onabort=e=>{done(e.target.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var UTF8ToString=(ptr,maxBytesToRead)=>{assert(typeof ptr=="number",`UTF8ToString expects a number (got ${typeof ptr})`);return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""};var strError=errno=>UTF8ToString(_strerror(errno));var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class extends Error{name="ErrnoError";constructor(errno){super(runtimeInitialized?strError(errno):"");this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]==="."){continue}if(parts[i]===".."){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+"/"+parts.slice(i+1).join("/");continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+"/"+link}path=link+"/"+parts.slice(i+1).join("/");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){assert(typeof parent=="object");var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){assert(fd>=-1);stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){if(typeof type=="string"){throw type}var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){assert(offset>=0);if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){assert(offset>=0);if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){assert(offset>=0);if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1);assert(stdin.fd===0,`invalid handle for stdin (${stdin.fd})`);assert(stdout.fd===1,`invalid handle for stdout (${stdout.fd})`);assert(stderr.fd===2,`invalid handle for stderr (${stderr.fd})`)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS,IDBFS}},init(input,output,error){assert(!FS.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;_fflush(0);for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else{try{obj.contents=readBinary(obj.url);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node},absolutePath(){abort("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){abort("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){abort("FS.createLink has been removed; use FS.symlink instead")},joinPath(){abort("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){abort("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){abort("FS.standardizePath has been removed; use PATH.normalize instead")}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAP32[buf+4>>2]=stats.bsize;HEAP32[buf+40>>2]=stats.bsize;HEAP32[buf+8>>2]=stats.blocks;HEAP32[buf+12>>2]=stats.bfree;HEAP32[buf+16>>2]=stats.bavail;HEAP32[buf+20>>2]=stats.files;HEAP32[buf+24>>2]=stats.ffree;HEAP32[buf+28>>2]=stats.fsid;HEAP32[buf+44>>2]=stats.flags;HEAP32[buf+36>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);assert(!flags||flags==512);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var syscallGetVarargI=()=>{assert(SYSCALLS.varargs!=undefined);var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function ___syscall_ftruncate64(fd,length){length=bigintToI53Checked(length);try{if(isNaN(length))return-61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var 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)};function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx<endIdx;idx++){var id;var type;var name=stream.getdents[idx];if(name==="."){id=stream.node.id;type=4}else if(name===".."){var lookup=FS.lookupPath(stream.path,{parent:true});id=lookup.node.id;type=4}else{var child;try{child=FS.lookupNode(stream.node,name)}catch(e){if(e?.errno===28){continue}throw e}id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8}assert(id);HEAP64[dirp+pos>>3]=BigInt(id);HEAP64[dirp+pos+8>>3]=BigInt((idx+1)*struct_size);HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_mknodat(dirfd,path,mode,dev){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;assert(!flags,`unknown flags in __syscall_newfstatat: ${flags}`);path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_statfs64(path,size,buf){try{assert(size===64);SYSCALLS.writeStatFs(buf,FS.statfs(SYSCALLS.getStr(path)));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_symlinkat(target,dirfd,linkpath){try{target=SYSCALLS.getStr(target);linkpath=SYSCALLS.getStr(linkpath);linkpath=SYSCALLS.calculateAt(dirfd,linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>abort("native code called abort()");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};function __gmtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}var timers={};var 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 5242880)")}}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;if(!keepRuntimeAlive()){exitRuntime()}if(keepRuntimeAlive()&&!implicit){var msg=`program exited (with status: ${status}), but keepRuntimeAlive() is set (counter=${runtimeKeepaliveCounter}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`;readyPromiseReject?.(msg);err(msg)}_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(runtimeExited){return}if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(runtimeExited||ABORT){err("user callback triggered after runtime exited or application aborted. Ignoring.");return}try{func();maybeExit()}catch(e){handleException(e)}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{assert(which in timers);delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);assert(winterName);assert(summerName);assert(lengthBytesUTF8(winterName)<=16,`timezone name truncated to fit in TZNAME_MAX (${winterName})`);assert(lengthBytesUTF8(summerName)<=16,`timezone name truncated to fit in TZNAME_MAX (${summerName})`);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_set_main_loop_timing=(mode,value)=>{MainLoop.timingMode=mode;MainLoop.timingValue=value;if(!MainLoop.func){err("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.");return 1}if(!MainLoop.running){runtimeKeepalivePush();MainLoop.running=true}if(mode==0){MainLoop.scheduler=function MainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,MainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(MainLoop.runner,timeUntilNextTick)};MainLoop.method="timeout"}else if(mode==1){MainLoop.scheduler=function MainLoop_scheduler_rAF(){MainLoop.requestAnimationFrame(MainLoop.runner)};MainLoop.method="rAF"}else if(mode==2){if(typeof MainLoop.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var MainLoop_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",MainLoop_setImmediate_messageHandler,true);MainLoop.setImmediate=func=>{setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){Module["setImmediates"]??=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{MainLoop.setImmediate=setImmediate}}MainLoop.scheduler=function MainLoop_scheduler_setImmediate(){MainLoop.setImmediate(MainLoop.runner)};MainLoop.method="immediate"}return 0};var runtimeKeepalivePop=()=>{assert(runtimeKeepaliveCounter>0);runtimeKeepaliveCounter-=1};var setMainLoop=(iterFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{assert(!MainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");MainLoop.func=iterFunc;MainLoop.arg=arg;var thisMainLoopId=MainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId<MainLoop.currentlyRunningMainloop){runtimeKeepalivePop();maybeExit();return false}return true}MainLoop.running=false;MainLoop.runner=function MainLoop_runner(){if(ABORT)return;if(MainLoop.queue.length>0){var start=Date.now();var blocker=MainLoop.queue.shift();blocker.func(blocker.arg);if(MainLoop.remainingBlockers){var remaining=MainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){MainLoop.remainingBlockers=next}else{next=next+.5;MainLoop.remainingBlockers=(8*remaining+next)/9}}MainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(MainLoop.runner,0);return}if(!checkIsRunning())return;MainLoop.currentFrameNumber=MainLoop.currentFrameNumber+1|0;if(MainLoop.timingMode==1&&MainLoop.timingValue>1&&MainLoop.currentFrameNumber%MainLoop.timingValue!=0){MainLoop.scheduler();return}else if(MainLoop.timingMode==0){MainLoop.tickStartTime=_emscripten_get_now()}if(MainLoop.method==="timeout"&&Module["ctx"]){warnOnce("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");MainLoop.method=""}MainLoop.runIter(iterFunc);if(!checkIsRunning())return;MainLoop.scheduler()};if(!noSetTiming){if(fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}MainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var MainLoop={running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],preMainLoop:[],postMainLoop:[],pause(){MainLoop.scheduler=null;MainLoop.currentlyRunningMainloop++},resume(){MainLoop.currentlyRunningMainloop++;var timingMode=MainLoop.timingMode;var timingValue=MainLoop.timingValue;var func=MainLoop.func;MainLoop.func=null;setMainLoop(func,0,false,MainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);MainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=MainLoop.remainingBlockers??0;var expected=MainLoop.expectedBlockers??0;if(remaining){if(remaining<expected){Module["setStatus"](`{message} ({expected - remaining}/{expected})`)}else{Module["setStatus"](message)}}else{Module["setStatus"]("")}}},init(){Module["preMainLoop"]&&MainLoop.preMainLoop.push(Module["preMainLoop"]);Module["postMainLoop"]&&MainLoop.postMainLoop.push(Module["postMainLoop"])},runIter(func){if(ABORT)return;for(var pre of MainLoop.preMainLoop){if(pre()===false){return}}callUserCallback(func);for(var post of MainLoop.postMainLoop){post()}checkStackCookie()},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(MainLoop.nextRAF===0){MainLoop.nextRAF=now+1e3/60}else{while(now+2>=MainLoop.nextRAF){MainLoop.nextRAF+=1e3/60}}var delay=Math.max(MainLoop.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=MainLoop.fakeRequestAnimationFrame;RAF(func)}};var _emscripten_cancel_main_loop=()=>{MainLoop.pause();MainLoop.func=null};var _emscripten_err=str=>err(UTF8ToString(str));var _emscripten_force_exit=status=>{__emscripten_runtime_keepalive_clear();_exit(status)};var getHeapMax=()=>2147483648;var _emscripten_get_heap_max=()=>getHeapMax();var alignMemory=(size,alignment)=>{assert(alignment,"alignment argument is required");return Math.ceil(size/alignment)*alignment};var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){err(`growMemory: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`)}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;assert(requestedSize>oldSize);var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){err(`Cannot enlarge memory, requested ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`);return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`);return false};var maybeCStringToJsString=cString=>cString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):null);return domElement};var findCanvasEventTarget=findEventTarget;var _emscripten_set_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;if(canvas.GLctxObject)GL.resizeOffscreenFramebuffer(canvas.GLctxObject);return 0};var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var iterFunc=getWasmTableEntry(func);setMainLoop(iterFunc,fps,simulateInfiniteLoop)};var GLctx;var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_EXT_polygon_offset_clamp=ctx=>!!(ctx.extPolygonOffsetClamp=ctx.getExtension("EXT_polygon_offset_clamp"));var webgl_enable_EXT_clip_control=ctx=>!!(ctx.extClipControl=ctx.getExtension("EXT_clip_control"));var webgl_enable_WEBGL_polygon_mode=ctx=>!!(ctx.webglPolygonMode=ctx.getExtension("WEBGL_polygon_mode"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_clip_control","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_polygon_offset_clamp","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw","WEBGL_polygon_mode"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,unpackRowLength:0,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i<ret;i++){table[i]=null}return ret},genObject:(n,buffers,createFunction,objectTable)=>{for(var i=0;i<n;i++){var buffer=GLctx[createFunction]();var id=buffer&&GL.getNewId(objectTable);if(buffer){buffer.name=id;objectTable[id]=buffer}else{GL.recordError(1282)}HEAP32[buffers+i*4>>2]=id}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i<count;++i){var len=length?HEAPU32[length+i*4>>2]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>2],len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(webGLContextAttributes.renderViaOffscreenBackBuffer)webGLContextAttributes["preserveDrawingBuffer"]=true;var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},enableOffscreenFramebufferAttributes:webGLContextAttributes=>{webGLContextAttributes.renderViaOffscreenBackBuffer=true;webGLContextAttributes.preserveDrawingBuffer=true},createOffscreenFramebuffer:context=>{var gl=context.GLctx;var fbo=gl.createFramebuffer();gl.bindFramebuffer(36160,fbo);context.defaultFbo=fbo;context.defaultFboForbidBlitFramebuffer=false;if(gl.getContextAttributes().antialias){context.defaultFboForbidBlitFramebuffer=true}context.defaultColorTarget=gl.createTexture();context.defaultDepthTarget=gl.createRenderbuffer();GL.resizeOffscreenFramebuffer(context);gl.bindTexture(3553,context.defaultColorTarget);gl.texParameteri(3553,10241,9728);gl.texParameteri(3553,10240,9728);gl.texParameteri(3553,10242,33071);gl.texParameteri(3553,10243,33071);gl.texImage2D(3553,0,6408,gl.canvas.width,gl.canvas.height,0,6408,5121,null);gl.framebufferTexture2D(36160,36064,3553,context.defaultColorTarget,0);gl.bindTexture(3553,null);var depthTarget=gl.createRenderbuffer();gl.bindRenderbuffer(36161,context.defaultDepthTarget);gl.renderbufferStorage(36161,33189,gl.canvas.width,gl.canvas.height);gl.framebufferRenderbuffer(36160,36096,36161,context.defaultDepthTarget);gl.bindRenderbuffer(36161,null);var vertices=[-1,-1,-1,1,1,-1,1,1];var vb=gl.createBuffer();gl.bindBuffer(34962,vb);gl.bufferData(34962,new Float32Array(vertices),35044);gl.bindBuffer(34962,null);context.blitVB=vb;var vsCode="attribute vec2 pos;"+"varying lowp vec2 tex;"+"void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }";var vs=gl.createShader(35633);gl.shaderSource(vs,vsCode);gl.compileShader(vs);var fsCode="varying lowp vec2 tex;"+"uniform sampler2D sampler;"+"void main() { gl_FragColor = texture2D(sampler, tex); }";var fs=gl.createShader(35632);gl.shaderSource(fs,fsCode);gl.compileShader(fs);var blitProgram=gl.createProgram();gl.attachShader(blitProgram,vs);gl.attachShader(blitProgram,fs);gl.linkProgram(blitProgram);context.blitProgram=blitProgram;context.blitPosLoc=gl.getAttribLocation(blitProgram,"pos");gl.useProgram(blitProgram);gl.uniform1i(gl.getUniformLocation(blitProgram,"sampler"),0);gl.useProgram(null);if(gl.createVertexArray){context.defaultVao=gl.createVertexArray();gl.bindVertexArray(context.defaultVao);gl.enableVertexAttribArray(context.blitPosLoc);gl.bindVertexArray(null)}},resizeOffscreenFramebuffer:context=>{var gl=context.GLctx;if(context.defaultColorTarget){var prevTextureBinding=gl.getParameter(32873);gl.bindTexture(3553,context.defaultColorTarget);gl.texImage2D(3553,0,6408,gl.drawingBufferWidth,gl.drawingBufferHeight,0,6408,5121,null);gl.bindTexture(3553,prevTextureBinding)}if(context.defaultDepthTarget){var prevRenderBufferBinding=gl.getParameter(36007);gl.bindRenderbuffer(36161,context.defaultDepthTarget);gl.renderbufferStorage(36161,33189,gl.drawingBufferWidth,gl.drawingBufferHeight);gl.bindRenderbuffer(36161,prevRenderBufferBinding)}},blitOffscreenFramebuffer:context=>{var gl=context.GLctx;var prevScissorTest=gl.getParameter(3089);if(prevScissorTest)gl.disable(3089);var prevFbo=gl.getParameter(36006);if(gl.blitFramebuffer&&!context.defaultFboForbidBlitFramebuffer){gl.bindFramebuffer(36008,context.defaultFbo);gl.bindFramebuffer(36009,null);gl.blitFramebuffer(0,0,gl.canvas.width,gl.canvas.height,0,0,gl.canvas.width,gl.canvas.height,16384,9728)}else{gl.bindFramebuffer(36160,null);var prevProgram=gl.getParameter(35725);gl.useProgram(context.blitProgram);if(!gl.isProgram(prevProgram))prevProgram=null;var prevVB=gl.getParameter(34964);gl.bindBuffer(34962,context.blitVB);var prevActiveTexture=gl.getParameter(34016);gl.activeTexture(33984);var prevTextureBinding=gl.getParameter(32873);gl.bindTexture(3553,context.defaultColorTarget);var prevBlend=gl.getParameter(3042);if(prevBlend)gl.disable(3042);var prevCullFace=gl.getParameter(2884);if(prevCullFace)gl.disable(2884);var prevDepthTest=gl.getParameter(2929);if(prevDepthTest)gl.disable(2929);var prevStencilTest=gl.getParameter(2960);if(prevStencilTest)gl.disable(2960);function draw(){gl.vertexAttribPointer(context.blitPosLoc,2,5126,false,0,0);gl.drawArrays(5,0,4)}if(context.defaultVao){var prevVAO=gl.getParameter(34229);gl.bindVertexArray(context.defaultVao);draw();gl.bindVertexArray(prevVAO)}else{var prevVertexAttribPointer={buffer:gl.getVertexAttrib(context.blitPosLoc,34975),size:gl.getVertexAttrib(context.blitPosLoc,34339),stride:gl.getVertexAttrib(context.blitPosLoc,34340),type:gl.getVertexAttrib(context.blitPosLoc,34341),normalized:gl.getVertexAttrib(context.blitPosLoc,34922),pointer:gl.getVertexAttribOffset(context.blitPosLoc,34373)};var maxVertexAttribs=gl.getParameter(34921);var prevVertexAttribEnables=[];for(var i=0;i<maxVertexAttribs;++i){var prevEnabled=gl.getVertexAttrib(i,34338);var wantEnabled=i==context.blitPosLoc;if(prevEnabled&&!wantEnabled){gl.disableVertexAttribArray(i)}if(!prevEnabled&&wantEnabled){gl.enableVertexAttribArray(i)}prevVertexAttribEnables[i]=prevEnabled}draw();for(var i=0;i<maxVertexAttribs;++i){var prevEnabled=prevVertexAttribEnables[i];var nowEnabled=i==context.blitPosLoc;if(prevEnabled&&!nowEnabled){gl.enableVertexAttribArray(i)}if(!prevEnabled&&nowEnabled){gl.disableVertexAttribArray(i)}}gl.bindBuffer(34962,prevVertexAttribPointer.buffer);gl.vertexAttribPointer(context.blitPosLoc,prevVertexAttribPointer.size,prevVertexAttribPointer.type,prevVertexAttribPointer.normalized,prevVertexAttribPointer.stride,prevVertexAttribPointer.offset)}if(prevStencilTest)gl.enable(2960);if(prevDepthTest)gl.enable(2929);if(prevCullFace)gl.enable(2884);if(prevBlend)gl.enable(3042);gl.bindTexture(3553,prevTextureBinding);gl.activeTexture(prevActiveTexture);gl.bindBuffer(34962,prevVB);gl.useProgram(prevProgram)}gl.bindFramebuffer(36160,prevFbo);if(prevScissorTest)gl.enable(3089)},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}if(webGLContextAttributes.renderViaOffscreenBackBuffer)GL.createOffscreenFramebuffer(context);return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module["ctx"]=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]?.GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_WEBGL_multi_draw(GLctx);webgl_enable_EXT_polygon_offset_clamp(GLctx);webgl_enable_EXT_clip_control(GLctx);webgl_enable_WEBGL_polygon_mode(GLctx);webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}getEmscriptenSupportedExtensions(GLctx).forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var _emscripten_webgl_do_commit_frame=()=>{if(!GL.currentContext||!GL.currentContext.GLctx){return-3}if(GL.currentContext.defaultFbo){GL.blitOffscreenFramebuffer(GL.currentContext);return 0}if(!GL.currentContext.attributes.explicitSwapControl){return-3}return 0};var _emscripten_webgl_commit_frame=_emscripten_webgl_do_commit_frame;var webglPowerPreferences=["default","low-power","high-performance"];var _emscripten_webgl_do_create_context=(target,attributes)=>{assert(attributes);var attr32=attributes>>2;var powerPreference=HEAP32[attr32+(8>>2)];var contextAttributes={alpha:!!HEAP8[attributes+0],depth:!!HEAP8[attributes+1],stencil:!!HEAP8[attributes+2],antialias:!!HEAP8[attributes+3],premultipliedAlpha:!!HEAP8[attributes+4],preserveDrawingBuffer:!!HEAP8[attributes+5],powerPreference:webglPowerPreferences[powerPreference],failIfMajorPerformanceCaveat:!!HEAP8[attributes+12],majorVersion:HEAP32[attr32+(16>>2)],minorVersion:HEAP32[attr32+(20>>2)],enableExtensionsByDefault:HEAP8[attributes+24],explicitSwapControl:HEAP8[attributes+25],proxyContextToMainThread:HEAP32[attr32+(28>>2)],renderViaOffscreenBackBuffer:HEAP8[attributes+32]};if(contextAttributes.majorVersion!==1&&contextAttributes.majorVersion!==2){err(`Invalid WebGL version requested: ${contextAttributes.majorVersion}`)}var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl&&!contextAttributes.renderViaOffscreenBackBuffer){contextAttributes.renderViaOffscreenBackBuffer=true}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle};var _emscripten_webgl_create_context=_emscripten_webgl_do_create_context;var _emscripten_webgl_destroy_context=contextHandle=>{if(GL.currentContext==contextHandle)GL.currentContext=0;GL.deleteContext(contextHandle)};var _emscripten_webgl_enable_extension=(contextHandle,extension)=>{var context=GL.getContext(contextHandle);var extString=UTF8ToString(extension);if(extString.startsWith("GL_"))extString=extString.slice(3);if(extString=="ANGLE_instanced_arrays")webgl_enable_ANGLE_instanced_arrays(GLctx);if(extString=="OES_vertex_array_object")webgl_enable_OES_vertex_array_object(GLctx);if(extString=="WEBGL_draw_buffers")webgl_enable_WEBGL_draw_buffers(GLctx);if(extString=="WEBGL_draw_instanced_base_vertex_base_instance")webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);if(extString=="WEBGL_multi_draw_instanced_base_vertex_base_instance")webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(extString=="WEBGL_multi_draw")webgl_enable_WEBGL_multi_draw(GLctx);if(extString=="EXT_polygon_offset_clamp")webgl_enable_EXT_polygon_offset_clamp(GLctx);if(extString=="EXT_clip_control")webgl_enable_EXT_clip_control(GLctx);if(extString=="WEBGL_polygon_mode")webgl_enable_WEBGL_polygon_mode(GLctx);var ext=context.GLctx.getExtension(extString);return!!ext};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var _emscripten_webgl_get_supported_extensions=()=>stringToNewUTF8(GLctx.getSupportedExtensions().join(" "));var _emscripten_webgl_make_context_current=contextHandle=>{var success=GL.makeContextCurrent(contextHandle);return success?0:-5};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;HEAP64[pbuf+8>>3]=BigInt(rightsBase);HEAP64[pbuf+16>>3]=BigInt(rightsInheriting);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _glActiveTexture=x0=>GLctx.activeTexture(x0);var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _glBeginTransformFeedback=x0=>GLctx.beginTransformFeedback(x0);var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _glBindBufferBase=(target,index,buffer)=>{GLctx.bindBufferBase(target,index,GL.buffers[buffer])};var _glBindBufferRange=(target,index,buffer,offset,ptrsize)=>{GLctx.bindBufferRange(target,index,GL.buffers[buffer],offset,ptrsize)};var _glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,framebuffer?GL.framebuffers[framebuffer]:GL.currentContext.defaultFbo)};var _glBindRenderbuffer=(target,renderbuffer)=>{GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])};var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _glBlendColor=(x0,x1,x2,x3)=>GLctx.blendColor(x0,x1,x2,x3);var _glBlendEquation=x0=>GLctx.blendEquation(x0);var _glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);var _glBlendFuncSeparate=(x0,x1,x2,x3)=>GLctx.blendFuncSeparate(x0,x1,x2,x3);var _glBlitFramebuffer=(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)=>GLctx.blitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9);var _glBufferData=(target,size,data,usage)=>{if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}return}GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _glBufferSubData=(target,offset,size,data)=>{if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))};var _glCheckFramebufferStatus=x0=>GLctx.checkFramebufferStatus(x0);var _glClear=x0=>GLctx.clear(x0);var _glClearBufferfv=(buffer,drawbuffer,value)=>{GLctx.clearBufferfv(buffer,drawbuffer,HEAPF32,value>>2)};var _glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var _glClearDepthf=x0=>GLctx.clearDepth(x0);var _glClearStencil=x0=>GLctx.clearStencil(x0);var _glColorMask=(red,green,blue,alpha)=>{GLctx.colorMask(!!red,!!green,!!blue,!!alpha)};var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _glCompressedTexImage2D=(target,level,internalFormat,width,height,border,imageSize,data)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data);return}GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,HEAPU8,data,imageSize);return}GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,HEAPU8.subarray(data,data+imageSize))};var _glCompressedTexImage3D=(target,level,internalFormat,width,height,depth,border,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}};var _glCompressedTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}};var _glCopyBufferSubData=(x0,x1,x2,x3,x4)=>GLctx.copyBufferSubData(x0,x1,x2,x3,x4);var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _glCullFace=x0=>GLctx.cullFace(x0);var _glDeleteBuffers=(n,buffers)=>{for(var i=0;i<n;i++){var id=HEAP32[buffers+i*4>>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}};var _glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i<n;++i){var id=HEAP32[framebuffers+i*4>>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _glDeleteQueries=(n,ids)=>{for(var i=0;i<n;i++){var id=HEAP32[ids+i*4>>2];var query=GL.queries[id];if(!query)continue;GLctx.deleteQuery(query);GL.queries[id]=null}};var _glDeleteRenderbuffers=(n,renderbuffers)=>{for(var i=0;i<n;i++){var id=HEAP32[renderbuffers+i*4>>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}};var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _glDeleteSync=id=>{if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null};var _glDeleteTextures=(n,textures)=>{for(var i=0;i<n;i++){var id=HEAP32[textures+i*4>>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}};var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i<n;i++){var id=HEAP32[vaos+i*4>>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _glDepthFunc=x0=>GLctx.depthFunc(x0);var _glDepthMask=flag=>{GLctx.depthMask(!!flag)};var _glDisable=x0=>GLctx.disable(x0);var _glDisableVertexAttribArray=index=>{GLctx.disableVertexAttribArray(index)};var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _glDrawArraysInstanced=(mode,first,count,primcount)=>{GLctx.drawArraysInstanced(mode,first,count,primcount)};var tempFixedLengthArray=[];var _glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx.drawBuffers(bufArray)};var _glDrawElements=(mode,count,type,indices)=>{GLctx.drawElements(mode,count,type,indices)};var _glDrawElementsInstanced=(mode,count,type,indices,primcount)=>{GLctx.drawElementsInstanced(mode,count,type,indices,primcount)};var _glEnable=x0=>GLctx.enable(x0);var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var _glEndTransformFeedback=()=>GLctx.endTransformFeedback();var _glFenceSync=(condition,flags)=>{var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0};var _glFinish=()=>GLctx.finish();var _glFramebufferRenderbuffer=(target,attachment,renderbuffertarget,renderbuffer)=>{GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])};var _glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _glFramebufferTextureLayer=(target,attachment,texture,level,layer)=>{GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)};var _glFrontFace=x0=>GLctx.frontFace(x0);var _glGenBuffers=(n,buffers)=>{GL.genObject(n,buffers,"createBuffer",GL.buffers)};var _glGenFramebuffers=(n,ids)=>{GL.genObject(n,ids,"createFramebuffer",GL.framebuffers)};var _glGenQueries=(n,ids)=>{GL.genObject(n,ids,"createQuery",GL.queries)};var _glGenRenderbuffers=(n,renderbuffers)=>{GL.genObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)};var _glGenTextures=(n,textures)=>{GL.genObject(n,textures,"createTexture",GL.textures)};var _glGenVertexArrays=(n,arrays)=>{GL.genObject(n,arrays,"createVertexArray",GL.vaos)};var _glGenerateMipmap=x0=>GLctx.generateMipmap(x0);var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;var readI53FromU64=ptr=>HEAPU32[ptr>>2]+HEAPU32[ptr+4>>2]*4294967296;var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296;var deserialized=num>=0?readI53FromU64(ptr):readI53FromI64(ptr);var offset=ptr>>2;if(deserialized!=num)warnOnce(`writeI53ToI64() out of range: serialized JS Number ${num} to Wasm heap as bytes lo=${ptrToString(HEAPU32[offset])}, hi=${ptrToString(HEAPU32[offset+1])}, which deserializes back to ${deserialized} instead!`)};var webglGetExtensions=()=>{var exts=getEmscriptenSupportedExtensions(GLctx);exts=exts.concat(exts.map(e=>"GL_"+e));return exts};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}ret=webglGetExtensions().length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i<result.length;++i){switch(type){case 0:HEAP32[p+i*4>>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`);return}}break;default:GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof result}!`);return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p]=ret?1:0;break}};var _glGetFloatv=(name_,p)=>emscriptenWebGLGet(name_,p,2);var _glGetInteger64v=(name_,p)=>{emscriptenWebGLGet(name_,p,1)};var _glGetIntegerv=(name_,p)=>emscriptenWebGLGet(name_,p,0);var _glGetProgramInfoLog=(program,maxLength,length,infoLog)=>{var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){var numActiveUniforms=GLctx.getProgramParameter(program,35718);for(var i=0;i<numActiveUniforms;++i){program.maxUniformLength=Math.max(program.maxUniformLength,GLctx.getActiveUniform(program,i).name.length+1)}}HEAP32[p>>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){var numActiveAttributes=GLctx.getProgramParameter(program,35721);for(var i=0;i<numActiveAttributes;++i){program.maxAttributeLength=Math.max(program.maxAttributeLength,GLctx.getActiveAttrib(program,i).name.length+1)}}HEAP32[p>>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){var numActiveUniformBlocks=GLctx.getProgramParameter(program,35382);for(var i=0;i<numActiveUniformBlocks;++i){program.maxUniformBlockNameLength=Math.max(program.maxUniformBlockNameLength,GLctx.getActiveUniformBlockName(program,i).length+1)}}HEAP32[p>>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _glGetShaderInfoLog=(shader,maxLength,length,infoLog)=>{var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var _glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(webglGetExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var webGLVersion=GLctx.getParameter(7938);var glVersion=`OpenGL ES 2.0 (${webGLVersion})`;if(GL.currentContext.version>=2)glVersion=`OpenGL ES 3.0 (${webGLVersion})`;ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion=`OpenGL ES GLSL ES ${ver_num[1]} (${glslVersion})`}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret};var _glGetSynciv=(sync,pname,bufSize,length,values)=>{if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}};var _glGetUniformBlockIndex=(program,uniformBlockName)=>GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName));var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};var numActiveUniforms=GLctx.getProgramParameter(program,35718);for(i=0;i<numActiveUniforms;++i){var u=GLctx.getActiveUniform(program,i);var nm=u.name;var sz=u.size;var lb=webglGetLeftBracePos(nm);var arrayName=lb>0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j<sz;++j){uniformLocsById[id]=j;program.uniformArrayNamesById[id++]=arrayName}}}};var _glGetUniformLocation=(program,name)=>{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex<sizeAndId[0]){arrayIndex+=sizeAndId[1];if(uniformLocsById[arrayIndex]=uniformLocsById[arrayIndex]||GLctx.getUniformLocation(program,name)){return arrayIndex}}}else{GL.recordError(1281)}return-1};var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}else if(pname==3314){GL.unpackRowLength=param}GLctx.pixelStorei(pname,param)};var _glReadBuffer=x0=>GLctx.readBuffer(x0);var computeUnpackAlignedImageSize=(width,height,sizePerPixel)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=(GL.unpackRowLength||width)*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,GL.unpackAlignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel);return heap.subarray(toTypedArrayIndex(pixels,heap),toTypedArrayIndex(pixels+bytes,heap))};var _glReadPixels=(x,y,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels);return}var heap=heapObjectForWebGLType(type);var target=toTypedArrayIndex(pixels,heap);GLctx.readPixels(x,y,width,height,format,type,heap,target);return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)};var _glRenderbufferStorage=(x0,x1,x2,x3)=>GLctx.renderbufferStorage(x0,x1,x2,x3);var _glRenderbufferStorageMultisample=(x0,x1,x2,x3,x4)=>GLctx.renderbufferStorageMultisample(x0,x1,x2,x3,x4);var _glScissor=(x0,x1,x2,x3)=>GLctx.scissor(x0,x1,x2,x3);var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _glStencilFunc=(x0,x1,x2)=>GLctx.stencilFunc(x0,x1,x2);var _glStencilMask=x0=>GLctx.stencilMask(x0);var _glStencilOp=(x0,x1,x2)=>GLctx.stencilOp(x0,x1,x2);var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels);return}if(pixels){var heap=heapObjectForWebGLType(type);var index=toTypedArrayIndex(pixels,heap);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,index);return}}var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null;GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixelData)};var _glTexImage3D=(target,level,internalFormat,width,height,depth,border,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,null)}};var _glTexParameterf=(x0,x1,x2)=>GLctx.texParameterf(x0,x1,x2);var _glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _glTexStorage2D=(x0,x1,x2,x3,x4)=>GLctx.texStorage2D(x0,x1,x2,x3,x4);var _glTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}};var _glTransformFeedbackVaryings=(program,count,varyings,bufferMode)=>{program=GL.programs[program];var vars=[];for(var i=0;i<count;i++)vars.push(UTF8ToString(HEAP32[varyings+i*4>>2]));GLctx.transformFeedbackVaryings(program,vars,bufferMode)};var webglGetUniformLocation=location=>{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?`[${webglLoc}]`:""))}return webglLoc}else{GL.recordError(1282)}};var _glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var miniTempWebGLIntBuffers=[];var _glUniform1iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=miniTempWebGLIntBuffers[count];for(var i=0;i<count;++i){view[i]=HEAP32[value+4*i>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)};var _glUniform1ui=(location,v0)=>{GLctx.uniform1ui(webglGetUniformLocation(location),v0)};var _glUniform1uiv=(location,count,value)=>{count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)};var _glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var miniTempWebGLFloatBuffers=[];var _glUniform2fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){count*=2;var view=miniTempWebGLFloatBuffers[count];for(var i=0;i<count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _glUniform2iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){count*=2;var view=miniTempWebGLIntBuffers[count];for(var i=0;i<count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)};var _glUniform3fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){count*=3;var view=miniTempWebGLFloatBuffers[count];for(var i=0;i<count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)};var _glUniform4f=(location,v0,v1,v2,v3)=>{GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)};var _glUniform4fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count];var heap=HEAPF32;value=value>>2;count*=4;for(var i=0;i<count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var _glUniformBlockBinding=(program,uniformBlockIndex,uniformBlockBinding)=>{program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)};var _glUniformMatrix3fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){count*=9;var view=miniTempWebGLFloatBuffers[count];for(var i=0;i<count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)};var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count];var heap=HEAPF32;value=value>>2;count*=16;for(var i=0;i<count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _glVertexAttrib4f=(x0,x1,x2,x3,x4)=>GLctx.vertexAttrib4f(x0,x1,x2,x3,x4);var _glVertexAttribDivisor=(index,divisor)=>{GLctx.vertexAttribDivisor(index,divisor)};var _glVertexAttribI4ui=(x0,x1,x2,x3,x4)=>GLctx.vertexAttribI4ui(x0,x1,x2,x3,x4);var _glVertexAttribIPointer=(index,size,type,stride,ptr)=>{GLctx.vertexAttribIPointer(index,size,type,stride,ptr)};var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);var GodotRuntime={get_func:function(ptr){return wasmTable.get(ptr)},error:function(){err.apply(null,Array.from(arguments))},print:function(){out.apply(null,Array.from(arguments))},malloc:function(p_size){return _malloc(p_size)},free:function(p_ptr){_free(p_ptr)},getHeapValue:function(p_ptr,p_type){return getValue(p_ptr,p_type)},setHeapValue:function(p_ptr,p_value,p_type){setValue(p_ptr,p_value,p_type)},heapSub:function(p_heap,p_ptr,p_len){const bytes=p_heap.BYTES_PER_ELEMENT;return p_heap.subarray(p_ptr/bytes,p_ptr/bytes+p_len)},heapSlice:function(p_heap,p_ptr,p_len){const bytes=p_heap.BYTES_PER_ELEMENT;return p_heap.slice(p_ptr/bytes,p_ptr/bytes+p_len)},heapCopy:function(p_dst,p_src,p_ptr){const bytes=p_src.BYTES_PER_ELEMENT;return p_dst.set(p_src,p_ptr/bytes)},parseString:function(p_ptr){return UTF8ToString(p_ptr)},parseStringArray:function(p_ptr,p_size){const strings=[];const ptrs=GodotRuntime.heapSub(HEAP32,p_ptr,p_size);ptrs.forEach(function(ptr){strings.push(GodotRuntime.parseString(ptr))});return strings},strlen:function(p_str){return lengthBytesUTF8(p_str)},allocString:function(p_str){const length=GodotRuntime.strlen(p_str)+1;const c_str=GodotRuntime.malloc(length);stringToUTF8(p_str,c_str,length);return c_str},allocStringArray:function(p_strings){const size=p_strings.length;const c_ptr=GodotRuntime.malloc(size*4);for(let i=0;i<size;i++){HEAP32[(c_ptr>>2)+i]=GodotRuntime.allocString(p_strings[i])}return c_ptr},freeStringArray:function(p_ptr,p_len){for(let i=0;i<p_len;i++){GodotRuntime.free(HEAP32[(p_ptr>>2)+i])}GodotRuntime.free(p_ptr)},stringToHeap:function(p_str,p_ptr,p_len){return stringToUTF8Array(p_str,HEAP8,p_ptr,p_len)}};var GodotConfig={canvas:null,locale:"en",canvas_resize_policy:2,virtual_keyboard:false,persistent_drops:false,godot_pool_size:4,on_execute:null,on_exit:null,init_config:function(p_opts){GodotConfig.canvas_resize_policy=p_opts["canvasResizePolicy"];GodotConfig.canvas=p_opts["canvas"];GodotConfig.locale=p_opts["locale"]||GodotConfig.locale;GodotConfig.virtual_keyboard=p_opts["virtualKeyboard"];GodotConfig.persistent_drops=!!p_opts["persistentDrops"];GodotConfig.godot_pool_size=p_opts["godotPoolSize"];GodotConfig.on_execute=p_opts["onExecute"];GodotConfig.on_exit=p_opts["onExit"];if(p_opts["focusCanvas"]){GodotConfig.canvas.focus()}},locate_file:function(file){return Module["locateFile"](file)},clear:function(){GodotConfig.canvas=null;GodotConfig.locale="en";GodotConfig.canvas_resize_policy=2;GodotConfig.virtual_keyboard=false;GodotConfig.persistent_drops=false;GodotConfig.on_execute=null;GodotConfig.on_exit=null}};var GodotFS={ENOENT:44,_idbfs:false,_syncing:false,_mount_points:[],is_persistent:function(){return GodotFS._idbfs?1:0},init:function(persistentPaths){GodotFS._idbfs=false;if(!Array.isArray(persistentPaths)){return Promise.reject(new Error("Persistent paths must be an array"))}if(!persistentPaths.length){return Promise.resolve()}GodotFS._mount_points=persistentPaths.slice();function createRecursive(dir){try{FS.stat(dir)}catch(e){if(e.errno!==GodotFS.ENOENT){GodotRuntime.error(e)}FS.mkdirTree(dir)}}GodotFS._mount_points.forEach(function(path){createRecursive(path);FS.mount(IDBFS,{},path)});return new Promise(function(resolve,reject){FS.syncfs(true,function(err){if(err){GodotFS._mount_points=[];GodotFS._idbfs=false;GodotRuntime.print(`IndexedDB not available: ${err.message}`)}else{GodotFS._idbfs=true}resolve(err)})})},deinit:function(){GodotFS._mount_points.forEach(function(path){try{FS.unmount(path)}catch(e){GodotRuntime.print("Already unmounted",e)}if(GodotFS._idbfs&&IDBFS.dbs[path]){IDBFS.dbs[path].close();delete IDBFS.dbs[path]}});GodotFS._mount_points=[];GodotFS._idbfs=false;GodotFS._syncing=false},sync:function(){if(GodotFS._syncing){GodotRuntime.error("Already syncing!");return Promise.resolve()}GodotFS._syncing=true;return new Promise(function(resolve,reject){FS.syncfs(false,function(error){if(error){GodotRuntime.error(`Failed to save IDB file system: ${error.message}`)}GodotFS._syncing=false;resolve(error)})})},copy_to_fs:function(path,buffer){const idx=path.lastIndexOf("/");let dir="/";if(idx>0){dir=path.slice(0,idx)}try{FS.stat(dir)}catch(e){if(e.errno!==GodotFS.ENOENT){GodotRuntime.error(e)}FS.mkdirTree(dir)}FS.writeFile(path,new Uint8Array(buffer))}};var GodotOS={request_quit:function(){},_async_cbs:[],_fs_sync_promise:null,atexit:function(p_promise_cb){GodotOS._async_cbs.push(p_promise_cb)},cleanup:function(exit_code){const cb=GodotConfig.on_exit;GodotFS.deinit();GodotConfig.clear();if(cb){cb(exit_code)}},finish_async:function(callback){GodotOS._fs_sync_promise.then(function(err){const promises=[];GodotOS._async_cbs.forEach(function(cb){promises.push(new Promise(cb))});return Promise.all(promises)}).then(function(){return GodotFS.sync()}).then(function(err){setTimeout(function(){callback()},0)})}};var GodotAudio={MAX_VOLUME_CHANNELS:8,GodotChannel:{CHANNEL_L:0,CHANNEL_R:1,CHANNEL_C:3,CHANNEL_LFE:4,CHANNEL_RL:5,CHANNEL_RR:6,CHANNEL_SL:7,CHANNEL_SR:8},WebChannel:{CHANNEL_L:0,CHANNEL_R:1,CHANNEL_SL:2,CHANNEL_SR:3,CHANNEL_C:4,CHANNEL_LFE:5},samples:null,Sample:class Sample{static getSample(id){if(!GodotAudio.samples.has(id)){throw new ReferenceError(`Could not find sample "${id}"`)}return GodotAudio.samples.get(id)}static getSampleOrNull(id){return GodotAudio.samples.get(id)??null}static create(params,options={}){const sample=new GodotAudio.Sample(params,options);GodotAudio.samples.set(params.id,sample);return sample}static delete(id){GodotAudio.samples.delete(id)}constructor(params,options={}){this.id=params.id;this._audioBuffer=null;this.numberOfChannels=options.numberOfChannels??2;this.sampleRate=options.sampleRate??44100;this.loopMode=options.loopMode??"disabled";this.loopBegin=options.loopBegin??0;this.loopEnd=options.loopEnd??0;this.setAudioBuffer(params.audioBuffer)}getAudioBuffer(){return this._duplicateAudioBuffer()}setAudioBuffer(val){this._audioBuffer=val}clear(){this.setAudioBuffer(null);GodotAudio.Sample.delete(this.id)}_duplicateAudioBuffer(){if(this._audioBuffer==null){throw new Error("couldn't duplicate a null audioBuffer")}const channels=new Array(this._audioBuffer.numberOfChannels);for(let i=0;i<this._audioBuffer.numberOfChannels;i++){const channel=new Float32Array(this._audioBuffer.getChannelData(i));channels[i]=channel}const buffer=GodotAudio.ctx.createBuffer(this.numberOfChannels,this._audioBuffer.length,this._audioBuffer.sampleRate);for(let i=0;i<channels.length;i++){buffer.copyToChannel(channels[i],i,0)}return buffer}},SampleNodeBus:class SampleNodeBus{static create(bus){return new GodotAudio.SampleNodeBus(bus)}constructor(bus){const NUMBER_OF_WEB_CHANNELS=6;this._bus=bus;this._channelSplitter=GodotAudio.ctx.createChannelSplitter(NUMBER_OF_WEB_CHANNELS);this._l=GodotAudio.ctx.createGain();this._r=GodotAudio.ctx.createGain();this._sl=GodotAudio.ctx.createGain();this._sr=GodotAudio.ctx.createGain();this._c=GodotAudio.ctx.createGain();this._lfe=GodotAudio.ctx.createGain();this._channelMerger=GodotAudio.ctx.createChannelMerger(NUMBER_OF_WEB_CHANNELS);this._channelSplitter.connect(this._l,GodotAudio.WebChannel.CHANNEL_L).connect(this._channelMerger,GodotAudio.WebChannel.CHANNEL_L,GodotAudio.WebChannel.CHANNEL_L);this._channelSplitter.connect(this._r,GodotAudio.WebChannel.CHANNEL_R).connect(this._channelMerger,GodotAudio.WebChannel.CHANNEL_L,GodotAudio.WebChannel.CHANNEL_R);this._channelSplitter.connect(this._sl,GodotAudio.WebChannel.CHANNEL_SL).connect(this._channelMerger,GodotAudio.WebChannel.CHANNEL_L,GodotAudio.WebChannel.CHANNEL_SL);this._channelSplitter.connect(this._sr,GodotAudio.WebChannel.CHANNEL_SR).connect(this._channelMerger,GodotAudio.WebChannel.CHANNEL_L,GodotAudio.WebChannel.CHANNEL_SR);this._channelSplitter.connect(this._c,GodotAudio.WebChannel.CHANNEL_C).connect(this._channelMerger,GodotAudio.WebChannel.CHANNEL_L,GodotAudio.WebChannel.CHANNEL_C);this._channelSplitter.connect(this._lfe,GodotAudio.WebChannel.CHANNEL_L).connect(this._channelMerger,GodotAudio.WebChannel.CHANNEL_L,GodotAudio.WebChannel.CHANNEL_LFE);this._channelMerger.connect(this._bus.getInputNode())}getInputNode(){return this._channelSplitter}getOutputNode(){return this._channelMerger}setVolume(volume){if(volume.length!==GodotAudio.MAX_VOLUME_CHANNELS){throw new Error(`Volume length isn't "${GodotAudio.MAX_VOLUME_CHANNELS}", is ${volume.length} instead`)}this._l.gain.value=volume[GodotAudio.GodotChannel.CHANNEL_L]??0;this._r.gain.value=volume[GodotAudio.GodotChannel.CHANNEL_R]??0;this._sl.gain.value=volume[GodotAudio.GodotChannel.CHANNEL_SL]??0;this._sr.gain.value=volume[GodotAudio.GodotChannel.CHANNEL_SR]??0;this._c.gain.value=volume[GodotAudio.GodotChannel.CHANNEL_C]??0;this._lfe.gain.value=volume[GodotAudio.GodotChannel.CHANNEL_LFE]??0}clear(){this._bus=null;this._channelSplitter.disconnect();this._channelSplitter=null;this._l.disconnect();this._l=null;this._r.disconnect();this._r=null;this._sl.disconnect();this._sl=null;this._sr.disconnect();this._sr=null;this._c.disconnect();this._c=null;this._lfe.disconnect();this._lfe=null;this._channelMerger.disconnect();this._channelMerger=null}},sampleNodes:null,SampleNode:class SampleNode{static getSampleNode(id){if(!GodotAudio.sampleNodes.has(id)){throw new ReferenceError(`Could not find sample node "${id}"`)}return GodotAudio.sampleNodes.get(id)}static getSampleNodeOrNull(id){return GodotAudio.sampleNodes.get(id)??null}static stopSampleNode(id){const sampleNode=GodotAudio.SampleNode.getSampleNodeOrNull(id);if(sampleNode==null){return}sampleNode.stop()}static pauseSampleNode(id,enable){const sampleNode=GodotAudio.SampleNode.getSampleNodeOrNull(id);if(sampleNode==null){return}sampleNode.pause(enable)}static create(params,options={}){const sampleNode=new GodotAudio.SampleNode(params,options);GodotAudio.sampleNodes.set(params.id,sampleNode);return sampleNode}static delete(id){GodotAudio.deleteSampleNode(id)}constructor(params,options={}){this.id=params.id;this.streamObjectId=params.streamObjectId;this.offset=options.offset??0;this._playbackPosition=options.offset;this.startTime=options.startTime??0;this.isPaused=false;this.isStarted=false;this.isCanceled=false;this.pauseTime=0;this._playbackRate=44100;this.loopMode=options.loopMode??this.getSample().loopMode??"disabled";this._pitchScale=options.pitchScale??1;this._sourceStartTime=0;this._sampleNodeBuses=new Map;this._source=GodotAudio.ctx.createBufferSource();this._onended=null;this._positionWorklet=null;this.setPlaybackRate(options.playbackRate??44100);this._source.buffer=this.getSample().getAudioBuffer();this._addEndedListener();const bus=GodotAudio.Bus.getBus(params.busIndex);const sampleNodeBus=this.getSampleNodeBus(bus);sampleNodeBus.setVolume(options.volume);this.connectPositionWorklet(options.start).catch(err=>{const newErr=new Error("Failed to create PositionWorklet.");newErr.cause=err;GodotRuntime.error(newErr)})}getPlaybackRate(){return this._playbackRate}getPlaybackPosition(){return this._playbackPosition}setPlaybackRate(val){this._playbackRate=val;this._syncPlaybackRate()}getPitchScale(){return this._pitchScale}setPitchScale(val){this._pitchScale=val;this._syncPlaybackRate()}getSample(){return GodotAudio.Sample.getSample(this.streamObjectId)}getOutputNode(){return this._source}start(){if(this.isStarted){return}this._resetSourceStartTime();this._source.start(this.startTime,this.offset);this.isStarted=true}stop(){this.clear()}restart(){this.isPaused=false;this.pauseTime=0;this._resetSourceStartTime();this._restart()}pause(enable=true){if(enable){this._pause();return}this._unpause()}connect(node){return this.getOutputNode().connect(node)}setVolumes(buses,volumes){for(let busIdx=0;busIdx<buses.length;busIdx++){const sampleNodeBus=this.getSampleNodeBus(buses[busIdx]);sampleNodeBus.setVolume(volumes.slice(busIdx*GodotAudio.MAX_VOLUME_CHANNELS,busIdx*GodotAudio.MAX_VOLUME_CHANNELS+GodotAudio.MAX_VOLUME_CHANNELS))}}getSampleNodeBus(bus){if(!this._sampleNodeBuses.has(bus)){const sampleNodeBus=GodotAudio.SampleNodeBus.create(bus);this._sampleNodeBuses.set(bus,sampleNodeBus);this._source.connect(sampleNodeBus.getInputNode())}return this._sampleNodeBuses.get(bus)}async connectPositionWorklet(start){await GodotAudio.audioPositionWorkletPromise;if(this.isCanceled){return}this._source.connect(this.getPositionWorklet());if(start){this.start()}}getPositionWorklet(){if(this._positionWorklet!=null){return this._positionWorklet}if(GodotAudio.audioPositionWorkletNodes.length>0){this._positionWorklet=GodotAudio.audioPositionWorkletNodes.pop()}else{this._positionWorklet=new AudioWorkletNode(GodotAudio.ctx,"godot-position-reporting-processor")}this._playbackPosition=this.offset;this._positionWorklet.port.onmessage=event=>{switch(event.data["type"]){case"position":this._playbackPosition=parseInt(event.data.data,10)/this.getSample().sampleRate+this.offset;break;default:}};const resetParameter=this._positionWorklet.parameters.get("reset");resetParameter.setValueAtTime(1,GodotAudio.ctx.currentTime);resetParameter.setValueAtTime(0,GodotAudio.ctx.currentTime+1);return this._positionWorklet}clear(){this.isCanceled=true;this.isPaused=false;this.pauseTime=0;if(this._source!=null){this._source.removeEventListener("ended",this._onended);this._onended=null;if(this.isStarted){this._source.stop()}this._source.disconnect();this._source=null}for(const sampleNodeBus of this._sampleNodeBuses.values()){sampleNodeBus.clear()}this._sampleNodeBuses.clear();if(this._positionWorklet){this._positionWorklet.disconnect();this._positionWorklet.port.onmessage=null;GodotAudio.audioPositionWorkletNodes.push(this._positionWorklet);this._positionWorklet=null}GodotAudio.SampleNode.delete(this.id)}_resetSourceStartTime(){this._sourceStartTime=GodotAudio.ctx.currentTime}_syncPlaybackRate(){this._source.playbackRate.value=this.getPlaybackRate()*this.getPitchScale()}_restart(){if(this._source!=null){this._source.disconnect()}this._source=GodotAudio.ctx.createBufferSource();this._source.buffer=this.getSample().getAudioBuffer();for(const sampleNodeBus of this._sampleNodeBuses.values()){this.connect(sampleNodeBus.getInputNode())}this._addEndedListener();const pauseTime=this.isPaused?this.pauseTime:0;if(this._positionWorklet!=null){this._positionWorklet.port.postMessage({type:"clear"});this._source.connect(this._positionWorklet)}this._source.start(this.startTime,this.offset+pauseTime);this.isStarted=true}_pause(){if(!this.isStarted){return}this.isPaused=true;this.pauseTime=(GodotAudio.ctx.currentTime-this._sourceStartTime)/this.getPlaybackRate();this._source.stop()}_unpause(){this._restart();this.isPaused=false;this.pauseTime=0}_addEndedListener(){if(this._onended!=null){this._source.removeEventListener("ended",this._onended)}const self=this;this._onended=_=>{if(self.isPaused){return}switch(self.getSample().loopMode){case"disabled":self.stop();break;case"forward":case"backward":self.restart();break;default:}};this._source.addEventListener("ended",this._onended)}},deleteSampleNode:pSampleNodeId=>{GodotAudio.sampleNodes.delete(pSampleNodeId);if(GodotAudio.sampleFinishedCallback==null){return}const sampleNodeIdPtr=GodotRuntime.allocString(pSampleNodeId);GodotAudio.sampleFinishedCallback(sampleNodeIdPtr);GodotRuntime.free(sampleNodeIdPtr)},buses:null,busSolo:null,Bus:class Bus{static getCount(){return GodotAudio.buses.length}static setCount(val){const buses=GodotAudio.buses;if(val===buses.length){return}if(val<buses.length){const deletedBuses=buses.slice(val);for(let i=0;i<deletedBuses.length;i++){const deletedBus=deletedBuses[i];deletedBus.clear()}GodotAudio.buses=buses.slice(0,val);return}for(let i=GodotAudio.buses.length;i<val;i++){GodotAudio.Bus.create()}}static getBus(index){if(index<0||index>=GodotAudio.buses.length){throw new ReferenceError(`invalid bus index "${index}"`)}return GodotAudio.buses[index]}static getBusOrNull(index){if(index<0||index>=GodotAudio.buses.length){return null}return GodotAudio.buses[index]}static move(fromIndex,toIndex){const movedBus=GodotAudio.Bus.getBusOrNull(fromIndex);if(movedBus==null){return}const buses=GodotAudio.buses.filter((_,i)=>i!==fromIndex);buses.splice(toIndex-1,0,movedBus);GodotAudio.buses=buses}static addAt(index){const newBus=GodotAudio.Bus.create();if(index!==newBus.getId()){GodotAudio.Bus.move(newBus.getId(),index)}}static create(){const newBus=new GodotAudio.Bus;const isFirstBus=GodotAudio.buses.length===0;GodotAudio.buses.push(newBus);if(isFirstBus){newBus.setSend(null)}else{newBus.setSend(GodotAudio.Bus.getBus(0))}return newBus}constructor(){this._sampleNodes=new Set;this.isSolo=false;this._send=null;this._gainNode=GodotAudio.ctx.createGain();this._soloNode=GodotAudio.ctx.createGain();this._muteNode=GodotAudio.ctx.createGain();this._gainNode.connect(this._soloNode).connect(this._muteNode)}getId(){return GodotAudio.buses.indexOf(this)}getVolumeDb(){return GodotAudio.linear_to_db(this._gainNode.gain.value)}setVolumeDb(val){const linear=GodotAudio.db_to_linear(val);if(isFinite(linear)){this._gainNode.gain.value=linear}}getSend(){return this._send}setSend(val){this._send=val;if(val==null){if(this.getId()==0){this.getOutputNode().connect(GodotAudio.ctx.destination);return}throw new Error(`Cannot send to "${val}" without the bus being at index 0 (current index: ${this.getId()})`)}this.connect(val)}getInputNode(){return this._gainNode}getOutputNode(){return this._muteNode}mute(enable){this._muteNode.gain.value=enable?0:1}solo(enable){if(this.isSolo===enable){return}if(enable){if(GodotAudio.busSolo!=null&&GodotAudio.busSolo!==this){GodotAudio.busSolo._disableSolo()}this._enableSolo();return}this._disableSolo()}addSampleNode(sampleNode){this._sampleNodes.add(sampleNode);sampleNode.getOutputNode().connect(this.getInputNode())}removeSampleNode(sampleNode){this._sampleNodes.delete(sampleNode);sampleNode.getOutputNode().disconnect()}connect(bus){if(bus==null){throw new Error("cannot connect to null bus")}this.getOutputNode().disconnect();this.getOutputNode().connect(bus.getInputNode());return bus}clear(){GodotAudio.buses=GodotAudio.buses.filter(v=>v!==this)}_syncSampleNodes(){const sampleNodes=Array.from(this._sampleNodes);for(let i=0;i<sampleNodes.length;i++){const sampleNode=sampleNodes[i];sampleNode.getOutputNode().disconnect();sampleNode.getOutputNode().connect(this.getInputNode())}}_enableSolo(){this.isSolo=true;GodotAudio.busSolo=this;this._soloNode.gain.value=1;const otherBuses=GodotAudio.buses.filter(otherBus=>otherBus!==this);for(let i=0;i<otherBuses.length;i++){const otherBus=otherBuses[i];otherBus._soloNode.gain.value=0}}_disableSolo(){this.isSolo=false;GodotAudio.busSolo=null;this._soloNode.gain.value=1;const otherBuses=GodotAudio.buses.filter(otherBus=>otherBus!==this);for(let i=0;i<otherBuses.length;i++){const otherBus=otherBuses[i];otherBus._soloNode.gain.value=1}}},sampleFinishedCallback:null,ctx:null,input:null,driver:null,interval:0,audioPositionWorkletPromise:null,audioPositionWorkletNodes:null,linear_to_db:function(linear){return Math.log(linear)*8.685889638065037},db_to_linear:function(db){return Math.exp(db*.11512925464970228)},init:function(mix_rate,latency,onstatechange,onlatencyupdate){GodotAudio.samples=new Map;GodotAudio.sampleNodes=new Map;GodotAudio.buses=[];GodotAudio.busSolo=null;GodotAudio.audioPositionWorkletNodes=[];const opts={};if(mix_rate){GodotAudio.sampleRate=mix_rate;opts["sampleRate"]=mix_rate}const ctx=new(window.AudioContext||window.webkitAudioContext)(opts);GodotAudio.ctx=ctx;ctx.onstatechange=function(){let state=0;switch(ctx.state){case"suspended":state=0;break;case"running":state=1;break;case"closed":state=2;break;default:}onstatechange(state)};ctx.onstatechange();GodotAudio.interval=setInterval(function(){let computed_latency=0;if(ctx.baseLatency){computed_latency+=GodotAudio.ctx.baseLatency}if(ctx.outputLatency){computed_latency+=GodotAudio.ctx.outputLatency}onlatencyupdate(computed_latency)},1e3);GodotOS.atexit(GodotAudio.close_async);const path=GodotConfig.locate_file("godot.audio.position.worklet.js");GodotAudio.audioPositionWorkletPromise=ctx.audioWorklet.addModule(path);return ctx.destination.channelCount},create_input:function(callback){if(GodotAudio.input){return 0}function gotMediaInput(stream){try{GodotAudio.input=GodotAudio.ctx.createMediaStreamSource(stream);callback(GodotAudio.input)}catch(e){GodotRuntime.error("Failed creating input.",e)}}if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){navigator.mediaDevices.getUserMedia({audio:true}).then(gotMediaInput,function(e){GodotRuntime.error("Error getting user media.",e)})}else{if(!navigator.getUserMedia){navigator.getUserMedia=navigator.webkitGetUserMedia||navigator.mozGetUserMedia}if(!navigator.getUserMedia){GodotRuntime.error("getUserMedia not available.");return 1}navigator.getUserMedia({audio:true},gotMediaInput,function(e){GodotRuntime.print(e)})}return 0},close_async:function(resolve,reject){const ctx=GodotAudio.ctx;GodotAudio.ctx=null;if(!ctx){resolve();return}if(GodotAudio.interval){clearInterval(GodotAudio.interval);GodotAudio.interval=0}if(GodotAudio.input){GodotAudio.input.disconnect();GodotAudio.input=null}let closed=Promise.resolve();if(GodotAudio.driver){closed=GodotAudio.driver.close()}closed.then(function(){return ctx.close()}).then(function(){ctx.onstatechange=null;resolve()}).catch(function(e){ctx.onstatechange=null;GodotRuntime.error("Error closing AudioContext",e);resolve()})},start_sample:function(playbackObjectId,streamObjectId,busIndex,startOptions){GodotAudio.SampleNode.stopSampleNode(playbackObjectId);GodotAudio.SampleNode.create({busIndex,id:playbackObjectId,streamObjectId},startOptions)},stop_sample:function(playbackObjectId){GodotAudio.SampleNode.stopSampleNode(playbackObjectId)},sample_set_pause:function(playbackObjectId,pause){GodotAudio.SampleNode.pauseSampleNode(playbackObjectId,pause)},update_sample_pitch_scale:function(playbackObjectId,pitchScale){const sampleNode=GodotAudio.SampleNode.getSampleNodeOrNull(playbackObjectId);if(sampleNode==null){return}sampleNode.setPitchScale(pitchScale)},sample_set_volumes_linear:function(playbackObjectId,busIndexes,volumes){const sampleNode=GodotAudio.SampleNode.getSampleNodeOrNull(playbackObjectId);if(sampleNode==null){return}const buses=busIndexes.map(busIndex=>GodotAudio.Bus.getBus(busIndex));sampleNode.setVolumes(buses,volumes)},set_sample_bus_count:function(count){GodotAudio.Bus.setCount(count)},remove_sample_bus:function(index){const bus=GodotAudio.Bus.getBusOrNull(index);if(bus==null){return}bus.clear()},add_sample_bus:function(atPos){GodotAudio.Bus.addAt(atPos)},move_sample_bus:function(busIndex,toPos){GodotAudio.Bus.move(busIndex,toPos)},set_sample_bus_send:function(busIndex,sendIndex){const bus=GodotAudio.Bus.getBusOrNull(busIndex);if(bus==null){return}let targetBus=GodotAudio.Bus.getBusOrNull(sendIndex);if(targetBus==null){targetBus=GodotAudio.Bus.getBus(0)}bus.setSend(targetBus)},set_sample_bus_volume_db:function(busIndex,volumeDb){const bus=GodotAudio.Bus.getBusOrNull(busIndex);if(bus==null){return}bus.setVolumeDb(volumeDb)},set_sample_bus_solo:function(busIndex,enable){const bus=GodotAudio.Bus.getBusOrNull(busIndex);if(bus==null){return}bus.solo(enable)},set_sample_bus_mute:function(busIndex,enable){const bus=GodotAudio.Bus.getBusOrNull(busIndex);if(bus==null){return}bus.mute(enable)}};function _godot_audio_get_sample_playback_position(playbackObjectIdStrPtr){const playbackObjectId=GodotRuntime.parseString(playbackObjectIdStrPtr);const sampleNode=GodotAudio.SampleNode.getSampleNodeOrNull(playbackObjectId);if(sampleNode==null){return 0}return sampleNode.getPlaybackPosition()}function _godot_audio_has_script_processor(){return GodotAudio.ctx&&GodotAudio.ctx.createScriptProcessor?1:0}function _godot_audio_has_worklet(){return GodotAudio.ctx&&GodotAudio.ctx.audioWorklet?1:0}function _godot_audio_init(p_mix_rate,p_latency,p_state_change,p_latency_update){const statechange=GodotRuntime.get_func(p_state_change);const latencyupdate=GodotRuntime.get_func(p_latency_update);const mix_rate=GodotRuntime.getHeapValue(p_mix_rate,"i32");const channels=GodotAudio.init(mix_rate,p_latency,statechange,latencyupdate);GodotRuntime.setHeapValue(p_mix_rate,GodotAudio.ctx.sampleRate,"i32");return channels}function _godot_audio_input_start(){return GodotAudio.create_input(function(input){input.connect(GodotAudio.driver.get_node())})}function _godot_audio_input_stop(){if(GodotAudio.input){const tracks=GodotAudio.input["mediaStream"]["getTracks"]();for(let i=0;i<tracks.length;i++){tracks[i]["stop"]()}GodotAudio.input.disconnect();GodotAudio.input=null}}function _godot_audio_is_available(){if(!(window.AudioContext||window.webkitAudioContext)){return 0}return 1}function _godot_audio_resume(){if(GodotAudio.ctx&&GodotAudio.ctx.state!=="running"){GodotAudio.ctx.resume()}}function _godot_audio_sample_bus_add(atPos){GodotAudio.add_sample_bus(atPos)}function _godot_audio_sample_bus_move(fromPos,toPos){GodotAudio.move_sample_bus(fromPos,toPos)}function _godot_audio_sample_bus_remove(index){GodotAudio.remove_sample_bus(index)}function _godot_audio_sample_bus_set_count(count){GodotAudio.set_sample_bus_count(count)}function _godot_audio_sample_bus_set_mute(bus,enable){GodotAudio.set_sample_bus_mute(bus,Boolean(enable))}function _godot_audio_sample_bus_set_send(bus,sendIndex){GodotAudio.set_sample_bus_send(bus,sendIndex)}function _godot_audio_sample_bus_set_solo(bus,enable){GodotAudio.set_sample_bus_solo(bus,Boolean(enable))}function _godot_audio_sample_bus_set_volume_db(bus,volumeDb){GodotAudio.set_sample_bus_volume_db(bus,volumeDb)}function _godot_audio_sample_is_active(playbackObjectIdStrPtr){const playbackObjectId=GodotRuntime.parseString(playbackObjectIdStrPtr);return Number(GodotAudio.sampleNodes.has(playbackObjectId))}function _godot_audio_sample_register_stream(streamObjectIdStrPtr,framesPtr,framesTotal,loopModeStrPtr,loopBegin,loopEnd){const BYTES_PER_FLOAT32=4;const streamObjectId=GodotRuntime.parseString(streamObjectIdStrPtr);const loopMode=GodotRuntime.parseString(loopModeStrPtr);const numberOfChannels=2;const sampleRate=GodotAudio.ctx.sampleRate;const subLeft=GodotRuntime.heapSub(HEAPF32,framesPtr,framesTotal);const subRight=GodotRuntime.heapSub(HEAPF32,framesPtr+framesTotal*BYTES_PER_FLOAT32,framesTotal);const audioBuffer=GodotAudio.ctx.createBuffer(numberOfChannels,framesTotal,sampleRate);audioBuffer.copyToChannel(new Float32Array(subLeft),0,0);audioBuffer.copyToChannel(new Float32Array(subRight),1,0);GodotAudio.Sample.create({id:streamObjectId,audioBuffer},{loopBegin,loopEnd,loopMode,numberOfChannels,sampleRate})}function _godot_audio_sample_set_finished_callback(callbackPtr){GodotAudio.sampleFinishedCallback=GodotRuntime.get_func(callbackPtr)}function _godot_audio_sample_set_pause(playbackObjectIdStrPtr,pause){const playbackObjectId=GodotRuntime.parseString(playbackObjectIdStrPtr);GodotAudio.sample_set_pause(playbackObjectId,Boolean(pause))}function _godot_audio_sample_set_volumes_linear(playbackObjectIdStrPtr,busesPtr,busesSize,volumesPtr,volumesSize){const playbackObjectId=GodotRuntime.parseString(playbackObjectIdStrPtr);const buses=GodotRuntime.heapSub(HEAP32,busesPtr,busesSize);const volumes=GodotRuntime.heapSub(HEAPF32,volumesPtr,volumesSize);GodotAudio.sample_set_volumes_linear(playbackObjectId,Array.from(buses),volumes)}function _godot_audio_sample_start(playbackObjectIdStrPtr,streamObjectIdStrPtr,busIndex,offset,pitchScale,volumePtr){const playbackObjectId=GodotRuntime.parseString(playbackObjectIdStrPtr);const streamObjectId=GodotRuntime.parseString(streamObjectIdStrPtr);const volume=GodotRuntime.heapSub(HEAPF32,volumePtr,8);const startOptions={offset,volume,playbackRate:1,pitchScale,start:true};GodotAudio.start_sample(playbackObjectId,streamObjectId,busIndex,startOptions)}function _godot_audio_sample_stop(playbackObjectIdStrPtr){const playbackObjectId=GodotRuntime.parseString(playbackObjectIdStrPtr);GodotAudio.stop_sample(playbackObjectId)}function _godot_audio_sample_stream_is_registered(streamObjectIdStrPtr){const streamObjectId=GodotRuntime.parseString(streamObjectIdStrPtr);return Number(GodotAudio.Sample.getSampleOrNull(streamObjectId)!=null)}function _godot_audio_sample_unregister_stream(streamObjectIdStrPtr){const streamObjectId=GodotRuntime.parseString(streamObjectIdStrPtr);const sample=GodotAudio.Sample.getSampleOrNull(streamObjectId);if(sample!=null){sample.clear()}}function _godot_audio_sample_update_pitch_scale(playbackObjectIdStrPtr,pitchScale){const playbackObjectId=GodotRuntime.parseString(playbackObjectIdStrPtr);GodotAudio.update_sample_pitch_scale(playbackObjectId,pitchScale)}var GodotAudioScript={script:null,create:function(buffer_length,channel_count){GodotAudioScript.script=GodotAudio.ctx.createScriptProcessor(buffer_length,2,channel_count);GodotAudio.driver=GodotAudioScript;return GodotAudioScript.script.bufferSize},start:function(p_in_buf,p_in_size,p_out_buf,p_out_size,onprocess){GodotAudioScript.script.onaudioprocess=function(event){const inb=GodotRuntime.heapSub(HEAPF32,p_in_buf,p_in_size);const input=event.inputBuffer;if(GodotAudio.input){const inlen=input.getChannelData(0).length;for(let ch=0;ch<2;ch++){const data=input.getChannelData(ch);for(let s=0;s<inlen;s++){inb[s*2+ch]=data[s]}}}onprocess();const outb=GodotRuntime.heapSub(HEAPF32,p_out_buf,p_out_size);const output=event.outputBuffer;const channels=output.numberOfChannels;for(let ch=0;ch<channels;ch++){const data=output.getChannelData(ch);for(let sample=0;sample<data.length;sample++){data[sample]=outb[sample*channels+ch]}}};GodotAudioScript.script.connect(GodotAudio.ctx.destination)},get_node:function(){return GodotAudioScript.script},close:function(){return new Promise(function(resolve,reject){GodotAudioScript.script.disconnect();GodotAudioScript.script.onaudioprocess=null;GodotAudioScript.script=null;resolve()})}};function _godot_audio_script_create(buffer_length,channel_count){const buf_len=GodotRuntime.getHeapValue(buffer_length,"i32");try{const out_len=GodotAudioScript.create(buf_len,channel_count);GodotRuntime.setHeapValue(buffer_length,out_len,"i32")}catch(e){GodotRuntime.error("Error starting AudioDriverScriptProcessor",e);return 1}return 0}function _godot_audio_script_start(p_in_buf,p_in_size,p_out_buf,p_out_size,p_cb){const onprocess=GodotRuntime.get_func(p_cb);GodotAudioScript.start(p_in_buf,p_in_size,p_out_buf,p_out_size,onprocess)}var GodotAudioWorklet={promise:null,worklet:null,ring_buffer:null,create:function(channels){const path=GodotConfig.locate_file("godot.audio.worklet.js");GodotAudioWorklet.promise=GodotAudio.ctx.audioWorklet.addModule(path).then(function(){GodotAudioWorklet.worklet=new AudioWorkletNode(GodotAudio.ctx,"godot-processor",{outputChannelCount:[channels]});return Promise.resolve()});GodotAudio.driver=GodotAudioWorklet},start:function(in_buf,out_buf,state){GodotAudioWorklet.promise.then(function(){const node=GodotAudioWorklet.worklet;node.connect(GodotAudio.ctx.destination);node.port.postMessage({cmd:"start",data:[state,in_buf,out_buf]});node.port.onmessage=function(event){GodotRuntime.error(event.data)}})},start_no_threads:function(p_out_buf,p_out_size,out_callback,p_in_buf,p_in_size,in_callback){function RingBuffer(){let wpos=0;let rpos=0;let pending_samples=0;const wbuf=new Float32Array(p_out_size);function send(port){if(pending_samples===0){return}const buffer=GodotRuntime.heapSub(HEAPF32,p_out_buf,p_out_size);const size=buffer.length;const tot_sent=pending_samples;out_callback(wpos,pending_samples);if(wpos+pending_samples>=size){const high=size-wpos;wbuf.set(buffer.subarray(wpos,size));pending_samples-=high;wpos=0}if(pending_samples>0){wbuf.set(buffer.subarray(wpos,wpos+pending_samples),tot_sent-pending_samples)}port.postMessage({cmd:"chunk",data:wbuf.subarray(0,tot_sent)});wpos+=pending_samples;pending_samples=0}this.receive=function(recv_buf){const buffer=GodotRuntime.heapSub(HEAPF32,p_in_buf,p_in_size);const from=rpos;let to_write=recv_buf.length;let high=0;if(rpos+to_write>=p_in_size){high=p_in_size-rpos;buffer.set(recv_buf.subarray(0,high),rpos);to_write-=high;rpos=0}if(to_write){buffer.set(recv_buf.subarray(high,to_write),rpos)}in_callback(from,recv_buf.length);rpos+=to_write};this.consumed=function(size,port){pending_samples+=size;send(port)}}GodotAudioWorklet.ring_buffer=new RingBuffer;GodotAudioWorklet.promise.then(function(){const node=GodotAudioWorklet.worklet;const buffer=GodotRuntime.heapSlice(HEAPF32,p_out_buf,p_out_size);node.connect(GodotAudio.ctx.destination);node.port.postMessage({cmd:"start_nothreads",data:[buffer,p_in_size]});node.port.onmessage=function(event){if(!GodotAudioWorklet.worklet){return}if(event.data["cmd"]==="read"){const read=event.data["data"];GodotAudioWorklet.ring_buffer.consumed(read,GodotAudioWorklet.worklet.port)}else if(event.data["cmd"]==="input"){const buf=event.data["data"];if(buf.length>p_in_size){GodotRuntime.error("Input chunk is too big");return}GodotAudioWorklet.ring_buffer.receive(buf)}else{GodotRuntime.error(event.data)}}})},get_node:function(){return GodotAudioWorklet.worklet},close:function(){return new Promise(function(resolve,reject){if(GodotAudioWorklet.promise===null){return}const p=GodotAudioWorklet.promise;p.then(function(){GodotAudioWorklet.worklet.port.postMessage({cmd:"stop",data:null});GodotAudioWorklet.worklet.disconnect();GodotAudioWorklet.worklet.port.onmessage=null;GodotAudioWorklet.worklet=null;GodotAudioWorklet.promise=null;resolve()}).catch(function(err){GodotRuntime.error(err)})})}};function _godot_audio_worklet_create(channels){try{GodotAudioWorklet.create(channels)}catch(e){GodotRuntime.error("Error starting AudioDriverWorklet",e);return 1}return 0}function _godot_audio_worklet_start_no_threads(p_out_buf,p_out_size,p_out_callback,p_in_buf,p_in_size,p_in_callback){const out_callback=GodotRuntime.get_func(p_out_callback);const in_callback=GodotRuntime.get_func(p_in_callback);GodotAudioWorklet.start_no_threads(p_out_buf,p_out_size,out_callback,p_in_buf,p_in_size,in_callback)}function _godot_js_config_canvas_id_get(p_ptr,p_ptr_max){GodotRuntime.stringToHeap(`#${GodotConfig.canvas.id}`,p_ptr,p_ptr_max)}function _godot_js_config_locale_get(p_ptr,p_ptr_max){GodotRuntime.stringToHeap(GodotConfig.locale,p_ptr,p_ptr_max)}var GodotDisplayCursor={shape:"default",visible:true,cursors:{},set_style:function(style){GodotConfig.canvas.style.cursor=style},set_shape:function(shape){GodotDisplayCursor.shape=shape;let css=shape;if(shape in GodotDisplayCursor.cursors){const c=GodotDisplayCursor.cursors[shape];css=`url("${c.url}") ${c.x} ${c.y}, default`}if(GodotDisplayCursor.visible){GodotDisplayCursor.set_style(css)}},clear:function(){GodotDisplayCursor.set_style("");GodotDisplayCursor.shape="default";GodotDisplayCursor.visible=true;Object.keys(GodotDisplayCursor.cursors).forEach(function(key){URL.revokeObjectURL(GodotDisplayCursor.cursors[key]);delete GodotDisplayCursor.cursors[key]})},lockPointer:function(){const canvas=GodotConfig.canvas;if(canvas.requestPointerLock){canvas.requestPointerLock()}},releasePointer:function(){if(document.exitPointerLock){document.exitPointerLock()}},isPointerLocked:function(){return document.pointerLockElement===GodotConfig.canvas}};var GodotEventListeners={handlers:[],has:function(target,event,method,capture){return GodotEventListeners.handlers.findIndex(function(e){return e.target===target&&e.event===event&&e.method===method&&e.capture===capture})!==-1},add:function(target,event,method,capture){if(GodotEventListeners.has(target,event,method,capture)){return}function Handler(p_target,p_event,p_method,p_capture){this.target=p_target;this.event=p_event;this.method=p_method;this.capture=p_capture}GodotEventListeners.handlers.push(new Handler(target,event,method,capture));target.addEventListener(event,method,capture)},clear:function(){GodotEventListeners.handlers.forEach(function(h){h.target.removeEventListener(h.event,h.method,h.capture)});GodotEventListeners.handlers.length=0}};var _emscripten_webgl_do_get_current_context=()=>GL.currentContext?GL.currentContext.handle:0;var _emscripten_webgl_get_current_context=_emscripten_webgl_do_get_current_context;var GodotDisplayScreen={desired_size:[0,0],hidpi:true,getPixelRatio:function(){return GodotDisplayScreen.hidpi?window.devicePixelRatio||1:1},isFullscreen:function(){const elem=document.fullscreenElement||document.mozFullscreenElement||document.webkitFullscreenElement||document.msFullscreenElement;if(elem){return elem===GodotConfig.canvas}return document.fullscreen||document.mozFullScreen||document.webkitIsFullscreen},hasFullscreen:function(){return document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled},requestFullscreen:function(){if(!GodotDisplayScreen.hasFullscreen()){return 1}const canvas=GodotConfig.canvas;try{const promise=(canvas.requestFullscreen||canvas.msRequestFullscreen||canvas.mozRequestFullScreen||canvas.mozRequestFullscreen||canvas.webkitRequestFullscreen).call(canvas);if(promise){promise.catch(function(){})}}catch(e){return 1}return 0},exitFullscreen:function(){if(!GodotDisplayScreen.isFullscreen()){return 0}try{const promise=document.exitFullscreen();if(promise){promise.catch(function(){})}}catch(e){return 1}return 0},_updateGL:function(){const gl_context_handle=_emscripten_webgl_get_current_context();const gl=GL.getContext(gl_context_handle);if(gl){GL.resizeOffscreenFramebuffer(gl)}},updateSize:function(){const isFullscreen=GodotDisplayScreen.isFullscreen();const wantsFullWindow=GodotConfig.canvas_resize_policy===2;const noResize=GodotConfig.canvas_resize_policy===0;const dWidth=GodotDisplayScreen.desired_size[0];const dHeight=GodotDisplayScreen.desired_size[1];const canvas=GodotConfig.canvas;let width=dWidth;let height=dHeight;if(noResize){if(canvas.width!==width||canvas.height!==height){GodotDisplayScreen.desired_size=[canvas.width,canvas.height];GodotDisplayScreen._updateGL();return 1}return 0}const scale=GodotDisplayScreen.getPixelRatio();if(isFullscreen||wantsFullWindow){width=Math.floor(window.innerWidth*scale);height=Math.floor(window.innerHeight*scale)}const csw=`${Math.floor(width/scale)}px`;const csh=`${Math.floor(height/scale)}px`;if(canvas.style.width!==csw||canvas.style.height!==csh||canvas.width!==width||canvas.height!==height){canvas.width=width;canvas.height=height;canvas.style.width=csw;canvas.style.height=csh;GodotDisplayScreen._updateGL();return 1}return 0}};var GodotDisplayVK={textinput:null,textarea:null,available:function(){return GodotConfig.virtual_keyboard&&"ontouchstart"in window},init:function(input_cb){function create(what){const elem=document.createElement(what);elem.style.display="none";elem.style.position="absolute";elem.style.zIndex="-1";elem.style.background="transparent";elem.style.padding="0px";elem.style.margin="0px";elem.style.overflow="hidden";elem.style.width="0px";elem.style.height="0px";elem.style.border="0px";elem.style.outline="none";elem.readonly=true;elem.disabled=true;GodotEventListeners.add(elem,"input",function(evt){const c_str=GodotRuntime.allocString(elem.value);input_cb(c_str,elem.selectionEnd);GodotRuntime.free(c_str)},false);GodotEventListeners.add(elem,"blur",function(evt){elem.style.display="none";elem.readonly=true;elem.disabled=true},false);GodotConfig.canvas.insertAdjacentElement("beforebegin",elem);return elem}GodotDisplayVK.textinput=create("input");GodotDisplayVK.textarea=create("textarea");GodotDisplayVK.updateSize()},show:function(text,type,start,end){if(!GodotDisplayVK.textinput||!GodotDisplayVK.textarea){return}if(GodotDisplayVK.textinput.style.display!==""||GodotDisplayVK.textarea.style.display!==""){GodotDisplayVK.hide()}GodotDisplayVK.updateSize();let elem=GodotDisplayVK.textinput;switch(type){case 0:elem.type="text";elem.inputmode="";break;case 1:elem=GodotDisplayVK.textarea;break;case 2:elem.type="text";elem.inputmode="numeric";break;case 3:elem.type="text";elem.inputmode="decimal";break;case 4:elem.type="tel";elem.inputmode="";break;case 5:elem.type="email";elem.inputmode="";break;case 6:elem.type="password";elem.inputmode="";break;case 7:elem.type="url";elem.inputmode="";break;default:elem.type="text";elem.inputmode="";break}elem.readonly=false;elem.disabled=false;elem.value=text;elem.style.display="block";elem.focus();elem.setSelectionRange(start,end)},hide:function(){if(!GodotDisplayVK.textinput||!GodotDisplayVK.textarea){return}[GodotDisplayVK.textinput,GodotDisplayVK.textarea].forEach(function(elem){elem.blur();elem.style.display="none";elem.value=""})},updateSize:function(){if(!GodotDisplayVK.textinput||!GodotDisplayVK.textarea){return}const rect=GodotConfig.canvas.getBoundingClientRect();function update(elem){elem.style.left=`${rect.left}px`;elem.style.top=`${rect.top}px`;elem.style.width=`${rect.width}px`;elem.style.height=`${rect.height}px`}update(GodotDisplayVK.textinput);update(GodotDisplayVK.textarea)},clear:function(){if(GodotDisplayVK.textinput){GodotDisplayVK.textinput.remove();GodotDisplayVK.textinput=null}if(GodotDisplayVK.textarea){GodotDisplayVK.textarea.remove();GodotDisplayVK.textarea=null}}};var GodotDisplay={window_icon:"",getDPI:function(){const dpi=Math.round(window.devicePixelRatio*96);return dpi>=96?dpi:96}};function _godot_js_display_alert(p_text){window.alert(GodotRuntime.parseString(p_text))}function _godot_js_display_canvas_focus(){GodotConfig.canvas.focus()}function _godot_js_display_canvas_is_focused(){return document.activeElement===GodotConfig.canvas}function _godot_js_display_clipboard_get(callback){const func=GodotRuntime.get_func(callback);try{navigator.clipboard.readText().then(function(result){const ptr=GodotRuntime.allocString(result);func(ptr);GodotRuntime.free(ptr)}).catch(function(e){})}catch(e){}}function _godot_js_display_clipboard_set(p_text){const text=GodotRuntime.parseString(p_text);if(!navigator.clipboard||!navigator.clipboard.writeText){return 1}navigator.clipboard.writeText(text).catch(function(e){GodotRuntime.error("Setting OS clipboard is only possible from an input callback for the Web platform. Exception:",e)});return 0}function _godot_js_display_cursor_is_hidden(){return!GodotDisplayCursor.visible}function _godot_js_display_cursor_is_locked(){return GodotDisplayCursor.isPointerLocked()?1:0}function _godot_js_display_cursor_lock_set(p_lock){if(p_lock){GodotDisplayCursor.lockPointer()}else{GodotDisplayCursor.releasePointer()}}function _godot_js_display_cursor_set_custom_shape(p_shape,p_ptr,p_len,p_hotspot_x,p_hotspot_y){const shape=GodotRuntime.parseString(p_shape);const old_shape=GodotDisplayCursor.cursors[shape];if(p_len>0){const png=new Blob([GodotRuntime.heapSlice(HEAPU8,p_ptr,p_len)],{type:"image/png"});const url=URL.createObjectURL(png);GodotDisplayCursor.cursors[shape]={url,x:p_hotspot_x,y:p_hotspot_y}}else{delete GodotDisplayCursor.cursors[shape]}if(shape===GodotDisplayCursor.shape){GodotDisplayCursor.set_shape(GodotDisplayCursor.shape)}if(old_shape){URL.revokeObjectURL(old_shape.url)}}function _godot_js_display_cursor_set_shape(p_string){GodotDisplayCursor.set_shape(GodotRuntime.parseString(p_string))}function _godot_js_display_cursor_set_visible(p_visible){const visible=p_visible!==0;if(visible===GodotDisplayCursor.visible){return}GodotDisplayCursor.visible=visible;if(visible){GodotDisplayCursor.set_shape(GodotDisplayCursor.shape)}else{GodotDisplayCursor.set_style("none")}}function _godot_js_display_desired_size_set(width,height){GodotDisplayScreen.desired_size=[width,height];GodotDisplayScreen.updateSize()}function _godot_js_display_fullscreen_cb(callback){const canvas=GodotConfig.canvas;const func=GodotRuntime.get_func(callback);function change_cb(evt){if(evt.target===canvas){func(GodotDisplayScreen.isFullscreen())}}GodotEventListeners.add(document,"fullscreenchange",change_cb,false);GodotEventListeners.add(document,"mozfullscreenchange",change_cb,false);GodotEventListeners.add(document,"webkitfullscreenchange",change_cb,false)}function _godot_js_display_fullscreen_exit(){return GodotDisplayScreen.exitFullscreen()}function _godot_js_display_fullscreen_request(){return GodotDisplayScreen.requestFullscreen()}function _godot_js_display_has_webgl(p_version){if(p_version!==1&&p_version!==2){return false}try{return!!document.createElement("canvas").getContext(p_version===2?"webgl2":"webgl")}catch(e){}return false}function _godot_js_display_is_swap_ok_cancel(){const win=["Windows","Win64","Win32","WinCE"];const plat=navigator.platform||"";if(win.indexOf(plat)!==-1){return 1}return 0}function _godot_js_display_notification_cb(callback,p_enter,p_exit,p_in,p_out){const canvas=GodotConfig.canvas;const func=GodotRuntime.get_func(callback);const notif=[p_enter,p_exit,p_in,p_out];["mouseover","mouseleave","focus","blur"].forEach(function(evt_name,idx){GodotEventListeners.add(canvas,evt_name,function(){func(notif[idx])},true)})}function _godot_js_display_pixel_ratio_get(){return GodotDisplayScreen.getPixelRatio()}function _godot_js_display_screen_dpi_get(){return GodotDisplay.getDPI()}function _godot_js_display_screen_size_get(width,height){const scale=GodotDisplayScreen.getPixelRatio();GodotRuntime.setHeapValue(width,window.screen.width*scale,"i32");GodotRuntime.setHeapValue(height,window.screen.height*scale,"i32")}function _godot_js_display_setup_canvas(p_width,p_height,p_fullscreen,p_hidpi){const canvas=GodotConfig.canvas;GodotEventListeners.add(canvas,"contextmenu",function(ev){ev.preventDefault()},false);GodotEventListeners.add(canvas,"webglcontextlost",function(ev){alert("WebGL context lost, please reload the page");ev.preventDefault()},false);GodotDisplayScreen.hidpi=!!p_hidpi;switch(GodotConfig.canvas_resize_policy){case 0:GodotDisplayScreen.desired_size=[canvas.width,canvas.height];break;case 1:GodotDisplayScreen.desired_size=[p_width,p_height];break;default:canvas.style.position="absolute";canvas.style.top=0;canvas.style.left=0;break}GodotDisplayScreen.updateSize();if(p_fullscreen){GodotDisplayScreen.requestFullscreen()}}function _godot_js_display_size_update(){const updated=GodotDisplayScreen.updateSize();if(updated){GodotDisplayVK.updateSize()}return updated}function _godot_js_display_touchscreen_is_available(){return"ontouchstart"in window}function _godot_js_display_tts_available(){return"speechSynthesis"in window}function _godot_js_display_vk_available(){return GodotDisplayVK.available()}function _godot_js_display_vk_cb(p_input_cb){const input_cb=GodotRuntime.get_func(p_input_cb);if(GodotDisplayVK.available()){GodotDisplayVK.init(input_cb)}}function _godot_js_display_vk_hide(){GodotDisplayVK.hide()}function _godot_js_display_vk_show(p_text,p_type,p_start,p_end){const text=GodotRuntime.parseString(p_text);const start=p_start>0?p_start:0;const end=p_end>0?p_end:start;GodotDisplayVK.show(text,p_type,start,end)}function _godot_js_display_window_blur_cb(callback){const func=GodotRuntime.get_func(callback);GodotEventListeners.add(window,"blur",function(){func()},false)}function _godot_js_display_window_icon_set(p_ptr,p_len){let link=document.getElementById("-gd-engine-icon");const old_icon=GodotDisplay.window_icon;if(p_ptr){if(link===null){link=document.createElement("link");link.rel="icon";link.id="-gd-engine-icon";document.head.appendChild(link)}const png=new Blob([GodotRuntime.heapSlice(HEAPU8,p_ptr,p_len)],{type:"image/png"});GodotDisplay.window_icon=URL.createObjectURL(png);link.href=GodotDisplay.window_icon}else{if(link){link.remove()}GodotDisplay.window_icon=null}if(old_icon){URL.revokeObjectURL(old_icon)}}function _godot_js_display_window_size_get(p_width,p_height){GodotRuntime.setHeapValue(p_width,GodotConfig.canvas.width,"i32");GodotRuntime.setHeapValue(p_height,GodotConfig.canvas.height,"i32")}function _godot_js_display_window_title_set(p_data){document.title=GodotRuntime.parseString(p_data)}function _godot_js_emscripten_get_version(){const emscriptenVersionPtr=GodotRuntime.allocString("4.0.10");return emscriptenVersionPtr}function _godot_js_eval(p_js,p_use_global_ctx,p_union_ptr,p_byte_arr,p_byte_arr_write,p_callback){const js_code=GodotRuntime.parseString(p_js);let eval_ret=null;try{if(p_use_global_ctx){const global_eval=eval;eval_ret=global_eval(js_code)}else{eval_ret=eval(js_code)}}catch(e){GodotRuntime.error(e)}switch(typeof eval_ret){case"boolean":GodotRuntime.setHeapValue(p_union_ptr,eval_ret,"i32");return 1;case"number":GodotRuntime.setHeapValue(p_union_ptr,eval_ret,"double");return 3;case"string":GodotRuntime.setHeapValue(p_union_ptr,GodotRuntime.allocString(eval_ret),"*");return 4;case"object":if(eval_ret===null){break}if(ArrayBuffer.isView(eval_ret)&&!(eval_ret instanceof Uint8Array)){eval_ret=new Uint8Array(eval_ret.buffer)}else if(eval_ret instanceof ArrayBuffer){eval_ret=new Uint8Array(eval_ret)}if(eval_ret instanceof Uint8Array){const func=GodotRuntime.get_func(p_callback);const bytes_ptr=func(p_byte_arr,p_byte_arr_write,eval_ret.length);HEAPU8.set(eval_ret,bytes_ptr);return 29}break}return 0}var IDHandler={_last_id:0,_references:{},get:function(p_id){return IDHandler._references[p_id]},add:function(p_data){const id=++IDHandler._last_id;IDHandler._references[id]=p_data;return id},remove:function(p_id){delete IDHandler._references[p_id]}};var GodotFetch={onread:function(id,result){const obj=IDHandler.get(id);if(!obj){return}if(result.value){obj.chunks.push(result.value)}obj.reading=false;obj.done=result.done},onresponse:function(id,response){const obj=IDHandler.get(id);if(!obj){return}let chunked=false;response.headers.forEach(function(value,header){const v=value.toLowerCase().trim();const h=header.toLowerCase().trim();if(h==="transfer-encoding"&&v==="chunked"){chunked=true}});obj.status=response.status;obj.response=response;obj.reader=response.body?.getReader();obj.chunked=chunked},onerror:function(id,err){GodotRuntime.error(err);const obj=IDHandler.get(id);if(!obj){return}obj.error=err},create:function(method,url,headers,body){const obj={request:null,response:null,reader:null,error:null,done:false,reading:false,status:0,chunks:[]};const id=IDHandler.add(obj);const init={method,headers,body};obj.request=fetch(url,init);obj.request.then(GodotFetch.onresponse.bind(null,id)).catch(GodotFetch.onerror.bind(null,id));return id},free:function(id){const obj=IDHandler.get(id);if(!obj){return}IDHandler.remove(id);if(!obj.request){return}obj.request.then(function(response){response.abort()}).catch(function(e){})},read:function(id){const obj=IDHandler.get(id);if(!obj){return}if(obj.reader&&!obj.reading){if(obj.done){obj.reader=null;return}obj.reading=true;obj.reader.read().then(GodotFetch.onread.bind(null,id)).catch(GodotFetch.onerror.bind(null,id))}else if(obj.reader==null&&obj.response.body==null){obj.reading=true;GodotFetch.onread(id,{value:undefined,done:true})}}};function _godot_js_fetch_create(p_method,p_url,p_headers,p_headers_size,p_body,p_body_size){const method=GodotRuntime.parseString(p_method);const url=GodotRuntime.parseString(p_url);const headers=GodotRuntime.parseStringArray(p_headers,p_headers_size);const body=p_body_size?GodotRuntime.heapSlice(HEAP8,p_body,p_body_size):null;return GodotFetch.create(method,url,headers.map(function(hv){const idx=hv.indexOf(":");if(idx<=0){return[]}return[hv.slice(0,idx).trim(),hv.slice(idx+1).trim()]}).filter(function(v){return v.length===2}),body)}function _godot_js_fetch_free(id){GodotFetch.free(id)}function _godot_js_fetch_http_status_get(p_id){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return 0}return obj.status}function _godot_js_fetch_is_chunked(p_id){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return-1}return obj.chunked?1:0}function _godot_js_fetch_read_chunk(p_id,p_buf,p_buf_size){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return 0}let to_read=p_buf_size;const chunks=obj.chunks;while(to_read&&chunks.length){const chunk=obj.chunks[0];if(chunk.length>to_read){GodotRuntime.heapCopy(HEAP8,chunk.slice(0,to_read),p_buf);chunks[0]=chunk.slice(to_read);to_read=0}else{GodotRuntime.heapCopy(HEAP8,chunk,p_buf);to_read-=chunk.length;chunks.pop()}}if(!chunks.length){GodotFetch.read(p_id)}return p_buf_size-to_read}function _godot_js_fetch_read_headers(p_id,p_parse_cb,p_ref){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return 1}const cb=GodotRuntime.get_func(p_parse_cb);const arr=[];obj.response.headers.forEach(function(v,h){arr.push(`${h}:${v}`)});const c_ptr=GodotRuntime.allocStringArray(arr);cb(arr.length,c_ptr,p_ref);GodotRuntime.freeStringArray(c_ptr,arr.length);return 0}function _godot_js_fetch_state_get(p_id){const obj=IDHandler.get(p_id);if(!obj){return-1}if(obj.error){return-1}if(!obj.response){return 0}if(obj.reader||obj.response.body==null&&!obj.done){return 1}if(obj.done){return 2}return-1}var GodotInputGamepads={samples:[],get_pads:function(){try{const pads=navigator.getGamepads();if(pads){return pads}return[]}catch(e){return[]}},get_samples:function(){return GodotInputGamepads.samples},get_sample:function(index){const samples=GodotInputGamepads.samples;return index<samples.length?samples[index]:null},sample:function(){const pads=GodotInputGamepads.get_pads();const samples=[];for(let i=0;i<pads.length;i++){const pad=pads[i];if(!pad){samples.push(null);continue}const s={standard:pad.mapping==="standard",buttons:[],axes:[],connected:pad.connected};for(let b=0;b<pad.buttons.length;b++){s.buttons.push(pad.buttons[b].value)}for(let a=0;a<pad.axes.length;a++){s.axes.push(pad.axes[a])}samples.push(s)}GodotInputGamepads.samples=samples},init:function(onchange){GodotInputGamepads.samples=[];function add(pad){const guid=GodotInputGamepads.get_guid(pad);const c_id=GodotRuntime.allocString(pad.id);const c_guid=GodotRuntime.allocString(guid);onchange(pad.index,1,c_id,c_guid);GodotRuntime.free(c_id);GodotRuntime.free(c_guid)}const pads=GodotInputGamepads.get_pads();for(let i=0;i<pads.length;i++){if(pads[i]){add(pads[i])}}GodotEventListeners.add(window,"gamepadconnected",function(evt){if(evt.gamepad){add(evt.gamepad)}},false);GodotEventListeners.add(window,"gamepaddisconnected",function(evt){if(evt.gamepad){onchange(evt.gamepad.index,0)}},false)},get_guid:function(pad){if(pad.mapping){return pad.mapping}const ua=navigator.userAgent;let os="Unknown";if(ua.indexOf("Android")>=0){os="Android"}else if(ua.indexOf("Linux")>=0){os="Linux"}else if(ua.indexOf("iPhone")>=0){os="iOS"}else if(ua.indexOf("Macintosh")>=0){os="MacOSX"}else if(ua.indexOf("Windows")>=0){os="Windows"}const id=pad.id;const exp1=/vendor: ([0-9a-f]{4}) product: ([0-9a-f]{4})/i;const exp2=/^([0-9a-f]+)-([0-9a-f]+)-/i;let vendor="";let product="";if(exp1.test(id)){const match=exp1.exec(id);vendor=match[1].padStart(4,"0");product=match[2].padStart(4,"0")}else if(exp2.test(id)){const match=exp2.exec(id);vendor=match[1].padStart(4,"0");product=match[2].padStart(4,"0")}if(!vendor||!product){return`${os}Unknown`}return os+vendor+product}};var GodotInputDragDrop={promises:[],pending_files:[],add_entry:function(entry){if(entry.isDirectory){GodotInputDragDrop.add_dir(entry)}else if(entry.isFile){GodotInputDragDrop.add_file(entry)}else{GodotRuntime.error("Unrecognized entry...",entry)}},add_dir:function(entry){GodotInputDragDrop.promises.push(new Promise(function(resolve,reject){const reader=entry.createReader();reader.readEntries(function(entries){for(let i=0;i<entries.length;i++){GodotInputDragDrop.add_entry(entries[i])}resolve()})}))},add_file:function(entry){GodotInputDragDrop.promises.push(new Promise(function(resolve,reject){entry.file(function(file){const reader=new FileReader;reader.onload=function(){const f={path:file.relativePath||file.webkitRelativePath,name:file.name,type:file.type,size:file.size,data:reader.result};if(!f["path"]){f["path"]=f["name"]}GodotInputDragDrop.pending_files.push(f);resolve()};reader.onerror=function(){GodotRuntime.print("Error reading file");reject()};reader.readAsArrayBuffer(file)},function(err){GodotRuntime.print("Error!");reject()})}))},process:function(resolve,reject){if(GodotInputDragDrop.promises.length===0){resolve();return}GodotInputDragDrop.promises.pop().then(function(){setTimeout(function(){GodotInputDragDrop.process(resolve,reject)},0)})},_process_event:function(ev,callback){ev.preventDefault();if(ev.dataTransfer.items){for(let i=0;i<ev.dataTransfer.items.length;i++){const item=ev.dataTransfer.items[i];let entry=null;if("getAsEntry"in item){entry=item.getAsEntry()}else if("webkitGetAsEntry"in item){entry=item.webkitGetAsEntry()}if(entry){GodotInputDragDrop.add_entry(entry)}}}else{GodotRuntime.error("File upload not supported")}new Promise(GodotInputDragDrop.process).then(function(){const DROP=`/tmp/drop-${parseInt(Math.random()*(1<<30),10)}/`;const drops=[];const files=[];FS.mkdir(DROP.slice(0,-1));GodotInputDragDrop.pending_files.forEach(elem=>{const path=elem["path"];GodotFS.copy_to_fs(DROP+path,elem["data"]);let idx=path.indexOf("/");if(idx===-1){drops.push(DROP+path)}else{const sub=path.substr(0,idx);idx=sub.indexOf("/");if(idx<0&&drops.indexOf(DROP+sub)===-1){drops.push(DROP+sub)}}files.push(DROP+path)});GodotInputDragDrop.promises=[];GodotInputDragDrop.pending_files=[];callback(drops);if(GodotConfig.persistent_drops){GodotOS.atexit(function(resolve,reject){GodotInputDragDrop.remove_drop(files,DROP);resolve()})}else{GodotInputDragDrop.remove_drop(files,DROP)}})},remove_drop:function(files,drop_path){const dirs=[drop_path.substr(0,drop_path.length-1)];files.forEach(function(file){FS.unlink(file);let dir=file.replace(drop_path,"");let idx=dir.lastIndexOf("/");while(idx>0){dir=dir.substr(0,idx);if(dirs.indexOf(drop_path+dir)===-1){dirs.push(drop_path+dir)}idx=dir.lastIndexOf("/")}});dirs.sort(function(a,b){const al=(a.match(/\//g)||[]).length;const bl=(b.match(/\//g)||[]).length;if(al>bl){return-1}else if(al<bl){return 1}return 0}).forEach(function(dir){FS.rmdir(dir)})},handler:function(callback){return function(ev){GodotInputDragDrop._process_event(ev,callback)}}};var GodotIME={ime:null,active:false,focusTimerIntervalId:-1,getModifiers:function(evt){return evt.shiftKey+0+(evt.altKey+0<<1)+(evt.ctrlKey+0<<2)+(evt.metaKey+0<<3)},ime_active:function(active){function clearFocusTimerInterval(){clearInterval(GodotIME.focusTimerIntervalId);GodotIME.focusTimerIntervalId=-1}function focusTimer(){if(GodotIME.ime==null){clearFocusTimerInterval();return}GodotIME.ime.focus()}if(GodotIME.focusTimerIntervalId>-1){clearFocusTimerInterval()}if(GodotIME.ime==null){return}GodotIME.active=active;if(active){GodotIME.ime.style.display="block";GodotIME.focusTimerIntervalId=setInterval(focusTimer,100)}else{GodotIME.ime.style.display="none";GodotConfig.canvas.focus()}},ime_position:function(x,y){if(GodotIME.ime==null){return}const canvas=GodotConfig.canvas;const rect=canvas.getBoundingClientRect();const rw=canvas.width/rect.width;const rh=canvas.height/rect.height;const clx=x/rw+rect.x;const cly=y/rh+rect.y;GodotIME.ime.style.left=`${clx}px`;GodotIME.ime.style.top=`${cly}px`},init:function(ime_cb,key_cb,code,key){function key_event_cb(pressed,evt){const modifiers=GodotIME.getModifiers(evt);GodotRuntime.stringToHeap(evt.code,code,32);GodotRuntime.stringToHeap(evt.key,key,32);key_cb(pressed,evt.repeat,modifiers);evt.preventDefault()}function ime_event_cb(event){if(GodotIME.ime==null){return}switch(event.type){case"compositionstart":ime_cb(0,null);GodotIME.ime.innerHTML="";break;case"compositionupdate":{const ptr=GodotRuntime.allocString(event.data);ime_cb(1,ptr);GodotRuntime.free(ptr)}break;case"compositionend":{const ptr=GodotRuntime.allocString(event.data);ime_cb(2,ptr);GodotRuntime.free(ptr);GodotIME.ime.innerHTML=""}break;default:}}const ime=document.createElement("div");ime.className="ime";ime.style.background="none";ime.style.opacity=0;ime.style.position="fixed";ime.style.textAlign="left";ime.style.fontSize="1px";ime.style.left="0px";ime.style.top="0px";ime.style.width="100%";ime.style.height="40px";ime.style.pointerEvents="none";ime.style.display="none";ime.contentEditable="true";GodotEventListeners.add(ime,"compositionstart",ime_event_cb,false);GodotEventListeners.add(ime,"compositionupdate",ime_event_cb,false);GodotEventListeners.add(ime,"compositionend",ime_event_cb,false);GodotEventListeners.add(ime,"keydown",key_event_cb.bind(null,1),false);GodotEventListeners.add(ime,"keyup",key_event_cb.bind(null,0),false);ime.onblur=function(){this.style.display="none";GodotConfig.canvas.focus();GodotIME.active=false};GodotConfig.canvas.parentElement.appendChild(ime);GodotIME.ime=ime},clear:function(){if(GodotIME.ime==null){return}if(GodotIME.focusTimerIntervalId>-1){clearInterval(GodotIME.focusTimerIntervalId);GodotIME.focusTimerIntervalId=-1}GodotIME.ime.remove();GodotIME.ime=null}};var GodotInput={getModifiers:function(evt){return evt.shiftKey+0+(evt.altKey+0<<1)+(evt.ctrlKey+0<<2)+(evt.metaKey+0<<3)},computePosition:function(evt,rect){const canvas=GodotConfig.canvas;const rw=canvas.width/rect.width;const rh=canvas.height/rect.height;const x=(evt.clientX-rect.x)*rw;const y=(evt.clientY-rect.y)*rh;return[x,y]}};function _godot_js_input_drop_files_cb(callback){const func=GodotRuntime.get_func(callback);const dropFiles=function(files){const args=files||[];if(!args.length){return}const argc=args.length;const argv=GodotRuntime.allocStringArray(args);func(argv,argc);GodotRuntime.freeStringArray(argv,argc)};const canvas=GodotConfig.canvas;GodotEventListeners.add(canvas,"dragover",function(ev){ev.preventDefault()},false);GodotEventListeners.add(canvas,"drop",GodotInputDragDrop.handler(dropFiles))}function _godot_js_input_gamepad_cb(change_cb){const onchange=GodotRuntime.get_func(change_cb);GodotInputGamepads.init(onchange)}function _godot_js_input_gamepad_sample(){GodotInputGamepads.sample();return 0}function _godot_js_input_gamepad_sample_count(){return GodotInputGamepads.get_samples().length}function _godot_js_input_gamepad_sample_get(p_index,r_btns,r_btns_num,r_axes,r_axes_num,r_standard){const sample=GodotInputGamepads.get_sample(p_index);if(!sample||!sample.connected){return 1}const btns=sample.buttons;const btns_len=btns.length<16?btns.length:16;for(let i=0;i<btns_len;i++){GodotRuntime.setHeapValue(r_btns+(i<<2),btns[i],"float")}GodotRuntime.setHeapValue(r_btns_num,btns_len,"i32");const axes=sample.axes;const axes_len=axes.length<10?axes.length:10;for(let i=0;i<axes_len;i++){GodotRuntime.setHeapValue(r_axes+(i<<2),axes[i],"float")}GodotRuntime.setHeapValue(r_axes_num,axes_len,"i32");const is_standard=sample.standard?1:0;GodotRuntime.setHeapValue(r_standard,is_standard,"i32");return 0}function _godot_js_input_key_cb(callback,code,key){const func=GodotRuntime.get_func(callback);function key_cb(pressed,evt){const modifiers=GodotInput.getModifiers(evt);GodotRuntime.stringToHeap(evt.code,code,32);GodotRuntime.stringToHeap(evt.key,key,32);func(pressed,evt.repeat,modifiers);evt.preventDefault()}GodotEventListeners.add(GodotConfig.canvas,"keydown",key_cb.bind(null,1),false);GodotEventListeners.add(GodotConfig.canvas,"keyup",key_cb.bind(null,0),false)}function _godot_js_input_mouse_button_cb(callback){const func=GodotRuntime.get_func(callback);const canvas=GodotConfig.canvas;function button_cb(p_pressed,evt){const rect=canvas.getBoundingClientRect();const pos=GodotInput.computePosition(evt,rect);const modifiers=GodotInput.getModifiers(evt);if(p_pressed){GodotConfig.canvas.focus()}if(func(p_pressed,evt.button,pos[0],pos[1],modifiers)){evt.preventDefault()}}GodotEventListeners.add(canvas,"mousedown",button_cb.bind(null,1),false);GodotEventListeners.add(window,"mouseup",button_cb.bind(null,0),false)}function _godot_js_input_mouse_move_cb(callback){const func=GodotRuntime.get_func(callback);const canvas=GodotConfig.canvas;function move_cb(evt){const rect=canvas.getBoundingClientRect();const pos=GodotInput.computePosition(evt,rect);const rw=canvas.width/rect.width;const rh=canvas.height/rect.height;const rel_pos_x=evt.movementX*rw;const rel_pos_y=evt.movementY*rh;const modifiers=GodotInput.getModifiers(evt);func(pos[0],pos[1],rel_pos_x,rel_pos_y,modifiers,evt.pressure)}GodotEventListeners.add(window,"pointermove",move_cb,false)}function _godot_js_input_mouse_wheel_cb(callback){const func=GodotRuntime.get_func(callback);function wheel_cb(evt){if(func(evt.deltaMode,evt.deltaX??0,evt.deltaY??0)){evt.preventDefault()}}GodotEventListeners.add(GodotConfig.canvas,"wheel",wheel_cb,false)}function _godot_js_input_paste_cb(callback){const func=GodotRuntime.get_func(callback);GodotEventListeners.add(window,"paste",function(evt){const text=evt.clipboardData.getData("text");const ptr=GodotRuntime.allocString(text);func(ptr);GodotRuntime.free(ptr)},false)}function _godot_js_input_touch_cb(callback,ids,coords){const func=GodotRuntime.get_func(callback);const canvas=GodotConfig.canvas;function touch_cb(type,evt){if(type===0){GodotConfig.canvas.focus()}const rect=canvas.getBoundingClientRect();const touches=evt.changedTouches;for(let i=0;i<touches.length;i++){const touch=touches[i];const pos=GodotInput.computePosition(touch,rect);GodotRuntime.setHeapValue(coords+i*2*8,pos[0],"double");GodotRuntime.setHeapValue(coords+(i*2+1)*8,pos[1],"double");GodotRuntime.setHeapValue(ids+i*4,touch.identifier,"i32")}func(type,touches.length);if(evt.cancelable){evt.preventDefault()}}GodotEventListeners.add(canvas,"touchstart",touch_cb.bind(null,0),false);GodotEventListeners.add(canvas,"touchend",touch_cb.bind(null,1),false);GodotEventListeners.add(canvas,"touchcancel",touch_cb.bind(null,1),false);GodotEventListeners.add(canvas,"touchmove",touch_cb.bind(null,2),false)}function _godot_js_input_vibrate_handheld(p_duration_ms){if(typeof navigator.vibrate!=="function"){GodotRuntime.print("This browser does not support vibration.")}else{navigator.vibrate(p_duration_ms)}}function _godot_js_is_ime_focused(){return GodotIME.active}function _godot_js_os_download_buffer(p_ptr,p_size,p_name,p_mime){const buf=GodotRuntime.heapSlice(HEAP8,p_ptr,p_size);const name=GodotRuntime.parseString(p_name);const mime=GodotRuntime.parseString(p_mime);const blob=new Blob([buf],{type:mime});const url=window.URL.createObjectURL(blob);const a=document.createElement("a");a.href=url;a.download=name;a.style.display="none";document.body.appendChild(a);a.click();a.remove();window.URL.revokeObjectURL(url)}function _godot_js_os_execute(p_json){const json_args=GodotRuntime.parseString(p_json);const args=JSON.parse(json_args);if(GodotConfig.on_execute){GodotConfig.on_execute(args);return 0}return 1}function _godot_js_os_finish_async(p_callback){const func=GodotRuntime.get_func(p_callback);GodotOS.finish_async(func)}function _godot_js_os_fs_is_persistent(){return GodotFS.is_persistent()}function _godot_js_os_fs_sync(callback){const func=GodotRuntime.get_func(callback);GodotOS._fs_sync_promise=GodotFS.sync();GodotOS._fs_sync_promise.then(function(err){func()})}function _godot_js_os_has_feature(p_ftr){const ftr=GodotRuntime.parseString(p_ftr);const ua=navigator.userAgent;if(ftr==="web_macos"){return ua.indexOf("Mac")!==-1?1:0}if(ftr==="web_windows"){return ua.indexOf("Windows")!==-1?1:0}if(ftr==="web_android"){return ua.indexOf("Android")!==-1?1:0}if(ftr==="web_ios"){return ua.indexOf("iPhone")!==-1||ua.indexOf("iPad")!==-1||ua.indexOf("iPod")!==-1?1:0}if(ftr==="web_linuxbsd"){return ua.indexOf("CrOS")!==-1||ua.indexOf("BSD")!==-1||ua.indexOf("Linux")!==-1||ua.indexOf("X11")!==-1?1:0}return 0}function _godot_js_os_hw_concurrency_get(){const concurrency=navigator.hardwareConcurrency||1;return concurrency<2?concurrency:2}function _godot_js_os_request_quit_cb(p_callback){GodotOS.request_quit=GodotRuntime.get_func(p_callback)}function _godot_js_os_shell_open(p_uri){window.open(GodotRuntime.parseString(p_uri),"_blank")}var GodotPWA={hasUpdate:false,updateState:function(cb,reg){if(!reg){return}if(!reg.active){return}if(reg.waiting){GodotPWA.hasUpdate=true;cb()}GodotEventListeners.add(reg,"updatefound",function(){const installing=reg.installing;GodotEventListeners.add(installing,"statechange",function(){if(installing.state==="installed"){GodotPWA.hasUpdate=true;cb()}})})}};function _godot_js_pwa_cb(p_update_cb){if("serviceWorker"in navigator){try{const cb=GodotRuntime.get_func(p_update_cb);navigator.serviceWorker.getRegistration().then(GodotPWA.updateState.bind(null,cb))}catch(e){GodotRuntime.error("Failed to assign PWA callback",e)}}}function _godot_js_pwa_update(){if("serviceWorker"in navigator&&GodotPWA.hasUpdate){try{navigator.serviceWorker.getRegistration().then(function(reg){if(!reg||!reg.waiting){return}reg.waiting.postMessage("update")})}catch(e){GodotRuntime.error(e);return 1}return 0}return 1}var GodotRTCDataChannel={connect:function(p_id,p_on_open,p_on_message,p_on_error,p_on_close){const ref=IDHandler.get(p_id);if(!ref){return}ref.binaryType="arraybuffer";ref.onopen=function(event){p_on_open()};ref.onclose=function(event){p_on_close()};ref.onerror=function(event){p_on_error()};ref.onmessage=function(event){let buffer;let is_string=0;if(event.data instanceof ArrayBuffer){buffer=new Uint8Array(event.data)}else if(event.data instanceof Blob){GodotRuntime.error("Blob type not supported");return}else if(typeof event.data==="string"){is_string=1;const enc=new TextEncoder("utf-8");buffer=new Uint8Array(enc.encode(event.data))}else{GodotRuntime.error("Unknown message type");return}const len=buffer.length*buffer.BYTES_PER_ELEMENT;const out=GodotRuntime.malloc(len);HEAPU8.set(buffer,out);p_on_message(out,len,is_string);GodotRuntime.free(out)}},close:function(p_id){const ref=IDHandler.get(p_id);if(!ref){return}ref.onopen=null;ref.onmessage=null;ref.onerror=null;ref.onclose=null;ref.close()},get_prop:function(p_id,p_prop,p_def){const ref=IDHandler.get(p_id);return ref&&ref[p_prop]!==undefined?ref[p_prop]:p_def}};function _godot_js_rtc_datachannel_close(p_id){const ref=IDHandler.get(p_id);if(!ref){return}GodotRTCDataChannel.close(p_id)}function _godot_js_rtc_datachannel_connect(p_id,p_ref,p_on_open,p_on_message,p_on_error,p_on_close){const onopen=GodotRuntime.get_func(p_on_open).bind(null,p_ref);const onmessage=GodotRuntime.get_func(p_on_message).bind(null,p_ref);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_ref);const onclose=GodotRuntime.get_func(p_on_close).bind(null,p_ref);GodotRTCDataChannel.connect(p_id,onopen,onmessage,onerror,onclose)}function _godot_js_rtc_datachannel_destroy(p_id){GodotRTCDataChannel.close(p_id);IDHandler.remove(p_id)}function _godot_js_rtc_datachannel_get_buffered_amount(p_id){return GodotRTCDataChannel.get_prop(p_id,"bufferedAmount",0)}function _godot_js_rtc_datachannel_id_get(p_id){return GodotRTCDataChannel.get_prop(p_id,"id",65535)}function _godot_js_rtc_datachannel_is_negotiated(p_id){return GodotRTCDataChannel.get_prop(p_id,"negotiated",65535)}function _godot_js_rtc_datachannel_is_ordered(p_id){return GodotRTCDataChannel.get_prop(p_id,"ordered",true)}function _godot_js_rtc_datachannel_label_get(p_id){const ref=IDHandler.get(p_id);if(!ref||!ref.label){return 0}return GodotRuntime.allocString(ref.label)}function _godot_js_rtc_datachannel_max_packet_lifetime_get(p_id){const ref=IDHandler.get(p_id);if(!ref){return 65535}if(ref["maxPacketLifeTime"]!==undefined){return ref["maxPacketLifeTime"]}else if(ref["maxRetransmitTime"]!==undefined){return ref["maxRetransmitTime"]}return 65535}function _godot_js_rtc_datachannel_max_retransmits_get(p_id){return GodotRTCDataChannel.get_prop(p_id,"maxRetransmits",65535)}function _godot_js_rtc_datachannel_protocol_get(p_id){const ref=IDHandler.get(p_id);if(!ref||!ref.protocol){return 0}return GodotRuntime.allocString(ref.protocol)}function _godot_js_rtc_datachannel_ready_state_get(p_id){const ref=IDHandler.get(p_id);if(!ref){return 3}switch(ref.readyState){case"connecting":return 0;case"open":return 1;case"closing":return 2;case"closed":default:return 3}}function _godot_js_rtc_datachannel_send(p_id,p_buffer,p_length,p_raw){const ref=IDHandler.get(p_id);if(!ref){return 1}const bytes_array=new Uint8Array(p_length);for(let i=0;i<p_length;i++){bytes_array[i]=GodotRuntime.getHeapValue(p_buffer+i,"i8")}if(p_raw){ref.send(bytes_array.buffer)}else{const string=new TextDecoder("utf-8").decode(bytes_array);ref.send(string)}return 0}var GodotRTCPeerConnection={ConnectionState:{new:0,connecting:1,connected:2,disconnected:3,failed:4,closed:5},ConnectionStateCompat:{new:0,checking:1,connected:2,completed:2,disconnected:3,failed:4,closed:5},IceGatheringState:{new:0,gathering:1,complete:2},SignalingState:{stable:0,"have-local-offer":1,"have-remote-offer":2,"have-local-pranswer":3,"have-remote-pranswer":4,closed:5},create:function(config,onConnectionChange,onSignalingChange,onIceGatheringChange,onIceCandidate,onDataChannel){let conn=null;try{conn=new RTCPeerConnection(config)}catch(e){GodotRuntime.error(e);return 0}const id=IDHandler.add(conn);if("connectionState"in conn&&conn["connectionState"]!==undefined){conn.onconnectionstatechange=function(event){if(!IDHandler.get(id)){return}onConnectionChange(GodotRTCPeerConnection.ConnectionState[conn.connectionState]||0)}}else{conn.oniceconnectionstatechange=function(event){if(!IDHandler.get(id)){return}onConnectionChange(GodotRTCPeerConnection.ConnectionStateCompat[conn.iceConnectionState]||0)}}conn.onicegatheringstatechange=function(event){if(!IDHandler.get(id)){return}onIceGatheringChange(GodotRTCPeerConnection.IceGatheringState[conn.iceGatheringState]||0)};conn.onsignalingstatechange=function(event){if(!IDHandler.get(id)){return}onSignalingChange(GodotRTCPeerConnection.SignalingState[conn.signalingState]||0)};conn.onicecandidate=function(event){if(!IDHandler.get(id)){return}const c=event.candidate;if(!c||!c.candidate){return}const candidate_str=GodotRuntime.allocString(c.candidate);const mid_str=GodotRuntime.allocString(c.sdpMid);onIceCandidate(mid_str,c.sdpMLineIndex,candidate_str);GodotRuntime.free(candidate_str);GodotRuntime.free(mid_str)};conn.ondatachannel=function(event){if(!IDHandler.get(id)){return}const cid=IDHandler.add(event.channel);onDataChannel(cid)};return id},destroy:function(p_id){const conn=IDHandler.get(p_id);if(!conn){return}conn.onconnectionstatechange=null;conn.oniceconnectionstatechange=null;conn.onicegatheringstatechange=null;conn.onsignalingstatechange=null;conn.onicecandidate=null;conn.ondatachannel=null;IDHandler.remove(p_id)},onsession:function(p_id,callback,session){if(!IDHandler.get(p_id)){return}const type_str=GodotRuntime.allocString(session.type);const sdp_str=GodotRuntime.allocString(session.sdp);callback(type_str,sdp_str);GodotRuntime.free(type_str);GodotRuntime.free(sdp_str)},onerror:function(p_id,callback,error){const ref=IDHandler.get(p_id);if(!ref){return}GodotRuntime.error(error);callback()}};function _godot_js_rtc_pc_close(p_id){const ref=IDHandler.get(p_id);if(!ref){return}ref.close()}function _godot_js_rtc_pc_create(p_config,p_ref,p_on_connection_state_change,p_on_ice_gathering_state_change,p_on_signaling_state_change,p_on_ice_candidate,p_on_datachannel){const wrap=function(p_func){return GodotRuntime.get_func(p_func).bind(null,p_ref)};return GodotRTCPeerConnection.create(JSON.parse(GodotRuntime.parseString(p_config)),wrap(p_on_connection_state_change),wrap(p_on_signaling_state_change),wrap(p_on_ice_gathering_state_change),wrap(p_on_ice_candidate),wrap(p_on_datachannel))}function _godot_js_rtc_pc_datachannel_create(p_id,p_label,p_config){try{const ref=IDHandler.get(p_id);if(!ref){return 0}const label=GodotRuntime.parseString(p_label);const config=JSON.parse(GodotRuntime.parseString(p_config));const channel=ref.createDataChannel(label,config);return IDHandler.add(channel)}catch(e){GodotRuntime.error(e);return 0}}function _godot_js_rtc_pc_destroy(p_id){GodotRTCPeerConnection.destroy(p_id)}function _godot_js_rtc_pc_ice_candidate_add(p_id,p_mid_name,p_mline_idx,p_sdp){const ref=IDHandler.get(p_id);if(!ref){return}const sdpMidName=GodotRuntime.parseString(p_mid_name);const sdpName=GodotRuntime.parseString(p_sdp);ref.addIceCandidate(new RTCIceCandidate({candidate:sdpName,sdpMid:sdpMidName,sdpMlineIndex:p_mline_idx}))}function _godot_js_rtc_pc_local_description_set(p_id,p_type,p_sdp,p_obj,p_on_error){const ref=IDHandler.get(p_id);if(!ref){return}const type=GodotRuntime.parseString(p_type);const sdp=GodotRuntime.parseString(p_sdp);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_obj);ref.setLocalDescription({sdp,type}).catch(function(error){GodotRTCPeerConnection.onerror(p_id,onerror,error)})}function _godot_js_rtc_pc_offer_create(p_id,p_obj,p_on_session,p_on_error){const ref=IDHandler.get(p_id);if(!ref){return}const onsession=GodotRuntime.get_func(p_on_session).bind(null,p_obj);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_obj);ref.createOffer().then(function(session){GodotRTCPeerConnection.onsession(p_id,onsession,session)}).catch(function(error){GodotRTCPeerConnection.onerror(p_id,onerror,error)})}function _godot_js_rtc_pc_remote_description_set(p_id,p_type,p_sdp,p_obj,p_session_created,p_on_error){const ref=IDHandler.get(p_id);if(!ref){return}const type=GodotRuntime.parseString(p_type);const sdp=GodotRuntime.parseString(p_sdp);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_obj);const onsession=GodotRuntime.get_func(p_session_created).bind(null,p_obj);ref.setRemoteDescription({sdp,type}).then(function(){if(type!=="offer"){return Promise.resolve()}return ref.createAnswer().then(function(session){GodotRTCPeerConnection.onsession(p_id,onsession,session)})}).catch(function(error){GodotRTCPeerConnection.onerror(p_id,onerror,error)})}function _godot_js_set_ime_active(p_active){GodotIME.ime_active(p_active)}function _godot_js_set_ime_cb(p_ime_cb,p_key_cb,code,key){const ime_cb=GodotRuntime.get_func(p_ime_cb);const key_cb=GodotRuntime.get_func(p_key_cb);GodotIME.init(ime_cb,key_cb,code,key)}function _godot_js_set_ime_position(p_x,p_y){GodotIME.ime_position(p_x,p_y)}function _godot_js_tts_get_voices(p_callback){const func=GodotRuntime.get_func(p_callback);try{const arr=[];const voices=window.speechSynthesis.getVoices();for(let i=0;i<voices.length;i++){arr.push(`${voices[i].lang};${voices[i].name}`)}const c_ptr=GodotRuntime.allocStringArray(arr);func(arr.length,c_ptr);GodotRuntime.freeStringArray(c_ptr,arr.length)}catch(e){}}function _godot_js_tts_is_paused(){return window.speechSynthesis.paused}function _godot_js_tts_is_speaking(){return window.speechSynthesis.speaking}function _godot_js_tts_pause(){window.speechSynthesis.pause()}function _godot_js_tts_resume(){window.speechSynthesis.resume()}function _godot_js_tts_speak(p_text,p_voice,p_volume,p_pitch,p_rate,p_utterance_id,p_callback){const func=GodotRuntime.get_func(p_callback);function listener_end(evt){evt.currentTarget.cb(1,evt.currentTarget.id,0)}function listener_start(evt){evt.currentTarget.cb(0,evt.currentTarget.id,0)}function listener_error(evt){evt.currentTarget.cb(2,evt.currentTarget.id,0)}function listener_bound(evt){evt.currentTarget.cb(3,evt.currentTarget.id,evt.charIndex)}const utterance=new SpeechSynthesisUtterance(GodotRuntime.parseString(p_text));utterance.rate=p_rate;utterance.pitch=p_pitch;utterance.volume=p_volume/100;utterance.addEventListener("end",listener_end);utterance.addEventListener("start",listener_start);utterance.addEventListener("error",listener_error);utterance.addEventListener("boundary",listener_bound);utterance.id=p_utterance_id;utterance.cb=func;const voice=GodotRuntime.parseString(p_voice);const voices=window.speechSynthesis.getVoices();for(let i=0;i<voices.length;i++){if(voices[i].name===voice){utterance.voice=voices[i];break}}window.speechSynthesis.resume();window.speechSynthesis.speak(utterance)}function _godot_js_tts_stop(){window.speechSynthesis.cancel();window.speechSynthesis.resume()}var GodotWebMidi={abortControllers:[],isListening:false};function _godot_js_webmidi_close_midi_inputs(){for(const abortController of GodotWebMidi.abortControllers){abortController.abort()}GodotWebMidi.abortControllers=[];GodotWebMidi.isListening=false}function _godot_js_webmidi_open_midi_inputs(pSetInputNamesCb,pOnMidiMessageCb,pDataBuffer,dataBufferLen){if(GodotWebMidi.is_listening){return 0}if(!navigator.requestMIDIAccess){return 2}const setInputNamesCb=GodotRuntime.get_func(pSetInputNamesCb);const onMidiMessageCb=GodotRuntime.get_func(pOnMidiMessageCb);GodotWebMidi.isListening=true;navigator.requestMIDIAccess().then(midi=>{const inputs=[...midi.inputs.values()];const inputNames=inputs.map(input=>input.name);const c_ptr=GodotRuntime.allocStringArray(inputNames);setInputNamesCb(inputNames.length,c_ptr);GodotRuntime.freeStringArray(c_ptr,inputNames.length);inputs.forEach((input,i)=>{const abortController=new AbortController;GodotWebMidi.abortControllers.push(abortController);input.addEventListener("midimessage",event=>{const status=event.data[0];const data=event.data.slice(1);const size=data.length;if(size>dataBufferLen){throw new Error(`data too big ${size} > ${dataBufferLen}`)}HEAPU8.set(data,pDataBuffer);onMidiMessageCb(i,status,pDataBuffer,data.length)},{signal:abortController.signal})})});return 0}var GodotWebSocket={_onopen:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}const c_str=GodotRuntime.allocString(ref.protocol);callback(c_str);GodotRuntime.free(c_str)},_onmessage:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}let buffer;let is_string=0;if(event.data instanceof ArrayBuffer){buffer=new Uint8Array(event.data)}else if(event.data instanceof Blob){GodotRuntime.error("Blob type not supported");return}else if(typeof event.data==="string"){is_string=1;buffer=new TextEncoder("utf-8").encode(event.data)}else{GodotRuntime.error("Unknown message type");return}const len=buffer.length*buffer.BYTES_PER_ELEMENT;const out=GodotRuntime.malloc(len);HEAPU8.set(buffer,out);callback(out,len,is_string);GodotRuntime.free(out)},_onerror:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}callback()},_onclose:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}const c_str=GodotRuntime.allocString(event.reason);callback(event.code,c_str,event.wasClean?1:0);GodotRuntime.free(c_str)},send:function(p_id,p_data){const ref=IDHandler.get(p_id);if(!ref||ref.readyState!==ref.OPEN){return 1}ref.send(p_data);return 0},bufferedAmount:function(p_id){const ref=IDHandler.get(p_id);if(!ref){return 0}return ref.bufferedAmount},create:function(socket,p_on_open,p_on_message,p_on_error,p_on_close){const id=IDHandler.add(socket);socket.onopen=GodotWebSocket._onopen.bind(null,id,p_on_open);socket.onmessage=GodotWebSocket._onmessage.bind(null,id,p_on_message);socket.onerror=GodotWebSocket._onerror.bind(null,id,p_on_error);socket.onclose=GodotWebSocket._onclose.bind(null,id,p_on_close);return id},close:function(p_id,p_code,p_reason){const ref=IDHandler.get(p_id);if(ref&&ref.readyState<ref.CLOSING){const code=p_code;const reason=p_reason;ref.close(code,reason)}},destroy:function(p_id){const ref=IDHandler.get(p_id);if(!ref){return}GodotWebSocket.close(p_id,3001,"destroyed");IDHandler.remove(p_id);ref.onopen=null;ref.onmessage=null;ref.onerror=null;ref.onclose=null}};function _godot_js_websocket_buffered_amount(p_id){return GodotWebSocket.bufferedAmount(p_id)}function _godot_js_websocket_close(p_id,p_code,p_reason){const code=p_code;const reason=GodotRuntime.parseString(p_reason);GodotWebSocket.close(p_id,code,reason)}function _godot_js_websocket_create(p_ref,p_url,p_proto,p_on_open,p_on_message,p_on_error,p_on_close){const on_open=GodotRuntime.get_func(p_on_open).bind(null,p_ref);const on_message=GodotRuntime.get_func(p_on_message).bind(null,p_ref);const on_error=GodotRuntime.get_func(p_on_error).bind(null,p_ref);const on_close=GodotRuntime.get_func(p_on_close).bind(null,p_ref);const url=GodotRuntime.parseString(p_url);const protos=GodotRuntime.parseString(p_proto);let socket=null;try{if(protos){socket=new WebSocket(url,protos.split(","))}else{socket=new WebSocket(url)}}catch(e){return 0}socket.binaryType="arraybuffer";return GodotWebSocket.create(socket,on_open,on_message,on_error,on_close)}function _godot_js_websocket_destroy(p_id){GodotWebSocket.destroy(p_id)}function _godot_js_websocket_send(p_id,p_buf,p_buf_len,p_raw){const bytes_array=new Uint8Array(p_buf_len);let i=0;for(i=0;i<p_buf_len;i++){bytes_array[i]=GodotRuntime.getHeapValue(p_buf+i,"i8")}let out=bytes_array.buffer;if(!p_raw){out=new TextDecoder("utf-8").decode(bytes_array)}return GodotWebSocket.send(p_id,out)}var GodotJSWrapper={proxies:null,cb_ret:null,MyProxy:function(val){const id=IDHandler.add(this);GodotJSWrapper.proxies.set(val,id);let refs=1;this.ref=function(){refs++};this.unref=function(){refs--;if(refs===0){IDHandler.remove(id);GodotJSWrapper.proxies.delete(val)}};this.get_val=function(){return val};this.get_id=function(){return id}},get_proxied:function(val){const id=GodotJSWrapper.proxies.get(val);if(id===undefined){const proxy=new GodotJSWrapper.MyProxy(val);return proxy.get_id()}IDHandler.get(id).ref();return id},get_proxied_value:function(id){const proxy=IDHandler.get(id);if(proxy===undefined){return undefined}return proxy.get_val()},variant2js:function(type,val){switch(type){case 0:return null;case 1:return Boolean(GodotRuntime.getHeapValue(val,"i64"));case 2:{const heap_value=GodotRuntime.getHeapValue(val,"i64");return heap_value>=Number.MIN_SAFE_INTEGER&&heap_value<=Number.MAX_SAFE_INTEGER?Number(heap_value):heap_value}case 3:return Number(GodotRuntime.getHeapValue(val,"double"));case 4:return GodotRuntime.parseString(GodotRuntime.getHeapValue(val,"*"));case 24:return GodotJSWrapper.get_proxied_value(GodotRuntime.getHeapValue(val,"i64"));default:return undefined}},js2variant:function(p_val,p_exchange){if(p_val===undefined||p_val===null){return 0}const type=typeof p_val;if(type==="boolean"){GodotRuntime.setHeapValue(p_exchange,p_val,"i64");return 1}else if(type==="number"){if(Number.isInteger(p_val)){GodotRuntime.setHeapValue(p_exchange,p_val,"i64");return 2}GodotRuntime.setHeapValue(p_exchange,p_val,"double");return 3}else if(type==="bigint"){GodotRuntime.setHeapValue(p_exchange,p_val,"i64");return 2}else if(type==="string"){const c_str=GodotRuntime.allocString(p_val);GodotRuntime.setHeapValue(p_exchange,c_str,"*");return 4}const id=GodotJSWrapper.get_proxied(p_val);GodotRuntime.setHeapValue(p_exchange,id,"i64");return 24},isBuffer:function(obj){return obj instanceof ArrayBuffer||ArrayBuffer.isView(obj)}};function _godot_js_wrapper_create_cb(p_ref,p_func){const func=GodotRuntime.get_func(p_func);let id=0;const cb=function(){if(!GodotJSWrapper.get_proxied_value(id)){return undefined}GodotJSWrapper.cb_ret=null;const args=Array.from(arguments);const argsProxy=new GodotJSWrapper.MyProxy(args);func(p_ref,argsProxy.get_id(),args.length);argsProxy.unref();const ret=GodotJSWrapper.cb_ret;GodotJSWrapper.cb_ret=null;return ret};id=GodotJSWrapper.get_proxied(cb);return id}function _godot_js_wrapper_create_object(p_object,p_args,p_argc,p_convert_callback,p_exchange,p_lock,p_free_lock_callback){const name=GodotRuntime.parseString(p_object);if(typeof window[name]==="undefined"){return-1}const convert=GodotRuntime.get_func(p_convert_callback);const freeLock=GodotRuntime.get_func(p_free_lock_callback);const args=new Array(p_argc);for(let i=0;i<p_argc;i++){const type=convert(p_args,i,p_exchange,p_lock);const lock=GodotRuntime.getHeapValue(p_lock,"*");args[i]=GodotJSWrapper.variant2js(type,p_exchange);if(lock){freeLock(p_lock,type)}}try{const res=new window[name](...args);return GodotJSWrapper.js2variant(res,p_exchange)}catch(e){GodotRuntime.error(`Error calling constructor ${name} with args:`,args,"error:",e);return-1}}function _godot_js_wrapper_interface_get(p_name){const name=GodotRuntime.parseString(p_name);if(typeof window[name]!=="undefined"){return GodotJSWrapper.get_proxied(window[name])}return 0}function _godot_js_wrapper_object_call(p_id,p_method,p_args,p_argc,p_convert_callback,p_exchange,p_lock,p_free_lock_callback){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return-1}const method=GodotRuntime.parseString(p_method);const convert=GodotRuntime.get_func(p_convert_callback);const freeLock=GodotRuntime.get_func(p_free_lock_callback);const args=new Array(p_argc);for(let i=0;i<p_argc;i++){const type=convert(p_args,i,p_exchange,p_lock);const lock=GodotRuntime.getHeapValue(p_lock,"*");args[i]=GodotJSWrapper.variant2js(type,p_exchange);if(lock){freeLock(p_lock,type)}}try{const res=obj[method](...args);return GodotJSWrapper.js2variant(res,p_exchange)}catch(e){GodotRuntime.error(`Error calling method ${method} on:`,obj,"error:",e);return-1}}function _godot_js_wrapper_object_get(p_id,p_exchange,p_prop){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return 0}if(p_prop){const prop=GodotRuntime.parseString(p_prop);try{return GodotJSWrapper.js2variant(obj[prop],p_exchange)}catch(e){GodotRuntime.error(`Error getting variable ${prop} on object`,obj);return 0}}return GodotJSWrapper.js2variant(obj,p_exchange)}function _godot_js_wrapper_object_getvar(p_id,p_type,p_exchange){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return-1}const prop=GodotJSWrapper.variant2js(p_type,p_exchange);if(prop===undefined||prop===null){return-1}try{return GodotJSWrapper.js2variant(obj[prop],p_exchange)}catch(e){GodotRuntime.error(`Error getting variable ${prop} on object`,obj,e);return-1}}function _godot_js_wrapper_object_is_buffer(p_id){const obj=GodotJSWrapper.get_proxied_value(p_id);return GodotJSWrapper.isBuffer(obj)?1:0}function _godot_js_wrapper_object_set(p_id,p_name,p_type,p_exchange){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return}const name=GodotRuntime.parseString(p_name);try{obj[name]=GodotJSWrapper.variant2js(p_type,p_exchange)}catch(e){GodotRuntime.error(`Error setting variable ${name} on object`,obj)}}function _godot_js_wrapper_object_set_cb_ret(p_val_type,p_val_ex){GodotJSWrapper.cb_ret=GodotJSWrapper.variant2js(p_val_type,p_val_ex)}function _godot_js_wrapper_object_setvar(p_id,p_key_type,p_key_ex,p_val_type,p_val_ex){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return-1}const key=GodotJSWrapper.variant2js(p_key_type,p_key_ex);try{obj[key]=GodotJSWrapper.variant2js(p_val_type,p_val_ex);return 0}catch(e){GodotRuntime.error(`Error setting variable ${key} on object`,obj);return-1}}function _godot_js_wrapper_object_transfer_buffer(p_id,p_byte_arr,p_byte_arr_write,p_callback){let obj=GodotJSWrapper.get_proxied_value(p_id);if(!GodotJSWrapper.isBuffer(obj)){return}if(ArrayBuffer.isView(obj)&&!(obj instanceof Uint8Array)){obj=new Uint8Array(obj.buffer)}else if(obj instanceof ArrayBuffer){obj=new Uint8Array(obj)}const resizePackedByteArrayAndOpenWrite=GodotRuntime.get_func(p_callback);const bytesPtr=resizePackedByteArrayAndOpenWrite(p_byte_arr,p_byte_arr_write,obj.length);HEAPU8.set(obj,bytesPtr)}function _godot_js_wrapper_object_unref(p_id){const proxy=IDHandler.get(p_id);if(proxy!==undefined){proxy.unref()}}function _godot_webgl2_glFramebufferTextureMultisampleMultiviewOVR(target,attachment,texture,level,samples,base_view_index,num_views){const context=GL.currentContext;if(typeof context.oculusMultiviewExt==="undefined"){const ext=context.GLctx.getExtension("OCULUS_multiview");if(!ext){GodotRuntime.error("Trying to call glFramebufferTextureMultisampleMultiviewOVR() without the OCULUS_multiview extension");return}context.oculusMultiviewExt=ext}const ext=context.oculusMultiviewExt;ext.framebufferTextureMultisampleMultiviewOVR(target,attachment,GL.textures[texture],level,samples,base_view_index,num_views)}function _godot_webgl2_glFramebufferTextureMultiviewOVR(target,attachment,texture,level,base_view_index,num_views){const context=GL.currentContext;if(typeof context.multiviewExt==="undefined"){const ext=context.GLctx.getExtension("OVR_multiview2");if(!ext){GodotRuntime.error("Trying to call glFramebufferTextureMultiviewOVR() without the OVR_multiview2 extension");return}context.multiviewExt=ext}const ext=context.multiviewExt;ext.framebufferTextureMultiviewOVR(target,attachment,GL.textures[texture],level,base_view_index,num_views)}function _godot_webgl2_glGetBufferSubData(target,offset,size,data){const gl_context_handle=_emscripten_webgl_get_current_context();const gl=GL.getContext(gl_context_handle);if(gl){gl.GLctx["getBufferSubData"](target,offset,HEAPU8,data,size)}}var GodotWebXR={gl:null,session:null,gl_binding:null,layer:null,space:null,frame:null,pose:null,view_count:1,input_sources:[,,,,,,,,,,,,,,,],touches:[,,,,],onsimpleevent:null,orig_requestAnimationFrame:null,requestAnimationFrame:callback=>{if(GodotWebXR.session&&GodotWebXR.space){const onFrame=function(time,frame){GodotWebXR.frame=frame;GodotWebXR.pose=frame.getViewerPose(GodotWebXR.space);callback(time);GodotWebXR.frame=null;GodotWebXR.pose=null};GodotWebXR.session.requestAnimationFrame(onFrame)}else{GodotWebXR.orig_requestAnimationFrame(callback)}},monkeyPatchRequestAnimationFrame:enable=>{if(GodotWebXR.orig_requestAnimationFrame===null){GodotWebXR.orig_requestAnimationFrame=MainLoop.requestAnimationFrame}MainLoop.requestAnimationFrame=enable?GodotWebXR.requestAnimationFrame:GodotWebXR.orig_requestAnimationFrame},pauseResumeMainLoop:()=>{MainLoop.pause();runtimeKeepalivePush();window.setTimeout(function(){runtimeKeepalivePop();MainLoop.resume()},0)},getLayer:()=>{const new_view_count=GodotWebXR.pose?GodotWebXR.pose.views.length:1;let layer=GodotWebXR.layer;if(layer&&GodotWebXR.view_count===new_view_count){return layer}if(!GodotWebXR.session||!GodotWebXR.gl_binding||!GodotWebXR.gl_binding.createProjectionLayer){return null}const gl=GodotWebXR.gl;layer=GodotWebXR.gl_binding.createProjectionLayer({textureType:new_view_count>1?"texture-array":"texture",colorFormat:gl.RGBA8,depthFormat:gl.DEPTH_COMPONENT24});GodotWebXR.session.updateRenderState({layers:[layer]});GodotWebXR.layer=layer;GodotWebXR.view_count=new_view_count;return layer},getSubImage:()=>{if(!GodotWebXR.pose){return null}const layer=GodotWebXR.getLayer();if(layer===null){return null}return GodotWebXR.gl_binding.getViewSubImage(layer,GodotWebXR.pose.views[0])},getTextureId:texture=>{if(texture.name!==undefined){return texture.name}const id=GL.getNewId(GL.textures);texture.name=id;GL.textures[id]=texture;return id},addInputSource:input_source=>{let name=-1;if(input_source.targetRayMode==="tracked-pointer"&&input_source.handedness==="left"){name=0}else if(input_source.targetRayMode==="tracked-pointer"&&input_source.handedness==="right"){name=1}else{for(let i=2;i<16;i++){if(!GodotWebXR.input_sources[i]){name=i;break}}}if(name>=0){GodotWebXR.input_sources[name]=input_source;input_source.name=name;if(input_source.targetRayMode==="screen"){let touch_index=-1;for(let i=0;i<5;i++){if(!GodotWebXR.touches[i]){touch_index=i;break}}if(touch_index>=0){GodotWebXR.touches[touch_index]=input_source;input_source.touch_index=touch_index}}}return name},removeInputSource:input_source=>{if(input_source.name!==undefined){const name=input_source.name;if(name>=0&&name<16){GodotWebXR.input_sources[name]=null}if(input_source.touch_index!==undefined){const touch_index=input_source.touch_index;if(touch_index>=0&&touch_index<5){GodotWebXR.touches[touch_index]=null}}return name}return-1},getInputSourceId:input_source=>{if(input_source!==undefined){return input_source.name}return-1},getTouchIndex:input_source=>{if(input_source.touch_index!==undefined){return input_source.touch_index}return-1}};function _godot_webxr_get_bounds_geometry(r_points){if(!GodotWebXR.space||!GodotWebXR.space.boundsGeometry){return 0}const point_count=GodotWebXR.space.boundsGeometry.length;if(point_count===0){return 0}const buf=GodotRuntime.malloc(point_count*3*4);for(let i=0;i<point_count;i++){const point=GodotWebXR.space.boundsGeometry[i];GodotRuntime.setHeapValue(buf+(i*3+0)*4,point.x,"float");GodotRuntime.setHeapValue(buf+(i*3+1)*4,point.y,"float");GodotRuntime.setHeapValue(buf+(i*3+2)*4,point.z,"float")}GodotRuntime.setHeapValue(r_points,buf,"i32");return point_count}function _godot_webxr_get_color_texture(){const subimage=GodotWebXR.getSubImage();if(subimage===null){return 0}return GodotWebXR.getTextureId(subimage.colorTexture)}function _godot_webxr_get_depth_texture(){const subimage=GodotWebXR.getSubImage();if(subimage===null){return 0}if(!subimage.depthStencilTexture){return 0}return GodotWebXR.getTextureId(subimage.depthStencilTexture)}function _godot_webxr_get_frame_rate(){if(!GodotWebXR.session||GodotWebXR.session.frameRate===undefined){return 0}return GodotWebXR.session.frameRate}function _godot_webxr_get_projection_for_view(p_view,r_transform){if(!GodotWebXR.session||!GodotWebXR.pose){return false}const matrix=GodotWebXR.pose.views[p_view].projectionMatrix;for(let i=0;i<16;i++){GodotRuntime.setHeapValue(r_transform+i*4,matrix[i],"float")}return true}function _godot_webxr_get_render_target_size(r_size){const subimage=GodotWebXR.getSubImage();if(subimage===null){return false}GodotRuntime.setHeapValue(r_size+0,subimage.viewport.width,"i32");GodotRuntime.setHeapValue(r_size+4,subimage.viewport.height,"i32");return true}function _godot_webxr_get_supported_frame_rates(r_frame_rates){if(!GodotWebXR.session||GodotWebXR.session.supportedFrameRates===undefined){return 0}const frame_rate_count=GodotWebXR.session.supportedFrameRates.length;if(frame_rate_count===0){return 0}const buf=GodotRuntime.malloc(frame_rate_count*4);for(let i=0;i<frame_rate_count;i++){GodotRuntime.setHeapValue(buf+i*4,GodotWebXR.session.supportedFrameRates[i],"float")}GodotRuntime.setHeapValue(r_frame_rates,buf,"i32");return frame_rate_count}function _godot_webxr_get_transform_for_view(p_view,r_transform){if(!GodotWebXR.session||!GodotWebXR.pose){return false}const views=GodotWebXR.pose.views;let matrix;if(p_view>=0){matrix=views[p_view].transform.matrix}else{matrix=GodotWebXR.pose.transform.matrix}for(let i=0;i<16;i++){GodotRuntime.setHeapValue(r_transform+i*4,matrix[i],"float")}return true}function _godot_webxr_get_velocity_texture(){const subimage=GodotWebXR.getSubImage();if(subimage===null){return 0}if(!subimage.motionVectorTexture){return 0}return GodotWebXR.getTextureId(subimage.motionVectorTexture)}function _godot_webxr_get_view_count(){if(!GodotWebXR.session||!GodotWebXR.pose){return 1}const view_count=GodotWebXR.pose.views.length;return view_count>0?view_count:1}function _godot_webxr_get_visibility_state(){if(!GodotWebXR.session||!GodotWebXR.session.visibilityState){return 0}return GodotRuntime.allocString(GodotWebXR.session.visibilityState)}var _godot_webxr_initialize=function(p_session_mode,p_required_features,p_optional_features,p_requested_reference_spaces,p_on_session_started,p_on_session_ended,p_on_session_failed,p_on_input_event,p_on_simple_event){GodotWebXR.monkeyPatchRequestAnimationFrame(true);const session_mode=GodotRuntime.parseString(p_session_mode);const required_features=GodotRuntime.parseString(p_required_features).split(",").map(s=>s.trim()).filter(s=>s!=="");const optional_features=GodotRuntime.parseString(p_optional_features).split(",").map(s=>s.trim()).filter(s=>s!=="");const requested_reference_space_types=GodotRuntime.parseString(p_requested_reference_spaces).split(",").map(s=>s.trim());const onstarted=GodotRuntime.get_func(p_on_session_started);const onended=GodotRuntime.get_func(p_on_session_ended);const onfailed=GodotRuntime.get_func(p_on_session_failed);const oninputevent=GodotRuntime.get_func(p_on_input_event);const onsimpleevent=GodotRuntime.get_func(p_on_simple_event);const session_init={};if(required_features.length>0){session_init["requiredFeatures"]=required_features}if(optional_features.length>0){session_init["optionalFeatures"]=optional_features}navigator.xr.requestSession(session_mode,session_init).then(function(session){GodotWebXR.session=session;session.addEventListener("end",function(evt){onended()});session.addEventListener("inputsourceschange",function(evt){evt.added.forEach(GodotWebXR.addInputSource);evt.removed.forEach(GodotWebXR.removeInputSource)});["selectstart","selectend","squeezestart","squeezeend"].forEach((input_event,index)=>{session.addEventListener(input_event,function(evt){GodotWebXR.frame=evt.frame;oninputevent(index,GodotWebXR.getInputSourceId(evt.inputSource));GodotWebXR.frame=null})});session.addEventListener("visibilitychange",function(evt){const c_str=GodotRuntime.allocString("visibility_state_changed");onsimpleevent(c_str);GodotRuntime.free(c_str)});GodotWebXR.onsimpleevent=onsimpleevent;const gl_context_handle=_emscripten_webgl_get_current_context();const gl=GL.getContext(gl_context_handle).GLctx;GodotWebXR.gl=gl;gl.makeXRCompatible().then(function(){const throwNoWebXRLayersError=()=>{throw new Error("This browser doesn't support WebXR Layers (which Godot requires) nor is the polyfill in use. If you are the developer of this application, please consider including the polyfill.")};try{GodotWebXR.gl_binding=new XRWebGLBinding(session,gl)}catch(error){throwNoWebXRLayersError()}if(!GodotWebXR.gl_binding.createProjectionLayer){throwNoWebXRLayersError()}const layer=GodotWebXR.getLayer();if(!layer){throw new Error("Unable to create WebXR Layer.")}function onReferenceSpaceSuccess(reference_space,reference_space_type){GodotWebXR.space=reference_space;reference_space.onreset=function(evt){const c_str=GodotRuntime.allocString("reference_space_reset");onsimpleevent(c_str);GodotRuntime.free(c_str)};GodotWebXR.pauseResumeMainLoop();window.setTimeout(function(){const reference_space_c_str=GodotRuntime.allocString(reference_space_type);const enabled_features="enabledFeatures"in session?Array.from(session.enabledFeatures):[];const enabled_features_c_str=GodotRuntime.allocString(enabled_features.join(","));const environment_blend_mode="environmentBlendMode"in session?session.environmentBlendMode:"";const environment_blend_mode_c_str=GodotRuntime.allocString(environment_blend_mode);onstarted(reference_space_c_str,enabled_features_c_str,environment_blend_mode_c_str);GodotRuntime.free(reference_space_c_str);GodotRuntime.free(enabled_features_c_str);GodotRuntime.free(environment_blend_mode_c_str)},0)}function requestReferenceSpace(){const reference_space_type=requested_reference_space_types.shift();session.requestReferenceSpace(reference_space_type).then(refSpace=>{onReferenceSpaceSuccess(refSpace,reference_space_type)}).catch(()=>{if(requested_reference_space_types.length===0){const c_str=GodotRuntime.allocString("Unable to get any of the requested reference space types");onfailed(c_str);GodotRuntime.free(c_str)}else{requestReferenceSpace()}})}requestReferenceSpace()}).catch(function(error){const c_str=GodotRuntime.allocString(`Unable to make WebGL context compatible with WebXR: ${error}`);onfailed(c_str);GodotRuntime.free(c_str)})}).catch(function(error){const c_str=GodotRuntime.allocString(`Unable to start session: ${error}`);onfailed(c_str);GodotRuntime.free(c_str)})};function _godot_webxr_is_session_supported(p_session_mode,p_callback){const session_mode=GodotRuntime.parseString(p_session_mode);const cb=GodotRuntime.get_func(p_callback);if(navigator.xr){navigator.xr.isSessionSupported(session_mode).then(function(supported){const c_str=GodotRuntime.allocString(session_mode);cb(c_str,supported?1:0);GodotRuntime.free(c_str)})}else{const c_str=GodotRuntime.allocString(session_mode);cb(c_str,0);GodotRuntime.free(c_str)}}function _godot_webxr_is_supported(){return!!navigator.xr}var _godot_webxr_uninitialize=function(){if(GodotWebXR.session){GodotWebXR.session.end().catch(e=>{})}GodotWebXR.session=null;GodotWebXR.gl_binding=null;GodotWebXR.layer=null;GodotWebXR.space=null;GodotWebXR.frame=null;GodotWebXR.pose=null;GodotWebXR.view_count=1;GodotWebXR.input_sources=new Array(16);GodotWebXR.touches=new Array(5);GodotWebXR.onsimpleevent=null;GodotWebXR.monkeyPatchRequestAnimationFrame(false);GodotWebXR.pauseResumeMainLoop()};function _godot_webxr_update_input_source(p_input_source_id,r_target_pose,r_target_ray_mode,r_touch_index,r_has_grip_pose,r_grip_pose,r_has_standard_mapping,r_button_count,r_buttons,r_axes_count,r_axes,r_has_hand_data,r_hand_joints,r_hand_radii){if(!GodotWebXR.session||!GodotWebXR.frame){return 0}if(p_input_source_id<0||p_input_source_id>=GodotWebXR.input_sources.length||!GodotWebXR.input_sources[p_input_source_id]){return false}const input_source=GodotWebXR.input_sources[p_input_source_id];const frame=GodotWebXR.frame;const space=GodotWebXR.space;const target_pose=frame.getPose(input_source.targetRaySpace,space);if(!target_pose){return false}const target_pose_matrix=target_pose.transform.matrix;for(let i=0;i<16;i++){GodotRuntime.setHeapValue(r_target_pose+i*4,target_pose_matrix[i],"float")}let target_ray_mode=0;switch(input_source.targetRayMode){case"gaze":target_ray_mode=1;break;case"tracked-pointer":target_ray_mode=2;break;case"screen":target_ray_mode=3;break;default:}GodotRuntime.setHeapValue(r_target_ray_mode,target_ray_mode,"i32");GodotRuntime.setHeapValue(r_touch_index,GodotWebXR.getTouchIndex(input_source),"i32");let has_grip_pose=false;if(input_source.gripSpace){const grip_pose=frame.getPose(input_source.gripSpace,space);if(grip_pose){const grip_pose_matrix=grip_pose.transform.matrix;for(let i=0;i<16;i++){GodotRuntime.setHeapValue(r_grip_pose+i*4,grip_pose_matrix[i],"float")}has_grip_pose=true}}GodotRuntime.setHeapValue(r_has_grip_pose,has_grip_pose?1:0,"i32");let has_standard_mapping=false;let button_count=0;let axes_count=0;if(input_source.gamepad){if(input_source.gamepad.mapping==="xr-standard"){has_standard_mapping=true}button_count=Math.min(input_source.gamepad.buttons.length,10);for(let i=0;i<button_count;i++){GodotRuntime.setHeapValue(r_buttons+i*4,input_source.gamepad.buttons[i].value,"float")}axes_count=Math.min(input_source.gamepad.axes.length,10);for(let i=0;i<axes_count;i++){GodotRuntime.setHeapValue(r_axes+i*4,input_source.gamepad.axes[i],"float")}}GodotRuntime.setHeapValue(r_has_standard_mapping,has_standard_mapping?1:0,"i32");GodotRuntime.setHeapValue(r_button_count,button_count,"i32");GodotRuntime.setHeapValue(r_axes_count,axes_count,"i32");let has_hand_data=false;if(input_source.hand&&r_hand_joints!==0&&r_hand_radii!==0){const hand_joint_array=new Float32Array(25*16);const hand_radii_array=new Float32Array(25);if(frame.fillPoses(input_source.hand.values(),space,hand_joint_array)&&frame.fillJointRadii(input_source.hand.values(),hand_radii_array)){GodotRuntime.heapCopy(HEAPF32,hand_joint_array,r_hand_joints);GodotRuntime.heapCopy(HEAPF32,hand_radii_array,r_hand_radii);has_hand_data=true}}GodotRuntime.setHeapValue(r_has_hand_data,has_hand_data?1:0,"i32");return true}function _godot_webxr_update_target_frame_rate(p_frame_rate){if(!GodotWebXR.session||GodotWebXR.session.updateTargetFrameRate===undefined){return}GodotWebXR.session.updateTargetFrameRate(p_frame_rate).then(()=>{const c_str=GodotRuntime.allocString("display_refresh_rate_changed");GodotWebXR.onsimpleevent(c_str);GodotRuntime.free(c_str)})}var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var getCFunc=ident=>{var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func};var writeArrayToMemory=(array,buffer)=>{assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");HEAP8.set(array,buffer)};var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}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<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>(...args)=>ccall(ident,returnType,argTypes,args,opts);FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["requestAnimationFrame"]=MainLoop.requestAnimationFrame;Module["pauseMainLoop"]=MainLoop.pause;Module["resumeMainLoop"]=MainLoop.resume;MainLoop.init();for(let i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<=288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i)}var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<=288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i)}Module["request_quit"]=function(){GodotOS.request_quit()};Module["onExit"]=GodotOS.cleanup;GodotOS._fs_sync_promise=Promise.resolve();Module["initConfig"]=GodotConfig.init_config;Module["initFS"]=GodotFS.init;Module["copyToFS"]=GodotFS.copy_to_fs;GodotOS.atexit(function(resolve,reject){GodotDisplayCursor.clear();resolve()});GodotOS.atexit(function(resolve,reject){GodotEventListeners.clear();resolve()});GodotOS.atexit(function(resolve,reject){GodotDisplayVK.clear();resolve()});GodotOS.atexit(function(resolve,reject){GodotIME.clear();resolve()});GodotJSWrapper.proxies=new Map;{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];checkIncomingModuleAPI();if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];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");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 emscripten_set_window_title in JS)");assert(typeof Module["TOTAL_MEMORY"]=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");assert(typeof Module["ENVIRONMENT"]=="undefined","Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");assert(typeof Module["STACK_SIZE"]=="undefined","STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time");assert(typeof Module["wasmMemory"]=="undefined","Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally");assert(typeof Module["INITIAL_MEMORY"]=="undefined","Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically")}Module["callMain"]=callMain;Module["cwrap"]=cwrap;var missingLibrarySymbols=["writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","getTempRet0","setTempRet0","zeroMemory","withStackSave","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","emscriptenLog","readEmAsmArgs","autoResumeAudioContext","getDynCaller","dynCall","setWasmTableEntry","asmjsMangle","HandleAllocator","getNativeTypeSize","addOnInit","addOnPostCtor","addOnPreMain","addOnExit","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","getFunctionAddress","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","stringToAscii","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","registerKeyEventCallback","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","safeSetTimeout","setImmediateWrapped","safeRequestAnimationFrame","clearImmediateWrapped","registerPostMainLoop","registerPreMainLoop","getPromise","makePromise","idsToPromises","makePromiseCallback","Browser_asyncPrepareDataCounter","arraySum","addDays","getSocketFromFD","getSocketAddress","FS_mkdirTree","_setNetworkCallback","emscriptenWebGLGetUniform","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","runAndAbortIfError","emscriptenWebGLGetIndexed","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","demangle","stackTrace"];missingLibrarySymbols.forEach(missingLibrarySymbol);var unexportedSymbols=["run","addRunDependency","removeRunDependency","out","err","abort","wasmMemory","wasmExports","writeStackCookie","checkStackCookie","writeI53ToI64","readI53FromI64","readI53FromU64","INT53_MAX","INT53_MIN","bigintToI53Checked","stackSave","stackRestore","stackAlloc","ptrToString","exitJS","getHeapMax","growMemory","ENV","ERRNO_CODES","strError","DNS","Protocols","Sockets","timers","warnOnce","readEmAsmArgsArray","jstoi_q","getExecutableName","getWasmTableEntry","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asyncLoad","alignMemory","mmapAlloc","wasmTable","getUniqueRunDependency","noExitRuntime","addOnPreRun","addOnPostRun","ccall","freeTableIndexes","functionsInTableMap","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","intArrayFromString","UTF16Decoder","stringToNewUTF8","stringToUTF8OnStack","writeArrayToMemory","JSEvents","specialHTMLTargets","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","getEnvStrings","checkWasiClock","doReadv","doWritev","initRandomFill","randomFill","emSetImmediate","emClearImmediate_deps","emClearImmediate","promiseMap","Browser","requestFullscreen","requestFullScreen","setCanvasSize","getUserMedia","createContext","getPreloadedImageData__data","wget","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","isLeapYear","ydayFromDate","SYSCALLS","preloadPlugins","FS_createPreloadedFile","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar_buffer","FS_stdin_getChar","FS_unlink","FS_createPath","FS_createDevice","FS_readFile","FS","FS_root","FS_mounts","FS_devices","FS_streams","FS_nextInode","FS_nameTable","FS_currentPath","FS_initialized","FS_ignorePermissions","FS_filesystems","FS_syncFSRequests","FS_readFiles","FS_lookupPath","FS_getPath","FS_hashName","FS_hashAddNode","FS_hashRemoveNode","FS_lookupNode","FS_createNode","FS_destroyNode","FS_isRoot","FS_isMountpoint","FS_isFile","FS_isDir","FS_isLink","FS_isChrdev","FS_isBlkdev","FS_isFIFO","FS_isSocket","FS_flagsToPermissionString","FS_nodePermissions","FS_mayLookup","FS_mayCreate","FS_mayDelete","FS_mayOpen","FS_checkOpExists","FS_nextfd","FS_getStreamChecked","FS_getStream","FS_createStream","FS_closeStream","FS_dupStream","FS_doSetAttr","FS_chrdev_stream_ops","FS_major","FS_minor","FS_makedev","FS_registerDevice","FS_getDevice","FS_getMounts","FS_syncfs","FS_mount","FS_unmount","FS_lookup","FS_mknod","FS_statfs","FS_statfsStream","FS_statfsNode","FS_create","FS_mkdir","FS_mkdev","FS_symlink","FS_rename","FS_rmdir","FS_readdir","FS_readlink","FS_stat","FS_fstat","FS_lstat","FS_doChmod","FS_chmod","FS_lchmod","FS_fchmod","FS_doChown","FS_chown","FS_lchown","FS_fchown","FS_doTruncate","FS_truncate","FS_ftruncate","FS_utime","FS_open","FS_close","FS_isClosed","FS_llseek","FS_read","FS_write","FS_mmap","FS_msync","FS_ioctl","FS_writeFile","FS_cwd","FS_chdir","FS_createDefaultDirectories","FS_createDefaultDevices","FS_createSpecialDirectories","FS_createStandardStreams","FS_staticInit","FS_init","FS_quit","FS_findObject","FS_analyzePath","FS_createFile","FS_createDataFile","FS_forceLoadFile","FS_createLazyFile","FS_absolutePath","FS_createFolder","FS_createLink","FS_joinPath","FS_mmapAlloc","FS_standardizePath","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","heapObjectForWebGLType","toTypedArrayIndex","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","webgl_enable_EXT_polygon_offset_clamp","webgl_enable_EXT_clip_control","webgl_enable_WEBGL_polygon_mode","GL","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance","webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance","allocateUTF8","allocateUTF8OnStack","print","printErr","jstoi_s","GodotWebXR","GodotWebSocket","GodotRTCDataChannel","GodotRTCPeerConnection","GodotAudio","GodotAudioWorklet","GodotAudioScript","GodotDisplayVK","GodotDisplayCursor","GodotDisplayScreen","GodotDisplay","GodotEmscripten","GodotFetch","GodotWebMidi","IDHandler","GodotConfig","GodotFS","GodotOS","GodotEventListeners","GodotPWA","GodotRuntime","GodotIME","GodotInputGamepads","GodotInputDragDrop","GodotInput","GodotWebGL2","GodotJSWrapper","IDBFS"];unexportedSymbols.forEach(unexportedRuntimeSymbol);function checkIncomingModuleAPI(){ignoredModuleProp("fetchSettings")}var _free=Module["_free"]=makeInvalidEarlyAccess("_free");var __Z14godot_web_mainiPPc=Module["__Z14godot_web_mainiPPc"]=makeInvalidEarlyAccess("__Z14godot_web_mainiPPc");var _main=Module["_main"]=makeInvalidEarlyAccess("_main");var _malloc=Module["_malloc"]=makeInvalidEarlyAccess("_malloc");var _fflush=makeInvalidEarlyAccess("_fflush");var __emwebxr_on_input_event=Module["__emwebxr_on_input_event"]=makeInvalidEarlyAccess("__emwebxr_on_input_event");var __emwebxr_on_simple_event=Module["__emwebxr_on_simple_event"]=makeInvalidEarlyAccess("__emwebxr_on_simple_event");var _strerror=makeInvalidEarlyAccess("_strerror");var ___funcs_on_exit=makeInvalidEarlyAccess("___funcs_on_exit");var _emscripten_stack_get_end=makeInvalidEarlyAccess("_emscripten_stack_get_end");var _emscripten_stack_get_base=makeInvalidEarlyAccess("_emscripten_stack_get_base");var __emscripten_timeout=makeInvalidEarlyAccess("__emscripten_timeout");var _emscripten_stack_init=makeInvalidEarlyAccess("_emscripten_stack_init");var _emscripten_stack_get_free=makeInvalidEarlyAccess("_emscripten_stack_get_free");var __emscripten_stack_restore=makeInvalidEarlyAccess("__emscripten_stack_restore");var __emscripten_stack_alloc=makeInvalidEarlyAccess("__emscripten_stack_alloc");var _emscripten_stack_get_current=makeInvalidEarlyAccess("_emscripten_stack_get_current");function assignWasmExports(wasmExports){Module["_free"]=_free=createExportWrapper("free",1);Module["__Z14godot_web_mainiPPc"]=__Z14godot_web_mainiPPc=createExportWrapper("_Z14godot_web_mainiPPc",2);Module["_main"]=_main=createExportWrapper("__main_argc_argv",2);Module["_malloc"]=_malloc=createExportWrapper("malloc",1);_fflush=createExportWrapper("fflush",1);Module["__emwebxr_on_input_event"]=__emwebxr_on_input_event=createExportWrapper("_emwebxr_on_input_event",2);Module["__emwebxr_on_simple_event"]=__emwebxr_on_simple_event=createExportWrapper("_emwebxr_on_simple_event",1);_strerror=createExportWrapper("strerror",1);___funcs_on_exit=createExportWrapper("__funcs_on_exit",0);_emscripten_stack_get_end=wasmExports["emscripten_stack_get_end"];_emscripten_stack_get_base=wasmExports["emscripten_stack_get_base"];__emscripten_timeout=createExportWrapper("_emscripten_timeout",2);_emscripten_stack_init=wasmExports["emscripten_stack_init"];_emscripten_stack_get_free=wasmExports["emscripten_stack_get_free"];__emscripten_stack_restore=wasmExports["_emscripten_stack_restore"];__emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"];_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"]}var wasmImports={__call_sighandler:___call_sighandler,__syscall_chdir:___syscall_chdir,__syscall_chmod:___syscall_chmod,__syscall_faccessat:___syscall_faccessat,__syscall_fchmod:___syscall_fchmod,__syscall_fcntl64:___syscall_fcntl64,__syscall_fstat64:___syscall_fstat64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_lstat64:___syscall_lstat64,__syscall_mkdirat:___syscall_mkdirat,__syscall_mknodat:___syscall_mknodat,__syscall_newfstatat:___syscall_newfstatat,__syscall_openat:___syscall_openat,__syscall_readlinkat:___syscall_readlinkat,__syscall_renameat:___syscall_renameat,__syscall_rmdir:___syscall_rmdir,__syscall_stat64:___syscall_stat64,__syscall_statfs64:___syscall_statfs64,__syscall_symlinkat:___syscall_symlinkat,__syscall_unlinkat:___syscall_unlinkat,_abort_js:__abort_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_gmtime_js:__gmtime_js,_localtime_js:__localtime_js,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_cancel_main_loop:_emscripten_cancel_main_loop,emscripten_date_now:_emscripten_date_now,emscripten_err:_emscripten_err,emscripten_force_exit:_emscripten_force_exit,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,emscripten_set_canvas_element_size:_emscripten_set_canvas_element_size,emscripten_set_main_loop:_emscripten_set_main_loop,emscripten_webgl_commit_frame:_emscripten_webgl_commit_frame,emscripten_webgl_create_context:_emscripten_webgl_create_context,emscripten_webgl_destroy_context:_emscripten_webgl_destroy_context,emscripten_webgl_enable_extension:_emscripten_webgl_enable_extension,emscripten_webgl_get_supported_extensions:_emscripten_webgl_get_supported_extensions,emscripten_webgl_make_context_current:_emscripten_webgl_make_context_current,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,glActiveTexture:_glActiveTexture,glAttachShader:_glAttachShader,glBeginTransformFeedback:_glBeginTransformFeedback,glBindBuffer:_glBindBuffer,glBindBufferBase:_glBindBufferBase,glBindBufferRange:_glBindBufferRange,glBindFramebuffer:_glBindFramebuffer,glBindRenderbuffer:_glBindRenderbuffer,glBindTexture:_glBindTexture,glBindVertexArray:_glBindVertexArray,glBlendColor:_glBlendColor,glBlendEquation:_glBlendEquation,glBlendFunc:_glBlendFunc,glBlendFuncSeparate:_glBlendFuncSeparate,glBlitFramebuffer:_glBlitFramebuffer,glBufferData:_glBufferData,glBufferSubData:_glBufferSubData,glCheckFramebufferStatus:_glCheckFramebufferStatus,glClear:_glClear,glClearBufferfv:_glClearBufferfv,glClearColor:_glClearColor,glClearDepthf:_glClearDepthf,glClearStencil:_glClearStencil,glColorMask:_glColorMask,glCompileShader:_glCompileShader,glCompressedTexImage2D:_glCompressedTexImage2D,glCompressedTexImage3D:_glCompressedTexImage3D,glCompressedTexSubImage3D:_glCompressedTexSubImage3D,glCopyBufferSubData:_glCopyBufferSubData,glCreateProgram:_glCreateProgram,glCreateShader:_glCreateShader,glCullFace:_glCullFace,glDeleteBuffers:_glDeleteBuffers,glDeleteFramebuffers:_glDeleteFramebuffers,glDeleteProgram:_glDeleteProgram,glDeleteQueries:_glDeleteQueries,glDeleteRenderbuffers:_glDeleteRenderbuffers,glDeleteShader:_glDeleteShader,glDeleteSync:_glDeleteSync,glDeleteTextures:_glDeleteTextures,glDeleteVertexArrays:_glDeleteVertexArrays,glDepthFunc:_glDepthFunc,glDepthMask:_glDepthMask,glDisable:_glDisable,glDisableVertexAttribArray:_glDisableVertexAttribArray,glDrawArrays:_glDrawArrays,glDrawArraysInstanced:_glDrawArraysInstanced,glDrawBuffers:_glDrawBuffers,glDrawElements:_glDrawElements,glDrawElementsInstanced:_glDrawElementsInstanced,glEnable:_glEnable,glEnableVertexAttribArray:_glEnableVertexAttribArray,glEndTransformFeedback:_glEndTransformFeedback,glFenceSync:_glFenceSync,glFinish:_glFinish,glFramebufferRenderbuffer:_glFramebufferRenderbuffer,glFramebufferTexture2D:_glFramebufferTexture2D,glFramebufferTextureLayer:_glFramebufferTextureLayer,glFrontFace:_glFrontFace,glGenBuffers:_glGenBuffers,glGenFramebuffers:_glGenFramebuffers,glGenQueries:_glGenQueries,glGenRenderbuffers:_glGenRenderbuffers,glGenTextures:_glGenTextures,glGenVertexArrays:_glGenVertexArrays,glGenerateMipmap:_glGenerateMipmap,glGetFloatv:_glGetFloatv,glGetInteger64v:_glGetInteger64v,glGetIntegerv:_glGetIntegerv,glGetProgramInfoLog:_glGetProgramInfoLog,glGetProgramiv:_glGetProgramiv,glGetShaderInfoLog:_glGetShaderInfoLog,glGetShaderiv:_glGetShaderiv,glGetString:_glGetString,glGetSynciv:_glGetSynciv,glGetUniformBlockIndex:_glGetUniformBlockIndex,glGetUniformLocation:_glGetUniformLocation,glLinkProgram:_glLinkProgram,glPixelStorei:_glPixelStorei,glReadBuffer:_glReadBuffer,glReadPixels:_glReadPixels,glRenderbufferStorage:_glRenderbufferStorage,glRenderbufferStorageMultisample:_glRenderbufferStorageMultisample,glScissor:_glScissor,glShaderSource:_glShaderSource,glStencilFunc:_glStencilFunc,glStencilMask:_glStencilMask,glStencilOp:_glStencilOp,glTexImage2D:_glTexImage2D,glTexImage3D:_glTexImage3D,glTexParameterf:_glTexParameterf,glTexParameteri:_glTexParameteri,glTexStorage2D:_glTexStorage2D,glTexSubImage3D:_glTexSubImage3D,glTransformFeedbackVaryings:_glTransformFeedbackVaryings,glUniform1f:_glUniform1f,glUniform1i:_glUniform1i,glUniform1iv:_glUniform1iv,glUniform1ui:_glUniform1ui,glUniform1uiv:_glUniform1uiv,glUniform2f:_glUniform2f,glUniform2fv:_glUniform2fv,glUniform2iv:_glUniform2iv,glUniform3fv:_glUniform3fv,glUniform4f:_glUniform4f,glUniform4fv:_glUniform4fv,glUniformBlockBinding:_glUniformBlockBinding,glUniformMatrix3fv:_glUniformMatrix3fv,glUniformMatrix4fv:_glUniformMatrix4fv,glUseProgram:_glUseProgram,glVertexAttrib4f:_glVertexAttrib4f,glVertexAttribDivisor:_glVertexAttribDivisor,glVertexAttribI4ui:_glVertexAttribI4ui,glVertexAttribIPointer:_glVertexAttribIPointer,glVertexAttribPointer:_glVertexAttribPointer,glViewport:_glViewport,godot_audio_get_sample_playback_position:_godot_audio_get_sample_playback_position,godot_audio_has_script_processor:_godot_audio_has_script_processor,godot_audio_has_worklet:_godot_audio_has_worklet,godot_audio_init:_godot_audio_init,godot_audio_input_start:_godot_audio_input_start,godot_audio_input_stop:_godot_audio_input_stop,godot_audio_is_available:_godot_audio_is_available,godot_audio_resume:_godot_audio_resume,godot_audio_sample_bus_add:_godot_audio_sample_bus_add,godot_audio_sample_bus_move:_godot_audio_sample_bus_move,godot_audio_sample_bus_remove:_godot_audio_sample_bus_remove,godot_audio_sample_bus_set_count:_godot_audio_sample_bus_set_count,godot_audio_sample_bus_set_mute:_godot_audio_sample_bus_set_mute,godot_audio_sample_bus_set_send:_godot_audio_sample_bus_set_send,godot_audio_sample_bus_set_solo:_godot_audio_sample_bus_set_solo,godot_audio_sample_bus_set_volume_db:_godot_audio_sample_bus_set_volume_db,godot_audio_sample_is_active:_godot_audio_sample_is_active,godot_audio_sample_register_stream:_godot_audio_sample_register_stream,godot_audio_sample_set_finished_callback:_godot_audio_sample_set_finished_callback,godot_audio_sample_set_pause:_godot_audio_sample_set_pause,godot_audio_sample_set_volumes_linear:_godot_audio_sample_set_volumes_linear,godot_audio_sample_start:_godot_audio_sample_start,godot_audio_sample_stop:_godot_audio_sample_stop,godot_audio_sample_stream_is_registered:_godot_audio_sample_stream_is_registered,godot_audio_sample_unregister_stream:_godot_audio_sample_unregister_stream,godot_audio_sample_update_pitch_scale:_godot_audio_sample_update_pitch_scale,godot_audio_script_create:_godot_audio_script_create,godot_audio_script_start:_godot_audio_script_start,godot_audio_worklet_create:_godot_audio_worklet_create,godot_audio_worklet_start_no_threads:_godot_audio_worklet_start_no_threads,godot_js_config_canvas_id_get:_godot_js_config_canvas_id_get,godot_js_config_locale_get:_godot_js_config_locale_get,godot_js_display_alert:_godot_js_display_alert,godot_js_display_canvas_focus:_godot_js_display_canvas_focus,godot_js_display_canvas_is_focused:_godot_js_display_canvas_is_focused,godot_js_display_clipboard_get:_godot_js_display_clipboard_get,godot_js_display_clipboard_set:_godot_js_display_clipboard_set,godot_js_display_cursor_is_hidden:_godot_js_display_cursor_is_hidden,godot_js_display_cursor_is_locked:_godot_js_display_cursor_is_locked,godot_js_display_cursor_lock_set:_godot_js_display_cursor_lock_set,godot_js_display_cursor_set_custom_shape:_godot_js_display_cursor_set_custom_shape,godot_js_display_cursor_set_shape:_godot_js_display_cursor_set_shape,godot_js_display_cursor_set_visible:_godot_js_display_cursor_set_visible,godot_js_display_desired_size_set:_godot_js_display_desired_size_set,godot_js_display_fullscreen_cb:_godot_js_display_fullscreen_cb,godot_js_display_fullscreen_exit:_godot_js_display_fullscreen_exit,godot_js_display_fullscreen_request:_godot_js_display_fullscreen_request,godot_js_display_has_webgl:_godot_js_display_has_webgl,godot_js_display_is_swap_ok_cancel:_godot_js_display_is_swap_ok_cancel,godot_js_display_notification_cb:_godot_js_display_notification_cb,godot_js_display_pixel_ratio_get:_godot_js_display_pixel_ratio_get,godot_js_display_screen_dpi_get:_godot_js_display_screen_dpi_get,godot_js_display_screen_size_get:_godot_js_display_screen_size_get,godot_js_display_setup_canvas:_godot_js_display_setup_canvas,godot_js_display_size_update:_godot_js_display_size_update,godot_js_display_touchscreen_is_available:_godot_js_display_touchscreen_is_available,godot_js_display_tts_available:_godot_js_display_tts_available,godot_js_display_vk_available:_godot_js_display_vk_available,godot_js_display_vk_cb:_godot_js_display_vk_cb,godot_js_display_vk_hide:_godot_js_display_vk_hide,godot_js_display_vk_show:_godot_js_display_vk_show,godot_js_display_window_blur_cb:_godot_js_display_window_blur_cb,godot_js_display_window_icon_set:_godot_js_display_window_icon_set,godot_js_display_window_size_get:_godot_js_display_window_size_get,godot_js_display_window_title_set:_godot_js_display_window_title_set,godot_js_emscripten_get_version:_godot_js_emscripten_get_version,godot_js_eval:_godot_js_eval,godot_js_fetch_create:_godot_js_fetch_create,godot_js_fetch_free:_godot_js_fetch_free,godot_js_fetch_http_status_get:_godot_js_fetch_http_status_get,godot_js_fetch_is_chunked:_godot_js_fetch_is_chunked,godot_js_fetch_read_chunk:_godot_js_fetch_read_chunk,godot_js_fetch_read_headers:_godot_js_fetch_read_headers,godot_js_fetch_state_get:_godot_js_fetch_state_get,godot_js_input_drop_files_cb:_godot_js_input_drop_files_cb,godot_js_input_gamepad_cb:_godot_js_input_gamepad_cb,godot_js_input_gamepad_sample:_godot_js_input_gamepad_sample,godot_js_input_gamepad_sample_count:_godot_js_input_gamepad_sample_count,godot_js_input_gamepad_sample_get:_godot_js_input_gamepad_sample_get,godot_js_input_key_cb:_godot_js_input_key_cb,godot_js_input_mouse_button_cb:_godot_js_input_mouse_button_cb,godot_js_input_mouse_move_cb:_godot_js_input_mouse_move_cb,godot_js_input_mouse_wheel_cb:_godot_js_input_mouse_wheel_cb,godot_js_input_paste_cb:_godot_js_input_paste_cb,godot_js_input_touch_cb:_godot_js_input_touch_cb,godot_js_input_vibrate_handheld:_godot_js_input_vibrate_handheld,godot_js_is_ime_focused:_godot_js_is_ime_focused,godot_js_os_download_buffer:_godot_js_os_download_buffer,godot_js_os_execute:_godot_js_os_execute,godot_js_os_finish_async:_godot_js_os_finish_async,godot_js_os_fs_is_persistent:_godot_js_os_fs_is_persistent,godot_js_os_fs_sync:_godot_js_os_fs_sync,godot_js_os_has_feature:_godot_js_os_has_feature,godot_js_os_hw_concurrency_get:_godot_js_os_hw_concurrency_get,godot_js_os_request_quit_cb:_godot_js_os_request_quit_cb,godot_js_os_shell_open:_godot_js_os_shell_open,godot_js_pwa_cb:_godot_js_pwa_cb,godot_js_pwa_update:_godot_js_pwa_update,godot_js_rtc_datachannel_close:_godot_js_rtc_datachannel_close,godot_js_rtc_datachannel_connect:_godot_js_rtc_datachannel_connect,godot_js_rtc_datachannel_destroy:_godot_js_rtc_datachannel_destroy,godot_js_rtc_datachannel_get_buffered_amount:_godot_js_rtc_datachannel_get_buffered_amount,godot_js_rtc_datachannel_id_get:_godot_js_rtc_datachannel_id_get,godot_js_rtc_datachannel_is_negotiated:_godot_js_rtc_datachannel_is_negotiated,godot_js_rtc_datachannel_is_ordered:_godot_js_rtc_datachannel_is_ordered,godot_js_rtc_datachannel_label_get:_godot_js_rtc_datachannel_label_get,godot_js_rtc_datachannel_max_packet_lifetime_get:_godot_js_rtc_datachannel_max_packet_lifetime_get,godot_js_rtc_datachannel_max_retransmits_get:_godot_js_rtc_datachannel_max_retransmits_get,godot_js_rtc_datachannel_protocol_get:_godot_js_rtc_datachannel_protocol_get,godot_js_rtc_datachannel_ready_state_get:_godot_js_rtc_datachannel_ready_state_get,godot_js_rtc_datachannel_send:_godot_js_rtc_datachannel_send,godot_js_rtc_pc_close:_godot_js_rtc_pc_close,godot_js_rtc_pc_create:_godot_js_rtc_pc_create,godot_js_rtc_pc_datachannel_create:_godot_js_rtc_pc_datachannel_create,godot_js_rtc_pc_destroy:_godot_js_rtc_pc_destroy,godot_js_rtc_pc_ice_candidate_add:_godot_js_rtc_pc_ice_candidate_add,godot_js_rtc_pc_local_description_set:_godot_js_rtc_pc_local_description_set,godot_js_rtc_pc_offer_create:_godot_js_rtc_pc_offer_create,godot_js_rtc_pc_remote_description_set:_godot_js_rtc_pc_remote_description_set,godot_js_set_ime_active:_godot_js_set_ime_active,godot_js_set_ime_cb:_godot_js_set_ime_cb,godot_js_set_ime_position:_godot_js_set_ime_position,godot_js_tts_get_voices:_godot_js_tts_get_voices,godot_js_tts_is_paused:_godot_js_tts_is_paused,godot_js_tts_is_speaking:_godot_js_tts_is_speaking,godot_js_tts_pause:_godot_js_tts_pause,godot_js_tts_resume:_godot_js_tts_resume,godot_js_tts_speak:_godot_js_tts_speak,godot_js_tts_stop:_godot_js_tts_stop,godot_js_webmidi_close_midi_inputs:_godot_js_webmidi_close_midi_inputs,godot_js_webmidi_open_midi_inputs:_godot_js_webmidi_open_midi_inputs,godot_js_websocket_buffered_amount:_godot_js_websocket_buffered_amount,godot_js_websocket_close:_godot_js_websocket_close,godot_js_websocket_create:_godot_js_websocket_create,godot_js_websocket_destroy:_godot_js_websocket_destroy,godot_js_websocket_send:_godot_js_websocket_send,godot_js_wrapper_create_cb:_godot_js_wrapper_create_cb,godot_js_wrapper_create_object:_godot_js_wrapper_create_object,godot_js_wrapper_interface_get:_godot_js_wrapper_interface_get,godot_js_wrapper_object_call:_godot_js_wrapper_object_call,godot_js_wrapper_object_get:_godot_js_wrapper_object_get,godot_js_wrapper_object_getvar:_godot_js_wrapper_object_getvar,godot_js_wrapper_object_is_buffer:_godot_js_wrapper_object_is_buffer,godot_js_wrapper_object_set:_godot_js_wrapper_object_set,godot_js_wrapper_object_set_cb_ret:_godot_js_wrapper_object_set_cb_ret,godot_js_wrapper_object_setvar:_godot_js_wrapper_object_setvar,godot_js_wrapper_object_transfer_buffer:_godot_js_wrapper_object_transfer_buffer,godot_js_wrapper_object_unref:_godot_js_wrapper_object_unref,godot_webgl2_glFramebufferTextureMultisampleMultiviewOVR:_godot_webgl2_glFramebufferTextureMultisampleMultiviewOVR,godot_webgl2_glFramebufferTextureMultiviewOVR:_godot_webgl2_glFramebufferTextureMultiviewOVR,godot_webgl2_glGetBufferSubData:_godot_webgl2_glGetBufferSubData,godot_webxr_get_bounds_geometry:_godot_webxr_get_bounds_geometry,godot_webxr_get_color_texture:_godot_webxr_get_color_texture,godot_webxr_get_depth_texture:_godot_webxr_get_depth_texture,godot_webxr_get_frame_rate:_godot_webxr_get_frame_rate,godot_webxr_get_projection_for_view:_godot_webxr_get_projection_for_view,godot_webxr_get_render_target_size:_godot_webxr_get_render_target_size,godot_webxr_get_supported_frame_rates:_godot_webxr_get_supported_frame_rates,godot_webxr_get_transform_for_view:_godot_webxr_get_transform_for_view,godot_webxr_get_velocity_texture:_godot_webxr_get_velocity_texture,godot_webxr_get_view_count:_godot_webxr_get_view_count,godot_webxr_get_visibility_state:_godot_webxr_get_visibility_state,godot_webxr_initialize:_godot_webxr_initialize,godot_webxr_is_session_supported:_godot_webxr_is_session_supported,godot_webxr_is_supported:_godot_webxr_is_supported,godot_webxr_uninitialize:_godot_webxr_uninitialize,godot_webxr_update_input_source:_godot_webxr_update_input_source,godot_webxr_update_target_frame_rate:_godot_webxr_update_target_frame_rate,proc_exit:_proc_exit};var wasmExports=await createWasm();var calledRun;function callMain(args=[]){assert(runDependencies==0,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])');assert(typeof onPreRuns==="undefined"||onPreRuns.length==0,"cannot call main when preRun functions remain to be called");var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function stackCheckInit(){_emscripten_stack_init();writeStackCookie()}function run(args=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}stackCheckInit();preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){assert(!calledRun);calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();consumedModuleProp("onRuntimeInitialized");var noInitialRun=Module["noInitialRun"]||true;if(!noInitialRun)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}checkStackCookie()}function preInit(){if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}consumedModuleProp("preInit")}preInit();run();addOnPostRun(function(){GL.getSource=(shader,count,string,length)=>{let source="";for(let i=0;i<count;++i){const ptr=HEAPU32[string+i*4>>2];const len=length?HEAPU32[length+i*4>>2]:undefined;if(len){const endPtr=ptr+len;const slice=HEAPU8.buffer instanceof ArrayBuffer?HEAPU8.subarray(ptr,endPtr):HEAPU8.slice(ptr,endPtr);source+=UTF8Decoder.decode(slice)}else{source+=UTF8ToString(ptr,len)}}return source}});if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}for(const prop of Object.keys(Module)){if(!(prop in moduleArg)){Object.defineProperty(moduleArg,prop,{configurable:true,get(){abort(`Access to module property ('${prop}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}})}} + + + return moduleRtn; +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') { + module.exports = Godot; + // This default export looks redundant, but it allows TS to import this + // commonjs style module. + module.exports.default = Godot; +} else if (typeof define === 'function' && define['amd']) + define([], () => Godot); + +const Features = { + /** + * Check whether WebGL is available. Optionally, specify a particular version of WebGL to check for. + * + * @param {number=} [majorVersion=1] The major WebGL version to check for. + * @returns {boolean} If the given major version of WebGL is available. + * @function Engine.isWebGLAvailable + */ + isWebGLAvailable: function (majorVersion = 1) { + try { + return !!document.createElement('canvas').getContext(['webgl', 'webgl2'][majorVersion - 1]); + } catch (e) { /* Not available */ } + return false; + }, + + /** + * Check whether the Fetch API available and supports streaming responses. + * + * @returns {boolean} If the Fetch API is available and supports streaming responses. + * @function Engine.isFetchAvailable + */ + isFetchAvailable: function () { + return 'fetch' in window && 'Response' in window && 'body' in window.Response.prototype; + }, + + /** + * Check whether the engine is running in a Secure Context. + * + * @returns {boolean} If the engine is running in a Secure Context. + * @function Engine.isSecureContext + */ + isSecureContext: function () { + return window['isSecureContext'] === true; + }, + + /** + * Check whether the engine is cross origin isolated. + * This value is dependent on Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy headers sent by the server. + * + * @returns {boolean} If the engine is running in a Secure Context. + * @function Engine.isSecureContext + */ + isCrossOriginIsolated: function () { + return window['crossOriginIsolated'] === true; + }, + + /** + * Check whether SharedBufferArray is available. + * + * Most browsers require the page to be running in a secure context, and the + * the server to provide specific CORS headers for SharedArrayBuffer to be available. + * + * @returns {boolean} If SharedArrayBuffer is available. + * @function Engine.isSharedArrayBufferAvailable + */ + isSharedArrayBufferAvailable: function () { + return 'SharedArrayBuffer' in window; + }, + + /** + * Check whether the AudioContext supports AudioWorkletNodes. + * + * @returns {boolean} If AudioWorkletNode is available. + * @function Engine.isAudioWorkletAvailable + */ + isAudioWorkletAvailable: function () { + return 'AudioContext' in window && 'audioWorklet' in AudioContext.prototype; + }, + + /** + * Return an array of missing required features (as string). + * + * @returns {Array<string>} A list of human-readable missing features. + * @function Engine.getMissingFeatures + * @param {{threads: (boolean|undefined)}} supportedFeatures + */ + getMissingFeatures: function (supportedFeatures = {}) { + const { + // Quotes are needed for the Closure compiler. + 'threads': supportsThreads = true, + } = supportedFeatures; + + const missing = []; + if (!Features.isWebGLAvailable(2)) { + missing.push('WebGL2 - Check web browser configuration and hardware support'); + } + if (!Features.isFetchAvailable()) { + missing.push('Fetch - Check web browser version'); + } + if (!Features.isSecureContext()) { + missing.push('Secure Context - Check web server configuration (use HTTPS)'); + } + + if (supportsThreads) { + if (!Features.isCrossOriginIsolated()) { + missing.push('Cross-Origin Isolation - Check that the web server configuration sends the correct headers.'); + } + if (!Features.isSharedArrayBufferAvailable()) { + missing.push('SharedArrayBuffer - Check that the web server configuration sends the correct headers.'); + } + } + + // Audio is normally optional since we have a dummy fallback. + return missing; + }, +}; + +const Preloader = /** @constructor */ function () { // eslint-disable-line no-unused-vars + function getTrackedResponse(response, load_status) { + function onloadprogress(reader, controller) { + return reader.read().then(function (result) { + if (load_status.done) { + return Promise.resolve(); + } + if (result.value) { + controller.enqueue(result.value); + load_status.loaded += result.value.length; + } + if (!result.done) { + return onloadprogress(reader, controller); + } + load_status.done = true; + return Promise.resolve(); + }); + } + const reader = response.body.getReader(); + return new Response(new ReadableStream({ + start: function (controller) { + onloadprogress(reader, controller).then(function () { + controller.close(); + }); + }, + }), { headers: response.headers }); + } + + function loadFetch(file, tracker, fileSize, raw) { + tracker[file] = { + total: fileSize || 0, + loaded: 0, + done: false, + }; + return fetch(file).then(function (response) { + if (!response.ok) { + return Promise.reject(new Error(`Failed loading file '${file}'`)); + } + const tr = getTrackedResponse(response, tracker[file]); + if (raw) { + return Promise.resolve(tr); + } + return tr.arrayBuffer(); + }); + } + + function retry(func, attempts = 1) { + function onerror(err) { + if (attempts <= 1) { + return Promise.reject(err); + } + return new Promise(function (resolve, reject) { + setTimeout(function () { + retry(func, attempts - 1).then(resolve).catch(reject); + }, 1000); + }); + } + return func().catch(onerror); + } + + const DOWNLOAD_ATTEMPTS_MAX = 4; + const loadingFiles = {}; + const lastProgress = { loaded: 0, total: 0 }; + let progressFunc = null; + + const animateProgress = function () { + let loaded = 0; + let total = 0; + let totalIsValid = true; + let progressIsFinal = true; + + Object.keys(loadingFiles).forEach(function (file) { + const stat = loadingFiles[file]; + if (!stat.done) { + progressIsFinal = false; + } + if (!totalIsValid || stat.total === 0) { + totalIsValid = false; + total = 0; + } else { + total += stat.total; + } + loaded += stat.loaded; + }); + if (loaded !== lastProgress.loaded || total !== lastProgress.total) { + lastProgress.loaded = loaded; + lastProgress.total = total; + if (typeof progressFunc === 'function') { + progressFunc(loaded, total); + } + } + if (!progressIsFinal) { + requestAnimationFrame(animateProgress); + } + }; + + this.animateProgress = animateProgress; + + this.setProgressFunc = function (callback) { + progressFunc = callback; + }; + + this.loadPromise = function (file, fileSize, raw = false) { + return retry(loadFetch.bind(null, file, loadingFiles, fileSize, raw), DOWNLOAD_ATTEMPTS_MAX); + }; + + this.preloadedFiles = []; + this.preload = function (pathOrBuffer, destPath, fileSize) { + let buffer = null; + if (typeof pathOrBuffer === 'string') { + const me = this; + return this.loadPromise(pathOrBuffer, fileSize).then(function (buf) { + me.preloadedFiles.push({ + path: destPath || pathOrBuffer, + buffer: buf, + }); + return Promise.resolve(); + }); + } else if (pathOrBuffer instanceof ArrayBuffer) { + buffer = new Uint8Array(pathOrBuffer); + } else if (ArrayBuffer.isView(pathOrBuffer)) { + buffer = new Uint8Array(pathOrBuffer.buffer); + } + if (buffer) { + this.preloadedFiles.push({ + path: destPath, + buffer: pathOrBuffer, + }); + return Promise.resolve(); + } + return Promise.reject(new Error('Invalid object for preloading')); + }; +}; + +/** + * An object used to configure the Engine instance based on godot export options, and to override those in custom HTML + * templates if needed. + * + * @header Engine configuration + * @summary The Engine configuration object. This is just a typedef, create it like a regular object, e.g.: + * + * ``const MyConfig = { executable: 'godot', unloadAfterInit: false }`` + * + * @typedef {Object} EngineConfig + */ +const EngineConfig = {}; // eslint-disable-line no-unused-vars + +/** + * @struct + * @constructor + * @ignore + */ +const InternalConfig = function (initConfig) { // eslint-disable-line no-unused-vars + const cfg = /** @lends {InternalConfig.prototype} */ { + /** + * Whether to unload the engine automatically after the instance is initialized. + * + * @memberof EngineConfig + * @default + * @type {boolean} + */ + unloadAfterInit: true, + /** + * The HTML DOM Canvas object to use. + * + * By default, the first canvas element in the document will be used is none is specified. + * + * @memberof EngineConfig + * @default + * @type {?HTMLCanvasElement} + */ + canvas: null, + /** + * The name of the WASM file without the extension. (Set by Godot Editor export process). + * + * @memberof EngineConfig + * @default + * @type {string} + */ + executable: '', + /** + * An alternative name for the game pck to load. The executable name is used otherwise. + * + * @memberof EngineConfig + * @default + * @type {?string} + */ + mainPack: null, + /** + * Specify a language code to select the proper localization for the game. + * + * The browser locale will be used if none is specified. See complete list of + * :ref:`supported locales <doc_locales>`. + * + * @memberof EngineConfig + * @type {?string} + * @default + */ + locale: null, + /** + * The canvas resize policy determines how the canvas should be resized by Godot. + * + * ``0`` means Godot won't do any resizing. This is useful if you want to control the canvas size from + * javascript code in your template. + * + * ``1`` means Godot will resize the canvas on start, and when changing window size via engine functions. + * + * ``2`` means Godot will adapt the canvas size to match the whole browser window. + * + * @memberof EngineConfig + * @type {number} + * @default + */ + canvasResizePolicy: 2, + /** + * The arguments to be passed as command line arguments on startup. + * + * See :ref:`command line tutorial <doc_command_line_tutorial>`. + * + * **Note**: :js:meth:`startGame <Engine.prototype.startGame>` will always add the ``--main-pack`` argument. + * + * @memberof EngineConfig + * @type {Array<string>} + * @default + */ + args: [], + /** + * When enabled, the game canvas will automatically grab the focus when the engine starts. + * + * @memberof EngineConfig + * @type {boolean} + * @default + */ + focusCanvas: true, + /** + * When enabled, this will turn on experimental virtual keyboard support on mobile. + * + * @memberof EngineConfig + * @type {boolean} + * @default + */ + experimentalVK: false, + /** + * The progressive web app service worker to install. + * @memberof EngineConfig + * @default + * @type {string} + */ + serviceWorker: '', + /** + * @ignore + * @type {Array.<string>} + */ + persistentPaths: ['/userfs'], + /** + * @ignore + * @type {boolean} + */ + persistentDrops: false, + /** + * @ignore + * @type {Array.<string>} + */ + gdextensionLibs: [], + /** + * @ignore + * @type {Array.<string>} + */ + fileSizes: [], + /** + * @ignore + * @type {number} + */ + emscriptenPoolSize: 8, + /** + * @ignore + * @type {number} + */ + godotPoolSize: 4, + /** + * A callback function for handling Godot's ``OS.execute`` calls. + * + * This is for example used in the Web Editor template to switch between project manager and editor, and for running the game. + * + * @callback EngineConfig.onExecute + * @param {string} path The path that Godot's wants executed. + * @param {Array.<string>} args The arguments of the "command" to execute. + */ + /** + * @ignore + * @type {?function(string, Array.<string>)} + */ + onExecute: null, + /** + * A callback function for being notified when the Godot instance quits. + * + * **Note**: This function will not be called if the engine crashes or become unresponsive. + * + * @callback EngineConfig.onExit + * @param {number} status_code The status code returned by Godot on exit. + */ + /** + * @ignore + * @type {?function(number)} + */ + onExit: null, + /** + * A callback function for displaying download progress. + * + * The function is called once per frame while downloading files, so the usage of ``requestAnimationFrame()`` + * is not necessary. + * + * If the callback function receives a total amount of bytes as 0, this means that it is impossible to calculate. + * Possible reasons include: + * + * - Files are delivered with server-side chunked compression + * - Files are delivered with server-side compression on Chromium + * - Not all file downloads have started yet (usually on servers without multi-threading) + * + * @callback EngineConfig.onProgress + * @param {number} current The current amount of downloaded bytes so far. + * @param {number} total The total amount of bytes to be downloaded. + */ + /** + * @ignore + * @type {?function(number, number)} + */ + onProgress: null, + /** + * A callback function for handling the standard output stream. This method should usually only be used in debug pages. + * + * By default, ``console.log()`` is used. + * + * @callback EngineConfig.onPrint + * @param {...*} [var_args] A variadic number of arguments to be printed. + */ + /** + * @ignore + * @type {?function(...*)} + */ + onPrint: function () { + console.log.apply(console, Array.from(arguments)); // eslint-disable-line no-console + }, + /** + * A callback function for handling the standard error stream. This method should usually only be used in debug pages. + * + * By default, ``console.error()`` is used. + * + * @callback EngineConfig.onPrintError + * @param {...*} [var_args] A variadic number of arguments to be printed as errors. + */ + /** + * @ignore + * @type {?function(...*)} + */ + onPrintError: function (var_args) { + console.error.apply(console, Array.from(arguments)); // eslint-disable-line no-console + }, + }; + + /** + * @ignore + * @struct + * @constructor + * @param {EngineConfig} opts + */ + function Config(opts) { + this.update(opts); + } + + Config.prototype = cfg; + + /** + * @ignore + * @param {EngineConfig} opts + */ + Config.prototype.update = function (opts) { + const config = opts || {}; + // NOTE: We must explicitly pass the default, accessing it via + // the key will fail due to closure compiler renames. + function parse(key, def) { + if (typeof (config[key]) === 'undefined') { + return def; + } + return config[key]; + } + // Module config + this.unloadAfterInit = parse('unloadAfterInit', this.unloadAfterInit); + this.onPrintError = parse('onPrintError', this.onPrintError); + this.onPrint = parse('onPrint', this.onPrint); + this.onProgress = parse('onProgress', this.onProgress); + + // Godot config + this.canvas = parse('canvas', this.canvas); + this.executable = parse('executable', this.executable); + this.mainPack = parse('mainPack', this.mainPack); + this.locale = parse('locale', this.locale); + this.canvasResizePolicy = parse('canvasResizePolicy', this.canvasResizePolicy); + this.persistentPaths = parse('persistentPaths', this.persistentPaths); + this.persistentDrops = parse('persistentDrops', this.persistentDrops); + this.experimentalVK = parse('experimentalVK', this.experimentalVK); + this.focusCanvas = parse('focusCanvas', this.focusCanvas); + this.serviceWorker = parse('serviceWorker', this.serviceWorker); + this.gdextensionLibs = parse('gdextensionLibs', this.gdextensionLibs); + this.fileSizes = parse('fileSizes', this.fileSizes); + this.emscriptenPoolSize = parse('emscriptenPoolSize', this.emscriptenPoolSize); + this.godotPoolSize = parse('godotPoolSize', this.godotPoolSize); + this.args = parse('args', this.args); + this.onExecute = parse('onExecute', this.onExecute); + this.onExit = parse('onExit', this.onExit); + }; + + /** + * @ignore + * @param {string} loadPath + * @param {Response} response + */ + Config.prototype.getModuleConfig = function (loadPath, response) { + let r = response; + const gdext = this.gdextensionLibs; + return { + 'print': this.onPrint, + 'printErr': this.onPrintError, + 'thisProgram': this.executable, + 'noExitRuntime': false, + 'dynamicLibraries': [`${loadPath}.side.wasm`].concat(this.gdextensionLibs), + 'emscriptenPoolSize': this.emscriptenPoolSize, + 'instantiateWasm': function (imports, onSuccess) { + function done(result) { + onSuccess(result['instance'], result['module']); + } + if (typeof (WebAssembly.instantiateStreaming) !== 'undefined') { + WebAssembly.instantiateStreaming(Promise.resolve(r), imports).then(done); + } else { + r.arrayBuffer().then(function (buffer) { + WebAssembly.instantiate(buffer, imports).then(done); + }); + } + r = null; + return {}; + }, + 'locateFile': function (path) { + if (!path.startsWith('godot.')) { + return path; + } else if (path.endsWith('.audio.worklet.js')) { + return `${loadPath}.audio.worklet.js`; + } else if (path.endsWith('.audio.position.worklet.js')) { + return `${loadPath}.audio.position.worklet.js`; + } else if (path.endsWith('.js')) { + return `${loadPath}.js`; + } else if (path in gdext) { + return path; + } else if (path.endsWith('.side.wasm')) { + return `${loadPath}.side.wasm`; + } else if (path.endsWith('.wasm')) { + return `${loadPath}.wasm`; + } + return path; + }, + }; + }; + + /** + * @ignore + * @param {function()} cleanup + */ + Config.prototype.getGodotConfig = function (cleanup) { + // Try to find a canvas + if (!(this.canvas instanceof HTMLCanvasElement)) { + const nodes = document.getElementsByTagName('canvas'); + if (nodes.length && nodes[0] instanceof HTMLCanvasElement) { + const first = nodes[0]; + this.canvas = /** @type {!HTMLCanvasElement} */ (first); + } + if (!this.canvas) { + throw new Error('No canvas found in page'); + } + } + // Canvas can grab focus on click, or key events won't work. + if (this.canvas.tabIndex < 0) { + this.canvas.tabIndex = 0; + } + + // Browser locale, or custom one if defined. + let locale = this.locale; + if (!locale) { + locale = navigator.languages ? navigator.languages[0] : navigator.language; + locale = locale.split('.')[0]; + } + locale = locale.replace('-', '_'); + const onExit = this.onExit; + + // Godot configuration. + return { + 'canvas': this.canvas, + 'canvasResizePolicy': this.canvasResizePolicy, + 'locale': locale, + 'persistentDrops': this.persistentDrops, + 'virtualKeyboard': this.experimentalVK, + 'godotPoolSize': this.godotPoolSize, + 'focusCanvas': this.focusCanvas, + 'onExecute': this.onExecute, + 'onExit': function (p_code) { + cleanup(); // We always need to call the cleanup callback to free memory. + if (typeof (onExit) === 'function') { + onExit(p_code); + } + }, + }; + }; + return new Config(initConfig); +}; + +/** + * Projects exported for the Web expose the :js:class:`Engine` class to the JavaScript environment, that allows + * fine control over the engine's start-up process. + * + * This API is built in an asynchronous manner and requires basic understanding + * of `Promises <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises>`__. + * + * @module Engine + * @header Web export JavaScript reference + */ +const Engine = (function () { + const preloader = new Preloader(); + + let loadPromise = null; + let loadPath = ''; + let initPromise = null; + + /** + * @classdesc The ``Engine`` class provides methods for loading and starting exported projects on the Web. For default export + * settings, this is already part of the exported HTML page. To understand practical use of the ``Engine`` class, + * see :ref:`Custom HTML page for Web export <doc_customizing_html5_shell>`. + * + * @description Create a new Engine instance with the given configuration. + * + * @global + * @constructor + * @param {EngineConfig} initConfig The initial config for this instance. + */ + function Engine(initConfig) { // eslint-disable-line no-shadow + this.config = new InternalConfig(initConfig); + this.rtenv = null; + } + + /** + * Load the engine from the specified base path. + * + * @param {string} basePath Base path of the engine to load. + * @param {number=} [size=0] The file size if known. + * @returns {Promise} A Promise that resolves once the engine is loaded. + * + * @function Engine.load + */ + Engine.load = function (basePath, size) { + if (loadPromise == null) { + loadPath = basePath; + loadPromise = preloader.loadPromise(`${loadPath}.wasm`, size, true); + requestAnimationFrame(preloader.animateProgress); + } + return loadPromise; + }; + + /** + * Unload the engine to free memory. + * + * This method will be called automatically depending on the configuration. See :js:attr:`unloadAfterInit`. + * + * @function Engine.unload + */ + Engine.unload = function () { + loadPromise = null; + }; + + /** + * Safe Engine constructor, creates a new prototype for every new instance to avoid prototype pollution. + * @ignore + * @constructor + */ + function SafeEngine(initConfig) { + const proto = /** @lends Engine.prototype */ { + /** + * Initialize the engine instance. Optionally, pass the base path to the engine to load it, + * if it hasn't been loaded yet. See :js:meth:`Engine.load`. + * + * @param {string=} basePath Base path of the engine to load. + * @return {Promise} A ``Promise`` that resolves once the engine is loaded and initialized. + */ + init: function (basePath) { + if (initPromise) { + return initPromise; + } + if (loadPromise == null) { + if (!basePath) { + initPromise = Promise.reject(new Error('A base path must be provided when calling `init` and the engine is not loaded.')); + return initPromise; + } + Engine.load(basePath, this.config.fileSizes[`${basePath}.wasm`]); + } + const me = this; + function doInit(promise) { + // Care! Promise chaining is bogus with old emscripten versions. + // This caused a regression with the Mono build (which uses an older emscripten version). + // Make sure to test that when refactoring. + return new Promise(function (resolve, reject) { + promise.then(function (response) { + const cloned = new Response(response.clone().body, { 'headers': [['content-type', 'application/wasm']] }); + Godot(me.config.getModuleConfig(loadPath, cloned)).then(function (module) { + const paths = me.config.persistentPaths; + module['initFS'](paths).then(function (err) { + me.rtenv = module; + if (me.config.unloadAfterInit) { + Engine.unload(); + } + resolve(); + }); + }); + }); + }); + } + preloader.setProgressFunc(this.config.onProgress); + initPromise = doInit(loadPromise); + return initPromise; + }, + + /** + * Load a file so it is available in the instance's file system once it runs. Must be called **before** starting the + * instance. + * + * If not provided, the ``path`` is derived from the URL of the loaded file. + * + * @param {string|ArrayBuffer} file The file to preload. + * + * If a ``string`` the file will be loaded from that path. + * + * If an ``ArrayBuffer`` or a view on one, the buffer will used as the content of the file. + * + * @param {string=} path Path by which the file will be accessible. Required, if ``file`` is not a string. + * + * @returns {Promise} A Promise that resolves once the file is loaded. + */ + preloadFile: function (file, path) { + return preloader.preload(file, path, this.config.fileSizes[file]); + }, + + /** + * Start the engine instance using the given override configuration (if any). + * :js:meth:`startGame <Engine.prototype.startGame>` can be used in typical cases instead. + * + * This will initialize the instance if it is not initialized. For manual initialization, see :js:meth:`init <Engine.prototype.init>`. + * The engine must be loaded beforehand. + * + * Fails if a canvas cannot be found on the page, or not specified in the configuration. + * + * @param {EngineConfig} override An optional configuration override. + * @return {Promise} Promise that resolves once the engine started. + */ + start: function (override) { + this.config.update(override); + const me = this; + return me.init().then(function () { + if (!me.rtenv) { + return Promise.reject(new Error('The engine must be initialized before it can be started')); + } + + let config = {}; + try { + config = me.config.getGodotConfig(function () { + me.rtenv = null; + }); + } catch (e) { + return Promise.reject(e); + } + // Godot configuration. + me.rtenv['initConfig'](config); + + // Preload GDExtension libraries. + if (me.config.gdextensionLibs.length > 0 && !me.rtenv['loadDynamicLibrary']) { + return Promise.reject(new Error('GDExtension libraries are not supported by this engine version. ' + + 'Enable "Extensions Support" for your export preset and/or build your custom template with "dlink_enabled=yes".')); + } + return new Promise(function (resolve, reject) { + for (const file of preloader.preloadedFiles) { + me.rtenv['copyToFS'](file.path, file.buffer); + } + preloader.preloadedFiles.length = 0; // Clear memory + me.rtenv['callMain'](me.config.args); + initPromise = null; + me.installServiceWorker(); + resolve(); + }); + }); + }, + + /** + * Start the game instance using the given configuration override (if any). + * + * This will initialize the instance if it is not initialized. For manual initialization, see :js:meth:`init <Engine.prototype.init>`. + * + * This will load the engine if it is not loaded, and preload the main pck. + * + * This method expects the initial config (or the override) to have both the :js:attr:`executable` and :js:attr:`mainPack` + * properties set (normally done by the editor during export). + * + * @param {EngineConfig} override An optional configuration override. + * @return {Promise} Promise that resolves once the game started. + */ + startGame: function (override) { + this.config.update(override); + // Add main-pack argument. + const exe = this.config.executable; + const pack = this.config.mainPack || `${exe}.pck`; + this.config.args = ['--main-pack', pack].concat(this.config.args); + // Start and init with execName as loadPath if not inited. + const me = this; + return Promise.all([ + this.init(exe), + this.preloadFile(pack, pack), + ]).then(function () { + return me.start.apply(me); + }); + }, + + /** + * Create a file at the specified ``path`` with the passed as ``buffer`` in the instance's file system. + * + * @param {string} path The location where the file will be created. + * @param {ArrayBuffer} buffer The content of the file. + */ + copyToFS: function (path, buffer) { + if (this.rtenv == null) { + throw new Error('Engine must be inited before copying files'); + } + this.rtenv['copyToFS'](path, buffer); + }, + + /** + * Request that the current instance quit. + * + * This is akin the user pressing the close button in the window manager, and will + * have no effect if the engine has crashed, or is stuck in a loop. + * + */ + requestQuit: function () { + if (this.rtenv) { + this.rtenv['request_quit'](); + } + }, + + /** + * Install the progressive-web app service worker. + * @returns {Promise} The service worker registration promise. + */ + installServiceWorker: function () { + if (this.config.serviceWorker && 'serviceWorker' in navigator) { + try { + return navigator.serviceWorker.register(this.config.serviceWorker); + } catch (e) { + return Promise.reject(e); + } + } + return Promise.resolve(); + }, + }; + + Engine.prototype = proto; + // Closure compiler exported instance methods. + Engine.prototype['init'] = Engine.prototype.init; + Engine.prototype['preloadFile'] = Engine.prototype.preloadFile; + Engine.prototype['start'] = Engine.prototype.start; + Engine.prototype['startGame'] = Engine.prototype.startGame; + Engine.prototype['copyToFS'] = Engine.prototype.copyToFS; + Engine.prototype['requestQuit'] = Engine.prototype.requestQuit; + Engine.prototype['installServiceWorker'] = Engine.prototype.installServiceWorker; + // Also expose static methods as instance methods + Engine.prototype['load'] = Engine.load; + Engine.prototype['unload'] = Engine.unload; + return new Engine(initConfig); + } + + // Closure compiler exported static methods. + SafeEngine['load'] = Engine.load; + SafeEngine['unload'] = Engine.unload; + + // Feature-detection utilities. + SafeEngine['isWebGLAvailable'] = Features.isWebGLAvailable; + SafeEngine['isFetchAvailable'] = Features.isFetchAvailable; + SafeEngine['isSecureContext'] = Features.isSecureContext; + SafeEngine['isCrossOriginIsolated'] = Features.isCrossOriginIsolated; + SafeEngine['isSharedArrayBufferAvailable'] = Features.isSharedArrayBufferAvailable; + SafeEngine['isAudioWorkletAvailable'] = Features.isAudioWorkletAvailable; + SafeEngine['getMissingFeatures'] = Features.getMissingFeatures; + + return SafeEngine; +}()); +if (typeof window !== 'undefined') { + window['Engine'] = Engine; +}
A
games/pac-survivors/index.png.import
@@ -0,0 +1,40 @@
+[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpi1cc2et8rfv" +path="res://.godot/imported/index.png-de14850a4c2320eaddca8799ea52db2b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://export/index.png" +dest_files=["res://.godot/imported/index.png-de14850a4c2320eaddca8799ea52db2b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1
A
games/wick-dodge/index.html
@@ -0,0 +1,1126 @@
+<html><head> +<title>PICO-8 Cartridge</title> +<meta name="viewport" content="width=device-width, user-scalable=no"> +<script type="text/javascript"> + + // Default shell for PICO-8 0.2.6 (includes @weeble's gamepad mod 1.0) + + // options + + // fullscreen, sound, close button at top when playing on touchscreen + var p8_allow_mobile_menu = true; + + // p8_autoplay true to boot the cartridge automatically after page load when possible + // if the browser can not create an audio context outside of a user gesture (e.g. on iOS), p8_autoplay has no effect + var p8_autoplay = false; + + // When pico8_state is defined, PICO-8 will set .is_paused, .sound_volume and .frame_number each frame + // (used for determining button icons) + var pico8_state = []; + + // When pico8_buttons is defined, PICO-8 reads each int as a bitfield holding that player's button states + // 0x1 left, 0x2 right, 0x4 up, 0x8 right, 0x10 O, 0x20 X, 0x40 menu + // (used by p8_update_gamepads) + var pico8_buttons = [0, 0, 0, 0, 0, 0, 0, 0]; // max 8 players + + // When pico8_mouse is defined, PICO-8 reads the 3 integers as X, Y and a bitfield for buttons: 0x1 LMB, 0x2 RMB + var pico8_mouse = []; + + // used to display number of detected joysticks + var pico8_gamepads = {}; + pico8_gamepads.count = 0; + + // When pico8_gpio is defined, reading and writing to gpio pins will read and write to these values + var pico8_gpio = new Array(128); + + // When pico8_audio_context context is defined, the html shell (this file) is responsible for creating and managing it. + // This makes satisfying browser requirements easier -- e.g. initialising audio from a short script in response to a user action. + // Otherwise PICO-8 will try to create and use its own context. + + var pico8_audio_context; + + + // menu button and controller graphics + p8_gfx_dat={ + "p8b_pause1": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAOUlEQVRIx2NgGPbg/8cX/0F46FtAM4vobgHVLRowC6hm0YBbQLFFoxaM4FQ0dHPy0C1Nh26NNugBAAnizNiMfvbGAAAAAElFTkSuQmCC", +"p8b_controls":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAQ0lEQVRIx2NgGAXEgP8fX/ynBaap4XBLhqcF1IyfYWQBrZLz0LEAlzqqxQFVLcAmT3MLqJqTaW7B4CqLaF4fjIIBBwBL/B2vqtPVIwAAAABJRU5ErkJggg==", +"p8b_full":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAN0lEQVRIx2NgGPLg/8cX/2mJ6WcBrUJm4CwgOSgGrQVEB8WoBaMWDGMLhm5OHnql6dCt0YY8AAA9oZm+9Z9xQAAAAABJRU5ErkJggg==", +"p8b_pause0":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAKUlEQVRIx2NgGHbg/8cX/7FhctWNWjBqwagFoxaMWjBqwagF5Fkw5AAAPaGZvsIUtXUAAAAASUVORK5CYII=", +"p8b_sound0":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAANklEQVRIx2NgGDHg/8cX/5Hx0LEA3cChYwEugwavBcRG4qgFoxYMZwuGfk4efqXp8KnRBj0AAMz7cLDnG4FeAAAAAElFTkSuQmCC", +"p8b_sound1":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAPUlEQVRIx2NgGDHg/8cX/5Hx0LEA3cChYwEugwhZQLQDqG4BsZFIKMhGLRi1YChbMPRz8vArTYdPjTboAQCSVgpXUWQAMAAAAABJRU5ErkJggg==", +"p8b_close":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAU0lEQVRIx2NkoDFgpJsF/z+++I8iwS9BkuW49A+cBcRaREgf/Swg1SJi1dHfAkIG4EyOOIJy4Cwg1iJCiWDUAvItGLqpaOjm5KFfmg79Gm3ItioAl+mAGVYIZUUAAAAASUVORK5CYII=", + +"controls_left_panel":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAEI0lEQVR42u3dMU7DQBCG0Tjam9DTcP8jpEmfswS5iHBhAsLxev/hvQY6pGXyZRTQ+nQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHqbHEEtl+vt7hS+fLy/mXHBQqxEi/6aI/AiFW9SnB2BWDkDBAtAsADBAhAsAMECBAtAsAAECxAsAMECECxAsAAEC0CwONJ8tYvrXRAsImK19j0IFsPGSrQQLCJiNV+et7xAT7QQLIaN1dr3ooVgMWysRAvBIipWooVgERUr0UKwiIqVaCFYRMVKtBAsomIlWggWUbESLQSLqFiJFoJFVKxEC8EiKlaihWARFSvRQrDYJSSVfhaCBSBYAIIFCBbAHpoj4Bl/scOGBWDD4lX8iwE2LADBAgQLQLAABAsQLADBAhAsQLAABAtAsADBAhAsAMECBAtAsAAECxAsAMECECxAsAAECxAsAMECECxAsMh1ud7uTsHZVDcZyFo8Yt5sVJ6NyUAaSNEyIymaXwZepIKd4mwoQbAFC0CwAMECECwAwQIEC0CwAAQLECwAwQIQLECwAAQLQLAAwQI4UHME2/10QZq7usyBObBhRQwpmBUb1nADuPbuaUD/p2ezMH+1admwhosVfBcxb2SCJVaIlmAhVoiWYIkVoiVagiVWiJZgiZVYIVqCJVaIlmgJllghWoIlViBagiVWiJZoCZZYIVqCJVYgWoIlViBaggUIlnc0sPELlmghVmIlWKKFWAmWaIFYCZZoIVYIlmghVoIlWiBWgiVaiJVgIVqIlWCJFoiVYIkWYiVYiBZiJViihViJ1XbNEWyL1mMQRYvfvIGJlQ1rmE0LzIoNyyBiDrBhAYIFIFiAYAEIFoBgAYIFIFgAggUIFoBgAQgWIFgAggUgWIBgDc+Nn1D/tdH8YupwgZy5qG4ykKIlVmZDsDjshSlazqQqH7p793Q2CBaAYAGCBSBYAIIFCBaAYAEIFiBYAIIFIFiAYAEIFoBgAYIFIFgAggUIFoBgAQgWIFgAggUgWIBgAQgWwENzBKxZPub9CJ7WjA0LsGFRV+9N5+jNDhsWgGABggUgWACCxW56fgjuA3cEiz9Z/nWwR0iWP8P/YCFYDBstsUKwiIiWWCFYRERLrBAsIqIlVggWEdESKwSLiGiJFYJFRLTECsEiIlpihWARES2xQrCIiJZYIVhEREusECwioiVWCBYx0RIrBIuoaIkVr+YhFHTZtMCGBQgWgGABCBYgWACCBSBYgGABCBaAYAGCBSBYAIIFCBbj2uOR8s6AEbhexgsWYri3SKhKczcXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA2n+e0UMDzh3yTAAAAAElFTkSuQmCC", + + +"controls_right_panel":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAFeCAYAAAA/lyK/AAAKHklEQVR42u3dAZKaWBAGYE3tvfBmMCfDnGzWJLhLHHBGBt7rhu+rSiWbbAk8p3+7UeF0AgAAAAAAAAAAAOAQzpaAzN5vDlOsNwILhJXQSuIfP/YoZMGcxQ9LgLByfAILQGABAgtAYAEILEBgAQgsAIEFCCwAgQUgsACBBSCwAAQWILAABBYst/cL3LmA3/9ccRRFTRquZIigylKsrjwKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMZ0tAXz0/v7eLi6q8/nNCgos2CKYmttvl+E/uw02cX/M6y3IflpxgQVLu6fuScC8HDIP4ff08XVhwNMwuf3q3z9qvzP+fTUgh1+P+iHkAP4Li6mQairtTzO3T54tEFRhu5mZrk9wwYGDqo0+ds10XYILjhRUjgOI2J30ezqRvcdjAmH1dzeyu6KeCC7dFiQt5sMU8mMwe/YhV9cx1jhuQKehswRWCKvm4GvRCC3I0VUYhT6GlvNaIKyEFiCshBYIK6EltKBuAQorawYKz9oBaxWct+uXraGPf0ChYuudh7GOkKkzUGTrhpZOFTYcBY0x1hR0A7pWQFF5MYDDFJSxpdBoaDVgp93Vk3sJzmmjdjF76rLc+Zmq3dXvH8KbKCF1+nPn5svDP12HX1Om/v9fukh3d4621pC1u2oD7cv4+vDtwscJeZ/BSOsNKbur2udVtrqlVtT7DDqXBQlf7aduo1UoFPsjrzvorpaFVdGbOUwEZHPEtYeMYdXU6jZqXzcqQmiN9sHHSOCFsaQpvN0mSIdT9WoKo3UwFkLEkSTaZWtqh6exEIK+uke9xta40zpKlwvGwc+32Qf+NH2VfTMWQsBRJMMXq2t9bcZYCF8rkrZ0UUYefWp9Ofke5tl+hn4oI0oVSOnOZfjjr+/0/Yy6LsO+XWusUa1tQorAKjwOphp5KnVZzmNB7YLM+BWUGvvsPBY8L45eIc7uc/FvANxP+GdaJ+ewKOm602192+hc1sUaCSwqjzsVtnVNuFTX0utVY3sCiyxdxNset5V1nzOukcBibzrHsF8CC6EVcCxEYIHAElgAAgtAYAECC0BgAQgsiOdiCQQWx9IJLIEFwsoxCCxYW8YL07mYnsDiYAU5+kJvxtHq8nAMAhIqhVWxq2m6gN/XA8sF/OCTDqKALmEHcV+b6w6fD0jZYbkJRaD9zdiJ6rAopSu8vWuWLmt8S7IDPC+QooNo3Uh1ch+r3kjViXd4HiBthaJ0q/qZtfFTCZ90PJUCoQ+4HtX2zT0J4esdT1Nwm81oNGwDrsV7hW03xkEIWijRQuthf5oK22+jn9uDw46FEUJiqrOqtR/GQUjw6v4QWjXOG/UBwso4CAsKpq+8/WLBMWyzD9Lh9cZBSDSSTARIv+G22ppdnXEQ1iviNsh+rHpCfgjETR57D+sOuqx1g6tfUtTD4/TRgmpP3dVZ6VArJE5/vsfWlbr+0xf36XL6eBWD62n+KgpT//8p0nFFXW+BRbou6/cP4U3QQD2dvv7l4G44ljdrDTvtsqJ/128n69w7dwUrvfJ7m33T9W28Mwi6LN0VKCq8GECSscVoaE1BN6BrBTYqMqFlHSHVGKMz+F6nahSEwqGl4KwdKDxrBqxZgL0CXBRWzluB0BJWgNASViC0hBVQr0C9XT8dVj7+AQlCqz/oGvTCCnJ2F4fpto563KDT0FkCtQt5b13HxO3IjICws6JOH1x7PCZgvttK243s5TiAhQUfvTuJeuNVoF5whRurJkY/QQWC64NqXddMNyWogE+7mXt4tRtvu50JKSfTX+QusByy6xr+2E388/jvrufz+ecroXj6+7b1s4+f+XbxAmv/hfH6E+MHuljnNQqZboNNdEvCD4Hlhx4vNgLLWGGsAEJ2Uk7cAuG7KW+NA9mCyocPgfBB5esdQPygchxAxO7EJUqAVN2Ii8ABYYvZZXaBFF2HGxkYEUGnobME1g4rN+MUWpCiqzAKndzuHISV0AKEldACYYXQgmAFKKysGSg8awesVXDerl+2hj7+AYWKrXcexjpCps5Aka0bWjpV2HAUNMZYU9AN6FoBReXFAA5TUMaWQqOh1YBA3dWeinLNY9FlwYrdVdTH28u67GltyOtH9u5q+GO31mOeb7J3Wvd9vx/LirqHdQcivOJn7Sa23m9dFjqsIN1V9k5rw85KlwUZXumzdBQl91OXhQ7rtYK5f3zhuvW2MnRahTqrsevD8wAC64nLluNgptCqEFbjdb8oIQg6kkQbhWruj7EQHdZr42BXetuROq1KndWHLstYiMD62jh4rbHxCKEVIKzG628shOijiLHUWIgO66VxpKYanVaQzirU84DAitxdhfqwYsnQChhWYZ8XBFYot5p9O1JoRQ2rSM8DROywwp4z2Wrfop8nch4LHdZz16Bd3+qdVuQxMPrzgcBSIAVDK0lYCSwE1kwBpzixu0ZoJQqrdM8PAqt0ILwl2MfFoZUtrJx4R2DtwJLQythZgcA6YGgJKxBYKUJLWIHAShFawgoEVorQElYgsFKElrACgZUmtIQVCKzwpkZCQGCFDavzQGiBwAofVo8jodACgRU6rIQWCKxUYSW0YOeBlemqAK98dCFraLlKAwJruqDfkhXyy5+zytxpuWoDAmvaZY9hlTi0LsoIZoIgeiGvtY9ZrpXumu7osOZ1e+2skndanVJCYM0HQxtwn1b/bmD00HLCHYH1vIDfghbuZl9kztBpOeEOT8IhUvGW2p+I54qcv0KH9bluKJZmz51V9E5rtP6dMkJgzbsOv1+OElZBQ+vy8HwAEUeRo2/fOIgOK8lYGOFKobU7LeMgvFgwwwt8f+Suotb+/Fr3YdONn0YIWKxRR6Aa+2UcxEi4fCxsSxRo7TEwyng4Wm/jIER7pfedPt0VOqwUXVamW3GV6LR0VxD0FT9rJ7Hlfuuu0GGt12X1axZmls6qVKc1Wl/dFazxyr/G2+x76SLWPI7Rx0h0V7BCQbVrfS5rT0W5YmDdP3flcjKgqI7xYgBMjC0+gW1NQTegawU2KjKhZR0h1RijM/hep2oUhMKhpeCsHSg8awasWYC9AlwUVs5bgdASVoDQElYgtIQVUK9AvV0/HVY+/gEJQqs/6Br0wgpydheH6baOetyg09BZArULeW9dx9BVGQFhx0WdPrj2eEzAfLeVthvZy3EACws+encydFSCCgRX3LFqYvQTVCC4PqjWdc10U4IK+LSbuYdXu/G225mQcjKdwzhbguUBMvyxm/jn8d9dz+fzz1dC8fbbZeax/vq72+O+eSYQWLzceY1CpttgE92S8AOBxZIu7PUnRvcEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwwL/cvBIh09+hJAAAAABJRU5ErkJggg==", + + }; + + + // added 0.2.1: work-around for iOS/Safari running from an iFrame (e.g. from itch.io page): + // touch events only register after adding dummy listeners on document. + + document.addEventListener('touchstart', {}); + document.addEventListener('touchmove', {}); + document.addEventListener('touchend', {}); + + + // -------------------------------------------------------------------------------------------------------------------------------- + // pico-8 0.2.2: allow dropping files + var p8_dropped_cart = null; + var p8_dropped_cart_name = ""; + function p8_drop_file(e) + { + // console.log("@@ dropping file..."); + + e.stopPropagation(); + e.preventDefault(); + + if (e.dataTransfer && e.dataTransfer.files && e.dataTransfer.files[0]) + { + // read from file + reader = new FileReader(); + reader.onload = function (event) + { + p8_dropped_cart_name = 'untitled.p8'; + if (typeof e.dataTransfer.files[0].name !== 'undefined') p8_dropped_cart_name = e.dataTransfer.files[0].name; + if (typeof e.dataTransfer.files[0].fileName !== 'undefined') p8_dropped_cart_name = e.dataTransfer.files[0].fileName; + p8_dropped_cart = reader.result; + // data:image/png;base64 + e.stopPropagation(); + e.preventDefault(); + codo_command = 9; // read directly from p8_dropped_cart with libb64 decoder + }; + reader.readAsDataURL(e.dataTransfer.files[0]); + + } + else + { + // read from url (or data url) + txt = e.dataTransfer.getData('Text'); + if (txt){ + p8_dropped_cart_name = "untitled.p8.png"; + p8_dropped_cart = txt; + codo_command = 9; + } + } + } + function nop(evt) { + evt.stopPropagation(); + evt.preventDefault(); + } + function dragover(evt) { + evt.stopPropagation(); + evt.preventDefault(); + Module.pico8DragOver(); + } + function dragstop(evt) { + evt.stopPropagation(); + evt.preventDefault(); + Module.pico8DragStop(); + } + + // download (pico-8 0.2.4d web exports can save a .wav file) + function download_browser_file(filename, contents) + { + var element = document.createElement('a'); + if (filename.substr(filename.length - 7) == ".p8.png") + element.setAttribute('href', 'data:image/png;base64,' + encodeURIComponent(contents)); + else if (filename.substr(filename.length - 4) == ".wav") + element.setAttribute('href', 'data:audio/x-wav;base64,' + encodeURIComponent(contents)); + else + element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(contents)); + element.setAttribute('download', filename); + element.style.display = 'none'; + document.body.appendChild(element); + element.click(); + document.body.removeChild(element); + } + // -------------------------------------------------------------------------------------------------------------------------------- + + + var p8_buttons_hash = -1; + function p8_update_button_icons() + { + // buttons only appear when running + if (!p8_is_running) + { + requestAnimationFrame(p8_update_button_icons); + return; + } + var is_fullscreen=(document.fullscreenElement || document.mozFullScreenElement || document.webkitIsFullScreen || document.msFullscreenElement); + + // hash based on: pico8_state.sound_volume pico8_state.is_paused bottom_margin left is_fullscreen p8_touch_detected + var hash = 0; + hash = pico8_state.sound_volume; + if (pico8_state.is_paused) hash += 0x100; + if (p8_touch_detected) hash += 0x200; + if (is_fullscreen) hash += 0x400; + + if (p8_buttons_hash == hash) + { + requestAnimationFrame(p8_update_button_icons); + return; + } + + p8_buttons_hash = hash; + // console.log("@@ updating button icons"); + + els = document.getElementsByClassName('p8_menu_button'); + for (i = 0; i < els.length; i++) + { + el = els[i]; + index = el.id; + if (index == 'p8b_sound') index += (pico8_state.sound_volume == 0 ? "0" : "1"); // 1 if undefined + if (index == 'p8b_pause') index += (pico8_state.is_paused > 0 ? "1" : "0"); // 0 if undefined + + new_str = '<img width=24 height=24 style="pointer-events:none" src="'+p8_gfx_dat[index]+'">'; + if (el.innerHTML != new_str) + el.innerHTML = new_str; + + + + + // hide all buttons for touch mode (can pause with menu buttons) + + var is_visible = p8_is_running; + + if ((!p8_touch_detected || !p8_allow_mobile_menu) && el.parentElement.id == "p8_menu_buttons_touch") + is_visible = false; + + if (p8_touch_detected && el.parentElement.id == "p8_menu_buttons") + is_visible = false; + + if (is_fullscreen) + is_visible = false; + + if (is_visible) + el.style.display=""; + else + el.style.display="none"; + } + requestAnimationFrame(p8_update_button_icons); + } + + + + function abs(x) + { + return x < 0 ? -x : x; + } + + // step 0 down 1 drag 2 up (not used) + function pico8_buttons_event(e, step) + { + if (!p8_is_running) return; + + pico8_buttons[0] = 0; + + if (step == 2 && typeof(pico8_mouse) !== 'undefined') + { + pico8_mouse[2] = 0; + } + + var num = 0; + if (e.touches) num = e.touches.length; + + if (num == 0 && typeof(pico8_mouse) !== 'undefined') + { + // no active touches: release mouse button from anywhere on page. (maybe redundant? but just in case) + pico8_mouse[2] = 0; + } + + + for (var i = 0; i < num; i++) + { + var touch = e.touches[i]; + var x = touch.clientX; + var y = touch.clientY; + var w = window.innerWidth; + var h = window.innerHeight; + + var r = Math.min(w,h) / 12; + if (r > 40) r = 40; + + // mouse (0.1.12d) + + let canvas = document.getElementById("canvas"); + if (p8_touch_detected) + if (typeof(pico8_mouse) !== 'undefined') + if (canvas) + { + var rect = canvas.getBoundingClientRect(); + //console.log(rect.top, rect.right, rect.bottom, rect.left, x, y); + + if (x >= rect.left && x < rect.right && y >= rect.top && y < rect.bottom) + { + pico8_mouse = [ + Math.floor((x - rect.left) * 128 / (rect.right - rect.left)), + Math.floor((y - rect.top) * 128 / (rect.bottom - rect.top)), + step < 2 ? 1 : 0 + ]; + // return; // commented -- blocks overlapping buttons + }else + { + pico8_mouse[2] = 0; + } + } + + + // buttons + + b = 0; + + if (y < h - r*8) + { + // no controller buttons up here; includes canvas and menu buttons at top in touch mode + } + else + { + e.preventDefault(); + + if ((y < h - r*6) && y > (h - r*8)) + { + // menu button: half as high as X O button + // stretch across right-hand half above X O buttons + if (x > w - r*3) + b |= 0x40; + } + else if (x < w/2 && x < r*6) + { + // stick + + mask = 0xf; // dpad + var cx = 0 + r*3; + var cy = h - r*3; + + deadzone = r/3; + var dx = x - cx; + var dy = y - cy; + + if (abs(dx) > abs(dy) * 0.6) // horizontal + { + if (dx < -deadzone) b |= 0x1; + if (dx > deadzone) b |= 0x2; + } + if (abs(dy) > abs(dx) * 0.6) // vertical + { + if (dy < -deadzone) b |= 0x4; + if (dy > deadzone) b |= 0x8; + } + } + else if (x > w - r*6) + { + // button; diagonal split from bottom right corner + + mask = 0x30; + + // one or both of [X], [O] + if ( (h-y) > (w-x) * 0.8) b |= 0x10; + if ( (w-x) > (h-y) * 0.8) b |= 0x20; + } + } + + pico8_buttons[0] |= b; + + } + } + + // p8_update_layout_hash is used to decide when to update layout (expensive especially when part of a heavy page) + var p8_update_layout_hash = -1; + var last_windowed_container_height = 512; + var p8_layout_frames = 0; + + function p8_update_layout() + { + var canvas = document.getElementById("canvas"); + var p8_playarea = document.getElementById("p8_playarea"); + var p8_container = document.getElementById("p8_container"); + var p8_frame = document.getElementById("p8_frame"); + var csize = 512; + var margin_top = 0; + var margin_left = 0; + + // page didn't load yet? first call should be after p8_frame is created so that layout doesn't jump around. + if (!canvas || !p8_playarea || !p8_container || !p8_frame) + { + p8_update_layout_hash = -1; + requestAnimationFrame(p8_update_layout); + return; + } + + p8_layout_frames ++; + + // assumes frame doesn't have padding + + var is_fullscreen=(document.fullscreenElement || document.mozFullScreenElement || document.webkitIsFullScreen || document.msFullscreenElement); + var frame_width = p8_frame.offsetWidth; + var frame_height = p8_frame.offsetHeight; + + if (is_fullscreen) + { + // same as window + frame_width = window.innerWidth; + frame_height = window.innerHeight; + } + else{ + // never larger than window // (happens when address bar is down in portraight mode on phone) + frame_width = Math.min(frame_width, window.innerWidth); + frame_height = Math.min(frame_height, window.innerHeight); + } + + // as big as will fit in a frame.. + csize = Math.min(frame_width,frame_height); + + // .. but never more than 2/3 of longest side for touch (e.g. leave space for controls on iPad) + if (p8_touch_detected && p8_is_running) + { + var longest_side = Math.max(window.innerWidth,window.innerHeight); + csize = Math.min(csize, longest_side * 2/3); + } + + // pixel perfect: quantize to closest multiple of 128 + // only when large display (desktop) + if (frame_width >= 512 && frame_height >= 512) + { + csize = (csize+1) & ~0x7f; + } + + // csize should never be higher than parent frame + // (otherwise stretched large when fullscreen and then return) + if (!is_fullscreen && p8_frame) + csize = Math.min(csize, last_windowed_container_height); // p8_frame_0 parent + + + if (is_fullscreen) + { + // always center horizontally + margin_left = (frame_width - csize)/2; + + if (p8_touch_detected) + { + if (window.innerWidth < window.innerHeight) + { + // portrait: keep at y=40 (avoid rounded top corners / camera nub thing etc.) + margin_top = Math.min(40, frame_height - csize); + } + else + { + // landscape: put a little above vertical center + margin_top = (frame_height - csize)/4; + } + } + else{ + // non-touch: center vertically + margin_top = (frame_height - csize)/2; + } + } + + // skip if relevant state has not changed + + var update_hash = csize + margin_top * 1000.3 + margin_left * 0.001 + frame_width * 333.33 + frame_height * 772.15134; + if (is_fullscreen) update_hash += 0.1237; + + // unexpected things can happen in the first few seconds, so just keep re-calculating layout. wasm version breaks layout otherwise. + // also: bonus refresh at 5, 8 seconds just in case ._. + if (p8_layout_frames < 180 || p8_layout_frames == 60*5 || p8_layout_frames == 60*8 ) + update_hash = p8_layout_frames; + + if (!is_fullscreen) // fullscreen: update every frame for safety. should be cheap! + if (!p8_touch_detected) // mobile: update every frame because nothing can be trusted + if (p8_update_layout_hash == update_hash) + { + //console.log("p8_update_layout(): skipping"); + requestAnimationFrame(p8_update_layout); + return; + } + p8_update_layout_hash = update_hash; + + // record this for returning to original size after fullscreen pushes out container height (argh) + if (!is_fullscreen && p8_frame) + last_windowed_container_height = p8_frame.parentNode.parentNode.offsetHeight; + + + // mobile in portrait mode: put screen at top (w / a little extra space for fullscreen button if needed) + // (don't cart too about buttons overlapping screen) + if (p8_touch_detected && p8_is_running && document.body.clientWidth < document.body.clientHeight) + p8_playarea.style.marginTop = p8_allow_mobile_menu ? 32 : 8; + else if (p8_touch_detected && p8_is_running) // landscape: slightly above vertical center (only relevant for iPad / highres devices) + p8_playarea.style.marginTop = (document.body.clientHeight - csize) / 4; + else + p8_playarea.style.marginTop = ""; + + canvas.style.width = csize; + canvas.style.height = csize; + + // to do: this should just happen from css layout + canvas.style.marginLeft = margin_left; + canvas.style.marginTop = margin_top; + + p8_container.style.width = csize; + p8_container.style.height = csize; + + // set menu buttons position to bottom right + el = document.getElementById("p8_menu_buttons"); + el.style.marginTop = csize - el.offsetHeight; + + if (p8_touch_detected && p8_is_running) + { + // turn off pointer events to prevent double-tap zoom etc (works on Android) + // don't want this for desktop because breaks mouse input & click-to-focus when using codo_textarea + canvas.style.pointerEvents = "none"; + + p8_container.style.marginTop = "0px"; + + // buttons + + // same as touch event handling + var w = window.innerWidth; + var h = window.innerHeight; + var r = Math.min(w,h) / 12; + + if (r > 40) r = 40; + + el = document.getElementById("controls_right_panel"); + el.style.left = w-r*6; + el.style.top = h-r*7; + el.style.width = r*6; + el.style.height = r*7; + if (el.getAttribute("src") != p8_gfx_dat["controls_right_panel"]) // optimisation: avoid reload? (browser should handle though) + el.setAttribute("src", p8_gfx_dat["controls_right_panel"]); + + el = document.getElementById("controls_left_panel"); + el.style.left = 0; + el.style.top = h-r*6; + el.style.width = r*6; + el.style.height = r*6; + if (el.getAttribute("src") != p8_gfx_dat["controls_left_panel"]) // optimisation: avoid reload? (browser should handle though) + el.setAttribute("src", p8_gfx_dat["controls_left_panel"]); + + // scroll to cart (commented; was a failed attempt to prevent scroll-on-drag on some browsers) + // p8_frame.scrollIntoView(true); + + document.getElementById("touch_controls_gfx").style.display="table"; + document.getElementById("touch_controls_background").style.display="table"; + + } + else{ + document.getElementById("touch_controls_gfx").style.display="none"; + document.getElementById("touch_controls_background").style.display="none"; + } + + if (!p8_is_running) + { + p8_playarea.style.display="none"; + p8_container.style.display="flex"; + p8_container.style.marginTop="auto"; + + el = document.getElementById("p8_start_button"); + if (el) el.style.display="flex"; + } + requestAnimationFrame(p8_update_layout); + } + + + var p8_touch_detected = false; + addEventListener("touchstart", function(event) + { + p8_touch_detected = true; + + // hide codo_textarea -- clipboard support on mobile is not feasible + el = document.getElementById("codo_textarea"); + if (el && el.style.display != "none"){ + el.style.display="none"; + } + + }, {passive: true}); + + function p8_create_audio_context() + { + if (pico8_audio_context) + { + try { + pico8_audio_context.resume(); + } + catch(err) { + console.log("** pico8_audio_context.resume() failed"); + } + return; + } + + var webAudioAPI = window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.oAudioContext || window.msAudioContext; + if (webAudioAPI) + { + pico8_audio_context = new webAudioAPI; + + // wake up iOS + if (pico8_audio_context) + { + try { + var dummy_source_sfx = pico8_audio_context.createBufferSource(); + dummy_source_sfx.buffer = pico8_audio_context.createBuffer(1, 1, 22050); // dummy + dummy_source_sfx.connect(pico8_audio_context.destination); + dummy_source_sfx.start(1, 0.25); // gives InvalidStateError -- why? hasn't been played before + //dummy_source_sfx.noteOn(0); // deleteme + } + catch(err) { + console.log("** dummy_source_sfx.start(1, 0.25) failed"); + } + } + } + } + + function p8_close_cart() + { + // just reload page! used for touch buttons -- hard to roll back state + window.location.hash = ""; // triggers reload + } + + var p8_is_running = false; + var p8_script = null; + var Module = null; + function p8_run_cart() + { + if (p8_is_running) return; + p8_is_running = true; + + // touch: hide everything except p8_frame_0 + if (p8_touch_detected) + { + el = document.getElementById("body_0"); + el2 = document.getElementById("p8_frame_0"); + if (el && el2) + { + el.style.display="none"; + el.parentNode.appendChild(el2); + } + } + + // create audio context and wake it up (for iOS -- needs happen inside touch event) + p8_create_audio_context(); + + // show touch elements + els = document.getElementsByClassName('p8_controller_area'); + for (i = 0; i < els.length; i++) + els[i].style.display=""; + + + // install touch events. These also serve to block scrolling / pinching / zooming on phones when p8_is_running + // moved event.preventDefault(); calls into pico8_buttons_event() (want to let top buttons pass through) + addEventListener("touchstart", function(event){ pico8_buttons_event(event, 0); }, {passive: false}); + addEventListener("touchmove", function(event){ pico8_buttons_event(event, 1); }, {passive: false}); + addEventListener("touchend", function(event){ pico8_buttons_event(event, 2); }, {passive: false}); + + + // load and run script + e = document.createElement("script"); + p8_script = e; + e.onload = function(){ + + // show canvas / menu buttons only after loading + el = document.getElementById("p8_playarea"); + if (el) el.style.display="table"; + + if (typeof(p8_update_layout_hash) !== 'undefined') + p8_update_layout_hash = -77; + if (typeof(p8_buttons_hash) !== 'undefined') + p8_buttons_hash = -33; + + + } + e.type = "application/javascript"; + e.src = "wick-dodge.js"; + e.id = "e_script"; + + document.body.appendChild(e); // load and run + + // hide start button and show canvas / menu buttons. hide start button + el = document.getElementById("p8_start_button"); + if (el) el.style.display="none"; + + // add #playing for touchscreen devices (allows back button to close) + // X button can also be used to trigger this + if (p8_touch_detected) + { + window.location.hash = "#playing"; + window.onhashchange = function() + { + if (window.location.hash.search("playing") < 0) + window.location.reload(); + } + } + + // install drag&drop listeners + { + let canvas = document.getElementById("canvas"); + if (canvas) + { + canvas.addEventListener('dragenter', dragover, false); + canvas.addEventListener('dragover', dragover, false); + canvas.addEventListener('dragleave', dragstop, false); + canvas.addEventListener('drop', nop, false); + canvas.addEventListener('drop', p8_drop_file, false); + } + } + } + + + // Gamepad code + + var P8_BUTTON_O = {action:'button', code: 0x10}; + var P8_BUTTON_X = {action:'button', code: 0x20}; + var P8_DPAD_LEFT = {action:'button', code: 0x1}; + var P8_DPAD_RIGHT = {action:'button', code: 0x2}; + var P8_DPAD_UP = {action:'button', code: 0x4}; + var P8_DPAD_DOWN = {action:'button', code: 0x8}; + var P8_MENU = {action:'menu'}; + var P8_NO_ACTION = {action:'none'}; + + var P8_BUTTON_MAPPING = [ + // ref: https://w3c.github.io/gamepad/#remapping + P8_BUTTON_O, // Bottom face button + P8_BUTTON_X, // Right face button + P8_BUTTON_X, // Left face button + P8_BUTTON_O, // Top face button + P8_NO_ACTION, // Near left shoulder button (L1) + P8_NO_ACTION, // Near right shoulder button (R1) + P8_NO_ACTION, // Far left shoulder button (L2) + P8_NO_ACTION, // Far right shoulder button (R2) + P8_MENU, // Left auxiliary button (select) + P8_MENU, // Right auxiliary button (start) + P8_NO_ACTION, // Left stick button + P8_NO_ACTION, // Right stick button + P8_DPAD_UP, // Dpad up + P8_DPAD_DOWN, // Dpad down + P8_DPAD_LEFT, // Dpad left + P8_DPAD_RIGHT, // Dpad right + ]; + + // Track which player is controller by each gamepad. Gamepad index i controls the + // player with index pico8_gamepads_mapping[i]. Gamepads with null player are + // currently unassigned - they get assigned to a player when a button is pressed. + var pico8_gamepads_mapping = []; + + function p8_unassign_gamepad(gamepad_index) { + if (pico8_gamepads_mapping[gamepad_index] == null) { + return; + } + pico8_buttons[pico8_gamepads_mapping[gamepad_index]] = 0; + pico8_gamepads_mapping[gamepad_index] = null; + } + + + function p8_first_player_without_gamepad(max_players) { + var allocated_players = pico8_gamepads_mapping.filter(function(x) { return x != null; }); + var sorted_players = Array.from(allocated_players).sort(); + for (var desired = 0; desired < sorted_players.length && desired < max_players; ++desired) { + if (desired != sorted_players[desired]) { + return desired; + } + } + if (sorted_players.length < max_players) { + return sorted_players.length; + } + return null; + } + + function p8_assign_gamepad_to_player(gamepad_index, player_index) { + p8_unassign_gamepad(gamepad_index); + pico8_gamepads_mapping[gamepad_index] = player_index; + } + + + + function p8_convert_standard_gamepad_to_button_state(gamepad, axis_threshold, button_threshold) { + // Given a gamepad object, return: + // { + // button_state: the binary encoded Pico 8 button state + // menu_button: true if any menu-mapped button was pressed + // any_button: true if any button was pressed, including d-pad + // buttons and unmapped buttons + // } + if (!gamepad || !gamepad.axes || !gamepad.buttons) { + return { + button_state: 0, + menu_button: false, + any_button: false + }; + } + function button_state_from_axis(axis, low_state, high_state, default_state) { + if (axis && axis < -axis_threshold) return low_state; + if (axis && axis > axis_threshold) return high_state; + return default_state; + } + var axes_actions = [ + button_state_from_axis(gamepad.axes[0], P8_DPAD_LEFT, P8_DPAD_RIGHT, P8_NO_ACTION), + button_state_from_axis(gamepad.axes[1], P8_DPAD_UP, P8_DPAD_DOWN, P8_NO_ACTION), + ]; + + var button_actions = gamepad.buttons.map(function (button, index) { + var pressed = button.value > button_threshold || button.pressed; + if (!pressed) return P8_NO_ACTION; + return P8_BUTTON_MAPPING[index] || P8_NO_ACTION; + }); + + var all_actions = axes_actions.concat(button_actions); + + var menu_button = button_actions.some(function (action) { return action.action == 'menu'; }); + var button_state = (all_actions + .filter(function (a) { return a.action == 'button'; }) + .map(function (a) { return a.code; }) + .reduce(function (result, code) { return result | code; }, 0) + ); + var any_button = gamepad.buttons.some(function (button) { + return button.value > button_threshold || button.pressed; + }); + + any_button |= button_state; //jww: include axes 0,1 as might be first intended action + + return { + button_state, + menu_button, + any_button + }; + } + + // jww: pico-8 0.2.1 version for unmapped gamepads, following p8_convert_standard_gamepad_to_button_state + // axes 0,1 & buttons 0,1,2,3 are reasonably safe. don't try to read dpad. + // menu buttons are unpredictable, but use 6..8 anyway (better to have a weird menu button than none) + + function p8_convert_unmapped_gamepad_to_button_state(gamepad, axis_threshold, button_threshold) { + + if (!gamepad || !gamepad.axes || !gamepad.buttons) { + return { + button_state: 0, + menu_button: false, + any_button: false + }; + } + + var button_state = 0; + + if (gamepad.axes[0] && gamepad.axes[0] < -axis_threshold) button_state |= 0x1; + if (gamepad.axes[0] && gamepad.axes[0] > axis_threshold) button_state |= 0x2; + if (gamepad.axes[1] && gamepad.axes[1] < -axis_threshold) button_state |= 0x4; + if (gamepad.axes[1] && gamepad.axes[1] > axis_threshold) button_state |= 0x8; + + // buttons: first 4 taken to be O/X, 6..8 taken to be menu button + + for (j = 0; j < gamepad.buttons.length; j++) + if (gamepad.buttons[j].value > 0 || gamepad.buttons[j].pressed) + { + if (j < 4) + button_state |= (0x10 << (((j+1)/2)&1)); // 0 1 1 0 -- A,X -> O,X on xbox360 + else if (j >= 6 && j <= 8) + button_state |= 0x40; + } + + var menu_button = button_state & 0x40; + + var any_button = gamepad.buttons.some(function (button) { + return button.value > button_threshold || button.pressed; + }); + + any_button |= button_state; //jww: include axes 0,1 as might be first intended action + + return { + button_state, + menu_button, + any_button + }; + } + + + // gamepad https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API + // (sets bits in pico8_buttons[]) + function p8_update_gamepads() { + var axis_threshold = 0.3; + var button_threshold = 0.5; // Should be unnecessary, we should be able to trust .pressed + var max_players = 8; + var gps = navigator.getGamepads() || navigator.webkitGetGamepads(); + + if (!gps) return; + + // In Chrome, gps is iterable but it's not an array. + gps = Array.from(gps); + + pico8_gamepads.count = gps.length; + while (gps.length > pico8_gamepads_mapping.length) { + pico8_gamepads_mapping.push(null); + } + + var menu_button = false; + var gamepad_states = gps.map(function (gp) { + return (gp && gp.mapping == "standard") ? + p8_convert_standard_gamepad_to_button_state(gp, axis_threshold, button_threshold) : + p8_convert_unmapped_gamepad_to_button_state(gp, axis_threshold, button_threshold); + }); + + // Unassign disconnected gamepads. + // gps.forEach(function (gp, i) { if (gp && !gp.connected) { p8_unassign_gamepad(i); }}); + gps.forEach(function (gp, i) { if (!gp || !gp.connected) { p8_unassign_gamepad(i); }}); // https://www.lexaloffle.com/bbs/?pid=87132#p + + + // Assign unassigned gamepads when any button is pressed. + gamepad_states.forEach(function (state, i) { + if (state.any_button && pico8_gamepads_mapping[i] == null) { + var first_free_player = p8_first_player_without_gamepad(max_players); + p8_assign_gamepad_to_player(i, first_free_player); + } + }); + + // Update pico8_buttons array. + gamepad_states.forEach(function (gamepad_state, i) { + if (pico8_gamepads_mapping[i] != null) { + pico8_buttons[pico8_gamepads_mapping[i]] = gamepad_state.button_state; + } + }); + + // Update menu button. + // Pico 8 only recognises the menu button on the first player, so we + // press it when any gamepad has pressed a button mapped to menu. + if (gamepad_states.some(function (state) { return state.menu_button; })) { + pico8_buttons[0] |= 0x40; + } + + requestAnimationFrame(p8_update_gamepads); + } + requestAnimationFrame(p8_update_gamepads); + + // End of gamepad code + + + // key blocker. prevent browser operations while playing cart so that PICO-8 can use those keys e.g. cursors to scroll, ctrl-r to reload + document.addEventListener('keydown', + function (event) { + event = event || window.event; + if (!p8_is_running) return; + + if (pico8_state.has_focus == 1) + if ([32, 37, 38, 39, 40, 77, 82, 80, 9].indexOf(event.keyCode) > -1) // block only cursors, M R P, tab + if (event.preventDefault) event.preventDefault(); + + },{passive: false}); + + // when using codo_textarea to determine focus, need to explicitly hand focus back when clicking a p8_menu_button + function p8_give_focus() + { + el = (typeof codo_textarea === 'undefined') ? document.getElementById("codo_textarea") : codo_textarea; + if (el) + { + el.focus(); + el.select(); + } + } + + function p8_request_fullscreen() { + + var is_fullscreen=(document.fullscreenElement || document.mozFullScreenElement || document.webkitIsFullScreen || document.msFullscreenElement); + + if (is_fullscreen) + { + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.webkitExitFullscreen) { + document.webkitExitFullscreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.msExitFullscreen) { + document.msExitFullscreen(); + } + return; + } + + var el = document.getElementById("p8_playarea"); + + if ( el.requestFullscreen ) { + el.requestFullscreen(); + } else if ( el.mozRequestFullScreen ) { + el.mozRequestFullScreen(); + } else if ( el.webkitRequestFullScreen ) { + el.webkitRequestFullScreen( Element.ALLOW_KEYBOARD_INPUT ); + } + } + +</script> + +<STYLE TYPE="text/css"> +<!-- +.p8_menu_button{ + opacity:0.3; + padding:4px; + display:table; + width:24px; + height:24px; + float:right; +} + +@media screen and (min-width:512px) { + .p8_menu_button{ + width:24px; margin-left:12px; margin-bottom:8px; + } +} +.p8_menu_button:hover{ + opacity:1.0; + cursor:pointer; +} + +canvas{ + image-rendering: optimizeSpeed; + image-rendering: -moz-crisp-edges; + image-rendering: -webkit-optimize-contrast; + image-rendering: optimize-contrast; + image-rendering: pixelated; + -ms-interpolation-mode: nearest-neighbor; + border: 0px; + cursor: none; +} + + +.p8_start_button{ + cursor:pointer; + background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAIV0lEQVR4Ae2dvW4bRxSFh2s+gGOHCdQsmCKbQkUAFy4II3Af2pDBR9ATuDHcuQ38DvsIhIWAD+CCYUEgDFIISdwwcBOEgpVFesVBMOHszNwzPxwtf6S9Fwti5pDaXd0z9ztt55UoBNf+KuMWsAFsAKyXT8XLp8612ra5XnwQLz4Ya7l1rTcz4LvvnWt9255eW59CiNf36x+8vm9vXV9dF0GtPf6y78/ebfBjOijNZEALh0Ad4S99xxn83nv8QxkAP1s7BLKVejctIsEJ8B7/UAaok+5at7yoJXKt6/Q3DSCIq7naxABX/rCepkcZwM3aQtOjDdDvItf6J+ub6psZoP7m2TtwR9Y31TmEb34Ic23dADk1cbPDtVk5utqN/PP3d0/zqlSfQgi4ZV1XsA1vCmSA+8jL+/7+7kIUp/WnEHjLuqZIM/wnu/NKFB4D3t/V7su1efWLHvZgPQfrDHhTWKORUJ9e/qiub374lbsfiARjAtB3fPwbHgJ0xNcToGLaHQbqdvrC2rK+aWkGEArlVanft1/0+kVvMZ/qC2vLurxwBqDzbSLI/JoiSD7JusVylX3x2T/U23bqDx4+ok2rPSAU6iZMzXKVCSHUS6gF61HZa3qwngAH+vUhcB1/+Ow26/oQGMcfDYHPgEgEcekVQBCxYR3CJIFjKMS6S49ikWEAsiGvSivQ1fGXs0Yfz/piPrWaZiSwfhkIQhSCCBpPZkx8jz4aDpwIQozRDEA2eEKYm+7Sk0I41H1PCC9XGX2t1uqBECZD0E3ID8tztWA9KnvxBJAACCKIgePSkxCEDIhEEJdeAQQRG7J6jzLaTyHWXXoUiwwDkA15VfaLHjz+ctbo41lfzKdW04wE1i8DQYhCEEHjyYyJ79FHw4ETQYgxmgHIBk8I7+affH5x9fbeneqo/vbwzUgK4VD3PSG8XGX0tRrRT84/yoXlwbafex09EMJkCLoJ+WF5rhZb0oUQjy+vzo46O35ush7IXjwBJACCCNrNgMshODvu3KBUSEIQMiASQVx6BRBEbMjqPcpoP4VYd+lRLDIMQDbkVdkvevD4y1mjj2d9MZ9aTTMSWL8MBCEKQQSNJ7PDJO+B6KPhwIkgxBjNAGSDJ4S56S49KYRD3feE8HKV0ddqrR4IYTIE3YT8sDxXC9ajshdPAAmAIIIYOC49CUHIgEgEcekVQBCxIav3KKP9FGLdpUexyDAA2ZBXZb/oweMvZ40+nvXFfGo1zUhg/TIQhCgEETSezBon6c/nv319/NXtSILRcOBEEGKMZgCywRPCzf4zf1/8Ij24BbGcFMKh7ntCeLnK6GvF6ydPnvz/uD//ggl/zfvvWA+EMBmCbkJ+WJ6rRYL+/PTbrd5/L3oge/EEkAAIIqiRgdWP/zbSZS96EoKQAZEIuk4F+XPjKoAgYkNW71FG+yl0TV11XwiRf/7Jg4ePmr3/HvUoFoEQJlHsR9DNised6U4EoSOuGUAoBBF0a0i9JX00HDgRFDAA2eCZAG66S08K4VD3PSHMINL1QAiTIegm5IfluVrsSz85//j23p3q6FDeJ5C9eAJIAMSE8CEM/sn5R6lIDw4BREkIQgZEImi/pQwQQpwdd/b1DmoEAwgiNmT1HmW0n0KHoKumw+7v4H3kCXh8eXX3D/wbJ4sMA5ANeVX2ix48/nLW6GvtRT877sju7+t9ZD2+vBJCLOZTq2lGAuuXgSBEIYig8WS2X8IeoC6H4Oy4s1xlo+HAiSDEGM0AZIMnhBv5ZyQ9f7pzq0xKCuFQ9z0hvFxl9LVidJWfMsGS73NQeiCEyRB0E0Lf8lwtNtV1ep4ddZLvc2h6IHvxBJAACCKocXremlRIQhAyIBJBXHoFEERsyOo9ymg/hVh36VEsMgxANuRV2S968PjLWaOPZ30xn1pNMxJYvwwEIQpBBI0ns9tB6i3po+HAiSDEGM0AZIMnhLnpLj0phEPd94TwcpXR12qtHghhMgTdhPywPFcL1qOyF08ACYAgghg4Lj0JQciASARx6RVAELEhq/coo/0UYt2lR7HIMADZkFdlv+jB4y9njT6e9cV8ajXNSGD9MhCEKAQRNJ7MmPgefTQcOBGEGKMZgGzwhDA33aUnhXCo+54QXq4y+lqt1QMhTIagm5AfludqwXpU9uIJIAEQRBADx6UnIQgZEIkgLr0CCCI2ZPUeZbSfQqy79CgWGQYgG/Kq7Bc9ePzlrNHHs76YT62mGQmsXwaCEIUggsaTGRPfo4+GAyeCEGM0A5ANnhDmprv0pBAOdd8TwstVRl+rtXoghMkQdBPyw/JcLViPyl48ASQAgghi4Lj0JAQhAyIRxKVXAEHEhqzeo4z2U4h1lx7FIsMAZENelf2iB4+/nDX6eNYX86nVNCOB9ctAEKIQRNB4MmPie/TRcOBEEGKMZgCywRPC3HSXnhTCoe57Qni5yuhrtVYPhDAZgm5CflieqwXrUdmLJ4AEQBBBDByXnoQgZEAkgrj0CiCI2JDVe5TRfgqx7tKjWGQYgGzIq7Jf9ODxl7NGH8/6Yj61mmYksH4ZCEIUgggaT2ZMfI8+Gg6cCEKM0QxANnhCmJvu0jcKYXOmUBRbCSMvIcRoOBgNB1JUX7EuP51FhsCcAPfxt6pf9ORXcmFtWccIQh6sDUBn32MAV3z5DbBjXa+8KvVA52qg+/Ksa8d9bcCbAmY017Zq7YE5AcQGOQRyDvRpUGvrK9b1TwAf/RL/hUDXlcC6B0IIUZzmVSmK01osTtXC2rZcrz8jah3CIRu4GqtACJsDwtVk31FjiQFcu62QAa5pYD1N38wA6xZqy3qavpkB3LXtdz86A7ibzeocwjcnhLm2XP8Cw7gOiJGFP3cAAAAQdEVYdExvZGVQTkcAMjAxMTAyMjHjWbbBAAAAAElFTkSuQmCC"); + -repeat center; + -webkit-background-size:cover; -moz-background-size:cover; -o-background-size:cover; background-size:cover; +} + +.button_gfx{ + stroke-width:2; + stroke: #ffffff; + stroke-opacity:0.4; + fill-opacity:0.2; + fill:black; +} + +.button_gfx_icon{ + stroke-width:3; + stroke: #909090; + stroke-opacity:0.7; + fill:none; +} + +--> +</STYLE> + +</head> + +<body style="padding:0px; margin:0px; background-color:#222; color:#ccc"> +<div id="body_0"> <!-- hide this when playing in mobile (p8_touch_detected) so that elements don't affect layout --> + + +<!-- Add any content above the cart here --> + + +<div id="p8_frame_0" style="max-width:800px; max-height:800px; margin:auto;"> <!-- double function: limit size, and display only this div for touch devices --> +<div id="p8_frame" style="display:flex; width:100%; max-width:95vw; height:100vw; max-height:95vh; margin:auto;"> + + <div id="p8_menu_buttons_touch" style="position:absolute; width:100%; z-index:10; left:0px;"> + <div class="p8_menu_button" id="p8b_full" style="float:left;margin-left:10px" onClick="p8_give_focus(); p8_request_fullscreen();"></div> + <div class="p8_menu_button" id="p8b_sound" style="float:left;margin-left:10px" onClick="p8_give_focus(); p8_create_audio_context(); Module.pico8ToggleSound();"></div> + <div class="p8_menu_button" id="p8b_close" style="float:right; margin-right:10px" onClick="p8_close_cart();"></div> + </div> + + <div id="p8_container" + style="margin:auto; display:table;" + onclick="p8_create_audio_context(); p8_run_cart();"> + + <div id="p8_start_button" class="p8_start_button" style="width:100%; height:100%; display:flex;"> + <img width=80 height=80 style="margin:auto;" + src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAABpklEQVR42u3au23DQBCEYUXOXIGKcujQXUgFuA0XIKgW90Q9oEAg+Ljd27vd2RsCf058gEDqhofPj+OB6SMCAQlIQAIyAhKQgARkBAQDnM6XSRsB7/2e/tSA0//12fCAKsQX3ntDA4oRFwBRIc0AixE38BAhTQGLEAsBUSDNAXcRhYDRIZsAPlp99VECRoXsDpgN0g0wC6Q7IDpkGEBUyG6A0+vKBtkdMBukG2AWSHdAdMgwgKiQ4QDRIMMCokCGB4wOCQPYFVKw2cABNocUjl6wgE0gFashPKAZpHJ2TQNYBVmxW6cDFENWDv9pAUshCVgJScBKSAISkD9hPkT4GkNAMdzepyj8Kye852EBLe51CZHHWQK4JcThD1SlcHPEYY/0a+A0n6SkGZV6w6WZNb3g4Id1b7hwgGhwYQBR4dwB0eHcALPAdQfMBhcOEA0uDCAqnDsgOpwbYBa4poA/31+rZYFrBriFpwGMCtcEcA9PAhgdzhywBK8EEQXOFFCCtwaIBmcGKMWbI6LCmQBq8R6hw5kAMgISkIAEJCAjIAEJSEBGQI9ukV7lRn9nD+gAAAAASUVORK5CYII="/> + </div> + + <div id="p8_playarea" style="display:none; margin:auto; + -webkit-user-select:none; -moz-user-select: none; user-select: none; -webkit-touch-callout:none; + "> + + <div id="touch_controls_background" + style=" pointer-events:none; display:none; background-color:#000; + position:fixed; top:0px; left:0px; border:0; width:100vw; height:100vh"> +   + </div> + + <div style="display:flex; position:relative"> + <!-- pointer-events turned off for mobile in p8_update_layout because need for desktop mouse --> + <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault();" > + </canvas> + <div class=p8_menu_buttons id="p8_menu_buttons" style="margin-left:10px;"> + <div class="p8_menu_button" style="position:absolute; bottom:125px" id="p8b_controls" onClick="p8_give_focus(); Module.pico8ToggleControlMenu();"></div> + <div class="p8_menu_button" style="position:absolute; bottom:90px" id="p8b_pause" onClick="p8_give_focus(); Module.pico8TogglePaused(); p8_update_layout_hash = -22;"></div> + <div class="p8_menu_button" style="position:absolute; bottom:55px" id="p8b_sound" onClick="p8_give_focus(); p8_create_audio_context(); Module.pico8ToggleSound();"></div> + <div class="p8_menu_button" style="position:absolute; bottom:20px" id="p8b_full" onClick="p8_give_focus(); p8_request_fullscreen();"></div> + </div> + </div> + + + <!-- display after first layout update --> + <div id="touch_controls_gfx" + style=" pointer-events:none; display:table; + position:fixed; top:0px; left:0px; border:0; width:100vw; height:100vh"> + + <img src="" id="controls_right_panel" style="position:absolute; opacity:0.5;"> + <img src="" id="controls_left_panel" style="position:absolute; opacity:0.5;"> + + + </div> <!-- touch_controls_gfx --> + + <!-- used for clipboard access & keyboard input; displayed and used by PICO-8 only once needed. can be safely removed if clipboard / key presses not needed. --> + <!-- (needs to be inside p8_playarea so that it still works under Chrome when fullscreened) --> + <!-- 0.2.5: added "display:none"; pico8.js shows on demand to avoid mac osx accent character selector // https://www.lexaloffle.com/bbs/?tid=47743 --> + + <textarea id="codo_textarea" class="emscripten" style="display:none; position:absolute; left:-9999px; height:0px; overflow:hidden"></textarea> + + </div> <!--p8_playarea --> + + </div> <!-- p8_container --> + +</div> <!-- p8_frame --> +</div> <!-- p8_frame_0 size limit --> + +<script type="text/javascript"> + + p8_update_layout(); + p8_update_button_icons(); + + var canvas = document.getElementById("canvas"); + Module = {}; + Module.canvas = canvas; + + // from @ultrabrite's shell: test if an AudioContext can be created outside of an event callback. + // If it can't be created, then require pressing the start button to run the cartridge + + if (p8_autoplay) + { + var temp_context = new AudioContext(); + temp_context.onstatechange = function () + { + if (temp_context.state=='running') + { + p8_run_cart(); + temp_context.close(); + } + }; + } + + // pointer lock request needs to be inside a canvas interaction event + // pico8_state.request_pointer_lock is true when 0x5f2d bit 0 and bit 2 are set -- poke(0x5f2d,0x5) + // note on mouse acceleration for future: // https://github.com/w3c/pointerlock/pull/49 + canvas.addEventListener("click", function() + { + if (!p8_touch_detected) + if (pico8_state.request_pointer_lock) + canvas.requestPointerLock(); + }); + +</script> + + + +<!-- Add content below the cart here --> + + + + +</div> <!-- body_0 --> +</body></html> +
A
games/wick-dodge/wick-dodge.js
@@ -0,0 +1,157 @@
+var _cartname=[`wick-dodge.p8`]; +var _cdpos=0; var iii=0; var ciii=0; +var _cartdat=[ +0,0,0,0,102,86,101,102,102,6,101,102,13,221,13,221,86,102,86,102,85,85,85,81,221,45,221,0,0,221,210,221,221,221,210,221,0,0,0,0,221,221,210,0,0,45,221,221,221,221,210,221,221,45,221,221,221,45,221,221,0,0,0,0,0,0,0,0,101,102,102,86,101,96,102,86,208,0,208,0,85,85,85,85,21,81,85,85,221,45,221,0,0,221,210,221,221,221,210,221,0,0,0,0,221,221,210,0,0,45,221,221,221,221,210,221,221,45,221,221,221,45,221,221,0,0,0,0,0,7,112,0,102,85,102,102,102,5,102,102,13,221,13,221,102,86,102,86,85,85,21,81,221,45,221,0,0,221,210,221,221,221,45,221,221,221,45,221,221,221,45,221,221,210,221,221,221,221,45,221,221,210,221,221,221,210,221,221,0,0,0,0,0,112,7,0,102,102,102,85,102,173,109,85,208,0,208,0,85,85,85,85,85,85,85,85,221,45,221,0,0,221,210,221,34,221,221,34,221,221,45,221,221,221,221,34,34,221,221,221,221,221,221,34,34,221,221,221,34,221,221,221,0,0,0,0, +0,112,7,0,85,102,102,102,85,173,109,102,13,221,13,221,86,102,86,102,85,81,85,85,221,45,221,0,0,221,210,221,221,210,221,221,34,221,221,34,34,221,221,221,221,221,221,34,34,221,221,221,221,221,221,34,221,221,221,34,0,0,0,0,0,7,112,0,102,102,85,102,102,214,85,102,208,0,208,0,85,85,85,85,85,85,81,85,221,45,221,0,0,221,210,221,221,210,221,221,221,210,221,221,221,210,221,221,221,221,45,221,221,210,221,221,221,221,45,221,221,221,45,221,0,0,0,0,0,0,0,0,86,101,102,102,86,101,102,102,13,221,13,221,102,86,102,86,81,85,85,21,221,45,221,0,0,221,210,221,0,0,0,0,221,45,221,221,221,45,221,221,221,221,210,221,0,45,221,221,221,221,210,0,221,221,210,221,0,0,0,0,0,0,0,0,102,102,102,85,102,102,102,85,208,0,208,0,85,85,85,85,85,21,81,85,221,45,221,0,0,221,210,221,0,0,0,0,221,45,221,221,221,45,221,221,221,221,210,221,0,45,221,221,221,221,210,0,221,221,210,221,0,0,0,0, +0,0,0,0,204,204,204,204,204,204,204,204,204,204,204,204,0,0,0,0,204,204,156,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,153,153,153,153,153,153,153,153,0,0,0,0,0,0,0,0,204,204,192,204,204,204,204,204,204,12,204,204,0,0,0,0,204,156,200,204,204,204,201,201,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,153,153,105,105,150,150,153,153,0,0,0,0,0,0,0,0,204,204,12,204,204,12,204,204,204,204,192,204,0,0,0,0,204,204,12,204,204,204,140,204,204,156,201,204,204,156,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,153,105,214,214,109,109,150,153,0,0,0,0,0,0,0,0,204,124,119,198,204,204,192,204,204,124,103,204,0,0,0,0,204,124,119,198,204,124,119,198,204,204,200,204,204,204,201,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,153,214,221,221,221,221,109,153,0,0,0,0, +0,0,0,0,204,119,119,198,204,124,103,204,204,119,119,198,0,0,0,0,204,119,119,198,204,119,119,198,204,119,119,198,204,204,200,204,204,156,204,204,204,204,156,204,204,204,204,204,204,204,204,204,153,214,221,221,221,221,109,153,0,0,0,0,0,0,0,0,204,119,103,204,204,119,119,198,204,119,119,198,0,0,0,0,204,119,103,204,204,119,103,204,204,119,103,204,204,124,103,204,204,204,200,204,204,156,200,204,204,204,153,204,204,204,204,204,105,221,221,221,221,221,221,150,0,0,0,0,0,0,0,0,204,119,103,204,204,119,103,204,124,119,103,204,0,0,0,0,204,119,103,204,204,119,103,204,204,119,103,204,204,119,103,204,204,119,103,204,204,204,103,204,204,204,200,204,204,204,204,204,105,221,221,221,221,221,221,150,0,0,0,0,0,0,0,0,124,119,119,198,124,119,119,198,124,119,119,198,0,0,0,0,124,119,119,198,124,119,119,198,124,119,119,198,204,119,119,198,204,119,119,198,204,124,119,198,204,124,119,198,204,204,204,204,153,214,221,102,102,221,109,153,0,0,0,0, +0,0,0,192,204,204,204,204,0,0,0,0,0,0,0,0,221,218,170,173,221,221,210,221,0,0,0,0,0,0,0,144,105,221,221,109,136,136,153,153,214,221,221,150,153,136,136,136,136,136,136,136,153,214,221,102,102,221,109,153,0,0,0,0,0,0,0,192,204,204,204,204,0,0,0,0,0,0,0,0,221,170,170,169,221,221,210,221,0,0,0,0,0,0,0,144,105,221,221,109,136,136,153,153,214,221,221,150,153,137,136,136,136,136,136,136,105,221,221,221,221,221,221,150,0,0,0,0,0,0,0,192,204,140,194,204,0,0,0,0,0,0,0,0,221,173,170,218,221,218,218,218,0,0,0,0,0,0,0,144,153,214,221,86,136,153,153,153,101,221,109,153,153,137,136,136,136,136,136,136,105,221,221,221,221,221,221,150,0,0,0,0,0,0,0,192,204,136,40,204,0,0,0,0,0,0,0,0,221,221,221,221,34,170,154,42,0,0,0,0,0,0,0,144,105,221,221,109,136,153,153,153,214,221,221,150,153,153,137,136,136,136,136,136,153,214,221,221,221,221,109,153,0,0,0,0, +0,0,0,192,204,136,136,204,0,0,0,0,0,0,0,0,221,221,221,221,221,162,170,221,0,0,0,0,0,0,0,144,105,221,221,109,136,136,153,153,214,221,221,150,153,153,153,136,136,136,136,136,153,214,221,221,221,221,109,153,0,0,0,0,0,0,0,192,204,140,200,204,0,0,0,0,0,0,0,0,221,221,221,221,221,210,221,221,0,0,0,0,0,0,0,144,153,214,221,86,136,136,136,153,101,221,109,153,137,136,136,136,136,136,136,136,153,105,214,214,109,109,150,153,0,0,0,0,0,0,0,192,204,204,204,204,0,0,0,0,0,0,0,0,221,221,221,221,0,0,0,0,0,0,0,0,0,0,0,144,105,221,221,109,136,152,153,153,214,221,221,150,137,136,136,136,136,136,136,136,153,153,105,105,150,150,153,153,0,0,0,0,0,0,0,192,204,204,204,204,0,0,0,0,0,0,0,0,221,221,221,221,0,0,0,0,0,0,0,0,0,0,0,144,153,214,221,86,136,136,152,153,101,221,109,153,153,137,136,136,136,136,136,136,153,153,153,153,153,153,153,153,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,153,153,153,85,85,85,81,85,85,85,81,0,0,0,0,102,101,86,86,153,153,153,153,153,153,153,153,136,136,136,136,136,136,136,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,150,150,102,21,81,85,85,21,81,85,85,0,0,0,0,221,214,109,109,153,153,153,153,105,150,150,102,136,136,136,136,136,136,136,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,214,109,109,221,85,85,133,81,85,85,21,81,0,0,0,0,221,221,221,221,153,136,153,153,214,109,109,221,136,136,136,137,136,136,136,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,221,221,221,221,85,85,84,85,85,85,85,85,0,0,0,0,221,221,221,221,137,136,153,152,221,221,221,221,136,137,136,137,136,136,136,136,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,68,132,221,85,65,85,85,85,68,68,88,0,0,0,0,221,221,221,221,136,136,137,152,221,221,221,221,152,137,152,153,136,138,138,138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,221,221,221,221,85,84,81,85,85,85,81,85,0,0,0,0,221,214,109,109,136,136,136,136,221,221,221,221,153,153,153,153,136,170,154,138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,214,109,109,221,81,85,85,21,81,85,85,21,0,0,0,0,102,105,150,150,136,136,136,136,214,109,109,221,153,153,153,153,136,168,170,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,86,86,102,85,21,81,85,85,21,81,85,0,0,0,0,153,153,153,153,136,136,136,136,101,86,86,102,153,153,153,153,136,136,136,136,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +44,44,44,44,44,44,44,44,44,44,44,44,60,44,44,44,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,59,59,59,59,59,59,59,59,59,59,59,59,59,59,44,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +41,29,58,52,58,58,58,58,58,58,58,58,58,58,30,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,40,5,5,5,5,5,5,5,5,5,5,5,5,42,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +41,45,56,56,56,56,56,56,56,56,56,56,56,56,46,43,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,57,57,57,57,57,57,57,57,57,57,57,57,57,57,44,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +128,1,66,68,128,1,2,68,0,1,2,68,0,4,2,68,0,4,2,68,0,1,2,5,0,1,2,5,0,4,2,5,0,132,2,5,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68,65,66,67,68, +206,95,209,95,206,95,209,95,206,95,209,95,206,95,209,95,206,95,209,95,206,95,209,95,206,95,209,95,206,95,209,95,215,95,216,95,215,95,216,95,215,95,216,95,215,95,216,95,208,95,211,95,208,95,211,95,208,95,211,95,208,95,211,95,1,16,0,32,0,62,128,1,191,1,128,1,180,63,128,1,128,1,128,1,0,62,128,1,128,1,128,1,180,63,128,1,128,1,128,1,0,62,128,1,128,1,128,1,180,63,180,49,128,1,128,1,0,62,128,1,128,1,128,1,180,63,128,1,128,1,128,1,1,16,0,0,221,8,221,22,221,20,221,18,221,8,221,22,221,20,221,18,225,8,225,22,225,20,225,18,218,8,218,22,218,20,218,18,220,8,220,22,220,20,220,18,228,8,228,22,227,8,227,22,228,8,228,22,228,20,228,18,225,8,225,22,225,20,225,18,1,16,0,0,166,91,166,89,166,87,166,85,166,83,166,81,166,81,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80, +0,80,0,80,0,80,0,80,0,80,0,80,1,29,0,0,0,62,128,1,0,0,0,62,180,63,128,1,0,62,0,48,12,48,12,48,0,62,128,1,180,63,128,1,128,1,128,1,0,62,128,1,0,62,128,1,180,63,180,49,128,1,128,1,0,62,128,1,128,1,164,1,180,63,128,1,128,1,128,1,1,16,0,0,45,37,45,37,41,37,41,37,50,37,50,37,43,37,43,37,41,37,41,37,40,37,40,37,41,37,41,37,38,37,40,37,36,37,36,37,40,37,40,37,43,37,43,37,40,37,40,37,38,37,38,37,38,37,38,37,36,37,36,37,36,37,36,37,1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0, +0,112,120,97,14,168,5,35,111,240,8,55,63,66,50,122,81,113,121,117,127,119,250,70,80,189,194,19,220,222,222,255,6,81,124,123,212,20,213,25,119,180,93,213,38,93,25,54,58,97,197,3,212,85,88,5,177,23,238,95,8,139,250,32,129,128,178,204,202,50,174,71,186,129,251,227,145,96,68,75,224,45,94,35,142,159,160,123,133,182,157,121,136,38,159,82,22,43,223,161,79,223,162,235,238,90,232,154,141,165,172,189,236,62,71,71,213,66,177,180,209,77,213,183,205,108,12,12,76,60,69,187,179,17,13,108,248,161,190,207,16,123,75,157,23,242,124,112,100,36,169,221,182,215,196,181,242,200,248,196,192,86,180,184,181,115,91,95,45,140,198,126,157,201,180,204,164,11,198,162,169,145,29,141,18,137,18,105,243,52,3,226,5,161,184,249,15,79,76,182,83,3,239,180,106,40,239,237,41,140,40,157,45,44,148,97,219,148,91,110,203,87,149,206,161,142,186,19,53,19,10,6,91,91,109,214,142,45,12,72,138,63,218,138,122,226,95,187,150,15,52,27,73,222,39,90, +10,161,170,58,194,164,46,7,26,107,28,41,94,14,225,37,89,53,73,243,56,77,42,205,239,209,79,135,105,242,42,24,144,108,14,5,210,143,164,142,6,93,49,55,52,55,101,147,153,108,202,45,210,13,169,138,251,182,250,82,214,53,26,8,31,227,62,115,230,105,191,178,213,153,159,171,230,167,120,131,210,249,223,214,26,35,42,164,2,51,133,89,68,141,221,38,9,227,104,153,250,181,165,220,60,15,157,179,163,36,211,140,233,2,225,10,65,187,106,71,93,76,10,71,112,212,35,121,80,93,57,161,91,167,106,19,68,42,39,78,56,114,118,197,75,185,43,134,71,189,176,60,58,230,27,43,86,86,71,63,185,52,55,58,163,30,178,107,200,48,9,150,82,63,196,203,185,138,136,248,157,159,134,149,68,228,241,252,16,38,110,22,42,90,26,241,151,128,185,60,211,120,190,90,161,51,27,141,102,78,61,91,15,110,232,177,185,70,182,192,204,59,221,208,180,222,127,116,228,61,54,184,187,57,169,134,146,175,170,120,4,59,149,151,244,50,166,250,169,160,156,210,209,16,144,71, +176,186,43,158,43,251,15,77,30,67,204,54,165,38,151,126,63,4,113,100,228,39,206,254,13,196,234,157,163,75,2,58,213,224,78,122,164,228,101,56,34,176,169,91,127,72,150,6,18,158,131,18,158,162,149,42,45,165,18,172,56,123,116,96,210,34,232,227,116,75,58,184,150,14,127,110,148,14,255,181,43,174,161,29,142,69,217,241,99,84,118,252,223,210,148,94,241,128,112,248,35,58,254,111,100,103,121,74,184,191,66,29,123,250,204,51,59,115,109,177,176,177,58,62,182,197,44,129,75,25,57,133,236,153,196,27,145,57,181,255,41,239,254,70,81,215,239,149,77,180,84,53,83,67,217,68,168,96,179,66,43,225,255,165,201,209,76,238,141,32,66,184,6,26,31,245,249,161,90,226,144,141,40,186,116,72,43,188,43,90,129,129,86,248,33,53,169,45,145,139,142,107,69,138,32,236,140,37,119,40,65,169,26,101,50,99,194,110,152,120,60,203,133,129,176,75,228,211,163,35,39,169,78,45,243,121,81,101,127,217,51,172,82,81,136,142,249,116,194,127,44,54,51,169,129,202, +78,102,252,223,158,204,248,191,38,80,26,159,84,248,31,88,14,65,157,80,53,118,137,225,103,202,250,19,172,95,110,125,184,161,184,114,119,115,211,241,171,28,71,77,161,114,244,33,135,112,140,42,154,75,118,156,206,135,218,253,84,7,36,217,63,33,242,153,29,92,21,102,127,21,246,191,212,242,137,17,225,192,248,240,71,49,151,177,195,131,46,130,138,220,220,34,166,29,36,16,190,110,60,51,60,65,51,216,246,132,188,160,68,53,253,193,7,241,67,126,252,255,255,210,110,248,105,94,242,12,135,6,49,239,6,33,152,184,253,38,118,128,114,2,185,94,126,32,76,96,209,123,194,30,179,150,209,42,202,199,178,126,104,134,202,4,70,6,134,133,213,236,161,246,97,8,225,94,117,78,95,44,213,245,196,68,162,205,33,199,161,20,188,59,126,167,82,120,197,4,118,170,42,20,23,233,188,160,23,222,197,184,85,22,127,26,21,129,72,56,80,95,204,188,85,34,37,42,28,176,164,191,126,9,155,228,56,43,224,38,80,10,162,159,208,96,169,74,134,52,115,5,180,154,198,237, +72,170,162,234,179,153,149,209,153,228,49,56,66,160,106,87,146,36,156,40,154,182,74,18,137,57,243,52,83,69,47,132,26,117,135,182,158,177,74,103,85,78,9,151,224,144,106,189,209,77,188,153,64,123,202,70,189,29,162,86,222,143,6,139,180,253,163,246,142,178,24,153,79,131,29,61,241,69,137,244,169,12,66,161,248,254,74,163,75,58,253,211,43,128,180,240,221,48,81,170,196,196,81,49,226,180,184,41,156,162,232,83,228,166,178,66,146,36,174,98,73,177,98,201,54,84,42,82,168,247,206,110,76,14,239,110,186,2,153,68,170,181,160,245,139,40,155,147,132,195,92,221,186,94,178,33,194,30,250,35,40,48,166,42,254,201,137,174,164,86,146,39,241,189,18,223,35,144,19,158,239,116,244,67,46,131,62,18,243,40,167,118,179,157,13,140,25,143,152,190,160,93,220,70,42,27,237,240,136,212,151,234,197,207,177,124,196,75,91,182,135,230,174,227,17,249,74,248,254,67,108,241,37,156,54,192,124,2,118,202,247,138,129,98,31,163,198,205,224,226,135,100,160,196,57,138, +118,105,170,169,138,136,192,198,15,220,22,159,210,224,141,251,171,67,75,65,124,68,177,178,155,88,43,76,41,86,96,53,23,30,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; + +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){function runWithFS(){var fileData0=[];fileData0.push.apply(fileData0,[67,80,79,68,68,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,70,73,76,0,0,0,0,123,144,0,0,112,111,100,47,112,105,99,111,56,95,98,111,111,116,46,112,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,1,0,0,242,16,112,105,99,111,45,56,32,99,97,114,116,114,105,100,103,101,32,47,47,32,104,116,116,112,58,47,47,119,119,119,46,31,0,255,13,46,99,111,109,10,118,101,114,115,105,111,110,32,56,10,95,95,108,117,97,95,95,10,10,45,45,62,56,6,0,25,159,95,95,103,102,120,95,95,10,48,1,0,108,15,129,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,45,1,137,64,31,102,137,64,112,15,139,1,109,15,1,1,239,95,95,95,109,97,112,10,2,240,15,1,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,50,95,95,115,187,98,48,49,48,99,17,0,161,51,48,53,53,53,50,98,53,54,53,10,0,64,51,53,53,52,5,0,128,49,53,51,53,55,48,53,48,3,0,15,5,0,106,0,169,0,16,56,12,0,115,50,52,48,51,53,50,52,26,0,15,91,2,130,30,49,154,0,15,169,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,238,113,95,95,109,117,115,105,99,114,74,50,32,52,49,2,0,15,12,0,255,255,224,80,49,52,49,10,10,99,70,73,76,0,0,0,0,182,197,12,0,112,111,100,47,103,102,120,49,46,112,111,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123,75,0,0,243,22,67,80,79,68,68,0,0,0,1,0,0,0,103,102,120,49,46,112,111,100,0,47,112,97,98,97,47,112,105,99,111,56,47,112,111,100,47,25,0,63,21,1,0,1,0,10,177,67,66,77,80,20,0,1,0,128,0,0,4,0,47,32,0,1,0,255,255,255,255,255,255,255,255,207,79,77,0,255,255,4,0,73,47,0,0,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,91,63,163,255,255,4,0,73,47,232,241,4,0,75,47,170,204,4,0,75,15,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,155,79,39,236,255,255,4,0,73,47,232,241,4,0,255,12,47,168,119,4,0,75,15,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,59,15,1,0,77,79,54,228,0,255,4,0,73,15,160,1,77,63,156,118,131,4,0,74,15,160,1,77,15,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,155,15,1,0,77,79,255,173,41,255,4,0,73,15,99,1,77,15,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,92,15,1,0,255,255,255,255,255,255,255,36,97,67,80,65,76,0,3,11,0,255,39,29,43,83,126,37,83,0,135,81,171,82,54,95,87,79,194,195,199,255,241,232,255,0,77,255,163,0,255,236,39,0,228,54,41,173,255,131,118,156,255,119,168,255,204,170,0,0,0,2,4,6,2,4,8,3,0,101,111,3,5,10,3,5,10,126,0,100,31,9,54,0,37,27,9,192,0,5,3,0,254,33,41,24,20,17,29,53,66,33,54,18,83,89,116,47,41,73,51,59,162,136,121,243,239,125,190,18,80,255,108,36,168,231,46,0,181,67,6,90,181,117,70,101,255,110,89,255,157,129,122,1,15,3,0,255,44,255,2,67,66,77,80,164,1,0,0,40,0,0,0,10,0,0,0,8,68,3,24,15,44,0,20,63,9,7,15,39,0,17,95,10,7,7,7,14,41,0,17,51,11,7,13,10,0,66,7,7,7,7,5,0,20,0,5,0,22,7,25,0,37,0,12,39,0,0,3,0,5,4,0,4,16,0,0,10,0,1,3,0,23,0,79,0,14,40,0,3,99,0,9,40,0,5,7,0,10,80,0,1,18,0,12,40,0,6,165,0,9,159,0,31,7,180,4,54,57,79,72,67,180,4,91,231,39,0,231,86,180,4,15,1,0,29,240,3,28,0,73,109,24,69,0,122,44,160,72,50,52,54,53,173,177,183,100,14,240,8,0,77,255,132,0,255,255,39,0,226,50,41,173,255,174,75,176,255,136,188,255,214,197,48,0,32,48,102,144,0,177,131,72,171,82,54,63,65,65,180,182,188,48,0,49,42,255,163,79,0,96,231,86,41,162,255,132,48,0,245,7,175,255,217,177,0,0,0,32,51,123,140,28,60,0,131,49,171,100,54,80,80,80,120,0,35,255,155,9,0,97,63,155,255,132,112,169,192,0,0,75,0,255,0,28,24,87,135,37,77,0,147,60,0,0,0,69,69,69,180,0,2,98,146,133,174,255,105,154,48,0,48,55,67,91,19,0,143,135,81,0,0,0,86,70,59,48,0,2,53,131,118,156,12,0,53,37,55,77,12,0,63,101,91,82,32,1,14,53,43,55,66,12,0,63,79,72,67,48,0,15,37,62,83,12,0,63,95,87,79,48,0,14,79,29,43,83,0,1,0,255,4,48,255,0,255,180,4,158,20,48,0,0,128,0,0,0,96,180,4,15,1,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,26,0,28,48,83,36,0,0,0,4,4,0,9,28,48,241,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,72,48,33,0,1,72,48,0,76,48,47,32,0,1,0,255,255,255,255,255,255,255,255,207,79,77,0,255,255,4,0,73,47,0,0,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,91,63,163,255,255,4,0,72,15,32,170,78,47,170,204,4,0,75,15,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,155,79,39,236,255,255,4,0,73,47,232,241,4,0,255,12,47,168,119,4,0,75,15,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,59,15,1,0,77,79,54,228,0,255,4,0,73,15,160,1,77,63,156,118,131,4,0,74,15,160,1,77,15,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,155,15,1,0,77,79,255,173,41,255,4,0,73,15,99,1,77,15,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,92,15,1,0,255,255,255,255,255,255,255,36,151,67,66,77,80,84,0,0,0,8,4,0,4,1,0,20,8,1,0,36,2,2,8,0,36,2,2,8,0,42,2,2,8,0,8,40,0,3,1,0,15,92,0,18,36,15,15,8,0,36,15,15,8,0,42,15,15,8,0,8,40,0,15,92,0,25,6,147,0,3,186,0,4,176,0,19,8,15,0,36,8,8,208,0,15,92,0,33,40,15,15,186,0,4,176,0,19,8,15,0,36,8,8,208,0,12,92,0,95,100,0,0,0,10,92,0,12,6,193,0,3,4,0,4,10,0,4,6,0,2,10,0,8,233,0,3,221,0,15,108,0,40,3,184,0,5,10,0,4,6,0,2,10,0,8,249,0,47,15,15,216,0,47,4,196,0,15,10,0,17,15,216,0,45,4,196,0,15,10,0,17,15,216,0,53,15,20,0,8,15,216,0,62,15,20,0,30,0,108,0,95,68,1,0,0,38,108,0,1,15,1,0,33,31,2,129,2,0,3,44,2,5,4,0,85,8,2,2,15,15,39,0,18,2,135,3,1,5,1,5,162,0,0,165,0,16,2,93,2,5,171,3,7,249,2,5,72,0,13,38,0,1,76,0,3,43,0,5,188,2,43,15,8,114,0,7,83,2,10,38,0,8,190,0,6,118,0,31,2,251,0,8,15,76,1,98,2,231,0,39,2,8,125,5,0,222,0,2,139,4,35,15,15,67,1,5,90,2,5,242,4,1,42,1,6,223,3,2,38,0,5,72,0,12,38,0,1,76,0,3,43,0,5,123,1,43,2,8,114,0,7,51,3,10,38,0,8,190,0,40,15,15,75,4,15,76,1,21,95,36,0,0,0,2,76,1,0,244,1,0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15,44,0,23,8,48,0,5,44,0,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,88,0,10,255,0,10,4,9,2,8,3,11,1,12,13,14,5,15,6,7,0,6,9,34,6,7,1,0,33,13,6,1,0,0,8,0,33,5,5,8,0,129,5,5,5,5,6,7,13,5,1,0,8,32,0,2,8,0,2,1,0,31,6,92,0,10,3,37,0,18,7,52,0,8,8,0,33,5,5,8,0,1,100,0,34,13,7,100,0,6,32,0,2,1,0,31,6,184,0,26,5,168,0,3,184,0,5,200,0,15,184,0,56,5,168,0,3,184,0,5,200,0,15,184,0,23,31,5,1,0,44,0,92,0,19,44,84,0,31,3,20,1,4,19,1,236,0,18,1,1,0,1,144,0,32,20,32,68,2,60,0,0,32,44,2,255,1,0,5,1,2,1,13,6,2,4,9,3,13,5,13,6,0,1,0,221,11,88,3,15,255,0,221,16,5,0,2,30,13,0,2,15,1,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,242,4,72,34,19,4,4,0,9,28,32,255,0,5,6,7,2,4,9,10,1,13,14,15,3,11,12,8,44,0,18,67,3,11,8,2,160,34,19,35,164,32,28,5,168,32,81,0,0,6,6,0,164,32,34,0,6,131,0,19,45,39,0,12,43,0,11,174,0,17,2,2,0,31,0,232,41,12,7,106,0,0,99,0,1,113,0,2,118,0,11,8,0,4,32,0,14,20,1,15,92,0,33,47,8,8,92,0,20,83,164,0,0,0,12,4,0,8,92,0,31,11,1,0,124,0,172,0,19,76,164,0,27,7,172,0,3,35,35,31,5,8,0,29,15,84,0,9,2,183,34,47,6,5,8,0,29,15,168,0,12,31,5,4,0,1,4,1,0,15,32,0,1,15,168,0,16,31,5,4,0,1,4,1,0,15,32,0,1,15,168,0,14,18,5,2,0,5,152,0,15,16,0,20,15,168,0,10,18,5,2,0,5,152,0,15,16,0,20,15,80,1,11,1,53,1,3,138,0,31,13,168,36,6,4,32,0,4,48,0,15,80,1,11,1,53,1,3,138,0,31,6,84,0,6,4,32,0,4,48,0,15,144,4,10,65,13,13,0,13,6,0,32,0,13,6,0,15,44,0,10,0,136,4,96,11,7,6,6,11,11,151,4,30,0,172,0,15,74,5,17,95,10,10,10,10,0,104,5,5,15,84,0,70,98,20,64,0,0,128,0,4,0,8,84,0,79,1,0,0,1,4,0,102,15,127,0,111,31,1,127,0,236,15,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,15,196,68,19,51,0,0,14,7,0,19,14,7,0,10,16,0,5,32,0,15,32,69,32,5,24,0,36,8,8,58,106,9,16,0,5,32,0,15,92,0,33,42,14,0,168,0,4,185,0,5,16,0,31,0,92,0,39,42,8,0,168,0,4,185,0,5,16,0,15,92,0,40,4,1,0,34,7,7,7,0,2,13,66,18,7,12,0,2,20,0,47,0,7,92,0,44,4,66,0,17,7,82,0,47,7,7,92,0,59,3,187,0,8,93,0,47,7,7,92,0,49,1,187,104,1,172,0,8,4,0,3,20,0,15,184,0,46,6,165,0,6,8,0,2,114,0,15,92,0,45,40,7,0,89,0,4,110,1,3,182,0,15,92,0,48,22,7,2,0,3,1,0,7,19,0,9,120,1,15,132,2,36,6,99,1,5,14,1,14,112,1,15,232,113,34,30,8,242,113,15,16,113,68,31,8,242,113,1,15,16,113,67,36,2,8,157,111,15,20,0,18,15,216,0,42,36,15,8,189,110,15,20,0,18,15,80,116,34,25,2,175,1,5,95,116,11,32,117,15,80,116,35,25,15,159,1,5,95,116,11,32,117,15,92,0,29,4,144,111,7,2,0,22,2,69,2,7,16,0,11,117,112,15,92,0,17,4,11,116,7,2,0,22,15,53,2,7,16,0,11,50,116,15,120,118,21,2,234,112,4,46,114,15,8,0,3,12,57,2,15,120,118,21,2,95,118,6,12,0,15,8,0,1,12,41,2,15,48,119,22,9,32,119,1,162,0,6,16,0,6,41,2,47,8,8,184,0,32,25,8,32,119,1,162,0,6,16,0,6,41,2,47,8,8,184,0,31,4,113,1,6,8,0,8,248,2,42,2,2,8,0,15,184,0,27,4,113,1,6,8,0,8,248,2,42,15,15,8,0,15,60,3,28,21,8,130,120,5,49,2,6,8,0,4,24,0,11,164,120,15,92,0,22,5,130,120,5,49,2,6,8,0,4,24,0,11,164,120,15,160,120,28,11,88,4,15,80,4,53,14,88,4,15,80,4,17,14,112,79,15,14,7,2,19,6,68,113,7,82,7,19,7,208,79,4,212,79,15,1,0,28,8,60,0,8,84,0,8,108,0,12,28,80,82,1,0,0,20,0,4,0,15,232,9,15,41,7,6,111,0,9,188,0,14,196,0,14,153,0,15,1,0,216,14,4,1,15,44,1,3,14,84,1,15,56,83,7,48,5,0,0,84,78,31,36,208,77,1,15,188,1,17,23,6,4,0,41,7,7,15,0,15,204,1,3,15,220,1,1,15,249,0,20,15,39,0,46,31,6,144,0,255,255,255,154,15,108,0,53,15,164,4,15,15,100,88,22,98,56,19,0,0,70,0,4,0,47,8,0,1,0,62,1,120,121,1,88,88,15,8,0,3,2,229,14,47,6,6,38,0,7,14,112,5,15,137,0,35,15,70,0,123,31,6,57,7,48,15,70,0,34,15,114,8,140,15,24,1,119,15,48,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,53,15,164,1,255,6,15,70,0,49,15,82,18,53,31,0,212,148,88,6,97,144,9,156,29,9,160,145,8,9,0,15,236,28,26,5,167,144,9,156,29,9,144,145,8,9,0,14,164,29,15,184,0,22,14,8,0,14,208,0,15,184,0,37,14,8,0,14,208,0,15,184,0,31,10,8,0,14,76,150,15,184,0,41,10,8,0,14,76,150,12,184,0,16,141,72,108,3,4,0,15,104,21,42,22,1,10,0,38,7,1,11,0,38,7,1,11,0,38,7,1,11,0,37,7,1,33,0,5,34,0,35,1,7,137,40,23,69,211,37,31,8,103,0,1,2,99,0,2,4,0,17,1,42,0,19,1,14,0,6,127,0,0,6,0,15,226,0,24,38,1,0,170,0,20,1,149,0,1,11,0,42,7,1,11,0,51,1,1,7,193,0,37,1,7,11,0,2,213,0,2,11,0,2,34,0,29,1,248,0,63,0,1,1,149,0,13,15,160,0,41,14,138,0,15,149,0,28,83,245,0,0,0,15,4,0,15,116,23,60,6,30,2,11,34,2,3,15,0,6,222,0,9,213,0,9,110,1,42,0,0,114,1,27,0,225,0,12,229,0,12,233,0,6,237,0,12,158,0,14,253,0,15,81,144,89,31,0,253,0,111,14,106,108,12,126,146,1,141,111,3,167,109,30,13,8,0,4,32,0,7,118,146,15,84,0,15,34,6,6,154,109,82,8,8,8,7,6,8,0,23,8,8,0,4,32,0,15,84,0,34,82,9,9,9,7,6,8,0,23,9,8,0,15,84,0,42,82,10,10,10,7,6,8,0,23,10,8,0,15,84,0,42,82,11,11,11,7,6,8,0,23,11,8,0,15,84,0,42,82,12,12,12,7,6,8,0,23,12,8,0,15,84,0,42,82,14,14,14,7,6,8,0,23,14,8,0,14,84,0,15,248,1,66,19,55,235,115,15,84,0,3,1,29,0,51,1,1,13,226,2,0,5,0,1,20,0,15,63,0,25,10,7,10,10,63,0,15,210,0,5,23,0,217,4,34,1,1,97,3,23,1,206,48,1,8,0,15,114,3,0,15,84,0,97,6,91,0,39,1,0,115,49,2,92,0,1,16,0,14,168,5,15,84,0,103,3,67,0,15,8,0,6,47,0,0,84,0,81,15,232,46,27,9,1,0,14,17,45,15,92,0,37,42,7,7,145,46,8,11,0,14,102,0,15,48,46,31,42,7,0,200,45,4,84,47,31,7,180,48,53,5,107,0,3,3,48,3,8,0,31,0,180,48,50,7,149,46,7,156,46,15,160,47,49,13,121,1,15,92,0,49,5,11,1,9,2,0,14,127,14,15,132,2,40,42,7,7,4,0,14,92,0,15,128,50,47,6,32,2,14,232,2,15,40,2,40,11,8,0,15,112,1,48,27,7,43,3,7,212,1,15,92,0,56,31,0,132,2,64,11,126,50,6,200,0,31,0,184,0,53,8,80,4,15,60,3,63,25,7,40,2,15,112,1,66,14,8,0,11,92,0,83,101,0,0,0,9,4,0,15,60,3,13,20,6,159,123,0,205,157,2,146,17,45,13,6,9,0,4,27,0,3,46,0,3,213,122,15,109,0,21,5,178,52,0,86,158,2,160,3,45,13,7,9,0,4,27,0,3,46,0,5,9,0,4,118,0,15,218,0,41,19,6,191,0,13,9,0,15,218,0,56,4,182,0,13,9,0,15,218,0,74,5,191,0,5,180,1,15,218,0,61,0,2,11,3,182,0,3,9,0,20,14,200,0,7,27,0,10,218,0,18,14,1,0,15,218,0,50,14,227,0,15,218,0,63,14,227,0,15,218,0,17,98,20,1,0,0,16,0,4,0,14,59,15,15,44,129,235,15,28,1,5,28,7,1,0,11,31,5,15,16,0,205,15,56,2,13,15,43,1,233,15,46,4,29,21,1,203,12,53,13,7,13,13,20,11,18,0,15,231,12,3,15,41,7,1,15,18,3,76,15,109,0,19,46,7,0,126,11,25,7,246,59,11,99,8,14,47,10,15,109,0,21,7,36,10,15,9,0,4,6,255,4,8,238,25,9,138,2,15,109,0,19,14,242,11,14,11,61,14,18,0,13,54,0,15,218,0,22,8,109,60,26,7,9,0,4,209,0,9,89,1,14,74,1,15,180,1,96,162,148,0,2,0,160,0,0,0,205,0,127,166,4,28,0,53,105,102,102,4,0,79,8,4,2,255,4,0,255,255,83,8,116,2,8,124,2,63,103,102,102,4,0,255,255,84,12,132,2,14,124,2,15,132,2,255,255,85,15,124,2,255,255,103,8,132,2,15,128,2,255,255,255,255,255,174,63,77,0,255,128,2,255,255,104,34,0,155,187,250,63,188,204,255,128,2,255,255,96,42,39,231,63,253,63,168,119,255,0,5,255,255,96,49,50,226,0,124,2,62,169,112,132,124,2,15,128,2,255,217,42,232,241,140,4,15,20,0,5,12,24,0,14,20,0,10,44,0,14,100,0,14,36,0,0,59,210,15,124,1,165,63,167,171,178,8,0,26,8,56,0,4,4,0,15,16,0,1,8,20,0,15,16,0,4,15,80,0,10,14,28,0,14,72,0,14,56,0,15,128,2,99,14,116,2,14,88,2,14,16,0,15,64,0,19,12,40,0,8,72,0,14,36,0,15,128,2,219,12,24,0,14,12,0,15,48,0,2,15,136,0,18,15,72,0,12,15,128,2,130,14,216,4,15,128,2,43,15,76,5,8,15,128,2,242,15,152,4,0,15,56,2,38,14,72,2,14,128,2,15,160,0,8,15,0,5,118,14,28,0,15,0,5,51,14,72,0,15,0,5,183,14,8,2,15,24,2,26,15,0,5,57,15,128,2,186,15,20,10,16,15,252,9,37,15,128,2,230,15,16,5,29,12,72,0,15,136,0,25,15,72,0,12,15,128,2,65,15,4,0,255,255,43,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,15,80,57,255,246,15,128,2,105,63,139,138,136,4,0,255,235,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,15,4,0,255,242,15,128,2,48,15,4,0,255,255,43,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,63,54,54,54,4,0,255,243,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,51,31,103,124,82,255,255,46,78,105,102,102,0,128,2,15,124,2,255,255,89,14,128,2,15,124,2,255,255,89,14,128,2,15,124,2,255,255,89,14,128,2,15,124,2,255,255,101,14,128,2,15,124,2,255,255,77,15,128,2,4,15,124,2,255,255,104,14,132,2,15,124,2,255,255,97,14,132,2,15,124,2,255,255,97,8,132,2,15,4,0,255,255,55,15,116,2,21,255,3,67,66,77,80,148,0,2,0,160,0,0,0,205,0,0,0,32,0,1,0,3,14,156,2,15,4,0,255,255,69,15,124,2,0,15,36,20,255,255,96,15,124,2,255,255,103,12,132,2,14,124,2,15,156,122,255,255,255,255,255,255,255,255,31,63,77,0,255,128,2,255,255,104,191,0,155,255,255,232,241,255,255,188,204,255,128,2,255,255,96,34,39,231,124,2,4,4,0,63,168,119,255,0,5,255,255,96,49,50,226,0,124,2,62,169,112,132,124,2,15,128,2,255,217,42,232,241,140,4,15,20,0,5,12,24,0,14,20,0,10,44,0,14,100,0,14,36,0,63,255,173,41,172,1,214,53,167,171,178,4,0,15,16,0,1,8,20,0,14,16,0,15,80,0,15,14,36,0,15,80,0,6,14,64,0,15,128,2,100,14,116,2,14,88,2,14,16,0,15,64,0,19,12,40,0,8,72,0,15,44,4,225,8,248,1,8,16,2,14,12,0,15,48,0,6,15,32,0,34,14,48,0,15,128,2,127,14,216,4,15,128,2,43,15,76,5,8,15,128,2,234,15,144,4,0,15,48,2,38,14,64,2,15,128,2,31,14,192,2,15,0,5,103,14,28,0,15,0,5,51,14,72,0,15,0,5,235,14,20,0,15,0,5,42,15,128,2,194,15,20,10,16,15,252,9,17,15,0,5,254,12,16,0,15,160,9,16,15,80,5,38,15,80,0,8,15,128,2,65,15,156,162,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,54,31,8,28,190,255,255,110,0,60,0,0,132,44,15,4,0,255,234,15,128,2,255,255,255,255,255,255,255,255,201,8,108,35,15,16,0,25,15,64,0,15,15,128,2,255,255,25,57,83,37,126,64,2,8,16,0,0,12,0,12,16,0,46,232,241,64,0,0,4,0,14,16,0,15,128,2,255,255,21,15,8,0,13,14,244,4,15,0,5,255,255,61,15,8,0,13,12,208,4,8,128,2,14,32,5,10,48,5,15,0,10,255,255,71,47,232,241,0,5,255,255,53,4,176,4,4,224,4,15,16,0,56,15,128,2,255,255,20,15,4,0,72,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,218,63,188,182,180,4,0,2,15,0,5,255,255,91,49,53,54,52,8,0,49,54,82,171,4,0,14,0,5,15,128,2,255,255,77,0,20,81,4,124,2,15,128,2,255,34,15,68,6,4,15,116,2,255,15,12,12,0,34,177,217,252,22,15,0,5,255,34,15,68,6,0,15,128,2,255,19,0,56,1,0,12,0,0,8,0,4,116,25,0,12,0,4,80,1,8,96,1,12,20,0,15,128,2,249,14,68,6,15,120,12,255,16,0,80,2,15,60,6,5,4,112,2,12,4,0,15,128,2,249,15,68,6,8,15,0,5,255,19,14,100,2,14,4,0,15,128,2,255,18,15,68,6,28,15,128,7,254,15,108,2,24,15,128,2,250,15,68,6,36,15,148,7,255,11,31,77,128,22,255,25,15,68,6,12,15,128,2,255,27,14,28,1,15,128,2,195,0,252,101,15,4,0,53,0,128,2,47,168,119,68,6,11,14,112,0,15,4,0,255,4,15,48,1,83,15,128,22,207,14,248,19,15,0,30,255,255,89,14,224,9,15,128,2,255,255,1,15,68,6,84,15,4,0,255,135,15,0,30,255,166,12,84,98,15,0,5,255,130,15,4,0,193,47,232,241,4,0,9,15,0,5,157,15,128,2,255,156,14,124,2,15,132,2,1,15,128,2,255,255,69,14,124,2,15,132,2,9,15,128,2,255,255,49,12,72,2,15,128,2,33,14,148,2,15,128,2,255,255,17,47,232,241,4,0,77,15,128,2,255,244,15,12,2,1,47,232,241,128,2,255,255,81,15,48,7,11,15,132,2,85,15,128,2,255,255,1,15,4,0,53,47,177,217,128,2,255,255,9,15,92,2,49,47,177,217,36,0,19,47,177,217,128,2,255,255,1,14,24,2,15,56,2,19,47,177,217,4,0,43,14,192,2,15,128,2,255,228,8,132,2,15,4,0,105,15,204,5,63,15,128,2,255,176,15,32,0,45,8,40,0,15,128,2,11,15,0,28,73,15,128,17,255,152,12,12,2,12,172,35,12,32,0,15,200,2,11,15,36,0,21,15,0,28,81,15,128,22,255,160,0,120,2,4,20,148,14,48,38,15,0,28,161,15,128,2,255,160,0,16,153,46,39,231,128,2,15,0,28,183,15,128,27,255,140,14,44,43,15,0,28,197,15,128,2,255,76,14,116,45,15,0,28,153,15,128,2,255,172,15,200,9,169,31,168,0,28,90,15,128,2,118,15,200,9,255,79,31,168,0,28,94,15,128,2,195,15,72,26,141,30,168,128,7,15,0,28,255,19,15,0,5,153,4,204,74,23,168,108,62,15,4,0,44,15,0,28,255,111,15,128,2,141,38,77,0,124,2,0,88,4,0,192,0,4,228,69,15,128,2,48,15,0,28,255,111,15,128,2,121,15,164,5,5,4,172,55,8,192,0,8,128,2,15,12,5,40,15,0,28,255,111,15,128,2,113,8,116,2,8,236,113,47,232,241,44,114,3,0,12,0,0,128,2,0,8,0,31,168,140,7,255,45,14,32,0,15,0,28,69,15,128,22,131,47,232,241,128,2,3,12,4,0,15,200,10,5,4,140,2,15,12,12,9,0,160,2,4,4,0,4,140,77,15,188,12,4,15,72,0,36,15,0,65,255,168,15,128,2,0,15,4,0,30,14,0,5,15,4,0,255,132,15,148,81,1,15,128,2,125,14,228,4,15,148,2,6,14,128,7,15,4,0,255,145,4,156,18,4,204,16,15,128,2,145,8,4,0,4,244,6,15,8,20,123,15,204,7,255,24,12,24,94,15,128,2,157,4,192,1,14,128,2,15,244,4,255,136,8,160,6,4,12,0,4,24,94,15,128,2,181,14,40,21,15,4,0,255,120,0,116,2,46,177,217,24,94,15,128,2,112,15,84,56,41,15,4,5,255,151,14,24,94,15,128,12,119,15,84,28,27,15,128,2,255,164,15,24,94,9,15,128,2,117,15,84,28,43,15,128,7,255,152,15,128,2,181,14,92,23,15,4,0,255,156,4,52,24,15,128,2,112,15,4,0,255,143,15,208,103,5,15,80,0,37,4,252,4,0,76,34,15,128,2,255,162,15,68,20,11,15,88,0,39,0,56,43,38,0,155,16,0,4,76,43,4,116,0,0,48,2,4,184,19,15,192,0,49,47,177,217,0,5,255,252,4,148,208,8,84,11,4,144,2,12,56,22,15,116,0,51,15,128,92,255,160,31,168,40,45,88,15,56,22,9,15,108,0,48,15,0,10,255,255,8,8,128,2,47,177,217,80,116,11,15,88,7,0,15,0,5,21,15,128,7,255,255,24,15,80,116,20,15,128,2,255,255,48,15,128,12,3,15,208,113,6,15,128,2,255,151,14,152,1,15,48,2,75,31,177,52,17,7,15,56,22,54,15,212,0,8,15,128,2,255,123,12,148,62,15,176,14,85,31,177,52,17,60,4,4,0,14,248,19,15,128,2,255,144,8,200,6,31,177,48,12,72,14,192,4,14,52,17,15,200,5,80,15,128,7,255,215,15,128,2,1,4,52,7,12,12,0,0,180,14,15,200,0,85,14,236,7,15,128,12,255,196,15,128,7,4,15,52,17,78,15,124,2,8,14,112,10,15,128,2,255,201,4,128,12,4,8,0,42,0,155,20,0,15,52,17,69,15,120,2,8,15,248,12,5,15,128,17,255,203,42,0,155,128,7,4,8,5,15,52,17,24,15,120,2,70,14,136,2,15,0,20,255,200,8,8,10,15,52,17,41,14,184,4,15,120,2,47,14,136,2,15,128,2,255,28,14,116,36,15,128,2,139,12,188,0,15,108,37,44,15,116,2,1,15,132,2,45,15,128,2,255,15,15,248,38,4,15,136,12,158,15,244,4,20,15,4,0,97,15,128,2,254,15,200,8,20,15,56,27,146,14,128,2,15,124,2,6,15,128,2,230,15,100,57,12,15,4,0,255,207,15,0,5,125,15,176,26,44,15,104,6,65,15,20,5,45,15,228,5,145,15,128,7,246,14,176,26,15,104,1,78,15,148,2,218,15,188,0,25,4,180,59,4,192,27,15,128,7,255,255,35,15,76,1,41,12,64,30,15,128,7,196,15,4,0,255,71,15,204,8,27,15,64,30,79,15,4,0,0,15,0,70,109,15,220,11,255,75,12,204,8,15,244,4,21,47,232,241,64,30,11,15,172,6,55,15,128,2,255,204,15,32,2,31,15,196,163,30,15,128,2,255,243,15,48,11,57,15,196,163,36,15,0,10,255,231,15,176,18,16,15,116,47,61,15,0,10,255,251,14,228,9,15,100,0,63,0,120,7,15,192,0,12,15,128,7,209,15,172,17,9,15,128,7,255,55,15,96,1,4,15,128,2,255,3,12,124,6,14,176,27,15,92,10,255,124,15,128,2,193,14,124,6,15,0,30,255,255,29,15,160,3,56,15,128,2,255,255,100,14,4,0,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,169,63,255,155,63,4,0,255,235,15,128,2,255,94,4,176,20,15,128,2,255,255,99,12,48,28,15,128,2,255,255,99,8,48,28,15,128,2,255,255,31,14,60,7,15,128,7,255,204,8,40,13,15,248,0,61,14,92,0,15,60,7,255,0,14,128,1,15,0,5,255,12,12,44,1,14,56,1,15,56,0,22,15,60,7,13,15,8,2,101,15,0,5,255,91,15,160,1,25,14,72,2,15,56,0,30,15,60,7,21,15,32,3,61,15,0,10,255,199,14,52,4,15,56,0,30,15,32,3,77,15,128,2,255,187,12,220,1,14,72,2,15,56,0,30,15,32,3,81,15,0,5,255,191,15,8,10,56,15,32,3,61,15,128,2,255,227,15,144,4,89,14,44,12,15,232,2,79,8,32,62,15,32,0,8,15,80,0,34,15,4,0,20,15,128,2,186,14,212,0,15,80,19,14,15,0,20,154,14,8,10,15,0,30,255,255,89,14,4,0,15,128,2,255,255,255,250,15,32,38,0,15,0,5,255,255,255,133,15,168,3,0,15,128,2,255,135,15,84,5,20,15,8,3,255,54,15,128,12,255,255,111,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,15,4,0,255,242,15,128,2,48,15,4,0,255,255,43,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,63,54,54,54,4,0,255,243,15,128,2,255,255,255,255,255,255,255,248,8,68,58,15,16,0,17,8,20,0,8,32,0,15,228,0,0,15,80,0,34,15,84,0,25,4,12,0,15,8,0,9,14,60,0,14,32,0,15,80,0,4,15,156,0,9,15,128,2,255,59,15,8,0,57,15,240,1,0,15,20,0,10,12,32,0,14,48,0,15,80,0,6,15,128,2,21,15,240,0,69,15,0,5,255,59,15,176,4,13,15,240,1,41,14,100,2,15,128,2,11,15,100,4,0,15,160,0,13,15,64,0,29,15,128,2,49,15,0,5,255,187,15,8,5,37,15,64,0,0,15,0,5,255,163,14,120,1,15,16,9,14,15,128,2,34,15,112,10,0,15,80,10,34,15,80,2,0,14,0,5,15,128,2,20,14,164,0,15,16,10,10,14,4,10,15,0,20,255,255,255,255,255,255,255,255,196,8,8,0,12,180,0,15,48,20,24,15,128,2,255,255,24,15,8,0,0,15,128,14,30,15,24,0,0,15,0,5,255,255,28,15,224,4,0,15,4,22,9,15,64,0,1,15,0,5,255,255,52,14,100,2,14,124,2,15,16,0,20,15,0,30,255,255,52,31,54,0,10,23,15,128,2,255,255,36,15,4,0,64,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,43,53,143,147,154,4,0,15,16,0,1,8,20,0,15,16,0,5,15,80,0,8,15,36,0,10,14,128,0,15,16,0,55,15,112,0,21,15,156,0,1,12,8,0,15,48,0,4,15,32,0,29,15,128,2,255,7,8,8,0,15,12,0,0,15,48,0,13,15,32,0,34,15,240,1,0,15,144,0,13,15,32,0,34,14,112,0,14,8,2,15,144,0,4,15,240,0,50,14,120,0,15,0,5,255,12,15,128,2,29,15,64,5,4,15,128,2,26,15,192,4,17,15,124,5,0,15,128,2,38,14,156,5,15,128,2,46,15,0,5,255,47,14,208,1,15,0,5,187,15,168,4,25,12,16,3,15,240,0,52,15,128,2,255,19,15,0,10,8,14,64,4,15,0,10,52,15,128,2,32,15,48,10,54,15,52,2,4,15,32,6,1,15,32,0,25,15,0,5,255,14,15,0,20,255,255,255,255,255,255,255,113,31,103,124,82,255,255,46,78,0,0,0,0,128,2,15,124,2,255,255,89,14,128,2,15,124,2,255,255,89,14,128,2,15,124,2,255,255,89,14,128,2,15,124,2,255,255,101,14,128,2,15,124,2,255,255,77,15,128,2,4,15,124,2,255,255,104,14,132,2,15,124,2,255,255,97,14,132,2,15,124,2,255,255,97,8,132,2,15,4,0,255,255,55,15,116,2,21,255,2,67,66,77,80,148,0,2,0,160,0,0,0,205,0,0,0,32,156,2,8,15,4,0,255,255,83,15,124,2,5,63,207,195,197,4,0,255,255,76,143,224,210,212,255,242,227,229,255,160,22,1,127,140,134,135,255,173,164,166,128,2,255,255,76,0,124,2,4,4,0,8,28,30,113,75,75,74,255,107,104,104,132,2,14,160,12,15,4,0,255,255,61,49,196,184,186,128,2,53,189,177,181,144,7,0,128,2,0,4,0,14,124,2,15,4,0,255,255,69,127,174,156,166,255,138,129,134,128,2,255,255,255,49,63,77,0,255,128,2,255,255,104,34,0,155,200,82,63,188,204,255,128,2,255,255,96,42,39,231,208,173,63,168,119,255,0,5,255,255,96,68,50,226,0,255,140,251,14,124,2,15,128,2,255,216,12,92,178,15,20,0,5,12,24,0,14,20,0,10,44,0,14,100,0,14,36,0,63,255,173,41,132,1,166,63,167,171,178,8,0,26,8,56,0,4,4,0,15,16,0,1,8,20,0,15,16,0,4,15,80,0,10,14,28,0,14,72,0,14,56,0,15,128,2,99,14,116,2,14,88,2,14,16,0,15,64,0,19,12,40,0,8,72,0,14,36,0,15,128,2,219,12,24,0,14,12,0,15,48,0,2,15,136,0,18,15,72,0,12,15,128,2,130,14,216,4,15,128,2,43,15,76,5,8,15,128,2,242,15,152,4,0,15,56,2,38,14,72,2,14,128,2,15,160,0,8,15,0,5,118,14,28,0,15,0,5,51,14,72,0,15,0,5,183,14,8,2,15,24,2,26,15,0,5,57,15,128,2,186,15,20,10,16,15,252,9,37,15,128,2,230,15,16,5,29,12,72,0,15,136,0,25,15,72,0,12,15,128,2,73,15,4,0,255,255,35,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,31,8,28,190,255,255,38,15,128,2,57,0,132,44,15,4,0,255,234,15,128,2,255,255,255,255,255,255,255,255,201,8,108,35,15,16,0,25,15,64,0,15,15,128,2,255,255,25,57,83,37,126,64,2,8,16,0,0,12,0,12,16,0,46,232,241,64,0,0,4,0,14,16,0,15,128,2,255,255,21,15,8,0,13,14,244,4,15,0,5,255,255,61,15,8,0,13,12,208,4,8,128,2,14,32,5,10,48,5,15,0,10,255,255,71,47,232,241,0,5,255,255,53,4,176,4,4,224,4,15,16,0,56,15,128,2,255,255,20,15,4,0,72,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,218,63,188,182,180,4,0,2,15,0,5,255,255,91,49,53,54,52,8,0,49,54,82,171,4,0,14,0,5,15,128,2,255,255,77,0,20,81,4,124,2,15,128,2,255,34,15,68,6,4,15,116,2,255,15,12,12,0,34,177,217,252,22,15,0,5,255,34,15,68,6,0,15,128,2,255,19,0,56,1,0,12,0,0,8,0,4,116,25,0,12,0,4,80,1,8,96,1,12,20,0,15,128,2,249,14,68,6,15,120,12,255,16,0,80,2,15,60,6,5,4,112,2,12,4,0,15,128,2,249,15,68,6,8,15,0,5,255,19,14,100,2,14,4,0,15,128,2,255,18,15,68,6,28,15,128,7,254,15,108,2,24,15,128,2,250,15,68,6,36,15,148,7,255,11,31,77,128,22,255,25,15,68,6,12,15,128,2,255,27,14,28,1,15,128,2,195,0,252,101,15,4,0,53,0,128,2,47,168,119,68,6,11,14,112,0,15,4,0,255,4,15,48,1,83,15,128,22,207,14,248,19,15,0,30,255,255,89,14,224,9,15,128,2,255,255,1,15,68,6,84,15,4,0,255,135,15,0,30,255,166,12,84,98,15,0,5,255,130,15,4,0,193,47,232,241,4,0,9,15,0,5,157,15,128,2,255,156,14,124,2,15,132,2,1,15,128,2,255,255,69,14,124,2,15,132,2,9,15,128,2,255,255,49,12,72,2,15,128,2,33,14,148,2,15,128,2,255,255,17,47,232,241,4,0,77,15,128,2,255,244,15,12,2,1,47,232,241,128,2,255,255,81,15,48,7,11,15,132,2,85,15,128,2,255,255,1,15,4,0,53,47,177,217,128,2,255,255,9,15,92,2,49,47,177,217,36,0,19,47,177,217,128,2,255,255,1,14,24,2,15,56,2,19,47,177,217,4,0,43,14,192,2,15,128,2,255,228,8,132,2,15,4,0,105,15,204,5,63,15,128,2,255,176,15,32,0,45,8,40,0,15,128,2,11,15,0,28,73,15,128,17,255,152,12,12,2,12,172,35,12,32,0,15,200,2,11,15,36,0,21,15,0,28,81,15,128,22,255,160,0,120,2,4,20,148,14,48,38,15,0,28,161,15,128,2,255,160,0,16,153,46,39,231,128,2,15,0,28,183,15,128,27,255,140,14,44,43,15,0,28,197,15,128,2,255,76,14,116,45,15,0,28,153,15,128,2,255,172,15,200,9,169,31,168,0,28,90,15,128,2,118,15,200,9,255,79,31,168,0,28,94,15,128,2,195,15,72,26,141,30,168,128,7,15,0,28,255,19,15,0,5,153,4,204,74,23,168,108,62,15,4,0,44,15,0,28,255,111,15,128,2,141,38,77,0,124,2,0,88,4,0,192,0,4,228,69,15,128,2,48,15,0,28,255,111,15,128,2,121,15,164,5,5,4,172,55,8,192,0,8,128,2,15,12,5,40,15,0,28,255,111,15,128,2,113,8,116,2,8,236,113,47,232,241,44,114,3,0,12,0,0,128,2,0,8,0,31,168,140,7,255,45,14,32,0,15,0,28,69,15,128,22,131,47,232,241,128,2,3,12,4,0,15,200,10,5,4,140,2,15,12,12,9,0,160,2,4,4,0,4,140,77,15,188,12,4,15,72,0,36,15,0,65,255,168,15,128,2,0,15,4,0,30,14,0,5,15,4,0,255,132,15,148,81,1,15,128,2,125,14,228,4,15,148,2,6,14,128,7,15,4,0,255,145,4,156,18,4,204,16,15,128,2,145,8,4,0,4,244,6,15,8,20,123,15,204,7,255,24,12,24,94,15,128,2,157,4,192,1,14,128,2,15,244,4,255,136,8,160,6,4,12,0,4,24,94,15,128,2,181,14,40,21,15,4,0,255,120,0,116,2,46,177,217,24,94,15,128,2,112,15,84,56,41,15,4,5,255,151,14,24,94,15,128,12,119,15,84,28,27,15,128,2,255,164,15,24,94,9,15,128,2,117,15,84,28,43,15,128,7,255,152,15,128,2,181,14,92,23,15,4,0,255,156,4,52,24,15,128,2,112,15,4,0,255,143,15,208,103,5,15,80,0,37,4,252,4,0,76,34,15,128,2,255,162,15,68,20,11,15,88,0,39,0,56,43,38,0,155,16,0,4,76,43,4,116,0,0]);fileData0.push.apply(fileData0,[48,2,4,184,19,15,192,0,49,47,177,217,0,5,255,252,4,148,208,8,84,11,4,144,2,12,56,22,15,116,0,51,15,128,92,255,160,31,168,40,45,88,15,56,22,9,15,108,0,48,15,0,10,255,255,8,8,128,2,47,177,217,80,116,11,15,88,7,0,15,0,5,21,15,128,7,255,255,24,15,80,116,20,15,128,2,255,255,48,15,128,12,3,15,208,113,6,15,128,2,255,151,14,152,1,15,48,2,75,31,177,52,17,7,15,56,22,54,15,212,0,8,15,128,2,255,123,12,148,62,15,176,14,85,31,177,52,17,60,4,4,0,14,248,19,15,128,2,255,144,8,200,6,31,177,48,12,72,14,192,4,14,52,17,15,200,5,80,15,128,7,255,215,15,128,2,1,4,52,7,12,12,0,0,180,14,15,200,0,85,14,236,7,15,128,12,255,196,15,128,7,4,15,52,17,78,15,124,2,8,14,112,10,15,128,2,255,201,4,128,12,4,8,0,42,0,155,20,0,15,52,17,69,15,120,2,8,15,248,12,5,15,128,17,255,203,42,0,155,128,7,4,8,5,15,52,17,24,15,120,2,70,14,136,2,15,0,20,255,200,8,8,10,15,52,17,41,14,184,4,15,120,2,47,14,136,2,15,128,2,255,28,14,116,36,15,128,2,139,12,188,0,15,108,37,44,15,116,2,1,15,132,2,45,15,128,2,255,15,15,248,38,4,15,136,12,158,15,244,4,20,15,4,0,97,15,128,2,254,15,200,8,20,15,56,27,146,14,128,2,15,124,2,6,15,128,2,230,15,100,57,12,15,4,0,255,207,15,0,5,125,15,176,26,44,15,104,6,65,15,20,5,45,15,228,5,145,15,128,7,246,14,176,26,15,104,1,78,15,148,2,218,15,188,0,25,4,180,59,4,192,27,15,128,7,255,255,35,15,76,1,41,12,64,30,15,128,7,196,15,4,0,255,71,15,204,8,27,15,64,30,79,15,4,0,0,15,0,70,109,15,220,11,255,75,12,204,8,15,244,4,21,47,232,241,64,30,11,15,172,6,55,15,128,2,255,204,15,32,2,31,15,196,163,30,15,128,2,255,243,15,48,11,57,15,196,163,36,15,0,10,255,231,15,176,18,16,15,116,47,61,15,0,10,255,251,14,228,9,15,100,0,63,0,120,7,15,192,0,12,15,128,7,209,15,172,17,9,15,128,7,255,55,15,96,1,4,15,128,2,255,3,12,124,6,14,176,27,15,92,10,255,124,15,128,2,193,14,124,6,15,0,30,255,255,29,15,160,3,56,15,128,2,255,255,100,14,4,0,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,169,63,255,155,63,4,0,255,235,15,128,2,255,94,4,176,20,15,128,2,255,255,99,12,48,28,15,128,2,255,255,99,8,48,28,15,128,2,255,255,31,14,60,7,15,128,7,255,204,8,40,13,15,248,0,61,14,92,0,15,60,7,255,0,14,128,1,15,0,5,255,12,12,44,1,14,56,1,15,56,0,22,15,60,7,13,15,8,2,101,15,0,5,255,91,15,160,1,25,14,72,2,15,56,0,30,15,60,7,21,15,32,3,61,15,0,10,255,199,14,52,4,15,56,0,30,15,32,3,77,15,128,2,255,187,12,220,1,14,72,2,15,56,0,30,15,32,3,81,15,0,5,255,191,15,8,10,56,15,32,3,61,15,128,2,255,227,15,144,4,89,14,44,12,15,232,2,79,8,32,62,15,32,0,8,15,80,0,34,15,4,0,20,15,128,2,186,14,212,0,15,80,19,14,15,0,20,154,14,8,10,15,0,30,255,255,89,14,4,0,15,128,2,255,255,255,250,15,32,38,0,15,0,5,255,255,255,133,15,168,3,0,15,128,2,255,135,15,84,5,20,15,8,3,255,54,15,128,12,255,255,111,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,15,4,0,255,242,15,128,2,56,15,4,0,255,255,35,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,63,54,54,54,4,0,255,243,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,230,49,93,85,88,4,0,0,132,2,15,128,82,255,255,95,4,124,2,0,4,0,0,120,2,78,0,0,0,0,128,2,15,124,2,255,255,89,14,128,2,15,124,2,255,255,93,14,128,2,15,124,2,255,255,93,14,128,2,15,124,2,255,255,93,14,128,2,15,124,2,255,255,93,12,128,2,63,75,65,68,124,2,255,255,92,9,132,2,111,65,68,255,75,56,63,4,0,255,255,52,15,124,2,25,9,132,2,47,56,63,4,0,255,255,56,14,124,2,15,132,2,19,15,4,0,255,255,55,15,116,2,21,208,67,66,77,80,244,0,0,0,32,0,0,0,7,132,2,7,28,0,31,5,1,0,49,31,13,1,0,4,3,31,0,31,6,55,0,5,3,8,0,34,7,6,1,0,27,13,8,0,15,155,0,49,0,252,0,19,84,244,0,27,8,252,0,115,0,0,6,6,6,7,6,9,0,3,18,0,4,26,0,15,88,1,113,15,1,0,44,4,88,1,13,8,0,15,183,1,12,31,13,88,1,46,15,96,1,1,15,88,1,27,19,69,84,1,12,88,1,0,73,0,0,196,0,15,173,1,0,1,23,0,5,105,0,15,77,0,17,9,88,0,4,75,0,0,2,0,3,3,0,3,14,0,6,84,0,15,77,0,22,21,6,86,0,2,63,0,4,83,0,15,77,0,33,2,223,0,25,6,77,0,3,91,0,47,0,0,154,0,35,27,6,154,0,31,6,154,0,32,4,74,0,1,34,0,36,6,0,150,0,28,13,65,3,14,129,1,15,1,0,40,0,77,0,83,101,0,0,0,9,4,0,15,77,0,7,20,7,8,0,36,7,7,8,0,40,7,7,8,0,4,26,0,20,7,44,0,4,42,0,15,109,0,30,5,57,0,15,9,0,6,1,117,0,22,7,106,0,7,18,0,15,109,0,27,19,7,2,0,12,232,0,15,18,0,13,11,54,0,15,218,0,22,40,0,7,66,0,9,9,0,4,209,0,9,89,1,14,74,1,15,180,1,33,12,10,0,4,45,1,22,7,118,0,3,100,0,4,85,2,15,180,1,38,10,69,0,9,162,1,15,32,0,1,31,7,109,0,32,14,253,1,15,9,0,5,15,33,2,48,14,77,1,15,10,0,23,11,218,0,147,148,0,2,0,160,0,0,0,205,227,6,7,31,0,31,255,4,0,255,255,119,14,203,20,15,4,0,255,255,69,15,124,2,255,255,107,14,132,2,14,124,2,15,132,2,255,255,86,15,128,2,255,255,255,255,255,179,63,77,0,255,128,2,255,255,104,34,0,155,127,179,63,188,204,255,128,2,255,255,96,42,39,231,3,182,63,168,119,255,0,5,255,255,96,49,50,226,0,124,2,62,169,112,132,124,2,15,128,2,255,217,12,143,186,15,20,0,5,12,24,0,14,20,0,10,44,0,14,100,0,14,36,0,63,255,173,41,124,1,166,63,167,171,178,8,0,26,8,56,0,4,4,0,15,16,0,1,8,20,0,15,16,0,4,15,80,0,10,14,28,0,14,72,0,14,56,0,15,128,2,99,14,116,2,14,88,2,14,16,0,15,64,0,19,12,40,0,8,72,0,14,36,0,15,128,2,219,12,24,0,14,12,0,15,48,0,2,15,136,0,18,15,72,0,12,15,128,2,130,14,216,4,15,128,2,43,15,76,5,8,15,128,2,242,15,152,4,0,15,56,2,38,14,72,2,14,128,2,15,160,0,8,15,0,5,118,14,28,0,15,0,5,51,14,72,0,15,0,5,183,14,8,2,15,24,2,26,15,0,5,57,15,128,2,186,15,20,10,16,15,252,9,37,15,128,2,230,15,16,5,29,12,72,0,15,136,0,25,15,72,0,12,15,128,2,65,15,4,0,255,255,43,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,15,56,57,255,255,47,15,64,0,49,63,139,138,136,4,0,255,235,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,15,4,0,255,242,15,128,2,48,15,4,0,255,255,43,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,63,54,54,54,4,0,255,243,15,128,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,157,14,60,2,15,128,2,255,255,89,15,124,2,44,15,128,2,45,15,124,2,255,255,52,15,128,2,40,15,124,2,255,255,52,15,128,2,40,15,124,2,255,255,52,15,128,2,40,15,124,2,255,255,52,15,128,2,40,15,124,2,255,255,52,15,128,2,40,15,124,2,255,255,52,15,128,2,40,15,124,2,255,255,52,15,128,2,40,15,124,2,255,255,52,15,128,2,40,15,124,2,255,255,47,15,128,82,255,255,68,15,192,107,32,15,124,2,255,255,108,14,128,2,15,124,2,255,255,40,15,128,2,37,15,124,2,255,255,108,14,128,2,15,124,2,255,255,32,15,128,2,45,15,124,2,255,255,108,14,128,2,15,124,2,255,255,28,15,132,2,53,15,124,2,255,255,108,14,132,2,15,124,2,255,255,12,15,4,0,255,255,188,255,3,67,66,77,80,20,6,0,0,48,0,0,0,32,0,0,0,8,0,1,0,89,31,6,1,0,24,15,47,0,28,47,6,6,47,0,17,79,7,7,7,7,24,0,5,31,7,48,0,23,46,7,7,49,0,15,119,0,12,31,5,48,0,27,63,5,5,5,48,0,25,16,5,1,0,15,144,0,4,15,192,0,48,17,13,47,0,63,13,6,6,60,1,14,2,13,0,18,13,1,0,14,87,1,12,124,0,18,7,26,1,20,6,47,0,30,5,49,0,9,12,1,0,47,0,6,25,1,2,13,0,14,48,0,1,83,0,14,73,1,13,75,0,47,7,7,96,0,23,5,183,0,15,192,0,2,6,123,0,4,192,0,5,135,0,9,60,1,10,73,1,8,87,1,5,35,2,4,60,1,2,34,0,9,73,1,8,27,0,6,231,0,7,47,0,39,6,6,47,0,5,87,1,14,243,1,15,64,2,4,15,243,1,24,13,160,2,9,183,0,15,0,3,17,14,47,0,15,160,2,68,14,48,0,14,173,0,15,49,0,0,15,173,0,22,30,6,129,4,15,225,4,65,15,158,5,79,15,28,6,255,255,79,16,14,1,0,15,28,6,23,0,46,0,63,5,14,14,28,6,22,0,47,0,0,48,0,31,6,28,6,20,0,47,0,10,48,0,14,28,6,15,96,0,0,15,28,6,22,4,192,0,15,28,6,22,1,32,1,15,28,6,255,255,255,255,232,10,197,4,2,42,6,31,6,56,12,21,1,104,5,47,14,14,56,12,22,2,201,5,31,14,56,12,22,9,42,6,14,56,12,15,96,0,5,15,56,12,22,8,192,0,15,56,12,18,7,42,6,15,28,6,255,255,255,138,14,197,4,15,48,0,10,46,14,14,49,0,15,155,0,9,2,94,10,15,48,0,25,8,239,10,15,48,0,16,1,220,3,15,144,0,4,15,192,0,48,10,239,10,15,84,18,255,255,255,255,255,255,43,15,28,6,255,69,10,171,19,15,28,6,14,4,252,7,14,28,6,15,92,8,22,14,243,1,14,188,8,15,111,5,0,15,28,9,23,14,111,5,15,188,8,68,31,6,28,6,255,255,255,107,9,199,3,15,28,6,15,9,248,3,15,28,6,16,12,9,18,15,28,6,13,0,135,4,7,48,0,15,28,6,11,15,96,0,23,5,51,1,14,192,0,15,28,6,12,8,184,4,15,56,12,255,255,255,255,255,153,4,226,5,15,96,0,20,5,19,6,15,56,12,20,5,163,6,15,56,12,20,5,91,11,15,28,6,20,6,3,7,15,28,6,19,14,139,11,14,28,6,14,71,20,15,28,6,255,255,219,14,31,3,14,28,6,14,48,0,15,196,42,255,255,255,255,220,83,69,0,0,0,7,4,0,15,28,6,1,86,6,9,9,9,6,7,0,2,153,0,0,176,1,3,14,0,15,77,0,27,3,63,0,72,5,5,5,6,14,0,31,6,77,0,33,4,22,0,241,2,9,7,15,0,0,0,10,7,7,7,14,0,0,0,11,7,13,22,0,31,12,231,0,28,0,239,1,6,7,0,15,231,0,44,70,12,12,12,6,7,0,15,77,0,43,35,13,13,7,0,63,13,13,13,7,0,2,15,52,1,27,18,7,6,0,18,7,6,0,8,14,0,4,28,0,15,77,0,30,4,64,0,3,79,0,47,7,7,77,0,33,1,145,4,15,7,0,8,31,0,231,0,35,18,7,6,0,46,7,7,175,0,15,206,1,22,70,10,10,10,6,7,0,15,2,3,46,3,7,0,6,64,4,11,7,0,15,77,0,16,34,8,8,3,0,83,8,8,8,7,8,1,0,2,15,0,1,29,0,23,8,30,3,15,129,1,21,33,11,11,5,0,66,11,11,11,0,4,0,2,18,0,17,0,5,0,5,7,0,15,77,0,16,18,10,6,0,33,10,10,5,0,65,10,7,10,10,8,0,37,10,0,7,0,5,37,0,15,77,0,14,49,9,9,9,7,0,33,1,9,13,0,49,1,9,9,20,0,65,9,9,0,9,14,0,4,1,0,15,77,0,18,32,4,4,40,0,85,2,2,2,7,2,7,0,85,8,8,8,15,8,7,0,16,2,1,0,15,154,0,19,17,8,16,0,85,12,12,8,12,12,7,0,3,129,1,10,21,0,15,52,1,18,5,159,2,22,7,7,0,17,6,21,0,2,15,2,2,6,0,15,29,5,29,1,140,0,40,12,8,154,0,1,14,0,3,7,0,15,52,1,23,0,252,7,0,135,3,50,8,8,14,7,0,22,8,7,0,30,0,156,3,15,129,1,25,85,14,14,14,15,14,7,0,15,129,1,24,98,15,15,15,0,0,15,7,0,3,7,15,1,9,0,32,0,15,252,5,1,223,0,3,7,0,15,52,1,24,7,93,3,15,79,3,44,102,0,6,8,8,8,6,7,0,15,54,4,43,33,1,1,3,0,32,8,8,3,0,17,1,154,0,1,15,0,32,8,1,29,0,34,8,1,37,0,4,238,13,82,1,0,0,16,0,4,0,9,77,0,25,32,1,0,71,0,32,32,7,1,0,72,32,32,32,7,31,0,31,7,16,0,159,11,208,0,12,240,0,0,28,1,38,120,0,128,4,8,28,1,10,9,1,2,81,0,15,10,0,52,5,1,0,0,128,0,19,84,120,0,27,8,128,0,1,161,0,0,8,0,38,7,7,8,0,5,169,1,1,236,0,7,15,0,26,7,44,0,63,32,32,32,92,0,9,12,93,0,20,32,8,0,11,64,1,3,34,0,27,32,91,0,31,0,92,0,10,3,93,0,19,32,85,0,35,32,7,8,0,21,32,117,0,3,10,0,0,24,0,19,7,8,0,36,32,32,56,0,15,184,0,14,26,32,85,0,8,152,0,9,216,0,9,99,0,31,32,184,0,4,15,93,0,23,15,91,0,5,47,0,32,184,0,16,35,0,0,62,0,2,99,1,4,115,1,5,26,2,8,12,0,2,45,0,39,7,32,55,0,15,92,0,12,8,93,0,6,227,2,42,7,7,4,0,7,60,2,8,53,0,15,92,0,13,5,93,1,3,84,0,42,0,32,80,0,35,32,7,140,2,37,7,7,39,0,8,201,4,15,96,3,5,49,0,0,16,1,0,0,9,0,2,231,8,16,16,10,0,1,110,17,15,10,0,16,6,50,0,1,38,14,5,20,0,21,16,90,0,15,128,0,14,19,0,38,0,69,0,0,16,7,58,0,63,6,15,15,10,0,19,6,50,0,38,7,7,20,0,21,16,90,0,15,0,1,15,0,39,0,4,9,0,6,58,0,15,10,0,50,3,90,0,15,0,1,22,7,206,0,15,10,0,13,20,7,10,0,5,246,0,20,7,119,0,13,1,1,15,0,2,32,10,10,0,20,7,10,0,20,7,10,0,20,7,10,0,5,246,1,35,7,7,129,0,17,16,155,17,8,1,2,15,128,0,139,10,128,1,6,88,1,21,7,88,2,3,10,0,24,7,10,0,20,6,10,0,4,148,1,5,117,0,1,51,0,14,128,1,15,128,2,19,5,57,0,31,7,10,0,1,15,108,2,1,14,30,0,15,128,2,39,7,206,0,36,14,14,88,2,15,10,0,3,15,128,3,21,15,128,4,110,15,128,0,244,16,36,231,11,3,4,0,15,106,24,6,15,44,0,32,16,245,242,11,3,4,0,15,194,24,14,5,190,7,2,14,0,1,170,0,5,53,7,17,6,30,0,0,18,0,1,42,0,53,6,32,32,30,7,67,32,7,7,13,4,8,2,14,0,0,15,0,47,7,32,15,0,3,3,82,20,7,30,0,1,61,10,15,15,0,32,3,16,0,31,32,192,0,2,0,253,0,94,19,1,0,0,17,253,0,15,1,0,51,26,17,1,0,58,0,17,7,1,0,116,17,17,7,7,13,13,7,2,0,2,17,0,7,34,0,16,13,17,0,7,33,0,17,13,17,0,15,68,0,0,17,7,48,1,2,69,0,14,34,0,13,136,0,31,0,190,20,50,15,1,0,14,15,189,8,29,1,146,18,47,5,16,10,0,24,2,40,2,10,20,0,14,189,3,15,128,0,51,6,108,0,14,118,0,14,61,4,15,128,0,53,15,118,0,7,15,189,4,63,15,88,1,11,7,118,0,15,61,5,68,15,118,0,7,15,189,5,83,15,118,0,7,15,128,0,89,15,61,7,255,46,4,69,1,15,128,0,91,11,60,3,31,0,128,0,83,15,40,4,6,15,0,1,74,15,40,4,7,15,128,0,73,14,10,5,15,0,1,81,15,148,5,21,11,148,0,15,128,2,44,15,10,6,27,15,128,1,0,15,128,6,64,15,138,7,26,13,128,0,15,77,8,7,5,186,12,23,16,44,13,19,16,30,14,4,14,0,21,16,42,0,0,77,0,98,184,31,0,0,90,0,4,0,47,8,0,1,0,255,25,0,196,23,1,2,0,0,8,0,2,213,23,0,3,0,12,38,0,4,34,0,47,0,14,90,0,23,3,2,0,1,51,0,23,14,16,0,15,38,0,0,31,0,90,0,27,47,14,0,90,0,17,20,14,4,0,15,180,0,69,31,0,180,0,26,4,143,0,3,90,0,47,14,0,90,0,5,4,138,1,15,28,2,113,15,1,0,9,15,38,0,15,31,0,1,0,255,255,255,37,15,63,3,71,7,124,4,15,90,0,62,1,55,6,15,180,0,69,15,90,0,68,47,14,14,90,0,72,14,31,6,15,28,2,58,15,1,0,255,255,255,194,31,13,1,0,62,47,0,0,126,9,255,255,255,131,31,0,126,9,69,47,14,0,180,0,156,14,233,14,15,126,9,255,255,255,255,255,216,0,28,1,1,4,0,17,0,85,51,1,12,0,9,24,0,34,13,0,28,0,7,48,0,54,0,0,5,28,0,5,40,0,28,13,90,0,9,2,0,0,16,0,7,114,0,7,32,0,38,0,13,48,0,53,0,5,0,28,0,4,27,0,8,126,0,14,180,0,4,136,0,5,114,0,3,176,0,13,180,0,0,90,0,23,13,90,0,3,4,0,12,180,0,8,62,0,6,122,0,47,13,0,180,0,5,31,0,180,0,21,39,0,0,100,1,4,72,1,4,180,0,6,128,1,8,48,0,0,94,48,6,28,0,7,12,0,31,0,182,13,255,88,15,1,0,255,255,255,255,224,15,13,32,10,2,148,58,31,5,1,0,1,18,13,6,0,4,54,5,2,6,0,15,167,40,17,2,195,13,15,184,28,2,3,179,69,7,77,0,147,20,50,1,0,144,0,0,0,136,210,67,4,69,0,113,59,51,73,255,64,49,62,4,0,63,0,0,2,4,0,28,31,0,16,0,255,141,15,4,0,65,81,0,255,80,49,58,4,0,8,60,2,14,64,2,15,36,2,22,15,84,2,255,221,6,64,2,0,4,0,15,64,2,8,15,86,117,255,249,15,64,2,25,30,1,56,2,15,4,0,255,247,31,1,64,2,12,29,0,64,2,63,255,173,41,4,0,86,63,83,43,29,4,0,34,15,108,0,89,14,124,0,15,108,0,43,15,152,0,0,15,4,0,122,15,64,2,27,14,180,6,15,32,2,65,15,220,1,77,14,68,0,15,56,0,35,15,184,0,9,15,68,2,213,15,64,2,31,31,1,64,2,78,15,156,1,8,14,24,0,15,92,1,84,15,124,0,0,15,44,2,1,15,16,3,9,15,72,2,57,15,64,2,255,3,15,156,1,25,14,72,1,15,104,1,2,15,132,6,94,15,116,5,53,15,144,0,16,15,64,2,160,15,0,9,87,15,132,4,0,15,44,0,9,15,192,8,106,15,72,2,0,15,116,5,50,15,68,2,145,14,72,11,15,0,9,103,15,88,4,12,15,248,10,126,15,16,2,4,15,68,2,38,14,192,0,15,68,2,18,15,64,11,246,14,12,2,15,124,6,67,15,48,2,40,15,204,6,117,15,0,9,255,7,15,176,6,8,15,224,5,33,15,32,2,65,15,244,0,117,15,0,9,255,3,14,20,4,15,216,3,14,15,100,4,21,15,60,2,142,14,164,0,15,68,2,14,15,0,9,156,14,44,0,15,136,3,85,14,8,2,15,144,1,18,14,132,4,15,124,4,160,31,255,64,20,255,21,15,100,1,44,15,180,6,1,15,4,0,177,15,64,20,205,15,4,0,255,103,15,0,9,160,15,64,2,255,55,15,228,9,12,15,72,2,25,15,0,9,157,15,64,2,255,59,14,44,14,15,236,11,34,15,64,2,255,223,14,108,4,15,108,16,46,15,64,11,145,15,64,2,255,59,15,56,2,4,15,64,2,37,15,0,9,255,219,15,248,1,4,15,64,2,41,15,192,6,255,215,31,83,40,32,3,15,0,9,255,255,8,15,40,11,0,15,68,2,17,15,64,2,29,15,0,9,255,159,14,232,1,15,24,39,35,14,56,2,14,200,31,15,0,9,255,194,15,24,2,8,15,152,25,33,15,80,36,49,15,192,6,206,53,170,204,255,4,0,15,156,6,217,31,255,48,41,43,15,36,27,25,15,64,2,194,8,56,2,0,4,0,34,232,241,4,0,15,72,2,92,15,48,41,206,15,128,4,193,15,56,2,1,47,232,241,68,2,186,15,188,51,226,15,0,9,0,15,64,2,58,14,116,4,15,64,2,199,15,224,1,44,15,196,33,25,15,128,4,210,15,60,2,21,47,232,241,16,9,10,15,88,2,214,14,252,6,15,72,2,14,15,64,2,198,15,60,2,7,15,132,4,207,31,255,48,41,55,15,128,31,226,15,60,2,7,15,132,4,18,15,148,24,226,31,83,48,41,55,15,64,2,230,14,132,4,15,124,4,223,15,48,7,52,15,64,2,255,179,15,244,4,104,15,64,2,255,255,40,14,76,2,15,64,11,162,15,64,2,255,251,53,67,49,61,4,0,15,192,15,39,15,64,2,255,255,33,14,68,2,14,80,2,15,64,2,255,255,15,14,68,2,15,76,20,22,15,64,2,255,255,40,14,140,13,15,192,6,255,255,1,15,80,11,255,58,14,60,18,15,64,11,182,15,64,2,255,91,12,68,2,15,64,2,149,15,248,1,1,14,64,2,15,68,2,5,15,12,9,255,52,15,64,2,189,8,252,1,15,4,0,23,15,4,9,255,48,8,72,2,15,64,2,173,15,72,2,21,12,36,0,14,136,13,15,196,24,255,140,15,64,2,101,15,40,0,11,15,124,4,255,148,15,64,2,81,15,192,33,19,15,60,2,255,52,15,64,2,235,15,180,6,6,15,64,11,255,227,15,64,2,53,47,170,204,156,13,10,15,12,9,255,111,15,64,2,117,15,4,9,3,15,36,18,18,15,64,2,255,255,48,14,68,2,15,192,24,255,120,53,71,49,60,4,0,15,64,11,71,15,104,20,50,15,64,2,255,235,15,128,4,7,15,68,2,26,15,4,18,255,95,15,64,2,121,15,68,2,31,15,72,18,18,15,64,2,255,219,15,184,22,17,15,80,2,32,15,64,2,255,223,14,24,9,15,68,2,46,15,64,2,255,99,53,72,50,59,4,0,15,44,0,1,15,220,1,0,15,212,6,137,15,64,2,255,147,47,170,204,204,6,85,15,64,2,255,200,47,170,204,64,2,83,15,224,31,11,15,64,2,231,63,0,163,255,64,2,174,15,68,2,53,31,255,200,76,208,8,4,0,0,252,1,15,64,2,49,14,68,2,15,64,2,159,15,68,2,47,15,60,13,219,34,0,163,52,1,14,68,2,15,68,0,31,4,72,0,15,64,2,173,47,170,204,60,2,255,20,8,88,5,46,0,163,68,2,15,64,2,233,47,170,204,56,2,255,12,4,248,1,15,4,0,59,15,64,2,111,38,75,53,4,0,15,64,2,15,15,248,44,33,15,60,2,75,14,140,22,15,64,2,223,14,68,2,15,64,2,179,4,28,13,15,128,4,53,14,240,4,15,56,36,6,15,60,2,129,15,64,2,255,31,15,212,6,16,15,60,2,58,12,72,2,15,60,2,213,14,68,2,15,192,6,203,15,68,2,0,15,168,56,69,15,60,2,113,15,64,2,255,47,15,248,1,11,15,160,2,45,15,136,4,14,15,64,2,255,63,53,78,48,57,4,0,15,64,2,61,14,16,2,15,4,0,235,15,232,1,1,49,2,0,0,4,0,15,28,2,3,15,52,0,42,15,64,2,129,15,4,0,255,39,47,0,163,64,2,218,15,0,117,255,63,14,188,6,15,196,6,159,15,64,2,45,63,199,195,194,4,0,255,35,14,60,2,15,68,2,86,15,128,4,255,179,15,64,2,245,63,156,118,131,128,4,255,159,14,68,2,15,64,2,59,53,76,48,57,4,0,15,64,2,17,0,12,10,15,168,1,133,0,160,0,14,228,2,15,60,2,147,63,54,82,171,4,0,18,15,72,2,40,15,64,2,114,4,68,2,14,72,2,15,56,2,111,8,160,0,15,124,4,245,14,68,2,15,64,2,102,15,164,1,130,12,60,2,14,68,2,15,60,2,106,15,64,2,255,3,8,216,16,15,244,1,44,15,56,2,62,14,36,5,15,60,2,247,14,68,2,15,128,4,103,4,164,1,14,4,2,15,108,6,79,15,60,2,16,14,228,2,15,60,2,128,15,156,20,51,15,64,2,119,53,77,55,58,4,0,15,64,2,17,12,4,0,15,240,1,40,15,56,2,50,15,68,2,1,4,16,0,14,188,54,15,4,0,71,15,56,2,27,15,72,2,53,15,64,2,99,53,73,47,57,4,0,15,64,2,16,15,4,0,70,15,204,4,8,15,96,0,49,15,124,4,118,14,40,25,15,68,2,151,15,64,2,73,8,236,3,15,4,0,133,15,124,4,107,15,108,27,85,15,64,2,167,15,68,2,144,15,64,2,255,135,15,4,0,157,4,240,1,15,32,9,63,15,64,2,109,15,0,9,18,15,64,2,255,47,15,156,4,79,15,64,2,127,14,128,22,15,64,2,255,60,15,72,2,9,0,64,1,8,8,0,15,64,2,255,255,11,4,68,2,12,44,2,14,60,2,15,132,4,13,15,64,2,255,160,0,40,1,15,68,2,65,15,60,2,13,63,81,135,0,64,2,12,15,60,2,171,15,64,2,5,53,70,46,57,4,0,15,64,2,173,38,0,163,180,1,15,68,2,41,0,44,1,8,12,0,4,64,2,8,68,2,12,140,4,12,64,2,5,116,1,15,64,2,60,63,79,87,95,64,2,255,47,63,168,119,255,128,4,26,8,16,2,15,64,2,33,12,4,0,8,80,2,4,16,0,8,68,2,8,28,0,12,200,1,42,81,135,72,46,12,16,0,15,60,2,68,15,64,2,246,34,168,119,172,1,15,68,2,9,0,148,1,15,68,2,0,15,20,0,26,4,68,0,0,16,0,0,12,0,15,92,1,13,4,64,2,12,40,0,12,232,46,15,64,2,25,0,48,2,8,4,0,15,60,2,21,0,84,0,15,64,2,17,0,40,0,4,4,0,15,28,0,8,15,128,4,218,8,252,1,4,0,1,8,72,4,15,48,2,5,8,60,1,8,60,0,8,64,2,15,72,2,13,8,40,0,0,124,1,14,40,49,14,224,1,4,44,0,15,76,2,1,0,16,25,8,164,18,14,120,2,15,116,4,3,8,252,1,15,4,0,1,12,32,2,15,4,0,16,15,64,2,6,53,68,46,57,4,0,53,80,58,58,4,0,15,64,2,137,0,208,0,63,54,228,0,32,0,10,8,60,2,15,96,4,4,15,172,6,14,14,116,1,6,64,2,15,84,2,5,4,48,0,4,12,9,14,68,2,6,64,2,15,232,1,13,12,64,2,14,120,2,14,72,0,15,12,2,21,15,68,2,33,15,64,2,181,12,60,2,12,16,0,14,192,6,10,220,8,12,36,4,12,132,4,12,72,4,14,180,3,15,208,3,3,49,77,0,255,4,0,15,156,13,0,15,4,0,34,15,64,2,0,15,4,0,57,15,64,2,222,4,40,2,15,124,4,17,15,24,0,5,4,48,2,0,152,8,8,20,0,15,228,5,0,15,184,3,22,4,56,2,47,77,0,224,15,7,47,77,0,4,0,23,15,64,2,255,74,4,4,0,15,92,2,0,15,64,2,10,4,28,0,42,2,0,28,2,47,54,228,228,5,23,15,132,4,0,14,120,4,15,112,4,0,15,68,2,9,4,144,6,15,28,0,1,12,64,2,63,83,37,126,64,2,255,11,14,88,4,14,60,2,15,136,4,5,8,8,2,15,20,2,5,8,96,2,4,80,0,15,76,1,37,14,240,1,15,64,2,31,4,188,8,46,39,236,68,2,15,64,2,5,0,4,0,14,172,4,15,64,2,103,53,62,45,57,4,0,15,64,2,153,14,4,0,15,64,2,3,12,180,4,14,64,2,15,60,2,51,8,68,2,15,64,2,1,12,252,1,12,52,13,15,68,2,1,12,192,15,8,64,0,4,136,0,15,64,2,121,53,77,58,62,4,0,15,64,2,0,15,12,11,98,12,36,2,14,64,2,15,76,2,10,15,44,0,18,47,54,228,60,2,51,15,4,0,25,15,236,19,3,15,40,9,30,15,64,2,186,0,68,3,15,212,8,37,15,104,4,4,15,4,0,38,14,60,2,15,64,2,43,8,244,3,15,68,2,69,14,160,6,15,60,2,10,15,64,2,186,34,39,236,188,5,14,68,2,15,88,13,27,15,64,2,9,0,56,20,14,84,2,15,4,0,59,15,112,4,0,15,4,0,74,15,60,2,25,8,144,0,15,64,2,65,47,54,228,128,4,151,15,104,4,29,8,184,24,15,68,2,77,46,54,228,60,2,15,4,0,109,14,60,2,15,64,2,171,14,236,10,14,184,19,15,96,15,9,47,81,135,168,6,31,34,168,119,60,1,15,64,2,81,8,188,1,14,20,0,15,64,2,103,14,236,1,15,12,2,23,47,54,228,64,2,135,15,156,17,13,8,64,2,14,16,11,15,216,8,25,15,60,2,91,8,68,2,15,64,2,8,15,96,2,42,15,60,0,9,46,54,228,104,13,15,100,14,3,15,64,2,51,12,104,1,15,64,2,73,15,184,8,0,15,52,22,5,14,20,11,15,4,0,164,12,240,1,4,156,4,14,160,4,15,60,2,23,14,60,0,6,56,2,14,212,1,15,64,2,39,14,56,0,15,64,2,7,47,54,228,128,4,19,53,58,44,57,4,0,53,76,59,66,4,0,15,64,2,25,8,192,19,15,228,19,12,15,64,2,214,14,52,0,15,40,0,2,15,240,4,18,31,54,252,11,32,15,24,0,3,15,40,19,9,15,64,2,79,15,116,4,4,15,64,2,6,8,132,0,14,124,4,15,4,0,231,14,184,4,15,48,7,6,15,220,7,34,47,81,135,28,19,25,15,64,2,95,15,192,0,15,15,184,8,5,15,4,0,255,16,14,52,2,15,88,14,63,14,184,1,14,0,7,15,64,2,91,15,48,2,5,15,4,0,255,128,15,120,4,5,47,81,135,64,2,47,53,74,60,70,4,0,15,64,2,3,15,4,0,255,148,15,16,11,9,47,54,228,64,2,255,255,17,47,54,228,12,2,1,15,128,4,31,31,54,192,15,16,53,56,44,57,4,0,15,64,2,255,186,47,54,228,64,2,43,14,64,20,15,64,2,255,224,14,144,4,15,116,22,5,15,64,2,255,255,17,15,68,2,13,47,54,228,64,2,255,252,14,76,17,15,232,8,5,15,64,2,255,255,13,14,12,0,15,128,4,255,255,29,47,54,228,124,31,17,15,64,2,255,255,5,14,4,0,15,64,2,255,255,25,47,54,228,64,2,31,47,54,228,64,2,43,53,73,61,74,4,0,15,64,2,45,0,148,41,15,64,2,255,138,47,54,228,64,2,135,8,136,71,15,64,2,255,122,46,54,228,64,2,15,128,4,255,255,11,31,54,252,35,18,14,128,22,15,64,2,85,0,48,47,15,128,31,7,15,84,2,255,120,14,240,35,15,64,2,111,8,176,51,15,212,6,255,154,14,88,2,15,24,18,13,15,128,4,75,47,81,135,212,6,255,160,14,64,2,15,12,0,7,8,44,0,15,64,2,49,15,16,14,29,14,180,0,14,64,2,15,28,9,255,134,13,0,4,15,64,2,52,47,54,228,12,0,9,15,64,2,255,152,15,160,1,11,15,64,2,71,15,76,34,17,47,54,228,4,0,255,192,15,128,4,57,15,60,7,7,15,64,2,255,184,47,81,135,192,6,95,47,81,135,128,4,255,255,17,15,64,11,7,15,64,2,255,255,17,15,4,0,19,15,64,2,255,243,15,4,0,255,253,15,64,2,255,255,255,255,147,63,59,51,73,64,2,255,255,40,0,60,2,147,67,66,77,80,45,0,0,0,5,4,0,41,8,0,1,0,17,13,4,0,6,2,0,32,0,13,18,0,0,53,0,83,100,1,0,0,42,49,0,8,53,0,31,8,1,0,41,19,2,1,0,13,25,0,33,15,15,4,0,35,15,15,12,0,69,2,2,15,15,43,0,32,2,2,57,0,16,8,2,0,17,8,33,0,5,2,0,0,29,0,35,15,15,43,0,16,8,32,0,3,4,0,0,42,0,47,15,15,42,0,8,1,84,0,3,47,0,8,82,0,44,15,8,126,0,40,8,2,84,0,3,4,0,33,8,15,96,0,9,210,0,6,130,0,31,2,19,1,24,15,108,1,95,2,0,1,22,8,180,0,1,1,0,0,242,0,2,125,1,4,57,1,5,205,0,3,123,1,3,83,0,1,70,1,4,137,1,2,141,1,5,159,1,15,42,0,3,5,217,1,41,8,8,82,0,44,2,8,126,0,40,8,15,84,0,4,83,1,2,255,1,9,210,0,39,15,15,126,0,15,108,1,26,23,84,104,1,15,108,1,6,3,249,1,3,161,0,40,8,8,8,0,4,24,0,6,40,0,15,92,0,27,35,15,15,6,0,3,76,2,8,8,0,4,24,0,6,40,0,15,92,0,27,0,1,0,73,14,14,14,14,8,0,1,10,0,23,14,24,0,0,20,0,2,8,0,47,8,14,92,0,27,0,210,1,9,8,0,1,10,0,23,15,24,0,3,151,1,2,208,0,97,67,80,65,76,0,3,75,0,255,81,29,43,83,126,37,83,0,135,81,171,82,54,95,87,79,194,195,199,255,241,232,255,0,77,255,163,0,255,236,39,0,228,54,41,173,255,131,118,156,255,119,168,255,204,170,12,18,35,53,41,83,94,61,82,42,121,74,152,83,60,119,114,109,209,206,207,255,180,193,255,40,57,255,181,9,191,214,42,10,214,104,63,159,230,162,118,159,255,140,168,200,161,130,2,4,8,3,0,88,17,9,3,0,15,48,0,29,9,54,0,63,3,5,10,48,0,10,12,60,0,14,48,0,15,150,0,11,56,3,5,10,3,0,254,81,41,24,20,17,29,53,66,33,54,18,83,89,116,47,41,73,51,59,162,136,121,243,239,125,190,18,80,255,108,36,168,231,46,0,181,67,6,90,181,117,70,101,255,110,89,255,157,129,52,35,31,41,31,53,54,45,62,42,74,77,105,48,45,95,72,74,182,161,122,229,183,113,206,40,69,233,138,38,126,218,51,1,158,95,33,85,161,151,80,98,255,121,99,208,135,109,128,1,15,3,0,251,0,100,3,83,101,0,0,0,9,4,0,47,8,0,1,0,3,52,7,7,7,8,0,36,7,7,8,0,47,7,7,9,0,1,5,36,0,6,54,0,3,69,0,15,109,0,19,14,91,0,15,9,0,26,15,109,0,28,3,2,0,15,18,0,44,15,109,0,14,81,16,16,16,16,0,4,0,32,7,7,5,0,4,9,0,2,22,0,25,16,41,0,1,4,0,3,36,0,23,16,18,0,15,218,0,27,15,73,0,16,6,127,0,10,145,0,0,9,0,4,181,0,15,109,0,54,15,2,1,17,0,109,0,98,184,31,0,0,90,0,4,0,47,8,0,1,0,255,25,65,14,14,14,0,2,0,18,14,4,0,17,0,8,0,13,38,0,4,34,0,47,0,14,90,0,23,3,2,0,1,51,0,23,14,16,0,15,38,0,0,31,0,90,0,27,47,14,0,90,0,17,20,14,4,0,15,180,0,69,31,0,180,0,26,4,143,0,3,90,0,47,14,0,90,0,5,4,138,1,15,28,2,113,15,1,0,9,15,38,0,15,31,0,1,0,255,239,19,13,137,15,19,13,139,15,23,13,12,0,15,89,0,43,9,233,15,10,12,0,15,90,0,52,1,167,0,25,13,12,0,15,180,0,55,12,190,0,7,1,0,15,63,3,33,4,92,1,5,172,0,6,196,0,9,95,4,5,124,4,15,1,0,60,2,185,4,15,90,0,67,31,0,90,0,70,47,14,14,90,0,72,14,31,6,15,147,5,48,15,91,5,122,4,18,3,2,196,2,57,5,0,0,16,0,15,44,3,47,3,74,0,22,5,32,3,14,90,0,15,89,0,36,2,8,0,15,90,0,58,9,74,0,8,180,0,47,13,13,104,1,56,20,5,238,3,8,115,0,15,44,7,255,182,15,1,0,61,47,0,0,126,9,255,239,2,7,0,12,8,0,31,0,69,5,56,47,0,0,70,5,58,11,164,0,6,235,4,15,84,6,55,14,180,0,15,126,9,43,12,143,5,12,112,1,25,0,126,9,31,0,126,9,69,31,14,90,0,52,15,180,0,86,14,233,14,15,126,9,191,1,66,12,3,4,0,8,37,2,15,202,8,51,8,244,12,4,118,9,15,90,0,52,45,13,13,124,3,15,180,0,64,5,230,3,15,90,0,54,11,57,4,14,90,0,15,1,0,55,15,126,9,255,255,255,40,5,20,5,3,161,33,4,28,5,6,44,5,10,108,4,2,20,8,22,5,28,0,12,84,5,6,42,0,47,0,13,88,17,2,42,13,13,116,17,46,0,13,172,13,4,24,0,5,12,0,15,180,0,6,12,28,5,5,110,17,12,180,0,3,19,15,5,90,0,14,249,18,15,22,18,2,8,204,0,15,180,0,1,31,0,180,0,21,5,34,0,10,194,18,42,13,0,128,1,26,0,19,15,7,28,0,7,12,0,31,0,182,13,255,88,15,1,0,255,255,255,255,224,15,178,37,9,128,0,0,1,1,0,0,1,7,4,0,19,1,8,0,35,7,1,8,0,27,7,8,0,25,1,40,0,1,56,0,15,92,0,9,34,7,1,38,0,1,49,0,1,8,0,34,1,7,8,0,27,7,8,0,4,24,0,4,40,0,2,56,0,0,92,0,17,55,216,33,15,139,42,3,2,202,5,8,182,7,39,13,13,7,0,0,63,0,80,20,5,0,0,80,231,32,15,183,32,0,18,6,156,34,18,1,1,0,9,10,0,79,7,7,7,5,30,0,7,9,40,0,31,6,80,0,255,255,127,6,60,0,15,10,0,28,15,80,0,255,143,5,1,0,31,5,10,0,40,21,6,19,6,19,48,91,5,29,4,28,5,8,142,18,25,13,160,18,15,56,0,11,19,12,6,0,19,12,12,0,21,12,18,0,4,39,6,31,16,56,0,0,5,58,13,5,192,32,4,238,13,6,126,0,39,13,13,14,0,11,136,31,15,92,0,9,3,132,40,4,9,0,2,7,0,3,37,40,20,7,51,40,23,7,14,0,35,7,7,20,0,2,51,0,15,184,0,11,22,13,93,15,1,88,12,5,180,0,1,47,14,9,36,15,7,242,19,19,13,197,0,15,184,0,11,1,132,0,4,186,41,8,180,0,5,194,0,4,182,0,5,184,0,5,29,0,17,7,151,7,19,60,84,0,12,59,7,48,13,1,1,3,0,29,13,8,0,33,13,5,3,0,4,8,0,15,68,0,9,0,179,7,3,140,4,10,8,0,33,7,6,3,0,128,7,7,6,7,7,6,7,7,99,70,73,76,0,0,0,0,76,53,0,0,112,111,100,47,102,95,112,105,99,111,56,46,112,111,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,147,8,0,0,241,24,67,80,79,68,68,0,0,0,1,0,0,0,47,104,111,109,101,47,122,101,112,47,112,97,98,97,47,112,105,99,111,56,47,112,111,100,47,102,95,12,0,1,37,0,15,1,0,8,247,2,67,66,77,80,35,0,0,0,3,0,0,0,5,0,0,0,8,28,0,66,255,255,255,255,5,0,1,12,0,15,43,0,11,79,0,0,255,0,43,0,24,31,0,43,0,19,2,128,0,15,129,0,17,3,169,0,15,43,0,16,0,123,0,18,255,128,0,15,86,0,15,47,0,255,129,0,21,4,216,0,15,129,0,18,4,85,0,15,129,0,2,15,174,1,7,15,43,0,52,47,255,255,215,0,25,2,5,1,15,172,0,58,2,125,0,15,129,0,22,0,176,1,31,0,43,0,20,6,1,0,15,172,0,12,5,40,0,15,88,1,4,14,9,3,15,43,0,18,5,2,0,15,43,0,18,31,0,43,0,22,2,3,0,15,43,0,14,21,255,92,1,47,0,0,219,2,15,6,94,1,15,4,2,16,2,220,2,15,133,2,16,4,225,3,15,178,3,18,2,7,2,31,255,219,2,17,31,255,6,3,25,2,92,1,15,43,0,19,1,47,1,15,172,0,13,47,0,255,219,2,18,7,0,2,14,172,0,15,49,3,38,24,0,129,1,15,172,0,54,6,45,2,1,6,0,15,135,3,15,5,48,2,15,129,0,12,4,6,1,31,0,86,0,14,2,169,2,47,255,255,47,2,14,7,84,1,15,131,1,18,47,0,255,4,2,18,23,255,92,1,15,215,0,15,4,173,2,15,215,0,3,14,137,3,47,0,255,4,2,23,14,135,3,15,43,0,2,3,56,6,15,90,2,24,31,255,51,4,15,5,1,1,15,16,8,17,4,56,4,15,229,7,17,3,8,1,15,57,7,15,5,95,2,15,100,7,16,31,255,94,4,20,7,185,4,15,227,6,20,31,255,16,8,16,7,15,6,15,16,8,17,15,129,0,21,31,255,86,0,21,15,215,0,21,4,222,2,3,6,0,15,43,0,21,47,255,0,47,2,16,3,54,3,31,0,100,7,16,5,6,0,15,88,1,12,5]);fileData0.push.apply(fileData0,[13,7,14,133,2,15,4,2,5,15,221,3,16,4,176,2,47,0,0,188,8,15,15,10,5,20,5,183,4,14,180,4,15,86,0,5,31,0,129,0,18,21,255,175,0,31,255,145,8,17,31,255,86,0,21,3,43,0,14,94,4,15,172,0,2,15,215,0,19,47,255,0,45,1,24,30,255,8,4,15,43,0,14,15,18,9,17,4,48,1,15,43,0,14,6,152,11,15,20,10,19,14,86,0,15,174,1,9,31,0,90,2,16,14,217,1,15,133,2,14,15,178,3,16,3,67,11,15,90,2,21,47,255,0,172,0,20,3,7,0,15,174,1,21,47,0,255,192,10,23,15,90,2,23,15,86,0,22,31,255,176,2,19,5,150,8,15,90,2,17,31,255,2,1,22,31,0,184,6,18,7,10,6,31,255,10,5,17,31,255,96,5,17,10,101,7,15,149,10,12,15,192,10,22,10,224,0,31,67,61,9,14,15,75,16,27,14,49,3,15,14,7,5,15,137,4,17,47,255,255,221,3,21,8,175,3,15,243,14,20,3,235,7,15,43,0,22,47,0,0,172,0,20,15,188,8,15,15,45,1,25,15,104,9,25,6,43,0,15,239,12,13,15,96,5,21,9,229,8,15,159,15,18,14,53,5,15,174,1,4,15,43,0,19,6,93,5,14,96,5,15,133,2,7,14,174,1,15,59,8,1,15,96,5,18,47,255,255,45,1,22,5,101,10,14,94,4,15,174,1,8,15,241,13,16,15,96,5,21,8,3,3,15,86,0,22,31,255,176,2,19,5,51,1,15,151,11,21,15,237,11,20,47,0,255,210,19,24,15,14,7,15,47,255,0,88,1,22,5,177,5,15,145,8,17,5,196,12,15,10,5,4,15,35,16,4,0,43,0,95,55,0,0,0,7,208,18,15,15,1,0,1,15,63,0,10,15,2,0,15,15,63,0,11,9,132,0,8,197,8,4,70,3,15,63,0,9,7,136,18,7,68,22,3,246,19,15,63,0,15,5,91,6,2,57,0,15,14,0,1,15,126,0,10,4,152,6,24,255,131,12,5,161,1,15,63,0,16,5,55,0,27,255,253,16,3,28,0,15,252,0,12,47,0,255,56,0,4,3,155,0,15,126,0,19,5,113,1,4,124,1,14,126,0,15,189,0,7,7,245,0,7,126,0,31,255,252,0,24,6,255,3,7,65,9,15,248,1,21,27,255,248,1,31,0,248,1,19,43,255,255,39,2,5,181,1,15,244,2,17,8,232,0,6,7,2,9,16,1,15,181,2,26,7,0,25,15,244,2,17,7,54,3,31,0,248,1,33,15,37,4,4,6,1,0,15,189,0,20,7,122,0,3,219,16,15,189,0,29,7,135,1,25,255,74,19,15,248,1,12,10,238,0,10,10,1,15,55,2,20,10,189,0,15,122,1,22,5,221,2,4,229,5,25,255,53,22,15,63,0,19,9,135,16,2,227,16,15,122,1,26,11,82,21,15,244,2,26,15,14,0,2,15,232,5,23,15,7,0,2,15,232,5,16,14,177,1,22,255,69,22,2,12,0,15,169,5,16,6,92,4,7,109,13,47,0,255,122,1,16,5,156,3,3,155,5,8,186,3,14,236,4,15,181,2,4,27,255,197,0,6,232,10,31,0,252,0,15,25,255,237,6,6,152,25,31,255,244,2,15,8,69,23,6,114,22,11,217,25,15,110,4,10,12,123,1,24,255,230,6,15,181,2,14,3,253,0,7,241,4,3,80,1,14,228,6,15,251,22,7,8,120,0,9,128,14,15,189,0,19,8,4,14,4,163,25,15,110,4,26,29,255,77,14,15,169,5,16,15,7,0,2,15,55,2,33,7,61,1,4,59,1,15,126,0,17,7,27,30,28,255,189,0,15,161,7,17,7,245,0,6,71,0,5,64,0,15,252,0,16,7,67,0,40,255,255,3,1,15,110,4,16,8,52,1,43,255,255,18,1,31,0,232,5,19,13,127,1,5,140,2,15,63,0,20,9,160,5,15,181,2,21,11,184,0,31,255,118,2,28,5,135,8,5,59,1,8,133,2,15,189,0,15,6,44,3,4,237,4,7,246,4,31,0,169,5,14,43,0,255,46,6,7,187,13,5,187,12,15,126,0,10,11,244,16,6,63,27,14,248,1,15,118,2,4,7,216,5,40,0,255,41,5,47,0,255,244,2,16,5,116,20,11,14,0,15,106,5,13,24,255,96,4,12,110,4,15,51,3,19,15,191,3,0,6,252,6,47,0,255,90,9,18,43,255,255,77,29,5,59,2,15,98,7,12,12,203,11,27,0,192,30,15,27,9,21,28,255,179,6,6,138,15,15,78,12,9,29,0,118,4,6,244,3,15,11,13,17,11,56,2,7,144,1,15,51,3,16,15,25,8,0,7,146,13,31,255,39,6,19,29,255,14,0,31,255,236,4,17,4,142,7,8,120,1,6,183,1,47,255,0,177,3,17,41,0,0,193,12,10,51,7,15,70,14,21,13,196,0,14,161,7,15,102,6,6,10,6,2,15,244,2,22,11,147,7,9,229,5,15,106,5,25,11,245,2,47,255,255,185,1,18,40,0,255,203,14,9,16,10,7,104,17,15,126,0,30,14,55,2,15,236,4,26,15,157,8,23,24,0,29,7,41,255,255,171,5,14,70,14,15,252,0,3,9,53,4,6,68,2,15,122,1,2,15,201,13,7,11,47,7,15,7,14,21,15,250,2,5,15,70,14,21,9,102,4,6,191,15,15,63,0,26,7,253,0,15,66,15,26,7,192,2,28,255,80,1,15,126,0,13,44,255,255,185,15,15,240,3,23,10,216,9,47,255,0,51,3,38,13,119,0,15,196,14,17,11,209,9,5,202,0,6,238,6,15,114,3,19,8,242,1,7,145,11,31,255,252,0,25,14,14,0,15,149,10,20,12,209,10,47,255,0,43,5,29,5,187,22,14,244,2,15,55,2,21,9,7,0,15,122,1,5,15,146,11,14,31,0,35,7,21,7,93,8,9,79,11,5,211,10,15,189,0,28,8,100,7,14,70,14,15,248,1,18,15,15,12,27,8,34,4,15,189,0,35,5,38,4,28,255,190,0,15,172,20,18,14,81,13,15,173,4,19,8,153,29,15,189,0,32,7,93,5,15,126,0,33,47,0,255,231,7,4,5,129,1,15,70,14,32,15,126,0,23,15,196,0,1,9,203,0,15,118,2,26,9,242,18,14,86,10,15,189,0,13,5,57,20,47,0,255,165,6,21,31,255,6,14,1,15,39,6,19,7,28,9,12,12,12,3,25,0,15,255,15,18,8,6,14,6,68,14,15,196,14,24,15,118,2,37,31,0,71,12,4,3,8,0,15,169,5,32,8,9,3,15,98,7,32,15,66,15,23,7,192,15,9,77,0,3,14,0,15,58,17,19,8,159,5,5,4,1,15,160,23,18,15,183,0,2,6,223,24,15,78,12,37,4,15,0,15,106,5,39,47,255,0,110,4,23,14,7,0,14,227,22,15,11,13,6,6,49,0,12,14,0,15,121,17,22,15,254,3,0,14,220,8,15,35,7,2,11,7,0,31,0,70,14,24,31,255,7,0,3,15,125,16,18,15,49,1,0,7,16,16,15,165,6,27,13,25,13,15,43,5,21,47,255,0,35,7,42,15,186,1,3,47,0,255,94,8,27,31,0,43,5,32,6,32,4,14,188,0,15,63,0,19,14,51,3,15,78,12,28,11,204,0,31,255,47,4,22,10,58,3,12,64,0,15,110,4,25,9,84,11,15,15,12,25,6,215,9,3,143,9,160,0,0,0,0,0,0,255,0,0,0]);Module["FS_createDataFile"]("/","data.pod",fileData0,true,true,false)}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({"files":[]})})();var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);Module["quit"]=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module["readBinary"]=function readBinary(f){var 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};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}Module["read"]=function shell_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){Module["readBinary"]=function 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}}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=function(title){document.title=title}}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for getValue: "+type)}return null}var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(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":function(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;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ALLOC_NORMAL=0;var ALLOC_NONE=3;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,stackAlloc,dynamicAlloc][allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}function getMemory(size){if(!runtimeInitialized)return dynamicAlloc(size);return _malloc(size)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=u8Array[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|u8Array[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STACK_BASE=3196624,DYNAMIC_BASE=8439504,DYNAMICTOP_PTR=3196592;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||134217728;if(INITIAL_TOTAL_MEMORY<TOTAL_STACK)err("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}}updateGlobalBufferViews();HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var ASM_CONSTS=[function(){if(typeof _cartdat!=="undefined")return 1;return 0},function(){return _cartdat.length/32768},function(){_cdpos=_cdpos+1;return _cartdat[_cdpos-1]},function($0){ciii=$0;iii=0},function(){iii=iii+1;return _cartname[ciii].charCodeAt(iii-1)},function(){let stateObj={load_param_data:false};history.pushState(stateObj,"PICO-8","?")},function(){Module.pico8Reset=function(){codo_command=1};Module.pico8ToggleSound=function(){codo_command=3};Module.pico8TogglePaused=function(){codo_command=4};Module.pico8SetPaused=function(p){codo_command=5;codo_command_p=0;if(p)codo_command_p=1};Module.pico8ToggleControlMenu=function(){codo_command=7};Module.pico8DragOver=function(){codo_command=10};Module.pico8DragStop=function(){codo_command=11}},function(){function mkdir_0(d){try{stat=FS.stat(d)}catch(e){FS.mkdir(d)}}mkdir_0("/user_data");FS.mount(IDBFS,{},"/user_data");FS.syncfs(true,function(err){if(!err){console.log("codo: mounted filesystem.\n");codo_mounted_filesystem=1;mkdir_0("/user_data/cdata");mkdir_0("/user_data/cstore");mkdir_0("/user_data/carts");mkdir_0("/user_data/backup");mkdir_0("/user_data/plates");mkdir_0("/user_data/bbs");mkdir_0("/user_data/bbs/carts");mkdir_0("/user_data/bbs/labels")}else{console.log("** could not mount filesystem\n");console.log(err)}})},function(){var val=0;if(window.location.pathname.indexOf("widget.php")>=0)val=1;return val},function(){var val=0;if(window.location.pathname.indexOf("pico-8.php")>=0)val=1;return val},function($0,$1,$2,$3,$4,$5,$6,$7){if(typeof pico8_state!=="undefined"){pico8_state.is_paused=$0;pico8_state.sound_volume=$1;pico8_state.frame_number=$2;pico8_state.has_focus=$3;pico8_state.show_dpad=$4;pico8_state.request_pointer_lock=$5;pico8_state.require_page_navigate_confirmation=$6;pico8_state.shutdown_requested=$7}},function(){var val=0;if(typeof codo_command!=="undefined"){val=codo_command;codo_command=0}return val},function(){var val=0;if(typeof codo_command_p!=="undefined"){val=codo_command_p;codo_command_p=0}return val},function(){button_i=0},function(){var val=-1;if(typeof pico8_buttons!=="undefined"){val=pico8_buttons[button_i];button_i++}return val},function(){var val=0;if(typeof pico8_gamepads!=="undefined"){val=pico8_gamepads.count}return val},function(){if(typeof on_module_load!=="undefined"){if(on_module_load)on_module_load()}},function($0,$1,$2,$3){download_browser_file(UTF8ToString($0,$1),UTF8ToString($2,$3))},function($0,$1,$2,$3,$4,$5){if(typeof p8img!=="undefined"){p8img.src=""}p8img=document.createElement("img");p8img.src=UTF8ToString($0,$1);p8img.style="width:128px; height:128px; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor;";if(typeof p8imgholder==="undefined"||!p8imgholder){p8imgholder=document.createElement("div");p8imgholder.style.cssText="min-width:160px; display:table; position:fixed; top:20px; left:20px; padding:12px; background-color:#000; box-shadow: 2px 2px 8px rgba(16, 0, 48, 0.4);";document.body.appendChild(p8imgholder)}if(p8imgholder){while(p8imgholder.childElementCount>0)p8imgholder.removeChild(p8imgholder.firstChild);var dismiss=document.createElement("div");dismiss.style.cssText="display:table; font-size:10pt; color:#fff; padding:4px; cursor:pointer; margin-left:10px; float:right";dismiss.addEventListener("click",function(){p8img.src="";while(p8imgholder.childElementCount>0)p8imgholder.removeChild(p8imgholder.firstChild);p8imgholder.style.display="none"},false);dismiss.innerHTML="X";p8imgholder.appendChild(dismiss);p8imgholder.appendChild(p8img);var info=document.createElement("div");info.innerHTML='<br> <font style="color:#bbb; font-size:8pt"><center> (right-click to save) </center></font>';p8imgholder.appendChild(info);if(p8imgholder.style.display=="none")p8imgholder.style.display=""}},function(){jsString=p8_dropped_cart;if(!jsString)return 0;var lengthBytes=lengthBytesUTF8(jsString)+1;var stringOnWasmHeap=_malloc(lengthBytes);stringToUTF8(jsString,stringOnWasmHeap,lengthBytes);return stringOnWasmHeap},function(){jsString=p8_dropped_cart_name;if(!jsString)return 0;var lengthBytes=lengthBytesUTF8(jsString)+1;var stringOnWasmHeap2=_malloc(lengthBytes);stringToUTF8(jsString,stringOnWasmHeap2,lengthBytes);return stringOnWasmHeap2},function($0,$1){if(typeof pico8_state!=="undefined"){if(typeof pico8_state.system_messages==="undefined")pico8_state.system_messages=new Array;pico8_state.system_messages.push(UTF8ToString($0,$1))}},function($0){var str=window.location.hostname;return allocate(intArrayFromString(str),"i8",ALLOC_NORMAL)},function($0,$1){if(typeof pico8_gpio!=="undefined")pico8_gpio[$0]=$1},function($0){var val=0;if(typeof pico8_gpio!=="undefined")val=pico8_gpio[$0];return val},function(){FS.syncfs(false,function(err){})},function(){var val=0;if(typeof codo_mounted_filesystem!=="undefined")val=1;return val},function(){return typeof p8_touch_detected==="undefined"||!p8_touch_detected?0:1},function(){return document.hidden?1:0},function(){if(typeof codo_key_buffer==="undefined")codo_key_buffer=[];document.addEventListener("keydown",function(e){var val=-1;if(e.key.length==1){val=e.key.charCodeAt(0)}else{if(e.key=="Tab")val=9;if(e.key=="Enter")val=13;if(e.key=="Backspace")val=8;if(e.key=="Escape")val=27;if(val==-1){}}var el=document.getElementById("codo_textarea");codo_key_buffer.push(val)})},function(){addEventListener("mousedown",function(event){if(typeof pico8_state!=="undefined")if(event.target.tagName.toLowerCase()!="canvas"){pico8_state.clicked_outside=true}})},function(){document.addEventListener("wheel",function(e){dx=e.deltaX;if(dx<0)dx=-1;if(dx>0)dx=1;if(e.deltaMode==2)dx*=4;if(typeof codo_wheel_dx!=="undefined")codo_wheel_dx-=dx;dy=e.deltaY;if(dy<0)dy=-1;if(dy>0)dy=1;if(e.deltaMode==2)dy*=4;if(typeof codo_wheel_dy!=="undefined")codo_wheel_dy-=dy})},function($0){function audio_log(msg){if(window.console&&window.console.log){window.console.log("[codo] audio_init_webaudio "+msg)}}audio_log("audio_init");var codo_audio_context;if(typeof Module==="undefined")audio_log(" *** Module undefined");else if(typeof Module.ccall==="undefined")audio_log(" **** Module.ccall undefined");else{var webAudioAPI=window.AudioContext||window.webkitAudioContext||window.mozAudioContext||window.oAudioContext||window.msAudioContext;if(webAudioAPI){if(typeof pico8_audio_context!=="undefined"){codo_audio_context=pico8_audio_context;audio_log("found pico8_audio_context")}else if(typeof voxatron_audio_context!=="undefined"){codo_audio_context=voxatron_audio_context;audio_log("found voxatron_audio_context")}else{codo_audio_context=new webAudioAPI;audio_log("creating own audio context")}if(codo_audio_context){audio_log("Sample Rate: "+codo_audio_context.sampleRate);audio_log("Buffer Size: "+$0);node=codo_audio_context.createScriptProcessor($0,1,1);node.onaudioprocess=function(e){var data=e.outputBuffer.getChannelData(0);var r=22050/codo_audio_context.sampleRate;var len0=Math.floor(data.length*r);var len1=data.length;var ptr=Module.ccall("mix_0","number",["number","number"],[len0,len1]);for(var j=0;j<data.length;j++)data[j]=Module.getValue(ptr+j*2,"i16")/32768};node.connect(codo_audio_context.destination)}else{audio_log("** failed to create codo_audio_context")}}else{audio_log("** webAudioAPI not found")}}},function(){return document.pointerLockElement?1:0},function(){var ret=0;if(typeof pico8_mouse!=="undefined"&&pico8_mouse.length>0)ret=1;return ret},function(){return pico8_mouse[0]},function(){return pico8_mouse[1]},function(){if(typeof codo_key_buffer==="undefined")codo_key_buffer=[];return codo_key_buffer.length>0?1:0},function(){if(typeof codo_key_buffer==="undefined")codo_key_buffer=[];let val=codo_key_buffer.shift()|0;return val},function(){temp=typeof codo_wheel_dx!=="undefined"?codo_wheel_dx:0;codo_wheel_dx=0;return temp},function(){temp=typeof codo_wheel_dy!=="undefined"?codo_wheel_dy:0;codo_wheel_dy=0;return temp},function(){if(document.hidden)return 0;el=typeof codo_textarea==="undefined"?document.getElementById("codo_textarea"):codo_textarea;if(el&&el==document.activeElement)return 1;el=document.activeElement;return!el||el.tagName.toLowerCase()!="input"&&el.tagName.toLowerCase()!="textarea"},function(){if(typeof pico8_state!=="undefined")if(pico8_state.clicked_outside){pico8_state.clicked_outside=false;return 1}return 0},function(){el=typeof codo_textarea==="undefined"?document.getElementById("codo_textarea"):codo_textarea;if(el&&el.style.display!="none"){el.focus();el.select()}},function(){el=typeof codo_textarea==="undefined"?document.getElementById("codo_textarea"):codo_textarea;if(el&&el.style.display!="none"){el.select()}},function(){return pico8_mouse[2]},function(){_dir_name=""},function($0){_dir_name=_dir_name+String.fromCharCode($0)},function(){FS.createPath("",_dir_name,true,true)},function(){Module["canvas"].exitPointerLock()},function(){el=typeof codo_textarea==="undefined"?document.getElementById("codo_textarea"):codo_textarea;if(el){}},function(){_codo_str_out=""},function($0,$1){_codo_str_out=Module.UTF8ToString($0,$1)},function(){el=typeof codo_textarea==="undefined"?document.getElementById("codo_textarea"):codo_textarea;if(el){el.value=_codo_str_out;return 0}else return 1},function(){el=typeof codo_textarea==="undefined"?document.getElementById("codo_textarea"):codo_textarea;if(el&&el.style.display=="none"&&(typeof p8_touch_detected==="undefined"||!p8_touch_detected)){el.style.display="";el.focus();el.select()}},function(){el=typeof codo_textarea==="undefined"?document.getElementById("codo_textarea"):codo_textarea;if(el&&el.style.display!="none"&&el.value!=""){_codo_text_value=el.value;return 1}return 0},function($0,$1){Module.stringToUTF8(_codo_text_value,$0,$1)}];function _emscripten_asm_const_i(code){return ASM_CONSTS[code]()}function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _emscripten_asm_const_iii(code,a0,a1){return ASM_CONSTS[code](a0,a1)}function _emscripten_asm_const_iiiii(code,a0,a1,a2,a3){return ASM_CONSTS[code](a0,a1,a2,a3)}function _emscripten_asm_const_iiiiiii(code,a0,a1,a2,a3,a4,a5){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5)}function _emscripten_asm_const_iiiiiiiii(code,a0,a1,a2,a3,a4,a5,a6,a7){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5,a6,a7)}__ATINIT__.push({func:function(){___emscripten_environ_constructor()}});memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAAAkuAAAY/4AAGf+AAAtuAAANrgAAC/0AAAa9gAAOvkAAC24AAA9uAAARLgAAEq4AAAAAAAAAAAAAAAACAgICAgAAAAAAAAAAAAAAAAAAAAAAAAMBAQEBAQEBAQEBAQEBAQEFhYWFhYWFhYWFgQEBAQEBAQVFRUVFRUFBQUFBQUFBQUFBQUFBQUFBQUFBQQEBAQFBBUVFRUVFQUFBQUFBQUFBQUFBQUFBQUFBQUFBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBxQVRQUFxsPBA8VGx8fHx8fHx8fHx8fHx8fGB8YGBgYGBgaCK8vLyE5FRUEGJiBGIUUVAXAAAAAAAAAAAAAAAAAQICAwMDAwQEBAQEBAQEBQUFBQUFBQUFBQUFBQUFBQYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOAEBAK3lAACv+gAAU/wAAEz8AAD9+QAAXf4AAHP9AAA6+QAAqOUAAET8AAB3/QAAzGkBAGP+AAA/AQEAPAEBAGz7AABD+QAAR/wAAFj+AABz+wAAK/oAAE16AQAoIQEALwEBACwBAQApAQEAMgEBADUBAQB5vAAAHMUAAHy8AACFvAAAjLwAAL44AQCVvAAA/hEBADgTAQC0EwEAgRQBABgVAQCEFQEAJhwBACkcAQC5HAEAvBwBACgeAQCKHwEAoR0BACwQAQA2EQEAm7wAADsTAQC3EwEAhRQBABwVAQCIFQEAZSABAAAAAAAAAAAAEBAQEBERERERERQTCAgGBgcHCQkJCQkJCQkJCQUFEREoKCgoKCgPDgMDAwMDAwMDAwMDAwICAQEAAAAAAAAAAEvBAABTwQAAXsEAAGPBAABqwQAAcMEAAHXBAAB7wQAAgcEAAIfBAACNwQAAk8EAAJnBAACfwQAApMEAAKrBAACwwQAAtsEAAL3BAADEwQAAy8EAANHBAADYwQAA38EAAOfBAADvwQAA9cEAAPrBAAD/wQAACMIAAAAAAAAAAAAAjQcBABVRAQAkKQEAhmIBAHJkAQCJYwEAGmQBAB1kAQB95wAAeucAAPFcAQBlXgEA5e4AAPPuAAASYgEAsmABAAHvAADWZAEAyF8BALVlAQC7ZQEAo8MAAN7uAABMUwEAkgcBAAAAAAAAAAAAAAAAAJIHAQCNBwEAHWQBABpkAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGp5gAAruYAALPmAAC45gAAveYAAMLmAADH5gAAzOYAANHmAAAAAAAAAAAAAAAAAAAQAQIDBAUGBwgJCgsMDQ4PAAECAwQFBgcICQoLDA0ODwAAgIAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhISEhISEhAAAAAAAAAAAAYCCAAAAAAAAA/wAAARITJBXWZ0hJmjvcXY7vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAABAAAABQAAAAEAAAAFAAAABQAAAAUAAAABAAAAAQAAAAEAAAAFAAAAAAAAAAEAAAADAAAABQAAAAQAAAACAAAACwAAAA8AAAAHAAAADAAAAA0AAAAJAAAACAAAAAYAAAAKAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQgICAgICAgICAgICAgICAgAAAAAAAAAAAAAAAAAAAAAAAAACQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAAAAAFpaAAAfUQAAfX0AAB64//+g+f//v1EAAMC1//+gmf//ILH//+Gg//9Am///APb//2Cx//8fGwAAwPX//1JJRka4MgAAV0FWRWZtdCAQAAAAAQABACJWAABErAAAAgAQAGRhdGEAAAAAAAAAAO9oAQD7aAEAB2kBABNpAQAfaQEAKmkBADVpAQBBaQEATWkBAFlpAQBlaQEAcGkBAHtpAQAAAAAAAAAAAAAAAACwaAEAtWgBALtoAQC+aAEAw2gBAM1oAQDXaAEA2WgBANtoAQDdaAEA32gBAONoAQDlaAEAAAAAAAAAAAAAAAAAzGkBANJpAQDdaQEA4WkBAOppAQD7aQEA/2kBAApqAQDMaQEAEWoBAN1pAQAVagEAGWoBAPtpAQAdagEACmoBAOzFMADsxTAAI2oBAC9qAQBKagEAVmoBAGJqAQB2agEASG4BAFFuAQBYbgEAZG4BAG5uAQB2bgEAgW4BAItuAQCVbgEAnm4BAKZuAQCwbgEAAAAAAAAAAAAAAAAAAAAAAOzFMAC5bgEAv24BAMVuAQDLbgEA0W4BANduAQDdbgEAAAAAAAAAAAAAAAAAAAAAAOzFMADjbgEA8m4BAANvAQAUbwEAI28BADVvAQBLbwEA7MUwAFpvAQBibwEAbG8BAHZvAQCHbwEAkm8BAKFvAQBjb2RvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQABAoKAAAACh8KHwofFB8FHxECBAgRCBQdEg0EBAAAAAQICAgEBAICAgQVDh8OFQQEHwQEAAAACBAAAB8AAAAAAAAEAQIECBAfERERHwQMBAQfHwEfEB8fAQcBHxERHwEBHxAfAR8QEB8RHx8BAQEBHxEfER8fER8BAQAEAAQAAAQABAgDDBAMAwAOAA4AGAYBBhgfAQcABB8RHRUdHxEfEREeER4RHw8QEBAPHhERER8fEBwQHx8QHhAQDhAQEQ8RER8REQ4EBAQOAgICEgwSFBgUEhAQEBAfERsVERERGRUTEQ4REREOHhEeEBAfERETHx4RHhERDxAOAR4fBAQEBBEREREOERERCgQRERUbEREKBAoREREOBAQfAgQIHwwICAgMEAgEAgEGAgICBgQKAAAAAAAAAB8EAgAAAB8RHxERHhEeER8PEBAQDx4REREfHxAcEB8fEB4QEA4QEBEPEREfEREOBAQEDgICAhIMEhQYFBIQEBAQHxEbFRERERkVExEOERERDh4RHhAQHxEREx8eER4REQ8QDgEeHwQEBAQRERERDhEREQoEEREVGxERCgQKERERDgQEHwIECB8EBAgEBAQEBAQEBAQCBAQFCgAAAAAAAAAfsnYBALZ2AQC6dgEAvnYBAMJ2AQDHdgEAzHYBANF2AQDWdgEA23YBAOB2AQDldgEA6nYBAO92AQD0dgEA+XYBAP52AQADdwEACHcBAA13AQASdwEAF3cBABx3AQAhdwEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP7/AAD+/wAA/v8AAP7/AAD+/wAA/f8AAP3/AAD9/wAA/f8AAPz/AAD8/wAA/P8AAPz/AAD7/wAA+/8AAPv/AAD6/wAA+v8AAPr/AAD5/wAA+f8AAPn/AAD4/wAA+P8AAPf/AAD3/wAA9/8AAPb/AAD2/wAA9f8AAPX/AAD0/wAA9P8AAPP/AADz/wAA8v8AAPL/AADx/wAA8f8AAPD/AADw/wAA7/8AAO//AADu/wAA7f8AAO3/AADs/wAA7P8AAOv/AADq/wAA6v8AAOn/AADo/wAA6P8AAOf/AADm/wAA5v8AAOX/AADk/wAA4/8AAOP/AADi/wAA4f8AAOD/AADg/wAA3/8AAN7/AADd/wAA3P8AANz/AADb/wAA2v8AANn/AADY/wAA1/8AANb/AADV/wAA1f8AANT/AADT/wAA0v8AANH/AADQ/wAAz/8AAM7/AADN/wAAzP8AAMv/AADK/wAAyf8AAMj/AADH/wAAxv8AAMX/AADE/wAAwv8AAMH/AADA/wAAv/8AAL7/AAC9/wAAvP8AALv/AAC5/wAAuP8AALf/AAC2/wAAtf8AALT/AACy/wAAsf8AALD/AACv/wAArf8AAKz/AACr/wAAqf8AAKj/AACn/wAApv8AAKT/AACj/wAAov8AAKD/AACf/wAAnf8AAJz/AACb/wAAmf8AAJj/AACW/wAAlf8AAJT/AACS/wAAkf8AAI//AACO/wAAjP8AAIv/AACJ/wAAiP8AAIb/AACF/wAAg/8AAIL/AACA/wAAfv8AAH3/AAB7/wAAev8AAHj/AAB2/wAAdf8AAHP/AABx/wAAcP8AAG7/AABs/wAAa/8AAGn/AABn/wAAZv8AAGT/AABi/wAAYP8AAF//AABd/wAAW/8AAFn/AABY/wAAVv8AAFT/AABS/wAAUP8AAE7/AABN/wAAS/8AAEn/AABH/wAARf8AAEP/AABB/wAAP/8AAD3/AAA7/wAAOv8AADj/AAA2/wAANP8AADL/AAAw/wAALv8AACz/AAAq/wAAKP8AACX/AAAj/wAAIf8AAB//AAAd/wAAG/8AABn/AAAX/wAAFf8AABP/AAAQ/wAADv8AAAz/AAAK/wAACP8AAAb/AAAD/wAAAf8AAP/+AAD9/gAA+/4AAPj+AAD2/gAA9P4AAPH+AADv/gAA7f4AAOv+AADo/gAA5v4AAOT+AADh/gAA3/4AAN3+AADa/gAA2P4AANX+AADT/gAA0f4AAM7+AADM/gAAyf4AAMf+AADE/gAAwv4AAL/+AAC9/gAAuv4AALj+AAC1/gAAs/4AALD+AACu/gAAq/4AAKn+AACm/gAApP4AAKH+AACe/gAAnP4AAJn+AACX/gAAlP4AAJH+AACP/gAAjP4AAIn+AACH/gAAhP4AAIH+AAB+/gAAfP4AAHn+AAB2/gAAc/4AAHH+AABu/gAAa/4AAGj+AABm/gAAY/4AAGD+AABd/gAAWv4AAFf+AABV/gAAUv4AAE/+AABM/gAASf4AAEb+AABD/gAAQP4AAD3+AAA6/gAAN/4AADT+AAAx/gAALv4AACv+AAAo/gAAJf4AACL+AAAf/gAAHP4AABn+AAAW/gAAE/4AABD+AAAN/gAACv4AAAf+AAAE/gAAAf4AAP39AAD6/QAA9/0AAPT9AADx/QAA7v0AAOr9AADn/QAA5P0AAOH9AADd/QAA2v0AANf9AADU/QAA0P0AAM39AADK/QAAx/0AAMP9AADA/QAAvf0AALn9AAC2/QAAs/0AAK/9AACs/QAAqP0AAKX9AACi/QAAnv0AAJv9AACX/QAAlP0AAJD9AACN/QAAif0AAIb9AACD/QAAf/0AAHz9AAB4/QAAdP0AAHH9AABt/QAAav0AAGb9AABj/QAAX/0AAFv9AABY/QAAVP0AAFH9AABN/QAASf0AAEb9AABC/QAAPv0AADv9AAA3/QAAM/0AADD9AAAs/QAAKP0AACT9AAAh/QAAHf0AABn9AAAV/QAAEv0AAA79AAAK/QAABv0AAAL9AAD+/AAA+/wAAPf8AADz/AAA7/wAAOv8AADn/AAA4/wAAN/8AADc/AAA2PwAANT8AADQ/AAAzPwAAMj8AADE/AAAwPwAALz8AAC4/AAAtPwAALD8AACs/AAAqPwAAKT8AACg/AAAm/wAAJf8AACT/AAAj/wAAIv8AACH/AAAg/wAAH/8AAB7/AAAdvwAAHL8AABu/AAAavwAAGb8AABh/AAAXfwAAFn8AABV/AAAUfwAAEz8AABI/AAARPwAAD/8AAA7/AAAN/wAADP8AAAu/AAAKvwAACb8AAAh/AAAHfwAABj8AAAU/AAAEPwAAAv8AAAH/AAAAvwAAP77AAD6+wAA9fsAAPH7AADs+wAA6PsAAOP7AADf+wAA2vsAANb7AADR+wAAzfsAAMj7AADE+wAAv/sAALv7AAC2+wAAsfsAAK37AACo+wAApPsAAJ/7AACa+wAAlvsAAJH7AACM+wAAiPsAAIP7AAB++wAAevsAAHX7AABw+wAAa/sAAGf7AABi+wAAXfsAAFj7AABU+wAAT/sAAEr7AABF+wAAQPsAADz7AAA3+wAAMvsAAC37AAAo+wAAI/sAAB/7AAAa+wAAFfsAABD7AAAL+wAABvsAAAH7AAD8+gAA9/oAAPL6AADt+gAA6PoAAOP6AADe+gAA2foAANT6AADP+gAAyvoAAMX6AADA+gAAu/oAALb6AACx+gAArPoAAKf6AACh+gAAnPoAAJf6AACS+gAAjfoAAIj6AACD+gAAffoAAHj6AABz+gAAbvoAAGn6AABj+gAAXvoAAFn6AABU+gAATvoAAEn6AABE+gAAPvoAADn6AAA0+gAAL/oAACn6AAAk+gAAH/oAABn6AAAU+gAADvoAAAn6AAAE+gAA/vkAAPn5AADz+QAA7vkAAOj5AADj+QAA3vkAANj5AADT+QAAzfkAAMj5AADC+QAAvfkAALf5AACy+QAArPkAAKb5AACh+QAAm/kAAJb5AACQ+QAAivkAAIX5AAB/+QAAevkAAHT5AABu+QAAafkAAGP5AABd+QAAWPkAAFL5AABM+QAARvkAAEH5AAA7+QAANfkAADD5AAAq+QAAJPkAAB75AAAY+QAAE/kAAA35AAAH+QAAAfkAAPv4AAD1+AAA8PgAAOr4AADk+AAA3vgAANj4AADS+AAAzPgAAMb4AADA+AAAuvgAALT4AACv+AAAqfgAAKP4AACd+AAAl/gAAJH4AACL+AAAhfgAAH74AAB4+AAAcvgAAGz4AABm+AAAYPgAAFr4AABU+AAATvgAAEj4AABC+AAAO/gAADX4AAAv+AAAKfgAACP4AAAd+AAAFvgAABD4AAAK+AAABPgAAP73AAD39wAA8fcAAOv3AADl9wAA3vcAANj3AADS9wAAy/cAAMX3AAC/9wAAuPcAALL3AACs9wAApfcAAJ/3AACZ9wAAkvcAAIz3AACF9wAAf/cAAHn3AABy9wAAbPcAAGX3AABf9wAAWPcAAFL3AABL9wAARfcAAD73AAA49wAAMfcAACv3AAAk9wAAHvcAABf3AAAQ9wAACvcAAAP3AAD99gAA9vYAAO/2AADp9gAA4vYAANv2AADV9gAAzvYAAMf2AADB9gAAuvYAALP2AACt9gAApvYAAJ/2AACY9gAAkvYAAIv2AACE9gAAffYAAHf2AABw9gAAafYAAGL2AABb9gAAVPYAAE72AABH9gAAQPYAADn2AAAy9gAAK/YAACT2AAAd9gAAFvYAABD2AAAJ9gAAAvYAAPv1AAD09QAA7fUAAOb1AADf9QAA2PUAANH1AADK9QAAw/UAALz1AAC19QAArvUAAKb1AACf9QAAmPUAAJH1AACK9QAAg/UAAHz1AAB19QAAbvUAAGb1AABf9QAAWPUAAFH1AABK9QAAQ/UAADv1AAA09QAALfUAACb1AAAe9QAAF/UAABD1AAAJ9QAAAfUAAPr0AADz9AAA6/QAAOT0AADd9AAA1fQAAM70AADH9AAAv/QAALj0AACx9AAAqfQAAKL0AACa9AAAk/QAAIz0AACE9AAAffQAAHX0AABu9AAAZvQAAF/0AABX9AAAUPQAAEj0AABB9AAAOfQAADL0AAAq9AAAI/QAABv0AAAT9AAADPQAAAT0AAD98wAA9fMAAO3zAADm8wAA3vMAANfzAADP8wAAx/MAAMDzAAC48wAAsPMAAKjzAACh8wAAmfMAAJHzAACK8wAAgvMAAHrzAABy8wAAavMAAGPzAABb8wAAU/MAAEvzAABD8wAAPPMAADTzAAAs8wAAJPMAABzzAAAU8wAADPMAAATzAAD98gAA9fIAAO3yAADl8gAA3fIAANXyAADN8gAAxfIAAL3yAAC18gAArfIAAKXyAACd8gAAlfIAAI3yAACF8gAAffIAAHXyAABt8gAAZfIAAF3yAABU8gAATPIAAETyAAA88gAANPIAACzyAAAk8gAAG/IAABPyAAAL8gAAA/IAAPvxAADz8QAA6vEAAOLxAADa8QAA0vEAAMnxAADB8QAAufEAALHxAACo8QAAoPEAAJjxAACP8QAAh/EAAH/xAAB28QAAbvEAAGbxAABd8QAAVfEAAEzxAABE8QAAPPEAADPxAAAr8QAAIvEAABrxAAAR8QAACfEAAAHxAAD48AAA8PAAAOfwAADf8AAA1vAAAM7wAADF8AAAvPAAALTwAACr8AAAo/AAAJrwAACS8AAAifAAAIDwAAB48AAAb/AAAGfwAABe8AAAVfAAAE3wAABE8AAAO/AAADPwAAAq8AAAIfAAABjwAAAQ8AAAB/AAAP7vAAD17wAA7e8AAOTvAADb7wAA0u8AAMrvAADB7wAAuO8AAK/vAACm7wAAne8AAJXvAACM7wAAg+8AAHrvAABx7wAAaO8AAF/vAABW7wAATe8AAEXvAAA87wAAM+8AACrvAAAh7wAAGO8AAA/vAAAG7wAA/e4AAPTuAADr7gAA4u4AANnuAADQ7gAAx+4AAL3uAAC07gAAq+4AAKLuAACZ7gAAkO4AAIfuAAB+7gAAde4AAGvuAABi7gAAWe4AAFDuAABH7gAAPu4AADTuAAAr7gAAIu4AABnuAAAP7gAABu4AAP3tAAD07QAA6u0AAOHtAADY7QAAz+0AAMXtAAC87QAAs+0AAKntAACg7QAAl+0AAI3tAACE7QAAeu0AAHHtAABo7QAAXu0AAFXtAABL7QAAQu0AADjtAAAv7QAAJu0AABztAAAT7QAACe0AAADtAAD27AAA7ewAAOPsAADa7AAA0OwAAMbsAAC97AAAs+wAAKrsAACg7AAAl+wAAI3sAACD7AAAeuwAAHDsAABm7AAAXewAAFPsAABK7AAAQOwAADbsAAAs7AAAI+wAABnsAAAP7AAABuwAAPzrAADy6wAA6OsAAN/rAADV6wAAy+sAAMHrAAC36wAArusAAKTrAACa6wAAkOsAAIbrAAB86wAAc+sAAGnrAABf6wAAVesAAEvrAABB6wAAN+sAAC3rAAAj6wAAGesAAA/rAAAG6wAA/OoAAPLqAADo6gAA3uoAANTqAADK6gAAwOoAALbqAACr6gAAoeoAAJfqAACN6gAAg+oAAHnqAABv6gAAZeoAAFvqAABR6gAAR+oAADzqAAAy6gAAKOoAAB7qAAAU6gAACuoAAP/pAAD16QAA6+kAAOHpAADX6QAAzOkAAMLpAAC46QAArukAAKPpAACZ6QAAj+kAAIXpAAB66QAAcOkAAGbpAABb6QAAUekAAEfpAAA86QAAMukAACfpAAAd6QAAE+kAAAjpAAD+6AAA8+gAAOnoAADf6AAA1OgAAMroAAC/6AAAtegAAKroAACg6AAAlegAAIvoAACA6AAAdugAAGvoAABh6AAAVugAAEzoAABB6AAANugAACzoAAAh6AAAF+gAAAzoAAAB6AAA9+cAAOznAADi5wAA1+cAAMznAADC5wAAt+cAAKznAACh5wAAl+cAAIznAACB5wAAd+cAAGznAABh5wAAVucAAEznAABB5wAANucAACvnAAAg5wAAFucAAAvnAAAA5wAA9eYAAOrmAADf5gAA1eYAAMrmAAC/5gAAtOYAAKnmAACe5gAAk+YAAIjmAAB95gAAcuYAAGfmAABc5gAAUuYAAEfmAAA85gAAMeYAACbmAAAb5gAAEOYAAAXmAAD55QAA7uUAAOPlAADY5QAAzeUAAMLlAAC35QAArOUAAKHlAACW5QAAi+UAAH/lAAB05QAAaeUAAF7lAABT5QAASOUAAD3lAAAx5QAAJuUAABvlAAAQ5QAABOUAAPnkAADu5AAA4+QAANfkAADM5AAAweQAALbkAACq5AAAn+QAAJTkAACI5AAAfeQAAHLkAABm5AAAW+QAAFDkAABE5AAAOeQAAC7kAAAi5AAAF+QAAAvkAAAA5AAA9OMAAOnjAADe4wAA0uMAAMfjAAC74wAAsOMAAKTjAACZ4wAAjeMAAILjAAB24wAAa+MAAF/jAABT4wAASOMAADzjAAAx4wAAJeMAABrjAAAO4wAAAuMAAPfiAADr4gAA3+IAANTiAADI4gAAveIAALHiAACl4gAAmeIAAI7iAACC4gAAduIAAGviAABf4gAAU+IAAEfiAAA84gAAMOIAACTiAAAY4gAADeIAAAHiAAD14QAA6eEAAN3hAADR4QAAxuEAALrhAACu4QAAouEAAJbhAACK4QAAfuEAAHLhAABn4QAAW+EAAE/hAABD4QAAN+EAACvhAAAf4QAAE+EAAAfhAAD74AAA7+AAAOPgAADX4AAAy+AAAL/gAACz4AAAp+AAAJvgAACP4AAAg+AAAHfgAABq4AAAXuAAAFLgAABG4AAAOuAAAC7gAAAi4AAAFuAAAAngAAD93wAA8d8AAOXfAADZ3wAAzd8AAMDfAAC03wAAqN8AAJzfAACP3wAAg98AAHffAABr3wAAXt8AAFLfAABG3wAAOd8AAC3fAAAh3wAAFd8AAAjfAAD83gAA8N4AAOPeAADX3gAAyt4AAL7eAACy3gAApd4AAJneAACM3gAAgN4AAHTeAABn3gAAW94AAE7eAABC3gAANd4AACneAAAc3gAAEN4AAAPeAAD33QAA6t0AAN7dAADR3QAAxd0AALjdAACr3QAAn90AAJLdAACG3QAAed0AAGzdAABg3QAAU90AAEfdAAA63QAALd0AACHdAAAU3QAAB90AAPvcAADu3AAA4dwAANXcAADI3AAAu9wAAK7cAACi3AAAldwAAIjcAAB73AAAb9wAAGLcAABV3AAASNwAADvcAAAv3AAAItwAABXcAAAI3AAA+9sAAO7bAADh2wAA1dsAAMjbAAC72wAArtsAAKHbAACU2wAAh9sAAHrbAABt2wAAYNsAAFPbAABG2wAAOdsAACzbAAAf2wAAEtsAAAXbAAD42gAA69oAAN7aAADR2gAAxNoAALfaAACq2gAAndoAAJDaAACD2gAAdtoAAGnaAABc2gAAT9oAAEHaAAA02gAAJ9oAABraAAAN2gAAANoAAPLZAADl2QAA2NkAAMvZAAC+2QAAsNkAAKPZAACW2QAAidkAAHvZAABu2QAAYdkAAFTZAABG2QAAOdkAACzZAAAe2QAAEdkAAATZAAD22AAA6dgAANzYAADO2AAAwdgAALTYAACm2AAAmdgAAIvYAAB+2AAAcdgAAGPYAABW2AAASNgAADvYAAAt2AAAINgAABLYAAAF2AAA+NcAAOrXAADc1wAAz9cAAMHXAAC01wAAptcAAJnXAACL1wAAftcAAHDXAABj1wAAVdcAAEfXAAA61wAALNcAAB/XAAAR1wAAA9cAAPbWAADo1gAA2tYAAM3WAAC/1gAAsdYAAKTWAACW1gAAiNYAAHrWAABt1gAAX9YAAFHWAABE1gAANtYAACjWAAAa1gAADNYAAP/VAADx1QAA49UAANXVAADH1QAAutUAAKzVAACe1QAAkNUAAILVAAB01QAAZtUAAFnVAABL1QAAPdUAAC/VAAAh1QAAE9UAAAXVAAD31AAA6dQAANvUAADN1AAAv9QAALHUAACj1AAAldQAAIfUAAB51AAAa9QAAF3UAABP1AAAQdQAADPUAAAl1AAAF9QAAAnUAAD70wAA7dMAAN/TAADQ0wAAwtMAALTTAACm0wAAmNMAAIrTAAB80wAAbdMAAF/TAABR0wAAQ9MAADXTAAAm0wAAGNMAAArTAAD80gAA7tIAAN/SAADR0gAAw9IAALXSAACm0gAAmNIAAIrSAAB70gAAbdIAAF/SAABQ0gAAQtIAADTSAAAl0gAAF9IAAAnSAAD60QAA7NEAAN7RAADP0QAAwdEAALLRAACk0QAAldEAAIfRAAB50QAAatEAAFzRAABN0QAAP9EAADDRAAAi0QAAE9EAAAXRAAD20AAA6NAAANnQAADL0AAAvNAAAK7QAACf0AAAkNAAAILQAABz0AAAZdAAAFbQAABH0AAAOdAAACrQAAAc0AAADdAAAP7PAADwzwAA4c8AANLPAADEzwAAtc8AAKbPAACYzwAAic8AAHrPAABrzwAAXc8AAE7PAAA/zwAAMM8AACLPAAATzwAABM8AAPXOAADnzgAA2M4AAMnOAAC6zgAAq84AAJzOAACOzgAAf84AAHDOAABhzgAAUs4AAEPOAAA0zgAAJc4AABfOAAAIzgAA+c0AAOrNAADbzQAAzM0AAL3NAACuzQAAn80AAJDNAACBzQAAcs0AAGPNAABUzQAARc0AADbNAAAnzQAAGM0AAAnNAAD6zAAA68wAANzMAADNzAAAvswAAK7MAACfzAAAkMwAAIHMAAByzAAAY8wAAFTMAABFzAAANcwAACbMAAAXzAAACMwAAPnLAADqywAA2ssAAMvLAAC8ywAArcsAAJ7LAACOywAAf8sAAHDLAABhywAAUcsAAELLAAAzywAAI8sAABTLAAAFywAA9coAAObKAADXygAAx8oAALjKAACpygAAmcoAAIrKAAB7ygAAa8oAAFzKAABNygAAPcoAAC7KAAAeygAAD8oAAP/JAADwyQAA4ckAANHJAADCyQAAsskAAKPJAACTyQAAhMkAAHTJAABlyQAAVckAAEbJAAA2yQAAJ8kAABfJAAAHyQAA+MgAAOjIAADZyAAAycgAALrIAACqyAAAmsgAAIvIAAB7yAAAa8gAAFzIAABMyAAAPMgAAC3IAAAdyAAADcgAAP7HAADuxwAA3scAAM/HAAC/xwAAr8cAAKDHAACQxwAAgMcAAHDHAABhxwAAUccAAEHHAAAxxwAAIccAABLHAAACxwAA8sYAAOLGAADSxgAAwsYAALPGAACjxgAAk8YAAIPGAABzxgAAY8YAAFPGAABExgAANMYAACTGAAAUxgAABMYAAPTFAADkxQAA1MUAAMTFAAC0xQAApMUAAJTFAACExQAAdMUAAGTFAABUxQAARMUAADTFAAAkxQAAFMUAAATFAAD0xAAA5MQAANTEAADExAAAtMQAAKTEAACUxAAAg8QAAHPEAABjxAAAU8QAAEPEAAAzxAAAI8QAABPEAAACxAAA8sMAAOLDAADSwwAAwsMAALHDAAChwwAAkcMAAIHDAABxwwAAYMMAAFDDAABAwwAAMMMAAB/DAAAPwwAA/8IAAO7CAADewgAAzsIAAL7CAACtwgAAncIAAI3CAAB8wgAAbMIAAFzCAABLwgAAO8IAACrCAAAawgAACsIAAPnBAADpwQAA2MEAAMjBAAC4wQAAp8EAAJfBAACGwQAAdsEAAGXBAABVwQAARMEAADTBAAAjwQAAE8EAAALBAADywAAA4cAAANHAAADAwAAAsMAAAJ/AAACPwAAAfsAAAG7AAABdwAAATMAAADzAAAArwAAAG8AAAArAAAD5vwAA6b8AANi/AADHvwAAt78AAKa/AACVvwAAhb8AAHS/AABjvwAAU78AAEK/AAAxvwAAIb8AABC/AAD/vgAA7r4AAN6+AADNvgAAvL4AAKu+AACbvgAAir4AAHm+AABovgAAV74AAEe+AAA2vgAAJb4AABS+AAADvgAA8r0AAOK9AADRvQAAwL0AAK+9AACevQAAjb0AAHy9AABrvQAAWr0AAEq9AAA5vQAAKL0AABe9AAAGvQAA9bwAAOS8AADTvAAAwrwAALG8AACgvAAAj7wAAH68AABtvAAAXLwAAEu8AAA6vAAAKbwAABi8AAAHvAAA9rsAAOW7AADUuwAAw7sAALG7AACguwAAj7sAAH67AABtuwAAXLsAAEu7AAA6uwAAKLsAABe7AAAGuwAA9boAAOS6AADTugAAwboAALC6AACfugAAjroAAH26AABrugAAWroAAEm6AAA4ugAAJroAABW6AAAEugAA87kAAOG5AADQuQAAv7kAAK65AACcuQAAi7kAAHq5AABouQAAV7kAAEa5AAA0uQAAI7kAABK5AAAAuQAA77gAAN24AADMuAAAu7gAAKm4AACYuAAAhrgAAHW4AABkuAAAUrgAAEG4AAAvuAAAHrgAAAy4AAD7twAA6bcAANi3AADGtwAAtbcAAKO3AACStwAAgLcAAG+3AABdtwAATLcAADq3AAAptwAAF7cAAAW3AAD0tgAA4rYAANG2AAC/tgAArbYAAJy2AACKtgAAebYAAGe2AABVtgAARLYAADK2AAAgtgAAD7YAAP21AADrtQAA2rUAAMi1AAC2tQAApbUAAJO1AACBtQAAb7UAAF61AABMtQAAOrUAACi1AAAXtQAABbUAAPO0AADhtAAA0LQAAL60AACstAAAmrQAAIi0AAB3tAAAZbQAAFO0AABBtAAAL7QAAB20AAALtAAA+rMAAOizAADWswAAxLMAALKzAACgswAAjrMAAHyzAABqswAAWLMAAEezAAA1swAAI7MAABGzAAD/sgAA7bIAANuyAADJsgAAt7IAAKWyAACTsgAAgbIAAG+yAABdsgAAS7IAADmyAAAnsgAAFbIAAAOyAADwsQAA3rEAAMyxAAC6sQAAqLEAAJaxAACEsQAAcrEAAGCxAABOsQAAO7EAACmxAAAXsQAABbEAAPOwAADhsAAAzrAAALywAACqsAAAmLAAAIawAAB0sAAAYbAAAE+wAAA9sAAAK7AAABiwAAAGsAAA9K8AAOKvAADPrwAAva8AAKuvAACZrwAAhq8AAHSvAABirwAAT68AAD2vAAArrwAAGK8AAAavAAD0rgAA4a4AAM+uAAC9rgAAqq4AAJiuAACFrgAAc64AAGGuAABOrgAAPK4AACmuAAAXrgAABa4AAPKtAADgrQAAza0AALutAACorQAAlq0AAIOtAABxrQAAXq0AAEytAAA5rQAAJ60AABStAAACrQAA76wAAN2sAADKrAAAuKwAAKWsAACTrAAAgKwAAG2sAABbrAAASKwAADasAAAjrAAAEawAAP6rAADrqwAA2asAAMarAACzqwAAoasAAI6rAAB7qwAAaasAAFarAABDqwAAMasAAB6rAAALqwAA+aoAAOaqAADTqgAAwaoAAK6qAACbqgAAiKoAAHaqAABjqgAAUKoAAD2qAAAqqgAAGKoAAAWqAADyqQAA36kAAM2pAAC6qQAAp6kAAJSpAACBqQAAbqkAAFypAABJqQAANqkAACOpAAAQqQAA/agAAOqoAADXqAAAxagAALKoAACfqAAAjKgAAHmoAABmqAAAU6gAAECoAAAtqAAAGqgAAAeoAAD0pwAA4acAAM6nAAC7pwAAqKcAAJWnAACCpwAAb6cAAFynAABJpwAANqcAACOnAAAQpwAA/aYAAOqmAADXpgAAxKYAALGmAACepgAAi6YAAHimAABlpgAAUqYAAD6mAAArpgAAGKYAAAWmAADypQAA36UAAMylAAC4pQAApaUAAJKlAAB/pQAAbKUAAFmlAABFpQAAMqUAAB+lAAAMpQAA+aQAAOWkAADSpAAAv6QAAKykAACYpAAAhaQAAHKkAABfpAAAS6QAADikAAAlpAAAEqQAAP6jAADrowAA2KMAAMSjAACxowAAnqMAAIqjAAB3owAAZKMAAFCjAAA9owAAKqMAABajAAADowAA76IAANyiAADJogAAtaIAAKKiAACOogAAe6IAAGiiAABUogAAQaIAAC2iAAAaogAABqIAAPOhAADfoQAAzKEAALmhAACloQAAkqEAAH6hAABroQAAV6EAAEOhAAAwoQAAHKEAAAmhAAD1oAAA4qAAAM6gAAC7oAAAp6AAAJSgAACAoAAAbKAAAFmgAABFoAAAMqAAAB6gAAAKoAAA958AAOOfAADQnwAAvJ8AAKifAACVnwAAgZ8AAG2fAABanwAARp8AADKfAAAfnwAAC58AAPeeAADjngAA0J4AALyeAACongAAlZ4AAIGeAABtngAAWZ4AAEaeAAAyngAAHp4AAAqeAAD3nQAA450AAM+dAAC7nQAAp50AAJSdAACAnQAAbJ0AAFidAABEnQAAMZ0AAB2dAAAJnQAA9ZwAAOGcAADNnAAAuZwAAKacAACSnAAAfpwAAGqcAABWnAAAQpwAAC6cAAAanAAABpwAAPKbAADemwAAypsAALebAACjmwAAj5sAAHubAABnmwAAU5sAAD+bAAArmwAAF5sAAAObAADvmgAA25oAAMeaAACzmgAAn5oAAIuaAAB3mgAAY5oAAE+aAAA6mgAAJpoAABKaAAD+mQAA6pkAANaZAADCmQAArpkAAJqZAACGmQAAcpkAAF2ZAABJmQAANZkAACGZAAANmQAA+ZgAAOWYAADQmAAAvJgAAKiYAACUmAAAgJgAAGyYAABXmAAAQ5gAAC+YAAAbmAAAB5gAAPKXAADelwAAypcAALaXAAChlwAAjZcAAHmXAABllwAAUJcAADyXAAAolwAAE5cAAP+WAADrlgAA15YAAMKWAACulgAAmpYAAIWWAABxlgAAXZYAAEiWAAA0lgAAIJYAAAuWAAD3lQAA4pUAAM6VAAC6lQAApZUAAJGVAAB9lQAAaJUAAFSVAAA/lQAAK5UAABaVAAAClQAA7pQAANmUAADFlAAAsJQAAJyUAACHlAAAc5QAAF6UAABKlAAANZQAACGUAAAMlAAA+JMAAOOTAADPkwAAupMAAKaTAACRkwAAfZMAAGiTAABUkwAAP5MAACqTAAAWkwAAAZMAAO2SAADYkgAAxJIAAK+SAACakgAAhpIAAHGSAABdkgAASJIAADOSAAAfkgAACpIAAPWRAADhkQAAzJEAALeRAACjkQAAjpEAAHmRAABlkQAAUJEAADuRAAAnkQAAEpEAAP2QAADpkAAA1JAAAL+QAACqkAAAlpAAAIGQAABskAAAV5AAAEOQAAAukAAAGZAAAASQAADwjwAA248AAMaPAACxjwAAnI8AAIiPAABzjwAAXo8AAEmPAAA0jwAAH48AAAuPAAD2jgAA4Y4AAMyOAAC3jgAAoo4AAI2OAAB5jgAAZI4AAE+OAAA6jgAAJY4AABCOAAD7jQAA5o0AANGNAAC8jQAAp40AAJONAAB+jQAAaY0AAFSNAAA/jQAAKo0AABWNAAAAjQAA64wAANaMAADBjAAArIwAAJeMAACCjAAAbYwAAFiMAABDjAAALowAABmMAAAEjAAA74sAANqLAADFiwAAr4sAAJqLAACFiwAAcIsAAFuLAABGiwAAMYsAAByLAAAHiwAA8ooAAN2KAADHigAAsooAAJ2KAACIigAAc4oAAF6KAABJigAANIoAAB6KAAAJigAA9IkAAN+JAADKiQAAtIkAAJ+JAACKiQAAdYkAAGCJAABKiQAANYkAACCJAAALiQAA9ogAAOCIAADLiAAAtogAAKGIAACLiAAAdogAAGGIAABMiAAANogAACGIAAAMiAAA9ocAAOGHAADMhwAAt4cAAKGHAACMhwAAd4cAAGGHAABMhwAAN4cAACGHAAAMhwAA94YAAOGGAADMhgAAtoYAAKGGAACMhgAAdoYAAGGGAABMhgAANoYAACGGAAALhgAA9oUAAOCFAADLhQAAtoUAAKCFAACLhQAAdYUAAGCFAABKhQAANYUAAB+FAAAKhQAA9YQAAN+EAADKhAAAtIQAAJ+EAACJhAAAdIQAAF6EAABJhAAAM4QAAB2EAAAIhAAA8oMAAN2DAADHgwAAsoMAAJyDAACHgwAAcYMAAFyDAABGgwAAMIMAABuDAAAFgwAA8IIAANqCAADEggAAr4IAAJmCAACEggAAboIAAFiCAABDggAALYIAABeCAAACggAA7IEAANaBAADBgQAAq4EAAJWBAACAgQAAaoEAAFSBAAA/gQAAKYEAABOBAAD+gAAA6IAAANKAAAC8gAAAp4AAAJGAAAB7gAAAZoAAAFCAAAA6gAAAJIAAAA+AAAD5fwAA438AAM1/AAC3fwAAon8AAIx/AAB2fwAAYH8AAEp/AAA1fwAAH38AAAl/AADzfgAA3X4AAMh+AACyfgAAnH4AAIZ+AABwfgAAWn4AAER+AAAvfgAAGX4AAAN+AADtfQAA130AAMF9AACrfQAAlX0AAH99AABqfQAAVH0AAD59AAAofQAAEn0AAPx8AADmfAAA0HwAALp8AACkfAAAjnwAAHh8AABifAAATHwAADZ8AAAgfAAACnwAAPR7AADeewAAyHsAALJ7AACcewAAhnsAAHB7AABaewAARHsAAC57AAAYewAAAnsAAOx6AADWegAAwHoAAKp6AACUegAAfnoAAGh6AABSegAAPHoAACZ6AAAQegAA+XkAAON5AADNeQAAt3kAAKF5AACLeQAAdXkAAF95AABJeQAAMnkAABx5AAAGeQAA8HgAANp4AADEeAAArXgAAJd4AACBeAAAa3gAAFV4AAA/eAAAKHgAABJ4AAD8dwAA5ncAANB3AAC5dwAAo3cAAI13AAB3dwAAYHcAAEp3AAA0dwAAHncAAAh3AADxdgAA23YAAMV2AACudgAAmHYAAIJ2AABsdgAAVXYAAD92AAApdgAAEnYAAPx1AADmdQAA0HUAALl1AACjdQAAjXUAAHZ1AABgdQAASnUAADN1AAAddQAAB3UAAPB0AADadAAAw3QAAK10AACXdAAAgHQAAGp0AABUdAAAPXQAACd0AAAQdAAA+nMAAORzAADNcwAAt3MAAKBzAACKcwAAc3MAAF1zAABHcwAAMHMAABpzAAADcwAA7XIAANZyAADAcgAAqXIAAJNyAAB8cgAAZnIAAFByAAA5cgAAI3IAAAxyAAD2cQAA33EAAMlxAACycQAAm3EAAIVxAABucQAAWHEAAEFxAAArcQAAFHEAAP5wAADncAAA0XAAALpwAACjcAAAjXAAAHZwAABgcAAASXAAADNwAAAccAAABXAAAO9vAADYbwAAwm8AAKtvAACUbwAAfm8AAGdvAABQbwAAOm8AACNvAAANbwAA9m4AAN9uAADJbgAAsm4AAJtuAACFbgAAbm4AAFduAABBbgAAKm4AABNuAAD8bQAA5m0AAM9tAAC4bQAAom0AAIttAAB0bQAAXm0AAEdtAAAwbQAAGW0AAANtAADsbAAA1WwAAL5sAACobAAAkWwAAHpsAABjbAAATWwAADZsAAAfbAAACGwAAPFrAADbawAAxGsAAK1rAACWawAAf2sAAGlrAABSawAAO2sAACRrAAANawAA9moAAOBqAADJagAAsmoAAJtqAACEagAAbWoAAFdqAABAagAAKWoAABJqAAD7aQAA5GkAAM1pAAC2aQAAoGkAAIlpAAByaQAAW2kAAERpAAAtaQAAFmkAAP9oAADoaAAA0WgAALpoAACjaAAAjWgAAHZoAABfaAAASGgAADFoAAAaaAAAA2gAAOxnAADVZwAAvmcAAKdnAACQZwAAeWcAAGJnAABLZwAANGcAAB1nAAAGZwAA72YAANhmAADBZgAAqmYAAJNmAAB8ZgAAZWYAAE5mAAA3ZgAAIGYAAAlmAADyZQAA22UAAMNlAACsZQAAlWUAAH5lAABnZQAAUGUAADllAAAiZQAAC2UAAPRkAADdZAAAxmQAAK5kAACXZAAAgGQAAGlkAABSZAAAO2QAACRkAAANZAAA9WMAAN5jAADHYwAAsGMAAJljAACCYwAAa2MAAFNjAAA8YwAAJWMAAA5jAAD3YgAA4GIAAMhiAACxYgAAmmIAAINiAABsYgAAVGIAAD1iAAAmYgAAD2IAAPhhAADgYQAAyWEAALJhAACbYQAAg2EAAGxhAABVYQAAPmEAACZhAAAPYQAA+GAAAOFgAADJYAAAsmAAAJtgAACEYAAAbGAAAFVgAAA+YAAAJmAAAA9gAAD4XwAA4V8AAMlfAACyXwAAm18AAINfAABsXwAAVV8AAD1fAAAmXwAAD18AAPdeAADgXgAAyV4AALFeAACaXgAAg14AAGteAABUXgAAPF4AACVeAAAOXgAA9l0AAN9dAADIXQAAsF0AAJldAACBXQAAal0AAFNdAAA7XQAAJF0AAAxdAAD1XAAA3lwAAMZcAACvXAAAl1wAAIBcAABoXAAAUVwAADpcAAAiXAAAC1wAAPNbAADcWwAAxFsAAK1bAACVWwAAflsAAGZbAABPWwAAN1sAACBbAAAIWwAA8VoAANlaAADCWgAAqloAAJNaAAB7WgAAZFoAAExaAAA1WgAAHVoAAAZaAADuWQAA11kAAL9ZAACoWQAAkFkAAHlZAABhWQAASlkAADJZAAAaWQAAA1kAAOtYAADUWAAAvFgAAKVYAACNWAAAdVgAAF5YAABGWAAAL1gAABdYAAD/VwAA6FcAANBXAAC5VwAAoVcAAIlXAAByVwAAWlcAAENXAAArVwAAE1cAAPxWAADkVgAAzFYAALVWAACdVgAAhVYAAG5WAABWVgAAPlYAACdWAAAPVgAA91UAAOBVAADIVQAAsFUAAJlVAACBVQAAaVUAAFJVAAA6VQAAIlUAAAtVAADzVAAA21QAAMNUAACsVAAAlFQAAHxUAABkVAAATVQAADVUAAAdVAAABlQAAO5TAADWUwAAvlMAAKdTAACPUwAAd1MAAF9TAABIUwAAMFMAABhTAAAAUwAA6FIAANFSAAC5UgAAoVIAAIlSAAByUgAAWlIAAEJSAAAqUgAAElIAAPtRAADjUQAAy1EAALNRAACbUQAAg1EAAGxRAABUUQAAPFEAACRRAAAMUQAA9FAAAN1QAADFUAAArVAAAJVQAAB9UAAAZVAAAE1QAAA2UAAAHlAAAAZQAADuTwAA1k8AAL5PAACmTwAAjk8AAHdPAABfTwAAR08AAC9PAAAXTwAA/04AAOdOAADPTgAAt04AAJ9OAACHTgAAcE4AAFhOAABATgAAKE4AABBOAAD4TQAA4E0AAMhNAACwTQAAmE0AAIBNAABoTQAAUE0AADhNAAAgTQAACE0AAPBMAADYTAAAwEwAAKhMAACQTAAAeUwAAGFMAABJTAAAMUwAABlMAAABTAAA6UsAANFLAAC5SwAAoUsAAIlLAABxSwAAWEsAAEBLAAAoSwAAEEsAAPhKAADgSgAAyEoAALBKAACYSgAAgEoAAGhKAABQSgAAOEoAACBKAAAISgAA8EkAANhJAADASQAAqEkAAJBJAAB4SQAAX0kAAEdJAAAvSQAAF0kAAP9IAADnSAAAz0gAALdIAACfSAAAh0gAAG9IAABWSAAAPkgAACZIAAAOSAAA9kcAAN5HAADGRwAArkcAAJVHAAB9RwAAZUcAAE1HAAA1RwAAHUcAAAVHAADsRgAA1EYAALxGAACkRgAAjEYAAHRGAABcRgAAQ0YAACtGAAATRgAA+0UAAONFAADLRQAAskUAAJpFAACCRQAAakUAAFJFAAA5RQAAIUUAAAlFAADxRAAA2UQAAMBEAACoRAAAkEQAAHhEAABgRAAAR0QAAC9EAAAXRAAA/0MAAOZDAADOQwAAtkMAAJ5DAACFQwAAbUMAAFVDAAA9QwAAJEMAAAxDAAD0QgAA3EIAAMNCAACrQgAAk0IAAHtCAABiQgAASkIAADJCAAAaQgAAAUIAAOlBAADRQQAAuEEAAKBBAACIQQAAb0EAAFdBAAA/QQAAJ0EAAA5BAAD2QAAA3kAAAMVAAACtQAAAlUAAAHxAAABkQAAATEAAADNAAAAbQAAAA0AAAOo/AADSPwAAuj8AAKE/AACJPwAAcT8AAFg/AABAPwAAKD8AAA8/AAD3PgAA3z4AAMY+AACuPgAAlT4AAH0+AABlPgAATD4AADQ+AAAcPgAAAz4AAOs9AADSPQAAuj0AAKI9AACJPQAAcT0AAFg9AABAPQAAKD0AAA89AAD3PAAA3jwAAMY8AACuPAAAlTwAAH08AABkPAAATDwAADM8AAAbPAAAAzwAAOo7AADSOwAAuTsAAKE7AACIOwAAcDsAAFg7AAA/OwAAJzsAAA47AAD2OgAA3ToAAMU6AACsOgAAlDoAAHs6AABjOgAASjoAADI6AAAaOgAAAToAAOk5AADQOQAAuDkAAJ85AACHOQAAbjkAAFY5AAA9OQAAJTkAAAw5AAD0OAAA2zgAAMM4AACqOAAAkjgAAHk4AABhOAAASDgAADA4AAAXOAAA/jcAAOY3AADNNwAAtTcAAJw3AACENwAAazcAAFM3AAA6NwAAIjcAAAk3AADxNgAA2DYAAMA2AACnNgAAjjYAAHY2AABdNgAARTYAACw2AAAUNgAA+zUAAOI1AADKNQAAsTUAAJk1AACANQAAaDUAAE81AAA2NQAAHjUAAAU1AADtNAAA1DQAALs0AACjNAAAijQAAHI0AABZNAAAQDQAACg0AAAPNAAA9zMAAN4zAADFMwAArTMAAJQzAAB8MwAAYzMAAEozAAAyMwAAGTMAAAAzAADoMgAAzzIAALcyAACeMgAAhTIAAG0yAABUMgAAOzIAACMyAAAKMgAA8TEAANkxAADAMQAApzEAAI8xAAB2MQAAXjEAAEUxAAAsMQAAFDEAAPswAADiMAAAyjAAALEwAACYMAAAfzAAAGcwAABOMAAANTAAAB0wAAAEMAAA6y8AANMvAAC6LwAAoS8AAIkvAABwLwAAVy8AAD8vAAAmLwAADS8AAPQuAADcLgAAwy4AAKouAACSLgAAeS4AAGAuAABHLgAALy4AABYuAAD9LQAA5S0AAMwtAACzLQAAmi0AAIItAABpLQAAUC0AADctAAAfLQAABi0AAO0sAADULAAAvCwAAKMsAACKLAAAcSwAAFksAABALAAAJywAAA4sAAD2KwAA3SsAAMQrAACrKwAAkysAAHorAABhKwAASCsAADArAAAXKwAA/ioAAOUqAADMKgAAtCoAAJsqAACCKgAAaSoAAFEqAAA4KgAAHyoAAAYqAADtKQAA1SkAALwpAACjKQAAiikAAHEpAABZKQAAQCkAACcpAAAOKQAA9SgAAN0oAADEKAAAqygAAJIoAAB5KAAAYCgAAEgoAAAvKAAAFigAAP0nAADkJwAAzCcAALMnAACaJwAAgScAAGgnAABPJwAANycAAB4nAAAFJwAA7CYAANMmAAC6JgAAoiYAAIkmAABwJgAAVyYAAD4mAAAlJgAADCYAAPQlAADbJQAAwiUAAKklAACQJQAAdyUAAF4lAABGJQAALSUAABQlAAD7JAAA4iQAAMkkAACwJAAAlyQAAH8kAABmJAAATSQAADQkAAAbJAAAAiQAAOkjAADQIwAAuCMAAJ8jAACGIwAAbSMAAFQjAAA7IwAAIiMAAAkjAADwIgAA1yIAAL8iAACmIgAAjSIAAHQiAABbIgAAQiIAACkiAAAQIgAA9yEAAN4hAADGIQAArSEAAJQhAAB7IQAAYiEAAEkhAAAwIQAAFyEAAP4gAADlIAAAzCAAALMgAACaIAAAgiAAAGkgAABQIAAANyAAAB4gAAAFIAAA7B8AANMfAAC6HwAAoR8AAIgfAABvHwAAVh8AAD0fAAAkHwAACx8AAPMeAADaHgAAwR4AAKgeAACPHgAAdh4AAF0eAABEHgAAKx4AABIeAAD5HQAA4B0AAMcdAACuHQAAlR0AAHwdAABjHQAASh0AADEdAAAYHQAA/xwAAOYcAADNHAAAtBwAAJscAACCHAAAaRwAAFEcAAA4HAAAHxwAAAYcAADtGwAA1BsAALsbAACiGwAAiRsAAHAbAABXGwAAPhsAACUbAAAMGwAA8xoAANoaAADBGgAAqBoAAI8aAAB2GgAAXRoAAEQaAAArGgAAEhoAAPkZAADgGQAAxxkAAK4ZAACVGQAAfBkAAGMZAABKGQAAMRkAABgZAAD/GAAA5hgAAM0YAAC0GAAAmxgAAIIYAABpGAAAUBgAADcYAAAdGAAABBgAAOsXAADSFwAAuRcAAKAXAACHFwAAbhcAAFUXAAA8FwAAIxcAAAoXAADxFgAA2BYAAL8WAACmFgAAjRYAAHQWAABbFgAAQhYAACkWAAAQFgAA9xUAAN4VAADFFQAArBUAAJMVAAB6FQAAYRUAAEgVAAAuFQAAFRUAAPwUAADjFAAAyhQAALEUAACYFAAAfxQAAGYUAABNFAAANBQAABsUAAACFAAA6RMAANATAAC3EwAAnhMAAIUTAABsEwAAUhMAADkTAAAgEwAABxMAAO4SAADVEgAAvBIAAKMSAACKEgAAcRIAAFgSAAA/EgAAJhIAAA0SAAD0EQAA2hEAAMERAACoEQAAjxEAAHYRAABdEQAARBEAACsRAAASEQAA+RAAAOAQAADHEAAArhAAAJQQAAB7EAAAYhAAAEkQAAAwEAAAFxAAAP4PAADlDwAAzA8AALMPAACaDwAAgQ8AAGcPAABODwAANQ8AABwPAAADDwAA6g4AANEOAAC4DgAAnw4AAIYOAABtDgAAUw4AADoOAAAhDgAACA4AAO8NAADWDQAAvQ0AAKQNAACLDQAAcg0AAFkNAAA/DQAAJg0AAA0NAAD0DAAA2wwAAMIMAACpDAAAkAwAAHcMAABdDAAARAwAACsMAAASDAAA+QsAAOALAADHCwAArgsAAJULAAB8CwAAYgsAAEkLAAAwCwAAFwsAAP4KAADlCgAAzAoAALMKAACaCgAAgAoAAGcKAABOCgAANQoAABwKAAADCgAA6gkAANEJAAC4CQAAngkAAIUJAABsCQAAUwkAADoJAAAhCQAACAkAAO8IAADVCAAAvAgAAKMIAACKCAAAcQgAAFgIAAA/CAAAJggAAA0IAADzBwAA2gcAAMEHAACoBwAAjwcAAHYHAABdBwAARAcAACoHAAARBwAA+AYAAN8GAADGBgAArQYAAJQGAAB7BgAAYQYAAEgGAAAvBgAAFgYAAP0FAADkBQAAywUAALIFAACYBQAAfwUAAGYFAABNBQAANAUAABsFAAACBQAA6QQAAM8EAAC2BAAAnQQAAIQEAABrBAAAUgQAADkEAAAgBAAABgQAAO0DAADUAwAAuwMAAKIDAACJAwAAcAMAAFYDAAA9AwAAJAMAAAsDAADyAgAA2QIAAMACAACnAgAAjQIAAHQCAABbAgAAQgIAACkCAAAQAgAA9wEAAN4BAADEAQAAqwEAAJIBAAB5AQAAYAEAAEcBAAAuAQAAFAEAAPsAAADiAAAAyQAAALAAAACXAAAAfgAAAGUAAABLAAAAMgAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAKAAAADwAAABQAAAAZAAAAHwAAACQAAAApAAAALgAAADMAAAA4AAAAPQAAAEIAAABHAAAATAAAAFEAAABXAAAAXAAAAGEAAABmAAAAawAAAHAAAAB1AAAAegAAAH8AAACEAAAAigAAAI8AAACUAAAAmQAAAJ4AAACjAAAAqAAAAK0AAACyAAAAtwAAALwAAADCAAAAxwAAAMwAAADRAAAA1gAAANsAAADgAAAA5QAAAOoAAADvAAAA9AAAAPoAAAD/AAAABAEAAAkBAAAOAQAAEwEAABgBAAAdAQAAIgEAACcBAAAsAQAAMQEAADcBAAA8AQAAQQEAAEYBAABLAQAAUAEAAFUBAABaAQAAXwEAAGQBAABpAQAAbwEAAHQBAAB5AQAAfgEAAIMBAACIAQAAjQEAAJIBAACXAQAAnAEAAKEBAACmAQAArAEAALEBAAC2AQAAuwEAAMABAADFAQAAygEAAM8BAADUAQAA2QEAAN4BAADjAQAA6QEAAO4BAADzAQAA+AEAAP0BAAACAgAABwIAAAwCAAARAgAAFgIAABsCAAAgAgAAJgIAACsCAAAwAgAANQIAADoCAAA/AgAARAIAAEkCAABOAgAAUwIAAFgCAABdAgAAYgIAAGgCAABtAgAAcgIAAHcCAAB8AgAAgQIAAIYCAACLAgAAkAIAAJUCAACaAgAAnwIAAKQCAACpAgAArwIAALQCAAC5AgAAvgIAAMMCAADIAgAAzQIAANICAADXAgAA3AIAAOECAADmAgAA6wIAAPACAAD2AgAA+wIAAAADAAAFAwAACgMAAA8DAAAUAwAAGQMAAB4DAAAjAwAAKAMAAC0DAAAyAwAANwMAADwDAABBAwAARwMAAEwDAABRAwAAVgMAAFsDAABgAwAAZQMAAGoDAABvAwAAdAMAAHkDAAB+AwAAgwMAAIgDAACNAwAAkgMAAJcDAACcAwAAogMAAKcDAACsAwAAsQMAALYDAAC7AwAAwAMAAMUDAADKAwAAzwMAANQDAADZAwAA3gMAAOMDAADoAwAA7QMAAPIDAAD3AwAA/AMAAAEEAAAHBAAADAQAABEEAAAWBAAAGwQAACAEAAAlBAAAKgQAAC8EAAA0BAAAOQQAAD4EAABDBAAASAQAAE0EAABSBAAAVwQAAFwEAABhBAAAZgQAAGsEAABwBAAAdQQAAHoEAAB/BAAAhAQAAIkEAACOBAAAlAQAAJkEAACeBAAAowQAAKgEAACtBAAAsgQAALcEAAC8BAAAwQQAAMYEAADLBAAA0AQAANUEAADaBAAA3wQAAOQEAADpBAAA7gQAAPMEAAD4BAAA/QQAAAIFAAAHBQAADAUAABEFAAAWBQAAGwUAACAFAAAlBQAAKgUAAC8FAAA0BQAAOQUAAD4FAABDBQAASAUAAE0FAABSBQAAVwUAAFwFAABhBQAAZgUAAGsFAABwBQAAdQUAAHoFAAB/BQAAhAUAAIkFAACOBQAAkwUAAJgFAACdBQAAogUAAKcFAACsBQAAsQUAALYFAAC7BQAAwAUAAMUFAADKBQAAzwUAANQFAADZBQAA3gUAAOMFAADoBQAA7QUAAPIFAAD3BQAA/AUAAAEGAAAGBgAACwYAABAGAAAVBgAAGgYAAB8GAAAkBgAAKQYAAC4GAAAzBgAAOAYAAD0GAABCBgAARwYAAEwGAABRBgAAVgYAAFsGAABgBgAAZQYAAGoGAABuBgAAcwYAAHgGAAB9BgAAggYAAIcGAACMBgAAkQYAAJYGAACbBgAAoAYAAKUGAACqBgAArwYAALQGAAC5BgAAvgYAAMMGAADIBgAAzQYAANIGAADXBgAA3AYAAOEGAADlBgAA6gYAAO8GAAD0BgAA+QYAAP4GAAADBwAACAcAAA0HAAASBwAAFwcAABwHAAAhBwAAJgcAACsHAAAwBwAANQcAADkHAAA+BwAAQwcAAEgHAABNBwAAUgcAAFcHAABcBwAAYQcAAGYHAABrBwAAcAcAAHUHAAB6BwAAfgcAAIMHAACIBwAAjQcAAJIHAACXBwAAnAcAAKEHAACmBwAAqwcAALAHAAC1BwAAuQcAAL4HAADDBwAAyAcAAM0HAADSBwAA1wcAANwHAADhBwAA5gcAAOsHAADvBwAA9AcAAPkHAAD+BwAAAwgAAAgIAAANCAAAEggAABcIAAAcCAAAIAgAACUIAAAqCAAALwgAADQIAAA5CAAAPggAAEMIAABICAAATAgAAFEIAABWCAAAWwgAAGAIAABlCAAAaggAAG8IAABzCAAAeAgAAH0IAACCCAAAhwgAAIwIAACRCAAAlggAAJoIAACfCAAApAgAAKkIAACuCAAAswgAALgIAAC9CAAAwQgAAMYIAADLCAAA0AgAANUIAADaCAAA3wgAAOMIAADoCAAA7QgAAPIIAAD3CAAA/AgAAAEJAAAFCQAACgkAAA8JAAAUCQAAGQkAAB4JAAAiCQAAJwkAACwJAAAxCQAANgkAADsJAAA/CQAARAkAAEkJAABOCQAAUwkAAFgJAABcCQAAYQkAAGYJAABrCQAAcAkAAHUJAAB5CQAAfgkAAIMJAACICQAAjQkAAJIJAACWCQAAmwkAAKAJAAClCQAAqgkAAK4JAACzCQAAuAkAAL0JAADCCQAAxgkAAMsJAADQCQAA1QkAANoJAADeCQAA4wkAAOgJAADtCQAA8gkAAPYJAAD7CQAAAAoAAAUKAAAKCgAADgoAABMKAAAYCgAAHQoAACIKAAAmCgAAKwoAADAKAAA1CgAAOQoAAD4KAABDCgAASAoAAE0KAABRCgAAVgoAAFsKAABgCgAAZAoAAGkKAABuCgAAcwoAAHcKAAB8CgAAgQoAAIYKAACLCgAAjwoAAJQKAACZCgAAngoAAKIKAACnCgAArAoAALEKAAC1CgAAugoAAL8KAADECgAAyAoAAM0KAADSCgAA1woAANsKAADgCgAA5QoAAOkKAADuCgAA8woAAPgKAAD8CgAAAQsAAAYLAAALCwAADwsAABQLAAAZCwAAHgsAACILAAAnCwAALAsAADALAAA1CwAAOgsAAD8LAABDCwAASAsAAE0LAABRCwAAVgsAAFsLAABgCwAAZAsAAGkLAABuCwAAcgsAAHcLAAB8CwAAgAsAAIULAACKCwAAjwsAAJMLAACYCwAAnQsAAKELAACmCwAAqwsAAK8LAAC0CwAAuQsAAL0LAADCCwAAxwsAAMsLAADQCwAA1QsAANkLAADeCwAA4wsAAOcLAADsCwAA8QsAAPULAAD6CwAA/wsAAAMMAAAIDAAADQwAABEMAAAWDAAAGwwAAB8MAAAkDAAAKQwAAC0MAAAyDAAANwwAADsMAABADAAARQwAAEkMAABODAAAUwwAAFcMAABcDAAAYAwAAGUMAABqDAAAbgwAAHMMAAB4DAAAfAwAAIEMAACGDAAAigwAAI8MAACTDAAAmAwAAJ0MAAChDAAApgwAAKsMAACvDAAAtAwAALgMAAC9DAAAwgwAAMYMAADLDAAAzwwAANQMAADZDAAA3QwAAOIMAADmDAAA6wwAAPAMAAD0DAAA+QwAAP0MAAACDQAABw0AAAsNAAAQDQAAFA0AABkNAAAeDQAAIg0AACcNAAArDQAAMA0AADQNAAA5DQAAPg0AAEINAABHDQAASw0AAFANAABUDQAAWQ0AAF4NAABiDQAAZw0AAGsNAABwDQAAdA0AAHkNAAB9DQAAgg0AAIcNAACLDQAAkA0AAJQNAACZDQAAnQ0AAKINAACmDQAAqw0AAK8NAAC0DQAAuQ0AAL0NAADCDQAAxg0AAMsNAADPDQAA1A0AANgNAADdDQAA4Q0AAOYNAADqDQAA7w0AAPMNAAD4DQAA/A0AAAEOAAAFDgAACg4AAA8OAAATDgAAGA4AABwOAAAhDgAAJQ4AACoOAAAuDgAAMw4AADcOAAA8DgAAQA4AAEUOAABJDgAATg4AAFIOAABWDgAAWw4AAF8OAABkDgAAaA4AAG0OAABxDgAAdg4AAHoOAAB/DgAAgw4AAIgOAACMDgAAkQ4AAJUOAACaDgAAng4AAKMOAACnDgAArA4AALAOAAC0DgAAuQ4AAL0OAADCDgAAxg4AAMsOAADPDgAA1A4AANgOAADcDgAA4Q4AAOUOAADqDgAA7g4AAPMOAAD3DgAA/A4AAAAPAAAEDwAACQ8AAA0PAAASDwAAFg8AABsPAAAfDwAAIw8AACgPAAAsDwAAMQ8AADUPAAA6DwAAPg8AAEIPAABHDwAASw8AAFAPAABUDwAAWA8AAF0PAABhDwAAZg8AAGoPAABuDwAAcw8AAHcPAAB8DwAAgA8AAIQPAACJDwAAjQ8AAJEPAACWDwAAmg8AAJ8PAACjDwAApw8AAKwPAACwDwAAtQ8AALkPAAC9DwAAwg8AAMYPAADKDwAAzw8AANMPAADXDwAA3A8AAOAPAADlDwAA6Q8AAO0PAADyDwAA9g8AAPoPAAD/DwAAAxAAAAcQAAAMEAAAEBAAABQQAAAZEAAAHRAAACEQAAAmEAAAKhAAAC4QAAAzEAAANxAAADsQAABAEAAARBAAAEgQAABNEAAAURAAAFUQAABaEAAAXhAAAGIQAABnEAAAaxAAAG8QAABzEAAAeBAAAHwQAACAEAAAhRAAAIkQAACNEAAAkhAAAJYQAACaEAAAnhAAAKMQAACnEAAAqxAAALAQAAC0EAAAuBAAALwQAADBEAAAxRAAAMkQAADOEAAA0hAAANYQAADaEAAA3xAAAOMQAADnEAAA6xAAAPAQAAD0EAAA+BAAAP0QAAABEQAABREAAAkRAAAOEQAAEhEAABYRAAAaEQAAHxEAACMRAAAnEQAAKxEAADARAAA0EQAAOBEAADwRAABAEQAARREAAEkRAABNEQAAUREAAFYRAABaEQAAXhEAAGIRAABmEQAAaxEAAG8RAABzEQAAdxEAAHwRAACAEQAAhBEAAIgRAACMEQAAkREAAJURAACZEQAAnREAAKERAACmEQAAqhEAAK4RAACyEQAAthEAALsRAAC/EQAAwxEAAMcRAADLEQAAzxEAANQRAADYEQAA3BEAAOARAADkEQAA6REAAO0RAADxEQAA9REAAPkRAAD9EQAAAhIAAAYSAAAKEgAADhIAABISAAAWEgAAGhIAAB8SAAAjEgAAJxIAACsSAAAvEgAAMxIAADcSAAA8EgAAQBIAAEQSAABIEgAATBIAAFASAABUEgAAWRIAAF0SAABhEgAAZRIAAGkSAABtEgAAcRIAAHUSAAB6EgAAfhIAAIISAACGEgAAihIAAI4SAACSEgAAlhIAAJoSAACfEgAAoxIAAKcSAACrEgAArxIAALMSAAC3EgAAuxIAAL8SAADDEgAAxxIAAMwSAADQEgAA1BIAANgSAADcEgAA4BIAAOQSAADoEgAA7BIAAPASAAD0EgAA+BIAAPwSAAABEwAABRMAAAkTAAANEwAAERMAABUTAAAZEwAAHRMAACETAAAlEwAAKRMAAC0TAAAxEwAANRMAADkTAAA9EwAAQRMAAEUTAABJEwAATRMAAFETAABVEwAAWhMAAF4TAABiEwAAZhMAAGoTAABuEwAAchMAAHYTAAB6EwAAfhMAAIITAACGEwAAihMAAI4TAACSEwAAlhMAAJoTAACeEwAAohMAAKYTAACqEwAArhMAALITAAC2EwAAuhMAAL4TAADCEwAAxhMAAMoTAADOEwAA0hMAANYTAADaEwAA3hMAAOITAADmEwAA6RMAAO0TAADxEwAA9RMAAPkTAAD9EwAAARQAAAUUAAAJFAAADRQAABEUAAAVFAAAGRQAAB0UAAAhFAAAJRQAACkUAAAtFAAAMRQAADUUAAA5FAAAPRQAAEAUAABEFAAASBQAAEwUAABQFAAAVBQAAFgUAABcFAAAYBQAAGQUAABoFAAAbBQAAHAUAABzFAAAdxQAAHsUAAB/FAAAgxQAAIcUAACLFAAAjxQAAJMUAACXFAAAmxQAAJ4UAACiFAAAphQAAKoUAACuFAAAshQAALYUAAC6FAAAvhQAAMEUAADFFAAAyRQAAM0UAADRFAAA1RQAANkUAADdFAAA4BQAAOQUAADoFAAA7BQAAPAUAAD0FAAA+BQAAPsUAAD/FAAAAxUAAAcVAAALFQAADxUAABMVAAAWFQAAGhUAAB4VAAAiFQAAJhUAACoVAAAtFQAAMRUAADUVAAA5FQAAPRUAAEEVAABEFQAASBUAAEwVAABQFQAAVBUAAFgVAABbFQAAXxUAAGMVAABnFQAAaxUAAG4VAAByFQAAdhUAAHoVAAB+FQAAgRUAAIUVAACJFQAAjRUAAJEVAACUFQAAmBUAAJwVAACgFQAApBUAAKcVAACrFQAArxUAALMVAAC3FQAAuhUAAL4VAADCFQAAxhUAAMkVAADNFQAA0RUAANUVAADYFQAA3BUAAOAVAADkFQAA6BUAAOsVAADvFQAA8xUAAPcVAAD6FQAA/hUAAAIWAAAGFgAACRYAAA0WAAARFgAAFBYAABgWAAAcFgAAIBYAACMWAAAnFgAAKxYAAC8WAAAyFgAANhYAADoWAAA+FgAAQRYAAEUWAABJFgAATBYAAFAWAABUFgAAWBYAAFsWAABfFgAAYxYAAGYWAABqFgAAbhYAAHEWAAB1FgAAeRYAAH0WAACAFgAAhBYAAIgWAACLFgAAjxYAAJMWAACWFgAAmhYAAJ4WAAChFgAApRYAAKkWAACsFgAAsBYAALQWAAC3FgAAuxYAAL8WAADCFgAAxhYAAMoWAADNFgAA0RYAANUWAADYFgAA3BYAAOAWAADjFgAA5xYAAOsWAADuFgAA8hYAAPYWAAD5FgAA/RYAAAAXAAAEFwAACBcAAAsXAAAPFwAAExcAABYXAAAaFwAAHRcAACEXAAAlFwAAKBcAACwXAAAwFwAAMxcAADcXAAA6FwAAPhcAAEIXAABFFwAASRcAAEwXAABQFwAAVBcAAFcXAABbFwAAXhcAAGIXAABmFwAAaRcAAG0XAABwFwAAdBcAAHgXAAB7FwAAfxcAAIIXAACGFwAAiRcAAI0XAACRFwAAlBcAAJgXAACbFwAAnxcAAKIXAACmFwAAqhcAAK0XAACxFwAAtBcAALgXAAC7FwAAvxcAAMIXAADGFwAAyRcAAM0XAADRFwAA1BcAANgXAADbFwAA3xcAAOIXAADmFwAA6RcAAO0XAADwFwAA9BcAAPcXAAD7FwAA/hcAAAIYAAAGGAAACRgAAA0YAAAQGAAAFBgAABcYAAAbGAAAHhgAACIYAAAlGAAAKRgAACwYAAAwGAAAMxgAADcYAAA6GAAAPhgAAEEYAABFGAAASBgAAEwYAABPGAAAUxgAAFYYAABaGAAAXRgAAGAYAABkGAAAZxgAAGsYAABuGAAAchgAAHUYAAB5GAAAfBgAAIAYAACDGAAAhxgAAIoYAACOGAAAkRgAAJQYAACYGAAAmxgAAJ8YAACiGAAAphgAAKkYAACtGAAAsBgAALMYAAC3GAAAuhgAAL4YAADBGAAAxRgAAMgYAADMGAAAzxgAANIYAADWGAAA2RgAAN0YAADgGAAA4xgAAOcYAADqGAAA7hgAAPEYAAD1GAAA+BgAAPsYAAD/GAAAAhkAAAYZAAAJGQAADBkAABAZAAATGQAAFxkAABoZAAAdGQAAIRkAACQZAAAoGQAAKxkAAC4ZAAAyGQAANRkAADgZAAA8GQAAPxkAAEMZAABGGQAASRkAAE0ZAABQGQAAUxkAAFcZAABaGQAAXRkAAGEZAABkGQAAaBkAAGsZAABuGQAAchkAAHUZAAB4GQAAfBkAAH8ZAACCGQAAhhkAAIkZAACMGQAAkBkAAJMZAACWGQAAmhkAAJ0ZAACgGQAApBkAAKcZAACqGQAArhkAALEZAAC0GQAAuBkAALsZAAC+GQAAwhkAAMUZAADIGQAAzBkAAM8ZAADSGQAA1RkAANkZAADcGQAA3xkAAOMZAADmGQAA6RkAAO0ZAADwGQAA8xkAAPYZAAD6GQAA/RkAAAAaAAAEGgAABxoAAAoaAAANGgAAERoAABQaAAAXGgAAGxoAAB4aAAAhGgAAJBoAACgaAAArGgAALhoAADEaAAA1GgAAOBoAADsaAAA+GgAAQhoAAEUaAABIGgAASxoAAE8aAABSGgAAVRoAAFgaAABcGgAAXxoAAGIaAABlGgAAaRoAAGwaAABvGgAAchoAAHYaAAB5GgAAfBoAAH8aAACDGgAAhhoAAIkaAACMGgAAjxoAAJMaAACWGgAAmRoAAJwaAACfGgAAoxoAAKYaAACpGgAArBoAALAaAACzGgAAthoAALkaAAC8GgAAwBoAAMMaAADGGgAAyRoAAMwaAADPGgAA0xoAANYaAADZGgAA3BoAAN8aAADjGgAA5hoAAOkaAADsGgAA7xoAAPIaAAD2GgAA+RoAAPwaAAD/GgAAAhsAAAUbAAAJGwAADBsAAA8bAAASGwAAFRsAABgbAAAcGwAAHxsAACIbAAAlGwAAKBsAACsbAAAuGwAAMhsAADUbAAA4GwAAOxsAAD4bAABBGwAARBsAAEgbAABLGwAAThsAAFEbAABUGwAAVxsAAFobAABdGwAAYRsAAGQbAABnGwAAahsAAG0bAABwGwAAcxsAAHYbAAB5GwAAfRsAAIAbAACDGwAAhhsAAIkbAACMGwAAjxsAAJIbAACVGwAAmBsAAJwbAACfGwAAohsAAKUbAACoGwAAqxsAAK4bAACxGwAAtBsAALcbAAC6GwAAvRsAAMEbAADEGwAAxxsAAMobAADNGwAA0BsAANMbAADWGwAA2RsAANwbAADfGwAA4hsAAOUbAADoGwAA6xsAAO4bAADyGwAA9RsAAPgbAAD7GwAA/hsAAAEcAAAEHAAABxwAAAocAAANHAAAEBwAABMcAAAWHAAAGRwAABwcAAAfHAAAIhwAACUcAAAoHAAAKxwAAC4cAAAxHAAANBwAADccAAA6HAAAPRwAAEAcAABDHAAARhwAAEkcAABMHAAATxwAAFIcAABVHAAAWBwAAFscAABeHAAAYRwAAGQcAABnHAAAahwAAG0cAABwHAAAcxwAAHYcAAB5HAAAfBwAAH8cAACCHAAAhRwAAIgcAACLHAAAjhwAAJEcAACUHAAAlxwAAJocAACdHAAAoBwAAKMcAACmHAAAqRwAAKwcAACvHAAAshwAALUcAAC4HAAAuxwAAL4cAADBHAAAwxwAAMYcAADJHAAAzBwAAM8cAADSHAAA1RwAANgcAADbHAAA3hwAAOEcAADkHAAA5xwAAOocAADtHAAA8BwAAPMcAAD1HAAA+BwAAPscAAD+HAAAAR0AAAQdAAAHHQAACh0AAA0dAAAQHQAAEx0AABYdAAAYHQAAGx0AAB4dAAAhHQAAJB0AACcdAAAqHQAALR0AADAdAAAzHQAANR0AADgdAAA7HQAAPh0AAEEdAABEHQAARx0AAEodAABNHQAATx0AAFIdAABVHQAAWB0AAFsdAABeHQAAYR0AAGQdAABmHQAAaR0AAGwdAABvHQAAch0AAHUdAAB4HQAAex0AAH0dAACAHQAAgx0AAIYdAACJHQAAjB0AAI4dAACRHQAAlB0AAJcdAACaHQAAnR0AAKAdAACiHQAApR0AAKgdAACrHQAArh0AALEdAACzHQAAth0AALkdAAC8HQAAvx0AAMIdAADEHQAAxx0AAModAADNHQAA0B0AANMdAADVHQAA2B0AANsdAADeHQAA4R0AAOMdAADmHQAA6R0AAOwdAADvHQAA8R0AAPQdAAD3HQAA+h0AAP0dAAD/HQAAAh4AAAUeAAAIHgAACx4AAA0eAAAQHgAAEx4AABYeAAAZHgAAGx4AAB4eAAAhHgAAJB4AACYeAAApHgAALB4AAC8eAAAyHgAANB4AADceAAA6HgAAPR4AAD8eAABCHgAARR4AAEgeAABKHgAATR4AAFAeAABTHgAAVR4AAFgeAABbHgAAXh4AAGAeAABjHgAAZh4AAGkeAABrHgAAbh4AAHEeAAB0HgAAdh4AAHkeAAB8HgAAfx4AAIEeAACEHgAAhx4AAIoeAACMHgAAjx4AAJIeAACUHgAAlx4AAJoeAACdHgAAnx4AAKIeAAClHgAAqB4AAKoeAACtHgAAsB4AALIeAAC1HgAAuB4AALoeAAC9HgAAwB4AAMMeAADFHgAAyB4AAMseAADNHgAA0B4AANMeAADVHgAA2B4AANseAADeHgAA4B4AAOMeAADmHgAA6B4AAOseAADuHgAA8B4AAPMeAAD2HgAA+B4AAPseAAD+HgAAAB8AAAMfAAAGHwAACB8AAAsfAAAOHwAAEB8AABMfAAAWHwAAGB8AABsfAAAeHwAAIB8AACMfAAAmHwAAKB8AACsfAAAuHwAAMB8AADMfAAA2HwAAOB8AADsfAAA9HwAAQB8AAEMfAABFHwAASB8AAEsfAABNHwAAUB8AAFMfAABVHwAAWB8AAFofAABdHwAAYB8AAGIfAABlHwAAaB8AAGofAABtHwAAbx8AAHIfAAB1HwAAdx8AAHofAAB8HwAAfx8AAIIfAACEHwAAhx8AAIofAACMHwAAjx8AAJEfAACUHwAAlx8AAJkfAACcHwAAnh8AAKEfAACkHwAAph8AAKkfAACrHwAArh8AALAfAACzHwAAth8AALgfAAC7HwAAvR8AAMAfAADDHwAAxR8AAMgfAADKHwAAzR8AAM8fAADSHwAA1R8AANcfAADaHwAA3B8AAN8fAADhHwAA5B8AAOYfAADpHwAA7B8AAO4fAADxHwAA8x8AAPYfAAD4HwAA+x8AAP0fAAAAIAAAAAAAAAAAAAAAAAAAEAAAABEAAAASAAAAAAAAAAgAAAAHAAAACQAAAAYAAAAKAAAABQAAAAsAAAAEAAAADAAAAAMAAAANAAAAAgAAAA4AAAABAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAAQAAAAEAAAABAAAAAQAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAA0AAAAPAAAAEQAAABMAAAAXAAAAGwAAAB8AAAAjAAAAKwAAADMAAAA7AAAAQwAAAFMAAABjAAAAcwAAAIMAAACjAAAAwwAAAOMAAAACAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAcAAAAJAAAADQAAABEAAAAZAAAAIQAAADEAAABBAAAAYQAAAIEAAADBAAAAAQEAAIEBAAABAgAAAQMAAAEEAAABBgAAAQgAAAEMAAABEAAAARgAAAEgAAABMAAAAUAAAAFgAAAAAAAAAAAAAAgAAAAIAAAABAAAAAQAAAACAAAAAgAAAAEAAAAAAAAAAAAAAAQAAAAAAAAAAgAAAAAAAAABAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAEAAAABAAAAAIAAAACAAAAAAAAAAAAAAAAAAAABAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAMAAAACAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAALAgAAKgIAAEsCAABuAgAAkwIAALoCAADkAgAAEAMAAD8DAABwAwAApAMAANgDAAAWBAAAAAAAAAAAAAAAAAAA7MUwAOzFMADsxTAA7MUwAD18AQA/fAEAQXwBAEN8AQBFfAEAR3wBAEl8AQBLfAEATXwBAE98AQBRfAEAU3wBAFV8AQBXfAEAWXwBAFt8AQBdfAEAX3wBAGF8AQBjfAEAZXwBAGd8AQBpfAEAa3wBAG18AQBvfAEAcXwBAHN8AQB1fAEAd3wBAHl8AQB7fAEAfXwBAH98AQCBfAEAg3wBAIV8AQCMfAEAk3wBAJ18AQChfAEAp3wBAKl8AQCrfAEArXwBAK98AQC1fAEAt3wBALl8AQC7fAEAvXwBALaZAQC/fAEAwXwBAMp8AQDNfAEA0HwBANN8AQDWfAEA2XwBANx8AQDffAEA4nwBAOV8AQDpfAEA7XwBAPF8AQD9fAEACH0BAA59AQAVfQEAGn0BACF9AQAofQEALH0BADV9AQA7fQEAQH0BAEV9AQBIfQEAUH0BAFl9AQBifQEAa30BAHR9AQCBfQEAin0BAJN9AQCcfQEApX0BAK59AQC3fQEAwH0BAMl9AQDSfQEA230BAOzFMADkfQEA8H0BAPZ9AQD/fQEAA34BAAd+AQALfgEAD34BABN+AQAXfgEAG34BAB9+AQAjfgEAJ34BACt+AQAvfgEAN34BADx+AQBBfgEASH4BAE1+AQBTfgEAWH4BAFx+AQBhfgEAZ34BAGx+AQBxfgEAen4BAOzFMADsxTAA7MUwAIV+AQCOfgEA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAAn34BAKh+AQCvfgEAtn4BALx+AQCFfAEAwn4BAMx+AQDQfgEA1X4BAON+AQDpfgEA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADvfgEA+X4BAAR/AQAXfwEAKH8BADV/AQBFfwEATn8BAFd/AQBgfwEAaX8BAHR/AQCFfwEAjn8BAJd/AQCgfwEAqX8BALJ/AQC7fwEAxn8BAM9/AQDYfwEA4X8BAOp/AQDzfwEA/X8BAAaAAQAQgAEAGYABACKAAQAvgAEAOIABAEGAAQBRgAEAYoABAHKAAQCAgAEAk4ABAKaAAQC3gAEAwoABAM+AAQDhgAEA74ABAPyAAQALgQEA7MUwAOzFMAAegQEAKIEBADOBAQA8gQEARYEBAFCBAQBcgQEAZoEBAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMABwgQEAe4EBAIWBAQCPgQEAmYEBAKOBAQCtgQEAuYEBAL2BAQDCgQEAzYEBANaBAQDggQEA6IEBAPCBAQD7gQEAA4IBAA6CAQAbggEAKoIBADeCAQBFggEAVIIBAGGCAQBsggEAcoIBAHiCAQB9ggEAgoIBAI6CAQDsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADilogAAAAA4paSAAAAAPCfkLEAAADirIfvuI8A4paRAAAAAOKcvQAAAADil48AAAAA4pmlAAAAAOKYiQAAAADsm4MAAAAA4oyCAAAAAOKshe+4jwDwn5iQAAAA4pmqAAAAAPCfhb7vuI/il4YAAAAA4oCmAAAAAOKeoe+4jwDimIUAAAAA4qeXAAAAAOKshu+4jwDLhwAAAAAA4oinAAAAAOKdjgAAAADilqQAAAAA4palAAAAAOKWrgAAAADilqAAAAAA4pahAAAAAOKBmQAAAADigZgAAAAA4oCWAAAAAOKXgAAAAADilrYAAAAA44CMAAAAAOOAjQAAAADCpQAAAAAA4oCiAAAAAOOAgQAAAADjgIIAAAAA44KbAAAAAOOCnAAAAADil5wAAAAA4pedAAAAAPCdmKIAAADwnZijAAAA8J2YpAAAAPCdmKUAAADwnZimAAAA8J2YpwAAAPCdmKgAAADwnZipAAAA8J2YqgAAAPCdmKsAAADwnZisAAAA8J2YrQAAAPCdmK4AAADwnZivAAAA8J2YsAAAAPCdmLEAAADwnZiyAAAA8J2YswAAAPCdmLQAAADwnZi1AAAA8J2YtgAAAPCdmLcAAADwnZi4AAAA8J2YuQAAAPCdmLoAAADwnZi7AAAAAAAAAAAAsIHiALnCAACywgAAs8IAALSB4gC1geIAtoHiALeB4gC4geIAuYHiAIO14QCHteEAnLbhAIi14QCJteEAoLbhAIKBAACEgQAAhoEAAIiBAACKgQAAi4EAAI2BAACPgQAAkYEAAJOBAACVgQAAl4EAAJmBAACbgQAAnYEAAJ+BAAChgQAApIEAAKaBAACogQAAqoEAAKuBAACsgQAArYEAAK6BAACvgQAAsoEAALWBAAC4gQAAu4EAAL6BAAC/gQAAgIIAAIGCAACCggAAhIIAAIaCAACIggAAiYIAAIqCAACLggAAjIIAAI2CAACPggAAkoIAAJOCAACjgQAAg4IAAIWCAACHggAAAAAAAAAAAACiggAApIIAAKaCAACoggAAqoIAAKuCAACtggAAr4IAALGCAACzggAAtYIAALeCAAC5ggAAu4IAAL2CAAC/ggAAgYMAAISDAACGgwAAiIMAAIqDAACLgwAAjIMAAI2DAACOgwAAj4MAAJKDAACVgwAAmIMAAJuDAACegwAAn4MAAKCDAAChgwAAooMAAKSDAACmgwAAqIMAAKmDAACqgwAAq4MAAKyDAACtgwAAr4MAALKDAACzgwAAg4MAAKODAAClgwAAp4MAAAAAAAAAAAAAiwMAAIQDAAB+AwAAdwMAAHEDAABrAwAAZAMAAF4DAABYAwAAUgMAAEwDAABGAwAAQAMAADoDAAA0AwAALgMAACgDAAAiAwAAHAMAABcDAAARAwAACwMAAAYDAAAAAwAA+gIAAPUCAADwAgAA6gIAAOUCAADgAgAA2gIAANUCAADQAgAAywIAAMUCAADAAgAAuwIAALYCAACxAgAArAIAAKYCAACjAgAAngIAAJkCAACUAgAAjwIAAIsCAACGAgAAgAIAAHwCAAB4AgAAdAIAAG8CAABrAgAAZgIAAGICAABcAgAAWQIAAFUCAABQAgAATAIAAEgCAABEAgAAPwIAADoCAAA3AgAAMwIAAC8CAAArAgAAJwIAACMCAAAfAgAAGgIAABcCAAAUAgAAEAIAAAwCAAAIAgAABAIAAAECAAD8AQAA+QEAAPYBAADyAQAA7gEAAOsBAADnAQAA5AEAAOABAADdAQAA2gEAANYBAADTAQAAzwEAAMwBAADJAQAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzTAAAAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABEwkLCwAACQYLAAALAAYRAAAAERERAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAADQAAAAQNAAAAAAkOAAAAAAAOAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEhISAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAACgAAAAAKAAAAAAkLAAAAAAALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAMDEyMzQ1Njc4OUFCQ0RFRv////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAACgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAALiKHQAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAK/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////////8iIgIA9gEAABmTDQoaCgAAfQYAAP/////vvq3eZ0UjAQEAAACAAAAA/////wkAAADvvq3eZ0UjAeZ6AQD/////AAQAAAEAAAAAADwAAQAAAAEAAACAAAAAgAAAABCHAAAQhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwxTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9wiQD/CS8PtpkBAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAOzFMADsxTAA7MUwAH9/f39/f39/f39/f39/AAByb290X3BhdGgAY2RhdGFfcGF0aABqb3lzdGlja19pbmRleABtZXJnZV9qb3lzdGlja3MAYnV0dG9uX2tleXMAICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkAGxpdmVfbm90ZXMAY3Vyc29yX3NuYXAAZ3VpX3RoZW1lAHNoaWZ0X2dseXBocwBzaG93X2JhY2t1cF9tZXNzYWdlcwBob3N0X2ZyYW1lcmF0ZV9jb250cm9sAGNvbnRlbnRfZmlsdGVyAGJvb3RfdG9fc3Bsb3JlAHJlY29yZF9hY3Rpdml0eV9sb2cAYWxsb3dfZnVuY3Rpb25fa2V5cwBjaGVja19mb3JfY2FydF91cGRhdGVzAGVuYWJsZV9ncGlvAGZsaXBfYW1wZXJzYW5kAGF1dG9faGlkZV9tb3VzZV9jdXJzb3IAYWdncmVzc2l2ZV9iYWNrdXBzAHBlcmlvZGljX2JhY2t1cHMAdHJhbnNmb3JtX3NjcmVlbgBnZnhfZ3JpZF9saW5lcwBjYXB0dXJlX3RpbWVzdGFtcHMAbWF4X3ByZWZldGNoX3RocmVhZHMAYWNjZXB0X2Z1dHVyZQB2ZXJzaW9uICVzCgoAMC4yLjcALy8gYXVkaW8gdm9sdW1lOiAwLi4yNTYgCgB2b2x1bWUgJWQKCgAKLy8gTG9jYXRpb24gb2YgcGljby04J3Mgcm9vdCBmb2xkZXIKAHJvb3RfcGF0aCAlcwoKAAovLyBMb2NhdGlvbiBvZiBjYXJ0cmlkZ2Ugc2F2ZSBkYXRhCgBjZGF0YV9wYXRoICVzCgoACi8vIFNwZWNpZnkgd2hpY2ggcGxheWVyIGluZGV4IGpveXN0aWNrIGNvbnRyb2wgYmVnaW5zIGF0ICgwLi43KQoAam95c3RpY2tfaW5kZXggJWQKCgAKLy8gVHJlYXQgdGhlIGZpcnN0IG4gY29udHJvbGxlcnMgYXMgaWYgdGhleSB3ZXJlIGEgc2luZ2xlIG1lcmdlZCBjb250cm9sbGVyCgAvLyBlLmcuIG1lcmdlX2pveXN0aWNrcyAyIC0tPiBQMCBnZXRzIGNvbnRyb2xsZXJzIDAsMSwgUDEgZ2V0cyBjb250cm9sbGVyIDIuLgoAbWVyZ2Vfam95c3RpY2tzICVkCgoACi8vIEN1c3RvbSBrZXlib2FyZCBzY2FuY29kZXMgZm9yIGJ1dHRvbnMuIHBsYXllcjAgMC4uNiwgcGxheWVyMSAwLi41LCBtZW51X2J1dHRvbiwgcGxheWVyMiAwLi41LCBwbGF5ZXIzIDAuLjUKAGJ1dHRvbl9rZXlzIAAlZCAACgoALy8gUGxheSBub3RlcyBhcyB0aGV5IGFyZSBwbG90dGVkIGluIGZyZXF1ZW5jeSBtb2RlCgBsaXZlX25vdGVzICVkCgoALy8gaWZmIDE6IHdoZW4gdXNpbmcga2V5Ym9hcmQgY3Vyc29yLCBzbmFwIHRvIGNsb3Nlc3QgcGl4ZWwgLyBtYXAgY2VsCgBjdXJzb3Jfc25hcCAlZAoKAC8vIDAgZGVmYXVsdCAgMSBkYXJrIGJsdWUgYmFja2dyb3VuZCBpbiBjb2RlIGVkaXRvciAgMiBibGFjayBiYWNrZ3JvdW5kIGluIGNvZGUgZWRpdG9yICAgMyBncmF5IGJhY2tncm91bmQgaW4gY29kZSBlZGl0b3IgICAKAGd1aV90aGVtZSAlZAoKAC8vIHNjYWxlIG9mIHNjcmVlbnNob3RzIGFuZCBnaWZzIC8vIDIgbWVhbnMgMjU2eDI1NgoAc2NyZWVuc2hvdF9zY2FsZSAlZAoAZ2lmX3NjYWxlICVkCgoALy8gbWF4aW11bSBnaWYgbGVuZ3RoIGluIHNlY29uZHMgKDAuLjEyMDsgMCBtZWFucyBubyBnaWYgcmVjb3JkaW5nKQoAZ2lmX2xlbiAlZAoKAC8vIHdoZW4gMSwgcmVzZXQgdGhlIHJlY29yZGluZyB3aGVuIHByZXNzaW5nIGN0cmwtOSAodXNlZnVsIGZvciBjcmVhdGluZyBhIG5vbi1vdmVybGFwcGluZyBzZXF1ZW5jZSkKAGdpZl9yZXNldF9tb2RlICVkCgoALy8gMCBmb3Igb2ZmLiAxIGZvciBhdXRvLiAyIHRvIGFsbG93IGNvbnRyb2wgb2YgYSBjYXJ0J3MgZnJhbWVyYXRlIGR1ZSB0byBob3N0IG1hY2hpbmUncyBjcHUgY2FwYWNpdHkKAGhvc3RfZnJhbWVyYXRlX2NvbnRyb2wgJWQKCgAvLyBmaWx0ZXIgc3Bsb3JlIGNhcnRyaWRnZXMKAC8vIDAgb2ZmICAgMSBvbiAoZXhjbHVkZSBjYXJ0cmlkZ2UgdGFnZ2VkIGFzICdtYXR1cmUnIGJ5IGNvbW11bml0eSkKAHNwbG9yZV9maWx0ZXIgJWQKCgAvLyAwIG9mZiAgIDEgb246IGFsd2F5cyBzdGFydCBpbiBzcGxvcmUgKHNhbWUgYXMgcGljbzggLXNwbG9yZSkKAGJvb3RfdG9fc3Bsb3JlICVkCgoALy8gdGFiIGRpc3BsYXkgd2lkdGggKDEgfiA0IHNwYWNlcykKAHRhYl93aWR0aCAlZAoKAC8vIDAgb2ZmIDEgb246IGRyYXcgdGFiIGNoYXJhY3RlcnMgYXMgc21hbGwgdmVydGljYWwgbGluZXMKAGRyYXdfdGFicyAlZAoKAC8vIDAgb2ZmIDEgb246IHJlY29yZCB0aGUgY3VycmVudCBjYXJ0cmlkZ2UgYW5kIGVkaXRvciB2aWV3IGV2ZXJ5IDMgc2Vjb25kcyAoc2VlIFthcHBkYXRhXS9hY3Rpdml0eS5sb2cudHh0KQoAcmVjb3JkX2FjdGl2aXR5X2xvZyAlZAoKAC8vIDAgb2ZmIDEgb246IGFsbG93IEY2Li5GOSAoYWx0ZXJuYXRpdmU6IGN0cmwgNi4uOSkKAGFsbG93X2Z1bmN0aW9uX2tleXMgJWQKCgAvLyAwIG9mZiAxIG9uOiBhdXRvbWF0aWNhbGx5IGNoZWNrIGZvciBhIG5ld2VyIHZlcnNpb24gb2YgYSBCQlMgY2FydCBlYWNoIHRpbWUgaXQgaXMgcnVuLgoAY2hlY2tfZm9yX2NhcnRfdXBkYXRlcyAlZAoKAGZsaXBfYW1wZXJzYW5kIDEKCgAvLyBoaWRlIG1vdXNlIGN1cnNvciBmb3IgbiBzZWNvbmRzIHdoZW4gdHlwaW5nLgoAYXV0b19oaWRlX21vdXNlX2N1cnNvciAlZAoKAC8vIDAgb2ZmIDEgb246IGJhY2t1cCB3aXRoIGEgbmV3IHRpbWVzdGFtcGVkIGZpbGVuYW1lIG9uIGV2ZXJ5IHJ1bgoALy8gbm9ybWFsbHkgbm90IG5lZWRlZCAtLSB3YXMgdXNlZCBmb3IgZGVidWdnaW5nIGNyYXNoLW9uLXJ1bgoAYWdncmVzc2l2ZV9iYWNrdXBzICVkCgoALy8gYmFjayB1cCBjYXJ0cmlkZ2UgaW4gZWRpdG9yIGV2ZXJ5IG4gbWludXRlcyB3aGVuIG5vdCBpZGxlICgwIGZvciBubyBwZXJpb2RpYyBiYWNrdXBzKQoAcGVyaW9kaWNfYmFja3VwcyAlZAoKAC8vIGdsb2JhbCBzY3JlZW4gdHJhbnNmb3JtYXRpb25zOgoALy8gIDEyOSBmbGlwIGhvcml6b250YWxseQoALy8gIDEzMCBmbGlwIHZlcnRpY2FsbHkKAC8vICAxMzMgcm90YXRlIENXIDkwIGRlZ3JlZXMKAC8vICAxMzQgcm90YXRlIENXIDE4MCBkZWdyZWVzCgAvLyAgMTM1IHJvdGF0ZSBDVyAyNzAgZGVncmVlcwoAdHJhbnNmb3JtX3NjcmVlbiAlZAoKAC8vIDAgb2ZmICA+IDE6IGNvbG91ciB0byBkcmF3IHBpeGVsIGdyaWQgaW4gdGhlIGdmeCBlZGl0b3IgYXQgem9vbTo4IGFuZCB6b29tOjQgKDE2IGZvciBibGFjaykKAGdmeF9ncmlkX2xpbmVzICVkCgoALy8gZmlsZSBuYW1pbmcgZm9yIHNjcmVlbnNob3QgLyBnaWYgLyB3YXYgY2FwdHVyZXMKAC8vIDAgc2VxdWVudGlhbCAoZm9vXzAucG5nLCBmb29fMS5wbmcpICAgIDEgdGltZXN0YW1wIChmb29fMjAyNDAxMTVfMTIwODIzLnBuZykKAGNhcHR1cmVfdGltZXN0YW1wcyAlZAoKAC8vIGhvdyBtYW55IHRocmVhZHMgdG8gdXNlIGZvciBkb3dubG9hZGluZyBjYXJ0cyBpbiB0aGUgYmFja2dyb3VuZCB3aGlsZSBpbiBzcGxvcmUKAC8vIDAgdG8gdHVybiBvZmYgcHJlLWZldGNoaW5nIC0+IGNhcnRzIGFyZSBvbmx5IGRvd25sb2FkZWQgb25jZSB0aGV5IGFyZSBzZWxlY3RlZAoAbWF4X3ByZWZldGNoX3RocmVhZHMgJWQKCgAvLyAxIHRvIGFsbG93IGNhcnRyaWRnZXMgdG8gbG9hZCBldmVuIGlmIGNyZWF0ZWQgYnkgYSBmdXR1cmUgdmVyc2lvbiBvZiBQSUNPLTgKAGFjY2VwdF9mdXR1cmUgJWQKCgB7Y2lpaSA9ICQwOyBpaWkgPSAwO30AIntpaWkgPSBpaWkrMTsgcmV0dXJuIF9jYXJ0bmFtZVtjaWlpXS5jaGFyQ29kZUF0KGlpaS0xKTsgfSIAW2NvZG9dIGJic193Z2V0X29ubG9hZCA6OiByZWNlaXZlZC4gcHJlcGFyaW5nIHRvIHJ1bi4gcHN0YXRlLmN1cnJlbnRfZmlsZW5hbWUgJXMgYXBwLmFyZ3ZfZmlsZW5hbWUgJXMKAHdyb3RlIGxlbjogJWQKAC9iYnMvZ2V0X2NhcnQucGhwAGxpZD0AZmlsZW5hbWVfbm90X2ZvdW5kLnA4LnBuZwBiYnNfd2dldF9vbmxvYWQ6IHNldCBjdXJyZW50X2ZpbGVuYW1lIHRvICVzIChkZXJpdmVkIGZyb20gJXMpCgBjb3VsZCBub3QgZmV0Y2ggY2FydAAieyBpZiAodHlwZW9mIF9jYXJ0ZGF0ICE9PSd1bmRlZmluZWQnKSByZXR1cm4gMTsgcmV0dXJuIDA7fSIAIntyZXR1cm4gX2NhcnRkYXQubGVuZ3RoIC8gMzI3Njh9IgAieyBfY2Rwb3M9X2NkcG9zKzE7IHJldHVybiBfY2FydGRhdFtfY2Rwb3MtMV07IH0iAHN0YXJ0aW5nIGRvd25sb2FkCgBsb2FkaW5nIGVtYmVkZGVkIGNhcnRyaWRnZQoAam95c3RpY2sAZ2xvYmFsX2FwaQBraW9zawBncGlvX2Jhc2UAZ2xpdGNoX3Rlc3QAeABleGVjAHBhcmFtAHAAdHZfZnJhbWUAZGlzcGxheXNfeABkaXNwbGF5c195AGkAbwB1cmxfY29kZQB1cmxfZ2Z4AGNpZABsZXQgc3RhdGVPYmogPSB7IGxvYWRfcGFyYW1fZGF0YSA6IGZhbHNlIH07IGhpc3RvcnkucHVzaFN0YXRlKHN0YXRlT2JqLCAiUElDTy04IiwgIj8iKTsAZnVuY3Rpb24gbWtkaXJfMChkKSB7IHRyeSB7IHN0YXQgPSBGUy5zdGF0KGQpOyB9IGNhdGNoIChlKSB7IEZTLm1rZGlyKGQpOyB9IH0gbWtkaXJfMCgnL3VzZXJfZGF0YScpOyBGUy5tb3VudChJREJGUywge30sICcvdXNlcl9kYXRhJyk7IEZTLnN5bmNmcyh0cnVlLCBmdW5jdGlvbiAoZXJyKSB7IGlmICghZXJyKSB7IGNvbnNvbGUubG9nKCJjb2RvOiBtb3VudGVkIGZpbGVzeXN0ZW0uXG4iKTsgY29kb19tb3VudGVkX2ZpbGVzeXN0ZW0gPSAxOyBta2Rpcl8wKCcvdXNlcl9kYXRhL2NkYXRhJyk7IG1rZGlyXzAoJy91c2VyX2RhdGEvY3N0b3JlJyk7IG1rZGlyXzAoJy91c2VyX2RhdGEvY2FydHMnKTsgbWtkaXJfMCgnL3VzZXJfZGF0YS9iYWNrdXAnKTsgbWtkaXJfMCgnL3VzZXJfZGF0YS9wbGF0ZXMnKTsgbWtkaXJfMCgnL3VzZXJfZGF0YS9iYnMnKTsgbWtkaXJfMCgnL3VzZXJfZGF0YS9iYnMvY2FydHMnKTsgbWtkaXJfMCgnL3VzZXJfZGF0YS9iYnMvbGFiZWxzJyk7IH0gZWxzZSB7IGNvbnNvbGUubG9nKCIqKiBjb3VsZCBub3QgbW91bnQgZmlsZXN5c3RlbVxuIik7IGNvbnNvbGUubG9nKGVycik7IH0gfSApOwAvdW50aXRsZWQucDgAL3VudGl0bGVkXyVkLnA4ACJ7IE1vZHVsZS5waWNvOFJlc2V0ID0gZnVuY3Rpb24oKSB7IGNvZG9fY29tbWFuZCA9IDE7fSA7IE1vZHVsZS5waWNvOFRvZ2dsZVNvdW5kID0gZnVuY3Rpb24oKSB7IGNvZG9fY29tbWFuZCA9IDM7fSA7IE1vZHVsZS5waWNvOFRvZ2dsZVBhdXNlZCA9IGZ1bmN0aW9uKCkgeyBjb2RvX2NvbW1hbmQgPSA0OyB9IDsgTW9kdWxlLnBpY284U2V0UGF1c2VkID0gZnVuY3Rpb24ocCkgeyBjb2RvX2NvbW1hbmQgPSA1OyBjb2RvX2NvbW1hbmRfcCA9IDA7IGlmIChwKSBjb2RvX2NvbW1hbmRfcD0xO30gOyBNb2R1bGUucGljbzhUb2dnbGVDb250cm9sTWVudSA9IGZ1bmN0aW9uKCkgeyBjb2RvX2NvbW1hbmQgPSA3O30gOyBNb2R1bGUucGljbzhEcmFnT3ZlciA9IGZ1bmN0aW9uKCkgeyBjb2RvX2NvbW1hbmQgPSAxMDt9IDsgTW9kdWxlLnBpY284RHJhZ1N0b3AgPSBmdW5jdGlvbigpIHsgY29kb19jb21tYW5kID0gMTE7fSA7IH0iAGNhcnRzLwBjZGF0YS8AcGljbzguZGF0AGRhdGEucG9kAFJVTk5JTkc6ICVzCgBjb3VsZG4ndCBsb2FkICVzCgBjb3VsZCBub3QgbG9hZCAlcwoALi8Ae3ZhciB2YWw9MDsgaWYgKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCJ3aWRnZXQucGhwIikgPj0gMCkgdmFsPTE7IHJldHVybiB2YWw7fQB7dmFyIHZhbD0wOyBpZiAod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoInBpY28tOC5waHAiKSA+PSAwKSB2YWw9MTsgcmV0dXJuIHZhbDt9AGEgbmV3IHZlcnNpb24gb2YgdGhpcwBjYXJ0cmlkZ2UgaXMgYXZhaWxhYmxlACUwMmQAZGlyZWN0b3J5OiAvAGRpcmVjdG9yeTogJXMAbm90IGZvdW5kAC0tbW9yZS0tAGNvbnRpbnVlAHJlc2V0IGNhcnQAc291bmQ6b24Ac291bmQ6b2ZmAHZvbHVtZTogMDEyMzQ1NjcAdXBkYXRlIGNhcnQAc2tpcABzb3VuZCBvZmYgKGN0cmwtbSkAc291bmQgb24gKGN0cmwtbSkAQEAgcmVib290X21hY2hpbmUoKSBwYXJhbV9zdHJfcGVuZGluZzogJXMKAGRvd25sb2FkIHRpbWVkIG91dABkb3dubG9hZGluZy4uIGNhbmNlbGxlZAAubmZvAC90ZW1wLQBjb3VsZCBub3QgZmluZCBjYXJ0AGRvd25sb2FkaW5nLi4gb2sAbG9hZGVkICMlcyAoJWQgY2hhcnMpAGNvdWxkIG5vdCBjb25uZWN0IHRvIGJicwBmdXR1cmUgdmVyc2lvbi4gcGxlYXNlIHVwZGF0ZSEAIHZvbHVtZTogICAgICAgICAgICAgIChjdHJsLS8rKQB7IGlmICh0eXBlb2YgcGljbzhfc3RhdGUgIT09ICd1bmRlZmluZWQnKXsgcGljbzhfc3RhdGUuaXNfcGF1c2VkID0gJDA7IHBpY284X3N0YXRlLnNvdW5kX3ZvbHVtZSA9ICQxOyBwaWNvOF9zdGF0ZS5mcmFtZV9udW1iZXIgPSAkMjsgcGljbzhfc3RhdGUuaGFzX2ZvY3VzID0gJDM7IHBpY284X3N0YXRlLnNob3dfZHBhZCA9ICQ0OyBwaWNvOF9zdGF0ZS5yZXF1ZXN0X3BvaW50ZXJfbG9jayA9ICQ1OyBwaWNvOF9zdGF0ZS5yZXF1aXJlX3BhZ2VfbmF2aWdhdGVfY29uZmlybWF0aW9uID0gJDY7IHBpY284X3N0YXRlLnNodXRkb3duX3JlcXVlc3RlZCA9ICQ3OyB9IH0AInt2YXIgdmFsPTA7IGlmICh0eXBlb2YgY29kb19jb21tYW5kICE9PSAndW5kZWZpbmVkJykge3ZhbD1jb2RvX2NvbW1hbmQ7IGNvZG9fY29tbWFuZD0wO30gcmV0dXJuIHZhbH0iACJ7dmFyIHZhbD0wOyBpZiAodHlwZW9mIGNvZG9fY29tbWFuZF9wICE9PSAndW5kZWZpbmVkJykge3ZhbD1jb2RvX2NvbW1hbmRfcDsgY29kb19jb21tYW5kX3A9MDt9IHJldHVybiB2YWx9IgAie2J1dHRvbl9pID0gMH0iACJ7dmFyIHZhbD0tMTsgaWYgKHR5cGVvZiBwaWNvOF9idXR0b25zICE9PSAndW5kZWZpbmVkJykge3ZhbCA9IHBpY284X2J1dHRvbnNbYnV0dG9uX2ldOyBidXR0b25faSArKzt9IHJldHVybiB2YWw7fSIAInt2YXIgdmFsID0gMDsgaWYgKHR5cGVvZiBwaWNvOF9nYW1lcGFkcyAhPT0gJ3VuZGVmaW5lZCcpIHt2YWwgPSBwaWNvOF9nYW1lcGFkcy5jb3VudDt9IHJldHVybiB2YWw7fSIAKiogZmFpbGVkIHRvIHNhdmUgc2NyZWVuc2hvdABzZXQgdmlkZW8gc3RhcnRpbmcgcG9pbnQAbm8gdmlkZW8gcmVjb3JkZWQgKHJlYzogY3RybC04KQAqKiBmYWlsZWQgdG8gc2F2ZSB2aWRlbwBqb3lzdGljayAlZCBjb25uZWN0ZWQAam95c3RpY2sgJWQgZGlzY29ubmVjdGVkAGlmICh0eXBlb2Ygb25fbW9kdWxlX2xvYWQgIT09ICd1bmRlZmluZWQnKSB7IGlmIChvbl9tb2R1bGVfbG9hZCkgb25fbW9kdWxlX2xvYWQoKTsgfQBAQCByZWJvb3RfbWFjaGluZSgpAGNvdWxkIG5vdCBvcGVuIGZpbGUgdG8gc2F2ZSBmcm9tIHdlYjogJXMKAHsgZG93bmxvYWRfYnJvd3Nlcl9maWxlKFVURjhUb1N0cmluZygkMCwgJDEpLCBVVEY4VG9TdHJpbmcoJDIsICQzKSk7IH0AZGF0YTppbWFnZS8lcztiYXNlNjQsAHsgaWYgKHR5cGVvZiBwOGltZyAhPT0gJ3VuZGVmaW5lZCcpIHsgcDhpbWcuc3JjPSIiOyB9IHA4aW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7IHA4aW1nLnNyYyA9IFVURjhUb1N0cmluZygkMCwgJDEpOyBwOGltZy5zdHlsZSA9ICd3aWR0aDoxMjhweDsgaGVpZ2h0OjEyOHB4OyBpbWFnZS1yZW5kZXJpbmc6IHBpeGVsYXRlZDsgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsnOyBpZiAodHlwZW9mIHA4aW1naG9sZGVyID09PSAndW5kZWZpbmVkJyB8fCAhcDhpbWdob2xkZXIpeyBwOGltZ2hvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBwOGltZ2hvbGRlci5zdHlsZS5jc3NUZXh0ID0gJ21pbi13aWR0aDoxNjBweDsgZGlzcGxheTp0YWJsZTsgcG9zaXRpb246Zml4ZWQ7IHRvcDoyMHB4OyBsZWZ0OjIwcHg7IHBhZGRpbmc6MTJweDsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBib3gtc2hhZG93OiAycHggMnB4IDhweCByZ2JhKDE2LCAwLCA0OCwgMC40KTsnOyBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHA4aW1naG9sZGVyKTsgfSBpZiAocDhpbWdob2xkZXIpIHsgd2hpbGUgKHA4aW1naG9sZGVyLmNoaWxkRWxlbWVudENvdW50ID4gMCkgcDhpbWdob2xkZXIucmVtb3ZlQ2hpbGQocDhpbWdob2xkZXIuZmlyc3RDaGlsZCk7IHZhciBkaXNtaXNzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IGRpc21pc3Muc3R5bGUuY3NzVGV4dCA9ICdkaXNwbGF5OnRhYmxlOyBmb250LXNpemU6MTBwdDsgY29sb3I6I2ZmZjsgcGFkZGluZzo0cHg7IGN1cnNvcjpwb2ludGVyOyBtYXJnaW4tbGVmdDoxMHB4OyBmbG9hdDpyaWdodCc7IGRpc21pc3MuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBwOGltZy5zcmM9IiI7IHdoaWxlIChwOGltZ2hvbGRlci5jaGlsZEVsZW1lbnRDb3VudCA+IDApIHA4aW1naG9sZGVyLnJlbW92ZUNoaWxkKHA4aW1naG9sZGVyLmZpcnN0Q2hpbGQpOyBwOGltZ2hvbGRlci5zdHlsZS5kaXNwbGF5PSJub25lIjsgfSwgZmFsc2UpOyBkaXNtaXNzLmlubmVySFRNTCA9ICdYJzsgcDhpbWdob2xkZXIuYXBwZW5kQ2hpbGQoZGlzbWlzcyk7IHA4aW1naG9sZGVyLmFwcGVuZENoaWxkKHA4aW1nKTsgdmFyIGluZm8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgaW5mby5pbm5lckhUTUwgPSAnPGJyPiA8Zm9udCBzdHlsZT0iY29sb3I6I2JiYjsgZm9udC1zaXplOjhwdCI+PGNlbnRlcj4gKHJpZ2h0LWNsaWNrIHRvIHNhdmUpIDwvY2VudGVyPjwvZm9udD4nOyBwOGltZ2hvbGRlci5hcHBlbmRDaGlsZChpbmZvKTsgaWYgKHA4aW1naG9sZGVyLnN0eWxlLmRpc3BsYXkgPT0gIm5vbmUiKSBwOGltZ2hvbGRlci5zdHlsZS5kaXNwbGF5ID0gIiI7IH0gfQBjb3VsZCBub3QgY29tcHJlc3MgY29kZQoAaGV4ZHVtcCAlZCBieXRlcyB0byBjbGlwYm9hcmQAd3JpdGluZyAlZCBieXRlcyAoY29kZSBvbmx5KQB3cml0aW5nICVkIGJ5dGVzACUyeABmdXR1cmUgdmVyc2lvbjogJWQAY2FydHJpZGdlIGRhdGEgaXMgY29ycnVwdGVkACVzJXMucDglcwAucm9tACVzJXMlcy5wOAB1bnRpdGxlZABiYWNrdXAvACU0ZCUwMmQlMDJkXyUwMmQlMDJkJTAyZF8AcHJvZ3JhbSBvdmVyIHNpemUgbGltaXQKAGNvbXByZXNzZWQgY29kZSBzaXplIHRvbyBsYXJnZQoAJWQgLyAlZCBieXRlcwB3YXJuaW5nOiBjb21wcmVzc2VkIGNvZGUgdG9vIGJpZwB0byBiZSBleHBvcnRlZCBvciBzYXZlZCBhcyBwbmcAKHNhdmluZyAucDggYW55d2F5KQBmbGF0dGVuZWQgI2luY2x1ZGVzACoqIGZhaWxlZCB0byBzYXZlICoqAC91c2VyX2RhdGEvY3N0b3JlLyVzJXMAX18AcHJlcGFyZV9sb2FkZWRfY2FydDogbG9va2luZyBmb3Igc2FuZGJveGVkIGNhcnQgcGF0Y2g6ICVzCgAgIGZvdW5kCgAgIG5vdCBmb3VuZAoAd2FybmluZzogcG9zc2libGUgZGVwcmVjYXRlZCBAQABsZWdhY3k6IHBhdCAlZCBzd2FwIGNoYW46ICVkICVkAHByaW50KCJhcmNoZW9zIiw5OCwzNCw3KQAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBsZWdhY3kgMC4xLjEgYXBpIGluamVjdGVkCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCglmdW5jdGlvbiBfdmFsaWRhdGUoYykgaWYgKGMuX251bT09bmlsKSB0aGVuIGxvY2FsIGk9MCB3aGlsZShjW2krMV1+PW5pbCkgZG8gaT1pKzEgZW5kIGMuX251bT1pIGMuX21heD1pIAljLl9taW49aSsxIGMuX251bSA9IGkgYy5fY2kgPSBpIGVuZCBlbmQgCWZ1bmN0aW9uIGZvcmVhY2goYywgZikgaWYgKGMgPT0gbmlsKSB0aGVuIHJldHVybiBlbmQgX3ZhbGlkYXRlKGMpIGlmIChjLl9tYXggPT0gbmlsKSB0aGVuIHJldHVybiBlbmQgZm9yIGk9MSxjLl9tYXggZG8gaWYgKGNbaV0gfj0gbmlsKSB0aGVuIGMuX2NpID0gaSBmKGNbaV0pIGVuZCBlbmQgZW5kIGZ1bmN0aW9uIGFsbChjKSBpZiAoYyA9PSBuaWwpIHRoZW4gcmV0dXJuIGZ1bmN0aW9uKCkgZW5kIGVuZCBfdmFsaWRhdGUoYykgbG9jYWwgaT0wIHJldHVybiBmdW5jdGlvbigpIGk9aSsxIHdoaWxlIChjW2ldPT1uaWwgYW5kIGk8Yy5fbWF4KSBkbyBpPWkrMSBlbmQgaWYgKGNbaV0gfj0gbmlsKSB0aGVuIGMuX2NpPWkgcmV0dXJuIGNbaV0gZW5kIGVuZCBlbmQgZnVuY3Rpb24gYWRkKGMsIGkpIGlmIChjID09IG5pbCkgdGhlbiByZXR1cm4gZW5kIF92YWxpZGF0ZShjKSBmb3Igaj1jLl9taW4sYy5fbWF4KzEgZG8gaWYgKGNbal0gPT0gbmlsKSB0aGVuIGMuX21heCA9IG1heChjLl9tYXgsaikgYy5fbWluID0gaisxIGMuX251bSA9IGMuX251bSsxIGNbal09aSByZXR1cm4gaSBlbmQgZW5kIGVuZCBmdW5jdGlvbiBjb3VudChjKSBpZiAoYyA9PSBuaWwpIHRoZW4gcmV0dXJuIDAgZW5kIF92YWxpZGF0ZShjKSByZXR1cm4gYy5fbnVtIGVuZCBmdW5jdGlvbiBkZWwoYyxpKSBpZiAoYyA9PSBuaWwpIHRoZW4gcmV0dXJuIGVuZCBfdmFsaWRhdGUoYykgaWYgKGk9PW5pbCkgdGhlbiByZXR1cm4gZW5kIGlmIChjLl9jaT09aSkgdGhlbiBjW2MuX2NpXT1uaWwgYy5fbWluPW1pbihjLl9taW4sIGMuX2NpKSBjLl9udW09Yy5fbnVtLTEgcmV0dXJuIGVsc2UgZm9yIGo9MSxjLl9tYXggZG8gaWYgKGNbal09PWkpIHRoZW4gY1tqXT1uaWwgYy5fbWluPW1pbihjLl9taW4saikgYy5fbnVtPWMuX251bS0xIHJldHVybiBlbmQgZW5kIGVuZCB3aGlsZSAoYy5fbWF4PjEgYW5kIGNbYy5fbWF4XT09bmlsKSBkbyBjLl9tYXg9Yy5fbWF4LTEgZW5kIGVuZCAgbmQ9MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKAGxlZ2FjeTogMC4xLjEgYXBpIGluamVjdGVkAC5sdWEAcGxlYXNlIHNwZWZpY3kgYSBmaWxlbmFtZQAqKiogbm8gZmlsZW5hbWUuIG5vdCBzYXZlZCEgKioqAGNhbiBub3Qgb3ZlcndyaXRlIGJicyBjYXJ0ACogY2FuIG5vdCBvdmVyd3JpdGUgYmJzIGNhcnQhICoAc2F2ZSBmYWlsZWQAKioqKiBzYXZlIGZhaWxlZCAqKioqAHNhdmVkICVzJXMgKip0ZW1wIGRpc2sqKgBzYXZlZCAlcyVzJXMgKip0ZW1wIGRpc2sqKgBwbmcAc2F2aW5nIHNjcmVlbnNob3QgdG86ICVzCgAlc18lJWQuJXMAJXNfJWQlMDJkJTAyZF8lMDJkJTAyZCUwMmQuJXMAJXMuJXMAZmlsZSBvdXRwdXQgcGF0aDogJXMKAG1vdW50X2VtYmVkZGVkX2NhcnQ6ICVzICglZCBjaGFycykgJXMKACoqIG1vdW50X2VtYmVkZGVkX2NhcnQ6IGZhaWxlZCB0byBtb3VudABjb3VsZCBub3QgbG9hZCBjYXJ0cmlkZ2UAY2FuIG5vdCBsb2FkAHA4bS5wbmcAcDhtLnBuZyBub3Qgc3VwcG9ydGVkAGltYWdlIGlzIHRvbyBsYXJnZSAoMTI4IG1heCkAZmlsZSBpcyB0b28gbGFyZ2UgKDUxMmsgbWF4KQB7IGpzU3RyaW5nID0gcDhfZHJvcHBlZF9jYXJ0OyBpZiAoIWpzU3RyaW5nKSByZXR1cm4gMDsgdmFyIGxlbmd0aEJ5dGVzID0gbGVuZ3RoQnl0ZXNVVEY4KGpzU3RyaW5nKSsxOyB2YXIgc3RyaW5nT25XYXNtSGVhcCA9IF9tYWxsb2MobGVuZ3RoQnl0ZXMpOyBzdHJpbmdUb1VURjgoanNTdHJpbmcsIHN0cmluZ09uV2FzbUhlYXAsIGxlbmd0aEJ5dGVzKTsgcmV0dXJuIHN0cmluZ09uV2FzbUhlYXA7IH0AeyBqc1N0cmluZyA9IHA4X2Ryb3BwZWRfY2FydF9uYW1lOyBpZiAoIWpzU3RyaW5nKSByZXR1cm4gMDsgdmFyIGxlbmd0aEJ5dGVzID0gbGVuZ3RoQnl0ZXNVVEY4KGpzU3RyaW5nKSsxOyB2YXIgc3RyaW5nT25XYXNtSGVhcDIgPSBfbWFsbG9jKGxlbmd0aEJ5dGVzKTsgc3RyaW5nVG9VVEY4KGpzU3RyaW5nLCBzdHJpbmdPbldhc21IZWFwMiwgbGVuZ3RoQnl0ZXMpOyByZXR1cm4gc3RyaW5nT25XYXNtSGVhcDI7IH0AbG9hZGluZyB1cmxfc3RyOiAlcwoAYmFzZTY0LABAQCBzZXR0aW5nIGFzIGRyb3BwZWQgaW1hZ2U6ICVkICVkCgBAQCB0cnlpbmcgYXMgZGF0YSBmaWxlLiBkYXRfZi0+bGVuOiAlZAoAY291bGQgbm90IGZpbmQgZHJvcHBlZCBmaWxlAGh0dHBzOi8vcGljby04LWVkdS5jb20vP2M9AGxldCBzdGF0ZU9iaiA9IHsgbG9hZF9wYXJhbV9kYXRhIDogdHJ1ZX07IGhpc3RvcnkucHVzaFN0YXRlKHN0YXRlT2JqLCAnUElDTy04IFVSTCBDYXJ0JywgJyVzJyk7ACoqIGZhaWxlZDogdXJsIGlzIHRvbyBsb25nACVkIC8gMjA0MCBjaGFycwBubyB2YWx1ZQB1c2VyZGF0YQBudW1iZXIAdGhyZWFkAHByb3RvAHVwdmFsAHN0YWNrIG92ZXJmbG93AEMgc3RhY2sgb3ZlcmZsb3cAdGFibGUgb3ZlcmZsb3cAJ2ZvcicgaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGEgbnVtYmVyACdmb3InIGxpbWl0IG11c3QgYmUgYSBudW1iZXIAJ2Zvcicgc3RlcCBtdXN0IGJlIGEgbnVtYmVyAG5OAHhYAGJCAGF0dGVtcHQgdG8gY29tcGFyZSB0d28gJXMgdmFsdWVzAGF0dGVtcHQgdG8gY29tcGFyZSAlcyB3aXRoICVzAHN0cmluZyBsZW5ndGggb3ZlcmZsb3cAY29uY2F0ZW5hdGUAdXB2YWx1ZQBpbmRleABhdHRlbXB0IHRvIG1vZGlmeSAlcyAnJXMnIChzdHJpbmdzIGFyZSBpbW11dGFibGUpAGF0dGVtcHQgdG8gJXMgJXMgJyVzJyAoYSAlcyB2YWx1ZSkAYXR0ZW1wdCB0byAlcyBhICVzIHZhbHVlAF9FTlYAZ2xvYmFsAGZpZWxkAG1ldGhvZABjb25zdGFudAAlMC41ZgAuOTk5OQAuMDAwMAAlMC4zZgAlMC40ZgBnZXQgbGVuZ3RoIG9mAHBlcmZvcm0gYXJpdGhtZXRpYyBvbgB0YWJsZSBpbmRleCBpcyBuaWwAbWVtb3J5IGFsbG9jYXRpb24gZXJyb3I6IGJsb2NrIHRvbyBiaWcAbG9vcCBpbiBzZXR0YWJsZQBsb29wIGluIGdldHRhYmxlAGF0dGVtcHQgdG8geWllbGQgYWNyb3NzIGEgQy1jYWxsIGJvdW5kYXJ5AGF0dGVtcHQgdG8geWllbGQgZnJvbSBvdXRzaWRlIGEgY29yb3V0aW5lAGNhbGwAW3N0cmluZyAiACJdACVzADB4JXgAaW52YWxpZCBvcHRpb24gJyUlJWMnIHRvICdsdWFfcHVzaGZzdHJpbmcnAGVycm9yIGluIGVycm9yIGhhbmRsaW5nAGF0dGVtcHQgdG8gbG9hZCBhICVzIGNodW5rIChtb2RlIGlzICclcycpAHRleHQAY29udHJvbCBzdHJ1Y3R1cmUgdG9vIGxvbmcAbGFiZWxzL2dvdG9zAG5vIHZpc2libGUgbGFiZWwgJyVzJyBmb3IgPGdvdG8+IGF0IGxpbmUgJWQgKHRhYiAlZCkAPCVzPiBhdCBsaW5lICVkIG5vdCBpbnNpZGUgYSBsb29wADxnb3RvICVzPiBhdCBsaW5lICVkICh0YWIgJWQpIGp1bXBzIGludG8gdGhlIHNjb3BlIG9mIGxvY2FsICclcycAdG9vIG1hbnkgJXMgKGxpbWl0IGlzICVkKQAlczolZDogJXMAbGV4aWNhbCBlbGVtZW50IHRvbyBsb25nACclcycAJXMgbmVhciAlcwBAQAAnJWMnADo6ADxudW1iZXI+ADxuYW1lPgA8c3RyaW5nPgA8ZW9sPgBeXj0Ab3Bjb2RlcwAlcyBleHBlY3RlZABDIGxldmVscwAoZm9yIGluZGV4KQAoZm9yIGxpbWl0KQAoZm9yIHN0ZXApAGZ1bmN0aW9uIG9yIGV4cHJlc3Npb24gdG9vIGNvbXBsZXgAKGZvciBnZW5lcmF0b3IpAChmb3Igc3RhdGUpAChmb3IgY29udHJvbCkAJz0nIG9yICdpbicgZXhwZWN0ZWQAbGFiZWwgJyVzJyBhbHJlYWR5IGRlZmluZWQgb24gbGluZSAlZCAodGFiICVkKQAoZm9yIGNvbXBvdW5kKQB1bmV4cGVjdGVkIHN5bWJvbABmdW5jdGlvbiBhcmd1bWVudHMgZXhwZWN0ZWQAaXRlbXMgaW4gYSBjb25zdHJ1Y3RvcgBmdW5jdGlvbnMAc2VsZgA8bmFtZT4gb3IgJy4uLicgZXhwZWN0ZWQAY29uc3RhbnRzAGxvY2FsIHZhcmlhYmxlcwBjYW5ub3QgdXNlICcuLi4nIG91dHNpZGUgYSB2YXJhcmcgZnVuY3Rpb24AJXMgZXhwZWN0ZWQgKHRvIGNsb3NlICVzIGF0IGxpbmUgJWQgKHRhYiAlZCkpAGZ1bmN0aW9uIGF0IGxpbmUgJWQgKHRhYiAlZCkAbWFpbiBmdW5jdGlvbgB0b28gbWFueSAlcyAobGltaXQgaXMgJWQpIGluICVzAGludmFsaWQgbG9uZyBzdHJpbmcgZGVsaW1pdGVyAHVuZmluaXNoZWQgc3RyaW5nAGhleGFkZWNpbWFsIGRpZ2l0IGV4cGVjdGVkAGludmFsaWQgZXNjYXBlIHNlcXVlbmNlAGRlY2ltYWwgZXNjYXBlIHRvbyBsYXJnZQBYeABCYgBtYWxmb3JtZWQgbnVtYmVyAHVuZmluaXNoZWQgbG9uZyBjb21tZW50AHVuZmluaXNoZWQgbG9uZyBzdHJpbmcAY2h1bmsgaGFzIHRvbyBtYW55IGxpbmVzAHVwdmFsdWVzAGJpbmFyeSBzdHJpbmcAdHJ1bmNhdGVkAG5vdCBhAHZlcnNpb24gbWlzbWF0Y2ggaW4AaW5jb21wYXRpYmxlAGNvcnJ1cHRlZAAlczogJXMgcHJlY29tcGlsZWQgY2h1bmsAaW52YWxpZCBrZXkgdG8gJ25leHQnAHN0YWNrIHRyYWNlYmFjazoACgkuLi4AU2xudAAKCSVzOgAlZDoAIGluIABmdW5jdGlvbiAnJXMnAG1haW4gY2h1bmsAZnVuY3Rpb24gPCVzOiVkPgAKCSguLi50YWlsIGNhbGxzLi4uKQA9W0NdAD0/AG1haW4ATHVhAGZvciBpdGVyYXRvcgBtZXRhbWV0aG9kAGJhZCBhcmd1bWVudCAjJWQgKCVzKQBuAGNhbGxpbmcgJyVzJyBvbiBiYWQgc2VsZiAoJXMpAGJhZCBhcmd1bWVudCAjJWQgdG8gJyVzJyAoJXMpAFNsACVzOiVkOiAAJXMgZXhwZWN0ZWQsIGdvdCAlcwB2YWx1ZSBleHBlY3RlZABvYmplY3QgbGVuZ3RoIGlzIG5vdCBhIG51bWJlcgBfX3Rvc3RyaW5nACVzOiAlcABfX2luZGV4AF9fbmV3aW5kZXgAX19nYwBfX21vZGUAX19sZW4AX19lcQBfX2FkZABfX3N1YgBfX211bABfX2RpdgBfX21vZABfX3BvdwBfX2FuZABfX29yAF9feG9yAF9fc2hsAF9fc2hyAF9fbHNocgBfX3JvdGwAX19yb3RyAF9fbm90AF9faWRpdgBfX3BlZWsAX19wZWVrMgBfX3BlZWs0AF9fdW5tAF9fbHQAX19sZQBfX2NvbmNhdABfX2NhbGwAX19tZXRhdGFibGUAbmlsIG9yIHRhYmxlIGV4cGVjdGVkAGNhbm5vdCBjaGFuZ2UgYSBwcm90ZWN0ZWQgbWV0YXRhYmxlAHRhYmxlIG9yIHN0cmluZyBleHBlY3RlZABfX3BhaXJzAF9faXBhaXJzAGFzc2VydGlvbiBmYWlsZWQhAGluZGV4IG91dCBvZiByYW5nZQBjb3JvdXRpbmUgZXhwZWN0ZWQAY29yb2xpYjogdG9vIG1hbnkgYXJndW1lbnRzIHRvIHJlc3VtZQBjb3JvbGliOiBjYW5ub3QgcmVzdW1lIGRlYWQgY29yb3V0aW5lAGNvcm9saWI6IHRvbyBtYW55IHJlc3VsdHMgdG8gcmVzdW1lAGNhbm5vdCByZXN1bWUgbm9uLXN1c3BlbmRlZCBjb3JvdXRpbmUAY2Fubm90IHJlc3VtZSBkZWFkIGNvcm91dGluZQBydW5uaW5nAHN1c3BlbmRlZABub3JtYWwAZGVhZAB0b28gbWFueSByZXN1bHRzIHRvIHVucGFjawB1cGxvYWQAeyBpZiAodHlwZW9mIHBpY284X3N0YXRlICE9PSAndW5kZWZpbmVkJyl7IGlmICh0eXBlb2YgcGljbzhfc3RhdGUuc3lzdGVtX21lc3NhZ2VzID09PSAndW5kZWZpbmVkJykgcGljbzhfc3RhdGUuc3lzdGVtX21lc3NhZ2VzID0gbmV3IEFycmF5KCk7IHBpY284X3N0YXRlLnN5c3RlbV9tZXNzYWdlcy5wdXNoKFVURjhUb1N0cmluZygkMCwgJDEpKTsgfSB9AF9lbmRfb2ZfcHJvZ3JhbQB0byBjbG9zZSAnAGF0IGxpbmUgACVkICh0YWIgJWQpAHVuY2xvc2VkICVzIGF0IGxpbmUgJWQgKHRhYiAlZCkKAHVuY2xvc2VkICVzAC0tIHBpY28tOCBoZWFkZXIAYXNzZXJ0aW9uIGZhaWxlZABwb3NpdGlvbiBvdXQgb2YgYm91bmRzAG5vdCBlbm91Z2ggbWVtb3J5ADxlb2Y+AHRoZW1lIAB0aGVtZQBibHVlAHNldCB0aGVtZSB0byBibHVlAGF1dG8Ac2V0IHRoZW1lIHRvIGF1dG8AY2xhc3NpYwBzZXQgdGhlbWUgdG8gY2xhc3NpYwBjb25maWcgdGhlbWUgW3ZhbHVlXQBhdmFpbGFibGUgdGhlbWVzOgBkcmF3X3RhYnMgAGRyYXdfdGFicwBzaG93X3RhYnMgAHNob3dfdGFicwBvbgB0YWIgY2hhcmFjdGVycyBvbgBvZmYAdGFiIGNoYXJhY3RlcnMgb2ZmAGNvbmZpZyBkcmF3X3RhYnMgW29uIHwgb2ZmXQB3aGVuIG9uLCB0YWIgY2hhcmFjdGVycyBhcmUgAGRyYXduIGluIHRoZSBjb2RlIGVkaXRvci4AY3VycmVudCBzZXR0aW5nOiBvbgBjdXJyZW50IHNldHRpbmc6IG9mZgBzcGxvcmVfZmlsdGVyIABzcGxvcmVfZmlsdGVyAGZpbHRlciBvbgBmaWx0ZXIgb2ZmAGNvbmZpZyBmaWx0ZXIgW29uIHwgb2ZmXQB3aGVuIG9uLCBjYXJ0cmlkZ2VzIHRhZ2dlZCBhcwBtYXR1cmUgd2lsbCBub3QgYmUgZG93bmxvYWRlZC4AZmlsdGVyIGlzIGN1cnJlbnRseTogb24AZmlsdGVyIGlzIGN1cnJlbnRseTogb2ZmAHZvbHVtZSAAc2V0IHZvbHVtZTogJWQAY29uZmlnIHZvbHVtZSBbdmFsXQB2YWw6IDggcXVpZXQgLi4gMjU2IGxvdWQAY3VycmVudCB2b2x1bWU6ICVkAGdpZl9sZW4gAHNldCBnaWZfbGVuOiAlZABnaWZfbGVuAGNvbmZpZyBnaWZfbGVuIFtzZWNvbmRzXQBjdXJyZW50IGdpZl9sZW46ICVkAGdpZl9yZXNldF9tb2RlIABzZXQgZ2lmX3Jlc2V0X21vZGU6ICVkAGdpZl9yZXNldF9tb2RlAGNvbmZpZyBnaWZfcmVzZXRfbW9kZSBbbW9kZV0AIDA6IGRvbid0IHJlc2V0IGFmdGVyIHJlY29yZGluZwAgMTogcmVzZXQgYWZ0ZXIgZWFjaCByZWNvcmRpbmcAY3VycmVudCBnaWZfcmVzZXRfbW9kZTogJWQAc2Z4X2ZpbHRlcnMgAHNldCBzZnhfZmlsdGVyczogJWQAZ2lmX3NjYWxlIABzZXQgZ2lmX3NjYWxlOiAlZABnaWZfc2NhbGUAY29uZmlnIGdpZl9zY2FsZSBbc2l6ZV0AY3VycmVudCBnaWZfc2NhbGU6ICVkAHNjcmVlbnNob3Rfc2NhbGUgAHNldCBzY3JlZW5zaG90X3NjYWxlOiAlZABzY3JlZW5zaG90X3NjYWxlAGNvbmZpZyBzY3JlZW5zaG90X3NjYWxlIFtzaXplXQBjdXJyZW50IHNjcmVlbnNob3Rfc2NhbGU6ICVkAHRhYl93aWR0aCAAc2V0IHRhYl93aWR0aDogJWQAdGFiX3dpZHRoAGNvbmZpZyB0YWJfd2lkdGggW3dpZHRoXQBjdXJyZW50IHRhYl93aWR0aDogJWQAY29uZmlnIFtzZXR0aW5nXQBhdmFpbGFibGUgc2V0dGluZ3M6ACVkLyVkICUzLjFmIGZwcwAlZC8lZCAlMS4yZiAlMS4yZgByZXN1bWUoKQBub3RoaW5nIHRvIHJlc3VtZQBzdGF0KDQpACBfZHJhdwBwcm9ncmFtIGV4Y2VlZHMgY2hhciBsaW1pdAAlZCAvICVkIGNoYXJzCgBwcm9ncmFtIHRvbyBsYXJnZQAlZCAvICVkIHRva2VucwoALS0gcGljby04IGhlYWRlcgoJZG8gCWxvY2FsIF9yZWZ1bmRfY3B1XyA9IF9fcmVmdW5kX2NwdV9fIAlsb2NhbCBfcGFpcnMgPSBfX3BhaXJzX18gCWxvY2FsIF9pcGFpcnMgPSBfX2lwYWlyc19fIAlsb2NhbCBfdHlwZSA9IF9fdHlwZSAJbG9jYWwgX3Rvc3RyID0gX190b3N0ciAJbG9jYWwgX3N0b3AgPSBfX3N0b3AgCWxvY2FsIF9wcmludCA9IF9fcHJpbnQgCWxvY2FsIF9wcmludGggPSBfX3ByaW50aCAJbG9jYWwgX3Rvc3RyaW5nID0gX190b3N0cmluZ19fIAlsb2NhbCBfbG9hZCA9IF9fbG9hZCAJbG9jYWwgX3N0YXQgPSBzdGF0IAlsb2NhbCBfZXh0Y21kID0gX19leHRjbWQgCWxvY2FsIF9fbWVudWl0ZW0gPSBfbWVudWl0ZW0gCWxvY2FsIF95aWVsZGVkX3RvX2VzY2FwZV9zbGljZSA9IF9feWllbGRlZF90b19lc2NhcGVfc2xpY2UgCWxvY2FsIF9jb3Jlc3VtZSA9IF9fY29yZXN1bWUgCWxvY2FsIF9zZWxlY3QgPSBfX3NlbGVjdCAJbG9jYWwgX3N1cGVyeWllbGQgPSBfX3N1cGVyeWllbGQgCWxvY2FsIF9sYXN0X21lbnVpdGVtX2luZGV4ID0gMCAJbG9jYWwgX2xhc3RfbWVudWl0ZW1fY2FsbGJhY2sgPSBmdW5jdGlvbigpIGVuZCAJbG9jYWwgX21pZCA9IG1pZCAJX3BhdXNlbWVudT1fcGF1c2VtZW51IG9yIHt9CWZ1bmN0aW9uIG1lbnVpdGVtKGluZGV4X3AsIGxhYmVsLCBjYWxsYmFjaykgCQlpbmRleF9wID0gaW5kZXhfcCBvciBfbGFzdF9tZW51aXRlbV9pbmRleCAJCWNhbGxiYWNrID0gY2FsbGJhY2sgb3IgX2xhc3RfbWVudWl0ZW1fY2FsbGJhY2sgCQlpZiAodHlwZShpbmRleF9wKX49Im51bWJlciIpIHRoZW4gc3RvcCgiYmFkIG1lbnVpdGVtIGluZGV4IikgZW5kIAkJbG9jYWwgaW5kZXggPSBpbmRleF9wICYgMHhmZiAJCWlmIChpbmRleCA8IDEgb3IgaW5kZXggPiA1KSB0aGVuIHJldHVybiBlbmQJCV9wYXVzZW1lbnVbaW5kZXhdID0ge30gCQlfcGF1c2VtZW51W2luZGV4XS5sYWJlbCA9IGxhYmVsIAkJX3BhdXNlbWVudVtpbmRleF0uY2FsbGJhY2sgPSBjYWxsYmFjayAJCV9fbWVudWl0ZW0oaW5kZXhfcCwgbGFiZWwpIAllbmQgCWZ1bmN0aW9uIHBhaXJzKGMpICBpZiAoYyA9PSBuaWwpIHRoZW4gcmV0dXJuIGZ1bmN0aW9uKCkgZW5kIGVuZCByZXR1cm4gX3BhaXJzIChjKSBlbmQgCWZ1bmN0aW9uIGlwYWlycyhjKSBpZiAoYyA9PSBuaWwpIHRoZW4gcmV0dXJuIGZ1bmN0aW9uKCkgZW5kIGVuZCByZXR1cm4gX2lwYWlycyhjKSBlbmQgCWZ1bmN0aW9uIGFsbChjKSBpZiAoYyA9PSBuaWwgb3IgI2MgPT0gMCkgdGhlbiByZXR1cm4gZnVuY3Rpb24oKSBlbmQgZW5kIAkgCWxvY2FsIGk9MSAJIAlsb2NhbCBsaT1uaWwgCQlfcmVmdW5kX2NwdV8oKCNjID49IDE2KSBhbmQgLTE2IG9yIC0jYykgCSAJcmV0dXJuIGZ1bmN0aW9uKCkgCSAJCWlmIChjW2ldID09IGxpKSB0aGVuIGk9aSsxIGVuZCAJIAkJd2hpbGUoY1tpXT09bmlsIGFuZCBpIDw9ICNjKSBkbyBpPWkrMSBlbmQgCSAJCWxpPWNbaV0gCQkJX3JlZnVuZF9jcHVfKC0xNykgCSAJCXJldHVybiBsaSAJIAllbmQgCWVuZCAJZnVuY3Rpb24gZm9yZWFjaChjLF9mKSBmb3IgaSBpbiBhbGwoYykgZG8gX2YoaSkgZW5kIGVuZCBmdW5jdGlvbiB0b3N0ciguLi4pIAktLVtbIG5lZWQgdG8gdXNlIHRvc3RyaW5nIHdoZW4gbWV0YXRhYmxlIGFuZCBtdC5fX3Rvc3RyaW5nIGlzIHNldCBzbyB0aGF0IG10Ll9fdG9zdHJpbmcgd29ya3MuIHNlZSB0ZXN0cy9tZXRhKi5wOCBdXSAJbG9jYWwgcD17Li4ufSAJbG9jYWwgYSxiLG1heF9kZXB0aCA9IHBbMV0scFsyXSxwWzNdIAlpZiAobWF4X2RlcHRoKSB0aGVuIHJldHVybiBfdG9zdHIoLi4uKSBlbmQgCWlmICgoX3R5cGUoYSk9PSJ0YWJsZSIgYW5kICgoZ2V0bWV0YXRhYmxlKGEpIGFuZCBnZXRtZXRhdGFibGUoYSkuX190b3N0cmluZykgb3IgYikpKSBvciAoKF90eXBlKGEpPT0iZnVuY3Rpb24iIGFuZCBiKSkgdGhlbiAJIHJldHVybiBfdG9zdHJpbmcoYSkgICAgIGVsc2UgCSByZXR1cm4gX3Rvc3RyKC4uLikgCWVuZCBlbmQgCS0tW1sgcHJpbnQoKSBzaG91bGQgcHJpbnQgbm90aGluZzsgcHJpbnQobmlsKSBzaG91bGQgcHJpbnQgW25pbF07IHN0b3AoKSBwYXNzZXMgYXJncyB0byBwcmludCBzbyB0aGF0IGNhbiBwcmludCBpbiBhIGNvbG91cl1dCWZ1bmN0aW9uIHN0b3AoLi4uKSAgICBpZiBfc2VsZWN0KCcjJywuLi4pPT0wIHRoZW4gX3N0b3AoKSAgIGVsc2UgbG9jYWwgYT17Li4ufSByZXR1cm4gX3N0b3AgICh0b3N0cihhWzFdKSwgX3NlbGVjdCgyLC4uLikpIGVuZCBlbmQgCWZ1bmN0aW9uIHByaW50KC4uLikgICBpZiBfc2VsZWN0KCcjJywuLi4pPT0wIHRoZW4gX3ByaW50KCkgIGVsc2UgbG9jYWwgYT17Li4ufSByZXR1cm4gX3ByaW50ICh0b3N0cihhWzFdKSwgX3NlbGVjdCgyLC4uLikpIGVuZCBlbmQgCWZ1bmN0aW9uIHByaW50aCguLi4pICBpZiBfc2VsZWN0KCcjJywuLi4pPT0wIHRoZW4gX3ByaW50aCgpIGVsc2UgbG9jYWwgYT17Li4ufSByZXR1cm4gX3ByaW50aCh0b3N0cihhWzFdKSwgX3NlbGVjdCgyLC4uLikpIGVuZCBlbmQgZnVuY3Rpb24gbG9hZCguLi4pIAlsb2NhbCByZXM9X2xvYWQoLi4uKSAJZmxpcCgpIC0tW1t0byBzdXBlcnlpZWxkLiByZWY6cGljb3dhcmVdXQlpZiAoX3N0YXQoMTA3KSA+IDApIHRoZW4gcmV0dXJuIHRydWUgZW5kIAlpZiAoX3N0YXQoMTA3KSA9PSAtMSkgdGhlbiByZXR1cm4gZmFsc2UsICJjb3VsZCBub3QgZmluZCBjYXJ0IiBlbmQgCWlmIChfc3RhdCgxMDcpID09IC0yKSB0aGVuIHJldHVybiBmYWxzZSwgImNvdWxkIG5vdCBmZXRjaCBjYXJ0IiBlbmQgCWlmIChfc3RhdCgxMDcpID09IC0zKSB0aGVuIHJldHVybiBmYWxzZSwgImNvdWxkIG5vdCBjb25uZWN0IHRvIGJicyIgZW5kIAlpZiAoX3N0YXQoMTA3KSA8IDAgb3IgcmVzID09IG5pbCkgdGhlbiByZXR1cm4gZmFsc2UsICJhY2Nlc3MgZGVuaWVkIiBlbmQgCXJldHVybiByZXMgZW5kIGZ1bmN0aW9uIGV4dGNtZChjbWQsIC4uLikgCWxvY2FsIHJlcz1fZXh0Y21kKGNtZCwgLi4uKSAJaWYgKGNtZD09ImdvX2JhY2siIG9yIGNtZD09ImJyZWFkY3J1bWIiKSB0aGVuIAkJZmxpcCgpIC0tW1t0byBzdXBlcnlpZWxkXV0JZW5kIAlyZXR1cm4gcmVzIGVuZCBmdW5jdGlvbiBjb3Jlc3VtZShjLC4uLikgCV95aWVsZGVkX3RvX2VzY2FwZV9zbGljZSgwKSAJbG9jYWwgcmV0ID0ge19jb3Jlc3VtZShjLC4uLil9CXdoaWxlIChfeWllbGRlZF90b19lc2NhcGVfc2xpY2UoKSBhbmQgY29zdGF0dXMoYykgPT0gInN1c3BlbmRlZCIpIGRvIAkJX3lpZWxkZWRfdG9fZXNjYXBlX3NsaWNlKDApIAkJcmV0ID0ge19jb3Jlc3VtZShjLC4uLil9IAllbmQgCV95aWVsZGVkX3RvX2VzY2FwZV9zbGljZSgwKSAJcmV0dXJuIHVucGFjayhyZXQpIGVuZCBmdW5jdGlvbiBmbGlwKCkgCXJlcGVhdCAJCWxvY2FsIGNvbnRpbnVlX21lbnUgPSBmYWxzZSAJCWZvciBpPTEsNSBkbyAJCSBsb2NhbCB2YWwgPSBfZ2V0X21lbnVfaXRlbV9zZWxlY3RlZChpKSAJCSBpZiAodmFsKSB0aGVuIAkJICBfbGFzdF9tZW51aXRlbV9pbmRleCA9IGkgCQkgIF9sYXN0X21lbnVpdGVtX2NhbGxiYWNrID0gX3BhdXNlbWVudVtpXS5jYWxsYmFjayAJCSAgY29udGludWVfbWVudSA9IF9wYXVzZW1lbnVbaV0uY2FsbGJhY2sodmFsKSAJCSAgaWYgKHZhbCAmIDMgPiAwKSB0aGVuIGNvbnRpbnVlX21lbnUgPSB0cnVlIGVuZCAJCSBlbmQgCQllbmQgCQlpZiAoY29udGludWVfbWVudSkgdGhlbiBleHRjbWQoInBhdXNlIiwgMSkgX3N1cGVyeWllbGQoKSBlbmQgIAl1bnRpbCBub3QgY29udGludWVfbWVudSAJX19mbGlwKCkgZW5kIGVuZCAtLVtbIHNjb3BlIF1dX19yZWZ1bmRfY3B1X18gPSBuaWwgX19pcGFpcnNfXyA9IG5pbCBfX3BhaXJzX18gPSBuaWwgX190b3N0ciAgICA9IG5pbCBfX3N0b3AgICAgID0gbmlsIF9fcHJpbnQgICAgPSBuaWwgX19wcmludGggICA9IG5pbCBfX2xvYWQgICAgID0gbmlsIF9fZXh0Y21kICAgPSBuaWwgX190b3N0cmluZ19fID0gbmlsIF9feWllbGRlZF90b19lc2NhcGVfc2xpY2UgPSBuaWwgX19jb3Jlc3VtZSA9IG5pbCBfX3NlbGVjdCA9IG5pbCBfX3N1cGVyeWllbGQgPSBuaWwgAChmdW5jdGlvbigpIACAPYAgb3IgMC41IIE9gSBvciAyMzEzMC41III9giBvciAyMDc2Ny41IIM9gyBvciAzIIQ9hCBvciAzMjEyNS41IIU9hSBvciAtMTg0MDIuNSCGPYYgb3IgLTE2MzIuNSCHPYcgb3IgMjA5MjcuNSCIPYggb3IgLTE5MDA4LjUgiT2JIG9yIC0yNjIwOC41IIo9iiBvciAtMjAxOTIuNSCLPYsgb3IgMCCMPYwgb3IgLTI0MzUxLjUgjT2NIG9yIC0yNTc5Mi41II49jiBvciA0II89jyBvciAtMjAwMzIuNSCQPZAgb3IgLTI1NjAuNSCRPZEgb3IgMSCSPZIgb3IgLTIwMTI4LjUgkz2TIG9yIDY5NDMuNSCUPZQgb3IgMiCVPZUgb3IgLTI2MjQuNSCWPZYgb3IgMzE0NTUuNSCXPZcgb3IgNSCYPZggb3IgMzg1NS41IJk9mSBvciAyMTg0NS41IDsAOyBlbmQgKSgpOwBsb2NhbCB0aW1lLHN1YixjaHIsb3JkLHRvc3RyLHRvbnVtLGFkZCxkZWwsZGVsaSxjbGlwLGNvbG9yLHBhbCxwYWx0LGZpbGxwLHBnZXQscHNldCxzZ2V0LHNzZXQsZmdldCxmc2V0LGNpcmMsY2lyY2ZpbGwscmVjdCxyZWN0ZmlsbCxvdmFsLG92YWxmaWxsLGxpbmUsc3ByLHNzcHI9ICAgICAgdGltZSxzdWIsY2hyLG9yZCx0b3N0cix0b251bSxhZGQsZGVsLGRlbGksY2xpcCxjb2xvcixwYWwscGFsdCxmaWxscCxwZ2V0LHBzZXQsc2dldCxzc2V0LGZnZXQsZnNldCxjaXJjLGNpcmNmaWxsLHJlY3QscmVjdGZpbGwsb3ZhbCxvdmFsZmlsbCxsaW5lLHNwcixzc3ByIGxvY2FsIG1nZXQsbXNldCx0bGluZSxwZWVrLHBva2UscGVlazIscG9rZTIscGVlazQscG9rZTQsbWVtY3B5LG1lbXNldCxtYXgsbWluLG1pZCxmbHIsY2VpbCxjb3Msc2luLGF0YW4yLHJhbmQsc3JhbmQsYmFuZCxib3IsYnhvcixibm90LHNobCxzaHIsbHNocixyb3RsLHJvdHI9ICAgICAgIG1nZXQsbXNldCx0bGluZSxwZWVrLHBva2UscGVlazIscG9rZTIscGVlazQscG9rZTQsbWVtY3B5LG1lbXNldCxtYXgsbWluLG1pZCxmbHIsY2VpbCxjb3Msc2luLGF0YW4yLHJhbmQsc3JhbmQsYmFuZCxib3IsYnhvcixibm90LHNobCxzaHIsbHNocixyb3RsLHJvdHI7IAA7CgAxMDM4OAAgbmQ9MCAAJXMgJXMoKQAlcyAlcygiJXMiKQBzcGxvcmUoKQAKIF9lbmRfb2ZfcHJvZ3JhbSA9IDEgCgAKCSAgICBfZW5kX29mX3Byb2dyYW0gPSAxIAoJICAgIGlmIChfaW5pdCB+PSBuaWwpIHRoZW4gX2luaXQoKSBlbmQKICAgICAgICAgICAgX3NldF9tYWlubG9vcF9leGlzdHMoMCkKCSAgICBpZiAoX21haW5sb29wIH49IG5pbCkgdGhlbiBfc2V0X21haW5sb29wX2V4aXN0cygxKSBlbmQKCSAgICBpZiAoX3VwZGF0ZTYwIH49IG5pbCkgdGhlbiBfc2V0X2Zwcyg2MCkgX3VwZGF0ZT1uaWwgZWxzZSBfc2V0X2ZwcygzMCkgZW5kCgkgICAgaWYgKF9tYWlubG9vcCA9PSBuaWwgYW5kIChfZHJhdyB+PSBuaWwgb3IgX3VwZGF0ZSB+PSBuaWwgb3IgX3VwZGF0ZTYwIH49IG5pbCkpIHRoZW4KCSAgICAJX3NldF9tYWlubG9vcF9leGlzdHMoMikKCQkgICAgX21haW5sb29wID0gZnVuY3Rpb24oKSAKCSAgICAgICAgCXdoaWxlICh0cnVlKSBkbwoJCQkJCV91cGRhdGVfYnV0dG9ucyhfdXBkYXRlNjAgYW5kIDEgb3IgMikKCQkJCSAgICBfc3RhcnRmcmFtZSgpIAoJCQkJICAgIGlmIChzdGF0KDcpID09IDYwKSB0aGVuCgkJCQkgICAgCV9tYXJrX2NwdSgwKSBfdXBkYXRlNjAoKSAKCQkJCSAgICBlbHNlaWYgKHN0YXQoNykgPT0gMzAgYW5kIF91cGRhdGU2MCkgdGhlbgoJCQkJICAgIAlfdXBkYXRlNjAoKSBfdXBkYXRlX2J1dHRvbnMoMSkgX21hcmtfY3B1KDApIF91cGRhdGU2MCgpCgkJCQkgICAgZWxzZWlmIChzdGF0KDcpID09IDMwIGFuZCBfdXBkYXRlKSB0aGVuCgkJCQkgICAgCV9tYXJrX2NwdSgwKSBfdXBkYXRlKCkgCgkJCQkgICAgZWxzZWlmIChzdGF0KDcpID09IDE1IGFuZCBfdXBkYXRlKSB0aGVuCgkJCQkgICAgCV91cGRhdGUoKSAgX3VwZGF0ZV9idXR0b25zKDIpIF9tYXJrX2NwdSgwKSBfdXBkYXRlKCkKCQkJCSAgICBlbmQKCQkJCSAgICBfbWFya19jcHUoMSkKCQkJCSAgICBpZiAoX2RyYXcgfj0gbmlsKSB0aGVuCgkJCQkJCWxvY2FsIGRpLHJlcz0wLHRydWUgCgkJCQkJCXdoaWxlIChkaSA8IHN0YXQoMTEpIGFuZCByZXMpIGRvIHJlcyA9IF9tYXBfZGlzcGxheShkaSkgaWYgKHJlcykgdGhlbiByZXM9X2RyYXcoKSBlbmQgZGk9ZGkrMSBlbmQgCgkJCQkJCV9tYXBfZGlzcGxheSgwKSAKCQkJCQllbmQKCQkJCSAgICBfbWFya19jcHUoMikKCQkJCQlfdXBkYXRlX2ZyYW1lcmF0ZSgpCgkJCQkgICAgZmxpcCgpCgkJCSAgICBlbmQKCQkgICAgZW5kCgkgICAgZW5kCgkJaWYgKF9tYWlubG9vcCB+PSBuaWwpIHRoZW4gX21haW5sb29wKCkgZW5kCiAgICAgICAgCgBzeW50YXggZXJyb3IAc3ludGF4IGVycm9yIGxpbmUgJWQgKHRhYiAlZCkAdW5leHBlY3RlZCBzeW1ib2wgbmVhciAnZW5kJwB1bmV4cGVjdGVkIGVuZCBvZiBsaW5lACVzIGxpbmUgJWQKAAotLT44CgAucDgucG5nAGJicy8AQEAgcnVuX2NhcnQoKSAvLyBsZXhhbG9mZmxlX2Jic19wbGF5ZXI6ICVkICAgcHN0YXRlLnBhcmFtX3N0cl9wZW5kaW5nOiAlcwoAcnVuX2NhcnQgY3VycmVudF9maWxlbmFtZTogJXMgcnVubmluZ19maWxlbmFtZTogJXMgcnVubmluZ19jYXJ0X2xpZDogJXMKAHN0YWNrIHRyYWNlYmFjawAnX21haW5sb29wAGluIGZ1bmN0aW9uICcAaW4gJXMgbGluZSAlZCAodGFiICVkKQBpbiBtYWluIGNodW5rAGF0IGxpbmUgJWQgKHRhYiAlZCkAZ2Mgbm90IHJ1bm5pbmc7IGNvdWxkIG5vdCBwZXJmb3JtIGVtZXJnZW5jeSBjb2xsZWN0aW9uCgBnYyBoYXJkIGNvbGxlY3Q6ICVkIC0+ICVkIChvdmVyaGVhZDolZCkKAG91dCBvZiBtZW1vcnkAcnVudGltZSBlcnJvciBsaW5lICVkIHRhYiAlZABydW50aW1lIGVycm9yAGtleXdvcmQgaGFzaCBjb2xsaXNpb246ICVzICVzCgBnb3RvAGJyZWFrAGlwYWlycwBnaWYAKiogRUdpZk9wZW5GaWxlTmFtZSBlcnJvciAlZDogJXMKAHNhdmluZyBnaWYgdG86ICVzCgBORVRTQ0FQRTIuMAAqKiBFR2lmU3BldygpIEdJRl9FUlJPUgoAW2NhcnRdAFsvY2FydF0AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLwBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OV8tAC5wOGwALnR4dAAub2JqAC5tdGwALnN2ZwAucG92AC5zZmQALmNzdgAucHBtAFslc10AX19yZWZ1bmRfY3B1X18AX19wYWlyc19fAF9faXBhaXJzX18AX19zdG9wAF9fcHJpbnQAX19wcmludGgAX190b3N0cgBfX2xvYWQAX19leHRjbWQAX190b3N0cmluZ19fAHRvc3RyaW5nAF9fdHlwZQBfX3NlbGVjdABfX2NvcmVzdW1lAF9feWllbGRlZF90b19lc2NhcGVfc2xpY2UAY2QAbWtkaXIAZXhpdABmaWxlOiAlcyVzAHRva2VuczogICAgICU1ZCAvICAlZABjaGFyczogICAgICAlNWQgLyAlZABjb21wcmVzc2VkOiAlNWQgLyAlZAB1bnNhdmVkIGNoYW5nZXMAZXh0ZXJuYWwgY2hhbmdlcwBjb250aW51ZSB3aXRoIHNodXRkb3duPyBbeS9uXQBAQCBwaWNvLTggc2h1dHRpbmcgZG93bgBjb250aW51ZSB3aXRoIHJlYm9vdD8gW3kvbl0AdHJ5OiBoZWxwIDx0b3BpYz4gaW5zdGVhZC4gZS5nLgBjb21tYW5kcwBsb2FkIDxmaWxlbmFtZT4gIHNhdmUgPGZpbGVuYW1lPgBydW4gKG9yIGN0cmwtcikgIHJlc3VtZQBzaHV0ZG93biAgICAgICAgIHJlYm9vdABpbnN0YWxsX2RlbW9zICAgIGxzAGNkIDxkaXJuYW1lPiAgICAgbWtkaXIgPGRpcm5hbWU+AGNkIC4uICAgICAgdG8gZ28gdXAgYSBkaXJlY3RvcnkAa2V5Y29uZmlnICB0byBjaG9vc2UgYnV0dG9ucwBzcGxvcmUgICAgIHRvIGV4cGxvcmUgY2FydHJpZGdlcwBoZWxwIDx0b3BpYz4AcHJlc3MgZXNjIHRvIHRvZ2dsZSBlZGl0b3IgdmlldwBhbHQrZW50ZXIgdG8gdG9nZ2xlIGZ1bGxzY3JlZW4AYWx0K2Y0IG9yIGN0cmwtcSB0byBmYXN0cXVpdABjdHJsLW0vLS8rIHRvIGFkanVzdCB2b2x1bWUgAGNhbiBub3Qgc2F2ZSB3aGlsZSBydW5uaW5nAGZpbGVuYW1lIHRvbyBsb25nAEB1cmwAQGNsaXAAQGNsaXAucDgAQGNsaXAucG5nAEBjbGlwLnA4LnBuZwB3YXJuaW5nOiBsYWJlbCBpcyBibGFuawBydW4gY2FydCBhbmQgY3RybC03IHRvIGNhcHR1cmUAX2NsaXAucDgucG5nAF9jbGlwLnA4LnBuZy5oZXgAY29waWVkIHRvIHRleHRmaWVsZCAtLSBwcmVzcwBjdHJsLWMgdG8gY29weSB0byBjbGlwYm9hcmQhAGZhaWxlZCB0byBzYXZlIHRvIGNsaXBib2FyZAAqIHNhdmUgZmFpbGVkICoAaWxsZWdhbCBmaWxlbmFtZToAZmlsZSBhbHJlYWR5IGV4aXN0cwBvdmVyd3JpdGU/IFt5L25dAHNhdmVkICVzJXMAY291bGQgbm90IHNhdmUAbG9naW4gdW5hdmFpbGFibGUAbWtkaXIgW25hbWVdAG1rZGlyIGZhaWxlZDogaWxsZWdhbCBwYXRoIG5hbWUAZGlyZWN0b3J5OiAvJXMAJXMlcy8AJXMlcyVzLwBjZDogZmFpbGVkAGRpcmVjdG9yeSBub3QgZm91bmQALyVzAGxhYmVsAHNhdmVkIGxhYmVsAHNjcmVlbgAqKiBjb3VsZCBub3Qgc2F2ZSBzY3JlZW5zaG90AHNhdmVkIGltYWdlAGdlbmVyYXRlZCBzY3JlZW5zaG90AHJlYwByZWNfZnJhbWVzAHZpZGVvAEBAIHNhdmUgZ2lmIHJlc3VsdDogJWQgdmlkZW9fY2xpcF9pbmRleDogJWQKAG5vIHZpZGVvIHJlY29yZGVkICgwIGZyYW1lcykAKiogY291bGQgbm90IHNhdmUgZ2lmAHNhdmVkICVkIHNlY29uZCBnaWYAZ2VuZXJhdGVkICVkIHNlY29uZCBnaWYAYXVkaW9fcmVjAGF1ZGlvX2VuZABwYXVzZQBjb250cm9scwBicmVhZGNydW1iAGdvX2JhY2sAc2V0X3RpdGxlAHNldF9maWxlbmFtZQB1bmtub3duIGV4dGNtZDolcwBkb3dubG9hZGluZy4uIABiYWQgY2FydHJpZGdlIGlkAC9iYnMvY3Bvc3RfbGlzdGVyMy5waHA/bmZvPTEmdmVyc2lvbj0lcyVjJmxpZD0lcwBAZHJvcHBlZABkcm9wcGVkLnA4AGxvYWRlZCBjYXJ0cmlkZ2UgKCVkIGNoYXJzKQBzb3JyeSwgQGNsaXAgaXMgbm90IGF2YWlsYWJsZQBsb2FkZWQgJXMlcyAoJWQgY2hhcnMpAGNvdWxkIG5vdCBsb2FkOiBmdXR1cmUgdmVyc2lvbgBjb3VsZCBub3QgbG9hZDogY29kZSBzaXplID4gNjRrAGNvdWxkIG5vdCBsb2FkADB4JTA4eAAweCUwNHguJTA0eABwcmVzcyBjdHJsLWMgdG8gY29tcGxldGUgY29weQBwcmludGg6IGJhZCBsb2cgZmlsZSBuYW1lAHByaW50aDogdG9vIG11Y2ggbG9nIGRhdGEgKDEwbWIgbWF4KQB8JXMAdG9vIG1hbnkgcHJpbnRoIGZpbGVzAGEAJXMKAHByaW50aDogY291bGQgbm90IHdyaXRlIGZpbGUAY291bnQAX19mbGlwAF9fc3VwZXJ5aWVsZABiYWNrdXAAaW5zdGFsbF9kZW1vcwBpbnN0YWxsX2dhbWVzAGtleWNvbmZpZwBtYXBkcmF3AHNldF9kcmF3X3NsaWNlAF9tZW51aXRlbQBuZXh0AGluZXh0AHNldG1ldGF0YWJsZQBnZXRtZXRhdGFibGUAcmF3ZXF1YWwAcmF3bGVuAHJhd2dldAByYXdzZXQAYXNzZXJ0AF9fdHJhY2UAdHJhY2UAaG9sZGZyYW1lAF9zdGFydGZyYW1lAF9nZXRfbWVudV9pdGVtX3NlbGVjdGVkAF91cGRhdGVfYnV0dG9ucwBfdXBkYXRlX2ZyYW1lcmF0ZQBfc2V0X21haW5sb29wX2V4aXN0cwBfc2V0X2ZwcwBfbWFya19jcHUAX21hcF9kaXNwbGF5ACoqIF9tYXBfZGlzcGxheSBoYXMgYmVlbiBkZXByZWNhdGVkIHdoZW4gcnVubmluZyBvbiBhIHNpbmdsZSBkaXNwbGF5ICoqIChzZWUgMC4yLjZiIHJlbGVhc2UgcG9zdCkAdG9vIG1hbnkgb3JkIHJlc3VsdHMAZGV2a2l0IGtleWJvYXJkIGVuYWJsZWQAZGV2a2l0IG1vdXNlIGVuYWJsZWQAeyB2YXIgc3RyID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lOyByZXR1cm4gYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5nKHN0ciksICdpOCcsIEFMTE9DX05PUk1BTCk7IH0AZHNldCBjYWxsZWQgYmVmb3JlIGNhcnRkYXRhKCkAZGdldCBjYWxsZWQgYmVmb3JlIGNhcnRkYXRhKCkAaGlnaCBzY29yZXMgbm90IGltcGxlbWVudGVkIHlldCEAdG9vIG1hbnkgcGVlayByZXN1bHRzAGNzdG9yZS8Ac2FuZGJveGVkX2NzdG9yZSBmaWxlIG5vdCBmb3VuZDogJXMKACAgLS0+IHVzaW5nIGludGVybmFsIGZpbGU6ICVzCgBzcGxvcmUgaXMgbm90IGF2YWlsYWJsZQBpbiB0aGlzIHZlcnNpb24uAGluc3RhbGxpbmcgZ2FtZXMgdG8gL2dhbWVzLwBiYWNrZWQgdXAgJXMlcwBiYWNrdXBzAGNvbmZpZwB1c2VhZ2U6IGZvbGRlciBbbG9jYXRpb25dAGxvY2F0aW9uczoAYmFja3VwcyBjb25maWcgYmJzIGRlc2t0b3AAaG9zdCBhbGxvY2F0aW9uIGVycm9yACVkbWIgKyAlZGsKAG5vIGhlbHAgdG9waWMgdW5kZXIgY3Vyc29yAHR5cGUgdGhlIHRvcGljIHdpdGhvdXQgPD4uIGUuZy46AGhlbHAgZ2Z4AGFib3V0AHBpY28tOACAIHBpY28tOCAwLjIuNwBtYWRlIGJ5IHplcCBhdCBwaWNvIHBpY28gY2FmZSwAdG9reW8uIHRoaXMgcHJvZ3JhbSBpcyBkZWRpY2F0ZWQAdG8gdG9tLCBsb3VpcyBhbmQgbmFjY2kuAHBpY28tOCB3YXMgbWFkZSB3aXRoIHNkbDIsIGx1YSwAZ2lmbGliLCB3aXJpbmdwaSwgbGliYjY0LCBtaW5peiwAbGliY3VybCwgYW5kIGdudSB0b29scy4AYXVkaW8Ac2Z4AIAgYXVkaW8gYXBpIGZ1bmN0aW9ucwBtdXNpYyBzZngAaW5wdXQAdXNlIHRoZSBrZXljb25maWcgY29tbWFuZAB0byBzZXQgZGVmYXVsdCBidXR0b24ga2V5cy4AgCBpbnB1dCBhcGkgZnVuY3Rpb25zAGJ0biBidG5wAHN0cmluZwBzdHJpbmdzAIAgc3RyaW5ncwBzdHJpbmdzIGluIGx1YSBhcmUgaW1tdXRhYmxlOwB0aGV5IGNhbiBiZSBjcmVhdGVkIGFuZCBqb2luZWQAdG9nZXRoZXIsIGJ1dCBub3QgbW9kaWZpZWQuAHMgPSAiZm9vIiAgICAgAD90eXBlKHMpICAgIC0tIHN0cmluZyAAP3MgPT0gImZvbyIgLS0gdHJ1ZQA/cy4uImJvbyIgICAtLSBmb29ib28gKGpvaW4pAD9zLi4oMisyKSAgIC0tIGZvbzQAP3NbMV0gICAgICAgLS0gZgA/I3MgICAgICAgICAtLSAzIChsZW5ndGgpAIAgc3RyaW5nIGZ1bmN0aW9ucwBzdWIgY2hyIG9yZCBzcGxpdCB0b3N0ciB0b251bQCAIGxlbmd0aCBvcGVyYXRvcjogIwBnaXZlcyB0aGUgbGVuZ3RoIG9mIGEgc3RyaW5nIG9yAGEgdGFibGUgdGhhdCBpcyBpbmRleGVkIHdpdGgAaW50ZWdlcnMgc3RhcnRpbmcgYXQgMToAPiA/IyJ0aGUgcXVpY2sgYnJvd24gZm94IgAxOQA+IGE9ezEsMiwzfQA+ID8jYQBzZWUgYWxzbzogdGFibGVzIHN0cmluZ3MAdGFibGUAdGFibGVzAIAgdGFibGVzAGx1YSBwcm92aWRlcyBhIHNpbmdsZSB0eXBlIGZvcgBzdHJ1Y3R1cmVkIGRhdGE6IHRoZSB0YWJsZS4ga2V5cwBhbmQgdmFsdWVzIGluIGEgdGFibGUgY2FuIGJlIGEAYSBtaXh0dXJlIG9mIGFueSB0eXBlLCBhbmQgdGh1cwBjYW4gYmUgdXNlZCBhcyBhcnJheXMsIG1hcHMsAHNldHMsIG9yIGR1Y2stdHlwZWQgb2JqZWN0cy4AdGJsID0gezUsNiw3fSAtLSBjcmVhdGUgYSB0YWJsZQA/dGJsWzFdIC0tIDUgKDEtYmFzZWQpAD8jdGJsICAgLS0gMyAoMS1iYXNlZCBsZW5ndGgpAHogPSB7WzBdPTUsNn0gLS0gc3RhcnQgYXQgMABwID0ge3g9NCx5PTR9IC0tIHN0cmluZyBrZXlzAD9wLnggICAgICAgICAgLS0gc2FtZSBhcyA/cFsieCJdAIAgdGFibGUgZnVuY3Rpb25zAGFkZCBkZWwgZGVsaSBhbGwgZm9yZWFjaCBwYWlycwBsdWEAgCBsdWEgY2hlYXRzaGVldAAtLSAgc2luZ2xlIGxpbmUgY29tbWVudAAtLVtbIGNvbW1lbnQgdGhhdCBzcGFucyBtdWx0aXBsZQBsaW5lcyBdXQBsb2NhbCBhICAgICAgIC0tIGxvY2FsIHZhcmlhYmxlAHgseSx6ID0gMyw0LDUgLS0gZ2xvYmFscwBwcmludCh4PT0zKSAgIC0tIHByaW50IGJvb2xlYW4AZnVuY3Rpb24gcGx1czIoeCkgcmV0dXJuIHgrMiBlbmQAZm9yIGk9MTAsOTAsNSBkbyBjaXJjKGksNSxpKSBlbmQAd2hpbGUoeCA8IDQpIGRvIHg9eCsxIGVuZABpZiAoeCAhPSA0KSB0aGVuIGZvbygpIGVuZABpZiAoeCA9PSA0KSBmb28oKSAtLSBzaG9ydGhhbmQAgCBleHRyYSB0b3BpY3MAdGFibGVzIHN0cmluZ3MgbnVtYmVycyBsb2dpYwBmdW5jdGlvbgByZXR1cm4AgCBrZXl3b3JkczogZnVuY3Rpb24gcmV0dXJuAGEgZnVuY3Rpb24gY2FuIHRha2UgYW55IG51bWJlcgBvZiBhcmd1bWVudHMsIGFuZCByZXR1cm4gYW55AG51bWJlciBvZiByZXN1bHRzOgBmdW5jdGlvbiBmb28oYSwgYikAICBwcmludCgiaW5zaWRlIGZvbyIpACAgcmV0dXJuIGEgKyBiLCAzIC0tIDIgcmVzdWx0cwBlbmQAPiB4LHkgPSBmb28oOCw5KQA+IHByaW50KHgpADE3AD4gcHJpbnQoeSkAd2hpbGUAgCBrZXl3b3JkOiB3aGlsZQByZXBlYXQgYSBibG9jayBvZiBjb2RlIHdoaWxlIGEAY29uZGl0aW9uIGlzIHRydWUuAGkgPSAzAHdoaWxlIGkgPCA1IGRvACAgcHJpbnQoaSkAICBpID0gaSArIDEALS0tIG91dHB1dCAtLS0AZG8AgCBrZXl3b3JkOiBkbwBkZW5vdGUgdGhlIHN0YXJ0IG9mIGEgYmxvY2sAb2YgY29kZS4gdXNlZCBieSB3aGlsZSBhbmQAZm9yIGxvb3BzLgCAIGtleXdvcmQ6IGVuZABkZW5vdGUgdGhlIGVuZCBvZiBhIGJsb2NrIG9mAGNvZGUuIHVzZWQgYnkgd2hpbGUsIGlmLCBmb3IAbG9vcHMsIGFuZCBmdW5jdGlvbiBkZWZpbml0aW9ucy4AcmVwZWF0AHVudGlsAIAga2V5d29yZHM6IHJlcGVhdCwgdW50aWwAcmVwZWF0IGEgYmxvY2sgb2YgY29kZSB1bnRpbABzb21lIGNvbmRpdGlvbiBpcyB0cnVlIGF0IHRoZQBlbmQgb2YgdGhlIGJsb2NrLgB0aGlzIG1lYW5zIHRoYXQgdGhlIGJsb2NrIGlzAGFsd2F5cyBleGVjdXRlZCBhdCBsZWFzdCBvbmNlLAB1bmxpa2Ugd2hpbGUgLi4gZG8gLi4gZW5kLgB1bnRpbCBpID49IDUAaWYAdGhlbgBlbHNlaWYAZWxzZQCAIGlmLCB0aGVuLCBlbHNlaWYsIGVsc2UAZG8gc29tZXRoaW5nIHdoZW4gc29tZXRoaW5nIGlzAHRydWUuIGVsc2UgYW5kIGVsc2VpZiBibG9ja3MgYXJlAG9wdGlvbmFsOgBpZiB4ID4geSB0aGVuACAgcHJpbnQoeC4uIiBpcyBtb3JlIHRoYW4gIi4ueSkAaWYgeCA8IDQgdGhlbgAgIHByaW50KCJ4IGlzIGxlc3MgdGhhdCA0IikAZWxzZWlmIHggPCA2IHRoZW4AICBwcmludCgieCBpcyA0IG9yIDUiKQAgIHByaW50KCJ4IGlzIDYgb3IgbW9yZSIpAGlmICh4PDQpID8ieDw0IiAtLSBzaG9ydGhhbmQAZm9yAGluAIAgZm9yIGxvb3BzAHJlcGVhdCBhIGJsb2NrIG9mIGNvZGUgbiB0aW1lcy4AZm9yIGk9MSw1IGRvAC0tIHJlc3VsdDogMSAyIDMgNCA1AGEgc3RlcCBzaXplIGNhbiBiZSBhZGRlZDoAZm9yIGk9MSw4LDIgZG8gcHJpbnQoaSkgZW5kAC0tIHJlc3VsdDogMSAzIDUgNwBmb3IgbG9vcHMgY2FuIGFsc28gYmUgdXNlZCB0bwBpdGVyYXRlIG92ZXIgdGFibGVzLgBzZWUgYWxzbzogcGFpcnMgYWxsAHRydWUAZmFsc2UAbmlsAGJvb2xlYW4AgCB0cnVlIGZhbHNlIG5pbABib29sZWFuIHZhcmlhYmxlcyBjYW4gaGF2ZSB0aGUAdmFsdWUgdHJ1ZSBvciBmYWxzZS4gbmlsIGlzIGEAc3BlY2lhbCB2YWx1ZSB0aGF0IG1lYW5zIGZhbHNlAGluIGJvb2xlYW4gZXhwcmVzc2lvbnMsIGFuZABvdGhlcndpc2UgbWVhbnMgJ3VuZGVmaW5lZCcuAD4gP3p4YyAgLS0gbm90IGRlZmluZWQsIHNvIG5pbAA+ID96eGMgYW5kIHRydWUAbmlsLCB1bnJlZmVyZW5jZWQgdmFyaWFibGVzIGFyZQBhdXRvbWF0aWNhbGx5IGdhcmJhZ2UgY29sbGVjdGVkLgA+IGE9bmlsIC0tIHdpbGwgYmUgY29sbGVjdGVkLgB0eXBlcwCAIHR5cGUodikAcmV0dXJuIHRoZSB0eXBlIG9mIHZhcmlhYmxlIHYAYXMgYSBzdHJpbmc6ACBuaWwAIGJvb2xlYW4AIG51bWJlcgAgc3RyaW5nACBmdW5jdGlvbgAgdGFibGUAgCBzZWUgYWxzbzoAbnVtYmVycyBzdHJpbmdzIHRhYmxlcwCAIGtleXdvcmQ6IGxvY2FsAGRlY2xhcmUgYSB2YXJpYWJsZSBhcyBsb2NhbC4AdGhpcyBiaW5kcyB0aGUgc2NvcGUgb2YgdGhlAHZhcmlhYmxlIHRvIHRoZSBzYW1lIGJsb2NrAG9mIGNvZGUgaXQgd2FzIGRlZmluZWQgaW4uAGZ1bmN0aW9uIGZvbyh6KQAgIGxvY2FsIHkgPSB6IC0tIGxvY2FsIHRvIGZvbwAgIHkgPSB5ICsgMQAgIHJldHVybiB5AD9mb28oMTApIC0tIDExAD95IC0tIG5pbCEgdGhlcmUgaXMgbm8gZ2xvYmFsIHkuADwAPgA8PQA+PQA9PQB+PQAhPQBhbmQAb3IAbm90AGxvZ2ljAIAgbG9naWNhbCBleHByZXNzaW9ucyBpbiBsdWEAdGhlIGxvZ2ljYWwgb3BlcmF0b3JzIGFyZToAYW5kLCBvciwgYW5kIG5vdAA/NSA+IDMgYW5kIDUgPiA0IC0tIHRydWUAPzEgPiA1IGFuZCA1ID4gNCAtLSBmYWxzZQA/MSA+IDUgb3IgIDUgPiA0IC0tIHRydWUAP25vdCAoMSA+IDUpICAgICAtLSB0cnVlAG5pbCBpcyBjb25zaWRlcmVkIGZhbHNlLgByZWxhdGlvbmFsIG9wZXJhdG9yczoAPCA+IDw9ID49ID09IH49IChvciAhPSkAgCBhc3NpZ25tZW50OiA9AGdpdmUgdGhlIHZhcmlhYmxlIG9uIGxocwB0aGUgdmFsdWUgb2YgdGhlIHJocy4APiB4ID0gMys1AD4gP3gAZGF0YQBtZW0AgCBtZW1vcnkgJiBkYXRhIGFwaSBmdW5jdGlvbnMAcGVlayBwb2tlIG1lbXNldCBtZW1jcHkAcmVsb2FkIGNzdG9yZSBzY29yZXN1YgBjYXJ0ZGF0YSBkZ2V0IGRzZXQAgCBzZngobixbY2hhbl0sW29mZnNldF0sW2xlbl0pAHBsYXkgc2Z4IG4gKDAuLjYzKQBvZmZzZXQgYW5kIGxlbiBzcGVjaWZ5IHRoZSBzdGFydABwb3NpdGlvbiBhbmQgZHVyYXRpb24sIGFuZCBhcmUAZ2l2ZW4gaW4gbnVtYmVyIG9mIG5vdGVzLgBjaGFuICAgOiB0aGUgY2hhbm5lbCB0byBwbGF5IG9uAGNoYW4gLTE6IHVzZSBhbiB1bnVzZWQgY2hhbm5lbABjaGFuIC0yOiBzdG9wIHNmeCBuIG9uIGFsbCBjaGFucwCAIG11c2ljKHAsW2ZhZGVfbGVuXSxbbWFza10AcGxheSBtdXNpYyBzdGFydGluZyBmcm9tIHBhdHRlcm4AcC4gdXNlIHAgLTEgdG8gc3RvcCBhbnkgbXVzaWMuAGZhZGVfbGVuIGlzIGdpdmVuIGluIG1zICgxMDAwIGlzAG9uZSBzZWNvbmQpLiBtYXNrIGlzIGEgYml0ZmllbGQAdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGNoYW5uZWxzAHRvIHJlc2VydmUgZm9yIG11c2ljLgBidG4AgCBidG4oW2JdLCBbcGxdKQBnZXQgYnV0dG9uIGIgc3RhdGUgZm9yIHBsYXllciBwbABvciBwbGF5ZXIgMCB3aGVuIHBsIGlzIG5vdCBnaXZlbgBiIGlzIGEgYnV0dG9uIGluZGV4OgAwOosgMTqRIDI6lCAzOoMgNDqOIDU6lyAAYnRuKCkgcmV0dXJucyBhIGJpdGZpZWxkIGZvcgBwbGF5ZXIgMCBhbmQgMQBnbHlwaHMAgCBnbHlwaCB2YWx1ZXMAZ2x5cGhzICgngC4umScpIGNhbiBiZSB1c2VkAGFzIHBhcnQgb2YgcmVndWxhciB2YXJpYWJsZQBuYW1lcywgYnV0IHNpbmdsZSBjaGFyYWN0ZXIAZ2x5cGhzIGFyZSBhbHNvIGFzc2lnbmVkIHNwZWNpYWwAdmFsdWVzIG9uIGJvb3Q6AIAgYnV0dG9ucwCLOjAgkToxIJQ6MiCDOjMgjjo0IJc6NQCAIGZpbGwgcGF0dGVybnMgLy8gZmlsbHAolSkAgIGChIWGh4iJioyNkJKTlQBzZWUgYWxzbzogYnRuIGJ0bnAgZmlsbHAAYnRucACAIGJ0bnAoW2JdLCBbcGxdKQByZXR1cm5zIHRydWUgd2hlbiBidXR0b24gYiB3YXMAcHJlc3NlZCBieSBwbGF5ZXIgcGwgKDAuLjcpLgBwbCBkZWZhdWx0cyB0byAwIHdoZW4gbm90IGdpdmVuLgBidG5wIHJlcGVhdHMgZXZlcnkgbiBmcmFtZXM6ADB4NWY1YyBpbml0aWFsIGRlbGF5IChkZWY6IDE1KQAweDVmNWYgcmVwZWF0IGRlbGF5ICAoZGVmOiAgNCkAYnRucCBvbmx5IHdvcmtzIHdoZW4gdXNlZCBmcm9tAGluc2lkZSBfdXBkYXRlKigpLCBfZHJhdygpLCBvcgBiZXR3ZWVuIGNhbGxzIHRvIGZsaXAoKS4AaGVscABtYW4AdG9waWMAdG9waWNzAIAgaGVscCBjb21tYW5kAHR5cGUgaGVscCBbdG9waWNdIGZvciBoZWxwAHRvcGljcyBhcmUgc2hvd24gaW4gYmx1ZS4AcHJlc3MgY3RybC11IGluIHRoZSBjb2RlIGVkaXRvcgBmb3IgaGVscCBvbiB3aGF0ZXZlciBpcyB1bmRlcgB0aGUgY3Vyc29yLgCAIG1haW4gdG9waWNzAGdmeCBkYXRhIGF1ZGlvIHN5c3RlbSBtYXRoIGx1YQBtYXRoAG1hdGhzAIAgbWF0aCBmdW5jdGlvbnMgYW5kIG9wZXJhdG9ycwBjb3Mgc2luIGF0YW4yIHNxcnQgc3JhbmQgcm5kAG1heCBtaW4gbWlkIGZsciBjZWlsIHNnbiBhYnMAYm5vdCBiYW5kIGJvciBieG9yAHNobCBzaHIgbHNociByb3RsIHJvdHIAgCBleHRyYSBtYXRoIHRvcGljcwBudW1iZXJzIGJpbmFyeSBoZXggYml0ZmllbGRzAGNvcwBzaW4AgCBjb3MoYSkgIHNpbihhKQBnaXZlcyB0aGUgY29zaW5lIGFuZCBzaW5lIG9mIGEsAHdoZXJlIDEuMCBtZWFucyBvbmUgZnVsbCB0dXJuLgB4LHkAeCtjb3MoYSksIHkrc2luKGEpADAuMAAwLjI1ADAuNQAwLjc1AHNpbihhKSBpcyBpbnZlcnRlZCB0byBzdWl0AHNjcmVlbnNwYWNlOyBvbmUgZnVsbCB0dXJuIG9mAGEgZnJvbSAwLi4xIHN0YXJ0cyBvbiB0aGUgcmlnaHQAYW5kIGdvZXMgYW50aWNsb2Nrd2lzZS4AYXRhbjIAgCBhdGFuKGR4LCBkeSkAY29udmVydHMgZHgsIGR5IGludG8gYW4gYW5nbGUAYmV0d2VlbiAwLi4xLiBhcyB3aXRoIGNvcygpIGFuZABzaW4oKSwgdGhlIGFuZ2xlIGlzIHRha2VuIHRvIHJ1bgBhbnRpY2xvY2t3aXNlIGluIHNjcmVlbnNwYWNlLgB4K2R4LCB5K2R5AGFuZ2xlID0gYXRhbjIoZHgsIGR5KSAgLS0gMC4xMjUAc3FydACAIHNxcnQoeCkAcmV0dXJuIHRoZSBzcXVhcmUgcm9vdCBvZiB4AHJuZACAIHJuZChbeF0pACAgIHJuZCh7dGJsfSkAcmV0dXJuIGEgcHNldWRvLXJhbmRvbSBudW1iZXIAZnJvbSAwIHVwIHRvIGJ1dCBub3QgaW5jbHVkaW5nAHgsIHdoaWNoIGRlZmF1bHRzIHRvIDEAd2hlbiBhIHRhYmxlIGlzIGdpdmVuLCBhIHJhbmRvbQBpdGVtIGZyb20gdGFibGUgaXMgcmV0dXJuZWQuAHNyYW5kAIAgc3JhbmQoeCkAc2VlZCB0aGUgcm5kKCkgbnVtYmVyIGdlbmVyYXRvcgB3aXRoIHguIHRoZSBzZXF1ZW5jZSBvZiByZXN1bHRzAGZyb20gcm5kKCkgd2lsbCBiZSB0aGUgc2FtZQBmb2xsb3dpbmcgYSBjYWxsIHRvIHNyYW5kIHdpdGgAdGhlIHNhbWUgc2VlZC4AbWF4AG1pbgCAIG1heChhLGIpIG1pbihhLGIpIG1pZChhLGIsYykAZ2l2ZSB0aGUgbWF4aW11bSwgbWluaW11bSBvZgAyIHZhbHVlcywgb3IgdGhlIG1pZGRsZSBvZgAzIHZhbHVlcy4gbWlzc2luZyBhcmd1bWVudHMAYXJlIHRyZWF0ZWQgYXMgMC4AP21heCgzLCAyMCkgICAtLSAyMAA/bWlkKDYsIDcsIDQpIC0tIDYAP21pbig4KSAgICAgICAtLSAwAGZscgBjZWlsAIAgZmxyKHgpIGNlaWwoeCkAcm91bmQgZG93biBvciB1cCB0byB0aGUgY2xvc2VzdABpbnRlZ2VyLiBmbHIoeCkgaXMgc2ltaWxhciB0bwB1c2luZyBpbnRlZ2VyIGRpdmlzaW9uIGJ5IG9uZSwAb3Igc3RyaXBwaW5nIGZyYWN0aW9uYWwgYml0czoAPyA0LjEgXCAxICAgICAgLS0+IDQAPyA0LjEgJiAweGZmZmYgLS0+IDQAPyBmbHIoNC4xKSAgICAgLS0+IDQAPyBmbHIoLTIuMykgICAgLS0+IC0zAD8gY2VpbCg0LjEpICAgIC0tPiA1AHNnbgCAIHNnbih4KQByZXR1cm5zIC0xIHdoZW4geCA8IDAsAGFuZCAxIG90aGVyd2lzZQBub3RlIHRoYXQgc2duKDApIGlzIDEsIG5vdCAwLgBhYnMAgCBhYnMoeCkAcmV0dXJuIHRoZSBhYnNvbHV0ZSAocG9zaXRpdmUpAHZhbHVlIG9mIHg6AD8gYWJzKC0zKSAgIC0tPiAzAD8gYWJzKDQpICAgIC0tPiA0AHRoZSBvbmUgZXhjZXB0aW9uIGlzIGZvcgBhYnMoLTMyNzY4KSwgd2hpY2ggZG9lcyBub3QAaGF2ZSBhIG1hdGNoaW5nIHBvc2l0aXZlIHZhbHVlLABzbyAweDdmZmYuZmZmZiBpcyByZXR1cm5lZC4AYm5vdACAIGJub3QoeCkAICAgfngAYmluYXJ5IG5vdC4gZWFjaCBiaXQgaW4gdGhlAHJldHVybiB2YWx1ZSBpcyBzZXQgd2hlbiB0aGUAY29ycmVzcG9uZGluZyBiaXQgaW4geCBpcyBub3QAc2V0LgBpbiBvdGhlciB3b3JkcywgZmxpcCBhbGwgb2YgdGhlAGJpdHMgaW4geC4APiA/dG9zdHIofjB4ZmYwMC4wMGZlLCAxKQAweDAwZmYuZmYwMQB3aGVuIHVzZWQgd2l0aCB0d28gb3BlcmFuZHMgKGUuZwB4fnkpLCB+IG1lYW5zIHhvci4gc2VlOiBieG9yAGJhbmQAJgAmPQCAIGJhbmQoeCwgeSkAICAgeCAmIHkAYmluYXJ5IGFuZC4gZWFjaCBiaXQgaW4gdGhlAGNvcnJlc3BvbmRpbmcgYml0cyBpbiB4IGFuZAB5IGFyZSBib3RoIHNldC4AdHJ1dGggdGFibGUgICAgICAgfCAgMCAgfCAgMSAgACAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLQAgICAgICAgICAgICAgICAgMCB8ICAwICB8ICAwICAAICAgICAgICAgICAgICAgIDEgfCAgMCAgfCAgMSAgAD4gP3Rvc3RyKDB4ZjBmICYgMHgxMjMsIDEpADB4MDEwMy4wMDAwAGJvcgB8AHw9AIAgYm9yKHgsIHkpACAgIHggfCB5AGJpbmFyeSBvci4gZWFjaCBiaXQgaW4gdGhlAGNvcnJlc3BvbmRpbmcgYml0IGluIGVpdGhlcgB4IG9yIHkgaXMgc2V0LgAgICAgICAgICAgICAgICAgMCB8ICAwICB8ICAxICAAICAgICAgICAgICAgICAgIDEgfCAgMSAgfCAgMSAgAD4gP3Rvc3RyKDB4ZjBmIHwgMHgwZjAsIDEpADB4MGZmZi4wMDAwAGJ4b3IAXl4AgCBieG9yKHgsIHkpACAgIHggfiB5ACAgIHggXl4geSAgICAgLS0gbGVnYWN5AGJpbmFyeSBleGNsdXNpdmUgb3IuIGVhY2ggYml0AGluIHRoZSByZXR1cm4gdmFsdWUgaXMgc2V0IHdoZW4AZWl0aGVyIG9mIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMAaW4geCBvciB5IGFyZSBzZXQsIGJ1dCBub3QgYm90aC4AaW4gb3RoZXIgd29yZHMsIGZvciBlYWNoIGJpdCBzZXQAc2V0IGluIHgsIGZsaXAgdGhhdCBiaXQgaW4geS4AICAgICAgICAgICAgICAgIDEgfCAgMSAgfCAgMCAgAD4gP3Rvc3RyKDB4ZjAwIH4gMHgxMjMsIDEpADB4MGUyMy4wMDAwAHNobAA8PAA8PD0AgCBzaGwoeCwgbikAICAgeCA8PCBuAHNoaWZ0IGxlZnQuIG1vdmUgYWxsIG9mIHRoZQBiaXRzIGluIHggbGVmdCBuIHBsYWNlcy4APiA/dG9zdHIoMHhmZi4wYyA8PCA4LCAxKQAweGZmMGMuMDAwMABzaHIAPj4APj49AIAgc2hyKHgsIG4pACAgIHggPj4gbgBhcml0aG1ldGljIHNoaWZ0IHJpZ2h0LiBtb3ZlIGFsbABiaXRzIGluIHggcmlnaHQgbiBwbGFjZXMuIHRoZQBsZWZ0LW1vc3QgYml0IGlzICdzdGlja3knLCBzbwB0aGF0IG5lZ2F0aXZlIHZhbHVlcyByZW1haW4AbmVnYXRpdmUuAD4gP3Rvc3RyKDB4ODBjYS5mZSA+PiA4LCAxKQAweGZmODAuY2FmZQBsc2hyAD4+PgA+Pj49ACAgIHggPj4+IG4AbG9naWNhbCBzaGlmdCByaWdodC4gbW92ZSBhbGwAYml0cyBpbiB4IHJpZ2h0IG4gcGxhY2VzLiB6ZXJvcwBjb21lIGluIGZyb20gdGhlIGxlZnQuAD4gP3Rvc3RyKDB4ODBjYS5mZSA+Pj4gOCwgMSkAMHgwMDgwLmNhZmUAcm90bAA8PD4APDw+PQCAIHJvdGwoeCwgbikAICAgeCA8PD4gbgByb3RhdGUgYml0cyBsZWZ0IG4gcGxhY2VzLgA+ID90b3N0cigweGNhZmUuZjAwZCA8PD4gNCwgMSkAMHhhZmVmLjAwZGMAcm90cgA+PjwAPj48PQCAIHJvdHIoeCwgbikAICAgeCA+PjwgbgByb3RhdGUgYml0cyByaWdodCBuIHBsYWNlcy4APiA/dG9zdHIoMHhjYWZlLmYwMGQgPj48IDQsIDEpADB4ZGNhZi5lZjAwAG51bWJlcnMAgCBudW1iZXJzAG51bWJlcnMgaW4gcGljby04IGFyZSAxNjoxNgBmaXhlZCBwb2ludC4gdGhpcyBtZWFucyB0aGF0ADE2IGJpdHMgYXJlIHVzZWQgZm9yIHRoZQBpbnRlZ2VyIHBhcnQsIGFuZCAxNiBmb3IgdGhlAGZyYWN0aW9uYWwgcGFydC4gdGhlIHJhbmdlIG9mAHBvc3NpYmxlIHZhbHVlcyBpczoALTMyNzY4LjAgdG8gMzI3NjcuOTk5OTkAbnVtYmVycyB3cml0dGVuIGluIGRlY2ltYWwgYXJlAHJvdW5kZWQgdG8gdGhlIGNsb3Nlc3QgZml4ZWQAcG9pbnQgdmFsdWUuIHRvIHNlZSB0aGUgcmF3IDMyLQBiaXQgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb246AD4gP3Rvc3RyKDEvNiwgMSkAMHgwMDAwLjJhYWEAaGV4AGhleGFkZWNpbWFsAIAgaGV4YWRlY2ltYWwAbnVtYmVycyBjYW4gYmUgd3JpdHRlbiBpbiBoZXgAYnkgcHJlZml4aW5nIHRoZW0gd2l0aCAiMHgiOgA+IHByaW50KDB4M2YpADYzAGhleGlkZWNpbWFsIG5vdGF0aW9uIGlzIGJhc2UtMTYAdXNpbmcgY2hhcmFjdGVyIGEuLmYgZm9yIHRoZQB2YWx1ZXMgMTAuLjE1LiBpbiB0aGUgZXhhbXBsZQBhYm92ZSwgMHgzMCBtZWFucyA0OCAoMyoxNikgYW5kAHRoZSBmIG1lYW5zIDE1LCBzbyB0aGUgcmVzdWx0IGluAGRlY2ltYWwgaXM6IDQ4ICsgMTUgLT4gNjMuAHRvIGNvbnZlcnQgZnJvbSBkZWNpbWFsIHRvIGhleDoAPiBwcmludCh0b3N0cig2MywgMSkpADB4MDAzZi4wMDAwIC0tIGFsbCAzMiBiaXRzIHNob3duAGJpbmFyeQCAIGJpbmFyeQBudW1iZXJzIGNhbiBiZSB3cml0dGVuIGluIGJpbmFyeQBmb3JtIGJ5IHByZWZpeGluZyB0aGVtIHdpdGggIjBiIgA+IHByaW50KDBiMTAwMS4wMSkAOS4yNQA4ICB8ICA0ICB8ICAyICB8ICAxICB8IDEvMiB8IDEvNAAtLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLQAxICB8ICAwICB8ICAwICB8ICAxICB8ICAwICB8ICAxIABpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIGZpcnN0ADEgaXMgaW4gdGhlICI4cyIgY29sdW1uLCBzbyB0aGUAaW50ZWdlciBwYXJ0IGlzIDgrMSA9IDkuIGFmdGVyAHRoZSBkZWNpbWFsIHBvaW50LCBlYWNoIDEgbWVhbnMAMS8yLCAxLzQsIC4uLiAxLzY1NTM2LiBpbiB0aGlzAGNhc2UgdGhlIG9ubHkgMSBpcyBpbiB0aGUgMS80dGhzAGNvbHVtbiwgc28gdGhlIHJlc3VsdCBpcyA5LjI1AGJpdGZpZWxkAGJpdGZpZWxkcwCAIGJpdGZpZWxkcwBiaXRmaWVsZHMgYXJlIG51bWJlcnMgd2hlcmUgZWFjaABlYWNoIGJpdCBoYXMgYmVlbiBhc3NpZ25lZCBhAHBhcnRpY3VsYXIgbWVhbmluZy4gcGljby04IHVzZXMAYml0ZmllbGRzIGZvciB0aGUgc3ByaXRlIGZsYWdzLABhbmQgc29tZXRpbWVzIGFzIHBhcmFtZXRlcnMgYW5kAHJldHVybiB2YWx1ZXMgZm9yIGFwaSBmdW5jdGlvbnMuAHRvIGNvbnN0cnVjdCBhIGJpdGZpZWxkLCB5b3UgY2FuAGJvcigpIHRoZSBzZXBhcmF0ZSBiaXRzIHRvZ2V0aGVyAGFuZCB0aGVuIHRlc3QgaWYgZWFjaCBiaXQgKGZsYWcpAGlzIHNldCB1c2luZyBiYW5kKCk6AD4gZmxhZ3MgPSA4fDEgLS1zZXQgYml0cyAzIGFuZCAwAD4gPyhmbGFncyAmIDgpID4gMCAtLWNoZWNrIGJpdCAzAHNlZSBhbHNvOiBiaW5hcnkgYm9yIGJhbmQAKwArPQAtPQCAIG9wZXJhdG9yOiArIC0gKz0gLT0AYWRkLCBzdWJ0cmFjdC4APiA/Mys0AD4geD03AD4geC09MgB3aGVuIHRoZSByZXN1bHQgaXMgZ3JlYXRlciB0aGFuADB4N2ZmZi5mZmZmLCB0aGUgcmVzdWx0IGxvb3BzOgA+ID8weDdmZmYgKyAxAC0zMjc2OAAqPQAvPQCAIG9wZXJhdG9yczogKiAvICo9IC89AG11bHRpcGx5IHR3byBudW1iZXJzLCBvciBkaXZpZGUAb25lIGJ5IHRoZSBvdGhlci4APiA/Myo0ADEyAD4geD04AD4geC89NAB0aGUgcmVzdWx0cyBvZiBtdWx0aXBseSBvdmVyZmxvdwBidXQgdGhlIHJlc3VsdHMgb2YgZGl2aWRlIGFyZQBjbGFtcGVkIHRvIC0zMjc2OC4uMHg3ZmZmLmZmZmY6AD4gP3Rvc3RyKDUwMCAvIDAsIDEpADB4N2ZmZi5mZmZmAFwAXD0AgCBpbnRlZ2VyIGRpdmlkZSBvcGVyYXRvcjogXABnaXZlcyB0aGUgc2FtZSByZXN1bHQgYXMgYQByZWd1bGFyIGRpdmlkZSByb3VuZGVkIGRvd24uAD4gPzlcMiAtLSBzYW1lIGFzIGZscig5LzIpAD4geCA9IDE2AD4geCBcPSAzACUAJT0AgCBtb2R1bG8gb3BlcmF0b3I6ICUgJT0AeCAlIHkgbWVhbnM6IGtlZXAgYWRkaW5nIHkAb3Igc3VidHJhY3RpbmcgeSBmcm9tIHggdW50aWwAMCA8PSB4IDwgeS4APiA/IDE1ICUgNABmb3IgcG9zaXRpdmUgbnVtYmVycywgdGhpcyBpcwB0aGUgc2FtZSBhcyBkaXZpbmcgeCBieSB5IGFuZAB5IGFuZCByZXR1cm5pbmcgdGhlIHJlbWFpbmRlci4AbW9kdWxvIGlzIHVzZWZ1bCB3aGVuZXZlciB5b3UAeW91IG5lZWQgdG8gd3JhcCBhIG51bWJlciB0bwBhIHBhcnRpY3VsYXIgcmFuZ2UuIGZvciBleGFtcGxlOgBmbHIodCgpJTMpIC0tIDAgMSAyIDAgMSAyIC4uAHNlZSBhbHNvOiBwZWVrMiAoZS5nLiAlbWVtX2FkZHIpAF4AXj0AgCBleHBvbmVudCBvcGVyYXRvcjogXiBePQB4IF4geSBnaXZlcyB4IHRvIHRoZSBwb3dlciBvZiB5LgB5IGNhbiBiZSBmcmFjdGlvbmFsLgA+ID81IF4gMyAgLS0gIHNhbWUgYXMgNSo1KjUAMTI1AD4gPzE2IF4gMC41AG5vdGU6IHheeSBtZWFucyBiaXR3aXNlIHhvciBpbgBvdGhlciBsYW5ndWFnZXMhIGluIHBpY28tOCBsdWEsAHhvciBpcyB4fnkgKG9yIGxlZ2FjeTogeF5eeSkALi49AIAgc3RyaW5nIGpvaW4gb3BlcmF0b3I6IC4uIC4uPQBvcGVyYW5kcyBjYW4gYWxzbyBiZSBub24tc3RyaW5nAHZhcmlhYmxlcywgYW5kIGFyZSBhdXRvbWF0aWNhbGx5AGNvbnZlcnRlZCB0byBjb21wbGV0ZSB0aGUgam9pbi4APiA/ImhlbGxvICIuLiJ3b3JsZCIAaGVsbG8gd29ybGQAPiB4ID0gNQA+ID8ieCBpczogIi4ueAB4IGlzIDUALi4uAIAgYXJndW1lbnRzOiAuLi4ALi4uIG1lYW5zICdyZW1haW5pbmcgYXJndW1lbnRzJwBmdW5jdGlvbiBwcmludF9hbGwoLi4uKQAgYT17Li4ufQAgZm9yZWFjaChhLCBwcmludCkAcHJpbnRfYWxsKDEsMiwzKQBzZWUgYWxzbzogc2VsZWN0IHBhY2sgdW5wYWNrAHNlbGVjdAB1bnBhY2sAcGFjawCAIHNlbGVjdCguLi4sIG4pACAgIHBhY2soLi4uKQAgICB1bnBhY2sodGJsKQBmdW5jdGlvbnMgZm9yIGRlYWxpbmcgd2l0aCBhAHZhcmlhYmxlIG51bWJlciBvZiBhcmd1bWVudHMuAHNlbGVjdCByZXR1cm5zIGEgZ2l2ZW4gYXJndW1lbnQuAHBhY2sgY29udmVydHMgYW55IG51bWJlciBvZgBhcmd1bWVudHMgaW50byBhIHRhYmxlLCBhbmQAdW5wYWNrIGJhY2sgaW50byByZXR1cm4gdmFsdWVzLgBmdW5jdGlvbiBmb28oYSwgLi4uKQAgID8iYXJnMjoiLi5zZWxlY3QoMSwuLi4pACAgLS0gcmV0dXJuIGFsbCBidXQgZmlyc3QgYXJnACAgcmV0dXJuIHBhY2soLi4uKQBiID0gZm9vKHVucGFja3sxLDIsM30pIC0tIHsyLDN9AHN5c3RlbQCAIHN5c3RlbSBhcGkgZnVuY3Rpb25zAHJ1biBzdG9wIHJlc2V0IHlpZWxkIHRpbWUAbWVudWl0ZW0gc3RhdCBzZXJpYWwgZXh0Y21kAGNvY3JlYXRlIGNvcmVzdW1lIGNvc3RhdHVzAIAgc3lzdGVtIGNvbW1hbmRzAGxvYWQgc2F2ZSBpbXBvcnQgZXhwb3J0IGluZm8AcmVzdW1lIGZvbGRlciBzaHV0ZG93biByZWJvb3QAc3Bsb3JlIGJhY2t1cCBsb2dpbiBsb2dvdXQAgCBjYWxsYmFja3MAX2luaXQgX2RyYXcgX3VwZGF0ZSBfdXBkYXRlNjAAgCBpbnB1dABfaW5pdAAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tAIAgX2luaXQoKQB3aGVuIF9pbml0IGlzIGRlZmluZWQsIGl0IGlzAGNhbGxlZCBvbmNlIGJlZm9yZSBlbnRlcmluZyB0aGUAbWFpbiBfdXBkYXRlIC8gX2RyYXcgbG9vcC4AX2RyYXcAgCBfZHJhdygpAHdoZW4gX2RyYXcgaXMgZGVmaW5lZCBpbiBhAHByb2dyYW0sIGl0IGlzIGNhbGxlZCBvbmNlAHBlciBmcmFtZS4gdGhpcyBjb3VsZCBiZSAxNSwAMzAgb3IgNjAgdGltZXMgcGVyIHNlY29uZC4AdGhlIGNvbnRlbnRzIG9mIHRoZSB2aWRlbwBtZW1vcnkgaXMgZGlzcGxheWVkIG9uY2UgX2RyYXcAcmV0dXJucyAtLSB0aGVyZSBpcyBubyBuZWVkIHRvAGV4cGxpY2l0bHkgY2FsbCBmbGlwKCkuAF91cGRhdGUAX3VwZGF0ZTYwAIAgX3VwZGF0ZSgpIF91cGRhdGU2MCgpAHdoZW4gX3VwZGF0ZSBvciB1cGRhdGU2MCBpcwBkZWZpbmVkLCBpdCBpcyBjYWxsZWQgYXQgMzAgb3IANjAgdGltZXMgcGVyIHNlY29uZCByZWdhcmRsZXNzAG9mIHRoZSBmcmFtZXJhdGUgKHByb3ZpZGVkAHRoZXJlIGlzIHN1ZmZpY2llbnQgY3B1IHRvAGRvIHNvKS4AZ2Z4AIAgZ2Z4IGFwaSBmdW5jdGlvbnMAY2FtZXJhIGNsaXAgY2xzIGNvbG9yIHBhbCBwYWx0AGZpbGxwIGZsaXAgbGluZSByZWN0IHJlY3RmaWxsAHJyZWN0IHJyZWN0ZmlsbCBvdmFsIG92YWxmaWxsAGNpcmMgY2lyY2ZpbGwgcGdldCBwc2V0AHByaW50IHByaW50aCBjdXJzb3IAbWFwIG1nZXQgbXNldCBmZ2V0IGZzZXQgdGxpbmUAc3ByIHNzcHIgc2dldCBzc2V0AGZsaXAAgCBmbGlwKCkAZmxpcCB0aGUgYmFjayBwYWdlIHRvIHRoZSBzY3JlZW4AYW5kIHN0YXJ0IHRoZSBuZXh0IGZyYW1lLgBub3RlIHRoYXQgcHJvZ3JhbXMgdGhhdCBoYXZlIGEAX2RyYXcoKSBmdW5jdGlvbiBkbyBub3QgbmVlZCB0bwBjYWxsIGZsaXAoKS4ALS0gZHJhdyBvbmUgc3RhciBwZXIgZnJhbWUAZm9yIGk9MSwxMDAgZG8AID8ikiIscm5kKDEyOCkscm5kKDEyOCkscm5kKDE2KQAgZmxpcCgpAGNhbWVyYQCAIGNhbWVyYSh4LCB5KQBzZXQgYSBzY3JlZW4gb2Zmc2V0IG9mIC14LCAteQBmb3IgYWxsIGRyYXdpbmcgb3BlcmF0aW9ucy4AY2FtZXJhKCkgdG8gcmVzZXQAY2xpcACAIGNsaXAoeCwgeSwgdywgaCwgW2NsaXBfb2xkXSkAc2V0cyB0aGUgY2xpcHBpbmcgcmVjdGFuZ2xlIGluAHBpeGVscy4gd2hlbiBjbGlwX29sZCBpcyB0cnVlLABjbGlwIHRoZSBuZXcgY2xpcHBpbmcgcmVjdGFuZ2xlAGJ5IHRoZSBleGlzdGluZyBvbmUuAGNscwCAIGNscyhbY29sXSkAY2xlYXIgdGhlIHNjcmVlbiBhbmQgcmVzZXQgdGhlAGNsaXBwaW5nIHJlY3RhbmdsZS4gY29sIGRlZmF1bHRzAHRvIGJsYWNrLgBjb2xvcgCAIGNvbG9yKFtjb2xdKQBzZXQgdGhlIGN1cnJlbnQgY29sb3VyIHVzZWQgYnkAZHJhd2luZyBmdW5jdGlvbnMuIGlmIGNvbCBpcwBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byA2LgB3aGVuIGEgZmlsbCBwYXR0ZXJuIGlzIGRlZmluZWQAdXNpbmcgZmlsbHAoKSwgYSBzZWNvbmQgY29sb3VyAGlzIG5lZWRlZCBhbmQgY2FuIGJlIHNwZWNpZmllZABpbiB0aGUgaGlnaCA0IGJpdHM6AGNvbG9yKDB4ODcpIC0tIHJlZCBhbmQgd2hpdGUAdGhlIGZpbGwgcGF0dGVybiBpdHNlbGYgY2FuIGFsc28AYmUgc3BlY2lmaWVkIGluIGNvbG91ciBhcmd1bWVudHMAKHNlZSB0aGUgbWFudWFsIGZvciBkZXRhaWxzKS4AcGFsAHBhbGV0dGUAgCBwYWwoYzAsIGMxLCBbcF0pAG1hcCBjb2xvdXIgYzAgdG8gYzEgZm9yIHBhbCBwOgAwIGRyYXcgcGFsZXR0ZSAoZGVmYXVsdCkAMSBkaXNwbGF5IHBhbGV0dGUAMiBzZWNvbmRhcnkgcGFsZXR0ZQB1c2UgcGFsKCkgdG8gcmVzZXQuACUyZABwYWx0AIAgcGFsdChjLCB0KQBzZXQgdGhlIHRyYW5zcGFyZW5jeSBmb3IgY29sb3VyAGMgdG8gdCAoYm9vbGVhbikuIHRyYW5zcGFyZW5jeQBpcyBvYnNlcnZlZCBieSBzcHIoKSwgc3NwcigpLABtYXAoKSBhbmQgdGxpbmUoKS4AcGFsdCgpIHRvIHJlc2V0IHRvIGRlZmF1bHRzLgB3aGVuIGEgc2luZ2xlIG51bWJlciBhcmd1bWVudABpcyBnaXZlbiwgaXQgaXMgdGFrZW4gdG8gYmUgYQBiaXRmaWVsZCBvZiBhbGwgMTYgdHJhbnNwYXJlbmN5AHZhbHVlcyBzdGFydGluZyBmcm9tIGhpZ2ggYml0cy4ALS0gbWFrZSBjb2xzIDAuLjMgdHJhbnNwYXJlbnQ6AHBhbHQoMHhmMDAwKQAtLSBtYWtlIGNvbG91ciA4IHRyYW5zcGFyZW50OgBwYWx0KDgsIHRydWUpAGZpbGxwAIAgZmlsbHAocCkAcCBpcyBhIGJpdGZpZWxkIHRoYXQgc3BlY2lmaWVzAGEgNFg0IGZpbGwgcGF0dGVybiBvYnNlcnZlZCBieQBjaXJjKigpLCByZWN0KigpLCBvdmFsKigpLCBwc2V0AGFuZCBsaW5lKCkuIGJpdCAweGIuMSBpbmRpY2F0ZXMAdHJhbnNwYXJlbmN5LiB0aGUgMTYgYml0IGxheW91dDoAIDB4ODAwMCAweDQwMDAgMHgyMDAwIDB4MTAwMAAgIDB4ODAwICAweDQwMCAgMHgyMDAgIDB4MTAwACAgIDB4ODAgICAweDQwICAgMHgyMCAgIDB4MTAAICAgIDB4OCAgICAweDQgICAgMHgyICAgIDB4MQAgZmlsbHAoMHg4NDIxKSAgZmlsbHAoMHg1MGEwKQAgZmlsbHAohSkgZmlsbHAohykgZmlsbHAolikAbGluZQCAIGxpbmUoeDAsIHkwLCBbeDEsIHkxLF0gW2NvbF0pAGRyYXcgYSBsaW5lIGZyb20gKHgwLHkwKSB0bwAoeDEseTEpLiB3aGVuIHgxLHkxIGFyZSBub3QsAGdpdmVuLCB0aGUgZW5kIG9mIHRoZSBsYXN0IGRyYXduAGxpbmUgaXMgdXNlZC4AcmVjdAByZWN0ZmlsbACAIHJlY3QgICAgKHgwLHkwLHgxLHkxLFtjb2xdKQAgICByZWN0ZmlsbCh4MCx5MCx4MSx5MSxbY29sXSkAZHJhdyBhIHJlY3RhbmdsZSBvciBmaWxsZWQAcmVjdGFuZ2xlIHdpdGggcG9pbnRzIGF0AG9wcG9zaXRlIGNvcm5lcnMgZ2l2ZW4gYnkAKHgwLHkwKSwgKHgxLHkxKS4AcnJlY3QAcnJlY3RmaWxsAIAgcnJlY3QgICAgKHgseSx3LGgsW3JdLFtjb2xdKQAgICBycmVjdGZpbGwoeCx5LHcsaCxbcl0sW2NvbF0pAHJlY3RhbmdsZSBvZiBzaXplIHcgWCBoLCB3aXRoAHJvdW5kZWQgY29ybmVycyBvZiByYWRpdXMgci4Ab3ZhbABvdmFsZmlsbACAIG92YWwgICAgKHgwLHkwLHgxLHkxLFtjb2xdKQAgICBvdmFsZmlsbCh4MCx5MCx4MSx5MSxbY29sXSkAZHJhdyBhbiBlbGxpcHNvaWQgYm91bmRlZCBieQB0aGUgZ2l2ZW4gcmVjdGFuZ2xlLgBjaXJjAGNpcmNmaWxsAIAgY2lyYyAgICAoeCwgeSwgciwgW2NvbF0pACAgIGNpcmNmaWxsKHgsIHksIHIsIFtjb2xdKQBkcmF3IGEgY2lyY2xlIGF0ICh4LHkpIHdpdGggYQByYWRpdXMgb2Ygci4gd2hlbiBhIG5lZ2F0aXZlAHJhZGl1cyBpcyBnaXZlbiwgbm90aGluZyBpcwBkcmF3bi4AbWFwAIAgbWFwKFt0eCwgdHldLCBbc3gsIHN5XSwAICAgW3R3LCB0aF0sIFtsYXllcnNdAGRyYXcgdGhlIG1hcCBmcm9tIHRpbGUgdHgsIHR5AGF0IHNjcmVlbiBwb3NpdGlvbiBzeCwgc3kuAHR3LHRoIGdpdmVzIHRoZSB3aWR0aCBhbmQgaGVpZ2h0AHRvIGRyYXcgaW4gdGlsZXMuAGxheWVycyBpcyBhIGJpdGZpZWxkIHRoYXQgbWVhbnMAb25seSBzcHJpdGVzIHdpdGggdGhlIG1hdGNoaW5nAHNwcml0ZSBmbGFncyBzaG91bGQgYmUgZHJhd24uAHNwcml0ZSAwIGlzIG5vdCBkcmF3biB1bmxlc3MgdGhlAGJpdCBhdCAweDVmMzYgJiAweDggaXMgc2V0LgBtZ2V0AG1zZXQAgCBtZ2V0KHgseSkAICAgbXNldCh4LHksdmFsKQBnZXQgb3Igc2V0IHRoZSB2YWx1ZSBvZiB0aGUgbWFwAHRpbGUgYXQgeCx5LiB3aGVuIHgseSBpcyBvdXRzaWRlAHRoZSBtYXAgYXJlYSwgbWdldCByZXR1cm5zIDAuAGZnZXQAZnNldACAIGZnZXQobiwgW2ZdKQAgICBmc2V0KG4sIGJpdGZpZWxkKQAgICBmc2V0KG4sIGYsIHZhbCkAZ2V0IG9yIHNldCB0aGUgdmFsdWUgb2YgYSBzcHJpdGUAZmxhZyBmIGZvciBzcHJpdGUgbi4gd2hlbiBmIGlzAG9taXR0ZWQsIGFsbCBmbGFncyBhcmUgcmV0cmlldmVkAC9zZXQgYXMgYSBzaW5nbGUgOC1iaXQgYml0ZmllbGQuAGV4YW1wbGVzIHVzaW5nIHNwcml0ZSAyOgBmc2V0KDIsIDQsIHRydWUpIC0tIHNldCBmbGFnIDQAZnNldCgyLCAweGIpICAtLSBzZXQgZmxhZ3MgMCwxLDMAP2ZnZXQoMiwgMykgICAtLSB0cnVlAGluaXRpYWwgc3ByaXRlIGZsYWcgc3RhdGVzIGNhbgBiZSBzZXQgaW4gdGhlIHNwcml0ZSBlZGl0b3IuAHRsaW5lAIAgdGxpbmUoeCwgeSwgeDEsIHkxLCBteCwgbXksACAgIFttZHgsIG1keV0sIFtsYXllcnNdKQBkcmF3IGEgdGV4dHVyZWQgbGluZSBmcm9tICh4LHkpAHRvICh4MSx5MSksIHNhbXBsaW5nIGNvbG91cnMAZnJvbSB0aGUgbWFwIGF0IGVhY2ggcG9pbnQuAHdoZW4gbGF5ZXJzIGlzIGdpdmVuLCBvbmx5IHRpbGVzAHdpdGggbWF0Y2hpbmcgZmxhZ3MgYXJlIGRyYXduLgBteCxteSBhcmUgbWFwIGNvb3JkcyBnaXZlbiBpbgB0aWxlcyBhbmQgaW5jcmVtZW50ZWQgYnkgbWR4LABtZHkgYWZ0ZXIgZWFjaCBwaXhlbCBpcyBkcmF3bi4AZHJhdyBzdGF0ZToAMHg1ZjM4OiBsb29wIHdpZHRoIGluIHRpbGVzADB4NWYzOTogbG9vcCBoZWlnaHQgaW4gdGlsZXMAMHg1ZjNhOiBvZmZzZXQgeCBpbiB0aWxlcwAweDVmM2I6IG9mZnNldCB5IGluIHRpbGVzADB4NWYzNiYweDg6IGRyYXcgc3ByaXRlIDAAc3ByAIAgc3ByKG4sIHgsIHksIFt3LCBoXSwAICAgW2ZsaXBfeF0sIFtmbGlwX3ldAGRyYXcgc3ByaXRlIG4gYXQgeCwgeQB3ICh3aWR0aCkgYW5kIGggKGhlaWdodCkgYXJlIDEAYnkgZGVmYXVsdCwgYW5kIHNwZWNpZnkgaG93IG1hbnkAOHg4IHNwcml0ZXMgdG8gZHJhdy4AY29sb3IgMCBpcyBub3QgZHJhd24gYnkgZGVmYXVsdAAoaGVscCBwYWx0IGZvciBtb3JlIGluZm9ybWF0aW9uKQBmbGlwX3gsIGZsaXBfeSBhcmUgYm9vbGVhbnM6AHdoZW4gdHJ1ZSwgZHJhdyBtaXJyb3JlZABzc3ByAIAgc3NwcihzeCwgc3ksIHN3LCBzaCwgZHgsIGR5LAAgICBbZHcsIGRoXSwgW2ZsaXBfd10sIFtmbGlwX2hdAHN0cmV0Y2ggc3ByaXRlIHVzaW5nIHRoZSBzb3VyY2UAcmVjdGFuZ2xlIHN4LCBzeSwgc3csIHNoAGRyYXcgYXQgdGhlIGRlc3RpbmF0aW9uIGR4LCBkeQB3aXRoIGhlaWdodCBkdywgZGguIHdoZW4gZHcsIGRoAGFyZSBub3QgZ2l2ZW4sIHVzZSBzdywgc2gAd2hlbiB0cnVlLCBkcmF3IG1pcnJvcmVkLgBzZ2V0AHNzZXQAgCBzZ2V0KHgseSkAICAgc3NldCh4LHksdmFsKQBnZXQgb3Igc2V0IHRoZSB2YWx1ZSBvZiBhIHBpeGVsAGluIHRoZSBzcHJpdGVzaGVldCBhdCB4LCB5AHBnZXQAcHNldACAIHBnZXQoeCx5KQAgICBwc2V0KHgseSx2YWwpAG9uIHRoZSBzY3JlZW4gYXQgeCwgeQBwcmludAA/AIAgcHJpbnQoc3RyLCB4LCB5LCBbY29sXSkAICAgcHJpbnQoc3RyLCBbY29sXSkAcHJpbnQgdGhlIHN0cmluZyBzdHIgYXQgeCwgeQBvciB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24Ac2hvcnRoYW5kOiB1c2UgPyBvbiBhIHNpbmdsZQBsaW5lIHdpdGhvdXQgYnJhY2tldHM6AD8iaGVsbG8iAHNvbWUgcDhzY2lpIGNvZGVzOgBcIzMgc2V0IGJhY2tncm91bmQgY29sICgwLi5mKQBcZjcgc2V0IGZvcmVncm91bmQgY29sICgwLi5mKQBcXmkgaW52ZXJ0ZWQgbW9kZQBcXncgd2lkZSBtb2RlICheLXcgdG8gZGlzYWJsZSkAXF50IHRhbGwgbW9kZSAoXi13IHRvIGRpc2FibGUpAFxecCBwaW5iYWxsIG1vZGUAXGEgYmVlcABwcmludGgAgCBwcmludGgoc3RyLCBbZmlsZW5hbWVdLAAgICBbb3ZlcndyaXRlXSwgW3RvX2Rlc2t0b3BdAHByaW50IHN0ciB0byBob3N0LiB3aGVuIHBpY28tOABpcyBydW5uaW5nIGZyb20gYSBzaGVsbCwgdGhlAG91dHB1dCBpcyBzZW50IHRvIHRoYXQgc2hlbGwsIG9yAGFwcGVuZGVkIHRvIGEgZmlsZSB3aGVuIGEAZmlsZW5hbWUgaXMgZ2l2ZW4uAGluIHRoZSBzZWNvbmQgY2FzZSwgYW55IGV4aXN0aW5nAGZpbGUgaXMgb3ZlcndyaXR0ZW4gd2hlbgBvdmVyd3JpdGUgaXMgdHJ1ZS4gdGhlIGZpbGUgaXMAc2F2ZWQgdG8gZGVza3RvcCB3aGVuIHRvX2Rlc2t0b3AAaXMgdHJ1ZS4AY3Vyc29yAIAgY3Vyc29yKHgsIHksIFtjb2xdAHNldCB0aGUgY3Vyc29yIHBvc2l0aW9uAGlmIGNvbCBpcyBzcGVjaWZpZWQsIGFsc28gc2V0IHRoZQBjdXJyZW50IGRyYXcgY29sb3VyLgBwZWVrAHBlZWsyAHBlZWs0AEAAJACAIHBlZWsoYWRkciwgW25dKQByZWFkIGEgYnl0ZSBmcm9tIG1lbW9yeSBhdCBhZGRyLgB3aGVuIG4gaXMgZ2l2ZW4sIHJldHVybiBuIGJ5dGVzIAByZWFkIHNlcXVlbnRpYWxseS4gaW50ZWdlcnMgYW5kAG51bWJlcnMgY2FuIGJlIHJlYWQgd2l0aCBwZWVrMigpAGFuZCBwZWVrNCByZXNwZWN0aXZlbHkuAC0tIGZldGNoIDIgYnl0ZXMgb2YgdmlkZW8gcmFtAGEsYiA9IHBlZWsoMHg2MDAwLCAyKQAtLSBvcGVyYXRvciBhbHRlcm5hdGl2ZXMAQGFkZHIgIC0tIHBlZWsoYWRkcikAJWFkZHIgIC0tIHBlZWsyKGFkZHIpACRhZGRyICAtLSBwZWVrNChhZGRyKQBwb2tlAHBva2UyAHBva2U0AIAgcG9rZShhZGRyLCB2YWwxLCBbdmFsMiwgLi4uXSkAd3JpdGUgb25lIG9yIG1vcmUgYnl0ZXMgdG8gcmFtAHN0YXJ0aW5nIGZyb20gYWRkci4gaW50ZWdlcnMAYW5kIG51bWJlcnMgY2FuIGJlIHdyaXR0ZW4gd2l0aABwb2tlMiBhbmQgcG9rZTQuAC0tIHdyaXRlIDQgYnl0ZXMgdG8gdmlkZW8gcmFtAHBva2UyKDB4NzAwMCwgMHg0NTY3LCAweDg5YWIpAG1lbXNldACAIG1lbXNldChhZGRyLCB2YWwsIGxlbikAd3JpdGUgdGhlIDgtYml0IHZhbHVlIHZhbCBpbnRvAHJhbSBzdGFydGluZyBmcm9tIGFkZHIsIGZvcgBsZW4gYnl0ZXMuAC0tIGZpbGwgaGFsZiBvZiB2aWRlbyBtZW1vcnkAbWVtc2V0KDB4NjAwMCwgMHhjOCwgMHgxMDAwKQBtZW1jcHkAgCBtZW1jcHkoZGVzdCwgc3JjLCBsZW4pAGNvcHkgbGVuIGJ5dGVzIGZyb20gYWRkcmVzcyBzcmMAdG8gZGVzdC4gc2VjdGlvbnMgY2FuIGJlAG92ZXJsYXBwaW5nIGFuZCBkbyBub3QgbmVlZCB0bwBiZSBhbGlnbmVkLgAtLSBjb3B5IHNvbWUgb2YgdGhlIHZpZGVvIHJhbSB0bwAtLSB0aGUgdG9wIG9mIHRoZSBzY3JlZW4AbWVtY3B5KDB4NjAwMCwgMHg2ODAwLCAweDgwMCkAcmVsb2FkAIAgcmVsb2FkKGRlc3QsIHNyYywgbGVuLCBbZm5dKQBzaW1pbGFyIHRvIG1lbWNweSwgYnV0IHJlYWQAZnJvbSBjYXJ0cmlkZ2Ugcm9tIGFuZCB3cml0ZQB0byByYW0gYXQgZGVzdCBmb3IgbGVuIGJ5dGVzLgByZWxvYWQoKSByZWxvYWRzIGV2ZXJ5dGhpbmcuAHRoZSBjb2RlIHNlY3Rpb24gKD49IDB4NDMwMCkAaXMgcHJvdGVjdGVkIGFuZCBjYW4gbm90IGJlAGFjY2Vzc2VkIGJ5IHJlbG9hZCAvIGNzdG9yZS4Ad2hlbiBmaWxlbmFtZSBmbiBpcyBnaXZlbiwAZGF0YSBpcyByZWFkIGZyb20gYSBzZXBhcmF0ZQBjYXJ0cmlkZ2UgZmlsZS4AY3N0b3JlAIAgY3N0b3JlKGRlc3QsIHNyYywgbGVuLCBbZm5dKQBmcm9tIHJhbSBhbmQgd3JpdGUgdG8gY2FydCByb20AYXQgZGVzdCBmb3IgbGVuIGJ5dGVzLgBjc3RvcmUoKSBzdG9yZXMgZXZlcnl0aGluZyBpbgByYW0gYmFjayB0byB0aGUgY2FydHJpZGdlLgBzY29yZXN1YgCAIHNjb3Jlc3ViKHRibCwgc2NvcmUsIFtleHRyYV0pAHN1Ym1pdCBhIGhpZ2hzY29yZSB0byB0aGUgYmJzLgB0YmwgaXMgYSBzdHJpbmcgaWRlbnRpZnlpbmcgdGhlAHRhYmxlIGFuZCBjYW4gYmUgPD0gNDAgY2hhcnMAbG9uZy4gZS5nLiAibGV2ZWxfMSIAc2NvcmUgaXMgYSBudW1iZXIuIGhpZ2hlciBpcwBiZXR0ZXI7IHRoZSB0b3AgNjQgc2NvcmVzIGFyZQByZXR1cm5lZCBpbiBhIHRhYmxlIHdpdGggZmllbGRzOgBuYW1lIHNjb3JlIGV4dHJhIGRhdGUAdXNlIHNjb3Jlc3ViKHRibCkgdG8gZ3JhYiB0aGUAdGFibGUgc3RhdGUgd2l0aG91dCBzdWJtaXR0aW5nAGEgc2NvcmUuAGV4dHJhIGlzIGEgYmluYXJ5IHN0cmluZyBvZgBtZXRhZGF0YSA8PSA3NjggYnl0ZXMgbG9uZy4AY2FydGRhdGEAgCBjYXJ0ZGF0YShpZCkAb3BlbnMgYSBwZXJtYW5lbnQgZGF0YSBzdG9yYWdlAHNsb3QgdG8gYmUgYWNjZXNzZWQgd2l0aCBkZ2V0KCkAYW5kIGRzZXQoKSBvciBieSBkaXJlY3RseSBwb2tlLwBwZWVraW5nIHJhbSBhdCAweDVlMDAuLjB4NWVmZi4AaWQgaXMgYSBzdHJpbmcgPD0gNjQgY2hhcnMgbG9uZwB0aGF0IG1pZ2h0IG5vdCBiZSB1bmlxdWUgKGl0IGlzAHBvc3NpYmxlIGZvciB0d28gY2FydHMgdG8gc2hhcmUAdGhlIHNhbWUgc3RvcmFnZSkuAGNhcnRkYXRhKCkgY2FuIG9ubHkgYmUgY2FsbGVkAG9uY2UgcGVyIHByb2dyYW0gLS0gaXQgaXMgbm90AHBvc3NpYmxlIHRvIHVzZSBtdWx0aXBsZSBkYXRhAHN0b3JhZ2Ugc2xvdHMgaW4gb25lIHByb2dyYW0uAGRnZXQAZHNldACAIGRnZXQoaSkAICAgZHNldChpLCB2YWwpAGdldC9zZXQgdGhlIG51bWJlciBpbiBwZXJtYW5lbnQAZGF0YSBzdG9yYWdlIGF0IGluZGV4IGkgKDAuLjYzKS4Ac2FtZSBhcyBwZWVrNCgweDVlMDAraSo0KSBhbmQAcG9rZTQoMHg1ZTAwK2kqNCwgdmFsKSwgYWZ0ZXIAY2FydGRhdGEoaWQpIGhhcyBiZWVuIHVzZWQgdG8AbWFwIHRoaXMgbWVtb3J5IHJhbmdlIHRvIHN0b3JhZ2UAY2FsbGluZyBkZ2V0IG9yIGRzZXQgYmVmb3JlAGNhcnRkYXRhKGlkKSByZXN1bHRzIGluIGEgcnVuLQB0aW1lIGVycm9yLgBzdWIAgCBzdWIoc3RyLCBwb3MwLCBbcG9zMV0pAHJldHVybnMgYSBzdWJzdHJpbmcgb2Ygc3RyLCBmcm9tAHBvczAgdW50aWwgcG9zMSwgb3IgI3N0ciB3aGVuAHdoZW4gcG9zMSBpcyBub3QgZ2l2ZW4uIHBvczAgYW5kAHBvczEgYXJlIDEtYmFzZWQsIGFuZCBpbmNsdWRlAHRoZSBjaGFyYWN0ZXJzIGF0IHBvczAsIHBvczEuAG5lZ2F0aXZlIHZhbHVlcyBtZWFuIGNoYXJhY3RlcnMAZnJvbSB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuAD9zdWIoImFiY2RlIiwyLDQpIC0tIGJjZAA/c3ViKCJhYmNkZSIsMiAgKSAtLSBiY2RlAD9zdWIoImFiY2RlIiwtMiApIC0tIGRlAHVzZSBzW2ldIHRvIGdyYWIgYSBzaW5nbGUgY2hhcjoAPnM9ImFiY2QiAD4/c1szXQBjAGNocgCAIGNocih2YWwwLCBbdmFsMSwgdmFsMiAuLi5dKQBjb252ZXJ0IG9uZSBvciBtb3JlIGNoYXJhY3RlcgBjb2RlcyB0byBhIHN0cmluZy4ALS0gQAA/Y2hyKDY0KSAALS0gaGVsbG8AP2NocigxMDQsMTAxLDEwOCwxMDgsMTExKQBvcmQAgCBvcmQoc3RyLCBbcG9zXSwgW251bV0pAHJldHVybiBvbmUgb3IgbW9yZSBvcmRpbmFsIGNoYXIAdmFsdWVzICgwLi4yNTUpIGZyb20gc3RyaW5nIHN0ci4Ad2hlbiBwb3MgaXMgb3V0IG9mIHJhbmdlIG9yIHN0cgBpcyBub3QgYSBzdHJpbmcsIHJldHVybnMgbmlsLgA/b3JkKCJAIikgICAgICAtLSA2NAA/b3JkKCJhYmMiLDIpICAtLSA5OAAtLSA5Nyw5OCw5OQBhLGIsYyA9IG9yZCgiYWJjIiwxLDMpAC0tIHdyaXRlIG9yZCB2YWx1ZXMgdG8gc2NyZWVuAHBva2UoMHg3MDAwLG9yZCgic3R1dnd4eXoiLDEsOCkpAHNwbGl0AIAgc3BsaXQoc3RyLCBbc2VwXSwgW251bWJlcnNdAHNwbGl0IGEgc3RyaW5nIGludG8gYSB0YWJsZSBvZgBlbGVtZW50cyBkZWxpbWl0ZWQgYnkgdGhlAHNlcGFyYXRvciBzZXAgKCIsIiBieSBkZWZhdWx0KS4Ad2hlbiBudW1iZXJzIGlzIHRydWUsIG51bWVyaWNhbAB0b2tlbnMgYXJlIHN0b3JlZCBhcyBudW1iZXJzAGluc3RlYWQgb2Ygc3RyaW5ncyAodHJ1ZSB3aGVuAG5vdCBnaXZlbikuAHNwbGl0KCIxLDIsMyIpIC0tIHsxLDIsM30Ac3BsaXQoIjEsLDIsIikgLS0gezEsIiIsMiwiIn0Ac3BsaXQoIm9uZTp0d286MyIsIjoiLGZhbHNlKQAgLS0+IHsib25lIiwidHdvIiwiMyJ9AHRvc3RyAIAgdG9zdHIodmFsLCBbZm9ybWF0XSkAY29udmVydCB2YWwgdG8gYSBzdHJpbmcuAGZvcm1hdCBpcyBhIGJpdGZpZWxkOgAgIDB4MTogd3JpdGUgYXMgcmF3IGhleGFkZWNpbWFsACAgMHgyOiB3cml0ZSByYXcgaW50MzIAP3Rvc3RyKDE3KSAgIC0tICIxNyIAP3Rvc3RyKDE3LDEpIC0tICIweDAwMTEuMDAwMCIAP3Rvc3RyKDE3LDMpIC0tICIweDAwMTEwMDAwIgA/dG9zdHIoMTcsMikgLS0gIjExMTQxMTIiAHRvbnVtAIAgdG9udW0odmFsLCBbZm9ybWF0XSkAY29udmVydCB2YWwgdG8gYSBudW1iZXIsIG9yAHJldHVybiBub3RoaW5nIHdoZW4gbm8gbnVtYmVyAGNhbiBiZSByZWFkLgAgIDB4MTogcmVhZCB2YWwgYXMgaGV4YWRlY2ltYWwAICAgICAgIHdpdGggbm8gIjB4IiBwcmVmaXgAICAweDI6IHJlYWQgdmFsIGFzIGEgcmF3IGludDMyACAgMHg0OiByZXR1cm4gMCB3aGVuIHZhbCBjYW4AICAgICAgIG5vdCBiZSByZWFkIGFzIGEgbnVtYmVyAD90b251bSgiZmYiLDB4MSkgICAgICAtLSAyNTUAP3RvbnVtKCIxMTE0MTEyIiwweDIpIC0tIDE3AD90b251bSgiMTIzNGFiY2QiLDB4MykAIC0tPiAweDEyMzQuYWJjZABhZGQAgCBhZGQodGJsLCB2YWwsIFtpbmRleF0pAGFkZCB2YWx1ZSB2YWwgdG8gZW5kIG9mIHRhYmxlAHRibC4gZXF1aXZhbGVudCB0bzoAdGJsWyN0YmwgKyAxXSA9IHZhbABpZiBpbmRleCBpcyBnaXZlbiwgdGhlIG5ldwBlbnRyeSBpcyBpbnNlcnRlZCBhdCB0aGF0AHBvc2l0aW9uLgBmb289ezEwLDIwLDMwfQBhZGQoZm9vLDI1LDMpIC0tPiAxMCwyMCwyNSwzMABhcHBsaWVzIHRvIHRhYmxlcyBpbmRleGVkIGJ5AGludGVnZXJzIHN0YXJ0aW5nIGF0IDEuAGRlbACAIGRlbCh0YmwsIHZhbCkAZGVsZXRlIHRoZSBmaXJzdCBpbnN0YW5jZSBvZgB2YWwgaW4gdGFibGUgdGJsIGFuZCBtb3ZlIHRoZQByZW1haW5pbmcgZW50cmllcyB1cCBvbmUgcGxhY2UuAHJldHVybnMgdGhlIGRlbGV0ZWQgaXRlbSwgb3Igbm8AdmFsdWUgd2hlbiBub3RoaW5nIHdhcyBkZWxldGVkLgBhPXsxLDEwLDIsM30AZGVsKGEsIDEwKSAtLT4gMSwyLDMAZGVsaQCAIGRlbGkodGJsLCBpbmRleCkAZGVsZXRlIGFuIGl0ZW0gZnJvbSB0YWJsZSB0YmwAYXQgYSBnaXZlbiBpbmRleCwgYW5kIG1vdmUgdGhlAHdoZW4gaW5kZXggaXMgbm90IGdpdmVuLCBkZWxldGUAYW5kIHJldHVybiB0aGUgbGFzdCBpdGVtOgBhPXsxLDIsMyw0fQBkZWxpKGEsMikgLS0+IDEsMyw0AGRlbGkoYSkgICAtLT4gMSwzAGFsbACAIGFsbCh0YmwpAHVzZWQgaW4gZm9yIGxvb3BzIHRvIGl0ZXJhdGUAb3ZlciBhbGwgaXRlbXMgaW4gYSB0YWJsZS4AdG90YWwgPSAwAGE9ezEwLDIwLDMwfQBmb3IgbiBpbiBhbGwoYSkgZG8AICB0b3RhbCArPSBuAD9uICAgLS0gNjAAZm9yZWFjaACAIGZvcmVhY2godGJsLCBmdW5jKQBmb3IgZWFjaCBpdGVtIGluIHRhYmxlIHRibCwgY2FsbAB0aGUgZnVuY3Rpb24gZnVuYyB3aXRoIHRoYXQgaXRlbQBhcyBhbiBhcmd1bWVudC4APiBmb3JlYWNoKHsxLDIsImhleSJ9LCBwcmludCkAaGV5AHBhaXJzAIAgcGFpcnModGJsKQB1c2VkIHRvIGl0ZXJhdGUgb3ZlciBhbGwgaXRlbXMAaW4gYSB0YWJsZSwgaW5jbHVkaW5nIGtleXMgdGhhdABhcmUgYXJlIG5vdCBpbnRlZ2Vycy4gZWFjaCBjYWxsAHRvIHRoZSBmdW5jdGlvbiBpdCBnZW5lcmF0ZXMAcmV0dXJucyBib3RoIHRoZSBrZXkgKGspIGFuZCB0aGUAdmFsdWUgKHYpIGZvciB0aGF0IGl0ZW06AGEgPSB7Zm9vID0gMywgWzEuNV0gPSAiYmxhaCJ9AGZvciBrLHYgaW4gcGFpcnMoYSkgZG8AICBwcmludCgiazoiLi5rLi4iICB2OiIuLnYpAGs6Zm9vICB2OjMAazoxLjUgIHY6YmxhaABydW4AgCBydW4oW3BhcmFtX3N0cl0pAHJ1biB0aGUgcHJvZ3JhbS4gd2hlbiBjYWxsZWQAd2hlbiBhbHJlYWR5IHJ1bm5pbmcsIHRoZQBwcm9ncmFtIGlzIHJlc3RhcnRlZC4AcGFyYW1fc3RyIGlzIGEgc3RyaW5nIHRoYXQgY2FuAGJlIGFjY2Vzc2VkIGR1cmluZyBydW50aW1lIHdpdGgAc3RhdCg5KS4Ac3RvcACAIHN0b3AoW21lc3NhZ2VdKQBzdG9wIHRoZSBjdXJyZW50bHkgcnVubmluZwBwcm9ncmFtIGFuZCBvcHRpb25hbGx5IHByaW50AGEgbWVzc2FnZS4AYSBzdG9wcGVkIHByb2dyYW0gY2FuIHJlc3VtZWQAd2l0aCB0aGUgcmVzdW1lIGNvbW1hbmQsIG9yAGFkdmFuY2VkIGJ5IGEgc2luZ2xlIGZyYW1lIHdpdGgAYSBmdWxsIHN0b3AuAHJlc3VtZQCAID4gcmVzdW1lACAgID4gLgByZXN1bWUgYSBwcm9ncmFtIHRoYXQgd2FzAHN0b3BwZWQgZWl0aGVyIHdpdGggc3RvcCgpIG9yAGJ5IHByZXNzaW5nIGVzY2FwZS4AYSBzaW5nbGUgZnJhbWUgY2FuIGJlIHJ1biBieQBlbnRlcmluZyBhIGZ1bGwgc3RvcCwgYW5kIHRoZW4AcHJlc3NpbmcgZW50ZXIgdG8gZ2V0IHN1YnNlcXVlbnQAZnJhbWVzLgByZXNldACAIHJlc2V0KCkAcmVzdG9yZSB0aGUgdmFsdWVzIGluIHJhbSBmcm9tADB4NWYwMC4uMHg1ZjdmIHRvIHRoZWlyIGRlZmF1bHQAdmFsdWVzLgB0aGlzIGluY2x1ZGVzIHRoZSBwYWxldHRlLABjYW1lcmEgcG9zaXRpb24sIGNsaXBwaW5nLCBhbmQAZmlsbCBwYXR0ZXJuLgBpdCBjYW4gYWxzbyBiZSB1c2VkIGZyb20gY29tbWFuZABsaW5lIHdpdGhvdXQgdGhlIGJyYWNrZXRzLiB0aGlzAGNhbiBiZSB1c2VmdWwgd2hlbiB0aGUgdGV4dCBpcwBpbnZpc2libGUgYmVjYXVzZSBvZiBwYWxldHRlAGNoYW5nZXMuAHlpZWxkAIAgeWllbGQoKQBleGl0IGEgY29yb3V0aW5lIGFuZCB0aGVuAHJlc3VtZSBhdCB0aGF0IHBvaW50IHdoZW4AY29yZXN1bWUoKSBpcyBjYWxsZWQuAGZvciBhbiBleGFtcGxlLCBzZWU6AGNvcmVzdW1lAGNvY3JlYXRlAGNvcm91dGluZQBjb3JvdXRpbmVzAIAgY29jcmVhdGUoZikAICAgY29yZXN1bWUoYywgW3AwLCBwMSwgLi4uXSkAY3JlYXRlIGEgY29yb3V0aW5lIGZyb20gYQBmdW5jdGlvbiBmLCBhbmQgdGhlbiBydW4gaXQAd2l0aCBhcmd1bWVudHMgcDAsIHAxLi4AZnVuY3Rpb24gaGV5KCkAICBwcmludCJkb2luZyBzb21ldGhpbmciACAgeWllbGQoKQAgIHByaW50InNvbWV0aGluZyBlbHNlIgAgIHByaW50ImZpbmlzaGVkIgBjID0gY29jcmVhdGUoaGV5KQBjb3Jlc3VtZShjKSAgLS0gZG9pbmcgc29tZXRoaW5nAGNvcmVzdW1lKGMpICAtLSBzb21ldGhpbmcgZWxzZQA/Y29zdGF0dXMoYykgLS0gInN1c3BlbmRlZCIAY29zdGF0dXMAgCBjb3N0YXR1cyhjKQByZXR1cm5zIHRoZSBzdGF0dXMgb2YgYQBjb3JvdXRpbmUgYyBhcyBhIHN0cmluZzoAICBydW5uaW5nACAgc3VzcGVuZGVkACAgZGVhZAB0aW1lAHQAgCB0aW1lKCkAICAgdCgpAHJldHVybnMgdGhlIG51bWJlciBvZiBzZWNvbmRzAHNpbmNlIHRoZSBwcm9ncmFtIHN0YXJ0ZWQAcnVubmluZywgdGFrZW4gZnJvbSB0aGUgbW9tZW50AHRoZSBjdXJyZW50IGZyYW1lIHN0YXJ0ZWQuAG1lbnVpdGVtAIAgbWVudWl0ZW0oaW5kZXgsIFtsYWJlbF0sIFtmXSkAYWRkIGFuIGl0ZW0gdG8gdGhlIHBhdXNlIG1lbnUgAGF0IHNsb3QgaW5kZXggKDEuLjUpIHdpdGggYQBsYWJlbCA8PSAxNiBjaGFycyBsb25nLgBmIGlzIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQAd2hlbiB0aGUgbWVudSBpdGVtIGlzIHNlbGVjdGVkAG9yIHRoZSBsZWZ0IG9yIHJpZ2h0IGJ1dHRvbnMAYXJlIHByZXNzZWQuIGl0IHRha2VzIGEgc2luZ2xlAGJpdGZpZWxkIHBhcmFtZXRlciBpbmRpY2F0aW5nAHdoaWNoIGJ1dHRvbiB3YXMgcHJlc3NlZC4AbWVudWl0ZW0oMSwgImZvbyIsIGZ1bmN0aW9uKGIpACA/InNlbGVjdGVkIGZvbzoiLi5iAGVuZCkAd2hlbiBubyBsYWJlbCBvciBjYWxsYmFjayBpcwBzcGVjaWZpZWQsIHRoZSBpdGVtIGlzIGRlbGV0ZWQuAHN0YXQAgCBzdGF0KHgpAGdldCBzeXN0ZW0gc3RhdHVzACAwIG1lbW9yeSB1c2FnZSAoMC4uMjA0OCkAIDEgY3B1ICAgICAgKDEuMCA9PSAxMDAlKQAgNCBjbGlwYm9hcmQgY29udGVudHMAIDYgcGFyYW1ldGVyIHN0cmluZwAgNyBjdXJyZW50IGZyYW1lcmF0ZQAgNDYuLjQ5IGN1cnJlbnQgcGxheWluZyBzZngAIDUwLi41MyBub3RlIG51bWJlciAocGVyIGNoYW4pACA1NCBjdXJyZW50bHkgcGxheWluZyBwYXR0ZXJuACA1NSB0b3RhbCBwYXR0ZXJucyBwbGF5ZWQAIDU2IHRpY2tzIHBsYXllZCBvbiBwYXR0ZXJuACA1NyB0cnVlIHdoZW4gbXVzaWMgcGxheWluZwAgODAuLjg1IHV0YyB0aW1lOyB5ZWFyLi5zZWNvbmQAIDkwLi45NSBsb2NhbCB0aW1lACAxMDAgYnJlYWRjcnVtYiBsYWJlbCwgb3IgbmlsAHNlcmlhbACAIHNlcmlhbChjaGFubmVsLCBhZGRyLCBsZW4pAHJlYWQvd3JpdGUgZGF0YSB0byBhIG1lbW9yeQBhZGRyZXNzIGZvciBsZW4gYnl0ZXMuAGNoYW5uZWw6ACAweDAwMC4uMHgwZmUgZ3BpbyBwaW5zIChyYXNwaSkAIDB4MGZmIGRlbGF5IGZvciBsZW4gbXMAIDB4ODAwIGRyb3BwZWQgZmlsZSAtLSBzdGF0KDEyMCkAIDB4ODAyIGRyb3BwZWQgZmlsZQAgMHg4MDQgc3RkaW4AIDB4ODA1IHN0ZG91dABleHRjbWQAgCBleHRjbWQoY21kX3N0cikAc3BlY2lhbCBzeXN0ZW0gY29tbWFuZHMgY2FuIGJlAGlzc3VlZCBmcm9tIGEgcnVubmluZyBwcm9ncmFtOgBwYXVzZTogcGF1c2UgY2FydAByZXNldDogcmVzZXQgY2FydABnb19iYWNrOiByZXR1cm4gdG8gcHJldmlvdXMgY2FydABsYWJlbDogc2V0IGNhcnQgbGFiZWwAc2NyZWVuOiBzYXZlIGEgc2NyZWVuc2hvdAByZWM6IHNldCB2aWRlbyBzdGFydCBwb2ludAByZWNfZnJhbWVzOiAxIGZyYW1lIHBlciBmbGlwAHZpZGVvOiBzYXZlIGEgLmdpZiB0byBkZXNrdG9wAGF1ZGlvX3JlYzogc3RhcnQgcmVjb3JkaW5nIGF1ZGlvAGF1ZGlvX2VuZDogc2F2ZSAud2F2IHRvIGRlc2t0b3AAc2h1dGRvd246IChmb3IgZXhwb3J0ZWQgY2FydHMpAGZvbGRlcjogb3BlbiBjdXJyZW50IGZvbGRlcgBsb2FkAIAgPiBsb2FkIGZpbGVuYW1lACAgIGxvYWQoZmlsZW5hbWUsIFticmVhZGNydW1iXSwAICAgW3BhcmFtX3N0cl0pAGxvYWQgYSBjYXJ0cmlkZ2UuIHdoZW4gY2FsbGVkAGZyb20gYSBydW5uaW5nIHByb2dyYW0sIHRoZQBsb2FkZWQgY2FydHJpZGdlIGlzIGltbWVkaWF0ZWx5AHJ1biB3aXRoIHBhcmFtX3N0ciAoYWNjZXNzaWJsZQB3aXRoIHN0YXQoNikpIGFuZCBhIG1lbnUgaXRlbQB3aXRoIHRoZSBsYWJlbCBicmVhZGNydW1iIGlzAGluc2VydGVkLCBhbGxvd2luZyB0aGUgdXNlciB0bwByZXR1cm4gdG8gdGhlIHByZXZpb3VzIGNhcnQuAGZpbGVuYW1lcyBzdGFydGluZyB3aXRoICMgYXJlAHRha2VuIHRvIGJlIGJicyBjYXJ0cmlkZ2UgaWRzLgBzYXZlAIAgPiBzYXZlIGZpbGVuYW1lAHNhdmUgdGhlIHdvcmtpbmcgY2FydHJpZGdlIHRvIGEAZmlsZS4gd2hlbiB0aGUgZmlsZSBkb2VzIG5vdABjb250YWluIHRoZSAucDggZXh0ZW5zaW9uLCBpdCBpcwBhZGRlZCBhdXRvbWF0aWNhbGx5OgA+IHNhdmUgZm9vAHNhdmVkIGZvby5wOAB1c2UgLnBuZyBpbiB0aGUgZmlsZW5hbWUgdG8gc2F2ZQBhIC5wOC5wbmcgY2FydHJpZGdlLiB0byBjYXB0dXJlAGEgbGFiZWwgYmVmb3JlaGFuZCwgcHJlc3MgY3RybC03AHRvIHNhdmUgdG8gY2xpcGJvYXJkLCB1c2U6AD5zYXZlIEBjbGlwAHRoaXMgY2FuIGJlIHBhc3RlZCBhcyB0ZXh0IGFuZABpcyBzdXBwb3J0ZWQgYnkgdGhlIGJicy4AaW1wb3J0AIAgPiBpbXBvcnQgZmlsZW5hbWUAaW1wb3J0IGFuIGltYWdlIG1hcHBpbmcgdG8gdGhlAGN1cnJlbnQgcGFsZXR0ZS4gdW5sZXNzIC1sIGlzAHVzZWQsIGltcG9ydCB0byB0aGUgc3ByaXRlc2hlZXQuACAtbCAgICAgLS0gaW1wb3J0IGNhcnQgbGFiZWwAIC14IG51bSAtLSBsb2FkIGF0IHggcG9zaXRpb24AIC15IG51bSAtLSBsb2FkIGF0IHkgcG9zaXRpb24APiBpbXBvcnQgLWwgbXlsYWJlbC5wbmcAZXhwb3J0AIAgPiBleHBvcnQgZmlsZW5hbWUgAGV4cG9ydCBhIGZpbGUgYmFzZWQgb24gdHlwZToAIC5wbmcgIHNwcml0ZXNoZWV0ACAud2F2ICBjdXJyZW50IHNmeCBvciBwYXR0ZXJuACAuYmluICBzdGFuZC1hbG9uZSBiaW5hcmllcwAgLmh0bWwgc3RhbmQtYWxvbmUgd2ViIGFwcAAgLnA4LnBuZyAgIHNhdmUgYSBjb3B5ACAubWFwLnBuZyAgbWFwIHZpc3VhbGlzYXRpb24AZXhwb3J0IGxhYmVsOgA+IGV4cG9ydCAtbCBsYWJlbC5wbmcAdGlueSAucm9tIGZvcm1hdCAoY29kZSBvbmx5KToAPiBleHBvcnQgLXQgZm9vLnA4LnJvbQBiaW5hcnkgbXVsdGljYXJ0OgA+IGV4cG9ydCBmb28uYmluIGNhcnQyLnA4IGMzLnA4AGluZm8AgCA+IGluZm8AZ2V0IHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlAGN1cnJlbnRseSBsb2FkZWQgY2FydHJpZGdlOgAgZmlsZW5hbWUAIGNhcGFjaXR5IHN0YXRzACB1bnNhdmVkIGNoYW5nZXMAZm9sZGVyAIAgPiBmb2xkZXIgW3doaWNoXQBvcGVuIHRoZSBjdXJyZW50IGZvbGRlciBpbiB0aGUAaG9zdCdzIGZpbGUgbmF2aWdhdG9yLgB3aGVuIHdoaWNoIGlzIGdpdmVuLCBhIHNwZWNpYWwAbG9jYXRpb24gaXMgb3BlbmVkOgAgYmFja3VwcwAgY29uZmlnACBiYnMAIGRlc2t0b3AAdG8gb3BlbiBhIGZvbGRlciBmcm9tIGEgcnVubmluZwBjYXJ0cmlkZ2UgdGhhdCBoYXMgYmVlbiBleHBvcnRlZAB0byBiaW5hcnksIHVzZSBleHRjbWQoImZvbGRlciIuAHNodXRkb3duAIAgPiBzaHV0ZG93bgBwcm9tcHQgZm9yIGFueSB1bnNhdmVkIGNoYW5nZXMAYW5kIHRoZW4gY2xvc2UgcGljby04LgBmb3IgZmFzdCBzaHV0ZG93biwgdXNlIGtleXM6ACBhbHQtZjQgKHdpbmRvd3MpACBjdHJsLXEgKGxpbnV4IC8gbWFjKQBscwBkaXIAgCA+IGxzIFtwYXRoXQBsaXN0IGFsbCBvZiB0aGUgY2FydHMgaW4AdGhlIGdpdmVuIHBhdGguAGxzICogdG8gc2hvdyBoaWRkZW4gZmlsZXMAcmVib290AIAgPiByZWJvb3QAYW5kIHRoZW4gcmVib290IHBpY28tOC4AdGhpcyBpcyB0aGUgcmVjb21tZW5kZWQgd2F5IHRvAHN0YXJ0IGEgbmV3IGVtcHR5IHByb2plY3QuAHNwbG9yZQCAID4gc3Bsb3JlACAgID4gcwBvcGVuIHNwbG9yZTogcGljby04J3MgYmJzAGNhcnRyaWRnZSBicm93c2VyLgB1c2UgbGVmdCBhbmQgcmlnaHQgdG8gc3dpdGNoAGJldHdlZW4gY2FydHJpZGdlIGxpc3RzLCBhbmQAdXAgYW5kIGRvd24gdG8gc2VsZWN0IGEgY2FydC4AdXNlIJcvjiB0byBvcGVuIGEgY2FydHJpZGdlAG9yIHRoZSBtZW51IGJ1dHRvbiBmb3IgbW9yZQBvcHRpb25zLgBsb2dpbgBsb2dvdXQAgCA+IGxvZ2luACAgID4gbG9nb3V0AGxvZyBpbiB0byB5b3VyIGxleGFsb2ZmbGUAYWNjb3VudC4gd2hpbGUgbG9nZ2VkIGluLCB1c2VycwBhcmUgYWJsZSB0byBzdWJtaXQgaGlnaCBzY29yZXMAdXNpbmcgc2NvcmVzdWIoKSwgYWRkIHN0YXJzIHRvAGNhcnRzLCBhbmQgc3luYyBiYnMgZmF2b3VyaXRlcy4AW25vdCBpbXBsZW1lbnRlZCB5ZXQhXQB0b3BpYyBub3QgZm91bmQ6AF4KIDAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiEjJSgpe31bXTw+Kz0vKjo7Lix+XwBpZihfdXBkYXRlNjApX3VwZGF0ZT1mdW5jdGlvbigpX3VwZGF0ZTYwKClfdXBkYXRlNjAoKWVuZABpZihfdXBkYXRlNjApX3VwZGF0ZT1mdW5jdGlvbigpX3VwZGF0ZTYwKClfdXBkYXRlX2J1dHRvbnMoKV91cGRhdGU2MCgpZW5kAEdJRjg3YQBHSUY4OWEAAAEDBw8fP3//JXMlcy5wOGQudHh0ACUwOHgAdG9vIG1hbnkgY2FydGRhdGEoKSBzbG90cwBiYWQgY2FydCBkYXRhIGlkAGNhcnQgZGF0YSBpZDogYmFkIGNoYXIALndhdgAucmF3AGV4cG9ydCBpcyB1bmF2YWlsYWJsZQBjb3VsZCBub3Qgb3BlbiBmaWxlAHdyb3RlICVkIGZpbGUlYwBubyByZWNvcmRpbmcgaW4gcHJvZ3Jlc3MAc2Z4ICVkIDo6IHRpY2tzICVkAHBhdHRlcm4gJWQAd2F2AHBsYXllciBrZXkgY29uZmlnAHNhdmVkIGNvbmZpZy4AcHJlc3MgZXNjYXBlAHRvIGNvbnRpbnVlAHByZXNzIGtleSBmb3I6AGRlbCBmb3IgZGVmYXVsdABlc2MgdG8gY2FuY2VsACVzIDogJXMAbGVmdAByaWdodAB1cABkb3duAHogLyBjIC8gbgB4IC8gdiAvIG0AcwBmAGUAZAB0YWIAcQBwIC8gZW50ZXIAcDEgbGVmdCAgICAAcDEgcmlnaHQgICAAcDEgdXAgICAgICAAcDEgZG93biAgICAAcDEgjiAgICAgIABwMSCXICAgICAgAHAyIGxlZnQgICAgAHAyIHJpZ2h0ICAgAHAyIHVwICAgICAgAHAyIGRvd24gICAgAHAyII4gICAgICAAcDIglyAgICAgIABwYXVzZSAgICAgIABscnVkb3hwY3Vyc29ycwB6IHgvYyB2AHMgZiBlIGQAdGFiIHEgdwAgICAgICAgACVkIGpveXN0aWNrcyBkZXRlY3RlZABsb2NhbABmYXZvdXJpdGVzAG5ldwBmZWF0dXJlZAB3b3JrIGluIHByb2dyZXNzAGphbQBsdWNreSBkcmF3AHNlYXJjaABmYXYAdG9wAHdpcABsdWNreQBjYXQ9NyZzdWI9MgBjYXQ9NyZzdWI9MiZvcmRlcmJ5PXJhdGluZwBjYXQ9NyZzdWI9MwBjYXQ9NyZzdWI9OABjYXQ9NyZvcmRlcmJ5PWx1Y2t5AGNhdD03JnNlYXJjaD1ibGFoAC5wbmcAfCUtMjBzIHwlLTIwcyB8JS02ZCB8JS0xNnMgfCUtMjBzIHwlcwoAY291bGQgbm90IGxvYWQgZmF2b3VyaXRlcyBmaWxlOiAlcwoAYmJzAGJicy8lZC8AJXN0ZW1wLSVkLm5mbwAlcyVkLnA4LnBuZwBiYnMvY2FydHMAJXMvdGVtcC0lcy5uZm8AJXMvJXMucDgucG5nACVzL2Jicy9nZXRfY2FydC5waHA/Y2F0PTcmcGxheV9zcmM9JWQmbGlkPSVzAGJicy9sYWJlbHMvACVzJXMucG5nAHJ1biBjYXJ0AG9wdGlvbnMAcmVtb3ZlIGZyb20gZmF2b3VyaXRlcwBmYXZvdXJpdGUAY2FydHMgYnkgQCVzAHNpbWlsYXIgY2FydHMAc2VhcmNoIGJicyB0aHJlYWQAb3BlbiB0aHJlYWQgaW4gYnJvd3NlcgBbYmFja10AZWRpdCBjYXJ0AHJlLWRvd25sb2FkAG9wZW4gaW4gYnJvd3NlcgBiYWNrAHZvbHVtZQBmdWxsc2NyZWVuAHNodXRkb3duIHBpY28tOABjYXQ9NyZzZWFyY2g9JXMmbWF4PTMyAGJicy90ZW1wXyVzX18ucGlwLnBuZwBiYnMvdGVtcF8lcy5waXAucG5nAGJicy8lcy5waXAucG5nAC9iYnMvY3Bvc3RfbGlzdGVyMy5waHA/bWF4PTMyJnN0YXJ0X2luZGV4PSVkJiVzJnZlcnNpb249JXMlYyZjZmlsPSVkADAwMDIwNwBkb3dubG9hZCBmYWlsZWQAbGlkAHRpdGxlAGF1dGhvcgBtaWQAY2F0c3ViAFtjYWNoZV0vAFtyZWZyZXNoXQBbY2FjaGVdAC5wOABbc2VhcmNoXQBbdXBkYXRlXQAlZCAlZCAlZABbbG9hZCBtb3JlXQAgYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Xy06AGNhbmNlbGxlZABkb3dubG9hZCBjYW5jZWxsZWQAc3Bsb3JlX2luaXQKAGNhdD03Jm9yZGVyYnk9ZmF2b3VyaXRlcyZ1aWQ9MQBQSUNPLTgAeyBpZiAodHlwZW9mIHBpY284X2dwaW8gIT09ICd1bmRlZmluZWQnKSBwaWNvOF9ncGlvWyQwXT0kMX0Ae3ZhciB2YWw9MDsgaWYgKHR5cGVvZiBwaWNvOF9ncGlvICE9PSAndW5kZWZpbmVkJykgdmFsID0gcGljbzhfZ3Bpb1skMF07IHJldHVybiB2YWx9AGhlbGxvLnA4AGFwaS5wOABhdXRvbWF0YS5wOABib3VuY2UucDgAY2FzdC5wOABjb2xsaWRlLnA4AGRvdHMzZC5wOABkcmlwcHkucDgAamVscGkucDgAc29ydC5wOAB3YW5kZXIucDgAd2F2ZXMucDgAMTUxMzMAMTk2MzkAMTAwMjIAMTk0ODgAMTg5NzMANDE0MjIANTcyMDEAY2VsZXN0ZS5wOC5wbmcAZnJvZ19ob21lLnA4LnBuZwBodWdfYXJlbmEucDgucG5nAGFyY2hlb3MucDgucG5nAGR1c2tfY2hpbGQucDgucG5nADhfbGVnc190b19sb3ZlLnA4LnBuZwBlbWJyYWNlLnA4LnBuZwBjZWxlc3RlAGZyb2cgaG9tZQBodWcgYXJlbmEAdG93ZXIgb2YgYXJjaGVvcwBkdXNrIGNoaWxkADggbGVncyB0byBsb3ZlAGVtYnJhY2UAaW5zdGFsbGluZyBkZW1vIGNhcnRzIHRvIC9kZW1vcy8AZGVtb3MvAGNvdWxkIG5vdCB3cml0ZSB0byBkaXNrAGZhdm91cml0ZXMudHh0AGdhbWVzLwAjaW5jbHVkZSAAY2FuIG5vdCAjaW5jbHVkZQBzZXJpYWwgYnVmZmVyIG92ZXJmbG93ACUxMDIzcwBmcmVxAGRtYQB0eXBlAGJyaWdodG5lc3MAaW52ZXJ0AGxlZHMAcGljby04IDAuMi43AChjKSAyMDE0LTI1IGxleGFsb2ZmbGUgZ2FtZXMgbGxwAGJvb3RpbmcgY2FydHJpZGdlLi4AW2NvZG9dICVzAD5jb2RvX2luaXQKAHBsYXRmb3JtOiAlcwoARW1zY3JpcHRlbgBjb2RvX3N5c3RlbV9pbml0CgBjb2RvX3Jlc2V0X3RpbWVyCgBjb2RvX2d1aV9pbml0CgBjb2RvX2tleXNfaW5pdAoAY29kb190ZXh0X2luaXQKAGNvZG9fdmlkZW9faW5pdAoAY29kb19tb3VzZV9pbml0CgBjb2RvX2pveXN0aWNrX2luaXQKADxvawoAd2lkdGgAaGVpZ2h0AHdpbmRvd194AHdpbmRvd195AHNvdW5kAG11c2ljAHNvZnR3YXJlX2JsaXQAc29mdHdhcmVfYmxpdHRlcgBob21lAGRlc2t0b3AAcGl4ZWxfcGVyZmVjdABkcmF3X3JlY3QAdGltZW91dABoZWFkbGVzcwBwZXJmX3RpbWluZwBmcmFtZWJ1ZmZlcgBlbXVsYXRlX3RleHRpbnB1dABkZWZlcnJlZF9kZWFsbG9jAGV4dF9kaXNwbGF5AHByZWJsaXRfc2NhbGUAZGlzcGxheQBsb2dfc3lzdGVtX2luZm8AJWQAJWQsJWQsJWQsJWQAPmNvZG9fZXhpdAoAY211c2ljX3N0b3AKAGNvZG9fbWFpbl9leGl0CgBjb2RvX2NvbmZpZ19zYXZlCgBjb2RvX3NvdW5kX2V4aXQKAGNvZG9fdmlkZW9fZXhpdAoAY29kb19qb3lzdGlja19leGl0CgBjb2RvX3N5c3RlbV9leGl0CgBjb2RvX2l0ZW1zX2NyZWF0ZWQ6ICVkCgBGUy5zeW5jZnMoIGZhbHNlLCBmdW5jdGlvbiAoZXJyKSB7IH0gKTsAJTIwczolMDNkICAgACAgLj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0sACAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ACAgfCAgVG8gbWFwIGtleSBBIHRvIEIgKHdoZW4gQSBpcyBwcmVzc2VkLCBpdCBzaG93cyB1cCBhcyBpZiBCIHdlcmUgcHJlc3NlZCksICB8ACAgfCAgcHJlc3MgQSB0byBnZXQgdGhlIHNjYW5jb2RlLCBhbmQgbG9vayB1cCBCIGluIHRoZSBsaXN0LiBUaGVuLCBhZGQgaXQgdG8gICB8ACAgfCAgbWFwX3NjYW5jb2RlcyBpbiBjb25maWcudHh0LiBGb3IgZXhhbXBsZSwgdG8gbWFwIGJhY2tzcGFjZSAoNDIpIGFzICAgICAgICB8ACAgfCAgZXNjYXBlICg0MSksIGFuZCBhbHNvIHJpZ2h0IHNoaWZ0KDIyOSkgYXMgcmlnaHQgY3Vyc29yIGtleSAoNzkpOiAgICAgICAgICB8ACAgfCAgbWFwX3NjYW5jb2RlcyA0Mj00MSwyMjk9NzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ACAgfCAgTm90ZTogdGhpcyBkb2VzIG5vdCBhcHBseSB0byB0ZXh0aW5wdXQgZXZlbnRzIG1hcHBlZCB2aWEga2JkIGxheW91dC4gICAgICB8ACAgYD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nADo6IHNjYW5jb2RlIHZpZXdlciAgICAvLyBhbHQrZjQgLyBjdHJsLXEgdG8gcXVpdAAlMDNkAHByZXNzZWQgc2NhbmNvZGU6JTRkICAgIG5hbWU6JTE2cwoALXNjYW5jb2RlcwBjb2RvX2Rlc3Ryb3lfcG9kOiBjcG9kLT5pdGVtcyAhPSAwCgBCYWQgY3BvZF9hZGRfaXRlbSB0eXBlAEJhZCBjcG9kX2FkZF9pdGVtAENPTgBQUk4AQVVYAE5VTABDT00wAENPTTEAQ09NMgBDT00zAENPTTQAQ09NNQBDT002AENPTTcAQ09NOABDT005AExQVDAATFBUMQBMUFQyAExQVDMATFBUNABMUFQ1AExQVDYATFBUNwBMUFQ4AExQVDkAY29kb19sb2FkX3BvZF9maWxlOiBVbmtub3duIENodW5rIQoAcmIAZmFpbGVkAG9rAGNvZG9fbG9hZF9wb2Q6ICVzICVzIAoAKiogd2ViIGZpbGUgc3lzdGVtIG5vdCBtb3VudGVkLiByZXR1cm5pbmcgdmRpc2sgZmlsZTogJXMgKCVzKQoAIC0+IHJldHVybmluZyB2ZGlzayBmaWxlOiAlcyAoJXMpCgBjb2RvX3NwbGl0X2ZpbGVuYW1lX2V4OiBmaWxlX25hbWUgdG9vIGxvbmcKACJ7cmV0dXJuICgodHlwZW9mIHA4X3RvdWNoX2RldGVjdGVkID09PSAndW5kZWZpbmVkJykgfHwgIXA4X3RvdWNoX2RldGVjdGVkKSA/IDAgOiAxO30iAEBAIGRlZmF1bHQgbWl4X2J1ZmZlcl9zaXplIGFkanVzdGVkIHRvIDIwNDggKE1vYmlsZSkAY29uZmlnLnR4dABGb3VuZCBjb25maWcudHh0CgA+CgAlMDJkICVzCgB2aWRlb19tb2RlACAlZCAlZAB3aW5kb3dfc2l6ZQBzY3JlZW5fc2l6ZQB3aW5kb3dlZAAgJWQAZm9yZWdyb3VuZF9zbGVlcF9tcwBiYWNrZ3JvdW5kX3NsZWVwX21zAHNvdW5kX3ZvbHVtZQBtdXNpY192b2x1bWUAbWl4X2J1ZmZlcl9zaXplAHdpbmRpYgBvcGVuZ2xfYmxpdABzaG93X2ZwcwBsYXJnZV93aW5kb3cAZnJhbWVsZXNzAHdpbmRvd19wb3NpdGlvbgBuZXcgd2luZG93IHBvc2l0aW9uOiAlZCwgJWQKAHNlc3Npb25zAHJtYl9rZXkAZGVza3RvcF9wYXRoAGZ1bGxzY3JlZW5fbWV0aG9kAGJsaXRfbWV0aG9kAHJlYWRfY29udHJvbGxlcnNfaW5fYmFja2dyb3VuZABtYXBfc2NhbmNvZGVzACVkPSVkAHVzZV93Z2V0ADwKAHcAc291bmRfdm9sdW1lICVkIC8vIDAuLjI1NgoAbXVzaWNfdm9sdW1lICVkIC8vIDAuLjI1NgoALi4AfgBjb2RvX3NhdmVfcG5nIHJlc3VsdDogJWQgIGZpbGU6ICVzCgAKQXNzZXJ0aW9uIGZhaWxlZDogJXMKAENvdWxkIG5vdCBhbGxvY2F0ZSB2ZXJ0ZXgAQ291bGQgbm90IGFsbG9jYXRlIGJvbmVfdmVydGV4AENvdWxkIG5vdCBhbGxvY2F0ZSBwb2x5AGFjdG9yJWQAIABJSERSAFBMVEUAYktHRABwSFlzAElEQVQAdElNRQB6VFh0AExvZGVQTkcAMjAxMTAyMjEAaVRYdAB0RVh0AHRSTlMAY29kb19mcmVlIGZhaWwgJXggJXgKACUwOHglMDh4JTA4eCUwOHglMDh4ACJ7cmV0dXJuIGRvY3VtZW50LmhpZGRlbiA/IDEgOiAwO30iAGNvZG9fc291bmRfaW5pdCBtaXhfYnVmZmVyX3NpemU6ICVkCgBjb2RvX3NldF9zY3JlZW4gJWQgJWQgJWQgJXgKAHJldHJpZXZpbmcgZGVza3RvcCByZXNvbHV0aW9uOiAlZCAlZAoAIHdpbmRvdyBzaXplOiAlZCAlZAoAIGRlc2t0b3Agc2l6ZTogJWQgJWQKAG9rCgAlWS0lbS0lZCAlSDolTTolUwAlcy8lcwAqACVkLSVkLSVkICVkOiVkOiVkAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgAxADIAMwA0ADUANgA3ADgAOQAwAFJldHVybgBFc2NhcGUAQmFja3NwYWNlAFRhYgBTcGFjZQAtAD0AWwBdAFNsYXNoACMAOwAnAGAALAAvAENhcHNMb2NrAEYxAEYyAEYzAEY0AEY1AEY2AEY3AEY4AEY5AEYxMABGMTEARjEyAFByaW50U2NyZWVuAFNjcm9sbExvY2sAUGF1c2UASW5zZXJ0AEhvbWUAUGFnZVVwAERlbGV0ZQBFbmQAUGFnZURvd24AUmlnaHQATGVmdABEb3duAFVwAE51bWxvY2sAS2V5cGFkIC8AS2V5cGFkICoAS2V5cGFkIC0AS2V5cGFkICsAS2V5cGFkIEVudGVyAEtleXBhZCAxAEtleXBhZCAyAEtleXBhZCAzAEtleXBhZCA0AEtleXBhZCA1AEtleXBhZCA2AEtleXBhZCA3AEtleXBhZCA4AEtleXBhZCA5AEtleXBhZCAwAEtleXBhZCAuAEFwcGxpY2F0aW9uAFBvd2VyAEtleXBhZCA9AEYxMwBGMTQARjE1AEYxNgBGMTcARjE4AEYxOQBGMjAARjIxAEYyMgBGMjMARjI0AEV4ZWN1dGUASGVscABNZW51AFNlbGVjdABTdG9wAEFnYWluAFVuZG8AQ3V0AENvcHkAUGFzdGUARmluZABNdXRlAFZvbHVtZVVwAFZvbHVtZURvd24AS2V5cGFkICwAS2V5cGFkID0gKEFTNDAwKQBBbHRFcmFzZQBTeXNSZXEAQ2FuY2VsAENsZWFyAFByaW9yAFNlcGFyYXRvcgBPdXQAT3BlcgBDbGVhciAvIEFnYWluAENyU2VsAEV4U2VsAEtleXBhZCAwMABLZXlwYWQgMDAwAFRob3VzYW5kc1NlcGFyYXRvcgBEZWNpbWFsU2VwYXJhdG9yAEN1cnJlbmN5VW5pdABDdXJyZW5jeVN1YlVuaXQAS2V5cGFkICgAS2V5cGFkICkAS2V5cGFkIHsAS2V5cGFkIH0AS2V5cGFkIFRhYgBLZXlwYWQgQmFja3NwYWNlAEtleXBhZCBBAEtleXBhZCBCAEtleXBhZCBDAEtleXBhZCBEAEtleXBhZCBFAEtleXBhZCBGAEtleXBhZCBYT1IAS2V5cGFkIF4AS2V5cGFkICUAS2V5cGFkIDwAS2V5cGFkID4AS2V5cGFkICYAS2V5cGFkICYmAEtleXBhZCB8AEtleXBhZCB8fABLZXlwYWQgOgBLZXlwYWQgIwBLZXlwYWQgU3BhY2UAS2V5cGFkIEAAS2V5cGFkICEAS2V5cGFkIE1lbVN0b3JlAEtleXBhZCBNZW1SZWNhbGwAS2V5cGFkIE1lbUNsZWFyAEtleXBhZCBNZW1BZGQAS2V5cGFkIE1lbVN1YnRyYWN0AEtleXBhZCBNZW1NdWx0aXBseQBLZXlwYWQgTWVtRGl2aWRlAEtleXBhZCArLy0AS2V5cGFkIENsZWFyAEtleXBhZCBDbGVhckVudHJ5AEtleXBhZCBCaW5hcnkAS2V5cGFkIE9jdGFsAEtleXBhZCBEZWNpbWFsAEtleXBhZCBIZXhhZGVjaW1hbABMZWZ0IEN0cmwATGVmdCBTaGlmdABMZWZ0IEFsdABMZWZ0IEdVSQBSaWdodCBDdHJsAFJpZ2h0IFNoaWZ0AFJpZ2h0IEFsdABSaWdodCBHVUkATW9kZVN3aXRjaABBdWRpb05leHQAQXVkaW9QcmV2AEF1ZGlvU3RvcABBdWRpb1BsYXkAQXVkaW9NdXRlAE1lZGlhU2VsZWN0AFdXVwBNYWlsAENhbGN1bGF0b3IAQ29tcHV0ZXIAQUMgU2VhcmNoAEFDIEhvbWUAQUMgQmFjawBBQyBGb3J3YXJkAEFDIFN0b3AAQUMgUmVmcmVzaABBQyBCb29rbWFya3MAQnJpZ2h0bmVzc0Rvd24AQnJpZ2h0bmVzc1VwAERpc3BsYXlTd2l0Y2gAS0JESWxsdW1Ub2dnbGUAS0JESWxsdW1Eb3duAEtCRElsbHVtVXAARWplY3QAU2xlZXAAQXBwMQBBcHAyAEF1ZGlvUmV3aW5kAEF1ZGlvRmFzdEZvcndhcmQAVW5hYmxlIHRvIGluaXRpYWxpemUgU0RMAGlmICh0eXBlb2YgY29kb19rZXlfYnVmZmVyID09PSAndW5kZWZpbmVkJykgY29kb19rZXlfYnVmZmVyID0gW107IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7IHZhciB2YWwgPSAtMTsgaWYgKGUua2V5Lmxlbmd0aCA9PSAxKSB7IHZhbCA9IGUua2V5LmNoYXJDb2RlQXQoMCk7IH0gZWxzZSB7IGlmIChlLmtleSA9PSAiVGFiIikgdmFsID0gOTsgaWYgKGUua2V5ID09ICJFbnRlciIpIHZhbCA9IDEzOyBpZiAoZS5rZXkgPT0gIkJhY2tzcGFjZSIpIHZhbCA9IDg7IGlmIChlLmtleSA9PSAiRXNjYXBlIikgdmFsID0gMjc7IGlmICh2YWwgPT0gLTEpeyB9IH0gdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvZG9fdGV4dGFyZWEiKTsgY29kb19rZXlfYnVmZmVyLnB1c2godmFsKTsgfSk7AHZhciBfY29kb190ZXh0X3ZhbHVlID0gIiI7IHZhciBfY29kb19zdHJfb3V0ID0gIiI7IHZhciBjb2RvX3doZWVsX2R4ID0gMDsgdmFyIGNvZG9fd2hlZWxfZHkgPSAwOyBhZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBmdW5jdGlvbihldmVudCl7IGlmICh0eXBlb2YgcGljbzhfc3RhdGUgIT09ICd1bmRlZmluZWQnKSBpZiAoZXZlbnQudGFyZ2V0LnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPSAiY2FudmFzIikgeyBwaWNvOF9zdGF0ZS5jbGlja2VkX291dHNpZGUgPSB0cnVlOyB9IH0pOwBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIGZ1bmN0aW9uKGUpeyBkeCA9IGUuZGVsdGFYOyBpZiAoZHggPCAwKSBkeCA9IC0xOyBpZiAoZHggPiAwKSBkeCA9IDE7IGlmIChlLmRlbHRhTW9kZSA9PSAyKSBkeCAqPSA0OyBpZiAodHlwZW9mIGNvZG9fd2hlZWxfZHggIT09ICd1bmRlZmluZWQnKSBjb2RvX3doZWVsX2R4IC09IGR4OyBkeSA9IGUuZGVsdGFZOyBpZiAoZHkgPCAwKSBkeSA9IC0xOyBpZiAoZHkgPiAwKSBkeSA9IDE7IGlmIChlLmRlbHRhTW9kZSA9PSAyKSBkeSAqPSA0OyBpZiAodHlwZW9mIGNvZG9fd2hlZWxfZHkgIT09ICd1bmRlZmluZWQnKSBjb2RvX3doZWVsX2R5IC09IGR5OyB9KTsACgoqKiBGQVRBTCBFUlJPUjogJXMKCgBTREwgRXJyb3I6ICVzCgAie3ZhciByZXQgPSAwOyBpZiAodHlwZW9mIHBpY284X21vdXNlICE9PSAndW5kZWZpbmVkJyAmJiBwaWNvOF9tb3VzZS5sZW5ndGggPiAwKSByZXQ9MTsgcmV0dXJuIHJldDt9IgAie3JldHVybiBwaWNvOF9tb3VzZVswXX0iACJ7cmV0dXJuIHBpY284X21vdXNlWzFdfSIAZnVuY3Rpb24gYXVkaW9fbG9nKG1zZykgeyBpZiAod2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNvbGUubG9nKSB7IHdpbmRvdy5jb25zb2xlLmxvZygiW2NvZG9dIGF1ZGlvX2luaXRfd2ViYXVkaW8gIittc2cpOyB9IH0gYXVkaW9fbG9nKCJhdWRpb19pbml0Iik7IHZhciBjb2RvX2F1ZGlvX2NvbnRleHQ7IGlmICh0eXBlb2YgTW9kdWxlID09PSAndW5kZWZpbmVkJykgYXVkaW9fbG9nKCIgKioqIE1vZHVsZSB1bmRlZmluZWQiKTsgZWxzZSBpZiAodHlwZW9mIE1vZHVsZS5jY2FsbCA9PT0gJ3VuZGVmaW5lZCcpIGF1ZGlvX2xvZygiICoqKiogTW9kdWxlLmNjYWxsIHVuZGVmaW5lZCIpOyBlbHNlIHsgdmFyIHdlYkF1ZGlvQVBJID0gd2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0IHx8IHdpbmRvdy5tb3pBdWRpb0NvbnRleHQgfHwgd2luZG93Lm9BdWRpb0NvbnRleHQgfHwgd2luZG93Lm1zQXVkaW9Db250ZXh0OyBpZiAod2ViQXVkaW9BUEkpIHsgaWYgKHR5cGVvZiBwaWNvOF9hdWRpb19jb250ZXh0ICE9PSAndW5kZWZpbmVkJykgeyBjb2RvX2F1ZGlvX2NvbnRleHQgPSBwaWNvOF9hdWRpb19jb250ZXh0OyBhdWRpb19sb2coImZvdW5kIHBpY284X2F1ZGlvX2NvbnRleHQiKTsgfSBlbHNlIGlmICh0eXBlb2Ygdm94YXRyb25fYXVkaW9fY29udGV4dCAhPT0gJ3VuZGVmaW5lZCcpIHsgY29kb19hdWRpb19jb250ZXh0ID0gdm94YXRyb25fYXVkaW9fY29udGV4dDsgYXVkaW9fbG9nKCJmb3VuZCB2b3hhdHJvbl9hdWRpb19jb250ZXh0Iik7IH0gZWxzZSB7IGNvZG9fYXVkaW9fY29udGV4dCA9IG5ldyB3ZWJBdWRpb0FQSTsgYXVkaW9fbG9nKCJjcmVhdGluZyBvd24gYXVkaW8gY29udGV4dCIpOyB9IGlmIChjb2RvX2F1ZGlvX2NvbnRleHQpIHsgYXVkaW9fbG9nKCJTYW1wbGUgUmF0ZTogIitjb2RvX2F1ZGlvX2NvbnRleHQuc2FtcGxlUmF0ZSk7IGF1ZGlvX2xvZygiQnVmZmVyIFNpemU6ICIrJDApOyBub2RlID0gY29kb19hdWRpb19jb250ZXh0LmNyZWF0ZVNjcmlwdFByb2Nlc3NvcigkMCwgMSwgMSk7IG5vZGUub25hdWRpb3Byb2Nlc3MgPSBmdW5jdGlvbihlKSB7IHZhciBkYXRhID0gZS5vdXRwdXRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7IHZhciByID0gMjIwNTAuMCAvIGNvZG9fYXVkaW9fY29udGV4dC5zYW1wbGVSYXRlOyB2YXIgbGVuMCA9IE1hdGguZmxvb3IoZGF0YS5sZW5ndGggKiByKTsgdmFyIGxlbjEgPSBkYXRhLmxlbmd0aDsgdmFyIHB0ciA9IE1vZHVsZS5jY2FsbCgnbWl4XzAnLCAnbnVtYmVyJywgWydudW1iZXInLCAnbnVtYmVyJ10sIFtsZW4wLCBsZW4xXSk7IGZvciAodmFyIGogPSAwOyBqIDwgZGF0YS5sZW5ndGg7IGorKykgZGF0YVtqXSA9IE1vZHVsZS5nZXRWYWx1ZShwdHIgKyBqKjIsICdpMTYnKSAvIDB4ODAwMDsgfTsgbm9kZS5jb25uZWN0KGNvZG9fYXVkaW9fY29udGV4dC5kZXN0aW5hdGlvbik7IH0gZWxzZSB7IGF1ZGlvX2xvZygiKiogZmFpbGVkIHRvIGNyZWF0ZSBjb2RvX2F1ZGlvX2NvbnRleHQiKTsgfSB9IGVsc2UgeyBhdWRpb19sb2coIioqIHdlYkF1ZGlvQVBJIG5vdCBmb3VuZCIpOyB9IH0AIntyZXR1cm4gZG9jdW1lbnQucG9pbnRlckxvY2tFbGVtZW50ID8gMSA6IDA7fSIAImlmICh0eXBlb2YgY29kb19rZXlfYnVmZmVyID09PSAndW5kZWZpbmVkJykgY29kb19rZXlfYnVmZmVyID0gW107IHJldHVybiBjb2RvX2tleV9idWZmZXIubGVuZ3RoID4gMCA/IDEgOiAwOyIAImlmICh0eXBlb2YgY29kb19rZXlfYnVmZmVyID09PSAndW5kZWZpbmVkJykgY29kb19rZXlfYnVmZmVyID0gW107IGxldCB2YWwgPSBjb2RvX2tleV9idWZmZXIuc2hpZnQoKSB8IDA7IHJldHVybiB2YWw7IgAie3RlbXAgPSAodHlwZW9mIGNvZG9fd2hlZWxfZHggIT09ICd1bmRlZmluZWQnKSA/IGNvZG9fd2hlZWxfZHg6MDsgY29kb193aGVlbF9keCA9IDA7IHJldHVybiB0ZW1wO30iACJ7dGVtcCA9ICh0eXBlb2YgY29kb193aGVlbF9keSAhPT0gJ3VuZGVmaW5lZCcpID8gY29kb193aGVlbF9keTowOyBjb2RvX3doZWVsX2R5ID0gMDsgcmV0dXJuIHRlbXA7fSIAInsgaWYgKGRvY3VtZW50LmhpZGRlbikgcmV0dXJuIDA7IGVsID0gKHR5cGVvZiBjb2RvX3RleHRhcmVhID09PSAndW5kZWZpbmVkJykgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNvZG9fdGV4dGFyZWFcIikgOiBjb2RvX3RleHRhcmVhOyBpZiAoZWwgJiYgZWwgPT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkgcmV0dXJuIDE7IGVsID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsgcmV0dXJuICghZWwgfHwgKGVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPSBcImlucHV0XCIgJiYgZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9IFwidGV4dGFyZWFcIikpOyB9IgAieyBpZiAoKHR5cGVvZiBwaWNvOF9zdGF0ZSkgIT09ICd1bmRlZmluZWQnKSBpZiAocGljbzhfc3RhdGUuY2xpY2tlZF9vdXRzaWRlKSB7IHBpY284X3N0YXRlLmNsaWNrZWRfb3V0c2lkZSA9IGZhbHNlOyByZXR1cm4gMTsgfSByZXR1cm4gMDsgfSIAZWwgPSAodHlwZW9mIGNvZG9fdGV4dGFyZWEgPT09ICd1bmRlZmluZWQnKSA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2RvX3RleHRhcmVhIikgOiBjb2RvX3RleHRhcmVhOyBpZiAoZWwgJiYgZWwuc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsgZWwuZm9jdXMoKTsgZWwuc2VsZWN0KCk7IH0AZWwgPSAodHlwZW9mIGNvZG9fdGV4dGFyZWEgPT09ICd1bmRlZmluZWQnKSA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2RvX3RleHRhcmVhIikgOiBjb2RvX3RleHRhcmVhOyBpZiAoZWwgJiYgZWwuc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsgZWwuc2VsZWN0KCk7IH0AIntyZXR1cm4gcGljbzhfbW91c2VbMl19IgAvdXNlcl9kYXRhLyVzACJ7dmFyIHZhbD0wOyBpZiAodHlwZW9mIGNvZG9fbW91bnRlZF9maWxlc3lzdGVtICE9PSAndW5kZWZpbmVkJykgdmFsPTE7IHJldHVybiB2YWw7fSIAQEAgY29kb19ta2RpciBmYWlsZWQ7IGZpbGVzeXN0ZW0gbm90IG1vdW50ZWQAX2Rpcl9uYW1lPSIiOwB7X2Rpcl9uYW1lPV9kaXJfbmFtZStTdHJpbmcuZnJvbUNoYXJDb2RlKCQwKTt9AEZTLmNyZWF0ZVBhdGgoIiIsIF9kaXJfbmFtZSwgdHJ1ZSwgdHJ1ZSk7AFtjb2RvXSBleGl0aW5nIHBvaW50ZXIgbG9jawB7TW9kdWxlWydjYW52YXMnXS5leGl0UG9pbnRlckxvY2soKTt9AEBAIGNvZG9fd2dldF9vbmVycm9yOiAlcwoAZWwgPSAodHlwZW9mIGNvZG9fdGV4dGFyZWEgPT09ICd1bmRlZmluZWQnKSA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2RvX3RleHRhcmVhIikgOiBjb2RvX3RleHRhcmVhOyBpZiAoZWwpIHsgfQBfY29kb19zdHJfb3V0PSIiOwB7IF9jb2RvX3N0cl9vdXQgPSBNb2R1bGUuVVRGOFRvU3RyaW5nKCQwLCAkMSk7IH0AInsgZWwgPSAodHlwZW9mIGNvZG9fdGV4dGFyZWEgPT09ICd1bmRlZmluZWQnKSA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiY29kb190ZXh0YXJlYVwiKSA6IGNvZG9fdGV4dGFyZWE7IGlmIChlbCkgeyBlbC52YWx1ZSA9IF9jb2RvX3N0cl9vdXQ7IHJldHVybiAwOyB9IGVsc2UgcmV0dXJuIDE7IH0iAGVsID0gKHR5cGVvZiBjb2RvX3RleHRhcmVhID09PSAndW5kZWZpbmVkJykgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29kb190ZXh0YXJlYSIpIDogY29kb190ZXh0YXJlYTsgaWYgKGVsICYmIGVsLnN0eWxlLmRpc3BsYXkgPT0gIm5vbmUiICYmICgodHlwZW9mIHA4X3RvdWNoX2RldGVjdGVkID09PSAndW5kZWZpbmVkJykgfHwgIXA4X3RvdWNoX2RldGVjdGVkKSkgeyBlbC5zdHlsZS5kaXNwbGF5ID0gIiI7IGVsLmZvY3VzKCk7IGVsLnNlbGVjdCgpOyB9AHsgTW9kdWxlLnN0cmluZ1RvVVRGOChfY29kb190ZXh0X3ZhbHVlLCAkMCwgJDEpOyB9ACJlbCA9ICh0eXBlb2YgY29kb190ZXh0YXJlYSA9PT0gJ3VuZGVmaW5lZCcpID8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjb2RvX3RleHRhcmVhXCIpIDogY29kb190ZXh0YXJlYTsgaWYgKGVsICYmIGVsLnN0eWxlLmRpc3BsYXkgIT0gXCJub25lXCIgJiYgZWwudmFsdWUgIT0gXCJcIikgeyBfY29kb190ZXh0X3ZhbHVlID0gZWwudmFsdWU7IHJldHVybiAxOyB9IHJldHVybiAwOyIAJXMlcwBwaWNvLTggY2FydHJpZGdlAHZlcnNpb24gJWQAIyNlbmRfcDgAX19sdWFfXwBfX2dmeF9fAF9fZ2ZmX18AX19tYXBfXwBfX3NmeF9fAF9fbXVzaWNfXwBfX2xhYmVsX18AX19jaGFuZ2VfbWFza19fAF9fbWV0YToAJTAyeCUwMnglMDJ4JTAyeAAlMDJ4JTF4JTF4JTF4ACUwMnggAAoAcgBwaWNvLTggY2FydHJpZGdlIC8vIGh0dHA6Ly93d3cucGljby04LmNvbQoAdmVyc2lvbiAlZAoAX19sdWFfXwoAX19nZnhfXwoAJXgAX19sYWJlbF9fCgBfX2dmZl9fCgAlMDJ4AF9fbWFwX18KAF9fc2Z4X18KACUwMngleCV4JXgAX19tdXNpY19fCgAlMDJ4JTAyeCUwMnglMDJ4CgBfX2NoYW5nZV9tYXNrX18KAHdiAGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5XwBAJSQAI14/ACgpe31bXTw+ACFAIyQlXiYqOjsuLH49Ky0vXGAnIgAtKyAgIDBYMHgAKG51bGwpAC0wWCswWCAwWC0weCsweCAweABpbmYASU5GAE5BTgAAAQIEBwMGBQBpbmZpbml0eQBuYW4AcndhAC4=";var tempDoublePtr=3196608;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(19)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(6)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(5)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(11)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(6)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(5)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(1)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[2]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(39)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name]},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(39)}delete parent.contents[name]},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(22)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(22)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(19)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(12)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(19)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var IDBFS={dbs:{},indexedDB:function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:function(mount,populate,callback){IDBFS.getLocalSet(mount,function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},getDB:function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=function(e){callback(this.error);e.preventDefault()}},getLocalSet:function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return function(p){return PATH.join2(root,p)}}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,function(err,db){if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=function(e){callback(this.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)},removeLocalEntry:function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:function(store,path,callback){var req=store.get(path);req.onsuccess=function(event){callback(null,event.target.result)};req.onerror=function(e){callback(this.error);e.preventDefault()}},storeRemoteEntry:function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=function(){callback(null)};req.onerror=function(e){callback(this.error);e.preventDefault()}},removeRemoteEntry:function(store,path,callback){var req=store.delete(path);req.onsuccess=function(){callback(null)};req.onerror=function(e){callback(this.error);e.preventDefault()}},reconcile:function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=function(e){done(this.error);e.preventDefault()};create.sort().forEach(function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var NODEFS={isWindows:false,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"]}},bufferFrom:function(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer)},mount:function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode:function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(22)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode:function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}return stat.mode},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},flagsForNode:function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}else{throw new FS.ErrnoError(22)}},node_ops:{getattr:function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},lookup:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod:function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}return node},rename:function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},unlink:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},rmdir:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},readdir:function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},readlink:function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}}},stream_ops:{open:function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},close:function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},read:function(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(-e.errno)}},write:function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(-e.errno)}},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(-e.errno)}}}if(position<0){throw new FS.ErrnoError(22)}return position}}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)});(mount.opts["blobs"]||[]).forEach(function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])});(mount.opts["packages"]||[]).forEach(function(pack){pack["metadata"].files.forEach(function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))})});return root},createNode:function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node},node_ops:{getattr:function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}},lookup:function(parent,name){throw new FS.ErrnoError(2)},mknod:function(parent,name,mode,dev){throw new FS.ErrnoError(1)},rename:function(oldNode,newDir,newName){throw new FS.ErrnoError(1)},unlink:function(parent,name){throw new FS.ErrnoError(1)},rmdir:function(parent,name){throw new FS.ErrnoError(1)},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newName,oldPath){throw new FS.ErrnoError(1)},readlink:function(node){throw new FS.ErrnoError(1)}},stream_ops:{read:function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(5)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(22)}return position}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(40)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(40)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 13}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 13}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 13}return 0},mayLookup:function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return 13;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 17}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return 20}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 16}}else{if(FS.isDir(node.mode)){return 21}}return 0},mayOpen:function(node,flags){if(!node){return 2}if(FS.isLink(node.mode)){return 40}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 21}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(24)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(29)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(16)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(20)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(22)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(22)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(1)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=17)throw e}}},mkdev:function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(2)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(2)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(1)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(16)}if(!old_dir||!new_dir)throw new FS.ErrnoError(2);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(18)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(22)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(39)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(1)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(16)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(1)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(20)}return node.node_ops.readdir(node)},unlink:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(1)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(2)}if(!link.node_ops.readlink){throw new FS.ErrnoError(22)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(2)}if(!node.node_ops.getattr){throw new FS.ErrnoError(1)}return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(1)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(9)}FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(1)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(9)}FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0){throw new FS.ErrnoError(22)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(1)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(21)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(22)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(9)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(22)}FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(2)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(17)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(2)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(20)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;console.log("FS.trackingDelegate error on read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream},close:function(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:function(stream){return stream.fd===null},llseek:function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(29)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(22)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(22)}if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(9)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(21)}if(!stream.stream_ops.read){throw new FS.ErrnoError(22)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(29)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(22)}if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(9)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(21)}if(!stream.stream_ops.write){throw new FS.ErrnoError(22)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(29)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: "+e.message)}return bytesWritten},allocate:function(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if(offset<0||length<=0){throw new FS.ErrnoError(22)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(9)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(19)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(95)}stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(13)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(19)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(25)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(2)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(20)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);random_device=function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");random_device=function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}else{}if(!random_device){random_device=function(){abort("random_device")}}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(9);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");var stdout=FS.open("/dev/stdout","w");var stderr=FS.open("/dev/stderr","w")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error";if(this.stack)Object.defineProperty(this,"stack",{value:(new Error).stack,writable:true})};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[2].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},joinPath:function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path},absolutePath:function(relative,base){return PATH_FS.resolve(base,relative)},standardizePath:function(path){return PATH.normalize(path)},findObject:function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}},analyzePath:function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createFolder:function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)},createPath:function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function(stream){stream.seekable=false},close:function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}},read:function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(5)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(11)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(5)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},createLink:function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)},forceLoadFile:function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(5);return success},createLazyFile:function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node},createPreloadedFile:function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep)});handled=true}});if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,function(byteArray){processData(byteArray)},onerror)}else{processData(url)}},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var browserIterationFunc;if(typeof arg!=="undefined"){browserIterationFunc=function(){Module["dynCall_vi"](func,arg)}}else{browserIterationFunc=function(){Module["dynCall_v"](func)}}var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}if(Browser.mainLoop.method==="timeout"&&Module.ctx){err("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(browserIterationFunc);if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining<expected){Module["setStatus"](message+" ("+(expected-remaining)+"/"+expected+")")}else{Module["setStatus"](message)}}else{Module["setStatus"]("")}}},runIter:function(func){if(ABORT)return;if(Module["preMainLoop"]){var preRet=Module["preMainLoop"]();if(preRet===false){return}}try{func()}catch(e){if(e instanceof ExitStatus){return}else{if(e&&typeof e==="object"&&e.stack)err("exception thrown: "+[e,e.stack]);throw e}}if(Module["postMainLoop"])Module["postMainLoop"]()}},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(!Module["preloadPlugins"])Module["preloadPlugins"]=[];if(Browser.initted)return;Browser.initted=true;try{new Blob;Browser.hasBlobConstructor=true}catch(e){Browser.hasBlobConstructor=false;console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:!Browser.hasBlobConstructor?console.log("warning: no BlobBuilder"):null;Browser.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:undefined;if(!Module.noImageDecoding&&typeof Browser.URLObject==="undefined"){console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");Module.noImageDecoding=true}var imagePlugin={};imagePlugin["canHandle"]=function imagePlugin_canHandle(name){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(name)};imagePlugin["handle"]=function imagePlugin_handle(byteArray,name,onload,onerror){var b=null;if(Browser.hasBlobConstructor){try{b=new Blob([byteArray],{type:Browser.getMimetype(name)});if(b.size!==byteArray.length){b=new Blob([new Uint8Array(byteArray).buffer],{type:Browser.getMimetype(name)})}}catch(e){warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}}if(!b){var bb=new Browser.BlobBuilder;bb.append(new Uint8Array(byteArray).buffer);b=bb.getBlob()}var url=Browser.URLObject.createObjectURL(b);var img=new Image;img.onload=function img_onload(){assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);Module["preloadedImages"][name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=function img_onerror(event){console.log("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;Module["preloadedAudios"][name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;Module["preloadedAudios"][name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",function(){finish(audio)},false);audio.onerror=function audio_onerror(event){if(done)return;console.log("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i<data.length;i++){leftchar=leftchar<<8|data[i];leftbits+=8;while(leftbits>=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas,vrDevice){lockPointer=false;console.log("forcing lockPointer to false");Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=false;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};canvas.exitFullscreen=canvas.exitFullscreen.bind(document);Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);if(vrDevice){canvasContainer.requestFullscreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullscreen()}},requestFullScreen:function(lockPointer,resizeCanvas,vrDevice){err("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.");Browser.requestFullScreen=function(lockPointer,resizeCanvas,vrDevice){return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:function(func){return function(){if(!ABORT)return func.apply(null,arguments)}},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=false},resumeAsyncCallbacks:function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach(function(func){func()})}},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}})},safeSetTimeout:function(func,timeout){Module["noExitRuntime"]=true;return setTimeout(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}},timeout)},safeSetInterval:function(func,timeout){Module["noExitRuntime"]=true;return setInterval(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}},timeout)},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},asyncLoad:function(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency("al "+url):"";Module["readAsync"](url,function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h<Module["forcedAspectRatio"]){w=Math.round(h*Module["forcedAspectRatio"])}else{h=Math.round(w/Module["forcedAspectRatio"])}}if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvas.parentNode&&typeof screen!="undefined"){var factor=Math.min(screen.width/w,screen.height/h);w=Math.round(w*factor);h=Math.round(h*factor)}if(Browser.resizeCanvas){if(canvas.width!=w)canvas.width=w;if(canvas.height!=h)canvas.height=h;if(typeof canvas.style!="undefined"){canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}else{if(canvas.width!=wNative)canvas.width=wNative;if(canvas.height!=hNative)canvas.height=hNative;if(typeof canvas.style!="undefined"){if(w!=wNative||h!=hNative){canvas.style.setProperty("width",w+"px","important");canvas.style.setProperty("height",h+"px","important")}else{canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}}},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var handle=Browser.nextWgetRequestHandle;Browser.nextWgetRequestHandle++;return handle}};function _SDL_GetTicks(){return Date.now()-SDL.startTime|0}function _SDL_LockSurface(surf){var surfData=SDL.surfaces[surf];surfData.locked++;if(surfData.locked>1)return 0;if(!surfData.buffer){surfData.buffer=_malloc(surfData.width*surfData.height*4);HEAP32[surf+20>>2]=surfData.buffer}HEAP32[surf+20>>2]=surfData.buffer;if(surf==SDL.screen&&Module.screenIsReadOnly&&surfData.image)return 0;if(SDL.defaults.discardOnLock){if(!surfData.image){surfData.image=surfData.ctx.createImageData(surfData.width,surfData.height)}if(!SDL.defaults.opaqueFrontBuffer)return}else{surfData.image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height)}if(surf==SDL.screen&&SDL.defaults.opaqueFrontBuffer){var data=surfData.image.data;var num=data.length;for(var i=0;i<num/4;i++){data[i*4+3]=255}}if(SDL.defaults.copyOnLock&&!SDL.defaults.discardOnLock){if(surfData.isFlagSet(2097152)){throw"CopyOnLock is not supported for SDL_LockSurface with SDL_HWPALETTE flag set"+(new Error).stack}else{HEAPU8.set(surfData.image.data,surfData.buffer)}}return 0}var SDL={defaults:{width:320,height:200,copyOnLock:false,discardOnLock:true,opaqueFrontBuffer:false},version:null,surfaces:{},canvasPool:[],events:[],fonts:[null],audios:[null],rwops:[null],music:{audio:null,volume:1},mixerFrequency:22050,mixerFormat:32784,mixerNumChannels:2,mixerChunkSize:1024,channelMinimumNumber:0,GL:false,glAttributes:{0:3,1:3,2:2,3:0,4:0,5:1,6:16,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:1,16:0,17:0,18:0},keyboardState:null,keyboardMap:{},canRequestFullscreen:false,isRequestingFullscreen:false,textInput:false,startTime:null,initFlags:0,buttonState:0,modState:0,DOMButtons:[0,0,0],DOMEventToSDLEvent:{},TOUCH_DEFAULT_ID:0,eventHandler:null,eventHandlerContext:null,eventHandlerTemp:0,keyCodes:{16:1249,17:1248,18:1250,20:1081,33:1099,34:1102,35:1101,36:1098,37:1104,38:1106,39:1103,40:1105,44:316,45:1097,46:127,91:1251,93:1125,96:1122,97:1113,98:1114,99:1115,100:1116,101:1117,102:1118,103:1119,104:1120,105:1121,106:1109,107:1111,109:1110,110:1123,111:1108,112:1082,113:1083,114:1084,115:1085,116:1086,117:1087,118:1088,119:1089,120:1090,121:1091,122:1092,123:1093,124:1128,125:1129,126:1130,127:1131,128:1132,129:1133,130:1134,131:1135,132:1136,133:1137,134:1138,135:1139,144:1107,160:94,161:33,162:34,163:35,164:36,165:37,166:38,167:95,168:40,169:41,170:42,171:43,172:124,173:45,174:123,175:125,176:126,181:127,182:129,183:128,188:44,190:46,191:47,192:96,219:91,220:92,221:93,222:39,224:1251},scanCodes:{8:42,9:43,13:40,27:41,32:44,35:204,39:53,44:54,46:55,47:56,48:39,49:30,50:31,51:32,52:33,53:34,54:35,55:36,56:37,57:38,58:203,59:51,61:46,91:47,92:49,93:48,96:52,97:4,98:5,99:6,100:7,101:8,102:9,103:10,104:11,105:12,106:13,107:14,108:15,109:16,110:17,111:18,112:19,113:20,114:21,115:22,116:23,117:24,118:25,119:26,120:27,121:28,122:29,127:76,305:224,308:226,316:70},loadRect:function(rect){return{x:HEAP32[rect+0>>2],y:HEAP32[rect+4>>2],w:HEAP32[rect+8>>2],h:HEAP32[rect+12>>2]}},updateRect:function(rect,r){HEAP32[rect>>2]=r.x;HEAP32[rect+4>>2]=r.y;HEAP32[rect+8>>2]=r.w;HEAP32[rect+12>>2]=r.h},intersectionOfRects:function(first,second){var leftX=Math.max(first.x,second.x);var leftY=Math.max(first.y,second.y);var rightX=Math.min(first.x+first.w,second.x+second.w);var rightY=Math.min(first.y+first.h,second.y+second.h);return{x:leftX,y:leftY,w:Math.max(leftX,rightX)-leftX,h:Math.max(leftY,rightY)-leftY}},checkPixelFormat:function(fmt){},loadColorToCSSRGB:function(color){var rgba=HEAP32[color>>2];return"rgb("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+")"},loadColorToCSSRGBA:function(color){var rgba=HEAP32[color>>2];return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>24&255)/255+")"},translateColorToCSSRGBA:function(rgba){return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>>24)/255+")"},translateRGBAToCSSRGBA:function(r,g,b,a){return"rgba("+(r&255)+","+(g&255)+","+(b&255)+","+(a&255)/255+")"},translateRGBAToColor:function(r,g,b,a){return r|g<<8|b<<16|a<<24},makeSurface:function(width,height,flags,usePageCanvas,source,rmask,gmask,bmask,amask){flags=flags||0;var is_SDL_HWSURFACE=flags&1;var is_SDL_HWPALETTE=flags&2097152;var is_SDL_OPENGL=flags&67108864;var surf=_malloc(60);var pixelFormat=_malloc(44);var bpp=is_SDL_HWPALETTE?1:4;var buffer=0;if(!is_SDL_HWSURFACE&&!is_SDL_OPENGL){buffer=_malloc(width*height*4)}HEAP32[surf>>2]=flags;HEAP32[surf+4>>2]=pixelFormat;HEAP32[surf+8>>2]=width;HEAP32[surf+12>>2]=height;HEAP32[surf+16>>2]=width*bpp;HEAP32[surf+20>>2]=buffer;HEAP32[surf+36>>2]=0;HEAP32[surf+40>>2]=0;HEAP32[surf+44>>2]=Module["canvas"].width;HEAP32[surf+48>>2]=Module["canvas"].height;HEAP32[surf+56>>2]=1;HEAP32[pixelFormat>>2]=-2042224636;HEAP32[pixelFormat+4>>2]=0;HEAP8[pixelFormat+8>>0]=bpp*8;HEAP8[pixelFormat+9>>0]=bpp;HEAP32[pixelFormat+12>>2]=rmask||255;HEAP32[pixelFormat+16>>2]=gmask||65280;HEAP32[pixelFormat+20>>2]=bmask||16711680;HEAP32[pixelFormat+24>>2]=amask||4278190080;SDL.GL=SDL.GL||is_SDL_OPENGL;var canvas;if(!usePageCanvas){if(SDL.canvasPool.length>0){canvas=SDL.canvasPool.pop()}else{canvas=document.createElement("canvas")}canvas.width=width;canvas.height=height}else{canvas=Module["canvas"]}var webGLContextAttributes={antialias:SDL.glAttributes[13]!=0&&SDL.glAttributes[14]>1,depth:SDL.glAttributes[6]>0,stencil:SDL.glAttributes[7]>0,alpha:SDL.glAttributes[3]>0};var ctx=Browser.createContext(canvas,is_SDL_OPENGL,usePageCanvas,webGLContextAttributes);SDL.surfaces[surf]={width:width,height:height,canvas:canvas,ctx:ctx,surf:surf,buffer:buffer,pixelFormat:pixelFormat,alpha:255,flags:flags,locked:0,usePageCanvas:usePageCanvas,source:source,isFlagSet:function(flag){return flags&flag}};return surf},copyIndexedColorData:function(surfData,rX,rY,rW,rH){if(!surfData.colors){return}var fullWidth=Module["canvas"].width;var fullHeight=Module["canvas"].height;var startX=rX||0;var startY=rY||0;var endX=(rW||fullWidth-startX)+startX;var endY=(rH||fullHeight-startY)+startY;var buffer=surfData.buffer;if(!surfData.image.data32){surfData.image.data32=new Uint32Array(surfData.image.data.buffer)}var data32=surfData.image.data32;var colors32=surfData.colors32;for(var y=startY;y<endY;++y){var base=y*fullWidth;for(var x=startX;x<endX;++x){data32[base+x]=colors32[HEAPU8[buffer+base+x>>0]]}}},freeSurface:function(surf){var refcountPointer=surf+56;var refcount=HEAP32[refcountPointer>>2];if(refcount>1){HEAP32[refcountPointer>>2]=refcount-1;return}var info=SDL.surfaces[surf];if(!info.usePageCanvas&&info.canvas)SDL.canvasPool.push(info.canvas);if(info.buffer)_free(info.buffer);_free(info.pixelFormat);_free(surf);SDL.surfaces[surf]=null;if(surf===SDL.screen){SDL.screen=null}},blitSurface:function(src,srcrect,dst,dstrect,scale){var srcData=SDL.surfaces[src];var dstData=SDL.surfaces[dst];var sr,dr;if(srcrect){sr=SDL.loadRect(srcrect)}else{sr={x:0,y:0,w:srcData.width,h:srcData.height}}if(dstrect){dr=SDL.loadRect(dstrect)}else{dr={x:0,y:0,w:srcData.width,h:srcData.height}}if(dstData.clipRect){var widthScale=!scale||sr.w===0?1:sr.w/dr.w;var heightScale=!scale||sr.h===0?1:sr.h/dr.h;dr=SDL.intersectionOfRects(dstData.clipRect,dr);sr.w=dr.w*widthScale;sr.h=dr.h*heightScale;if(dstrect){SDL.updateRect(dstrect,dr)}}var blitw,blith;if(scale){blitw=dr.w;blith=dr.h}else{blitw=sr.w;blith=sr.h}if(sr.w===0||sr.h===0||blitw===0||blith===0){return 0}var oldAlpha=dstData.ctx.globalAlpha;dstData.ctx.globalAlpha=srcData.alpha/255;dstData.ctx.drawImage(srcData.canvas,sr.x,sr.y,sr.w,sr.h,dr.x,dr.y,blitw,blith);dstData.ctx.globalAlpha=oldAlpha;if(dst!=SDL.screen){warnOnce("WARNING: copying canvas data to memory for compatibility");_SDL_LockSurface(dst);dstData.locked--}return 0},downFingers:{},savedKeydown:null,receiveEvent:function(event){function unpressAllPressedKeys(){for(var code in SDL.keyboardMap){SDL.events.push({type:"keyup",keyCode:SDL.keyboardMap[code]})}}switch(event.type){case"touchstart":case"touchmove":{event.preventDefault();var touches=[];if(event.type==="touchstart"){for(var i=0;i<event.touches.length;i++){var touch=event.touches[i];if(SDL.downFingers[touch.identifier]!=true){SDL.downFingers[touch.identifier]=true;touches.push(touch)}}}else{touches=event.touches}var firstTouch=touches[0];if(firstTouch){if(event.type=="touchstart"){SDL.DOMButtons[0]=1}var mouseEventType;switch(event.type){case"touchstart":mouseEventType="mousedown";break;case"touchmove":mouseEventType="mousemove";break}var mouseEvent={type:mouseEventType,button:0,pageX:firstTouch.clientX,pageY:firstTouch.clientY};SDL.events.push(mouseEvent)}for(var i=0;i<touches.length;i++){var touch=touches[i];SDL.events.push({type:event.type,touch:touch})}break}case"touchend":{event.preventDefault();for(var i=0;i<event.changedTouches.length;i++){var touch=event.changedTouches[i];if(SDL.downFingers[touch.identifier]===true){delete SDL.downFingers[touch.identifier]}}var mouseEvent={type:"mouseup",button:0,pageX:event.changedTouches[0].clientX,pageY:event.changedTouches[0].clientY};SDL.DOMButtons[0]=0;SDL.events.push(mouseEvent);for(var i=0;i<event.changedTouches.length;i++){var touch=event.changedTouches[i];SDL.events.push({type:"touchend",touch:touch})}break}case"DOMMouseScroll":case"mousewheel":case"wheel":var delta=-Browser.getMouseWheelDelta(event);delta=delta==0?0:delta>0?Math.max(delta,1):Math.min(delta,-1);var button=delta>0?3:4;SDL.events.push({type:"mousedown",button:button,pageX:event.pageX,pageY:event.pageY});SDL.events.push({type:"mouseup",button:button,pageX:event.pageX,pageY:event.pageY});SDL.events.push({type:"wheel",deltaX:0,deltaY:delta});event.preventDefault();break;case"mousemove":if(SDL.DOMButtons[0]===1){SDL.events.push({type:"touchmove",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}if(Browser.pointerLock){if("mozMovementX"in event){event["movementX"]=event["mozMovementX"];event["movementY"]=event["mozMovementY"]}if(event["movementX"]==0&&event["movementY"]==0){event.preventDefault();return}}case"keydown":case"keyup":case"keypress":case"mousedown":case"mouseup":if(event.type!=="keydown"||!SDL.unicode&&!SDL.textInput||(event.keyCode===8||event.keyCode===9)){}if(event.type=="mousedown"){SDL.DOMButtons[event.button]=1;SDL.events.push({type:"touchstart",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}else if(event.type=="mouseup"){if(!SDL.DOMButtons[event.button]){return}SDL.events.push({type:"touchend",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}});SDL.DOMButtons[event.button]=0}if(event.type==="keydown"||event.type==="mousedown"){SDL.canRequestFullscreen=true}else if(event.type==="keyup"||event.type==="mouseup"){if(SDL.isRequestingFullscreen){Module["requestFullscreen"](false,true);SDL.isRequestingFullscreen=false}SDL.canRequestFullscreen=false}if(event.type==="keypress"&&SDL.savedKeydown){SDL.savedKeydown.keypressCharCode=event.charCode;SDL.savedKeydown=null}else if(event.type==="keydown"){SDL.savedKeydown=event}if(event.type!=="keypress"||SDL.textInput){SDL.events.push(event)}break;case"mouseout":for(var i=0;i<3;i++){if(SDL.DOMButtons[i]){SDL.events.push({type:"mouseup",button:i,pageX:event.pageX,pageY:event.pageY});SDL.DOMButtons[i]=0}}event.preventDefault();break;case"focus":SDL.events.push(event);event.preventDefault();break;case"blur":SDL.events.push(event);unpressAllPressedKeys();event.preventDefault();break;case"visibilitychange":SDL.events.push({type:"visibilitychange",visible:!document.hidden});unpressAllPressedKeys();event.preventDefault();break;case"unload":if(Browser.mainLoop.runner){SDL.events.push(event);Browser.mainLoop.runner()}return;case"resize":SDL.events.push(event);if(event.preventDefault){event.preventDefault()}break}if(SDL.events.length>=1e4){err("SDL event queue full, dropping events");SDL.events=SDL.events.slice(0,1e4)}SDL.flushEventsToHandler();return},lookupKeyCodeForEvent:function(event){var code=event.keyCode;if(code>=65&&code<=90){code+=32}else{code=SDL.keyCodes[event.keyCode]||event.keyCode;if(event.location===KeyboardEvent.DOM_KEY_LOCATION_RIGHT&&code>=(224|1<<10)&&code<=(227|1<<10)){code+=4}}return code},handleEvent:function(event){if(event.handled)return;event.handled=true;switch(event.type){case"touchstart":case"touchend":case"touchmove":{Browser.calculateMouseEvent(event);break}case"keydown":case"keyup":{var down=event.type==="keydown";var code=SDL.lookupKeyCodeForEvent(event);HEAP8[SDL.keyboardState+code>>0]=down;SDL.modState=(HEAP8[SDL.keyboardState+1248>>0]?64:0)|(HEAP8[SDL.keyboardState+1249>>0]?1:0)|(HEAP8[SDL.keyboardState+1250>>0]?256:0)|(HEAP8[SDL.keyboardState+1252>>0]?128:0)|(HEAP8[SDL.keyboardState+1253>>0]?2:0)|(HEAP8[SDL.keyboardState+1254>>0]?512:0);if(down){SDL.keyboardMap[code]=event.keyCode}else{delete SDL.keyboardMap[code]}break}case"mousedown":case"mouseup":if(event.type=="mousedown"){SDL.buttonState|=1<<event.button}else if(event.type=="mouseup"){SDL.buttonState&=~(1<<event.button)}case"mousemove":{Browser.calculateMouseEvent(event);break}}},flushEventsToHandler:function(){if(!SDL.eventHandler)return;while(SDL.pollEvent(SDL.eventHandlerTemp)){Module["dynCall_iii"](SDL.eventHandler,SDL.eventHandlerContext,SDL.eventHandlerTemp)}},pollEvent:function(ptr){if(SDL.initFlags&512&&SDL.joystickEventState){SDL.queryJoysticks()}if(ptr){while(SDL.events.length>0){if(SDL.makeCEvent(SDL.events.shift(),ptr)!==false)return 1}return 0}else{return SDL.events.length>0}},makeCEvent:function(event,ptr){if(typeof event==="number"){_memcpy(ptr,event,28);_free(event);return}SDL.handleEvent(event);switch(event.type){case"keydown":case"keyup":{var down=event.type==="keydown";var key=SDL.lookupKeyCodeForEvent(event);var scan;if(key>=1024){scan=key-1024}else{scan=SDL.scanCodes[key]||key}HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+8>>0]=down?1:0;HEAP8[ptr+9>>0]=0;HEAP32[ptr+12>>2]=scan;HEAP32[ptr+16>>2]=key;HEAP16[ptr+20>>1]=SDL.modState;HEAP32[ptr+24>>2]=event.keypressCharCode||key;break}case"keypress":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];var cStr=intArrayFromString(String.fromCharCode(event.charCode));for(var i=0;i<cStr.length;++i){HEAP8[ptr+(8+i)>>0]=cStr[i]}break}case"mousedown":case"mouseup":case"mousemove":{if(event.type!="mousemove"){var down=event.type==="mousedown";HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP8[ptr+16>>0]=event.button+1;HEAP8[ptr+17>>0]=down?1:0;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY}else{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP32[ptr+16>>2]=SDL.buttonState;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY;HEAP32[ptr+28>>2]=Browser.mouseMovementX;HEAP32[ptr+32>>2]=Browser.mouseMovementY}break}case"wheel":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+16>>2]=event.deltaX;HEAP32[ptr+20>>2]=event.deltaY;break}case"touchstart":case"touchend":case"touchmove":{var touch=event.touch;if(!Browser.touches[touch.identifier])break;var w=Module["canvas"].width;var h=Module["canvas"].height;var x=Browser.touches[touch.identifier].x/w;var y=Browser.touches[touch.identifier].y/h;var lx=Browser.lastTouches[touch.identifier].x/w;var ly=Browser.lastTouches[touch.identifier].y/h;var dx=x-lx;var dy=y-ly;if(touch["deviceID"]===undefined)touch.deviceID=SDL.TOUCH_DEFAULT_ID;if(dx===0&&dy===0&&event.type==="touchmove")return false;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=_SDL_GetTicks();tempI64=[touch.deviceID>>>0,(tempDouble=touch.deviceID,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr+8>>2]=tempI64[0],HEAP32[ptr+12>>2]=tempI64[1];tempI64=[touch.identifier>>>0,(tempDouble=touch.identifier,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr+16>>2]=tempI64[0],HEAP32[ptr+20>>2]=tempI64[1];HEAPF32[ptr+24>>2]=x;HEAPF32[ptr+28>>2]=y;HEAPF32[ptr+32>>2]=dx;HEAPF32[ptr+36>>2]=dy;if(touch.force!==undefined){HEAPF32[ptr+40>>2]=touch.force}else{HEAPF32[ptr+40>>2]=event.type=="touchend"?0:1}break}case"unload":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];break}case"resize":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=event.w;HEAP32[ptr+8>>2]=event.h;break}case"joystick_button_up":case"joystick_button_down":{var state=event.type==="joystick_button_up"?0:1;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.button;HEAP8[ptr+6>>0]=state;break}case"joystick_axis_motion":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.axis;HEAP32[ptr+8>>2]=SDL.joystickAxisValueConversion(event.value);break}case"focus":{var SDL_WINDOWEVENT_FOCUS_GAINED=12;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_GAINED;break}case"blur":{var SDL_WINDOWEVENT_FOCUS_LOST=13;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_LOST;break}case"visibilitychange":{var SDL_WINDOWEVENT_SHOWN=1;var SDL_WINDOWEVENT_HIDDEN=2;var visibilityEventID=event.visible?SDL_WINDOWEVENT_SHOWN:SDL_WINDOWEVENT_HIDDEN;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=visibilityEventID;break}default:throw"Unhandled SDL event: "+event.type}},makeFontString:function(height,fontName){if(fontName.charAt(0)!="'"&&fontName.charAt(0)!='"'){fontName='"'+fontName+'"'}return height+"px "+fontName+", serif"},estimateTextWidth:function(fontData,text){var h=fontData.size;var fontString=SDL.makeFontString(h,fontData.name);var tempCtx=SDL.ttfContext;tempCtx.save();tempCtx.font=fontString;var ret=tempCtx.measureText(text).width|0;tempCtx.restore();return ret},allocateChannels:function(num){if(SDL.numChannels&&SDL.numChannels>=num&&num!=0)return;SDL.numChannels=num;SDL.channels=[];for(var i=0;i<num;i++){SDL.channels[i]={audio:null,volume:1}}},setGetVolume:function(info,volume){if(!info)return 0;var ret=info.volume*128;if(volume!=-1){info.volume=Math.min(Math.max(volume,0),128)/128;if(info.audio){try{info.audio.volume=info.volume;if(info.audio.webAudioGainNode)info.audio.webAudioGainNode["gain"]["value"]=info.volume}catch(e){err("setGetVolume failed to set audio volume: "+e)}}}return ret},setPannerPosition:function(info,x,y,z){if(!info)return;if(info.audio){if(info.audio.webAudioPannerNode){info.audio.webAudioPannerNode["setPosition"](x,y,z)}}},playWebAudio:function(audio){if(!audio)return;if(audio.webAudioNode)return;if(!SDL.webAudioAvailable())return;try{var webAudio=audio.resource.webAudio;audio.paused=false;if(!webAudio.decodedBuffer){if(webAudio.onDecodeComplete===undefined)abort("Cannot play back audio object that was not loaded");webAudio.onDecodeComplete.push(function(){if(!audio.paused)SDL.playWebAudio(audio)});return}audio.webAudioNode=SDL.audioContext["createBufferSource"]();audio.webAudioNode["buffer"]=webAudio.decodedBuffer;audio.webAudioNode["loop"]=audio.loop;audio.webAudioNode["onended"]=function(){audio["onended"]()};audio.webAudioPannerNode=SDL.audioContext["createPanner"]();audio.webAudioPannerNode["setPosition"](0,0,-.5);audio.webAudioPannerNode["panningModel"]="equalpower";audio.webAudioGainNode=SDL.audioContext["createGain"]();audio.webAudioGainNode["gain"]["value"]=audio.volume;audio.webAudioNode["connect"](audio.webAudioPannerNode);audio.webAudioPannerNode["connect"](audio.webAudioGainNode);audio.webAudioGainNode["connect"](SDL.audioContext["destination"]);audio.webAudioNode["start"](0,audio.currentPosition);audio.startTime=SDL.audioContext["currentTime"]-audio.currentPosition}catch(e){err("playWebAudio failed: "+e)}},pauseWebAudio:function(audio){if(!audio)return;if(audio.webAudioNode){try{audio.currentPosition=(SDL.audioContext["currentTime"]-audio.startTime)%audio.resource.webAudio.decodedBuffer.duration;audio.webAudioNode["onended"]=undefined;audio.webAudioNode.stop(0);audio.webAudioNode=undefined}catch(e){err("pauseWebAudio failed: "+e)}}audio.paused=true},openAudioContext:function(){if(!SDL.audioContext){if(typeof AudioContext!=="undefined")SDL.audioContext=new AudioContext;else if(typeof webkitAudioContext!=="undefined")SDL.audioContext=new webkitAudioContext}},webAudioAvailable:function(){return!!SDL.audioContext},fillWebAudioBufferFromHeap:function(heapPtr,sizeSamplesPerChannel,dstAudioBuffer){var numChannels=SDL.audio.channels;for(var c=0;c<numChannels;++c){var channelData=dstAudioBuffer["getChannelData"](c);if(channelData.length!=sizeSamplesPerChannel){throw"Web Audio output buffer length mismatch! Destination size: "+channelData.length+" samples vs expected "+sizeSamplesPerChannel+" samples!"}if(SDL.audio.format==32784){for(var j=0;j<sizeSamplesPerChannel;++j){channelData[j]=HEAP16[heapPtr+(j*numChannels+c)*2>>1]/32768}}else if(SDL.audio.format==8){for(var j=0;j<sizeSamplesPerChannel;++j){var v=HEAP8[heapPtr+(j*numChannels+c)>>0];channelData[j]=(v>=0?v-128:v+128)/128}}else if(SDL.audio.format==33056){for(var j=0;j<sizeSamplesPerChannel;++j){channelData[j]=HEAPF32[heapPtr+(j*numChannels+c)*4>>2]}}else{throw"Invalid SDL audio format "+SDL.audio.format+"!"}}},debugSurface:function(surfData){console.log("dumping surface "+[surfData.surf,surfData.source,surfData.width,surfData.height]);var image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height);var data=image.data;var num=Math.min(surfData.width,surfData.height);for(var i=0;i<num;i++){console.log(" diagonal "+i+":"+[data[i*surfData.width*4+i*4+0],data[i*surfData.width*4+i*4+1],data[i*surfData.width*4+i*4+2],data[i*surfData.width*4+i*4+3]])}},joystickEventState:1,lastJoystickState:{},joystickNamePool:{},recordJoystickState:function(joystick,state){var buttons=new Array(state.buttons.length);for(var i=0;i<state.buttons.length;i++){buttons[i]=SDL.getJoystickButtonState(state.buttons[i])}SDL.lastJoystickState[joystick]={buttons:buttons,axes:state.axes.slice(0),timestamp:state.timestamp,index:state.index,id:state.id}},getJoystickButtonState:function(button){if(typeof button==="object"){return button["pressed"]}else{return button>0}},queryJoysticks:function(){for(var joystick in SDL.lastJoystickState){var state=SDL.getGamepad(joystick-1);var prevState=SDL.lastJoystickState[joystick];if(typeof state==="undefined")return;if(state===null)return;if(typeof state.timestamp!=="number"||state.timestamp!==prevState.timestamp||!state.timestamp){var i;for(i=0;i<state.buttons.length;i++){var buttonState=SDL.getJoystickButtonState(state.buttons[i]);if(buttonState!==prevState.buttons[i]){SDL.events.push({type:buttonState?"joystick_button_down":"joystick_button_up",joystick:joystick,index:joystick-1,button:i})}}for(i=0;i<state.axes.length;i++){if(state.axes[i]!==prevState.axes[i]){SDL.events.push({type:"joystick_axis_motion",joystick:joystick,index:joystick-1,axis:i,value:state.axes[i]})}}SDL.recordJoystickState(joystick,state)}}},joystickAxisValueConversion:function(value){value=Math.min(1,Math.max(value,-1));return Math.ceil((value+1)*32767.5-32768)},getGamepads:function(){var fcn=navigator.getGamepads||navigator.webkitGamepads||navigator.mozGamepads||navigator.gamepads||navigator.webkitGetGamepads;if(fcn!==undefined){return fcn.apply(navigator)}else{return[]}},getGamepad:function(deviceIndex){var gamepads=SDL.getGamepads();if(gamepads.length>deviceIndex&&deviceIndex>=0){return gamepads[deviceIndex]}return null}};function _SDL_ClearError(){}function _SDL_GetError(){if(!SDL.errorMessage){SDL.errorMessage=allocate(intArrayFromString("unknown SDL-emscripten error"),"i8",ALLOC_NORMAL)}return SDL.errorMessage}function _SDL_GetModState(){return SDL.modState}function _SDL_GetMouseState(x,y){if(x)HEAP32[x>>2]=Browser.mouseX;if(y)HEAP32[y>>2]=Browser.mouseY;return SDL.buttonState}function _SDL_GetWindowSize(window,width,height){var w=Module["canvas"].width;var h=Module["canvas"].height;if(width)HEAP32[width>>2]=w;if(height)HEAP32[height>>2]=h}function _SDL_Init(initFlags){SDL.startTime=Date.now();SDL.initFlags=initFlags;if(!Module["doNotCaptureKeyboard"]){var keyboardListeningElement=Module["keyboardListeningElement"]||document;keyboardListeningElement.addEventListener("keydown",SDL.receiveEvent);keyboardListeningElement.addEventListener("keyup",SDL.receiveEvent);keyboardListeningElement.addEventListener("keypress",SDL.receiveEvent);window.addEventListener("focus",SDL.receiveEvent);window.addEventListener("blur",SDL.receiveEvent);document.addEventListener("visibilitychange",SDL.receiveEvent)}window.addEventListener("unload",SDL.receiveEvent);SDL.keyboardState=_malloc(65536);_memset(SDL.keyboardState,0,65536);SDL.DOMEventToSDLEvent["keydown"]=768;SDL.DOMEventToSDLEvent["keyup"]=769;SDL.DOMEventToSDLEvent["keypress"]=771;SDL.DOMEventToSDLEvent["mousedown"]=1025;SDL.DOMEventToSDLEvent["mouseup"]=1026;SDL.DOMEventToSDLEvent["mousemove"]=1024;SDL.DOMEventToSDLEvent["wheel"]=1027;SDL.DOMEventToSDLEvent["touchstart"]=1792;SDL.DOMEventToSDLEvent["touchend"]=1793;SDL.DOMEventToSDLEvent["touchmove"]=1794;SDL.DOMEventToSDLEvent["unload"]=256;SDL.DOMEventToSDLEvent["resize"]=28673;SDL.DOMEventToSDLEvent["visibilitychange"]=512;SDL.DOMEventToSDLEvent["focus"]=512;SDL.DOMEventToSDLEvent["blur"]=512;SDL.DOMEventToSDLEvent["joystick_axis_motion"]=1536;SDL.DOMEventToSDLEvent["joystick_button_down"]=1539;SDL.DOMEventToSDLEvent["joystick_button_up"]=1540;return 0}function _SDL_LockAudio(){}function _SDL_PollEvent(ptr){return SDL.pollEvent(ptr)}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){GL.miniTempBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i<GL.MINI_TEMP_BUFFER_SIZE;i++){GL.miniTempBufferViews[i]=GL.miniTempBuffer.subarray(0,i+1)}},recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i<ret;i++){table[i]=null}return ret},MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function(shader,count,string,length){var source="";for(var i=0;i<count;++i){var len=length?HEAP32[length+i*4>>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext("webgl",webGLContextAttributes)||canvas.getContext("experimental-webgl",webGLContextAttributes);return ctx&&GL.registerContext(ctx,webGLContextAttributes)},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle]);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;if(context.version<2){var instancedArraysExt=GLctx.getExtension("ANGLE_instanced_arrays");if(instancedArraysExt){GLctx["vertexAttribDivisor"]=function(index,divisor){instancedArraysExt["vertexAttribDivisorANGLE"](index,divisor)};GLctx["drawArraysInstanced"]=function(mode,first,count,primcount){instancedArraysExt["drawArraysInstancedANGLE"](mode,first,count,primcount)};GLctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){instancedArraysExt["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)}}var vaoExt=GLctx.getExtension("OES_vertex_array_object");if(vaoExt){GLctx["createVertexArray"]=function(){return vaoExt["createVertexArrayOES"]()};GLctx["deleteVertexArray"]=function(vao){vaoExt["deleteVertexArrayOES"](vao)};GLctx["bindVertexArray"]=function(vao){vaoExt["bindVertexArrayOES"](vao)};GLctx["isVertexArray"]=function(vao){return vaoExt["isVertexArrayOES"](vao)}}var drawBuffersExt=GLctx.getExtension("WEBGL_draw_buffers");if(drawBuffersExt){GLctx["drawBuffers"]=function(n,bufs){drawBuffersExt["drawBuffersWEBGL"](n,bufs)}}}GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2"];var exts=GLctx.getSupportedExtensions();if(exts&&exts.length>0){GLctx.getSupportedExtensions().forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})}},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i<numUniforms;++i){var u=GLctx.getActiveUniform(p,i);var name=u.name;ptable.maxUniformLength=Math.max(ptable.maxUniformLength,name.length+1);if(name.slice(-1)=="]"){name=name.slice(0,name.lastIndexOf("["))}var loc=GLctx.getUniformLocation(p,name);if(loc){var id=GL.getNewId(GL.uniforms);utable[name]=[u.size,id];GL.uniforms[id]=loc;for(var j=1;j<u.size;++j){var n=name+"["+j+"]";loc=GLctx.getUniformLocation(p,n);id=GL.getNewId(GL.uniforms);GL.uniforms[id]=loc}}}}};function _SDL_SetVideoMode(width,height,depth,flags){["touchstart","touchend","touchmove","mousedown","mouseup","mousemove","DOMMouseScroll","mousewheel","wheel","mouseout"].forEach(function(event){Module["canvas"].addEventListener(event,SDL.receiveEvent,true)});var canvas=Module["canvas"];if(width==0&&height==0){width=canvas.width;height=canvas.height}if(!SDL.addedResizeListener){SDL.addedResizeListener=true;Browser.resizeListeners.push(function(w,h){if(!SDL.settingVideoMode){SDL.receiveEvent({type:"resize",w:w,h:h})}})}SDL.settingVideoMode=true;Browser.setCanvasSize(width,height);SDL.settingVideoMode=false;if(SDL.screen){SDL.freeSurface(SDL.screen);assert(!SDL.screen)}if(SDL.GL)flags=flags|67108864;SDL.screen=SDL.makeSurface(width,height,flags,true,"screen");return SDL.screen}function _SDL_UnlockAudio(){}function _SDL_UnlockSurface(surf){assert(!SDL.GL);var surfData=SDL.surfaces[surf];if(!surfData.locked||--surfData.locked>0){return}if(surfData.isFlagSet(2097152)){SDL.copyIndexedColorData(surfData)}else if(!surfData.colors){var data=surfData.image.data;var buffer=surfData.buffer;assert(buffer%4==0,"Invalid buffer offset: "+buffer);var src=buffer>>2;var dst=0;var isScreen=surf==SDL.screen;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst<num){var val=HEAP32[src];data[dst]=val&255;data[dst+1]=val>>8&255;data[dst+2]=val>>16&255;data[dst+3]=isScreen?255:val>>24&255;src++;dst+=4}}else{var data32=new Uint32Array(data.buffer);if(isScreen&&SDL.defaults.opaqueFrontBuffer){num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=new Uint8Array(data.buffer);var i=3;var j=i+4*num;if(num%8==0){while(i<j){data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0}}else{while(i<j){data8[i]=255;i=i+4|0}}}else{data32.set(HEAP32.subarray(src,src+data32.length))}}}else{var width=Module["canvas"].width;var height=Module["canvas"].height;var s=surfData.buffer;var data=surfData.image.data;var colors=surfData.colors;for(var y=0;y<height;y++){var base=y*width*4;for(var x=0;x<width;x++){var val=HEAPU8[s++>>0]*4;var start=base+x*4;data[start]=colors[val];data[start+1]=colors[val+1];data[start+2]=colors[val+2]}s+=width*3}}surfData.ctx.putImageData(surfData.image,0,0)}var ENV={};function ___buildEnvironment(environ){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C.UTF-8";ENV["_"]=Module["thisProgram"];poolPtr=getMemory(TOTAL_ENV_SIZE);envPtr=getMemory(MAX_ENV_VALUES*4);HEAP32[envPtr>>2]=poolPtr;HEAP32[environ>>2]=envPtr}else{envPtr=HEAP32[environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in ENV){if(typeof ENV[key]==="string"){var line=key+"="+ENV[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i<strings.length;i++){var line=strings[i];writeAsciiToMemory(line,poolPtr);HEAP32[envPtr+i*ptrSize>>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}function ___lock(){}var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(9);dir=dirstream.path}path=PATH.join2(dir,path)}return path},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-20}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-22}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-22;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-22}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-13}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret},doWritev:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(9);return stream},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();if(!(offset_high==-1&&offset_low<0)&&!(offset_high==0&&offset_low>=0)){return-75}var offset=offset_low;FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[result>>2]=tempI64[0],HEAP32[result+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall220(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),dirp=SYSCALLS.get(),count=SYSCALLS.get();if(!stream.getdents){stream.getdents=FS.readdir(stream.path)}var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var idx=Math.floor(off/struct_size);while(idx<stream.getdents.length&&pos+struct_size<=count){var id;var type;var name=stream.getdents[idx];if(name[0]==="."){id=1;type=4}else{var child=FS.lookupNode(stream.node,name);id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8}tempI64=[id>>>0,(tempDouble=id,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-22}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-22;case 9:___setErrNo(22);return-1;default:{return-22}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-25;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-25;return 0}case 21519:{if(!stream.tty)return-25;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-25;return-22}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-25;return 0}case 21524:{if(!stream.tty)return-25;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}function _abort(){Module["abort"]()}function _emscripten_async_wget_data(url,arg,onload,onerror){Browser.asyncLoad(UTF8ToString(url),function(byteArray){var buffer=_malloc(byteArray.length);HEAPU8.set(byteArray,buffer);dynCall_viii(onload,arg,buffer,byteArray.length);_free(buffer)},function(){if(onerror)dynCall_vi(onerror,arg)},true)}function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _exit(status){exit(status)}var ___tm_current=3196448;var ___tm_timezone=(stringToUTF8("GMT",3196496,4),3196496);function _gmtime_r(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();HEAP32[tmPtr+36>>2]=0;HEAP32[tmPtr+32>>2]=0;var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+40>>2]=___tm_timezone;return tmPtr}function _gmtime(time){return _gmtime_r(time,___tm_current)}function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var winter=new Date(2e3,0,1);var summer=new Date(2e3,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocate(intArrayFromString(winterName),"i8",ALLOC_NORMAL);var summerNamePtr=allocate(intArrayFromString(summerName),"i8",ALLOC_NORMAL);if(summer.getTimezoneOffset()<winter.getTimezoneOffset()){HEAP32[__get_tzname()>>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(2e3,6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){abortOnCannotGrowMemory(requestedSize)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,"0")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},"%w":function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()},"%W":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?"01":"00"},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}FS.staticInit();Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){err("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead.");Module["requestFullScreen"]=Module["requestFullscreen"];Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function _emscripten_get_now_actual(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof performance==="object"&&performance&&typeof performance["now"]==="function"){_emscripten_get_now=function(){return performance["now"]()}}else{_emscripten_get_now=Date.now}var GLctx;GL.init();var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){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("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>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(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==="boolean"&&ENVIRONMENT_IS_NODE){var buf;try{buf=Buffer.from(s,"base64")}catch(_){buf=new Buffer(s,"base64")}return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength)}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}var asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,Infinity:Infinity};var asmLibraryArg={"a":abort,"b":setTempRet0,"c":getTempRet0,"d":invoke_vii,"e":_SDL_ClearError,"f":_SDL_GetError,"g":_SDL_GetModState,"h":_SDL_GetMouseState,"i":_SDL_GetTicks,"j":_SDL_GetWindowSize,"k":_SDL_Init,"l":_SDL_LockAudio,"m":_SDL_LockSurface,"n":_SDL_PollEvent,"o":_SDL_SetVideoMode,"p":_SDL_UnlockAudio,"q":_SDL_UnlockSurface,"r":___buildEnvironment,"s":___lock,"t":___setErrNo,"u":___syscall140,"v":___syscall145,"w":___syscall146,"x":___syscall195,"y":___syscall220,"z":___syscall221,"A":___syscall5,"B":___syscall54,"C":___syscall6,"D":___unlock,"E":__addDays,"F":__arraySum,"G":__isLeapYear,"H":_abort,"I":_emscripten_asm_const_i,"J":_emscripten_asm_const_ii,"K":_emscripten_asm_const_iii,"L":_emscripten_asm_const_iiiii,"M":_emscripten_asm_const_iiiiiii,"N":_emscripten_asm_const_iiiiiiiii,"O":_emscripten_async_wget_data,"P":_emscripten_get_heap_size,"Q":_emscripten_get_now,"R":_emscripten_memcpy_big,"S":_emscripten_resize_heap,"T":_emscripten_run_script,"U":_emscripten_set_main_loop,"V":_emscripten_set_main_loop_timing,"W":_exit,"X":_gmtime,"Y":_gmtime_r,"Z":_localtime,"_":_localtime_r,"$":_longjmp,"aa":_strftime,"ab":_time,"ac":_tzset,"ad":abortOnCannotGrowMemory,"ae":tempDoublePtr,"af":DYNAMICTOP_PTR};// EMSCRIPTEN_START_ASM +var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) { +"use asm";var a=new global.Int8Array(buffer),b=new global.Int16Array(buffer),c=new global.Int32Array(buffer),d=new global.Uint8Array(buffer),e=new global.Uint16Array(buffer),f=new global.Float32Array(buffer),g=new global.Float64Array(buffer),h=env.ae|0,i=env.af|0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=global.NaN,s=global.Infinity,t=global.Math.floor,u=global.Math.abs,v=global.Math.sqrt,w=global.Math.cos,x=global.Math.sin,y=global.Math.atan,z=global.Math.atan2,A=global.Math.ceil,B=global.Math.imul,C=global.Math.min,D=global.Math.clz32,E=env.a,F=env.b,G=env.c,H=env.d,I=env.e,J=env.f,K=env.g,L=env.h,M=env.i,N=env.j,O=env.k,P=env.l,Q=env.m,R=env.n,S=env.o,T=env.p,U=env.q,V=env.r,W=env.s,X=env.t,Y=env.u,Z=env.v,_=env.w,$=env.x,aa=env.y,ba=env.z,ca=env.A,da=env.B,ea=env.C,fa=env.D,ga=env.E,ha=env.F,ia=env.G,ja=env.H,ka=env.I,la=env.J,ma=env.K,na=env.L,oa=env.M,pa=env.N,qa=env.O,ra=env.P,sa=env.Q,ta=env.R,ua=env.S,va=env.T,wa=env.U,xa=env.V,ya=env.W,za=env.X,Aa=env.Y,Ba=env.Z,Ca=env._,Da=env.$,Ea=env.aa,Fa=env.ab,Ga=env.ac,Ha=env.ad,Ia=3196624,Ja=8439504,Ka=0.0; +// EMSCRIPTEN_START_FUNCS +function Uf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;b=Ia;Ia=Ia+16|0;d=b;e=a+16|0;f=c[c[e>>2]>>2]|0;g=f+8|0;h=a+8|0;i=c[h>>2]|0;if(!(g>>>0>=i>>>0|(g|0)==2217396)){g=c[f+12>>2]&15;if((g|0)==5){j=f;k=i}else{l=g+1|0;m=4}}else{l=0;m=4}if((m|0)==4){m=c[16+(l<<2)>>2]|0;c[d>>2]=63002;c[d+4>>2]=m;Bf(a,1,Td(a,49400,d)|0)|0;j=c[c[e>>2]>>2]|0;k=c[h>>2]|0}d=j+16|0;if(d>>>0>=k>>>0|(d|0)==2217396){Bf(a,2,49420)|0;n=c[c[e>>2]>>2]|0;o=c[h>>2]|0}else{n=j;o=k}k=n+8|0;j=n+24|0;if(o>>>0<j>>>0){e=(n+20+(3-o)|0)>>>3;a=o;do{c[a+4>>2]=0;a=a+8|0}while(a>>>0<j>>>0);c[h>>2]=o+(e+1<<3)}c[h>>2]=j;j=Mc(c[k>>2]|0,n+16|0)|0;n=c[h>>2]|0;c[n+-8>>2]=c[j>>2];c[n+-4>>2]=c[j+4>>2];Ia=b;return 1}function Vf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=Ia;Ia=Ia+16|0;e=d;f=b+16|0;g=c[c[f>>2]>>2]|0;h=g+8|0;i=b+8|0;j=c[i>>2]|0;if(!(h>>>0>=j>>>0|(h|0)==2217396)){h=c[g+12>>2]&15;if((h|0)==5){k=g;l=j}else{m=h+1|0;n=4}}else{m=0;n=4}if((n|0)==4){n=c[16+(m<<2)>>2]|0;c[e>>2]=63002;c[e+4>>2]=n;Bf(b,1,Td(b,49400,e)|0)|0;k=c[c[f>>2]>>2]|0;l=c[i>>2]|0}e=k+16|0;if(e>>>0>=l>>>0|(e|0)==2217396){Bf(b,2,49420)|0;o=c[c[f>>2]>>2]|0;p=c[i>>2]|0}else{o=k;p=l}l=o+24|0;if(l>>>0>=p>>>0|(l|0)==2217396){Bf(b,3,49420)|0;q=c[i>>2]|0;r=c[c[f>>2]>>2]|0}else{q=p;r=o}o=r+8|0;p=r+32|0;if(q>>>0<p>>>0){f=(r+28+(3-q)|0)>>>3;l=q;do{c[l+4>>2]=0;l=l+8|0}while(l>>>0<p>>>0);c[i>>2]=q+(f+1<<3)}c[i>>2]=p;p=c[o>>2]|0;f=r+16|0;q=Mc(p,f)|0;if((q|0)==2217396)s=Nc(b,p,f)|0;else s=q;c[s>>2]=c[r+24>>2];c[s+4>>2]=c[r+28>>2];a[(c[o>>2]|0)+6>>0]=0;r=c[i>>2]|0;if(!(c[r+-4>>2]&64)){t=r;u=t+-16|0;c[i>>2]=u;Ia=d;return 1}if(!(a[(c[r+-8>>2]|0)+5>>0]&3)){t=r;u=t+-16|0;c[i>>2]=u;Ia=d;return 1}s=c[o>>2]|0;o=s+5|0;q=a[o>>0]|0;if(!(q&4)){t=r;u=t+-16|0;c[i>>2]=u;Ia=d;return 1}r=c[b+12>>2]|0;a[o>>0]=q&-5;q=r+76|0;c[s+24>>2]=c[q>>2];c[q>>2]=s;t=c[i>>2]|0;u=t+-16|0;c[i>>2]=u;Ia=d;return 1}function Wf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=a+16|0;d=c[c[b>>2]>>2]|0;e=d+8|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0>=g>>>0|(e|0)==2217396){Bf(a,1,49420)|0;h=c[c[b>>2]>>2]|0;i=c[f>>2]|0;j=h;k=h+8|0}else{i=g;j=d;k=e}if(k>>>0>=i>>>0|(k|0)==2217396){l=0;m=16+(l<<2)|0;n=c[m>>2]|0;Qd(a,n)|0;return 1}l=(c[j+12>>2]&15)+1|0;m=16+(l<<2)|0;n=c[m>>2]|0;Qd(a,n)|0;return 1}function Xf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=Ia;Ia=Ia+16|0;d=b;e=a+16|0;f=c[c[e>>2]>>2]|0;g=f+8|0;h=a+8|0;i=c[h>>2]|0;if(!(g>>>0>=i>>>0|(g|0)==2217396)){g=c[f+12>>2]&15;if((g|0)==5){j=f;k=i}else{l=g+1|0;m=4}}else{l=0;m=4}if((m|0)==4){m=c[16+(l<<2)>>2]|0;c[d>>2]=63002;c[d+4>>2]=m;Bf(a,1,Td(a,49400,d)|0)|0;j=c[c[e>>2]>>2]|0;k=c[h>>2]|0}e=j+24|0;if(k>>>0<e>>>0){d=(j+20+(3-k)|0)>>>3;j=k;do{c[j+4>>2]=0;j=j+8|0}while(j>>>0<e>>>0);c[h>>2]=k+(d+1<<3)}c[h>>2]=e;if(uf(a,1)|0){n=2;Ia=b;return n|0}a=c[h>>2]|0;c[a+4>>2]=0;c[h>>2]=a+8;n=1;Ia=b;return n|0}function Yf(a){a=a|0;Zf(a,49774,0,4);return 3}function Zf(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=Ia;Ia=Ia+16|0;h=g+8|0;i=g;j=(Jf(a,1,d)|0)==0;d=a+16|0;k=c[c[d>>2]>>2]|0;l=k+8|0;m=a+8|0;n=c[m>>2]|0;o=l>>>0<n>>>0;if(j){if(!((l|0)==2217396|o^1)){j=c[k+12>>2]&15;if((j|0)==5)p=n;else{q=j+1|0;r=5}}else{q=0;r=5}if((r|0)==5){r=c[16+(q<<2)>>2]|0;c[i>>2]=63002;c[i+4>>2]=r;Bf(a,1,Td(a,49400,i)|0)|0;p=c[m>>2]|0}c[p>>2]=f;c[p+4>>2]=22;p=c[m>>2]|0;f=p+8|0;c[m>>2]=f;i=c[c[d>>2]>>2]|0;d=i>>>0<p>>>0?i+8|0:2217396;c[f>>2]=c[d>>2];c[p+12>>2]=c[d+4>>2];d=c[m>>2]|0;p=d+8|0;c[m>>2]=p;if(!e){c[d+12>>2]=0;c[m>>2]=d+16;Ia=g;return}else{c[p>>2]=0;c[d+12>>2]=3;c[m>>2]=(c[m>>2]|0)+8;Ia=g;return}}else{d=o?l:2217396;c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];d=c[m>>2]|0;c[m>>2]=d+8;m=d+-8|0;d=a+38|0;n=(b[d>>1]|0)+1<<16>>16;b[d>>1]=n;if((n&65535)>199){if(n<<16>>16==200)Ac(a,47199,h);if((n&65535)>224)yc(a,6)}n=a+36|0;b[n>>1]=(b[n>>1]|0)+1<<16>>16;if(!(Ec(a,m,3)|0))Fc(a);b[n>>1]=(b[n>>1]|0)+-1<<16>>16;b[d>>1]=(b[d>>1]|0)+-1<<16>>16;Ia=g;return}}function _f(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;b=Ia;Ia=Ia+16|0;e=b;f=a+16|0;g=c[c[f>>2]>>2]|0;h=g+16|0;i=a+8|0;j=c[i>>2]|0;if(!(h>>>0>=j>>>0|(h|0)==2217396)?(c[g+20>>2]|0)==3:0)k=(c[h>>2]>>16)+1|0;else k=1;h=g+8|0;if(!(h>>>0>=j>>>0|(h|0)==2217396)){h=c[g+12>>2]&15;if((h|0)==5)l=j;else{m=h+1|0;n=7}}else{m=0;n=7}if((n|0)==7){n=c[16+(m<<2)>>2]|0;c[e>>2]=63002;c[e+4>>2]=n;Bf(a,1,Td(a,49400,e)|0)|0;l=c[i>>2]|0}e=k<<16;c[l>>2]=e;c[l+4>>2]=3;l=c[i>>2]|0;a=l+8|0;c[i>>2]=a;n=c[c[f>>2]>>2]|0;f=c[(n>>>0<l>>>0?n+8|0:2217396)>>2]|0;n=k+-1|0;a:do if(n>>>0<(c[f+28>>2]|0)>>>0)o=(c[f+12>>2]|0)+(n<<3)|0;else{k=0-e|0;m=(c[f+16>>2]|0)+(((((e|0)<0?((e|0)==(k|0)?0:k):e)|0)%((1<<(d[f+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[m+12>>2]|0)==3?(c[m+8>>2]|0)==(e|0):0)break;k=c[m+16>>2]|0;if(!k){o=2217396;break a}else m=k}o=m}while(0);c[a>>2]=c[o>>2];c[l+12>>2]=c[o+4>>2];o=c[i>>2]|0;c[i>>2]=o+8;if((o|0)==2217396){Ia=b;return 2}else{Ia=b;return ((c[o+4>>2]&15|0)==0?1:2)|0}return 0}function $f(a){a=a|0;Zf(a,49782,1,5);return 3}function ag(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=Ia;Ia=Ia+16|0;e=d;f=b+16|0;g=c[c[f>>2]>>2]|0;h=g+8|0;i=b+8|0;j=c[i>>2]|0;k=h>>>0<j>>>0?h:2217396;l=j;switch(c[k+4>>2]|0){case 0:{m=l-h>>3;break}case 1:{n=l-h>>3;if(!(c[k>>2]|0))m=n;else{o=n;Ia=d;return o|0}break}default:{o=l-h>>3;Ia=d;return o|0}}if((m|0)<=1){kh(3196396);p=Ff(b,2,49791,0)|0;c[e>>2]=p;Cf(b,47850,e)|0}m=g+16|0;g=m>>>0<j>>>0?m:2217396;if((c[g+4>>2]&15|0)!=4)if(!(Kd(b,g)|0))q=0;else{m=c[b+12>>2]|0;j=m+12|0;o=c[j>>2]|0;do if((o|0)>0)if(!(a[m+51>>0]|0)){d=m+8|0;c[d>>2]=o+1600+(c[d>>2]|0);c[j>>2]=-1600;break}else{Oc(b);break}while(0);j=(c[c[f>>2]>>2]|0)+16|0;r=j>>>0<(c[i>>2]|0)>>>0?j:2217396;s=13}else{r=g;s=13}if((s|0)==13)q=(c[r>>2]|0)+16|0;kh(q);p=Ff(b,2,49791,0)|0;c[e>>2]=p;Cf(b,47850,e)|0;return 0}function bg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=b+8|0;e=c[d>>2]|0;f=c[c[b+16>>2]>>2]|0;g=f+8|0;h=e-g|0;i=h>>3;j=e;if((!(g>>>0>=j>>>0|(g|0)==2217396)?(c[f+12>>2]&15|0)==4:0)?(a[(c[g>>2]|0)+16>>0]|0)==35:0){c[e>>2]=(h<<13)+-65536;c[j+4>>2]=3;c[d>>2]=(c[d>>2]|0)+8;k=1;return k|0}d=Gf(b,1)|0;j=(d|0)<0?d+i|0:(d|0)>(i|0)?i:d;if((j|0)<=0)Bf(b,1,49809)|0;k=i-j|0;return k|0}function cg(a){a=a|0;var b=0;b=(c[c[a+16>>2]>>2]|0)+8|0;if(!((b|0)==2217396?1:b>>>0>=(c[a+8>>2]|0)>>>0)){Lf(a,1,0)|0;return 1}Bf(a,1,49420)|0;Lf(a,1,0)|0;return 1}function dg(a){a=a|0;var b=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;b=a+16|0;e=(c[c[b>>2]>>2]|0)+8|0;f=a+8|0;g=c[f>>2]|0;h=e>>>0<g>>>0?e:2217396;if((c[h+4>>2]|0)==72?(i=c[h>>2]|0,(i|0)!=0):0){j=g;k=e;l=i}else{Bf(a,1,49828)|0;j=c[f>>2]|0;k=(c[c[b>>2]>>2]|0)+8|0;l=0}i=eg(a,l,(j-k>>3)+-1|0)|0;k=c[f>>2]|0;if((i|0)<0){c[k>>2]=0;c[k+4>>2]=1;j=c[f>>2]|0;l=j+8|0;c[f>>2]=l;e=l;do{l=e;e=e+-8|0;c[l>>2]=c[e>>2];c[l+4>>2]=c[l+-4>>2]}while(l>>>0>j>>>0);e=c[f>>2]|0;c[j+-8>>2]=c[e>>2];m=e;n=2;o=j+-4|0;p=m+4|0;q=c[p>>2]|0;c[o>>2]=q;return n|0}c[k>>2]=1;c[k+4>>2]=1;k=(c[f>>2]|0)+8|0;c[f>>2]=k;j=i+1|0;e=c[b>>2]|0;do if((i|0)>1000998){if((i|0)==1000999){r=(c[a+12>>2]|0)+36|0;break}b=c[e>>2]|0;if((c[b+4>>2]|32|0)==54)r=2217396;else{l=c[b>>2]|0;r=(i+-1000999|0)>(d[l+6>>0]|0|0)?2217396:l+16+(i+-1001e3<<3)|0}}else r=k+(~i<<3)|0;while(0);if(k>>>0>r>>>0){i=k;do{e=i;i=i+-8|0;c[e>>2]=c[i>>2];c[e+4>>2]=c[e+-4>>2]}while(i>>>0>r>>>0);s=c[f>>2]|0}else s=k;c[r>>2]=c[s>>2];m=s;n=j;o=r+4|0;p=m+4|0;q=c[p>>2]|0;c[o>>2]=q;return n|0}function eg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=Ia;Ia=Ia+16|0;g=f;c[g>>2]=e;h=d+16|0;i=c[h>>2]|0;j=d+8|0;k=c[j>>2]|0;do if(((c[d+24>>2]|0)-k>>3|0)>(e|0)){l=k;m=k;n=e}else{if(((k-(c[d+28>>2]|0)>>3)+5|0)<=(1e6-e|0)?(xc(d,2,g)|0)==0:0){o=c[j>>2]|0;l=o;m=o;n=c[g>>2]|0;break}o=c[b+12>>2]|0;p=o+12|0;q=c[p>>2]|0;do if((q|0)>0)if(!(a[o+51>>0]|0)){r=o+8|0;c[r>>2]=q+1600+(c[r>>2]|0);c[p>>2]=-1600;break}else{Oc(b);break}while(0);p=bd(b,49847,37)|0;q=b+8|0;o=c[q>>2]|0;c[o>>2]=p;c[o+4>>2]=(a[p+4>>0]|64)&255;c[q>>2]=(c[q>>2]|0)+8;s=-1;Ia=f;return s|0}while(0);k=i+4|0;i=m+(n<<3)|0;if((c[k>>2]|0)>>>0<i>>>0)c[k>>2]=i;if((a[d+6>>0]|0)==0?(l|0)==((c[c[h>>2]>>2]|0)+8|0):0){l=c[b+12>>2]|0;i=l+12|0;k=c[i>>2]|0;do if((k|0)>0)if(!(a[l+51>>0]|0)){n=l+8|0;c[n>>2]=k+1600+(c[n>>2]|0);c[i>>2]=-1600;break}else{Oc(b);break}while(0);i=bd(b,49885,37)|0;k=b+8|0;l=c[k>>2]|0;c[l>>2]=i;c[l+4>>2]=(a[i+4>>0]|64)&255;c[k>>2]=(c[k>>2]|0)+8;s=-1;Ia=f;return s|0}k=(b|0)==(d|0);if((!k?(i=b+8|0,l=c[i>>2]|0,n=0-e|0,m=l+(n<<3)|0,c[i>>2]=m,(e|0)>0):0)?(q=c[j>>2]|0,c[j>>2]=q+8,c[q>>2]=c[m>>2],c[q+4>>2]=c[l+(n<<3)+4>>2],(e|0)!=1):0){n=1;do{l=c[i>>2]|0;q=c[j>>2]|0;c[j>>2]=q+8;c[q>>2]=c[l+(n<<3)>>2];c[q+4>>2]=c[l+(n<<3)+4>>2];n=n+1|0}while((n|0)!=(e|0))}if((fg(d,b,e)|0)>>>0>=2){if(k){s=-1;Ia=f;return s|0}e=c[j>>2]|0;d=e+-8|0;c[j>>2]=d;n=b+8|0;i=c[n>>2]|0;c[n>>2]=i+8;c[i>>2]=c[d>>2];c[i+4>>2]=c[e+-4>>2];s=-1;Ia=f;return s|0}e=(c[j>>2]|0)-((c[c[h>>2]>>2]|0)+8)|0;i=e>>3;d=i+1|0;c[g>>2]=d;n=c[b+16>>2]|0;l=b+8|0;q=c[l>>2]|0;do if(((c[b+24>>2]|0)-q>>3|0)>(d|0)){t=q;u=d}else{if(((q-(c[b+28>>2]|0)>>3)+5|0)<=(999999-i|0)?(xc(b,2,g)|0)==0:0){t=c[l>>2]|0;u=c[g>>2]|0;break}m=~i;if((e|0)<0){p=c[c[h>>2]>>2]|0;o=c[j>>2]|0;r=p+8+(m<<3)|0;if(o>>>0<r>>>0){v=(p+(m<<3)+4+(3-o)|0)>>>3;m=o;do{c[m+4>>2]=0;m=m+8|0}while(m>>>0<r>>>0);c[j>>2]=o+(v+1<<3);w=r}else w=r}else w=(c[j>>2]|0)+(0-i<<3)|0;c[j>>2]=w;m=c[b+12>>2]|0;p=m+12|0;x=c[p>>2]|0;do if((x|0)>0)if(!(a[m+51>>0]|0)){y=m+8|0;c[y>>2]=x+1600+(c[y>>2]|0);c[p>>2]=-1600;break}else{Oc(b);break}while(0);p=bd(b,49923,35)|0;x=c[l>>2]|0;c[x>>2]=p;c[x+4>>2]=(a[p+4>>0]|64)&255;c[l>>2]=(c[l>>2]|0)+8;s=-1;Ia=f;return s|0}while(0);b=n+4|0;n=t+(u<<3)|0;if((c[b>>2]|0)>>>0<n>>>0)c[b>>2]=n;if(k){s=i;Ia=f;return s|0}k=c[j>>2]|0;n=0-i|0;b=k+(n<<3)|0;c[j>>2]=b;if((e|0)<=0){s=i;Ia=f;return s|0}u=c[l>>2]|0;c[l>>2]=u+8;c[u>>2]=c[b>>2];c[u+4>>2]=c[k+(n<<3)+4>>2];if((e|0)==8){s=1;Ia=f;return s|0}e=1;do{n=c[j>>2]|0;k=c[l>>2]|0;c[l>>2]=k+8;c[k>>2]=c[n+(e<<3)>>2];c[k+4>>2]=c[n+(e<<3)+4>>2];e=e+1|0}while((e|0)!=(i|0));s=i;Ia=f;return s|0}function fg(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;h=d+36|0;i=b[h>>1]|0;if(!f)j=1;else j=(e[f+38>>1]|0)+1&65535;f=d+38|0;b[f>>1]=j;b[h>>1]=0;j=d+8|0;k=xc(d,6,(c[j>>2]|0)+(0-g<<3)|0)|0;if((k|0)==-1){l=2;b[h>>1]=i;m=b[f>>1]|0;n=m+-1<<16>>16;b[f>>1]=n;return l|0}if(k>>>0<=1){l=k;b[h>>1]=i;m=b[f>>1]|0;n=m+-1<<16>>16;b[f>>1]=n;return l|0}g=d+16|0;o=d+28|0;p=d+41|0;q=d+12|0;r=d+68|0;s=d+32|0;t=k;a:while(1){k=c[g>>2]|0;if(!k)break;u=k;while(1){if(a[u+18>>0]&16)break;k=c[u+8>>2]|0;if(!k)break a;else u=k}k=u+18|0;v=(c[o>>2]|0)+(c[u+20>>2]|0)|0;Sc(d,v);switch(t|0){case 4:{w=c[(c[q>>2]|0)+152>>2]|0;c[v>>2]=w;x=(a[w+4>>0]|64)&255;break}case 6:{w=bd(d,47901,23)|0;c[v>>2]=w;x=(a[w+4>>0]|64)&255;break}default:{w=c[j>>2]|0;c[v>>2]=c[w+-8>>2];x=c[w+-4>>2]|0}}c[v+4>>2]=x;w=v+8|0;c[j>>2]=w;c[g>>2]=u;a[p>>0]=a[u+36>>0]|0;b[h>>1]=0;v=u;y=w;do{w=c[v+4>>2]|0;y=y>>>0<w>>>0?w:y;v=c[v+8>>2]|0}while((v|0)!=0);v=y-(c[o>>2]|0)|0;w=v>>3;z=w+11+((w+1|0)/8|0)|0;w=(z|0)<1e6?z:1e6;if((v|0)<=7999992?(w|0)<(c[s>>2]|0):0)zc(d,w);c[r>>2]=c[u+32>>2];a[k>>0]=a[k>>0]|32;a[u+37>>0]=t;w=xc(d,7,0)|0;if(w>>>0>1)t=w;else{l=w;A=25;break}}if((A|0)==25){b[h>>1]=i;m=b[f>>1]|0;n=m+-1<<16>>16;b[f>>1]=n;return l|0}a[d+6>>0]=t;A=c[j>>2]|0;switch(t|0){case 4:{r=c[(c[q>>2]|0)+152>>2]|0;c[A>>2]=r;B=(a[r+4>>0]|64)&255;break}case 6:{r=bd(d,47901,23)|0;c[A>>2]=r;B=(a[r+4>>0]|64)&255;break}default:{c[A>>2]=c[A+-8>>2];B=c[A+-4>>2]|0}}c[A+4>>2]=B;B=A+8|0;c[j>>2]=B;c[(c[g>>2]|0)+4>>2]=B;l=t;b[h>>1]=i;m=b[f>>1]|0;n=m+-1<<16>>16;b[f>>1]=n;return l|0}function gg(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=d+16|0;h=c[g>>2]|0;if((e[d+38>>1]|0)>199)jg(d,47199,f);i=d+6|0;switch(a[i>>0]|0){case 0:{if((h|0)!=(d+72|0))jg(d,49959,f);if(Ec(d,f+-8|0,-1)|0)return;Fc(d);return}case 1:{a[i>>0]=0;c[h>>2]=(c[d+28>>2]|0)+(c[h+20>>2]|0);i=h+18|0;j=a[i>>0]|0;if(!(j&1)){k=c[h+28>>2]|0;if(!k){l=h;m=f;n=d+8|0}else{a[h+37>>0]=1;a[i>>0]=j|8;j=La[k&255](d)|0;k=d+8|0;l=c[g>>2]|0;m=(c[k>>2]|0)+(0-j<<3)|0;n=k}k=c[l>>2]|0;j=b[l+16>>1]|0;c[g>>2]=c[l+8>>2];a:do if(j<<16>>16){l=m;g=j<<16>>16;i=k;while(1){if(l>>>0>=(c[n>>2]|0)>>>0)break;h=i+8|0;c[i>>2]=c[l>>2];c[i+4>>2]=c[l+4>>2];o=g+-1|0;if(!o){p=h;break a}else{l=l+8|0;g=o;i=h}}if((g|0)>0){l=g;h=i;while(1){o=h+8|0;c[h+4>>2]=0;if((l|0)>1){l=l+-1|0;h=o}else{p=o;break}}}else p=i}else p=k;while(0);c[n>>2]=p}else Fc(d);hg(d,0);return}default:jg(d,49997,f)}}function hg(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=d+16|0;f=c[e>>2]|0;g=d+72|0;if((f|0)==(g|0))return;h=d+68|0;i=d+8|0;j=f;do{f=j+18|0;k=a[f>>0]|0;if(!(k&1)){l=k&255;if(!(l&16))m=k;else{k=l&239;a[f>>0]=k;c[h>>2]=c[j+32>>2];m=k}if((b[j+16>>1]|0)==-1?(k=j+4|0,l=c[i>>2]|0,(c[k>>2]|0)>>>0<l>>>0):0)c[k>>2]=l;if(!(m&32))a[j+37>>0]=1;a[f>>0]=m&-57|8;f=La[c[j+28>>2]&255](d)|0;l=c[i>>2]|0;k=c[e>>2]|0;n=c[k>>2]|0;o=b[k+16>>1]|0;c[e>>2]=c[k+8>>2];a:do if(o<<16>>16){k=o<<16>>16;p=0-f|0;if((p|0)<0){q=l+(p<<3)|0;p=k;r=n;while(1){s=r+8|0;c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];t=p+-1|0;if(!t){u=s;break a}q=q+8|0;if(q>>>0>=(c[i>>2]|0)>>>0){v=t;w=s;break}else{p=t;r=s}}}else{v=k;w=n}if((v|0)>0){r=v;p=w;while(1){q=p+8|0;c[p+4>>2]=0;if((r|0)>1){r=r+-1|0;p=q}else{u=q;break}}}else u=w}else u=n;while(0);c[i>>2]=u}else{ig(d);Fc(d)}j=c[e>>2]|0}while((j|0)!=(g|0));return}function ig(a){a=a|0;var b=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;b=c[a+16>>2]|0;e=b+24|0;f=c[e>>2]|0;g=b+28|0;h=c[(c[g>>2]|0)+-4>>2]|0;i=h&63;switch(h&63){case 12:case 7:case 6:case 31:case 30:case 29:case 28:case 27:case 24:case 23:case 22:case 21:case 20:case 19:case 34:case 32:case 18:case 17:case 16:case 15:case 14:case 13:{j=a+8|0;k=c[j>>2]|0;l=k+-8|0;c[j>>2]=l;j=h>>>6&255;c[f+(j<<3)>>2]=c[l>>2];c[f+(j<<3)+4>>2]=c[k+-4>>2];return}case 37:case 38:case 39:{k=a+8|0;j=c[k>>2]|0;switch(c[j+-4>>2]|0){case 0:{m=1;break}case 1:{m=(c[j+-8>>2]|0)==0;break}default:m=0}l=(m^1)&1;c[k>>2]=j+-8;if((i|0)==39){i=h>>>23;j=f+(i<<3)|0;k=c[f+(i<<3)+4>>2]|0;switch(k&15){case 5:{n=(c[j>>2]|0)+8|0;break}case 7:{n=(c[j>>2]|0)+8|0;break}default:n=(c[a+12>>2]|0)+276+((k&15)<<2)|0}k=c[n>>2]|0;a:do if(!k)o=2217396;else{n=c[(c[a+12>>2]|0)+264>>2]|0;j=(c[k+16>>2]|0)+(((1<<(d[k+7>>0]|0))+-1&c[n+8>>2])*20|0)|0;while(1){if((c[j+12>>2]|0)==68?(c[j+8>>2]|0)==(n|0):0)break;i=c[j+16>>2]|0;if(!i){o=2217396;break a}else j=i}o=j}while(0);p=(c[o+4>>2]|0)==0?m&1:l}else p=l;if((p|0)==(h>>>6&255|0))return;c[g>>2]=(c[g>>2]|0)+4;return}case 35:{g=a+8|0;p=c[g>>2]|0;l=p+-16|0;m=l-(f+(h>>>23<<3))|0;c[p+-24>>2]=c[p+-8>>2];c[p+-20>>2]=c[p+-4>>2];if((m|0)>8){c[g>>2]=l;Rc(a,m>>>3)}m=c[g>>2]|0;l=c[e>>2]|0;e=h>>>6&255;c[l+(e<<3)>>2]=c[m+-8>>2];c[l+(e<<3)+4>>2]=c[m+-4>>2];c[g>>2]=c[b+4>>2];return}case 47:{c[a+8>>2]=c[b+4>>2];return}case 42:{if(!(h&8372224))return;c[a+8>>2]=c[b+4>>2];return}default:return}}function jg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=b+8|0;c[f>>2]=e;g=Rd(b,d)|0;c[e>>2]=g;c[e+4>>2]=(a[g+4>>0]|64)&255;c[f>>2]=(c[f>>2]|0)+8;yc(b,-1)}function kg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=Ia;Ia=Ia+16|0;d=b;e=a+16|0;f=c[c[e>>2]>>2]|0;g=f+8|0;h=a+8|0;if(!((g|0)==2217396?1:g>>>0>=(c[h>>2]|0)>>>0)){g=c[f+12>>2]&15;if((g|0)!=6){i=g+1|0;j=4}}else{i=0;j=4}if((j|0)==4){j=c[16+(i<<2)>>2]|0;c[d>>2]=63802;c[d+4>>2]=j;Bf(a,1,Td(a,49400,d)|0)|0}d=lg(a)|0;j=(c[c[e>>2]>>2]|0)+8|0;e=c[h>>2]|0;i=j>>>0<e>>>0?j:2217396;c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];i=c[h>>2]|0;c[h>>2]=i+8;if((d|0)==(a|0)){Ia=b;return 1}c[h>>2]=i;h=d+8|0;d=c[h>>2]|0;c[h>>2]=d+8;c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];Ia=b;return 1}function lg(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=d+12|0;f=c[e>>2]|0;g=f+12|0;h=c[g>>2]|0;do if((h|0)>0)if(!(a[f+51>>0]|0)){i=f+8|0;c[i>>2]=h+1600+(c[i>>2]|0);c[g>>2]=-1600;j=f;break}else{Oc(d);j=c[e>>2]|0;break}else j=f;while(0);f=j+4|0;g=Pa[c[j>>2]&3](c[f>>2]|0,0,8,120)|0;if(!g){if(!(a[j+51>>0]|0))yc(d,4);Kc(d,1);h=Pa[c[j>>2]&3](c[f>>2]|0,0,8,120)|0;if(!h)yc(d,4);else k=h}else k=g;g=j+12|0;c[g>>2]=(c[g>>2]|0)+120;g=j+56|0;a[k+5>>0]=a[j+48>>0]&3;a[k+4>>0]=8;c[k>>2]=c[g>>2];c[g>>2]=k;g=d+8|0;j=c[g>>2]|0;c[j>>2]=k;c[j+4>>2]=72;c[g>>2]=(c[g>>2]|0)+8;c[k+12>>2]=c[e>>2];g=k+28|0;c[g>>2]=0;j=k+16|0;c[j>>2]=0;h=k+32|0;c[h>>2]=0;c[k+64>>2]=0;b[k+38>>1]=0;f=k+52|0;c[f>>2]=0;i=k+40|0;a[i>>0]=0;l=k+44|0;c[l>>2]=0;a[k+41>>0]=1;c[k+56>>2]=0;b[k+36>>1]=1;a[k+6>>0]=0;c[k+68>>2]=0;a[i>>0]=a[d+40>>0]|0;i=c[d+44>>2]|0;c[l>>2]=i;c[f>>2]=c[d+52>>2];c[k+48>>2]=i;i=c[e>>2]|0;e=i+4|0;f=Pa[c[i>>2]&3](c[e>>2]|0,0,0,320)|0;if(!f){if(!(a[i+51>>0]|0))yc(d,4);Kc(d,1);l=Pa[c[i>>2]&3](c[e>>2]|0,0,0,320)|0;if(!l)yc(d,4);else m=l}else m=f;f=i+12|0;c[f>>2]=(c[f>>2]|0)+320;c[g>>2]=m;c[h>>2]=40;h=m+4|0;c[h>>2]=0;c[m+12>>2]=0;c[m+20>>2]=0;c[m+28>>2]=0;c[m+36>>2]=0;c[m+44>>2]=0;c[m+52>>2]=0;c[m+60>>2]=0;c[m+68>>2]=0;c[m+76>>2]=0;c[m+84>>2]=0;c[m+92>>2]=0;c[m+100>>2]=0;c[m+108>>2]=0;c[m+116>>2]=0;c[m+124>>2]=0;c[m+132>>2]=0;c[m+140>>2]=0;c[m+148>>2]=0;c[m+156>>2]=0;c[m+164>>2]=0;c[m+172>>2]=0;c[m+180>>2]=0;c[m+188>>2]=0;c[m+196>>2]=0;c[m+204>>2]=0;c[m+212>>2]=0;c[m+220>>2]=0;c[m+228>>2]=0;c[m+236>>2]=0;c[m+244>>2]=0;c[m+252>>2]=0;c[m+260>>2]=0;c[m+268>>2]=0;c[m+276>>2]=0;c[m+284>>2]=0;c[m+292>>2]=0;c[m+300>>2]=0;c[m+308>>2]=0;c[m+316>>2]=0;c[k+24>>2]=m+280;g=k+72|0;c[k+80>>2]=0;c[k+84>>2]=0;a[k+90>>0]=0;c[g>>2]=m;c[k+8>>2]=m+8;c[h>>2]=0;c[k+76>>2]=m+168;c[j>>2]=g;return k|0}function mg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=(c[c[b+16>>2]>>2]|0)+8|0;e=b+8|0;f=d>>>0<(c[e>>2]|0)>>>0?d:2217396;if((c[f+4>>2]|0)==72?(d=c[f>>2]|0,(d|0)!=0):0)g=d;else{Bf(b,1,49828)|0;g=0}a:do if((g|0)==(b|0)){d=c[b+12>>2]|0;f=d+12|0;h=c[f>>2]|0;do if((h|0)>0)if(!(a[d+51>>0]|0)){i=d+8|0;c[i>>2]=h+1600+(c[i>>2]|0);c[f>>2]=-1600;break}else{Oc(b);break}while(0);j=bd(b,50026,7)|0}else switch(a[g+6>>0]|0){case 1:{f=c[b+12>>2]|0;h=f+12|0;d=c[h>>2]|0;do if((d|0)>0)if(!(a[f+51>>0]|0)){i=f+8|0;c[i>>2]=d+1600+(c[i>>2]|0);c[h>>2]=-1600;break}else{Oc(b);break}while(0);j=bd(b,50034,9)|0;break a;break}case 0:{h=c[g+16>>2]|0;if((h|0)!=(g+72|0)){d=c[b+12>>2]|0;f=d+12|0;i=c[f>>2]|0;do if((i|0)>0)if(!(a[d+51>>0]|0)){k=d+8|0;c[k>>2]=i+1600+(c[k>>2]|0);c[f>>2]=-1600;break}else{Oc(b);break}while(0);j=bd(b,50044,6)|0;break a}f=c[b+12>>2]|0;i=f+12|0;d=c[i>>2]|0;k=(d|0)>0;if((c[g+8>>2]|0)==((c[h>>2]|0)+8|0)){do if(k)if(!(a[f+51>>0]|0)){l=f+8|0;c[l>>2]=d+1600+(c[l>>2]|0);c[i>>2]=-1600;break}else{Oc(b);break}while(0);j=bd(b,50051,4)|0;break a}else{do if(k)if(!(a[f+51>>0]|0)){h=f+8|0;c[h>>2]=d+1600+(c[h>>2]|0);c[i>>2]=-1600;break}else{Oc(b);break}while(0);j=bd(b,50034,9)|0;break a}break}default:{i=c[b+12>>2]|0;d=i+12|0;f=c[d>>2]|0;do if((f|0)>0)if(!(a[i+51>>0]|0)){k=i+8|0;c[k>>2]=f+1600+(c[k>>2]|0);c[d>>2]=-1600;break}else{Oc(b);break}while(0);j=bd(b,50051,4)|0;break a}}while(0);b=c[e>>2]|0;c[b>>2]=j;c[b+4>>2]=(a[j+4>>0]|64)&255;c[e>>2]=(c[e>>2]|0)+8;return 1}function ng(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+16|0;d=c[c[b>>2]>>2]|0;e=d+8|0;f=a+8|0;if(!((e|0)==2217396?1:e>>>0>=(c[f>>2]|0)>>>0)?(g=c[d+12>>2]|0,(g&15|0)==8):0)if((g|0)==72){h=1;i=c[e>>2]|0}else{h=1;i=0}else{h=0;i=a}e=h+1|0;g=Jd(a,e,0)|0;d=c[c[b>>2]>>2]|0;if(!g){b=d+(e<<3)|0;j=c[f>>2]|0;if(!(b>>>0>=j>>>0|(b|0)==2217396)?(c[d+(e<<3)+4>>2]&15|0)!=0:0){c[j>>2]=c[b>>2];c[j+4>>2]=c[d+(e<<3)+4>>2];c[f>>2]=(c[f>>2]|0)+8;return 1}else k=j}else k=c[f>>2]|0;f=h|2;h=(i|0)==(a|0)&1;j=d+(f<<3)|0;if(!(j>>>0>=k>>>0|(j|0)==2217396)?(c[d+(f<<3)+4>>2]&15|0)!=0:0)l=Gf(a,f)|0;else l=h;xf(a,i,g,l);return 1}function og(a){a=a|0;Of(c[(c[a+12>>2]|0)+144>>2]|0);return}function pg(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;b=Ia;Ia=Ia+16|0;e=b;f=b+8|0;g=b+4|0;h=a+16|0;i=c[c[h>>2]>>2]|0;j=i+8|0;k=a+8|0;l=c[k>>2]|0;if(j>>>0>=l>>>0|(j|0)==2217396){m=0;Ia=b;return m|0}if((c[i+12>>2]&15|0)!=5){m=0;Ia=b;return m|0}Qc(a,l,j);j=c[k>>2]|0;l=j+8|0;c[k>>2]=l;i=c[j+4>>2]|0;do if((i|0)!=3){if((i&15|0)!=4)Cf(a,49435,e)|0;n=c[j>>2]|0;if(!(Wc(n+16|0,c[n+12>>2]|0,f)|0))Cf(a,49435,e)|0;else{o=c[k>>2]|0;p=c[f>>2]|0;break}}else{o=l;p=c[j>>2]|0}while(0);j=p>>16;p=o+-8|0;c[k>>2]=p;o=j+1|0;l=c[c[h>>2]>>2]|0;e=p-(l+8)>>3;switch(e|0){case 2:{q=p;r=o;break}case 1:case 0:{m=0;Ia=b;return m|0}default:s=10}if((s|0)==10){i=l+24|0;n=i>>>0<p>>>0;if(!((i|0)==2217396|n^1)?(c[l+28>>2]&15|0)==0:0){t=l;u=p;v=o;w=e}else{e=n?i:2217396;i=c[e+4>>2]|0;do if((i|0)==3){x=e;s=16}else{if((i&15|0)==4?(n=c[e>>2]|0,Wc(n+16|0,c[n+12>>2]|0,f)|0):0){c[g>>2]=c[f>>2];x=g;s=16;break}y=0}while(0);if((s|0)==16)y=c[x>>2]>>16;x=c[k>>2]|0;s=c[c[h>>2]>>2]|0;t=s;u=x;v=y;w=x-(s+8)>>3}s=2-w|0;w=s+-1|0;if((s|0)>0){x=t+(s<<3)|0;if(u>>>0<x>>>0){y=(t+(w<<3)+4+(3-u)|0)>>>3;w=u;do{c[w+4>>2]=0;w=w+8|0}while(w>>>0<x>>>0);c[k>>2]=u+(y+1<<3);z=x}else z=x}else z=u+(s<<3)|0;c[k>>2]=z;if((v|0)<1|(o|0)<(v|0))Bf(a,2,50419)|0;if((j|0)>=(v|0)){j=o;do{z=j;j=j+-1|0;s=(c[c[h>>2]>>2]|0)+8|0;u=c[k>>2]|0;x=c[(s>>>0<u>>>0?s:2217396)>>2]|0;s=z+-2|0;a:do if(s>>>0<(c[x+28>>2]|0)>>>0)A=(c[x+12>>2]|0)+(s<<3)|0;else{y=j<<16;w=0-y|0;t=(c[x+16>>2]|0)+(((((y|0)<0?((y|0)==(w|0)?0:w):y)|0)%((1<<(d[x+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[t+12>>2]|0)==3?(c[t+8>>2]|0)==(y|0):0)break;w=c[t+16>>2]|0;if(!w){A=2217396;break a}else t=w}A=t}while(0);c[u>>2]=c[A>>2];c[u+4>>2]=c[A+4>>2];c[k>>2]=(c[k>>2]|0)+8;_d(a,1,z)}while((j|0)>(v|0))}jh(o-v|0);q=c[k>>2]|0;r=v}c[q>>2]=c[q+-8>>2];c[q+4>>2]=c[q+-4>>2];c[k>>2]=(c[k>>2]|0)+8;_d(a,1,r);m=1;Ia=b;return m|0}function qg(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;b=Ia;Ia=Ia+16|0;e=b;f=b+8|0;g=b+4|0;h=a+16|0;i=c[c[h>>2]>>2]|0;j=i+8|0;k=a+8|0;l=c[k>>2]|0;if(j>>>0>=l>>>0|(j|0)==2217396){m=0;Ia=b;return m|0}if((c[i+12>>2]&15|0)!=5){m=0;Ia=b;return m|0}Qc(a,l,j);j=c[k>>2]|0;l=j+8|0;c[k>>2]=l;i=c[j+4>>2]|0;do if((i|0)!=3){if((i&15|0)!=4)Cf(a,49435,e)|0;n=c[j>>2]|0;if(!(Wc(n+16|0,c[n+12>>2]|0,f)|0))Cf(a,49435,e)|0;else{o=c[k>>2]|0;p=c[f>>2]|0;break}}else{o=l;p=c[j>>2]|0}while(0);j=p>>16;p=o+-8|0;c[k>>2]=p;o=c[c[h>>2]>>2]|0;l=p-(o+8)|0;if((l|0)==8){e=o+16|0;if(!(e>>>0>=p>>>0|(e|0)==2217396)?(c[o+20>>2]&15|0)!=0:0){e=Gf(a,2)|0;i=c[k>>2]|0;n=c[c[h>>2]>>2]|0;q=n;r=i;s=e;t=i-(n+8)|0;u=13}else v=j}else{q=o;r=p;s=-1;t=l;u=13}if((u|0)==13)if((t|0)>8){t=q+16|0;q=t>>>0<r>>>0?t:2217396;t=c[q+4>>2]|0;do if((t|0)==3){w=q;u=18}else{if((t&15|0)==4?(r=c[q>>2]|0,Wc(r+16|0,c[r+12>>2]|0,f)|0):0){c[g>>2]=c[f>>2];w=g;u=18;break}x=0}while(0);if((u|0)==18)x=c[w>>2]>>16;v=x}else v=s;if((v|0)<1|(j|0)<(v|0)){m=0;Ia=b;return m|0}s=(c[c[h>>2]>>2]|0)+8|0;x=c[k>>2]|0;w=c[(s>>>0<x>>>0?s:2217396)>>2]|0;s=v+-1|0;a:do if(s>>>0<(c[w+28>>2]|0)>>>0)y=(c[w+12>>2]|0)+(s<<3)|0;else{u=v<<16;g=0-u|0;f=(c[w+16>>2]|0)+(((((u|0)<0?((u|0)==(g|0)?0:g):u)|0)%((1<<(d[w+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[f+12>>2]|0)==3?(c[f+8>>2]|0)==(u|0):0)break;g=c[f+16>>2]|0;if(!g){y=2217396;break a}else f=g}y=f}while(0);c[x>>2]=c[y>>2];c[x+4>>2]=c[y+4>>2];c[k>>2]=(c[k>>2]|0)+8;jh(j-v|0);if((j|0)>(v|0)){y=v;while(1){x=y;y=y+1|0;w=(c[c[h>>2]>>2]|0)+8|0;s=c[k>>2]|0;u=c[(w>>>0<s>>>0?w:2217396)>>2]|0;b:do if(x>>>0<(c[u+28>>2]|0)>>>0)z=(c[u+12>>2]|0)+(x<<3)|0;else{w=y<<16;g=0-w|0;q=(c[u+16>>2]|0)+(((((w|0)<0?((w|0)==(g|0)?0:g):w)|0)%((1<<(d[u+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[q+12>>2]|0)==3?(c[q+8>>2]|0)==(w|0):0)break;g=c[q+16>>2]|0;if(!g){z=2217396;break b}else q=g}z=q}while(0);c[s>>2]=c[z>>2];c[s+4>>2]=c[z+4>>2];c[k>>2]=(c[k>>2]|0)+8;_d(a,1,x);if((y|0)==(j|0)){A=j;break}}}else A=v;v=c[k>>2]|0;c[v+4>>2]=0;c[k>>2]=v+8;_d(a,1,A);m=1;Ia=b;return m|0}function rg(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;b=Ia;Ia=Ia+16|0;e=b;f=b+4|0;g=a+8|0;h=c[g>>2]|0;i=a+16|0;j=c[c[i>>2]>>2]|0;k=j+8|0;l=h;if(h-k>>3>>>0<2){m=0;Ia=b;return m|0}if((k|0)==2217396|k>>>0>=l>>>0){m=0;Ia=b;return m|0}if((c[j+12>>2]&15|0)!=5){m=0;Ia=b;return m|0}Qc(a,l,k);k=c[g>>2]|0;l=k+8|0;c[g>>2]=l;j=c[k+4>>2]|0;do if((j|0)!=3){if((j&15|0)!=4)Cf(a,49435,e)|0;h=c[k>>2]|0;if(!(Wc(h+16|0,c[h+12>>2]|0,f)|0))Cf(a,49435,e)|0;else{n=c[f>>2]|0;o=c[g>>2]|0;break}}else{n=c[k>>2]|0;o=l}while(0);l=n>>16;k=o+-8|0;c[g>>2]=k;if((n|0)<65536){jh(l);m=0;Ia=b;return m|0}n=k;k=1;while(1){o=(c[c[i>>2]>>2]|0)+8|0;f=c[(o>>>0<n>>>0?o:2217396)>>2]|0;o=k+-1|0;a:do if(o>>>0<(c[f+28>>2]|0)>>>0)p=(c[f+12>>2]|0)+(o<<3)|0;else{e=k<<16;j=(c[f+16>>2]|0)+(((e|0)%((1<<(d[f+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[j+12>>2]|0)==3?(c[j+8>>2]|0)==(e|0):0)break;h=c[j+16>>2]|0;if(!h){p=2217396;break a}else j=h}p=j}while(0);c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];f=c[g>>2]|0;o=f+8|0;c[g>>2]=o;e=(c[c[i>>2]>>2]|0)+16|0;h=e>>>0<o>>>0?e:2217396;if((f|0)!=2217396&(h|0)!=2217396?(c[f+4>>2]|0)==(c[h+4>>2]|0):0){e=(Tc(a,f,h)|0)==0;h=(c[g>>2]|0)+-8|0;c[g>>2]=h;if(e)q=h;else{r=k;break}}else{c[g>>2]=f;q=f}if((k|0)<(l|0)){n=q;k=k+1|0}else{r=0;break}}jh(l);if(!r){m=0;Ia=b;return m|0}k=(c[c[i>>2]>>2]|0)+8|0;q=c[g>>2]|0;n=c[(k>>>0<q>>>0?k:2217396)>>2]|0;k=r+-1|0;b:do if(k>>>0<(c[n+28>>2]|0)>>>0)s=(c[n+12>>2]|0)+(k<<3)|0;else{p=r<<16;f=0-p|0;h=(c[n+16>>2]|0)+(((((p|0)<0?((p|0)==(f|0)?0:f):p)|0)%((1<<(d[n+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[h+12>>2]|0)==3?(c[h+8>>2]|0)==(p|0):0)break;f=c[h+16>>2]|0;if(!f){s=2217396;break b}else h=f}s=h}while(0);c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];s=(c[g>>2]|0)+8|0;c[g>>2]=s;if((r|0)<(l|0)){q=s;n=r;while(1){k=n;n=n+1|0;p=(c[c[i>>2]>>2]|0)+8|0;f=c[(p>>>0<q>>>0?p:2217396)>>2]|0;c:do if(k>>>0<(c[f+28>>2]|0)>>>0)t=(c[f+12>>2]|0)+(k<<3)|0;else{p=n<<16;e=0-p|0;o=(c[f+16>>2]|0)+(((((p|0)<0?((p|0)==(e|0)?0:e):p)|0)%((1<<(d[f+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[o+12>>2]|0)==3?(c[o+8>>2]|0)==(p|0):0)break;e=c[o+16>>2]|0;if(!e){t=2217396;break c}else o=e}t=o}while(0);c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[g>>2]=(c[g>>2]|0)+8;_d(a,1,k);f=c[g>>2]|0;if((n|0)==(l|0)){u=f;v=l;break}else q=f}}else{u=s;v=r}c[u+4>>2]=0;c[g>>2]=u+8;_d(a,1,v);m=1;Ia=b;return m|0}function sg(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;b=Ia;Ia=Ia+16|0;e=b;f=b+4|0;g=a+16|0;h=c[c[g>>2]>>2]|0;i=h+8|0;j=a+8|0;k=c[j>>2]|0;if(i>>>0>=k>>>0|(i|0)==2217396){l=0;Ia=b;return l|0}if((c[h+12>>2]&15|0)!=5){l=0;Ia=b;return l|0}Qc(a,k,i);i=c[j>>2]|0;k=i+8|0;c[j>>2]=k;h=c[i+4>>2]|0;do if((h|0)!=3){if((h&15|0)!=4)Cf(a,49435,e)|0;m=c[i>>2]|0;if(!(Wc(m+16|0,c[m+12>>2]|0,f)|0))Cf(a,49435,e)|0;else{n=c[j>>2]|0;o=c[f>>2]|0;break}}else{n=k;o=c[i>>2]|0}while(0);i=o>>16;k=n+-8|0;c[j>>2]=k;n=c[c[g>>2]>>2]|0;a:do if((k-(n+8)|0)>8)if((o|0)<65536){p=0;q=0}else{f=n;e=k;h=0;m=1;r=0;while(1){s=f+8|0;t=c[(s>>>0<e>>>0?s:2217396)>>2]|0;s=m+-1|0;b:do if(s>>>0<(c[t+28>>2]|0)>>>0)u=(c[t+12>>2]|0)+(s<<3)|0;else{v=m<<16;w=(c[t+16>>2]|0)+(((v|0)%((1<<(d[t+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[w+12>>2]|0)==3?(c[w+8>>2]|0)==(v|0):0)break;x=c[w+16>>2]|0;if(!x){u=2217396;break b}else w=x}u=w}while(0);c[e>>2]=c[u>>2];c[e+4>>2]=c[u+4>>2];t=c[j>>2]|0;s=t+8|0;c[j>>2]=s;v=(c[c[g>>2]>>2]|0)+16|0;x=v>>>0<s>>>0?v:2217396;if(((t|0)!=2217396&(x|0)!=2217396?(c[t+4>>2]|0)==(c[x+4>>2]|0):0)?(Tc(a,t,x)|0)!=0:0)y=r+1|0;else y=r;x=(c[j>>2]|0)+-8|0;c[j>>2]=x;t=h+1|0;if((m|0)>=(i|0)){p=t;q=y;break a}f=c[c[g>>2]>>2]|0;e=x;h=t;m=m+1|0;r=y}}else{p=0;q=i}while(0);jh(p);p=c[j>>2]|0;c[p>>2]=q<<16;c[p+4>>2]=3;c[j>>2]=(c[j>>2]|0)+8;l=1;Ia=b;return l|0}function tg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b+8|0;e=b+16|0;f=(c[d>>2]|0)-((c[c[e>>2]>>2]|0)+8)|0;g=f>>3;Yd(b,g,1);h=c[d>>2]|0;c[h>>2]=f<<13;c[h+4>>2]=3;h=c[d>>2]|0;c[d>>2]=h+16;i=xd(b,49327,1)|0;c[h+8>>2]=i;c[h+12>>2]=(a[i+4>>0]|64)&255;i=c[d>>2]|0;Ic(b,h+-8|0,i+-8|0,i+-16|0);i=c[d>>2]|0;h=i+-16|0;c[d>>2]=h;if((f|0)<=0){j=f>>2;jh(j);return 1}k=(c[c[e>>2]>>2]|0)+8|0;l=k>>>0<h>>>0?k:2217396;c[h>>2]=c[l>>2];c[i+-12>>2]=c[l+4>>2];c[d>>2]=(c[d>>2]|0)+8;_d(b,-2,1);l=c[d>>2]|0;i=(c[c[e>>2]>>2]|0)+8|0;e=i>>>0<l>>>0?i:2217396;c[e>>2]=c[l+-8>>2];c[e+4>>2]=c[l+-4>>2];c[d>>2]=(c[d>>2]|0)+-8;if((f|0)<=8){j=f>>2;jh(j);return 1}d=g;while(1){_d(b,1,d);if((d|0)>2)d=d+-1|0;else break}j=f>>2;jh(j);return 1}function ug(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;b=Ia;Ia=Ia+32|0;e=b+16|0;f=b+8|0;g=b;h=b+20|0;i=a+16|0;j=c[c[i>>2]>>2]|0;k=j+8|0;l=a+8|0;m=c[l>>2]|0;if(!(k>>>0>=m>>>0|(k|0)==2217396)){k=c[j+12>>2]&15;if((k|0)==5){n=j;o=m}else{p=k+1|0;q=4}}else{p=0;q=4}if((q|0)==4){q=c[16+(p<<2)>>2]|0;c[g>>2]=63002;c[g+4>>2]=q;Bf(a,1,Td(a,49400,g)|0)|0;n=c[c[i>>2]>>2]|0;o=c[l>>2]|0}g=n+16|0;if(!(g>>>0>=o>>>0|(g|0)==2217396)?(c[n+20>>2]&15|0)!=0:0){g=Gf(a,2)|0;r=c[c[i>>2]>>2]|0;s=c[l>>2]|0;t=g}else{r=n;s=o;t=1}o=r+24|0;if(!(o>>>0>=s>>>0|(o|0)==2217396)?(c[r+28>>2]&15|0)!=0:0)u=Gf(a,3)|0;else{o=r+8|0;Qc(a,s,o>>>0<s>>>0?o:2217396);o=c[l>>2]|0;s=o+8|0;c[l>>2]=s;r=c[o+4>>2]|0;do if((r|0)!=3){if((r&15|0)!=4)Cf(a,49435,f)|0;n=c[o>>2]|0;if(!(Wc(n+16|0,c[n+12>>2]|0,h)|0))Cf(a,49435,f)|0;else{v=c[h>>2]|0;w=c[l>>2]|0;break}}else{v=c[o>>2]|0;w=s}while(0);c[l>>2]=w+-8;u=v>>16}if((u|0)<(t|0)){x=0;Ia=b;return x|0}v=u-t|0;w=v+1|0;if((v|0)<0)Cf(a,50056,e)|0;c[h>>2]=w;s=c[i>>2]|0;o=c[l>>2]|0;do if(((c[a+24>>2]|0)-o>>3|0)>(w|0)){y=o;z=w}else{if(((o-(c[a+28>>2]|0)>>3)+5|0)<=(999999-v|0)?(xc(a,2,h)|0)==0:0){y=c[l>>2]|0;z=c[h>>2]|0;break}Cf(a,50056,e)|0}while(0);e=s+4|0;s=y+(z<<3)|0;if((c[e>>2]|0)>>>0<s>>>0)c[e>>2]=s;s=(c[c[i>>2]>>2]|0)+8|0;e=c[(s>>>0<y>>>0?s:2217396)>>2]|0;s=t+-1|0;a:do if(s>>>0<(c[e+28>>2]|0)>>>0)A=(c[e+12>>2]|0)+(s<<3)|0;else{z=t<<16;a=0-z|0;h=(c[e+16>>2]|0)+(((((z|0)<0?((z|0)==(a|0)?0:a):z)|0)%((1<<(d[e+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[h+12>>2]|0)==3?(c[h+8>>2]|0)==(z|0):0)break;a=c[h+16>>2]|0;if(!a){A=2217396;break a}else h=a}A=h}while(0);c[y>>2]=c[A>>2];c[y+4>>2]=c[A+4>>2];A=(c[l>>2]|0)+8|0;c[l>>2]=A;if((u|0)>(t|0)){y=A;A=t;do{t=A;A=A+1|0;e=(c[c[i>>2]>>2]|0)+8|0;s=c[(e>>>0<y>>>0?e:2217396)>>2]|0;b:do if(t>>>0<(c[s+28>>2]|0)>>>0)B=(c[s+12>>2]|0)+(t<<3)|0;else{e=A<<16;z=0-e|0;a=(c[s+16>>2]|0)+(((((e|0)<0?((e|0)==(z|0)?0:z):e)|0)%((1<<(d[s+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[a+12>>2]|0)==3?(c[a+8>>2]|0)==(e|0):0)break;z=c[a+16>>2]|0;if(!z){B=2217396;break b}else a=z}B=a}while(0);c[y>>2]=c[B>>2];c[y+4>>2]=c[B+4>>2];y=(c[l>>2]|0)+8|0;c[l>>2]=y}while((A|0)!=(u|0))}jh(w<<1);x=w;Ia=b;return x|0}function vg(){c[554354]=0;return}function wg(){c[554352]=(c[554352]|0)+(c[554353]|0);c[554353]=0;return}function xg(){return (c[554353]|0)+(c[554352]|0)|0}function yg(a){a=a|0;c[554353]=(c[554353]|0)+a;return}function zg(a){a=a|0;c[8722]=a;return}function Ag(){c[554352]=0;c[554353]=0;return}function Bg(){c[554354]=1073741824;return}function Cg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[554364]|0;if((e|0)>510)return;f=187248+(e*1320|0)|0;Wv(f|0,0,1320)|0;Ss(f,a,255)|0;Ss(187248+((c[554364]|0)*1320|0)+256|0,b,16)|0;b=c[554364]|0;c[187248+(b*1320|0)+1316>>2]=d;Ss(187248+(b*1320|0)+288|0,3125548,1024)|0;c[554364]=(c[554364]|0)+1;return}function Dg(){c[798389]=0;c[554364]=0;return}function Eg(){var a=0;a=c[554364]|0;return ((a|0)<1?0:187248+((a+-1|0)*1320|0)+256|0)|0}function Fg(){var a=0;a=c[554364]|0;return ((a|0)<1?0:187248+((a+-1|0)*1320|0)|0)|0}function Gg(){var a=0,b=0;a=c[554364]|0;if((a|0)<1)return;b=a+-1|0;if(!(c[187248+(b*1320|0)+1316>>2]|0))return;c[554364]=b;return}function Hg(){var a=0,b=0;a=c[554364]|0;if(!a)return;b=187248+((a+-1|0)*1320|0)+1316|0;if(!(c[b>>2]|0))return;c[b>>2]=0;return}function Ig(){var a=0;a=c[554364]|0;if((a|0)<1)return;bc(187248+((a+-1|0)*1320|0)|0)|0;c[780900]=1;a=c[554364]|0;Rs(3126573,(a|0)<1?0:187248+((a+-1|0)*1320|0)+288|0)|0;c[780903]=20;a=c[554364]|0;if((a|0)>=1)c[554364]=a+-1;c[485555]=0;return}function Jg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=(c[742801]|0)!=0;f=c[780894]|0;if(e&(f|0)==0){qv(b)|0;return}if(!((a[2142448]|0)==0|e^1)){qv(b)|0;return}if((f|0)!=2)ma(21,b|0,bu(b)|0)|0;f=bu(b)|0;if((f|0)>32){e=~f;g=((f+((e|0)>-65?e:-65)+32|0)>>>5)*6|0;e=f;while(1){ab();if((e|0)>64)e=e+-32|0;else break}h=g+6|0}else h=0;g=(c[781024]|0)-h|0;c[781024]=g;e=c[742782]|0;Pn(e,0,g,127,g+5+((((bu(b)|0)+-1|0)>>>5)*6|0)|0,0);Bo(c[742782]|0,b,c[742805]|0,c[781023]|0,c[781024]|0,17,d)|0;c[781024]=(c[781024]|0)+h;ab();return}function Kg(b,d){b=b|0;d=d|0;var e=0,f=0;Jg(b,d);d=c[536393]|0;if(!d){e=Aq(16)|0;c[536393]=e;f=e}else f=d;d=bu(c[f+12>>2]|0)|0;Bq(f,d+16+(bu(b)|0)|0)|0;lu(c[(c[536393]|0)+12>>2]|0,b)|0;b=c[(c[536393]|0)+12>>2]|0;d=b+(bu(b)|0)|0;a[d>>0]=10;a[d+1>>0]=0;return}function Lg(a){a=a|0;Jg(a,6);return}function Mg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=b;c[f+4>>2]=d;wt(1719968,a,f)|0;Jg(1719968,6);Ia=e;return}function Ng(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+16|0;g=f;c[g>>2]=b;c[g+4>>2]=d;wt(1719968,a,g)|0;Jg(1719968,e);Ia=f;return}function Og(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=Ia;Ia=Ia+48|0;f=e+24|0;g=e+8|0;h=e;i=e+32|0;j=e+28|0;if(bv(b,50292)|0){k=0;Ia=e;return k|0}l=bv(b,50308)|0;if(!l){if(!b){k=0;Ia=e;return k|0}m=xq((bu(b)|0)+1|0)|0;Rs(m,b)|0;n=m+(bu(m)|0)|0;o=n+-1|0;a:do if(o>>>0>m>>>0){p=n;q=o;while(1){if((a[q>>0]|0)==58){r=p;s=q;break a}t=q+-1|0;if(t>>>0>m>>>0){u=q;q=t;p=u}else{r=q;s=t;break}}}else{r=n;s=o}while(0);kv(863088,(a[s>>0]|0)==58?r+1|0:s,1023)|0;a[864111]=0;zq(m);k=863088;Ia=e;return k|0}c[i>>2]=0;c[j>>2]=0;m=bv(b,50319)|0;if(m|0){c[i>>2]=0;c[h>>2]=i;c[h+4>>2]=j;Su(m+8|0,50328,h)|0}h=xq((bu(b)|0)+1|0)|0;Rs(h,l+10|0)|0;l=h;b:while(1){v=l+1|0;switch(a[v>>0]|0){case 0:case 39:{break b;break}default:l=v}}a[v>>0]=0;if(!d){c[f>>2]=h;wt(1719968,50373,f)|0}else{f=c[i>>2]|0;d=c[j>>2]|0;c[g>>2]=h;c[g+4>>2]=f;c[g+8>>2]=d;wt(1719968,50340,g)|0}Kg(1719968,6);g=c[i>>2]|0;if((g|0)>0?(i=c[778919]|0,d=g+-1|0,(Is(c[i>>2]|0,c[i+336>>2]|0)|0)!=(d|0)):0){i=Js(c[c[778919]>>2]|0,d)|0;d=c[778919]|0;c[d+336>>2]=i;Gs(d,52);c[485658]=g}zq(h);k=0;Ia=e;return k|0}function Pg(b){b=b|0;var c=0,d=0;c=vq(8192)|0;Rs(c,b)|0;if(!(bv(b,50385)|0)){if(!(au(b,50442)|0)){zq(c);return}Kg(c,6);zq(c);return}if(bv(b,50402)|0?(Kg(50402,6),a[3195208]|0):0)Kg(3195208,7);d=bv(b,50419)|0;if(!d){zq(c);return}Rs(1719968,d)|0;a[1719968+((bu(1719968)|0)+-1)>>0]=0;Kg(1719968,6);zq(c);return}function Qg(a){a=a|0;var b=0;if(!a){b=xg()|0;return b|0}else{b=c[742778]|0;return b|0}return 0}function Rg(){var a=0;a=c[554361]|0;if(a|0)og(a);a=Mf(2,0)|0;c[554361]=a;c[554360]=a;c[554362]=lg(a)|0;yi(c[554360]|0);sf(c[554360]|0,6,100)|0;sf(c[554360]|0,7,200)|0;return}function Sg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;if(!e){f=0;g=b}else{e=vq(262144)|0;hn(b,e)|0;f=e;g=e}zq(c[554365]|0);if(!g){e=xq(16)|0;c[554365]=e;a[e>>0]=0;zq(f);h=c[554365]|0;return h|0}e=(bu(g)|0)+1|0;b=xq(e>>>0>32?e:32)|0;c[554365]=b;Rs(b,g)|0;g=c[554365]|0;b=a[g>>0]|0;a:do if(b<<24>>24){e=b;i=g;j=1;while(1){if((j|0)==(d|0))break;k=e<<24>>24==0;l=i+1|0;if(k^e<<24>>24!=10){m=l;while(1){n=a[m>>0]|0;o=n<<24>>24==0;p=m+1|0;if(o^n<<24>>24!=10)m=p;else{q=m;r=p;s=o;break}}}else{q=i;r=l;s=k}m=s?q:r;o=a[m>>0]|0;if(!(o<<24>>24))break a;else{e=o;i=m;j=j+1|0}}j=e;m=i;b:while(1){switch(j<<24>>24){case 0:case 10:{break b;break}default:{}}o=m+1|0;j=a[o>>0]|0;m=o}a[m>>0]=0;zq(f);h=i;return h|0}while(0);Rs(g,50460)|0;zq(f);h=c[554365]|0;return h|0}function Tg(){var b=0,d=0,e=0,f=0,g=0;b=c[781023]|0;d=c[781024]|0;e=xl(0)|0;f=xl(1)|0;g=$k(2971096,c[781999]|0,24375)|0;dl(2971096,c[781999]|0,24320,0,128);_k(2971096,c[781999]|0,24404,0);_k(2971096,c[781999]|0,24405,96);_k(2971096,c[781999]|0,24406,32);_k(2971096,c[781999]|0,24407,128);Mk(0,0)|0;Mk(1,0)|0;Mk(2,0)|0;Mk(3,0)|0;al();c[781023]=b;c[781024]=d;yl(0,e);yl(1,f);_k(2971096,c[781999]|0,24375,g);c[781023]=0;c[781025]=0;c[781022]=6;c[781028]=4;c[781029]=6;c[781036]=15;c[781035]=15;c[781034]=255;c[781039]=0;c[781040]=0;c[781042]=0;c[781031]=0;c[781030]=0;c[780986]=0;c[781002]=0;c[780971]=1;c[780987]=1;c[781003]=1;c[780972]=2;c[780988]=2;c[781004]=18;c[780973]=3;c[780989]=3;c[781005]=19;c[780974]=4;c[780990]=4;c[781006]=36;c[780975]=5;c[780991]=5;c[781007]=21;c[780976]=6;c[780992]=6;c[781008]=214;c[780977]=7;c[780993]=7;c[781009]=103;c[780978]=8;c[780994]=8;c[781010]=72;c[780979]=9;c[780995]=9;c[781011]=73;c[780980]=10;c[780996]=10;c[781012]=154;c[780981]=11;c[780997]=11;c[781013]=59;c[780982]=12;c[780998]=12;c[781014]=220;c[780983]=13;c[780999]=13;c[781015]=93;c[780984]=14;c[781e3]=14;c[781016]=142;c[780985]=15;c[781001]=15;c[781017]=239;c[780970]=16;c[781033]=0;c[781019]=0;c[781018]=0;c[781021]=128;c[781020]=128;Lk();c[781038]=0;a[3195208]=0;c[781386]=0;c[535603]=0;c[798391]=0;c[798392]=0;c[798393]=0;c[742775]=0;c[798930]=0;qn();if(c[798799]|0){c[742777]=0;c[781379]=0;wn();c[798466]=0;a[3195728]=0;Uk();Vk();c[781045]=13;return}c[484717]=0;c[484720]=0;c[742777]=0;c[781379]=0;wn();c[798466]=0;a[3195728]=0;Uk();Vk();c[781045]=13;return}function Ug(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=Ia;Ia=Ia+176|0;e=d+152|0;f=d+144|0;g=d+136|0;h=d+128|0;i=d+120|0;j=d+112|0;k=d+104|0;l=d+96|0;m=d+88|0;n=d+80|0;o=d+72|0;p=d+64|0;q=d+56|0;r=d+48|0;s=d+40|0;t=d+32|0;u=d+24|0;v=d+16|0;w=d+8|0;x=d;y=d+160|0;c[y>>2]=0;c[781022]=6;if(ut(b,50466,6)|0)if(!(ut(b,50473,5)|0))z=b+5|0;else{A=b+10|0;if(ut(b,50593,10)|0){B=b+9|0;if(ut(b,50604,9)|0)if(ut(b,50614,10)|0)if(!(ut(b,50625,9)|0))C=B;else{if(ut(b,50803,14)|0)if(ut(b,50818,13)|0){if(!(ut(b,50988,7)|0)){c[x>>2]=y;Su(b+7|0,94793,x)|0;x=c[y>>2]|0;D=(x|0)<256?x:256;x=(D|0)>8?D:8;c[y>>2]=x;c[535610]=x;if(c[555247]|0)c[555247]=x;c[w>>2]=x;wt(1719968,50996,w)|0;Jg(1719968,14);Ia=d;return}if(!(ut(b,93198,6)|0)){Jg(51011,14);Jg(51031,12);c[v>>2]=c[535610];c[v+4>>2]=0;wt(1719968,51056,v)|0;Jg(1719968,6);Ia=d;return}if(!(ut(b,51075,8)|0)){c[u>>2]=y;Su(b+8|0,94793,u)|0;u=c[y>>2]|0;v=(u|0)<30?u:30;u=(v|0)>1?v:1;c[y>>2]=u;c[484701]=u;c[t>>2]=u;wt(1719968,51084,t)|0;Jg(1719968,14);Mh();Ia=d;return}if(!(ut(b,51100,7)|0)){Jg(51108,14);c[s>>2]=c[484701];c[s+4>>2]=0;wt(1719968,51133,s)|0;Jg(1719968,6);Ia=d;return}if(!(ut(b,51153,15)|0)){c[r>>2]=y;Su(b+15|0,94793,r)|0;r=c[y>>2]|0;s=(r|0)<1?r:1;r=(s|0)>0?s:0;c[y>>2]=r;c[484702]=r;c[q>>2]=r;wt(1719968,51169,q)|0;Jg(1719968,14);Ia=d;return}if(!(ut(b,51192,14)|0)){Jg(51207,14);Jg(51236,12);Jg(51268,12);Jg(3196396,6);c[p>>2]=c[484702];c[p+4>>2]=0;wt(1719968,51299,p)|0;Jg(1719968,6);Ia=d;return}if(!(ut(b,51326,12)|0)){c[o>>2]=y;Su(b+12|0,94793,o)|0;o=c[y>>2]|0;p=(o|0)<1?o:1;o=(p|0)>0?p:0;c[y>>2]=o;c[484715]=o;c[n>>2]=o;wt(1719968,51339,n)|0;Jg(1719968,14);Ia=d;return}if(!(ut(b,51359,10)|0)){c[m>>2]=y;Su(A,94793,m)|0;m=c[y>>2]|0;n=(m|0)<8?m:8;m=(n|0)>1?n:1;c[y>>2]=m;c[484698]=m;c[l>>2]=m;wt(1719968,51370,l)|0;Jg(1719968,14);Ia=d;return}if(!(ut(b,51388,9)|0)){Jg(51398,14);c[k>>2]=c[484698];c[k+4>>2]=0;wt(1719968,51422,k)|0;Jg(1719968,6);Ia=d;return}if(!(ut(b,51444,17)|0)){c[j>>2]=y;Su(b+17|0,94793,j)|0;j=c[y>>2]|0;k=(j|0)<8?j:8;j=(k|0)>1?k:1;c[y>>2]=j;c[484697]=j;c[i>>2]=j;wt(1719968,51462,i)|0;Jg(1719968,14);Ia=d;return}if(!(ut(b,51487,16)|0)){Jg(51504,14);c[h>>2]=c[484697];c[h+4>>2]=0;wt(1719968,51535,h)|0;Jg(1719968,6);Ia=d;return}if(!(ut(b,51564,10)|0)){c[g>>2]=y;Su(A,94793,g)|0;g=c[y>>2]|0;h=(g|0)<8?g:8;g=(h|0)>1?h:1;c[y>>2]=g;c[484694]=g;y=((g|0)<4?g:4)<<2;c[(c[778903]|0)+316>>2]=y;c[(c[778904]|0)+316>>2]=y;c[(c[778905]|0)+316>>2]=y;c[(c[778906]|0)+316>>2]=y;c[(c[778907]|0)+316>>2]=y;c[(c[778908]|0)+316>>2]=y;c[(c[778909]|0)+316>>2]=y;c[(c[778910]|0)+316>>2]=y;c[(c[778911]|0)+316>>2]=y;c[(c[778912]|0)+316>>2]=y;c[(c[778913]|0)+316>>2]=y;c[(c[778914]|0)+316>>2]=y;c[(c[778915]|0)+316>>2]=y;c[(c[778916]|0)+316>>2]=y;c[(c[778917]|0)+316>>2]=y;c[(c[778918]|0)+316>>2]=y;c[f>>2]=g;wt(1719968,51575,f)|0;Jg(1719968,14);Ia=d;return}if(!(ut(b,51593,9)|0)){Jg(51603,14);c[e>>2]=c[484694];c[e+4>>2]=0;wt(1719968,51628,e)|0;Jg(1719968,6);Ia=d;return}else{Jg(51650,14);Jg(3196396,6);Jg(51667,12);c[781022]=14;Jg(93198,6);Jg(50473,6);Jg(51100,6);Jg(51192,6);Jg(51388,6);Jg(51487,6);Jg(50818,6);Jg(51593,6);Jg(50604,6);Jg(3196396,6);Ia=d;return}}else E=b+13|0;else E=b+14|0;if(!(ut(E,50635,2)|0)){c[484711]=1;Jg(50832,14);Ia=d;return}if(!(ut(E,50656,3)|0)){c[484711]=0;Jg(50842,14);Ia=d;return}switch(a[E>>0]|0){case 49:{c[484711]=1;Jg(50832,14);Ia=d;return}case 48:{c[484711]=0;Jg(50842,14);Ia=d;return}default:{Jg(50853,14);Jg(3196396,6);Jg(50878,6);Jg(50908,6);Jg(3196396,6);if(!((c[484711]|0)!=0?(Jg(50939,12),(c[484711]|0)!=0):0))Jg(50963,12);Jg(3196396,6);Ia=d;return}}}else C=A;else C=B}else C=A;if(!(ut(C,50635,2)|0)){c[484695]=1;Jg(50638,14);Ia=d;return}if(!(ut(C,50656,3)|0)){c[484695]=0;Jg(50660,14);Ia=d;return}switch(a[C>>0]|0){case 49:{c[484695]=1;Jg(50638,14);Ia=d;return}case 48:{c[484695]=0;Jg(50660,14);Ia=d;return}default:{Jg(50679,14);Jg(3196396,6);Jg(50707,6);Jg(50736,6);Jg(3196396,6);if(!((c[484695]|0)!=0?(Jg(50762,12),(c[484695]|0)!=0):0))Jg(50782,12);Jg(3196396,6);Ia=d;return}}}else z=b+6|0;if(!(ut(z,50479,4)|0)){c[484705]=1;Jg(50484,14);Ia=d;return}if(!(ut(z,50502,4)|0)){c[484705]=0;Jg(50507,14);Ia=d;return}if(!(ut(z,50525,7)|0)){c[484705]=3;Jg(50533,14);Ia=d;return}else{Jg(50554,14);Jg(3196396,6);Jg(50575,12);Jg(50502,6);Jg(50479,6);Jg(50525,6);Jg(3196396,6);Ia=d;return}}function Vg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=(Xr()|0)/120|0;if((c[536390]|0)==0|(c[742775]|0)<240)return;d=xg()|0;e=Rv(d|0,((d|0)<0)<<31>>31|0,16)|0;d=G()|0;f=c[798455]|0;g=8388608/(((f|0)==0?30:f)|0)|0;f=Lv(e|0,d|0,g|0,((g|0)<0)<<31>>31|0)|0;G()|0;if((c[780894]|0)!=1|(f|0)<7864320|(c[780901]|0)==0)return;f=4;do{g=B(f+1001|0,b)|0;d=B(f,b)|0;e=f+-1|0;h=f|1;if(((((g*41|0)+103|0)%4701|0|0)%97|0)&4|0){Pn(a,3,e,5,h,0);Un(a,4,f,((tp(2)|0)<<1)+12|0)}if(((((d<<2)+103|0)%4701|0|0)%101|0)&8|0){Pn(a,3,e,5,h,0);Un(a,4,f,7)}if(((((g*43|0)+103|0)%4701|0|0)%97|0)&4|0){Pn(a,5,e,7,h,0);Un(a,6,f,((tp(2)|0)<<1)+12|0)}if(((((d*6|0)+103|0)%4701|0|0)%101|0)&8|0){Pn(a,5,e,7,h,0);Un(a,6,f,7)}if(((((g*45|0)+103|0)%4701|0|0)%97|0)&4|0){Pn(a,7,e,9,h,0);Un(a,8,f,((tp(2)|0)<<1)+12|0)}if(((((d<<3)+103|0)%4701|0|0)%101|0)&8|0){Pn(a,7,e,9,h,0);Un(a,8,f,7)}f=f+2|0}while(f>>>0<10);return}function Wg(a){a=a|0;var b=0,d=0,e=0;b=Rv(a|0,((a|0)<0)<<31>>31|0,16)|0;a=G()|0;d=c[798455]|0;e=8388608/(((d|0)==0?30:d)|0)|0;d=Lv(b|0,a|0,e|0,((e|0)<0)<<31>>31|0)|0;G()|0;return d|0}function Xg(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0;b=Ia;Ia=Ia+48|0;d=b+16|0;e=b;if(!((c[780894]|0)==1&(c[780901]|0)!=0)){Ia=b;return}Hk(a,60,4,123,26,0);Qn(a,60,4,124,27);f=0;do{h=((c[536387]|0)+f|0)%64|0;if(!f)i=60;else{j=f+60|0;k=c[2143500+(h<<5)+20>>2]|0;Un(a,j,((k|0)/32768|0)+2|0,(k|0)>131071?8:2);i=j}Un(a,i,19-(c[2143500+(h<<5)+16>>2]|0)|0,2);l=2143500+(h<<5)+4|0;j=c[l>>2]|0;k=(j|0)<98303?j:98303;j=c[2143500+(h<<5)+12>>2]|0;Un(a,i,19-((((k|0)>0?k:0)>>>0)/6144|0)|0,(j|0)==0?1:j);f=f+1|0}while((f|0)!=64);if(!(qo(225)|0)){f=c[798455]|0;m=+(c[l>>2]|0)*.0000152587890625;n=+((c[536380]|0)+((c[536372]|0)+((c[536364]|0)+((c[536356]|0)+((c[536348]|0)+((c[536340]|0)+((c[536332]|0)+((c[536324]|0)+((c[536316]|0)+((c[536308]|0)+((c[536300]|0)+((c[536292]|0)+((c[536284]|0)+((c[536276]|0)+((c[536268]|0)+((c[536260]|0)+((c[536252]|0)+((c[536244]|0)+((c[536236]|0)+((c[536228]|0)+((c[536220]|0)+((c[536212]|0)+((c[536204]|0)+((c[536196]|0)+((c[536188]|0)+((c[536180]|0)+((c[536172]|0)+((c[536164]|0)+((c[536156]|0)+((c[536148]|0)+((c[536140]|0)+((c[536132]|0)+((c[536124]|0)+((c[536116]|0)+((c[536108]|0)+((c[536100]|0)+((c[536092]|0)+((c[536084]|0)+((c[536076]|0)+((c[536068]|0)+((c[536060]|0)+((c[536052]|0)+((c[536044]|0)+((c[536036]|0)+((c[536028]|0)+((c[536020]|0)+((c[536012]|0)+((c[536004]|0)+((c[535996]|0)+((c[535988]|0)+((c[535980]|0)+((c[535972]|0)+((c[535964]|0)+((c[535956]|0)+((c[535948]|0)+((c[535940]|0)+((c[535932]|0)+((c[535924]|0)+((c[535916]|0)+((c[535908]|0)+((c[535900]|0)+((c[535892]|0)+((c[535884]|0)+(c[535876]|0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))|0)*2.384185791015625e-07;c[d>>2]=c[798454];c[d+4>>2]=f;g[d+8>>3]=m;g[d+16>>3]=n;wt(1719968,51703,d)|0;Bo(a,1719968,c[742805]|0,63,20,1,(c[798454]|0)<(c[798455]|0)?8:13)|0}else{d=c[798455]|0;n=+(c[2143500+(h<<5)+24>>2]|0);c[e>>2]=c[798454];c[e+4>>2]=d;g[e+8>>3]=n;wt(1719968,51687,e)|0;Bo(a,1719968,c[742805]|0,63,20,1,(c[798454]|0)<(c[798455]|0)?8:13)|0}Xn(a);Wn(a,59,3,124,27,0);Ia=b;return}function Yg(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0;a=c[536387]|0;b=(c[798390]|0)+(c[781046]|0)|0;d=(b|0)>2097152?134217728:b<<6;c[2143500+(a<<5)>>2]=(d|0)>0?d:0;d=xg()|0;b=Rv(d|0,((d|0)<0)<<31>>31|0,16)|0;d=G()|0;e=c[798455]|0;f=8388608/(((e|0)==0?30:e)|0)|0;g=((f|0)<0)<<31>>31;h=Lv(b|0,d|0,f|0,g|0)|0;G()|0;c[2143500+(a<<5)+4>>2]=h;h=c[742778]|0;d=Rv(h|0,((h|0)<0)<<31>>31|0,16)|0;h=Lv(d|0,G()|0,f|0,g|0)|0;G()|0;c[2143500+(a<<5)+8>>2]=h;c[2143500+(a<<5)+12>>2]=(c[535607]|0)==0?((c[798454]|0)<(e|0)?14:6):7;c[2143500+(a<<5)+20>>2]=c[535606];c[2143500+(a<<5)+24>>2]=Cr()|0;a=((c[536387]|0)+1|0)%64|0;c[536387]=a;e=2143500+(a<<5)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;return}function Zg(){var b=0;if(!(c[554363]|0))c[554363]=Xr()|0;b=Xr()|0;if((b|0)<=((c[554363]|0)+6e4|0))return;a[2009716]=0;a[2075252]=0;c[535197]=0;c[535198]=0;c[554363]=Xr()|0;return}function _g(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;e=Ia;Ia=Ia+128|0;f=e+104|0;g=e+88|0;h=e+80|0;i=e+72|0;j=e+64|0;k=e+112|0;l=e;c[536390]=0;Cq(c[536393]|0);c[536393]=0;if((au(b,86658)|0?au(b,51721)|0:0)?au(b,104528)|0:0){if(au(b,104886)|0?!((a[b>>0]|0)==0&(c[485657]|0)!=0):0){c[485657]=0;ci(c[554360]|0);c[742799]=0;c[742779]=1;c[742779]=(bv(b,59099)|0)==0&1;if(!((bv(b,51748)|0)==0?!(bv(b,59915)|0):0))qs();c[536390]=(bv(b,51756)|0)!=0&1;c[742778]=0;c[742780]=0;Ag();zg(279620);c[k>>2]=0;m=(d|0)!=0;d=(m^1)&1;n=xq(262144)|0;a:do if(!(hn(b,n)|0)){do if(!m){if((bu(n)|0)>>>0>65536){Jg(51763,6);c[j>>2]=bu(n)|0;c[j+4>>2]=65536;wt(1719968,51790,j)|0;Jg(1719968,6);zq(n);break a}o=uh(n)|0;if((o|0)>8192){Jg(51805,6);c[i>>2]=o;c[i+4>>2]=8192;wt(1719968,51823,i)|0;Jg(1719968,6);zq(n);break a}else{p=c[554361]|0;c[554360]=p;q=p;r=o*12|0;break}}else{o=c[554362]|0;c[554360]=o;q=o;r=0}while(0);rf(q);Wv(928624,0,262144)|0;Vv(928624+(bu(928624)|0)|0,51839,4075)|0;o=928624+(bu(928624)|0)|0;p=55914;s=o+13|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(s|0));Vv(928624+(bu(928624)|0)|0,55927,358)|0;o=928624+(bu(928624)|0)|0;p=56285;s=o+11|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(s|0));if(!(c[484627]|0))Vv(928624+(bu(928624)|0)|0,56296,639)|0;t=928624+(bu(928624)|0)|0;a[t>>0]=a[56935]|0;a[t+1>>0]=a[56936]|0;a[t+2>>0]=a[56937]|0;if(!((au(3120504,93899)|0)!=0?(au(3120504,56938)|0)!=0:0)){t=928624+(bu(928624)|0)|0;a[t>>0]=a[56944]|0;a[t+1>>0]=a[56945]|0;a[t+2>>0]=a[56946]|0;a[t+3>>0]=a[56947]|0;a[t+4>>0]=a[56948]|0;a[t+5>>0]=a[56949]|0;a[t+6>>0]=a[56950]|0}t=xq(262144)|0;ku(t,n)|0;lu(928624,t)|0;zq(n);zq(t);if(67469){t=67469;u=1088;do{Rs(l,t)|0;v=c[u>>2]|0;if(!(au(b,v)|0)){if(au(67474,l)|0)if(!(au(91165,l)|0)){w=3;x=33}else y=l;else{w=1;x=33}if((x|0)==33){x=0;y=c[1200+(w<<2)>>2]|0}c[h>>2]=51839;c[h+4>>2]=y;wt(928624,56951,h)|0;z=c[u>>2]|0}else z=v;v=bu(b)|0;A=bu(z)|0;b:do if(v>>>0>=(A+2|0)>>>0?(ut(b,z,A)|0)==0:0){B=b+A|0;switch(a[B>>0]|0){case 32:case 0:break;default:break b}if((a[b+(A+1)>>0]|0)==34)break;if(au(67474,l)|0)if(!(au(91165,l)|0)){C=3;x=41}else D=l;else{C=1;x=41}if((x|0)==41){x=0;D=c[1200+(C<<2)>>2]|0}c[g>>2]=51839;c[g+4>>2]=D;c[g+8>>2]=B+1;wt(928624,56959,g)|0}while(0);u=u+4|0;t=c[u>>2]|0}while((t|0)!=0)}if(!(au(b,92375)|0)){o=928624;p=56971;s=o+9|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(s|0))}if((ut(b,61998,6)|0)==0?(a[b+6>>0]|0)<33:0){Ug(b+7|0);Rs(928624,3196396)|0}lu(928624,m?56980:57004)|0;c[798388]=1;p=If(c[554360]|0,928624)|0;c[798388]=0;c[798390]=r;if(!p){nl();c[798462]=0;if((c[780900]|0)==1)Tg();c[780894]=1;c[780901]=d;break}c[781022]=6;c:do if(m){Kg(58234,14);E=0;F=d}else{p=$g(c[8721]|0,k)|0;do if((p|0)>0){o=c[778919]|0;s=p+-1|0;if((Is(c[o>>2]|0,c[o+336>>2]|0)|0)==(s|0))break;o=Js(c[c[778919]>>2]|0,s)|0;s=c[778919]|0;c[s+336>>2]=o;Gs(s,52);c[485658]=p}else{if(p|0)break;Kg(58234,14);E=0;F=d;break c}while(0);s=c[k>>2]|0;c[f>>2]=p;c[f+4>>2]=s;wt(1719968,58247,f)|0;Kg(1719968,14);s=Sg(b,(c[8721]|0)+-2|0,1)|0;if(!s){E=0;F=0;break}Kg(s,7);E=s;F=0}while(0);s=Og(Jd(c[554360]|0,-1,0)|0,F)|0;do if(s|0){if(!((E|0)!=0&(au(s,58277)|0)==0)){Kg(s,6);break}if(!(bv(E,63997)|0)){Kg(58306,6);break}else{Kg(s,6);break}}while(0);c[485554]=1}else zq(n);while(0);Ia=e;return}n=c[554361]|0;if((n|0)!=0&(c[536391]|0)!=0){c[554360]=n;c[554964]=0;c[780901]=1;c[780894]=1;nl();c[485657]=1;c[798454]=c[798455];Ia=e;return}else{Jg(51730,6);Ia=e;return}}n=c[554361]|0;if((n|0)!=0&(c[536391]|0)!=0){c[554360]=n;c[554964]=0;c[780901]=1;c[780894]=1;nl();c[485657]=0;Ia=e;return}else{Jg(51730,6);Ia=e;return}}function $g(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=Ia;Ia=Ia+16|0;e=d;f=a+-2|0;a=vq(262144)|0;hn(c[c[778903]>>2]|0,a)|0;g=Is(a,1048576)|0;zq(a);a=g+2|0;if((f|0)>(a|0)){g=f-a|0;a=vq(262144)|0;hn(c[c[778904]>>2]|0,a)|0;h=Is(a,1048576)|0;zq(a);a=h+2|0;if((g|0)>(a|0)){h=g-a|0;a=vq(262144)|0;hn(c[c[778905]>>2]|0,a)|0;i=Is(a,1048576)|0;zq(a);a=i+2|0;if((h|0)>(a|0)){i=h-a|0;a=vq(262144)|0;hn(c[c[778906]>>2]|0,a)|0;j=Is(a,1048576)|0;zq(a);a=j+2|0;if((i|0)>(a|0)){j=i-a|0;a=vq(262144)|0;hn(c[c[778907]>>2]|0,a)|0;k=Is(a,1048576)|0;zq(a);a=k+2|0;if((j|0)>(a|0)){k=j-a|0;a=vq(262144)|0;hn(c[c[778908]>>2]|0,a)|0;l=Is(a,1048576)|0;zq(a);a=l+2|0;if((k|0)>(a|0)){l=k-a|0;a=vq(262144)|0;hn(c[c[778909]>>2]|0,a)|0;m=Is(a,1048576)|0;zq(a);a=m+2|0;if((l|0)>(a|0)){m=l-a|0;a=vq(262144)|0;hn(c[c[778910]>>2]|0,a)|0;n=Is(a,1048576)|0;zq(a);a=n+2|0;if((m|0)>(a|0)){n=m-a|0;a=vq(262144)|0;hn(c[c[778911]>>2]|0,a)|0;o=Is(a,1048576)|0;zq(a);a=o+2|0;if((n|0)>(a|0)){o=n-a|0;a=vq(262144)|0;hn(c[c[778912]>>2]|0,a)|0;p=Is(a,1048576)|0;zq(a);a=p+2|0;if((o|0)>(a|0)){p=o-a|0;a=vq(262144)|0;hn(c[c[778913]>>2]|0,a)|0;q=Is(a,1048576)|0;zq(a);a=q+2|0;if((p|0)>(a|0)){q=p-a|0;a=vq(262144)|0;hn(c[c[778914]>>2]|0,a)|0;r=Is(a,1048576)|0;zq(a);a=r+2|0;if((q|0)>(a|0)){r=q-a|0;a=vq(262144)|0;hn(c[c[778915]>>2]|0,a)|0;s=Is(a,1048576)|0;zq(a);a=s+2|0;if((r|0)>(a|0)){s=r-a|0;a=vq(262144)|0;hn(c[c[778916]>>2]|0,a)|0;t=Is(a,1048576)|0;zq(a);a=t+2|0;if((s|0)>(a|0)){t=s-a|0;a=vq(262144)|0;hn(c[c[778917]>>2]|0,a)|0;u=Is(a,1048576)|0;zq(a);a=u+2|0;if((t|0)>(a|0)){u=t-a|0;a=vq(262144)|0;hn(c[c[778918]>>2]|0,a)|0;v=Is(a,1048576)|0;zq(a);if((u|0)>(v+2|0)){if(!b){w=0;Ia=d;return w|0}c[b>>2]=0;w=0;Ia=d;return w|0}else{x=u;y=15}}else{x=t;y=14}}else{x=s;y=13}}else{x=r;y=12}}else{x=q;y=11}}else{x=p;y=10}}else{x=o;y=9}}else{x=n;y=8}}else{x=m;y=7}}else{x=l;y=6}}else{x=k;y=5}}else{x=j;y=4}}else{x=i;y=3}}else{x=h;y=2}}else{x=g;y=1}}else{x=f;y=0}if(b|0)c[b>>2]=y;if((jn()|0)<=0){w=x;Ia=d;return w|0}y=0;b=x;while(1){if((x|0)>(kn(y)|0)?(x|0)<=(ln(y)|0):0)break;if((x|0)>(ln(y)|0)){f=ln(y)|0;z=b+1-f+(kn(y)|0)|0}else z=b;f=y+1|0;if((f|0)<(jn()|0)){y=f;b=z}else{w=z;A=14;break}}if((A|0)==14){Ia=d;return w|0}A=mn(y)|0;z=x-(kn(y)|0)|0;c[e>>2]=A;c[e+4>>2]=z;wt(1719968,58329,e)|0;Jg(1719968,9);w=1-x+b+(kn(y)|0)|0;Ia=d;return w|0}function ah(){var b=0,d=0,e=0;if((c[742800]|0)>0)return;b=(c[780901]|0)!=0;if(b){c[554361]=c[554360];c[554964]=1;c[742799]=0;$l()|0;if(!(($k(2971096,c[781999]|0,24366)|0)&1)){c[780986]=0;c[780987]=1;c[780988]=2;c[780989]=3;c[780990]=4;c[780991]=5;c[780992]=6;c[780993]=7;c[780994]=8;c[780995]=9;c[780996]=10;c[780997]=11;c[780998]=12;c[780999]=13;c[781e3]=14;c[781001]=15}if(!(($k(2971096,c[781999]|0,24366)|0)&2))_k(2971096,c[781999]|0,24415,0);if(!(($k(2971096,c[781999]|0,24366)|0)&4)){c[781382]=0;c[781383]=0;c[781384]=0;c[781385]=0}if(!(($k(2971096,c[781999]|0,24366)|0)&8)){c[781036]=15;c[781035]=15;c[781034]=255}if(!(($k(2971096,c[781999]|0,24366)|0)&16)){_k(2971096,c[781999]|0,24408,0);if(!(a[3152374]&16))_k(2971096,c[781999]|0,24409,0);if(!(a[3152374]&16))_k(2971096,c[781999]|0,24410,0);if(!(a[3152374]&16))_k(2971096,c[781999]|0,24411,0)}if(!(($k(2971096,c[781999]|0,24366)|0)&32))c[781038]=0;if(!(($k(2971096,c[781999]|0,24366)|0)&64))c[781022]=6;if(!(($k(2971096,c[781999]|0,24366)|0)&128)){_k(2971096,c[781999]|0,24404,0);_k(2971096,c[781999]|0,24405,96)}Vm();if(!(c[485554]|0))c[485554]=1}c[780894]=0;c[742797]=0;c[781031]=0;c[781030]=0;c[781019]=0;c[781018]=0;c[781021]=128;c[781020]=128;Lk();Nk(0);c[781023]=0;c[781025]=0;d=c[781024]|0;e=(d|0)<122?d:122;c[781024]=(e|0)>0?e:0;if(b?no()|0:0)do oo()|0;while((no()|0)!=0);if(c[742801]|0)c[554811]=1;c[484717]=0;Xn(c[742782]|0);return}function bh(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;b=c[778921]|0;d=(a[c[c[778903]>>2]>>0]|0)==0;e=(b|0)==1?1:(a[c[c[778904]>>2]>>0]|0)!=0;f=(b|0)==2?1:(a[c[c[778905]>>2]>>0]|0)!=0;g=(b|0)==3?1:(a[c[c[778906]>>2]>>0]|0)!=0;h=(b|0)==4?1:(a[c[c[778907]>>2]>>0]|0)!=0;i=(b|0)==5?1:(a[c[c[778908]>>2]>>0]|0)!=0;j=(b|0)==6?1:(a[c[c[778909]>>2]>>0]|0)!=0;k=(b|0)==7?1:(a[c[c[778910]>>2]>>0]|0)!=0;l=(b|0)==8?1:(a[c[c[778911]>>2]>>0]|0)!=0;m=(b|0)==9?1:(a[c[c[778912]>>2]>>0]|0)!=0;n=(b|0)==10?1:(a[c[c[778913]>>2]>>0]|0)!=0;o=(b|0)==11?1:(a[c[c[778914]>>2]>>0]|0)!=0;p=(b|0)==12?1:(a[c[c[778915]>>2]>>0]|0)!=0;q=(b|0)==13?1:(a[c[c[778916]>>2]>>0]|0)!=0;r=(b|0)==14?1:(a[c[c[778917]>>2]>>0]|0)!=0;s=(b|0)==15?1:(a[c[c[778918]>>2]>>0]|0)!=0;a[c[c[26544]>>2]>>0]=0;t=s?15:r?14:q?13:p?12:o?11:n?10:m?9:l?8:k?7:j?6:i?5:h?4:g?3:f?2:e?1:((b|0)!=0&d)<<31>>31;lu(c[c[26544]>>2]|0,c[c[778903]>>2]|0)|0;if((t|0)>0){d=c[c[26544]>>2]|0;b=d+(bu(d)|0)|0;a[b>>0]=a[58341]|0;a[b+1>>0]=a[58342]|0;a[b+2>>0]=a[58343]|0;a[b+3>>0]=a[58344]|0;a[b+4>>0]=a[58345]|0;a[b+5>>0]=a[58346]|0;a[b+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778904]>>2]|0)|0;if((t|0)>1){b=c[c[26544]>>2]|0;d=b+(bu(b)|0)|0;a[d>>0]=a[58341]|0;a[d+1>>0]=a[58342]|0;a[d+2>>0]=a[58343]|0;a[d+3>>0]=a[58344]|0;a[d+4>>0]=a[58345]|0;a[d+5>>0]=a[58346]|0;a[d+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778905]>>2]|0)|0;if((t|0)>2){d=c[c[26544]>>2]|0;b=d+(bu(d)|0)|0;a[b>>0]=a[58341]|0;a[b+1>>0]=a[58342]|0;a[b+2>>0]=a[58343]|0;a[b+3>>0]=a[58344]|0;a[b+4>>0]=a[58345]|0;a[b+5>>0]=a[58346]|0;a[b+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778906]>>2]|0)|0;if((t|0)>3){b=c[c[26544]>>2]|0;d=b+(bu(b)|0)|0;a[d>>0]=a[58341]|0;a[d+1>>0]=a[58342]|0;a[d+2>>0]=a[58343]|0;a[d+3>>0]=a[58344]|0;a[d+4>>0]=a[58345]|0;a[d+5>>0]=a[58346]|0;a[d+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778907]>>2]|0)|0;if((t|0)>4){d=c[c[26544]>>2]|0;b=d+(bu(d)|0)|0;a[b>>0]=a[58341]|0;a[b+1>>0]=a[58342]|0;a[b+2>>0]=a[58343]|0;a[b+3>>0]=a[58344]|0;a[b+4>>0]=a[58345]|0;a[b+5>>0]=a[58346]|0;a[b+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778908]>>2]|0)|0;if((t|0)>5){b=c[c[26544]>>2]|0;d=b+(bu(b)|0)|0;a[d>>0]=a[58341]|0;a[d+1>>0]=a[58342]|0;a[d+2>>0]=a[58343]|0;a[d+3>>0]=a[58344]|0;a[d+4>>0]=a[58345]|0;a[d+5>>0]=a[58346]|0;a[d+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778909]>>2]|0)|0;if((t|0)>6){d=c[c[26544]>>2]|0;b=d+(bu(d)|0)|0;a[b>>0]=a[58341]|0;a[b+1>>0]=a[58342]|0;a[b+2>>0]=a[58343]|0;a[b+3>>0]=a[58344]|0;a[b+4>>0]=a[58345]|0;a[b+5>>0]=a[58346]|0;a[b+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778910]>>2]|0)|0;if((t|0)>7){b=c[c[26544]>>2]|0;d=b+(bu(b)|0)|0;a[d>>0]=a[58341]|0;a[d+1>>0]=a[58342]|0;a[d+2>>0]=a[58343]|0;a[d+3>>0]=a[58344]|0;a[d+4>>0]=a[58345]|0;a[d+5>>0]=a[58346]|0;a[d+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778911]>>2]|0)|0;if((t|0)>8){d=c[c[26544]>>2]|0;b=d+(bu(d)|0)|0;a[b>>0]=a[58341]|0;a[b+1>>0]=a[58342]|0;a[b+2>>0]=a[58343]|0;a[b+3>>0]=a[58344]|0;a[b+4>>0]=a[58345]|0;a[b+5>>0]=a[58346]|0;a[b+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778912]>>2]|0)|0;if((t|0)>9){b=c[c[26544]>>2]|0;d=b+(bu(b)|0)|0;a[d>>0]=a[58341]|0;a[d+1>>0]=a[58342]|0;a[d+2>>0]=a[58343]|0;a[d+3>>0]=a[58344]|0;a[d+4>>0]=a[58345]|0;a[d+5>>0]=a[58346]|0;a[d+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778913]>>2]|0)|0;if((t|0)>10){d=c[c[26544]>>2]|0;b=d+(bu(d)|0)|0;a[b>>0]=a[58341]|0;a[b+1>>0]=a[58342]|0;a[b+2>>0]=a[58343]|0;a[b+3>>0]=a[58344]|0;a[b+4>>0]=a[58345]|0;a[b+5>>0]=a[58346]|0;a[b+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778914]>>2]|0)|0;if((t|0)>11){b=c[c[26544]>>2]|0;d=b+(bu(b)|0)|0;a[d>>0]=a[58341]|0;a[d+1>>0]=a[58342]|0;a[d+2>>0]=a[58343]|0;a[d+3>>0]=a[58344]|0;a[d+4>>0]=a[58345]|0;a[d+5>>0]=a[58346]|0;a[d+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778915]>>2]|0)|0;if((t|0)>12){d=c[c[26544]>>2]|0;b=d+(bu(d)|0)|0;a[b>>0]=a[58341]|0;a[b+1>>0]=a[58342]|0;a[b+2>>0]=a[58343]|0;a[b+3>>0]=a[58344]|0;a[b+4>>0]=a[58345]|0;a[b+5>>0]=a[58346]|0;a[b+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778916]>>2]|0)|0;if((t|0)>13){b=c[c[26544]>>2]|0;d=b+(bu(b)|0)|0;a[d>>0]=a[58341]|0;a[d+1>>0]=a[58342]|0;a[d+2>>0]=a[58343]|0;a[d+3>>0]=a[58344]|0;a[d+4>>0]=a[58345]|0;a[d+5>>0]=a[58346]|0;a[d+6>>0]=a[58347]|0}lu(c[c[26544]>>2]|0,c[c[778917]>>2]|0)|0;if((t|0)<=14){u=c[26544]|0;v=c[u>>2]|0;w=c[778918]|0;x=c[w>>2]|0;lu(v,x)|0;return}t=c[c[26544]>>2]|0;d=t+(bu(t)|0)|0;a[d>>0]=a[58341]|0;a[d+1>>0]=a[58342]|0;a[d+2>>0]=a[58343]|0;a[d+3>>0]=a[58344]|0;a[d+4>>0]=a[58345]|0;a[d+5>>0]=a[58346]|0;a[d+6>>0]=a[58347]|0;u=c[26544]|0;v=c[u>>2]|0;w=c[778918]|0;x=c[w>>2]|0;lu(v,x)|0;return}function ch(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0;a=c[(c[778903]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778904]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778905]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778906]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778907]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778908]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778909]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778910]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778911]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778912]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778913]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778914]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778915]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778916]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778917]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[(c[778918]|0)+4>>2]|0;Wv(c[a+12>>2]|0,0,c[a+88>>2]|0)|0;a=c[c[26544]>>2]|0;b=0;while(1){if((b|0)!=15){d=bv(a,58341)|0;e=c[c[3115612+(b<<2)>>2]>>2]|0;if(!d){f=e;g=6}else{Vv(e|0,a|0,d-a|0)|0;h=d+6|0;i=b+1|0}}else{f=c[c[778918]>>2]|0;g=6}if((g|0)==6){g=0;Rs(f,a)|0;h=a;i=16}if((i|0)<16){a=h;b=i}else break}return}function dh(b){b=b|0;var c=0,d=0,e=0,f=0;c=Ia;Ia=Ia+1024|0;d=c;Wv(1190768,0,1024)|0;Rs(d,b)|0;a[1190768]=0;b=Ts(d,93459)|0;if(!((b|0)!=0&b>>>0>d>>>0)){Ia=c;return 1190768}a[b>>0]=0;e=b;a:while(1){f=e+-1|0;b=a[f>>0]|0;if(!((b+-97&255)<26|(b+-48&255)<10))switch(b<<24>>24){case 45:case 95:break;default:break a}if(f>>>0>d>>>0)e=f;else break}Rs(1190768,f>>>0>d>>>0?e:f)|0;Ia=c;return 1190768}function eh(a){a=a|0;return 1}function fh(){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Ia;Ia=Ia+2064|0;e=d+2048|0;f=d+1024|0;g=d;bh();Rs(3125548,3126573)|0;c[f>>2]=c[484611];c[f+4>>2]=3126573;vv(58361,f)|0;if(!(c[484611]|0))a[3126573]=0;a[3120504]=0;a[3121528]=0;Rs(g,3118768)|0;c[485554]=0;h=(bv(g,58348)|0)!=0;do if(!(h&(c[484611]|0)!=0)?(ds(58356,f),(bv(g,f)|0)==0):0)if(!(bv(g,3115688)|0)){Rs(3121528,g)|0;break}else{Rs(3121528,g+(bu(3115688)|0)|0)|0;break}else i=7;while(0);if((i|0)==7){Wv(1190768,0,1024)|0;Rs(f,g)|0;a[1190768]=0;g=Ts(f,93459)|0;if((g|0)!=0&g>>>0>f>>>0){a[g>>0]=0;i=g;a:while(1){j=i+-1|0;g=a[j>>0]|0;if(!((g+-97&255)<26|(g+-48&255)<10))switch(g<<24>>24){case 45:case 95:break;default:break a}if(j>>>0>f>>>0)i=j;else break}Rs(1190768,j>>>0>f>>>0?i:j)|0}Rs(3120504,1190768)|0;c[535872]=0}c[e>>2]=3118768;c[e+4>>2]=3121528;c[e+8>>2]=3120504;wt(1715360,58436,e)|0;Cn(1715360);a[3122552]=0;Rg();el(2971096,c[781999]|0,0,0,17152);a[3127598]=0;a[3127662]=0;a[3127726]=0;a[3127790]=0;a[3127854]=0;a[3127918]=0;Wv(3119920,0,261)|0;b[1563991]=0;b[1563992]=0;b[1563993]=0;e=Fa(0)|0;zl((Xr()|0)+e|0);_g(c[c[26544]>>2]|0,0);or();lr(0,0);c[781382]=0;c[781383]=0;c[781384]=0;c[781385]=0;c[798454]=30;c[798455]=30;nl();Kb(c[26544]|0,3119833);c[780904]=0;c[485657]=0;c[536391]=1;Nk(0);Ia=d;return}function gh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=Ia;Ia=Ia+560|0;e=d+536|0;f=d+520|0;g=d+512|0;h=d;i=d+548|0;j=d+544|0;c[j>>2]=0;Wd(b,61302);be(c[554360]|0,0,1,0,0,0)|0;k=Jd(b,-1,0)|0;if(!k){Ia=d;return}zd(b,-2);b=a[k>>0]|0;if(!(b<<24>>24)){Ia=d;return}l=b;b=k;k=0;while(1){if(k>>>0>=10){m=23;break}k=k+1|0;n=l;o=b;a:while(1){switch(n<<24>>24){case 10:case 0:{break a;break}default:{}}p=o+1|0;n=a[p>>0]|0;o=p}Wv(h|0,0,512)|0;kv(h,b,o-b|0)|0;b=(a[o>>0]|0)==10?o+1|0:o;b:do if((bv(h,58509)|0)==0?(bv(h,58525)|0)==0:0){n=h;c:while(1){switch(a[n>>0]|0){case 0:{break b;break}case 58:{break c;break}default:{}}n=n+1|0}c[i>>2]=0;c[g>>2]=i;Su(n+1|0,94793,g)|0;p=c[i>>2]|0;if((p|0)>0){q=bv(h,58536)|0;if(!q){if(!(bv(h,58573)|0))break;r=$g(p,j)|0;if((r|0)<=-1)break;p=c[j>>2]|0;c[e>>2]=r;c[e+4>>2]=p;wt(1719968,58587,e)|0;Kg(1719968,13);break}p=q+13|0;q=p;d:while(1){switch(a[q>>0]|0){case 0:{break b;break}case 39:{break d;break}default:{}}q=q+1|0}a[q>>0]=0;n=$g(c[i>>2]|0,j)|0;r=c[j>>2]|0;c[f>>2]=p;c[f+4>>2]=n;c[f+8>>2]=r;wt(1719968,58550,f)|0;Jg(1719968,13)}}while(0);l=a[b>>0]|0;if(!(l<<24>>24)){m=23;break}}if((m|0)==23){Ia=d;return}}function hh(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=Ia;Ia=Ia+32|0;d=b+16|0;e=b;f=b+24|0;c[f>>2]=0;g=(c[484611]|0)==0;sf(c[554360]|0,1,0)|0;if(sf(c[554360]|0,9,0)|0){h=c[554360]|0;if((c[798466]|0)>64)sf(h,2,0)|0;else sf(h,5,200)|0}h=g?2359296:2113536;if(((c[798390]|0)+(c[781046]|0)|0)>(h|0)?sf(c[554360]|0,9,0)|0:0){g=c[742775]|0;if((c[554366]|0)!=(g|0)){c[798466]=(c[798466]|0)+1;c[554366]=g}sf(c[554360]|0,2,0)|0;g=c[781046]|0;i=(c[798390]|0)+g|0;if((i|0)>(h|0)){if(!(sf(c[554360]|0,9,0)|0))Cn(58607);else Kc(c[554360]|0,1);j=c[798390]|0;k=(c[781046]|0)+j|0;c[e>>2]=j+g;c[e+4>>2]=k;c[e+8>>2]=j;wt(1715360,58663,e)|0;Cn(1715360);l=(c[798390]|0)+(c[781046]|0)|0}else l=i;if((l|0)>(h|0)){Rg();ah();Jg(58704,6);Ia=b;return}}sf(c[554360]|0,0,0)|0;if((c[780894]|0)!=1|(c[780895]|0)!=0){Ia=b;return}vg();a:do switch(fg(c[554360]|0,0,0)|0){case 0:{ah();if((c[554360]|0)==(c[554361]|0))c[536391]=0;break}case 1:{c[780894]=1;break}default:if((c[742800]|0)<=0){ah();do if(c[780901]|0){h=c[554351]|0;if((h|0)>2){l=Sg(c[c[26544]>>2]|0,h+-2|0,1)|0;i=$g(h,f)|0;h=c[f>>2]|0;if((h|0)>=(Eh()|0)){Kg(58747,14);break}h=c[f>>2]|0;c[d>>2]=i;c[d+4>>2]=h;wt(1719968,58718,d)|0;Kg(1719968,14);if(l|0)Kg(l,7);if((i|0)>0?(l=c[778919]|0,h=i+-1|0,(Is(c[l>>2]|0,c[l+336>>2]|0)|0)!=(h|0)):0){l=Js(c[c[778919]>>2]|0,h)|0;h=c[778919]|0;c[h+336>>2]=l;Gs(h,52);c[485658]=i}}}else Kg(58747,14);while(0);Pg(Jd(c[554360]|0,-1,0)|0);if(a[3195208]|0)Kg(3195208,6);if(c[798467]|0){c[798467]=0;break a}if(c[780901]|0)gh(c[554360]|0)}}while(0);if(!(c[798463]|0)){Ia=b;return}d=Xr()|0;if((d|0)<=((c[798464]|0)+1e3|0)){Ia=b;return}$l()|0;c[798464]=Xr()|0;Ia=b;return}function ih(){var a=0,b=0;Xr()|0;zg(8388608/(c[798454]|0)|0);wg();c[485558]=0;if(Wk()|0)return;a=1;while(1){c[781386]=(c[781386]|0)+1;c[798465]=0;hh();if(!(c[798465]|0)){b=5;break}if(a>>>0<8192)a=a+1|0;else{b=5;break}}if((b|0)==5)return}function jh(a){a=a|0;var b=0;b=(a|0)==0?2:a<<1;if((a|0)<0)return;c[742778]=(c[742778]|0)+b;yg(b);return}function kh(b){b=b|0;a[3195208]=0;if(!b)return;kv(3195208,b,254)|0;a[3195463]=0;return}function lh(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0;a=c[536387]|0;c[798424]=c[798425];c[798425]=c[798426];c[798426]=c[798427];c[798427]=c[798428];c[798428]=c[798429];c[798429]=c[798430];c[798430]=c[798431];c[798431]=c[798432];c[798432]=c[798433];c[798433]=c[798434];c[798434]=c[798435];c[798435]=c[798436];c[798436]=c[798437];c[798437]=c[798438];c[798438]=c[798439];c[798439]=c[798440];c[798440]=c[798441];c[798441]=c[798442];c[798442]=c[798443];c[798443]=c[798444];c[798444]=c[798445];c[798445]=c[798446];c[798446]=c[798447];c[798447]=c[798448];c[798448]=c[798449];c[798449]=c[798450];c[798450]=c[798451];c[798451]=c[798452];c[798452]=c[798453];c[798453]=Cr()|0;b=c[798424]|0;d=c[798425]|0;e=c[798426]|0;f=c[798427]|0;g=c[798428]|0;h=c[798429]|0;i=c[798430]|0;j=c[798431]|0;k=c[798432]|0;l=c[798433]|0;m=c[798434]|0;n=c[798435]|0;o=c[798436]|0;p=c[798437]|0;q=c[798438]|0;r=c[798439]|0;s=c[798440]|0;t=c[798441]|0;u=c[798442]|0;v=c[798443]|0;w=c[798444]|0;x=c[798445]|0;y=c[798446]|0;z=c[798447]|0;A=c[798448]|0;B=c[798449]|0;C=c[798450]|0;D=c[798451]|0;E=c[798452]|0;F=c[798453]|0;H=((b|0)!=0&1)+((d|0)!=0&1)+((e|0)!=0&1)+((f|0)!=0&1)+((g|0)!=0&1)+((h|0)!=0&1)+((i|0)!=0&1)+((j|0)!=0&1)+((k|0)!=0&1)+((l|0)!=0&1)+((m|0)!=0&1)+((n|0)!=0&1)+((o|0)!=0&1)+((p|0)!=0&1)+((q|0)!=0&1)+((r|0)!=0&1)+((s|0)!=0&1)+((t|0)!=0&1)+((u|0)!=0&1)+((v|0)!=0&1)+((w|0)!=0&1)+((x|0)!=0&1)+((y|0)!=0&1)+((z|0)!=0&1)+((A|0)!=0&1)+((B|0)!=0&1)+((C|0)!=0&1)+((D|0)!=0&1)+((E|0)!=0&1)+((F|0)!=0&1)|0;I=c[798458]|0;J=c[798456]|0;if((I|0)>(J|0)){K=I-J|0;J=Rv(K|0,((K|0)<0)<<31>>31|0,16)|0;K=G()|0;I=c[798455]|0;L=8388608/(((I|0)==0?30:I)|0)|0;I=Lv(J|0,K|0,L|0,((L|0)<0)<<31>>31|0)|0;G()|0;L=c[798395]|0;c[798394]=L;c[798395]=I;K=(L|0)==0|(L|0)<(I|0)?I:L;M=(I|0)==0|(K|0)>(I|0)?K:I}else M=1048576;I=c[798461]|0;K=c[798459]|0;if((I|0)<(K|0))return;L=c[535605]|0;J=I-K+(c[798392]|0)+((L|0)>0?L:0)|0;L=(c[535471]|0)==0;K=L?1e4:(F+(E+(D+(C+(B+(A+(z+(y+(x+(w+(v+(u+(t+(s+(r+(q+(p+(o+(n+(m+(l+(k+(j+(i+(h+(g+(f+(e+(d+b))))))))))))))))))))))))))))|0)/(((H|0)==0?1:H)|0)|0;H=c[798454]|0;b=c[798455]|0;if((c[535607]|0)!=0&(H|0)==(b|0)){c[2143500+(a<<5)+28>>2]=9;c[798454]=(H|0)/2|0;c[535607]=0;return}c[535607]=0;if((H|0)==60?(K|0)<60&(b|0)==60:0){d=2143500+(a<<5)+28|0;c[d>>2]=8;c[798454]=30;if(ns()|0?(e=Xr()|0,(e-(c[798393]|0)|0)<2e3):0){c[d>>2]=10;d=(c[798392]|0)+1|0;c[798392]=(d|0)<5?d:5}c[798393]=Xr()|0;return}if((H|0)>=(b|0))return;if((K|0)>=(b|0)?(M|0)<64512&(L|(J|0)<17|(b|0)==30):0){c[2143500+(a<<5)+28>>2]=11;c[798454]=b;return}if((M|0)>=63488)return;c[2143500+(a<<5)+28>>2]=2;return}function mh(){c[297948]=0;c[554367]=0;return}function nh(a){a=a|0;Rs(1191792+(c[554367]<<6)|0,a)|0;c[554367]=(c[554367]|0)+1;return}function oh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;d=Ia;Ia=Ia+128|0;e=d;f=c[554369]|0;if((f|4|0)!=-995)c[554370]=f;a[1208176]=0;c[554369]=0;g=b;a:while(1){h=a[g>>0]|0;switch(h<<24>>24){case 0:{i=6;break a;break}case 45:{i=7;break a;break}case 126:{i=18;break a;break}case 13:case 9:case 8:case 32:break;default:{j=h;k=0;break a}}g=g+1|0}if((i|0)==6){c[554369]=-1e3;l=g;Ia=d;return l|0}else if((i|0)==7){b=a[g+1>>0]|0;if(b<<24>>24==45){c[554369]=-995;m=g+2|0;if((a[m>>0]|0)==91){n=0;while(1){o=n+1|0;p=a[m+o>>0]|0;if(n>>>0<60&p<<24>>24==61)n=o;else break}if(p<<24>>24==91?(p=n+2|0,Vv(e|0,m|0,p|0)|0,a[e>>0]=93,a[e+o>>0]=93,a[e+p>>0]=0,p=bv(g+4+n|0,e)|0,p|0):0){l=p+2+n|0;Ia=d;return l|0}}n=g;b:while(1){switch(a[n>>0]|0){case 0:case 10:{l=n;break b;break}default:{}}n=n+1|0}Ia=d;return l|0}else{q=b;r=45;i=19}}else if((i|0)==18){q=a[g+1>>0]|0;r=126;i=19}do if((i|0)==19){if((q+-48&255)>9){if(q<<24>>24!=46){j=r;k=0;break}if(((a[g+2>>0]|0)+-48&255)>9){j=r;k=0;break}}b=c[554370]|0;j=r;k=((b|0)==-982|((b|0)==-980|((b+987|0)>>>0<2|((b|0)==-990|((b|0)==-972|((b|1|0)==-973|((b|0)==-965|((b|0)==61|((b|0)==-966|((b|1|0)==-967|((b|1|0)==-969|((b|2|0)==62|((b|0)==-954|((b|1|0)==-955|((b|1|0)==-957|((b|0)==-953|((b|0)==124|((b|0)==38|((b|0)==92|((b|0)==37|((b|0)==94|((b|0)==45|((b|4|0)==47|((b|0)==42|((b|0)==126|((b|0)==63|((b|4|0)==44|(b|32|0)==123)))))))))))))))))))))))))))&1}while(0);if(a[1232+(j&255)>>0]|0){c[554369]=0;r=c[8726]|0;q=h<<24>>24;if(!(a[1488+(q&255)>>0]|0)){s=r;t=0;u=g}else{b=h;n=q;q=r;r=0;p=g;while(1){o=(B(n,q)|0)&8191^7266;m=r+1|0;a[1208176+r>>0]=b;v=p+1|0;b=a[v>>0]|0;n=b<<24>>24;if(!(a[1488+(n&255)>>0]|0)){s=o;t=m;u=v;break}else{q=o;r=m;p=v}}}a[1208176+t>>0]=0;switch(f|0){case 46:case 58:break;default:{f=c[1273712+(s*20|0)+16>>2]|0;if(f|0?(au(1273712+(s*20|0)|0,1208176)|0)==0:0){c[554369]=f;l=u;Ia=d;return l|0}}}c[554369]=-998;l=u;Ia=d;return l|0}if((j+-48&255)>9)if(j<<24>>24==46)w=((a[g+1>>0]|0)+-48&255)<10&1;else w=0;else w=1;if(w|k|0){switch(j<<24>>24){case 126:case 45:{a[1208176]=j;k=g+1|0;x=a[k>>0]|0;y=k;break}default:{x=h;y=g}}c[554369]=0;c:do if(x<<24>>24!=48)if(x<<24>>24==46|(x+-48&255)<10)i=48;else{z=0;A=y}else{k=a[y+1>>0]|0;switch((k|32)<<24>>24){case 120:break;case 98:{a[1208176]=48;a[1208177]=k;w=0;u=y+2|0;while(1){f=a[u>>0]|0;switch(f<<24>>24){case 46:case 48:case 49:break;default:{z=w;A=u;break c}}a[1208176+w>>0]=f;w=w+1|0;u=u+1|0}break}default:{i=48;break c}}a[1208176]=48;a[1208177]=k;u=0;w=y+2|0;while(1){f=a[w>>0]|0;if(!((f+-48&255)<10|(f+-97&255)<6))switch(f<<24>>24){case 46:case 65:case 66:case 67:case 68:case 69:case 70:break;default:{z=u;A=w;break c}}a[1208176+u>>0]=f;u=u+1|0;w=w+1|0}}while(0);if((i|0)==48){w=x;x=0;u=y;while(1){y=x+1|0;a[1208176+x>>0]=w;k=u+1|0;w=a[k>>0]|0;if(!(w<<24>>24==46|(w+-48&255)<10)){z=y;A=k;break}else{x=y;u=k}}}a[1208176+z>>0]=0;c[554369]=-997;l=A;Ia=d;return l|0}d:do switch(j<<24>>24){case 91:{A=g+1|0;z=a[A>>0]|0;switch(z<<24>>24){case 61:case 91:break;default:{C=z;D=A;E=0;i=95;break d}}c[554369]=-996;a[1208176]=0;if((a[g>>0]|0)==91){A=0;while(1){F=A+1|0;G=a[g+F>>0]|0;if(A>>>0<60&G<<24>>24==61)A=F;else break}if(G<<24>>24==91?(z=A+2|0,Vv(e|0,g|0,z|0)|0,a[e>>0]=93,a[e+F>>0]=93,a[e+z>>0]=0,z=bv(g+2+A|0,e)|0,z|0):0){l=z+2+A|0;Ia=d;return l|0}}l=g+(bu(g)|0)|0;Ia=d;return l|0}case 34:{a[1208176]=34;z=1;u=g;e:while(1){x=u+1|0;w=a[x>>0]|0;switch(w<<24>>24){case 34:{i=65;break e;break}case 10:case 0:{H=z;I=x;break e;break}case 92:{k=u+2|0;a[1208176+z>>0]=92;J=a[k>>0]|0;K=z+1|0;L=k;break}default:{J=w;K=z;L=x}}a[1208176+K>>0]=J;z=K+1|0;u=L}if((i|0)==65){a[1208176+z>>0]=34;H=z+1|0;I=u+2|0}a[1208176+H>>0]=0;c[554369]=-996;l=I;Ia=d;return l|0}case 39:{a[1208176]=39;A=1;x=g;f:while(1){w=x+1|0;k=a[w>>0]|0;switch(k<<24>>24){case 39:{i=71;break f;break}case 10:case 0:{M=A;N=w;break f;break}case 92:{y=x+2|0;a[1208176+A>>0]=92;O=a[y>>0]|0;P=A+1|0;Q=y;break}default:{O=k;P=A;Q=w}}a[1208176+P>>0]=O;A=P+1|0;x=Q}if((i|0)==71){a[1208176+A>>0]=39;M=A+1|0;N=x+2|0}a[1208176+M>>0]=0;c[554369]=-996;l=N;Ia=d;return l|0}case 10:{c[554371]=(c[554371]|0)+1;c[554369]=-999;l=g+1|0;Ia=d;return l|0}case 58:{u=g+1|0;z=a[u>>0]|0;if(z<<24>>24==58){c[554369]=-960;l=g+2|0;Ia=d;return l|0}else{R=z;S=u;T=0;i=79}break}case 46:{u=g+1|0;z=a[u>>0]|0;if(z<<24>>24==46)if((a[g+2>>0]|0)==46){c[554369]=-961;l=g+3|0;Ia=d;return l|0}else{C=46;D=u;E=1;i=95}else{R=z;S=u;T=1;i=79}break}default:{u=g+1|0;R=a[u>>0]|0;S=u;T=0;i=79}}while(0);g:do if((i|0)==79)if(R<<24>>24==61)do switch(j<<24>>24){case 60:{c[554369]=-970;l=g+2|0;Ia=d;return l|0}case 62:{c[554369]=-969;l=g+2|0;Ia=d;return l|0}case 126:{c[554369]=-967;l=g+2|0;Ia=d;return l|0}case 33:{c[554369]=-967;l=g+2|0;Ia=d;return l|0}case 61:{c[554369]=-966;l=g+2|0;Ia=d;return l|0}case 43:{c[554369]=-965;l=g+2|0;Ia=d;return l|0}case 45:{c[554369]=-965;l=g+2|0;Ia=d;return l|0}case 42:{c[554369]=-965;l=g+2|0;Ia=d;return l|0}case 47:{c[554369]=-965;l=g+2|0;Ia=d;return l|0}case 92:{c[554369]=-965;l=g+2|0;Ia=d;return l|0}case 37:{c[554369]=-965;l=g+2|0;Ia=d;return l|0}case 38:{c[554369]=-965;l=g+2|0;Ia=d;return l|0}case 124:{c[554369]=-965;l=g+2|0;Ia=d;return l|0}case 94:{c[554369]=-965;l=g+2|0;Ia=d;return l|0}default:{U=S;break g}}while(0);else{C=R;D=S;E=T;i=95}while(0);h:do if((i|0)==95){T=C<<24>>24==0;i:do if(!(j<<24>>24==0|T)?(a[g+2>>0]|0)==61:0){if(E&C<<24>>24==46){c[554369]=-965;l=g+3|0;Ia=d;return l|0}switch(j<<24>>24){case 60:{if(C<<24>>24!=60){U=D;break h}c[554369]=-965;l=g+3|0;Ia=d;return l|0}case 62:{if(C<<24>>24!=62){U=D;break h}c[554369]=-965;l=g+3|0;Ia=d;return l|0}case 94:{if(C<<24>>24!=94){U=D;break h}c[554369]=-965;l=g+3|0;Ia=d;return l|0}default:break i}}else i=106;while(0);if((i|0)==106){j:do switch(j<<24>>24){case 60:case 62:{if((!T?(S=a[g+2>>0]|0,S<<24>>24):0)?(a[g+3>>0]|0)==61:0){R=j<<24>>24==62&C<<24>>24==62;if(R&S<<24>>24==60){c[554369]=-965;l=g+4|0;Ia=d;return l|0}x=S<<24>>24==62;if(j<<24>>24==60&C<<24>>24==60&x){c[554369]=-965;l=g+4|0;Ia=d;return l|0}if(!(R&x)){U=D;break h}c[554369]=-965;l=g+4|0;Ia=d;return l|0}switch(j<<24>>24){case 62:break;case 60:{if(C<<24>>24!=60)break j;x=g+2|0;if((a[x>>0]|0)==62){c[554369]=-955;l=g+3|0;Ia=d;return l|0}else{c[554369]=-958;l=x;Ia=d;return l|0}break}default:break j}if(C<<24>>24==62){x=g+2|0;switch(a[x>>0]|0){case 62:{if((a[g+3>>0]|0)==61){c[554369]=-965;l=g+4|0;Ia=d;return l|0}else{c[554369]=-956;l=g+3|0;Ia=d;return l|0}break}case 60:{c[554369]=-954;l=g+3|0;Ia=d;return l|0}default:{c[554369]=-957;l=x;Ia=d;return l|0}}}break}case 94:{if(C<<24>>24==94){c[554369]=-953;l=g+2|0;Ia=d;return l|0}break}default:{}}while(0);if(E&C<<24>>24==46){c[554369]=-964;l=g+2|0;Ia=d;return l|0}}if(j<<24>>24==47&C<<24>>24==47){c[554369]=-995;T=h;x=g;k:while(1){switch(T<<24>>24){case 0:case 10:{l=x;break k;break}default:{}}R=x+1|0;T=a[R>>0]|0;x=R}Ia=d;return l|0}else U=D}while(0);if(ut(g,94207,9)|0){c[554369]=j<<24>>24;l=U;Ia=d;return l|0}c[554369]=-962;U=h;h=g;l:while(1){switch(U<<24>>24){case 0:case 10:{l=h;break l;break}default:{}}g=h+1|0;U=a[g>>0]|0;h=g}Ia=d;return l|0}function ph(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;if((bu(b)|0)>>>0>15){Ia=e;return}h=c[8726]|0;i=a[b>>0]|0;if(!(i<<24>>24))j=h;else{k=i;i=h;h=b;while(1){l=(B(i,k<<24>>24)|0)&8191^7266;h=h+1|0;k=a[h>>0]|0;if(!(k<<24>>24)){j=l;break}else i=l}}i=1273712+(j*20|0)+16|0;k=1273712+(j*20|0)|0;if((c[i>>2]|0)==0?(a[k>>0]|0)==0:0){c[i>>2]=d;Rs(k,b)|0;Ia=e;return}c[g>>2]=k;c[g+4>>2]=b;vv(58761,g)|0;c[f>>2]=k;c[f+4>>2]=b;wt(1715360,58761,f)|0;Cn(1715360);ya(0)}function qh(a){a=a|0;if(c[554368]|0)return;c[554368]=1;c[8726]=a;Wv(1273712,0,163840)|0;ph(63802,-993);ph(63997,-992);ph(64883,-991);ph(64580,-990);ph(64583,-989);ph(64595,-988);ph(64588,-987);ph(64043,-986);ph(65855,-974);ph(65848,-973);ph(65852,-972);ph(64175,-985);ph(92620,-983);ph(63811,-982);ph(64364,-981);ph(64371,-980);ph(58792,-979);ph(58797,-978);ph(65112,-963);ph(65117,-963);ph(65123,-963);ph(64887,-984);ph(85841,-977);ph(85704,-977);ph(87864,-977);ph(85986,-977);ph(58803,-977);if((c[554367]|0)<=0)return;a=0;do{ph(1191792+(a<<6)|0,-977);a=a+1|0}while((a|0)<(c[554367]|0));return}function rh(b){b=b|0;var c=0;c=oh(b)|0;if(!c)return 0;else return ((c|0)==(b|0)&(a[c>>0]|0)!=0?c+1|0:c)|0;return 0}function sh(b){b=b|0;var d=0,e=0;qh(c[8726]|0);c[554369]=0;c[554370]=0;c[554372]=b;d=oh(b)|0;if(!d){e=0;return e|0}e=(d|0)==(b|0)&(a[d>>0]|0)!=0?d+1|0:d;return e|0}function th(){return c[554369]|0}function uh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=0;e=-1;while(1){if((e|0)==-1){qh(c[8726]|0);c[554369]=0;c[554370]=0;c[554372]=b;f=oh(b)|0;if(!f){g=0;h=0}else{g=(f|0)==(b|0)&(a[f>>0]|0)!=0?f+1|0:f;h=0}}else{if(!(a[d>>0]|0))break;f=oh(d)|0;if(!f){g=0;h=e}else{g=(f|0)==(d|0)&(a[f>>0]|0)!=0?f+1|0:f;h=e}}switch(c[554369]|0){case -960:case -962:case 58:case 44:case 46:case -992:case 93:case 125:case 41:case 59:case -1e3:case -983:case -995:case -999:{i=h;break}default:i=h+1|0}d=g;e=i}return e|0}function vh(){var a=0,b=0,d=0,e=0,f=0;a=gn(c[(c[26544]|0)+4>>2]|0,0)|0;b=c[26544]|0;d=c[b+45868>>2]|0;if(!(c[(c[d>>2]|0)+16>>2]|0))e=-4;else{f=c[b+4>>2]|0;e=(B(c[f>>2]<<1,c[f+4>>2]|0)|0)+260|0}Ps(a,d,e)|0;Gp(c[(c[26544]|0)+4>>2]|0,c[(c[766828]|0)+20>>2]|0,0,0,0,0,128,128);c[484610]=1;return}function wh(a){a=a|0;return}function xh(){return}function yh(){return}function zh(){return}function Ah(a){a=a|0;return}function Bh(){return}function Ch(){return}function Dh(){return}function Eh(){var b=0;b=c[778921]|0;return (((b|0)==15?1:(a[c[c[778918]>>2]>>0]|0)!=0)?16:((b|0)==14?1:(a[c[c[778917]>>2]>>0]|0)!=0)?15:((b|0)==13?1:(a[c[c[778916]>>2]>>0]|0)!=0)?14:((b|0)==12?1:(a[c[c[778915]>>2]>>0]|0)!=0)?13:((b|0)==11?1:(a[c[c[778914]>>2]>>0]|0)!=0)?12:((b|0)==10?1:(a[c[c[778913]>>2]>>0]|0)!=0)?11:((b|0)==9?1:(a[c[c[778912]>>2]>>0]|0)!=0)?10:((b|0)==8?1:(a[c[c[778911]>>2]>>0]|0)!=0)?9:((b|0)==7?1:(a[c[c[778910]>>2]>>0]|0)!=0)?8:((b|0)==6?1:(a[c[c[778909]>>2]>>0]|0)!=0)?7:((b|0)==5?1:(a[c[c[778908]>>2]>>0]|0)!=0)?6:((b|0)==4?1:(a[c[c[778907]>>2]>>0]|0)!=0)?5:((b|0)==3?1:(a[c[c[778906]>>2]>>0]|0)!=0)?4:((b|0)==2?1:(a[c[c[778905]>>2]>>0]|0)!=0)?3:((b|0)==1?1:(a[c[c[778904]>>2]>>0]|0)!=0)?2:((b|0)==0?1:(a[c[c[778903]>>2]>>0]|0)!=0)&1)|0}function Fh(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=b+4|0;f=b+12|0;b=32;do{g=b<<1;h=0;do{i=c[(c[(c[e>>2]|0)+16>>2]|0)+((h>>>6)+g<<2)>>2]|0;j=h<<1&126;a[(c[(c[(c[f>>2]|0)+16>>2]|0)+(b<<2)>>2]|0)+h>>0]=((d[i+(j|1)>>0]|0)<<4)+(d[i+j>>0]|0);h=h+1|0}while((h|0)!=128);b=b+1|0}while((b|0)!=64);return}function Gh(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=b+12|0;f=b+4|0;b=32;do{g=b<<1;h=0;do{i=(h>>>6)+g|0;j=h<<1&126;a[(c[(c[(c[f>>2]|0)+16>>2]|0)+(i<<2)>>2]|0)+j>>0]=a[(c[(c[(c[e>>2]|0)+16>>2]|0)+(b<<2)>>2]|0)+h>>0]&15;a[(c[(c[(c[f>>2]|0)+16>>2]|0)+(i<<2)>>2]|0)+(j|1)>>0]=(d[(c[(c[(c[e>>2]|0)+16>>2]|0)+(b<<2)>>2]|0)+h>>0]|0)>>>4;h=h+1|0}while((h|0)!=128);b=b+1|0}while((b|0)!=64);return}function Hh(){var b=0,d=0,e=0,f=0,g=0,h=0;b=a[3152406]|0;d=(b&255)<<8;e=a[3152407]|0;f=e<<24>>24==0?256:e&255;if(b<<24>>24>-1){e=(b&-16)<<24>>24==16?d+8192|0:d;b=(e+-8192|0)>>>0>7936?8192:e;g=b;h=(16384-b|0)/(f|0)|0}else{g=d;h=((65536-d|0)>>>0)/(f>>>0)|0}c[554373]=f;c[554374]=h;c[554375]=g;Mk(0,c[798384]|0)|0;Mk(1,c[798385]|0)|0;Mk(2,c[798386]|0)|0;Mk(3,c[798387]|0)|0;Nk(c[798931]|0);return}function Ih(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;if((b|0)>=0?(f=c[554373]|0,(e|0)>-1&(f|0)>(b|0)&(c[554374]|0)>(e|0)):0){g=c[554375]|0;if(!(g&32768))h=(c[(c[(c[781999]|0)+12>>2]|0)+12>>2]|0)+(g+-8192)|0;else h=3128e3+g|0;i=d[h+((B(f,e)|0)+b)>>0]|0;return i|0}if(!(a[3152374]&16)){i=0;return i|0}i=$k(2971096,c[781999]|0,24410)|0;return i|0}function Jh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((b|0)<0)return;f=c[554373]|0;if(!((d|0)>-1&(f|0)>(b|0)&(c[554374]|0)>(d|0)))return;g=c[554375]|0;if(g&32768|0){a[3128e3+g+((B(f,d)|0)+b)>>0]=e;return}h=(B(f,d)|0)+b|0;a[(c[(c[(c[781999]|0)+12>>2]|0)+12>>2]|0)+(g+-8192)+h>>0]=e;if((h|0)<=4095)return;_k(2971096,c[781999]|0,h,e);return}function Kh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;f=Ia;Ia=Ia+1808|0;g=f+1800|0;h=f+1792|0;i=f+768|0;j=f;k=f+1804|0;c[k>>2]=0;if(!(c[554377]|0)){c[554377]=1;Wv(1437552,0,3600)|0}if(!(c[554376]|0)){l=9;Ia=f;return l|0}ku(i,hc(58810,e)|0)|0;e=Rl(i,0,k)|0;if(!e){c[h>>2]=c[k>>2];c[h+4>>2]=i;wt(1715360,58814,h)|0;Cn(1715360);l=1;Ia=f;return l|0}c[g>>2]=i;wt(1715360,58848,g)|0;Cn(1715360);g=(b|0)>0?b:c[484698]|0;b=(g|0)<8?g:8;g=(b|0)>1?b:1;b=((g|0)<3?g:3)<<7;g=Sn(b,b,8)|0;if((c[554376]|0)>0){b=18;h=0;while(1){k=1437552+(h<<2)|0;m=c[k>>2]|0;if(!m){n=Sn(128,128,8)|0;c[k>>2]=n;o=n}else o=m;m=c[o+12>>2]|0;p=b;n=0;do{p=(d[m+n>>0]|0)>15?256:p;n=n+1|0}while((n|0)!=16384);h=h+1|0;if((h|0)>=(c[554376]|0))break;else b=p}if((p|0)>0){q=p;r=14}else s=p}else{q=18;r=14}if((r|0)==14){r=c[742761]|0;p=0;do{a[j+(p*3|0)>>0]=a[r+(p*3|0)>>0]|0;a[j+(p*3|0)+1>>0]=a[r+(p*3|0)+1>>0]|0;a[j+(p*3|0)+2>>0]=a[r+(p*3|0)+2>>0]|0;p=p+1|0}while((p|0)!=(q|0));s=q}q=Ql(1<<(Zl(s)|0),j)|0;j=c[g>>2]|0;c[e>>2]=j;p=g+4|0;r=c[p>>2]|0;c[e+4>>2]=r;c[e+8>>2]=s;c[e+12>>2]=0;c[e+20>>2]=q;a:do if((c[554376]|0)>0){b=g+16|0;h=j;o=r;n=0;while(1){m=1437552+(n<<2)|0;_n(c[m>>2]|0,g,0,0,h,o,0);k=_l(e,0)|0;c[k>>2]=0;c[k+4>>2]=0;t=c[g>>2]|0;c[k+8>>2]=t;u=c[p>>2]|0;c[k+12>>2]=u;a[k+16>>0]=0;v=(n|0)!=0;c[k+20>>2]=v?0:q;w=Ol(B(u,t)|0)|0;t=k+24|0;c[t>>2]=w;Wv(w|0,0,B(c[p>>2]|0,c[g>>2]|0)|0)|0;w=c[p>>2]|0;if((w|0)>0){u=c[g>>2]|0;x=w;y=0;while(1){if((u|0)>0){z=u;A=0;do{a[(c[t>>2]|0)+((B(z,y)|0)+A)>>0]=(d[(c[(c[b>>2]|0)+(y<<2)>>2]|0)+A>>0]|0)%(s|0)|0;A=A+1|0;z=c[g>>2]|0}while((A|0)<(z|0));C=c[p>>2]|0;D=z}else{C=x;D=u}y=y+1|0;if((y|0)>=(C|0)){E=C;break}else{u=D;x=C}}}else E=w;if(v&(E|0)>0){x=1437552+(n+-1<<2)|0;u=c[g>>2]|0;y=0;while(1){if((u|0)>0){A=u;F=0;while(1){G=c[484698]|0;H=(y|0)/(G|0)|0;I=(F|0)/(G|0)|0;if((a[(c[(c[(c[x>>2]|0)+16>>2]|0)+(H<<2)>>2]|0)+I>>0]|0)==(a[(c[(c[(c[m>>2]|0)+16>>2]|0)+(H<<2)>>2]|0)+I>>0]|0)){I=(B(A,y)|0)+F|0;a[(c[t>>2]|0)+I>>0]=17;J=c[g>>2]|0}else J=A;F=F+1|0;if((F|0)>=(J|0)){K=J;break}else A=J}}else K=u;y=y+1|0;if((y|0)>=(c[p>>2]|0))break;else u=K}}u=(n|0)==0;y=u?3:1;t=k+28|0;c[t>>2]=y;m=Ol(y*12|0)|0;y=k+32|0;c[y>>2]=m;Wv(m|0,0,(c[t>>2]|0)*12|0)|0;if(u){u=c[y>>2]|0;c[u+8>>2]=255;c[u>>2]=11;t=Ol(12)|0;c[u+4>>2]=t;Rs(t,58867)|0;t=c[y>>2]|0;c[t+20>>2]=0;c[t+12>>2]=3;u=Ol(3)|0;m=t+16|0;c[m>>2]=u;a[u>>0]=1;a[(c[m>>2]|0)+1>>0]=0;a[(c[m>>2]|0)+2>>0]=0;L=2}else L=0;m=c[y>>2]|0;c[m+(L*12|0)+8>>2]=249;c[m+(L*12|0)>>2]=4;y=Ol(4)|0;u=m+(L*12|0)+4|0;c[u>>2]=y;a[y>>0]=1;a[(c[u>>2]|0)+1>>0]=3;a[(c[u>>2]|0)+2>>0]=0;a[(c[u>>2]|0)+3>>0]=17;u=n+1|0;if((u|0)>=(c[554376]|0))break a;h=c[g>>2]|0;o=c[p>>2]|0;n=u}}while(0);p=Yl(e)|0;Tn(g)|0;Nb(i,58810,128,128);Pl();i=(p|0)==0;if(i)Cn(58879);l=i&1;Ia=f;return l|0}function Lh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=Ia;Ia=Ia+16|0;d=b;if(!(c[554377]|0)){c[554377]=1;Wv(1437552,0,3600)|0}if(!(c[484714]|c[484701])){Ia=b;return}cs(b+8|0,b+4|0,d);Xr()|0;d=c[484714]|0;e=c[484701]|0;if((e|0)>0|(d|0)!=0){f=e;e=d;d=0;while(1){g=1437552+(d<<2)|0;if(!(c[g>>2]|0)){c[g>>2]=Sn(128,128,8)|0;h=c[484714]|0;i=c[484701]|0}else{h=e;i=f}d=d+1|0;g=(h|0)==0?i*30|0:900;j=(g|0)<900?g:900;if(d>>>0>=((j|0)>0?j:0)>>>0)break;else{f=i;e=h}}}Gp(a,c[1437552+(c[554376]<<2)>>2]|0,0,0,0,0,128,128);a=Xr()|0;if((a|0)<(c[535872]|0))rb(c[1437552+(c[554376]<<2)>>2]|0);a=c[554376]|0;h=(c[484714]|0)==0?(c[484701]|0)*30|0:900;e=(h|0)<900;if((a|0)<(((h|0)<0?-1:e?h+-1|0:899)|0)){c[554376]=a+1;Ia=b;return}a=c[359388]|0;i=e?h:900;h=(i|0)<0?-1:i+-1|0;if((h|0)>0){e=0;do{f=e;e=e+1|0;c[1437552+(f<<2)>>2]=c[1437552+(((e|0)%(i|0)|0)<<2)>>2]}while((e|0)<(h|0));k=h}else k=0;c[1437552+(k<<2)>>2]=a;Ia=b;return}function Mh(){c[554376]=0;c[484703]=0;return}function Nh(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e;g=Fu(a,96074)|0;if(!g){h=1;Ia=e;return h|0}a=xq(1048576)|0;i=tv(a,1,1048576,g)|0;Lu(g)|0;g=Fu(b,96789)|0;if(!g){h=2;Ia=e;return h|0}hv(58904,6,1,g)|0;if((i|0)>0){b=0;do{c[f>>2]=d[a+b>>0];_u(g,104626,f)|0;b=b+1|0}while((b|0)!=(i|0))}hv(58911,7,1,g)|0;Lu(g)|0;h=0;Ia=e;return h|0}function Oh(a){a=a|0;Tn(c[(c[26544]|0)+45856>>2]|0)|0;a=Sn(128,128,8)|0;c[(c[26544]|0)+45856>>2]=a;Gp(c[742795]|0,a,0,0,0,0,128,128);return 0}function Ph(){return}function Qh(){return ((c[554376]|0)+15|0)/30|0|0}function Rh(b){b=b|0;c[b>>2]=0;a[b+4>>0]=0;c[b+8>>2]=0;return}function Sh(b){b=b|0;var d=0;if(b<<24>>24>63){d=61;return d|0}d=a[((c[537424]|0)==0?58919:58984)+(b<<24>>24)>>0]|0;return d|0}function Th(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;g=b+d|0;d=f+4|0;h=a[d>>0]|0;switch(c[f>>2]|0){case 0:{i=e;j=b;k=h;l=2;break}case 1:{m=e;n=b;o=h;l=6;break}case 2:{p=e;q=b;r=h;l=10;break}default:{s=0;return s|0}}while(1)if((l|0)==2){l=0;if((j|0)==(g|0)){t=0;u=i;v=k;break}h=a[j>>0]|0;b=h>>>2&63;if((b&255)<<24>>24>63)w=61;else w=a[((c[537424]|0)==0?58919:58984)+b>>0]|0;a[i>>0]=w;m=i+1|0;n=j+1|0;o=h<<4&48;l=6;continue}else if((l|0)==6){l=0;if((n|0)==(g|0)){t=1;u=m;v=o;break}h=a[n>>0]|0;b=h>>>4&15|o&255;if((b&255)<<24>>24>63)x=61;else x=a[((c[537424]|0)==0?58919:58984)+(b<<24>>24)>>0]|0;a[m>>0]=x;p=m+1|0;q=n+1|0;r=h<<2&60;l=10;continue}else if((l|0)==10){l=0;if((q|0)==(g|0)){t=2;u=p;v=r;break}h=a[q>>0]|0;b=h>>>6&3|r&255;if((b&255)<<24>>24>63)y=61;else y=a[((c[537424]|0)==0?58919:58984)+(b<<24>>24)>>0]|0;a[p>>0]=y;b=h&63;h=b&255;if(h<<24>>24>63)z=61;else z=a[((c[537424]|0)==0?58919:58984)+b>>0]|0;a[p+1>>0]=z;b=f+8|0;A=(c[b>>2]|0)+1|0;c[b>>2]=(A|0)==18?0:A;i=p+2|0;j=q+1|0;k=h;l=2;continue}a[d>>0]=v;c[f>>2]=t;s=u-e|0;return s|0}function Uh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;switch(c[d>>2]|0){case 1:{e=a[d+4>>0]|0;if(e<<24>>24>63)f=61;else f=a[((c[537424]|0)==0?58919:58984)+(e<<24>>24)>>0]|0;a[b>>0]=f;a[b+1>>0]=61;g=3;h=b+2|0;break}case 2:{f=a[d+4>>0]|0;if(f<<24>>24>63)i=61;else i=a[((c[537424]|0)==0?58919:58984)+(f<<24>>24)>>0]|0;a[b>>0]=i;g=2;h=b+1|0;break}default:{j=b;k=j;l=b;m=k-l|0;return m|0}}a[h>>0]=61;j=b+g|0;k=j;l=b;m=k-l|0;return m|0}function Vh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[537424]|0;if((c[8727]|0)!=(d|0)){Wv(1441152,-1,1024)|0;e=(d|0)==0?58919:58984;f=0;do{if((f&255)<<24>>24>63)g=61;else g=a[e+(f<<24>>24)>>0]|0;c[1441152+(g<<24>>24<<2)>>2]=f;f=f+1|0}while((f|0)!=64);c[8727]=d}if(b<<24>>24<0){h=-1;return h|0}h=c[1441152+(b<<24>>24<<2)>>2]|0;return h|0}function Wh(b){b=b|0;c[b>>2]=0;a[b+4>>0]=0;return}function Xh(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;h=g+4|0;a[f>>0]=a[h>>0]|0;switch(c[g>>2]|0){case 0:{i=b+e|0;j=b;k=f;l=6;break}case 1:{m=b+e|0;n=b;o=f;l=18;break}case 2:{p=b+e|0;q=b;r=f;l=30;break}case 3:{s=b+e|0;t=b;u=f;l=42;break}default:{v=0;return v|0}}a:while(1)if((l|0)==6){l=0;b=j;do{if((b|0)==(i|0)){w=0;x=k;break a}e=b;b=b+1|0;y=a[e>>0]|0;e=c[537424]|0;if((c[8727]|0)!=(e|0)){Wv(1441152,-1,1024)|0;z=(e|0)==0?58919:58984;A=0;do{if((A&255)<<24>>24>63)B=61;else B=a[z+(A<<24>>24)>>0]|0;c[1441152+(B<<24>>24<<2)>>2]=A;A=A+1|0}while((A|0)!=64);c[8727]=e}if(y<<24>>24<0)C=-1;else C=c[1441152+(y<<24>>24<<2)>>2]|0}while((C&128|0)!=0);a[k>>0]=C<<2;m=i;n=b;o=k;l=18;continue}else if((l|0)==18){l=0;A=n;do{if((A|0)==(m|0)){w=1;x=o;break a}z=A;A=A+1|0;D=a[z>>0]|0;z=c[537424]|0;if((c[8727]|0)!=(z|0)){Wv(1441152,-1,1024)|0;E=(z|0)==0?58919:58984;F=0;do{if((F&255)<<24>>24>63)G=61;else G=a[E+(F<<24>>24)>>0]|0;c[1441152+(G<<24>>24<<2)>>2]=F;F=F+1|0}while((F|0)!=64);c[8727]=z}if(D<<24>>24<0)H=-1;else H=c[1441152+(D<<24>>24<<2)>>2]|0}while((H&128|0)!=0);b=o+1|0;a[o>>0]=H>>>4&3|(d[o>>0]|0);a[b>>0]=H<<4;p=m;q=A;r=b;l=30;continue}else if((l|0)==30){l=0;b=q;do{if((b|0)==(p|0)){w=2;x=r;break a}F=b;b=b+1|0;E=a[F>>0]|0;F=c[537424]|0;if((c[8727]|0)!=(F|0)){Wv(1441152,-1,1024)|0;y=(F|0)==0?58919:58984;e=0;do{if((e&255)<<24>>24>63)I=61;else I=a[y+(e<<24>>24)>>0]|0;c[1441152+(I<<24>>24<<2)>>2]=e;e=e+1|0}while((e|0)!=64);c[8727]=F}if(E<<24>>24<0)J=-1;else J=c[1441152+(E<<24>>24<<2)>>2]|0}while((J&128|0)!=0);A=r+1|0;a[r>>0]=J>>>2&15|(d[r>>0]|0);a[A>>0]=J<<6;s=p;t=b;u=A;l=42;continue}else if((l|0)==42){l=0;A=t;do{if((A|0)==(s|0)){w=3;x=u;break a}e=A;A=A+1|0;y=a[e>>0]|0;e=c[537424]|0;if((c[8727]|0)!=(e|0)){Wv(1441152,-1,1024)|0;D=(e|0)==0?58919:58984;z=0;do{if((z&255)<<24>>24>63)K=61;else K=a[D+(z<<24>>24)>>0]|0;c[1441152+(K<<24>>24<<2)>>2]=z;z=z+1|0}while((z|0)!=64);c[8727]=e}if(y<<24>>24<0)L=-1;else L=c[1441152+(y<<24>>24<<2)>>2]|0}while((L&128|0)!=0);a[u>>0]=L&63|(d[u>>0]|0);i=s;j=A;k=u+1|0;l=6;continue}c[g>>2]=w;a[h>>0]=a[x>>0]|0;v=x-f|0;return v|0}function Yh(){return}function Zh(){return}function _h(){return 0}function $h(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=Ia;Ia=Ia+16|0;e=d;f=d+4|0;g=c[781022]&15;c[f>>2]=0;h=yd(b)|0;if(!h){i=0;Ia=d;return i|0}j=Cd(b,1)|0;do if((j+-3|0)>>>0>=2)if((j|0)==1){k=(Id(b,1)|0)==0;l=k?65117:65112;c[f>>2]=bu(l)|0;m=l;break}else{c[e>>2]=Dd(b,j)|0;wt(1719968,59094,e)|0;c[f>>2]=bu(1719968)|0;m=1719968;break}else m=Jd(b,1,f)|0;while(0);if((h|0)==2){e=c[781022]&255;if((yd(b)|0)>=2){j=Fd(b,2,0)|0;l=j>>>16&255;c[781022]=l;if(j&268435456){k=c[781043]|0;if(k&1|0?(n=j>>>8,o=n&65536|j&65535|n&131072,c[781038]=o,j&67108864|0):0)c[781038]=o|262144;if(k&2){c[781044]=j&134217728;p=0;q=l}else{p=0;q=l}}else{p=0;q=l}}else{p=0;q=e}}else if((h|0)>2){e=(Fd(b,2,0)|0)>>16;l=(Fd(b,3,0)|0)>>16;c[781023]=e;c[781025]=e;c[781024]=l;if((h|0)!=3){l=c[781022]&255;if((yd(b)|0)>=4){e=Fd(b,4,0)|0;j=e>>>16&255;c[781022]=j;if(e&268435456){k=c[781043]|0;if(k&1|0?(o=e>>>8,n=o&65536|e&65535|o&131072,c[781038]=n,e&67108864|0):0)c[781038]=n|262144;if(k&2){c[781044]=e&134217728;p=1;q=j}else{p=1;q=j}}else{p=1;q=j}}else{p=1;q=l}}else{p=1;q=g}}else{p=0;q=g}g=(h|0)<3?32:0;h=g|16;l=(a[3152374]|0)<0?h:p|(c[780901]|0)!=0?g:h;c[554378]=c[781023];c[554379]=c[781024];if(!(Xk(c[742782]|0,m,c[f>>2]|0,l,q)|0)){Od(b,c[554378]<<16);Od(b,c[554379]<<16);i=2;Ia=d;return i|0}Yg();b=c[798454]|0;if((b|0)==30){Yg();r=c[798454]|0}else r=b;if((r|0)==15){Yg();Yg()}wb();ol();c[742797]=0;rn();Ag();c[742778]=0;if(c[485657]|0){c[780900]=2;c[781024]=0;c[781023]=0;c[781025]=0}if(c[484703]|0){ob(0);Lh(c[742795]|0)}Bg();i=0;Ia=d;return i|0}function ai(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=Ia;Ia=Ia+2048|0;h=g+1024|0;i=g;if((b|0)==0|(d|0)==0){j=1;Ia=g;return j|0}k=bu(b)|0;l=bu(3115688)|0;if((e|0)>1023|(k+4+l+(bu(3116712)|0)|0)>>>0>=e>>>0){j=1;Ia=g;return j|0}Ss(h,b,1023)|0;a[h+1023>>0]=0;if(bv(h,96845)|0){j=1;Ia=g;return j|0}b=a[h>>0]|0;a:do if(b<<24>>24){e=b;l=h;b:while(1){if(!((e+-97&255)<26|(e+-48&255)<10))switch(e<<24>>24){case 32:case 46:case 47:case 95:break;default:{j=1;break b}}l=l+1|0;e=a[l>>0]|0;if(!(e<<24>>24))break a}Ia=g;return j|0}while(0);Zo(h,0,0,i);if(59049){b=59049;e=1744;l=0;do{k=(au(i,b)|0)==0;l=k?1:l;e=e+4|0;b=c[e>>2]|0}while((b|0)!=0);if(!l)m=13}else m=13;if((m|0)==13){m=h+(bu(h)|0)|0;a[m>>0]=a[59049]|0;a[m+1>>0]=a[59050]|0;a[m+2>>0]=a[59051]|0;a[m+3>>0]=a[59052]|0;a[m+4>>0]=a[59053]|0}if(!f){sc(h,d);j=0;Ia=g;return j|0}else{fs(h,d);j=0;Ia=g;return j|0}return 0}function bi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;b=(a+-46|0)>>>0<11;d=b?a+-30|0:a;if(b){if((d&-8|0)==16?(b=d&3,a=c[1942244+(b*24|0)+8>>2]|0,(a|0)!=0):0){e=d&-4;if((e|0)==16){f=c[781999]|0;g=0;h=-65536;while(1){i=(a|0)==(f+16+(g*680|0)|0)?g<<16:h;g=g+1|0;if((g|0)==64){j=i;break}else h=i}}else j=-65536;if((e|0)==20)k=c[1942244+(b*24|0)+12>>2]<<16;else k=j}else k=-65536;if((d+-24|0)>>>0>=3){l=k;return l|0}if(!(c[485587]|0)){l=-65536;return l|0}if((d|0)!=26){l=(d|0)==25?c[485590]<<16:(d|0)==24?c[485589]<<16:-65536;return l|0}l=c[485586]<<16;return l|0}k=d&-4;if((k|0)==16){j=cr(d+-16|0)|0;b=c[781999]|0;e=0;h=-65536;do{h=(j|0)==(b+16+(e*680|0)|0)?e<<16:h;e=e+1|0}while((e|0)!=64);if((h|0)==-65536){e=cr(d+-12|0)|0;b=c[781999]|0;j=0;g=-65536;while(1){f=(e|0)==(b+16+(j*680|0)|0)?j<<16:g;j=j+1|0;if((j|0)==64){m=f;break}else g=f}}else m=h}else m=-65536;do if((k|0)==20){h=cr(d+-20|0)|0;if(!h){g=cr(d+-16|0)|0;if(!g){n=m;break}else o=g}else o=h;n=(br(o)|0)<<16}else n=m;while(0);if(!(nr()|0)){l=n;return l|0}if((d|0)!=26){l=(d|0)==25?c[554970]<<16:(d|0)==24?c[554971]<<16:n;return l|0}l=(rr()|0)<<16;return l|0}function ci(a){a=a|0;Ud(a,6,0);Zd(a,59099);Ud(a,7,0);Zd(a,59114);Ud(a,8,0);Zd(a,59124);Ud(a,9,0);Zd(a,59135);Ud(a,10,0);Zd(a,59142);Ud(a,11,0);Zd(a,59150);Ud(a,12,0);Zd(a,59159);Ud(a,13,0);Zd(a,59167);Ud(a,14,0);Zd(a,59174);Ud(a,15,0);Zd(a,59183);Ud(a,15,0);Zd(a,59196);Ud(a,16,0);Zd(a,59205);Ud(a,17,0);Zd(a,59212);Ud(a,18,0);Zd(a,59221);Ud(a,19,0);Zd(a,59232);Ud(a,20,0);Zd(a,59258);Ud(a,21,0);Zd(a,59261);Ud(a,22,0);Zd(a,86293);Ud(a,23,0);Zd(a,91162);Ud(a,24,0);Zd(a,91573);Ud(a,13,0);Zd(a,89329);Ud(a,25,0);Zd(a,89701);Ud(a,26,0);Zd(a,67469);Ud(a,27,0);Zd(a,91250);Ud(a,28,0);Zd(a,86860);Ud(a,29,0);Zd(a,91017);Ud(a,29,0);Zd(a,59267);Ud(a,30,0);Zd(a,90642);Ud(a,31,0);Zd(a,90290);Ud(a,32,0);Zd(a,90056);return}function di(a){a=a|0;var b=0;if(!(c[742779]|0))return 0;b=Fd(a,1,0)|0;if((b|0)<-1114112)return 0;c[554353]=(c[554353]|0)+(b>>16<<1);return 0}function ei(a){a=a|0;if((c[742800]|0)>0)return 0;$l()|0;c[780900]=2;c[781031]=0;c[781030]=0;$h(a)|0;Bg();return 0}function fi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=Ia;Ia=Ia+2096|0;e=d+2080|0;f=d+2072|0;g=d+2064|0;h=d+1040|0;i=d;j=d+2088|0;k=d+2084|0;c[j>>2]=0;if(!(yd(b)|0)){Ia=d;return 0}l=Cd(b,1)|0;do if((l+-3|0)>>>0>=2)if((l|0)==1){m=(Id(b,1)|0)==0;n=m?65117:65112;c[j>>2]=bu(n)|0;o=n;break}else{c[g>>2]=Dd(b,l)|0;wt(1719968,59094,g)|0;c[j>>2]=bu(1719968)|0;o=1719968;break}else o=Jd(b,1,j)|0;while(0);if((yd(b)|0)<=1){g=Hs(o,0,1)|0;qv(g)|0;Nu(c[8745]|0)|0;zq(g);Ia=d;return 0}c[k>>2]=0;g=Jd(b,2,k)|0;a:do if(!((g|0)==0|(c[k>>2]|0)>>>0>127)){if((yd(b)|0)>2)p=Id(b,3)|0;else p=0;if(!(au(g,59915)|0)){l=Hs(o,0,1)|0;os(l)|0;if((ps(l)|0)==0?(qo(-5)|0)==0:0)fb(60970,1500);n=c[485560]|0;if(n|0)zq(n);c[485560]=l;break}if((yd(b)|0)>3)q=Id(b,4)|0;else q=0;if(ai(g,h,1023,q)|0){Cb(61e3)|0;break}l=c[535197]|0;n=(bu(o)|0)+l|0;if(n>>>0>10485759){Cb(61026)|0;break}c[535197]=n;c[f>>2]=h;wt(i,61063,f)|0;do if(!(bv(2075252,i)|0)){n=0;l=0;b:while(1){switch(a[2075252+l>>0]|0){case 0:{break b;break}case 124:{r=n+1|0;break}default:r=n}n=r;l=l+1|0}if((n|0)>63){Cb(61067)|0;break a}else{lu(2075252,i)|0;break}}while(0);l=Fu(h,(p|0)==0?61089:96789)|0;if(!l){fb(61095,1500);break}m=Hs(o,0,1)|0;s=bu(o)|0;if(s>>>0<(c[j>>2]|0)>>>0)gv(m,l)|0;else{c[e>>2]=m;_u(l,61091,e)|0}Lu(l)|0;zq(m)}while(0);Ia=d;return 0}function gi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=Ia;Ia=Ia+32|0;d=b+24|0;e=b+16|0;f=b+8|0;g=b;h=Cd(a,1)|0;jh(2);if(!(yd(a)|0)){Qd(a,3196396)|0;Ia=b;return 1}switch(h|0){case 4:{zd(a,1);Ia=b;return 1}case 3:{do if((yd(a)|0)>1){if((Cd(a,2)|0)==1)i=(Id(a,2)|0)!=0&1;else i=(Fd(a,2,0)|0)>>16;if(!(i&1)){if(!(i&2))break;c[e>>2]=Fd(a,1,0)|0;wt(1719968,94793,e)|0;Qd(a,1719968)|0;Ia=b;return 1}j=Fd(a,1,0)|0;if(!(i&2)){c[f>>2]=j>>>16;c[f+4>>2]=j&65535;wt(1719968,60958,f)|0}else{c[g>>2]=j;wt(1719968,60951,g)|0}Qd(a,1719968)|0;Ia=b;return 1}while(0);Qd(a,Jd(a,1,0)|0)|0;Ia=b;return 1}case 1:{g=(Id(a,1)|0)==0;Qd(a,g?65117:65112)|0;Ia=b;return 1}default:{c[d>>2]=Dd(a,h)|0;wt(1719968,59094,d)|0;Qd(a,1719968)|0;Ia=b;return 1}}return 0}function hi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=Ia;Ia=Ia+6176|0;e=d+6160|0;f=d+6144|0;g=d+5120|0;h=d+4096|0;i=d+3072|0;j=d+2048|0;k=d+1024|0;l=d;m=d+6172|0;c[m>>2]=255;if((c[742800]|0)>0){n=0;Ia=d;return n|0}$l()|0;if((Cd(b,1)|0)!=4){n=0;Ia=d;return n|0}if((yd(b)|0)>1){o=Jd(b,2,0)|0;if(!o)p=0;else{q=(bu(o)|0)>>>0>16;p=q?0:o}}else if(!(c[780901]|0)){Dg();p=0}else p=0;if(((yd(b)|0)>2?(o=Jd(b,3,0)|0,(o|0)!=0):0)?(bu(o)|0)>>>0<=1024:0){o=Jd(b,3,0)|0;if(!o)r=0;else{q=(bu(o)|0)>>>0>1024;r=q?0:o}ku(3126573,r)|0}else a[3126573]=0;if((yd(b)|0)<=0){n=0;Ia=d;return n|0}r=Jd(b,1,m)|0;if((r|0)==0|(c[m>>2]|0)>>>0>512){n=0;Ia=d;return n|0}c[484720]=0;Ss(k,3118768,1023)|0;a[k+1023>>0]=0;Ss(g,r,1023)|0;a[g+1023>>0]=0;a:do switch(a[r>>0]|0){case 95:{if((a[r+1>>0]|0)==95)s=45;else s=30;break}case 35:{c[484717]=0;c[484720]=0;if(!(c[780901]|0))Mg(60691,0,0);m=r+1|0;o=a[m>>0]|0;b:do if(o<<24>>24){q=o;t=m;c:while(1){if(!((q+-48&255)<10|((q&-33)+-65&255)<26))switch(q<<24>>24){case 45:case 95:break;default:break c}t=t+1|0;q=a[t>>0]|0;if(!(q<<24>>24))break b}Cb(60706)|0;break a}while(0);o=Qm()|0;c[f>>2]=93381;c[f+4>>2]=o;c[f+8>>2]=m;wt(l,60723,f)|0;Om(l,wm(m)|0,0);c[780903]=30;if(p|0?(bu(p)|0)>>>0>1:0)Cg(k,p,1);Bg();Vd(b,0);n=1;Ia=d;return n|0}default:s=30}while(0);d:do if((s|0)==30){do if(!(au(r,60772)|0)){l=c[536394]|0;if(!l){s=45;break d}Zb(l,60781);c[536394]=0;Ss(3118768,3196396,1023)|0;a[3119791]=0;Mg(60792,bu(c[c[26544]>>2]|0)|0,0)}else{if(((au(r,59915)|0?au(r,59921)|0:0)?au(r,59930)|0:0)?au(r,59940)|0:0){if(bc(g)|0){s=45;break d}Zo(3118768,h,i,j);l=bu(c[c[26544]>>2]|0)|0;c[e>>2]=i;c[e+4>>2]=j;c[e+8>>2]=l;wt(1719968,60850,e)|0;if(c[780901]|0)break;Lg(1719968);break}Lg(60820);break d}while(0);if(p|0?(bu(p)|0)>>>0>1:0)Cg(k,p,0);Tg();m=c[778919]|0;l=m+336|0;c[m+324>>2]=0;c[m+320>>2]=0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;el(2971096,c[781999]|0,0,0,17152);jh(8388608);if((c[742801]|0)==0&(c[780901]|0)!=0?(c[780900]=1,au(3118768,k)|0):0)c[780903]=30;Vd(b,1);n=1;Ia=d;return n|0}while(0);if((s|0)==45?(c[780901]|0)==0:0){switch(c[779979]|0){case 1:{Lg(60873);break}case 2:{Lg(60904);break}default:Lg(60936)}c[779979]=0}Vd(b,0);n=1;Ia=d;return n|0}function ii(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;g=Jd(b,1,0)|0;if(!g)h=0;else{i=(bu(g)|0)>>>0>128;h=i?0:g}g=Jd(b,2,0)|0;if(!g)j=0;else{i=(bu(g)|0)>>>0>128;j=i?0:g}g=(Fd(b,2,0)|0)>>16;i=(Fd(b,3,0)|0)>>16;if(!h){Ia=d;return 0}if(!(au(h,60348)|0)){ob(0);Oh(c[742795]|0)|0;fb(60354,1500);Ia=d;return 0}if(!(au(h,60366)|0)){ob(0);if(gc(c[742795]|0,g,i)|0){fb(60373,1500);Ia=d;return 0}if(!i){fb(60414,1500);Ia=d;return 0}else{fb(60402,1500);Ia=d;return 0}}if(!(au(h,60435)|0)){Mh();Ia=d;return 0}if(!(au(h,60439)|0)){Mh();c[484703]=1;Ia=d;return 0}if(!(au(h,60450)|0)){c[484703]=0;ob(0);b=Kh(g,i)|0;k=c[554376]|0;c[f>>2]=b;c[f+4>>2]=k;vv(60456,f)|0;if((b|0)==9){fb(60501,1500);Ia=d;return 0}if((b|0)>0){fb(60530,1500);Ia=d;return 0}b=Qh()|0;if(!i){Ab(60572,1500,b,0);Ia=d;return 0}else{Ab(60552,1500,b,0);Ia=d;return 0}}if(!(au(h,60596)|0)){pr();Ia=d;return 0}if(!(au(h,60606)|0)){fm(g);Ia=d;return 0}if(!(au(h,60616)|0)){c[485555]=1;vb();if(g|0){Ia=d;return 0}c[485557]=0;Ia=d;return 0}if(!(au(h,60622)|0)){c[485555]=3;vb();c[485557]=0;Ia=d;return 0}if(!(au(h,86860)|0)){if(c[742800]|0){Ia=d;return 0}g=Xr()|0;if((g|0)<=((c[535608]|0)+500|0)){Ia=d;return 0}c[742800]=1;c[535608]=Xr()|0;Ia=d;return 0}if(!((au(h,60631)|0)!=0?(au(h,60642)|0)!=0:0))l=41;if((l|0)==41?Fg()|0:0){Ig();Bg();Ia=d;return 0}if(!(au(h,91017)|0)){c[780900]=2;Bg();Ia=d;return 0}l=(j|0)!=0;if(l&(au(h,60650)|0)==0){zn(j);Ia=d;return 0}if(au(h,60660)|0){c[e>>2]=h;wt(1719968,60673,e)|0;fb(1719968,2e3);Ia=d;return 0}if(l){Ss(3195728,j,63)|0;a[3195791]=0}else a[3195728]=0;j=3195728;a:while(1){switch(a[j>>0]|0){case 0:{break a;break}case 46:{a[j>>0]=0;break}default:{}}j=j+1|0}Ia=d;return 0}function ji(a){a=a|0;return dg(a)|0}function ki(a){a=a|0;var b=0;if((yd(a)|0)==1?(Cd(a,1)|0)==3:0){c[a+116>>2]=(Fd(a,1,0)|0)>>16;b=0;return b|0}Vd(a,c[a+116>>2]|0);b=1;return b|0}function li(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=Ia;Ia=Ia+3936|0;e=d+3104|0;f=d+3088|0;g=d+3080|0;h=d+3072|0;i=d+2048|0;j=d+1024|0;k=d;l=d+3112|0;if((c[742801]|0)==0&(c[780901]|0)!=0){Ia=d;return 0}_o(3115688,k);if(((yd(b)|0)>0?(m=Jd(b,1,0)|0,m|0):0)?(bu(m)|0)>>>0<=512:0){if((a[m>>0]|0)==47){c[g>>2]=k;c[g+4>>2]=m+1;wt(i,60299,g)|0}else{c[f>>2]=k;c[f+4>>2]=3116712;c[f+8>>2]=m;wt(i,60305,f)|0}_o(i,j);if((a[k>>0]|0)!=46?(bv(j,k)|0)==0:0){Jg(60313,7);Ia=d;return 0}i=Dr(j,97321,l,-1)|0;Fr(l)|0;if(i|0){Jg(60324,7);Ia=d;return 0}if((a[k>>0]|0)==46)Ss(3116712,j,1023)|0;else Ss(3116712,j+(bu(k)|0)|0,1023)|0;a[3117735]=0;if(!(au(3116712,97471)|0))a[3116712]=0;c[e>>2]=3116712;wt(1719968,60344,e)|0;Jg(1719968,12);Ia=d;return 0}c[h>>2]=3116712;wt(1719968,60284,h)|0;Jg(1719968,12);Ia=d;return 0}function mi(a){a=a|0;var b=0,d=0,e=0;b=Ia;Ia=Ia+1024|0;d=b;do if(!((c[742801]|0)==0&(c[780901]|0)!=0)){if((yd(a)|0)<1){Lg(60239);break}e=Jd(a,1,0)|0;if(e|0?(bu(e)|0)>>>0<=512:0)if(!(cp(e)|0)){Lg(60252);break}else{ku(d,rc(e)|0)|0;hs(d)|0;break}}while(0);Ia=b;return 0}function ni(b){b=b|0;var d=0,e=0,f=0;if((c[742800]|0)>0)return 0;$l()|0;if(((yd(b)|0)>0?(d=Jd(b,1,0)|0,(d|0)!=0):0)?(bu(d)|0)>>>0<=1024:0){d=Jd(b,1,0)|0;if(!d)e=0;else{b=(bu(d)|0)>>>0>1024;e=b?0:d}ku(3126573,e)|0}else f=8;if((f|0)==8?(c[780901]|0)==0:0){a[3126573]=0;a[3125548]=0}c[742800]=3;Bg();return 0}function oi(d){d=d|0;var e=0,f=0;c[798798]=17;a[2140800]=0;if(c[780901]|0)return 0;if((yd(d)|0)>0?(Cd(d,1)|0)==4:0){e=Jd(d,1,0)|0;if(!e)f=0;else{d=(bu(e)|0)>>>0>512;f=d?0:e}if(a[f>>0]|0?(a[f+((bu(f)|0)+-1)>>0]|0)==42:0)b[1070400]=42;ub(f);return 0}ub(3196396);return 0}function pi(a){a=a|0;Lg(60221);Nd(a);return 1}function qi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=Ia;Ia=Ia+4112|0;e=d+4096|0;f=d+4104|0;g=d+3072|0;h=d+2048|0;i=d+1024|0;j=d;c[f>>2]=255;k=(c[742801]|0)==0;if(k&(c[780901]|0)!=0){Lg(59865);Ia=d;return 0}if(!k){k=0;do{l=c[26544]|0;_k(0,l,k,$k(2971096,c[781999]|0,k)|0);k=k+1|0}while((k|0)!=17152)}if((yd(b)|0)>0?(Cd(b,1)|0)==4:0){k=Jd(b,1,f)|0;if((k|0)==0|(c[f>>2]|0)>>>0>512){Lg(59892);Ia=d;return 0}f=a[k>>0]|0;if(f<<24>>24){if(!(au(k,59910)|0)){bh();tc(c[26544]|0);Ia=d;return 0}if(((au(k,59915)|0?au(k,59921)|0:0)?au(k,59930)|0:0)?au(k,59940)|0:0){b=f;l=k;m=f<<24>>24!=45&1;do{m=b<<24>>24>122|(b<<24>>24==96|((b+-91&255)<4|((b+-58&255)<6|b<<24>>24<45&b<<24>>24!=32)))?0:m;l=l+1|0;b=a[l>>0]|0}while(b<<24>>24!=0);if(m|0?cp(k)|0:0){Vb(rc(k)|0,g);do if((c[742801]|0)==0?Gr(g)|0:0){if(c[798800]|0){c[798800]=0;break}Lg(60158);Jg(60178,14);c[798800]=1;Ia=d;return 0}while(0);if(!(Yb(g)|0)){Ss(3118768,g,1023)|0;a[3119791]=0;Zo(g,h,i,j);c[e>>2]=i;c[e+4>>2]=j;wt(1719968,60195,e)|0;Lg(1719968);Mb(g);Ia=d;return 0}else{Lg(60206);Ia=d;return 0}}Jg(60124,9);Jg(60140,14);Lg(k);Ia=d;return 0}bh();if(!(c[(c[26544]|0)+45856>>2]|0)){Jg(59953,9);Jg(59977,10)}ds(60008,h);if(((Qb(c[26544]|0,h)|0)==0?(ds(60021,g),(Nh(h,g)|0)==0):0)?(ss(g)|0)==0:0){qs();h=Vo(g)|0;if(h|0){Jo(0,h);ps(c[h+12>>2]|0)|0;Cq(h)}Lg(60038);Lg(60067);Ia=d;return 0}Lg(60096);Ia=d;return 0}}ec(1);Mb(3118768);Ia=d;return 0}function ri(a){a=a|0;var b=0;if((c[742801]|0)==0&(c[780901]|0)!=0)return 0;if((yd(a)|0)<=0){Lg(3196396);Jg(59494,12);Lg(3196396);Lg(59503);Lg(59536);Lg(59560);Lg(59584);Lg(59604);Lg(59637);Lg(59669);Jg(59698,14);Lg(3196396);Lg(59731);Jg(67647,12);Lg(3196396);Lg(59744);Lg(59776);Lg(59807);Lg(59836);Lg(3196396);return 0}b=Jd(a,1,0)|0;if((b|0?(bu(b)|0)>>>0<=32:0)?(Cd(a,1)|0)==4:0){il(b);return 0}Jg(59462,13);Jg(62163,6);return 0}function si(a){a=a|0;if((c[742801]|0)==0&(c[780901]|0)!=0)return 0;if(nc(59434)|0)return 0;if(lc()|0)Xb(3118768,0)|0;c[780900]=3;c[484608]=0;Bg();return 0}function ti(a){a=a|0;var b=0,e=0,f=0;a=c[781023]|0;b=c[781025]|0;e=c[781024]|0;f=0;do{_k(2971096,c[781999]|0,f+24320|0,d[1792+f>>0]|0);f=f+1|0}while((f|0)!=128);f=Fa(0)|0;zl((Xr()|0)+f|0);c[781023]=a;c[781025]=b;c[781024]=e;jh(16);return 0}function ui(a){a=a|0;if((c[742801]|0)==0&(c[780901]|0)!=0)return 0;if(nc(59380)|0)return 0;if(lc()|0)Xb(3118768,0)|0;c[554811]=1;qv(59410)|0;c[484610]=0;Bg();return 0}function vi(b){b=b|0;var d=0,e=0,f=0;b=Ia;Ia=Ia+3088|0;d=b+3072|0;e=b+1024|0;f=b;if((c[742801]|0)==0&(c[780901]|0)!=0){Ia=b;return 0}Zo(3118768,b+2048|0,e,f);if(a[3118768]|0){if(!(a[f>>0]|0)){Ss(f,93459,1023)|0;a[f+1023>>0]=0}c[d>>2]=e;c[d+4>>2]=f;wt(1719968,59272,d)|0;Jg(1719968,14)}bh();d=xq(131072)|0;if(hn(c[c[26544]>>2]|0,d)|0){zq(d);Ia=b;return 0}f=xq(131072)|0;e=Ml(d,f,bu(d)|0)|0;zq(f);f=uh(d)|0;Ng(59283,f,8192,(f|0)<8193?6:9);f=bu(d)|0;Ng(59305,f,65535,f>>>0<65536?6:9);Ng(59326,e,15616,(e|0)<15617?6:9);if(lc()|0)Mg(59347,0,0);if(mc()|0)Mg(59363,0,0);zq(d);Ia=b;return 0}function wi(a){a=a|0;return 0}function xi(a){a=a|0;return 0}function yi(a){a=a|0;mh();Ud(a,33,0);Zd(a,85511);nh(85511);Ud(a,34,0);Zd(a,85042);nh(85042);Ud(a,35,0);Zd(a,85302);nh(85302);Ud(a,36,0);Zd(a,61124);nh(61124);Ud(a,37,0);Zd(a,75588);nh(75588);Ud(a,37,0);Zd(a,61130);Ud(a,38,0);Zd(a,61137);Ud(a,28,0);Zd(a,86860);nh(86860);Ud(a,39,0);Zd(a,75819);nh(75819);Ud(a,40,0);Zd(a,75917);nh(75917);Ud(a,41,0);Zd(a,76068);nh(76068);Ud(a,42,0);Zd(a,90758);Ud(a,23,0);Zd(a,91162);nh(91162);Ud(a,23,0);Zd(a,91165);Ud(a,20,0);Zd(a,59258);Ud(a,21,0);Zd(a,59261);Ud(a,43,0);Zd(a,61150);Ud(a,44,0);Zd(a,61157);Ud(a,45,0);Zd(a,61171);Ud(a,46,0);Zd(a,61185);Ud(a,47,0);Zd(a,91350);Ud(a,48,-3333);Zd(a,8e4);nh(8e4);Ud(a,49,-3333);Zd(a,79995);nh(79995);Ud(a,50,0);Zd(a,76159);nh(76159);Ud(a,10,0);Zd(a,80056);nh(80056);Ud(a,11,0);Zd(a,80416);nh(80416);Ud(a,12,0);Zd(a,84459);nh(84459);Ud(a,12,0);Zd(a,59159);Ud(a,10,0);Zd(a,59142);Ud(a,11,0);Zd(a,59150);Ud(a,51,0);Zd(a,80747);nh(80747);Ud(a,52,0);Zd(a,84696);nh(84696);Ud(a,53,0);Zd(a,79382);nh(79382);Ud(a,54,0);Zd(a,79657);nh(79657);Ud(a,55,-3333);Zd(a,77519);nh(77519);Ud(a,56,-3333);Zd(a,77524);nh(77524);Ud(a,57,0);Zd(a,77690);nh(77690);Ud(a,58,0);Zd(a,77696);nh(77696);Ud(a,59,0);Zd(a,77953);nh(77953);Ud(a,60,0);Zd(a,77958);nh(77958);Ud(a,61,0);Zd(a,77828);nh(77828);Ud(a,62,0);Zd(a,77833);nh(77833);Ud(a,63,0);Zd(a,77378);nh(77378);Ud(a,64,0);Zd(a,78930);nh(78930);Ud(a,65,0);Zd(a,76508);nh(76508);Ud(a,66,0);Zd(a,76657);nh(76657);Ud(a,67,0);Zd(a,77028);nh(77028);Ud(a,68,0);Zd(a,61195);nh(61195);Ud(a,68,0);Zd(a,78116);nh(78116);Ud(a,69,0);Zd(a,78430);nh(78430);Ud(a,70,0);Zd(a,78435);nh(78435);Ud(a,71,0);Zd(a,78564);nh(78564);Ud(a,72,0);Zd(a,78569);nh(78569);Ud(a,73,0);Zd(a,79897);nh(79897);Ud(a,74,0);Zd(a,79902);nh(79902);Ud(a,75,0);Zd(a,94593);nh(94593);Ud(a,76,0);Zd(a,62384);nh(62384);Ud(a,77,0);Zd(a,88683);nh(88683);Ud(a,78,0);Zd(a,81568);nh(81568);Ud(a,79,0);Zd(a,81408);nh(81408);Ud(a,80,0);Zd(a,81788);nh(81788);Ud(a,81,0);Zd(a,82100);nh(82100);Ud(a,82,0);Zd(a,68343);nh(68343);Ud(a,83,-3333);Zd(a,68517);nh(68517);Ud(a,84,-3333);Zd(a,68875);nh(68875);Ud(a,85,-3333);Zd(a,69126);nh(69126);Ud(a,86,-3333);Zd(a,69208);nh(69208);Ud(a,87,-3333);Zd(a,93421);nh(93421);Ud(a,88,-3333);Zd(a,67869);nh(67869);Ud(a,89,-3333);Zd(a,67873);nh(67873);Ud(a,90,-3333);Zd(a,68300);nh(68300);Ud(a,91,-3333);Zd(a,68111);nh(68111);Ud(a,92,-3333);Zd(a,69413);nh(69413);Ud(a,93,-3333);Zd(a,68871);nh(68871);Ud(a,94,-3333);Zd(a,69669);nh(69669);Ud(a,95,-3333);Zd(a,69936);nh(69936);Ud(a,96,-3333);Zd(a,70137);nh(70137);Ud(a,97,-3333);Zd(a,70452);nh(70452);Ud(a,98,-3333);Zd(a,70576);nh(70576);Ud(a,99,-3333);Zd(a,70780);nh(70780);Ud(a,100,-3333);Zd(a,70931);nh(70931);Ud(a,101,-3333);Zd(a,71039);nh(71039);Ud(a,102,-3333);Zd(a,68676);nh(68676);Ud(a,103,-3333);Zd(a,68672);nh(68672);Ud(a,104,0);Zd(a,80854);nh(80854);Ud(a,105,0);Zd(a,80859);nh(80859);Ud(a,106,0);Zd(a,80865);nh(80865);Ud(a,107,-3333);Zd(a,81190);nh(81190);Ud(a,108,-3333);Zd(a,81195);nh(81195);Ud(a,109,-3333);Zd(a,81201);nh(81201);Ud(a,13,0);Zd(a,59167);Ud(a,13,0);Zd(a,89329);nh(89329);Ud(a,25,0);Zd(a,89701);Ud(a,22,0);Zd(a,86293);nh(86293);Ud(a,9,0);Zd(a,86465);nh(86465);Ud(a,27,0);Zd(a,91250);Ud(a,29,0);Zd(a,91017);Ud(a,29,0);Zd(a,59267);Ud(a,30,0);Zd(a,90642);Ud(a,31,0);Zd(a,90290);Ud(a,32,0);Zd(a,90056);Ud(a,26,0);Zd(a,67469);Ud(a,110,0);Zd(a,87727);nh(87727);Ud(a,110,0);Zd(a,87732);Ud(a,111,0);Zd(a,82249);nh(82249);Ud(a,14,0);Zd(a,88915);nh(88915);Ud(a,14,0);Zd(a,59174);Ud(a,112,0);Zd(a,61203);nh(61203);Ud(a,113,0);Zd(a,66739);nh(66739);Ud(a,114,0);Zd(a,67175);nh(67175);Ud(a,115,0);Zd(a,61218);Ud(a,116,0);Zd(a,82643);nh(82643);Ud(a,117,0);Zd(a,83028);nh(83028);Ud(a,118,0);Zd(a,83033);nh(83033);Ud(a,119,0);Zd(a,88284);nh(88284);Ud(a,120,0);Zd(a,83323);nh(83323);Ud(a,121,0);Zd(a,83694);nh(83694);Ud(a,122,0);Zd(a,83827);nh(83827);Ud(a,123,0);Zd(a,84123);nh(84123);Ud(a,7,0);Zd(a,59114);Ud(a,8,0);Zd(a,59124);Ud(a,124,0);Zd(a,94273);nh(94273);Ud(a,4,0);Zd(a,61228);nh(61228);Ud(a,5,0);Zd(a,61233);nh(61233);Ud(a,125,0);Zd(a,61239);nh(61239);Ud(a,126,0);Zd(a,61252);nh(61252);Ud(a,127,0);Zd(a,61265);nh(61265);Ud(a,128,0);Zd(a,61274);nh(61274);Ud(a,129,0);Zd(a,61281);nh(61281);Ud(a,130,0);Zd(a,61288);nh(61288);Ud(a,131,0);Zd(a,61295);nh(61295);Ud(a,132,0);Zd(a,87273);nh(87273);Ud(a,18,0);Zd(a,87264);nh(87264);Ud(a,133,0);Zd(a,87153);nh(87153);Ud(a,134,0);Zd(a,87626);nh(87626);Ud(a,135,0);Zd(a,74182);nh(74182);Ud(a,136,0);Zd(a,74189);nh(74189);Ud(a,17,0);Zd(a,74175);nh(74175);Ud(a,137,0);Zd(a,61302);Ud(a,137,0);Zd(a,61310);Ud(a,138,0);Zd(a,61316);Ud(a,138,0);Zd(a,61326);Ud(a,139,0);Zd(a,61338);Ud(a,140,0);Zd(a,61362);Ud(a,141,0);Zd(a,61378);Ud(a,142,0);Zd(a,61396);Ud(a,143,0);Zd(a,61417);Ud(a,144,0);Zd(a,61426);Ud(a,145,0);Zd(a,61436);Ud(a,6,0);Zd(a,59099);return}function zi(a){a=a|0;var b=0;Yg();a=c[798454]|0;if((a|0)==30){Yg();b=c[798454]|0}else b=a;if((b|0)==15){Yg();Yg()}wb();ol();c[742797]=0;rn();Ag();c[742778]=0;if(c[485657]|0){c[780900]=2;c[781024]=0;c[781023]=0;c[781025]=0}if(!(c[484703]|0)){Bg();return 0}ob(0);Lh(c[742795]|0);Bg();return 0}function Ai(a){a=a|0;Bg();return 0}function Bi(a){a=a|0;var b=0,d=0,e=0,f=0;b=$k(2971096,c[781999]|0,24360)|0;d=(($k(2971096,c[781999]|0,24361)|0)<<8)+b|0;b=$k(2971096,c[781999]|0,24362)|0;e=(($k(2971096,c[781999]|0,24363)|0)<<8)+b|0;b=Fd(a,1,0)|0;f=Fd(a,2,0)|0;_k(2971096,c[781999]|0,24360,b>>>16&255);_k(2971096,c[781999]|0,24361,b>>24);_k(2971096,c[781999]|0,24362,f>>>16&255);_k(2971096,c[781999]|0,24363,f>>24);Od(a,d<<16);Od(a,e<<16);return 2}function Ci(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;b=c[781018]|0;d=c[781019]|0;e=c[781020]|0;f=e-b|0;g=c[781021]|0;h=g-d|0;if((yd(a)|0)>3){i=(Fd(a,1,0)|0)>>16;j=(Fd(a,2,0)|0)>>16;k=(Fd(a,3,0)|0)>>16;l=(Fd(a,4,0)|0)>>16;m=k;n=i;o=j}else{l=128;m=128;n=0;o=0}if((yd(a)|0)>4){j=(Id(a,5)|0)==0;c[781018]=n;c[781019]=o;i=n+m|0;c[781020]=i;k=o+l|0;c[781021]=k;if(j){p=k;q=n;r=o;s=i}else{j=(n|0)<(e|0)?n:e;t=(b|0)>(j|0)?b:j;c[781018]=t;j=(o|0)<(g|0)?o:g;u=(d|0)>(j|0)?d:j;c[781019]=u;j=(i|0)<(e|0)?i:e;e=(b|0)>(j|0)?b:j;c[781020]=e;j=(k|0)<(g|0)?k:g;v=e;w=u;x=t;y=(d|0)>(j|0)?d:j;z=7}}else{c[781018]=n;c[781019]=o;j=n+m|0;c[781020]=j;v=j;w=o;x=n;y=o+l|0;z=7}if((z|0)==7){c[781021]=y;p=y;q=x;r=w;s=v}v=(q|0)<128?q:128;c[781018]=(v|0)>0?v:0;v=(r|0)<128?r:128;c[781019]=(v|0)>0?v:0;v=(s|0)<128?s:128;c[781020]=(v|0)>0?v:0;v=(p|0)<128?p:128;c[781021]=(v|0)>0?v:0;Lk();Od(a,b<<16);Od(a,d<<16);Od(a,f<<16);Od(a,h<<16);return 4}function Di(a){a=a|0;var b=0;if((yd(a)|0)>0)b=(Fd(a,1,0)|0)>>16;else b=0;c[781024]=0;c[781025]=0;c[781023]=0;c[781019]=0;c[781018]=0;c[781021]=128;c[781020]=128;Lk();Pn(c[742782]|0,0,0,127,127,b);jh(1024);return 0}function Ei(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+1040|0;e=d+1024|0;f=d;g=d+1032|0;if((c[742801]|0)==0&(c[780901]|0)!=0){Ia=d;return 0}c[g>>2]=0;h=Jd(b,1,g)|0;b=c[g>>2]|0;g=b>>>0>512?0:h;do if(b>>>0<=127){if(g){a[f>>0]=0;if(!(au(g,61990)|0))ds(61150,f);if(!(au(g,61998)|0))ds(3196396,f);if(!(au(g,92888)|0))ds(92888,f);if(!(au(g,94635)|0))fs(3196396,f);if(a[f>>0]|0){h=f+((bu(f)|0)+-1)|0;if((a[h>>0]|0)==47){a[h>>0]=0;i=16}else i=16}}else{c[e>>2]=3115688;c[e+4>>2]=3116712;wt(f,104363,e)|0;i=16}if((i|0)==16?a[f>>0]|0:0)break;Jg(62005,14);Jg(62031,6);Jg(62042,6)}while(0);Ia=d;return 0}function Fi(a){a=a|0;var b=0,d=0,e=0;a=Ia;Ia=Ia+2064|0;b=a+2048|0;d=a+1024|0;e=a;if((c[742801]|0)==0&(c[780901]|0)!=0){Ia=a;return 0}Xb(3118768,0)|0;Zo(3118768,0,d,e);c[b>>2]=d;c[b+4>>2]=e;wt(1719968,61975,b)|0;Lg(1719968);Ia=a;return 0}function Gi(a){a=a|0;if((c[742801]|0)==0&(c[780901]|0)!=0)return 0;en();return 0}function Hi(a){a=a|0;if((c[742801]|0)==0&(c[780901]|0)!=0)return 0;Jg(61947,14);om();fn();pm();return 0}function Ii(a){a=a|0;if((c[742801]|0)==0&(c[780901]|0)!=0)return 0;gm();c[798799]=1;nl();return 0}function Ji(a){a=a|0;if((c[742801]|0)==0&(c[780901]|0)!=0)return 0;Lg(61906);Lg(61930);return 0}function Ki(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=a+112|0;d=c[b>>2]|0;if((d|0)<2)return 0;e=a+8|0;f=c[e>>2]|0;g=0-d|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)!=3){g=Gd(h)|0;f=c[b>>2]|0;if((f|0)>1){i=f;j=g;k=5}else{l=0;m=g}}else{i=d;j=c[h>>2]|0;k=5}do if((k|0)==5){h=(c[e>>2]|0)+(0-i<<3)+8|0;if((c[h+4>>2]|0)==3){l=c[h>>2]|0;m=j;break}else{l=Gd(h)|0;m=j;break}}while(0);j=qk(a,3)|0;wk(c[742782]|0,m-(c[781030]<<16)>>16,l-(c[781031]<<16)>>16,j,c[781038]|0);return 0}function Li(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=b+112|0;e=c[d>>2]|0;if((e|0)<2){f=0;return f|0}g=b+8|0;b=c[g>>2]|0;h=0-e|0;i=b+(h<<3)|0;if((c[b+(h<<3)+4>>2]|0)!=3){h=Gd(i)|0;b=c[d>>2]|0;if((b|0)>1){j=b;k=h;l=5}else{m=0;n=h}}else{j=e;k=c[i>>2]|0;l=5}do if((l|0)==5){i=(c[g>>2]|0)+(0-j<<3)+8|0;if((c[i+4>>2]|0)==3){m=c[i>>2]|0;n=k;break}else{m=Gd(i)|0;n=k;break}}while(0);k=n-(c[781030]<<16)|0;n=k>>16;j=m-(c[781031]<<16)|0;m=j>>16;if(a[3152374]&16?(j|0)>8388607|((k|0)>8388607|(j|k|0)<0):0){f=($k(2971096,c[781999]|0,24411)|0)<<16;return f|0}f=(ao(c[742782]|0,n,m)|0)<<16&983040;return f|0}function Mi(a){a=a|0;var b=0;b=c[781022]|0;if(!(yd(a)|0))c[781022]=6;pk(a,1,1)|0;Od(a,b<<16);return 1}function Ni(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[781023]|0;d=c[781024]|0;e=c[781022]|0;f=(Fd(a,1,0)|0)>>16;g=(Fd(a,2,0)|0)>>16;c[781023]=f;c[781025]=f;c[781024]=g;pk(a,3,1)|0;Od(a,b<<16);Od(a,d<<16);Od(a,e<<16);return 3}function Oi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=Ia;Ia=Ia+16|0;e=d;f=d+8|0;g=d+4|0;c[f>>2]=0;h=Cd(b,1)|0;c[g>>2]=0;if((yd(b)|0)>1)i=(Fd(b,2,0)|0)>>16;else i=0;switch(h|0){case 3:{h=Fd(b,1,0)|0;c[f>>2]=h;Od(b,h);j=1;Ia=d;return j|0}case 1:{h=(Id(b,1)|0)==0;Od(b,h?0:(i&2|0)==0?65536:1);j=1;Ia=d;return j|0}case 4:{jh(2);c[g>>2]=1;a:do if(!(i&3))k=18;else{h=Jd(b,1,0)|0;l=a[h>>0]|0;if(!(l<<24>>24))m=0;else{n=l;l=h;h=0;while(1){o=h<<4;p=n<<24>>24;do if((n+-48&255)>=10)if((n+-97&255)<6){q=p+-87|0;break}else{q=(n+-65&255)<6?p+-55|0:0;break}else q=p+-48|0;while(0);p=q|o;l=l+1|0;n=a[l>>0]|0;if(!(n<<24>>24)){m=p;break}else h=p}}switch(i&3){case 3:{c[f>>2]=m;k=23;break a;break}case 1:{c[f>>2]=m<<16;k=23;break a;break}default:{k=18;break a}}}while(0);do if((k|0)==18){if(!(i&2)){c[g>>2]=0;c[f>>2]=Fd(b,1,g)|0;m=c[g>>2]|0;if((i&4|0)==0|(m|0)!=0)r=m;else{c[f>>2]=0;c[g>>2]=1;s=0;break}}else{m=Jd(b,1,0)|0;c[e>>2]=f;Su(m,94793,e)|0;r=c[g>>2]|0}if(!r){j=0;Ia=d;return j|0}else k=23}while(0);if((k|0)==23)s=c[f>>2]|0;Od(b,s);j=1;Ia=d;return j|0}default:{j=0;Ia=d;return j|0}}return 0}function Pi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;b=Ia;Ia=Ia+80|0;d=b+72|0;e=b+68|0;f=b+16|0;g=b+12|0;h=b+8|0;i=b+4|0;j=b;k=yd(a)|0;l=(Fd(a,1,0)|0)>>16;m=Fd(a,2,0)|0;n=Fd(a,3,0)|0;if(l>>>0>255){Ia=b;return 0}if((k|0)>3){o=Fd(a,4,0)|0;p=Fd(a,5,0)|0;if((k|0)>5){k=Id(a,6)|0;q=k;r=Id(a,7)|0;s=p;t=o}else{q=0;r=0;s=p;t=o}}else{q=0;r=0;s=65536;t=65536}o=t>>13;p=s>>13;if((t|0)<8192|(s|0)<8192){Ia=b;return 0}s=(o|0)<128?o:128;o=(p|0)<128?p:128;p=m-(c[781030]<<16)>>16;m=n-(c[781031]<<16)>>16;n=c[554383]|0;do if(!n)u=10;else{if((c[n>>2]|0)==(s|0)?(c[n+4>>2]|0)==(o|0):0){v=o;w=s;x=n;break}Tn(n)|0;u=10}while(0);if((u|0)==10){u=Sn(s,o,8)|0;c[554383]=u;v=c[u+4>>2]|0;w=c[u>>2]|0;x=u}wq(c[x+12>>2]|0,16,B(v,w)|0);rk(c[(c[781999]|0)+8>>2]|0,c[554383]|0,l<<3&120,l>>>4<<3,0,0,s,o,q,r,3123880);tk(c[554383]|0,c[742782]|0,0,0,p,m,s,o);c[d>>2]=s;c[e>>2]=o;c[g>>2]=0;c[h>>2]=0;c[i>>2]=p;c[j>>2]=m;m=0-s|0;if((s|0)<0){c[g>>2]=s;c[d>>2]=m;y=m}else y=s;s=0-o|0;if((o|0)<0){c[h>>2]=o;c[e>>2]=s;z=s}else z=o;c[f>>2]=y;c[f+4>>2]=z;Vn(f,c[742782]|0,g,h,i,j,d,e);j=c[d>>2]|0;d=c[e>>2]|0;e=B(d,j)|0;jh((d|j|0)<0?0:e);Ia=b;return 0}function Qi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0;b=Ia;Ia=Ia+80|0;d=b+72|0;e=b+68|0;f=b+16|0;g=b+12|0;h=b+8|0;i=b+4|0;j=b;k=yd(a)|0;l=(Fd(a,1,0)|0)>>16;m=(Fd(a,2,0)|0)>>16;n=Fd(a,3,0)|0;o=n>>16;p=Fd(a,4,0)|0;q=p>>16;r=Fd(a,5,0)|0;s=Fd(a,6,0)|0;if((k|0)>6){t=(Fd(a,7,0)|0)>>16;u=(Fd(a,8,0)|0)>>16;if((k|0)>8){v=Id(a,9)|0;if((k|0)==9){w=v;x=0;y=u;z=t}else{w=v;x=Id(a,10)|0;y=u;z=t}}else{w=0;x=0;y=u;z=t}}else{w=0;x=0;y=q;z=o}if((p+-65536|n+-65536)>>>0>8388607){Ia=b;return 0}if((z|0)==0|(y|0)==0){Ia=b;return 0}n=(z|0)<0;p=(r-(c[781030]<<16)>>16)+(n?z:0)|0;r=n?0-z|0:z;z=n?(w|0)==0&1:w;w=(y|0)<0;n=(s-(c[781031]<<16)>>16)+(w?y:0)|0;s=w?0-y|0:y;y=w?(x|0)==0&1:x;x=c[554382]|0;do if(!x)A=11;else{if((c[x>>2]|0)==(o|0)?(c[x+4>>2]|0)==(q|0):0){C=q;D=o;E=x;break}Tn(x)|0;A=11}while(0);if((A|0)==11){A=Sn(o,q,8)|0;c[554382]=A;C=c[A+4>>2]|0;D=c[A>>2]|0;E=A}wq(c[E+12>>2]|0,16,B(C,D)|0);rk(c[(c[781999]|0)+8>>2]|0,c[554382]|0,l,m,0,0,o,q,z,y,3123880);sk(c[554382]|0,c[742782]|0,p,n,r,s);c[d>>2]=r;c[e>>2]=s;c[g>>2]=0;c[h>>2]=0;c[i>>2]=p;c[j>>2]=n;n=0-r|0;if((r|0)<0){c[g>>2]=r;c[d>>2]=n;F=n}else F=r;r=0-s|0;if((s|0)<0){c[h>>2]=s;c[e>>2]=r;G=r}else G=s;c[f>>2]=F;c[f+4>>2]=G;Vn(f,c[742782]|0,g,h,i,j,d,e);j=c[d>>2]|0;d=c[e>>2]|0;e=B(d,j)|0;jh((d|j|0)<0?0:e);Ia=b;return 0}function Ri(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;b=a+112|0;d=c[b>>2]|0;do if((d|0)>0){e=a+8|0;f=c[e>>2]|0;g=0-d|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{g=Gd(h)|0;i=c[b>>2]|0;j=g}if((i|0)>1){g=(c[e>>2]|0)+(0-i<<3)+8|0;if((c[g+4>>2]|0)==3){k=i;l=c[g>>2]|0}else{h=Gd(g)|0;k=c[b>>2]|0;l=h}if((k|0)>2){h=(c[e>>2]|0)+(0-k<<3)+16|0;if((c[h+4>>2]|0)==3){m=k;n=c[h>>2]|0}else{g=Gd(h)|0;m=c[b>>2]|0;n=g}if((m|0)>3){g=(c[e>>2]|0)+(0-m<<3)+24|0;if((c[g+4>>2]|0)==3){o=l;p=n;q=c[g>>2]|0;r=j;break}else{o=l;p=n;q=Gd(g)|0;r=j;break}}else{o=l;p=n;q=0;r=j}}else{o=l;p=0;q=0;r=j}}else{o=0;p=0;q=0;r=j}}else{o=0;p=0;q=0;r=0}while(0);j=qk(a,5)|0;a=c[781030]<<16;l=r-a>>16;r=c[781031]<<16;n=o-r>>16;o=p-a>>16;a=q-r>>16;r=xk(c[742782]|0,l,o,n,j)|0;if((a|0)==(n|0))s=r;else s=(xk(c[742782]|0,l,o,a,j)|0)+r|0;r=(a|0)<(n|0);q=r?a:n;p=r?n:a;if((p|0)<=(q|0)){t=s;u=(t|0)/16|0;jh(u);return 0}a=q+1|0;q=p+-1|0;p=(Kk(c[742782]|0,l,a,q,j)|0)+s|0;t=p+(Kk(c[742782]|0,o,a,q,j)|0)|0;u=(t|0)/16|0;jh(u);return 0} +function Vl(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;j=Ia;Ia=Ia+16|0;k=j+4|0;l=j;m=h&1;n=b+72|0;o=c[n>>2]|0;p=c[o>>2]|0;if(p&4|0?(c[o+52>>2]|0)>>>0>4294901760:0){c[b+64>>2]=4;q=0;Ia=j;return q|0}if(!(p&1)){c[b+64>>2]=10;q=0;Ia=j;return q|0}c[b+28>>2]=d;c[b+32>>2]=e;c[b+36>>2]=f;c[b+40>>2]=g;a[b+44>>0]=m;m=(i|0)!=0;p=b+48|0;do if(m){if(c[p>>2]|0)c[p>>2]=0;r=Ql(c[i>>2]|0,c[i+12>>2]|0)|0;c[p>>2]=r;if(r|0){s=c[n>>2]|0;break}c[b+64>>2]=7;q=0;Ia=j;return q|0}else{c[p>>2]=0;s=o}while(0);a[l>>0]=44;r=c[s+64>>2]|0;if(!r)nv(44,c[s+56>>2]|0)|0;else Oa[r&7](b,l,1)|0;a[k>>0]=d;r=k+1|0;a[r>>0]=d>>>8;d=c[n>>2]|0;s=c[d+64>>2]|0;if(!s)hv(k,1,2,c[d+56>>2]|0)|0;else Oa[s&7](b,k,2)|0;a[k>>0]=e;a[r>>0]=e>>>8;e=c[n>>2]|0;s=c[e+64>>2]|0;if(!s)hv(k,1,2,c[e+56>>2]|0)|0;else Oa[s&7](b,k,2)|0;a[k>>0]=f;a[r>>0]=f>>>8;s=c[n>>2]|0;e=c[s+64>>2]|0;if(!e)hv(k,1,2,c[s+56>>2]|0)|0;else Oa[e&7](b,k,2)|0;a[k>>0]=g;a[r>>0]=g>>>8;r=c[n>>2]|0;e=c[r+64>>2]|0;if(!e)hv(k,1,2,c[r+56>>2]|0)|0;else Oa[e&7](b,k,2)|0;e=(m?128:0)|(h?64:0);a:do if(m){h=(c[i+4>>2]|0)+255|e;a[l>>0]=h;r=c[n>>2]|0;s=c[r+64>>2]|0;if(!s)nv(h<<24>>24,c[r+56>>2]|0)|0;else Oa[s&7](b,l,1)|0;if((c[i>>2]|0)>0){s=i+12|0;r=l+1|0;h=l+2|0;d=0;while(1){t=c[s>>2]|0;a[l>>0]=a[t+(d*3|0)>>0]|0;a[r>>0]=a[t+(d*3|0)+1>>0]|0;a[h>>0]=a[t+(d*3|0)+2>>0]|0;t=c[n>>2]|0;u=c[t+64>>2]|0;if(!u)v=hv(l,1,3,c[t+56>>2]|0)|0;else v=Oa[u&7](b,l,3)|0;d=d+1|0;if((v|0)!=3)break;if((d|0)>=(c[i>>2]|0))break a}c[b+64>>2]=2;q=0;Ia=j;return q|0}}else{a[l>>0]=e;d=c[n>>2]|0;h=c[d+64>>2]|0;if(!h){nv(e<<24>>24,c[d+56>>2]|0)|0;break}else{Oa[h&7](b,l,1)|0;break}}while(0);l=c[b+20>>2]|0;e=c[p>>2]|0;if((l|0)==0&(e|0)==0){c[b+64>>2]=5;q=0;Ia=j;return q|0}c[o>>2]=c[o>>2]|4;c[o+52>>2]=B(g,f)|0;f=c[n>>2]|0;n=c[((e|0)==0?l:e)+4>>2]|0;e=(n|0)>2?n:2;a[k>>0]=e;n=c[f+64>>2]|0;if(!n)nv(e<<24>>24,c[f+56>>2]|0)|0;else Oa[n&7](b,k,1)|0;a[f+68>>0]=0;c[f+8>>2]=e;k=1<<e;n=f+12|0;c[n>>2]=k;c[f+16>>2]=k+1;c[f+20>>2]=k+2;c[f+24>>2]=e+1;c[f+28>>2]=2<<e;c[f+36>>2]=4097;c[f+44>>2]=0;c[f+48>>2]=0;Wv(c[f+24900>>2]|0,-1,32768)|0;if(!(Wl(b,c[n>>2]|0)|0))c[b+64>>2]=8;q=1;Ia=j;return q|0}function Wl(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;f=b+72|0;g=c[f>>2]|0;h=g+44|0;i=c[h>>2]|0;do if((e|0)==4096){j=g+68|0;if((i|0)>0){k=g+48|0;l=b+64|0;m=c[k>>2]|0;n=1;while(1){o=a[j>>0]|0;do if(o<<24>>24==-1){p=c[f>>2]|0;q=c[p+64>>2]|0;if(!q)r=hv(j,1,256,c[p+56>>2]|0)|0;else r=Oa[q&7](b,j,256)|0;if((r|0)==((d[j>>0]|0)+1|0)){a[j>>0]=0;s=0;t=10;break}else{c[l>>2]=2;u=0;break}}else{s=o;t=10}while(0);if((t|0)==10){t=0;o=s+1<<24>>24;a[j>>0]=o;a[(o&255)+(g+68)>>0]=m;u=n}m=(c[k>>2]|0)>>>8;c[k>>2]=m;o=c[h>>2]|0;c[h>>2]=o+-8;if((o|0)<=8){v=u;break}else n=u}}else v=1;c[h>>2]=0;n=a[j>>0]|0;if(n<<24>>24){m=(n&255)+1|0;n=c[f>>2]|0;k=c[n+64>>2]|0;if(!k)w=hv(j,1,m,c[n+56>>2]|0)|0;else w=Oa[k&7](b,j,m)|0;if((w|0)!=((d[j>>0]|0)+1|0)){c[b+64>>2]=2;x=0;break}}a[j>>0]=0;m=c[f>>2]|0;k=c[m+64>>2]|0;if(!k)y=hv(j,1,1,c[m+56>>2]|0)|0;else y=Oa[k&7](b,j,1)|0;if((y|0)==1)x=v;else{c[b+64>>2]=2;x=0}}else{k=g+48|0;m=c[k>>2]|e<<i;c[k>>2]=m;n=(c[g+24>>2]|0)+i|0;c[h>>2]=n;if((n|0)>7){n=g+68|0;l=b+64|0;o=m;m=1;while(1){q=a[n>>0]|0;do if(q<<24>>24==-1){p=c[f>>2]|0;z=c[p+64>>2]|0;if(!z)A=hv(n,1,256,c[p+56>>2]|0)|0;else A=Oa[z&7](b,n,256)|0;if((A|0)==((d[n>>0]|0)+1|0)){a[n>>0]=0;B=0;t=32;break}else{c[l>>2]=2;C=0;break}}else{B=q;t=32}while(0);if((t|0)==32){t=0;q=B+1<<24>>24;a[n>>0]=q;a[(q&255)+(g+68)>>0]=o;C=m}o=(c[k>>2]|0)>>>8;c[k>>2]=o;q=c[h>>2]|0;c[h>>2]=q+-8;if((q|0)<=15){x=C;break}else m=C}}else x=1}while(0);C=g+28|0;if(!((e|0)<4096?(c[g+20>>2]|0)>=(c[C>>2]|0):0))return x|0;e=g+24|0;g=(c[e>>2]|0)+1|0;c[e>>2]=g;c[C>>2]=1<<g;return x|0}function Xl(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;f=c[a+72>>2]|0;g=c[f+24900>>2]|0;h=f+36|0;i=c[h>>2]|0;if((i|0)==4097){j=d[b>>0]|0;k=1}else{j=i;k=0}a:do if((k|0)<(e|0)){i=f+20|0;l=f+12|0;m=f+16|0;n=f+8|0;o=f+24|0;p=f+28|0;q=j;r=k;b:while(1){s=d[b+r>>0]|0;r=r+1|0;t=q<<8|s;u=t^q>>>4&1048575;v=u&8191;w=c[g+(v<<2)>>2]|0;x=w>>>12;c:do if((x|0)==1048575)y=10;else{z=w;A=v;B=x;while(1){if((B|0)==(t|0))break;A=A+1&8191;C=c[g+(A<<2)>>2]|0;B=C>>>12;if((B|0)==1048575){y=10;break c}else z=C}D=z&4095}while(0);do if((y|0)==10){y=0;if(!(Wl(a,q)|0)){y=11;break b}x=c[i>>2]|0;if((x|0)>4094){if(!(Wl(a,c[l>>2]|0)|0)){y=14;break b}c[i>>2]=(c[m>>2]|0)+1;v=(c[n>>2]|0)+1|0;c[o>>2]=v;c[p>>2]=1<<v;Wv(g|0,-1,32768)|0;D=s;break}c[i>>2]=x+1;v=u;while(1){w=v&8191;E=g+(w<<2)|0;if((c[E>>2]|0)>>>0<4294963200)v=w+1|0;else break}c[E>>2]=x&4095|t<<12;D=s}while(0);if((r|0)>=(e|0)){F=D;break a}else q=D}if((y|0)==11){c[a+64>>2]=8;G=0;return G|0}else if((y|0)==14){c[a+64>>2]=8;G=0;return G|0}}else F=j;while(0);c[h>>2]=F;if(c[f+52>>2]|0){G=1;return G|0}if(!(Wl(a,F)|0)){c[a+64>>2]=8;G=0;return G|0}if(!(Wl(a,c[f+16>>2]|0)|0)){c[a+64>>2]=8;G=0;return G|0}if(Wl(a,4096)|0){G=1;return G|0}c[a+64>>2]=8;G=0;return G|0}function Yl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;d=Ia;Ia=Ia+16|0;e=d;f=b+20|0;if(!(Ul(b,c[b>>2]|0,c[b+4>>2]|0,c[b+8>>2]|0,c[b+12>>2]|0,c[f>>2]|0)|0)){g=0;Ia=d;return g|0}h=b+24|0;a:do if((c[h>>2]|0)>0){i=b+52|0;j=b+72|0;k=e+1|0;l=b+36|0;m=0;b:while(1){n=c[i>>2]|0;o=c[n+(m*36|0)+12>>2]|0;p=c[n+(m*36|0)+8>>2]|0;q=n+(m*36|0)+24|0;c:do if(c[q>>2]|0){r=c[n+(m*36|0)+32>>2]|0;s=c[n+(m*36|0)+28>>2]|0;if((r|0)!=0&(s|0)>0){t=s+-1|0;u=0;do{v=r+(u*12|0)|0;w=c[r+(u*12|0)+8>>2]|0;if(w|0){x=c[j>>2]|0;if(!(c[x>>2]&1)){y=13;break b}a[e>>0]=33;a[k>>0]=w;w=c[x+64>>2]|0;if(!w)hv(e,1,2,c[x+56>>2]|0)|0;else Oa[w&7](b,e,2)|0}w=c[v>>2]|0;x=c[r+(u*12|0)+4>>2]|0;z=c[j>>2]|0;if(!(c[z>>2]&1)){y=21;break b}a[e>>0]=w;A=c[z+64>>2]|0;if(!A)nv(w<<24>>24,c[z+56>>2]|0)|0;else Oa[A&7](b,e,1)|0;A=c[j>>2]|0;z=c[A+64>>2]|0;if(!z)hv(x,1,w,c[A+56>>2]|0)|0;else Oa[z&7](b,x,w)|0;if(!((u|0)!=(t|0)?!(c[v+12+8>>2]|0):0)){v=c[j>>2]|0;if(!(c[v>>2]&1)){y=29;break b}a[e>>0]=0;w=c[v+64>>2]|0;if(!w)nv(0,c[v+56>>2]|0)|0;else Oa[w&7](b,e,1)|0}u=u+1|0}while((u|0)<(s|0))}s=n+(m*36|0)+16|0;if(!(Vl(b,c[n+(m*36|0)>>2]|0,c[n+(m*36|0)+4>>2]|0,p,o,(a[s>>0]|0)!=0,c[n+(m*36|0)+20>>2]|0)|0)){g=0;y=118;break b}if(!(a[s>>0]|0)){if((o|0)<=0)break;if(!p){s=0;while(1){u=c[q>>2]|0;t=c[j>>2]|0;if(!(c[t>>2]&1)){y=70;break b}r=c[l>>2]|0;w=t+52|0;v=c[w>>2]|0;if(v>>>0<r>>>0){y=72;break b}c[w>>2]=v-r;v=a[92006+(c[t+8>>2]|0)>>0]|0;if((r|0)>0){t=0;do{w=u+t|0;a[w>>0]=a[w>>0]&v;t=t+1|0}while((t|0)!=(r|0))}s=s+1|0;if(!(Xl(b,u,r)|0)){g=0;y=118;break b}if((s|0)>=(o|0))break c}}else{s=(p|0)>0;t=0;while(1){v=(c[q>>2]|0)+(B(t,p)|0)|0;w=c[j>>2]|0;if(!(c[w>>2]&1)){y=70;break b}x=w+52|0;z=c[x>>2]|0;if(z>>>0<p>>>0){y=72;break b}c[x>>2]=z-p;z=a[92006+(c[w+8>>2]|0)>>0]|0;if(s){w=0;do{x=v+w|0;a[x>>0]=a[x>>0]&z;w=w+1|0}while((w|0)!=(p|0))}t=t+1|0;if(!(Xl(b,v,p)|0)){g=0;y=118;break b}if((t|0)>=(o|0))break c}}}t=(o|0)>0;if(!p){if(!t)break;s=0;do{w=c[q>>2]|0;z=c[j>>2]|0;if(!(c[z>>2]&1)){y=48;break b}r=c[l>>2]|0;u=z+52|0;x=c[u>>2]|0;if(x>>>0<r>>>0){y=50;break b}c[u>>2]=x-r;x=a[92006+(c[z+8>>2]|0)>>0]|0;if((r|0)>0){z=0;do{u=w+z|0;a[u>>0]=a[u>>0]&x;z=z+1|0}while((z|0)!=(r|0))}if(!(Xl(b,w,r)|0)){g=0;y=118;break b}s=s+8|0}while((s|0)<(o|0));if((o|0)>4){s=4;do{z=c[q>>2]|0;x=c[j>>2]|0;if(!(c[x>>2]&1)){y=48;break b}v=c[l>>2]|0;u=x+52|0;A=c[u>>2]|0;if(A>>>0<v>>>0){y=50;break b}c[u>>2]=A-v;A=a[92006+(c[x+8>>2]|0)>>0]|0;if((v|0)>0){x=0;do{u=z+x|0;a[u>>0]=a[u>>0]&A;x=x+1|0}while((x|0)!=(v|0))}if(!(Xl(b,z,v)|0)){g=0;y=118;break b}s=s+8|0}while((s|0)<(o|0))}if((o|0)>2){s=2;do{x=c[q>>2]|0;A=c[j>>2]|0;if(!(c[A>>2]&1)){y=48;break b}r=c[l>>2]|0;w=A+52|0;u=c[w>>2]|0;if(u>>>0<r>>>0){y=50;break b}c[w>>2]=u-r;u=a[92006+(c[A+8>>2]|0)>>0]|0;if((r|0)>0){A=0;do{w=x+A|0;a[w>>0]=a[w>>0]&u;A=A+1|0}while((A|0)!=(r|0))}if(!(Xl(b,x,r)|0)){g=0;y=118;break b}s=s+4|0}while((s|0)<(o|0))}if((o|0)<=1)break;s=1;do{A=c[q>>2]|0;u=c[j>>2]|0;if(!(c[u>>2]&1)){y=48;break b}v=c[l>>2]|0;z=u+52|0;w=c[z>>2]|0;if(w>>>0<v>>>0){y=50;break b}c[z>>2]=w-v;w=a[92006+(c[u+8>>2]|0)>>0]|0;if((v|0)>0){u=0;do{z=A+u|0;a[z>>0]=a[z>>0]&w;u=u+1|0}while((u|0)!=(v|0))}if(!(Xl(b,A,v)|0)){g=0;y=118;break b}s=s+2|0}while((s|0)<(o|0))}else{if(!t)break;s=(p|0)>0;u=0;do{w=(c[q>>2]|0)+(B(u,p)|0)|0;r=c[j>>2]|0;if(!(c[r>>2]&1)){y=48;break b}x=r+52|0;z=c[x>>2]|0;if(z>>>0<p>>>0){y=50;break b}c[x>>2]=z-p;z=a[92006+(c[r+8>>2]|0)>>0]|0;if(s){r=0;do{x=w+r|0;a[x>>0]=a[x>>0]&z;r=r+1|0}while((r|0)!=(p|0))}if(!(Xl(b,w,p)|0)){g=0;y=118;break b}u=u+8|0}while((u|0)<(o|0));if((o|0)>4){u=(p|0)>0;s=4;do{t=(c[q>>2]|0)+(B(s,p)|0)|0;r=c[j>>2]|0;if(!(c[r>>2]&1)){y=48;break b}z=r+52|0;v=c[z>>2]|0;if(v>>>0<p>>>0){y=50;break b}c[z>>2]=v-p;v=a[92006+(c[r+8>>2]|0)>>0]|0;if(u){r=0;do{z=t+r|0;a[z>>0]=a[z>>0]&v;r=r+1|0}while((r|0)!=(p|0))}if(!(Xl(b,t,p)|0)){g=0;y=118;break b}s=s+8|0}while((s|0)<(o|0))}if((o|0)>2){s=(p|0)>0;u=2;do{r=(c[q>>2]|0)+(B(u,p)|0)|0;v=c[j>>2]|0;if(!(c[v>>2]&1)){y=48;break b}w=v+52|0;z=c[w>>2]|0;if(z>>>0<p>>>0){y=50;break b}c[w>>2]=z-p;z=a[92006+(c[v+8>>2]|0)>>0]|0;if(s){v=0;do{w=r+v|0;a[w>>0]=a[w>>0]&z;v=v+1|0}while((v|0)!=(p|0))}if(!(Xl(b,r,p)|0)){g=0;y=118;break b}u=u+4|0}while((u|0)<(o|0))}if((o|0)<=1)break;u=(p|0)>0;s=1;do{v=(c[q>>2]|0)+(B(s,p)|0)|0;z=c[j>>2]|0;if(!(c[z>>2]&1)){y=48;break b}t=z+52|0;w=c[t>>2]|0;if(w>>>0<p>>>0){y=50;break b}c[t>>2]=w-p;w=a[92006+(c[z+8>>2]|0)>>0]|0;if(u){z=0;do{t=v+z|0;a[t>>0]=a[t>>0]&w;z=z+1|0}while((z|0)!=(p|0))}if(!(Xl(b,v,p)|0)){g=0;y=118;break b}s=s+2|0}while((s|0)<(o|0))}}while(0);m=m+1|0;if((m|0)>=(c[h>>2]|0))break a}if((y|0)==13){c[b+64>>2]=10;g=0;Ia=d;return g|0}else if((y|0)==21){c[b+64>>2]=10;g=0;Ia=d;return g|0}else if((y|0)==29){c[b+64>>2]=10;g=0;Ia=d;return g|0}else if((y|0)==48){c[b+64>>2]=10;g=0;Ia=d;return g|0}else if((y|0)==50){c[b+64>>2]=6;g=0;Ia=d;return g|0}else if((y|0)==70){c[b+64>>2]=10;g=0;Ia=d;return g|0}else if((y|0)==72){c[b+64>>2]=6;g=0;Ia=d;return g|0}else if((y|0)==118){Ia=d;return g|0}}while(0);h=c[b+60>>2]|0;m=c[b+56>>2]|0;d:do if((h|0)!=0&(m|0)>0){j=m+-1|0;l=b+72|0;k=e+1|0;i=0;while(1){o=h+(i*12|0)|0;p=c[h+(i*12|0)+8>>2]|0;if(p|0){q=c[l>>2]|0;if(!(c[q>>2]&1)){y=87;break}a[e>>0]=33;a[k>>0]=p;p=c[q+64>>2]|0;if(!p)hv(e,1,2,c[q+56>>2]|0)|0;else Oa[p&7](b,e,2)|0}p=c[o>>2]|0;q=c[h+(i*12|0)+4>>2]|0;n=c[l>>2]|0;if(!(c[n>>2]&1)){y=95;break}a[e>>0]=p;s=c[n+64>>2]|0;if(!s)nv(p<<24>>24,c[n+56>>2]|0)|0;else Oa[s&7](b,e,1)|0;s=c[l>>2]|0;n=c[s+64>>2]|0;if(!n)hv(q,1,p,c[s+56>>2]|0)|0;else Oa[n&7](b,q,p)|0;if(!((i|0)!=(j|0)?!(c[o+12+8>>2]|0):0)){o=c[l>>2]|0;if(!(c[o>>2]&1)){y=103;break}a[e>>0]=0;p=c[o+64>>2]|0;if(!p)nv(0,c[o+56>>2]|0)|0;else Oa[p&7](b,e,1)|0}i=i+1|0;if((i|0)>=(m|0)){C=l;break d}}if((y|0)==87){c[b+64>>2]=10;g=0;Ia=d;return g|0}else if((y|0)==95){c[b+64>>2]=10;g=0;Ia=d;return g|0}else if((y|0)==103){c[b+64>>2]=10;g=0;Ia=d;return g|0}}else C=b+72|0;while(0);y=c[C>>2]|0;do if(y|0?c[y>>2]&1|0:0){C=c[y+56>>2]|0;a[e>>0]=59;m=c[y+64>>2]|0;if(!m)nv(59,C)|0;else Oa[m&7](b,e,1)|0;m=b+48|0;if(c[m>>2]|0)c[m>>2]=0;if(c[f>>2]|0)c[f>>2]=0;if(C|0?Lu(C)|0:0)break;g=1;Ia=d;return g|0}while(0);g=0;Ia=d;return g|0}function Zl(a){a=a|0;var b=0;b=1;while(1)if(b>>>0<9&(1<<b|0)<(a|0))b=b+1|0;else break;return b|0}function _l(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=b+52|0;f=c[e>>2]|0;a:do if(!f){c[554434]=(c[554434]|0)+36;g=_s(36,1)|0;h=c[554433]|0;c[1462656+(h<<2)>>2]=g;c[554433]=h+((h|0)<16384&1);i=g}else{g=((c[b+24>>2]|0)*36|0)+36|0;h=c[554433]|0;b:do if((h|0)>0){j=0;while(1){k=1462656+(j<<2)|0;if((c[k>>2]|0)==(f|0))break;j=j+1|0;if((j|0)>=(h|0))break b}j=$s(f,g)|0;c[k>>2]=j;i=j;break a}while(0);i=$s(f,g)|0}while(0);c[e>>2]=i;if(!i){l=0;return l|0}f=b+24|0;b=c[f>>2]|0;c[f>>2]=b+1;k=i+(b*36|0)|0;h=k;j=h+36|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(j|0));if(!d){l=k;return l|0}h=k;m=d;j=h+36|0;do{a[h>>0]=a[m>>0]|0;h=h+1|0;m=m+1|0}while((h|0)<(j|0));m=i+(b*36|0)+20|0;if(c[m>>2]|0?(h=c[d+20>>2]|0,j=Ql(c[h>>2]|0,c[h+12>>2]|0)|0,c[m>>2]=j,(j|0)==0):0){j=c[e>>2]|0;if(!j){l=0;return l|0}m=(c[f>>2]|0)+-1|0;c[f>>2]=m;h=j+(m*36|0)+20|0;if(c[h>>2]|0)c[h>>2]=0;h=j+(m*36|0)+32|0;if(!(c[h>>2]|0)){l=0;return l|0}c[h>>2]=0;c[j+(m*36|0)+28>>2]=0;l=0;return l|0}m=d+12|0;j=d+8|0;h=B(c[j>>2]|0,c[m>>2]|0)|0;n=(c[554434]|0)+h|0;c[554434]=n;o=_s(h,1)|0;h=c[554433]|0;c[1462656+(h<<2)>>2]=o;p=h+((h|0)<16384&1)|0;c[554433]=p;c[i+(b*36|0)+24>>2]=o;if(!o){h=c[e>>2]|0;if(!h){l=0;return l|0}q=(c[f>>2]|0)+-1|0;c[f>>2]=q;r=h+(q*36|0)+20|0;if(c[r>>2]|0)c[r>>2]=0;r=h+(q*36|0)+32|0;if(!(c[r>>2]|0)){l=0;return l|0}c[r>>2]=0;c[h+(q*36|0)+28>>2]=0;l=0;return l|0}Vv(o|0,c[d+24>>2]|0,B(c[j>>2]|0,c[m>>2]|0)|0)|0;m=i+(b*36|0)+32|0;if(!(c[m>>2]|0)){l=k;return l|0}b=d+28|0;i=(c[b>>2]|0)*12|0;c[554434]=i+n;n=_s(i,1)|0;c[1462656+(p<<2)>>2]=n;c[554433]=p+((p|0)<16384&1);c[m>>2]=n;if(n|0){Vv(n|0,c[d+32>>2]|0,(c[b>>2]|0)*12|0)|0;l=k;return l|0}k=c[e>>2]|0;if(!k){l=0;return l|0}e=(c[f>>2]|0)+-1|0;c[f>>2]=e;f=k+(e*36|0)+20|0;if(c[f>>2]|0)c[f>>2]=0;f=k+(e*36|0)+32|0;if(!(c[f>>2]|0)){l=0;return l|0}c[f>>2]=0;c[k+(e*36|0)+28>>2]=0;l=0;return l|0}function $l(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=Ia;Ia=Ia+1632|0;d=b+1616|0;e=b+1608|0;f=b+1600|0;g=b+1592|0;h=b+1584|0;i=b+1576|0;j=b+1568|0;k=b+1560|0;l=b+1552|0;m=b+528|0;n=b;c[798463]=0;Wv(n|0,0,521)|0;if((c[780894]|0)!=1|(c[780901]|0)==0|(a[3120180]|0)==0){o=0;Ia=b;return o|0}if((bu(3120180)|0)>>>0>64){o=0;Ia=b;return o|0}c[l>>2]=3117736;c[l+4>>2]=3120180;wt(m,92015,l)|0;l=Po(m,104706)|0;if(!l){o=1;Ia=b;return o|0}m=0;do{p=m*65|0;q=m<<3;r=n+(p+64)|0;c[k>>2]=c[3120248+(q<<2)>>2];wt(n+p|0,92028,k)|0;a[r>>0]=10;c[j>>2]=c[3120248+((q|1)<<2)>>2];wt(n+(p+8)|0,92028,j)|0;a[r>>0]=10;c[i>>2]=c[3120248+((q|2)<<2)>>2];wt(n+(p+16)|0,92028,i)|0;a[r>>0]=10;c[h>>2]=c[3120248+((q|3)<<2)>>2];wt(n+(p+24)|0,92028,h)|0;a[r>>0]=10;c[g>>2]=c[3120248+((q|4)<<2)>>2];wt(n+(p+32)|0,92028,g)|0;a[r>>0]=10;c[f>>2]=c[3120248+((q|5)<<2)>>2];wt(n+(p+40)|0,92028,f)|0;a[r>>0]=10;c[e>>2]=c[3120248+((q|6)<<2)>>2];wt(n+(p+48)|0,92028,e)|0;a[r>>0]=10;c[d>>2]=c[3120248+((q|7)<<2)>>2];wt(n+(p+56)|0,92028,d)|0;a[r>>0]=10;m=m+1|0}while((m|0)!=8);Ho(n,1,520,l)|0;Ro(l);o=0;Ia=b;return o|0}function am(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=Ia;Ia=Ia+2592|0;e=d+2584|0;f=d+2576|0;g=d+1552|0;h=d+528|0;i=d;if(!b){j=3;Ia=d;return j|0}if(!((c[780894]|0)==1&(c[780901]|0)!=0)){j=1;Ia=d;return j|0}do if(au(3119920,b)|0){if(a[3119920]|0){if(!(au(3119985,b)|0))break;if(a[3119985]|0){if(!(au(3120050,b)|0))break;if(a[3120050]|0){if(!(au(3120115,b)|0))break;if(!(a[3120115]|0))k=3120115;else{Cb(92033)|0;j=2;Ia=d;return j|0}}else k=3120050}else k=3119985}else k=3119920;ku(k,b)|0}while(0);k=a[b>>0]|0;if(k<<24>>24?(l=bu(b)|0,l>>>0<=64):0){a:do if(l|0){m=k;n=0;b:while(1){o=m<<24>>24;if(!((o+-97|0)>>>0<26|(o+-48|0)>>>0<10))switch(o|0){case 45:case 95:break;default:break b}o=n+1|0;if(o>>>0>=l>>>0)break a;m=a[b+o>>0]|0;n=o}Cb(92076)|0;j=2;Ia=d;return j|0}while(0);if(au(3120180,b)|0){$l()|0;Rs(3120180,b)|0}Wv(3120248,0,256)|0;c[f>>2]=3117736;c[f+4>>2]=3120180;wt(g,92015,f)|0;f=Po(g,96074)|0;if(!f){j=1;Ia=d;return j|0}wq(h,0,1024);Fo(h,1,1024,f)|0;Ro(f);wq(i,0,513);f=0;g=0;while(1){b=a[h+f>>0]|0;if((b+-48&255)<10)p=29;else switch(b<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:{p=29;break}default:q=g}if((p|0)==29){p=0;a[i+g>>0]=b;q=g+1|0}f=f+1|0;if(!(f>>>0<1024&(q|0)<512))break;else g=q}q=0;do{c[e>>2]=3120248+(q<<2);Su(i+(q<<3)|0,92028,e)|0;q=q+1|0}while((q|0)!=64);j=0;Ia=d;return j|0}Cb(92059)|0;j=2;Ia=d;return j|0}function bm(a){a=a|0;var b=0,d=0;b=Ia;Ia=Ia+1024|0;d=b;sc(a,d);if((Ts(a,92099)|0)==0?(Ts(a,92104)|0)==0:0){Lg(92109);Ia=b;return}if((c[780896]|0)==5){cm(d,c[798588]|0);Ia=b;return}else{cm(d,-1);Ia=b;return}}function cm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=Ia;Ia=Ia+1040|0;f=e+1032|0;g=e+1024|0;h=e;i=c[798504]|0;if((d|0)==-1){j=bu(b)|0;a:do if((j|0)>0){k=j+-1|0;l=0;m=0;while(1){if((a[b+m>>0]|0)==37){if((m|0)==(k|0)){n=11;break a}o=m+1|0;if((a[b+o>>0]|0)!=100){n=11;break a}p=l+1|0;q=o}else{p=l;q=m+1|0}if((q|0)<(j|0)){l=p;m=q}else break}if((p|0)==1){r=0;s=63}else n=11}else n=11;while(0);if((n|0)==11){r=i;s=i}if((r|0)>(s|0)){Mb(h);t=32;u=0}else{v=s;w=r;n=14}}else{v=i;w=i;n=14}do if((n|0)==14){i=w;r=0;while(1){x=r+1|0;c[g>>2]=i;wt(h,b,g)|0;if(!(Ts(h,92104)|0))y=0;else{s=Po(h,104706)|0;if(!s)break;dm(s,i,d);y=s}if(Ts(h,92099)|0)em(h,i,d);if(y|0)Ro(y);if((i|0)<(v|0)){i=i+1|0;r=x}else{n=24;break}}if((n|0)==24){Mb(h);t=(r|0)==0?32:115;u=x;break}Lg(92131);Ia=e;return}while(0);c[f>>2]=u;c[f+4>>2]=t;wt(1719968,92151,f)|0;Lg(1719968);Ia=e;return}function dm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[26544]|0;f=e+16+(b*680|0)|0;g=c[e+16+(b*680|0)+8>>2]|0;e=(g|0)<1?32:g<<5;g=xq(366)|0;Wv(g|0,0,366)|0;h=(d|0)==-1;if(h)Mg(92192,b,e);else Mg(92211,d,0);or();lr(0,0);Rq();b=c[26544]|0;if(!h){fr(b,d,0);c[554964]=1;d=0;do{Jq(0,g,366);Ho(g,1,366,a)|0;d=d+1|0}while((nr()|0)!=0&d>>>0<32768);c[554964]=0;or();zq(g);Sq();return}_q(f,b);c[554964]=1;if((e|0)<=0){c[554964]=0;or();zq(g);Sq();return}b=0;do{Jq(0,g,366);Ho(g,1,366,a)|0;nr()|0;b=b+1|0}while((b|0)!=(e|0));c[554964]=0;or();zq(g);Sq();return}function em(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=(d|0)==-2;if(f){g=qr()|0;if(!g){Lg(92167);return}else h=g}else{g=Aq(1048576)|0;dm(g,d,e);h=g}g=c[h+16>>2]|0;e=Po(b,104706)|0;if(!e){Lg(92131);return}d=g+36|0;a[3460]=d;a[3461]=d>>>8;a[3462]=d>>>16;a[3463]=d>>>24;a[3496]=g;a[3497]=g>>>8;a[3498]=g>>>16;a[3499]=g>>>24;Ho(3456,1,44,e)|0;Ho(c[h+12>>2]|0,1,g,e)|0;Ro(e);Mb(b);if(f)return;Cq(h);return}function fm(a){a=a|0;em(hc(92222,a)|0,-2,-2);return}function gm(){var a=0,b=0,d=0;c[554435]=0;c[554436]=0;a=1938644;b=1938516;d=a+64|0;do{c[a>>2]=c[b>>2];a=a+4|0;b=b+4|0}while((a|0)<(d|0));return}function hm(){var a=0,b=0,d=0;if((c[554435]|0)>=13)return;a=1938516;b=1938644;d=a+64|0;do{c[a>>2]=c[b>>2];a=a+4|0;b=b+4|0}while((a|0)<(d|0));return}function im(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==27;if(b&(c[554435]|0)<13){a=1938516;d=1938644;e=a+64|0;do{c[a>>2]=c[d>>2];a=a+4|0;d=d+4|0}while((a|0)<(e|0));jm(c[742782]|0)}if(b)c[798799]=0;if((c[554435]|0)<=12)return;c[798799]=0;c[781024]=120;return}function jm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;Pn(b,0,0,127,127,1);Pn(b,4,41,123,124,6);Pn(b,0,0,127,6,7);Bo(b,92226,c[742805]|0,6,1,1,12)|0;g=c[c[742804]>>2]|0;h=c[554435]|0;i=c[((h|0)==13?g+672|0:(h|0)==12?g+700|0:g+(((h|0)%6|0)+169<<2)|0)>>2]|0;Rn(i,b,0,0,6,8,c[i>>2]|0,c[i+4>>2]|0);i=c[742805]|0;if((c[554435]|0)>12){Bo(b,92244,i,60,12,1,11)|0;Bo(b,92258,c[742805]|0,60,22,1,12)|0;Bo(b,92271,c[742805]|0,60,29,1,12)|0}else{Bo(b,92283,i,60,12,1,6)|0;Bo(b,c[3504+(c[554435]<<2)>>2]|0,c[742805]|0,60,19,1,7)|0;Bo(b,92298,c[742805]|0,60,26,1,13)|0;Bo(b,92314,c[742805]|0,60,33,1,13)|0}i=0;h=44;while(1){g=c[1938516+(i<<2)>>2]|0;j=c[3504+(i<<2)>>2]|0;if(!g){k=c[3568+(i<<2)>>2]|0;c[f>>2]=j;c[f+4>>2]=k;wt(1719968,92328,f)|0}else{k=(g|0)<255?g:255;g=Or((k|0)>0?k:0)|0;c[e>>2]=j;c[e+4>>2]=g;wt(1719968,92328,e)|0}g=a[1719968]|0;if(g<<24>>24){j=g;g=1719968;do{if((j+-65&255)<26)a[g>>0]=(j&255)+32;g=g+1|0;j=a[g>>0]|0}while(j<<24>>24!=0)}if((i|0)==(c[554435]|0)){Pn(b,7,h+-1|0,120,h+5|0,14);l=1}else l=5;Bo(b,1719968,c[742805]|0,10,h,1,l)|0;i=i+1|0;if((i|0)==13)break;else h=h+6|0}Ia=d;return}function km(){var a=0,b=0,d=0;if(!(c[554436]|0)){c[554436]=1;a=0;do{if(qo(a)|0)c[554436]=0;a=a+1|0}while((a|0)!=512);if((c[554435]|0)<=12)return;c[554436]=0;return}a=0;do{if(qo(a)|0){switch(a&2147483647|0){case 42:case 76:{b=0;break}default:b=a}d=c[554435]|0;c[1938516+(d<<2)>>2]=b;c[554436]=0;c[554435]=d+1;if((d|0)>11?no()|0:0)do oo()|0;while((no()|0)!=0)}a=a+1|0}while((a|0)!=512);return}function lm(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;i=Ia;Ia=Ia+16|0;j=i;if(e>>>0>6){Ia=i;return}if(!(ml(e,f)|0))k=(kl(e,f)|0)>128&1;else k=1;Rn(c[(c[c[742804]>>2]|0)+(k+247<<2)>>2]|0,b,0,0,g,h,7,7);a[j>>0]=(d[92551+e>>0]|0)+31;a[j+1>>0]=0;Bo(b,j,c[742805]|0,g,k+h|0,1,7)|0;Ia=i;return}function mm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;d=Ia;Ia=Ia+1056|0;e=d+1024|0;f=d+1040|0;g=d+1036|0;h=d+1032|0;i=d;cs(g,h,d+1028|0);j=c[(c[c[742804]>>2]|0)+984>>2]|0;k=j+4|0;l=(c[j>>2]|0)/2|0;m=64-l|0;n=(c[k>>2]|0)/2|0;o=64-n|0;Hk(b,63-l|0,63-n|0,l+64|0,n+64|0,1);Wn(b,m,o,l+63|0,n+63|0,7);Rn(j,b,0,0,m,o,c[j>>2]|0,c[k>>2]|0);Wv(i|0,0,1024)|0;Rs(i,92558)|0;k=i+256|0;Rs(k,92566)|0;j=i+512|0;Rs(j,92574)|0;n=i+768|0;Rs(n,92582)|0;if(!((c[484629]|c[484630]|c[484631]|c[484632]|0)==0|(c[484629]|0)==80&(c[484630]|0)==79&(c[484631]|0)==82&(c[484632]|0)==81)){Rs(i,92590)|0;l=c[484629]|0;if(l|0){p=(l|0)<255?l:255;l=Or((p|0)>0?p:0)|0;if((l|0)!=0?(bu(l)|0)==1:0){p=a[l>>0]|0;l=p<<24>>24;q=(p+-65&255)<26?l+32|0:l}else q=16;a[i>>0]=q}q=c[484630]|0;if(q|0){l=(q|0)<255?q:255;q=Or((l|0)>0?l:0)|0;if((q|0)!=0?(bu(q)|0)==1:0){l=a[q>>0]|0;q=l<<24>>24;r=(l+-65&255)<26?q+32|0:q}else r=16;a[i+2>>0]=r}r=c[484631]|0;if(r|0){q=(r|0)<255?r:255;r=Or((q|0)>0?q:0)|0;if((r|0)!=0?(bu(r)|0)==1:0){q=a[r>>0]|0;r=q<<24>>24;s=(q+-65&255)<26?r+32|0:r}else s=16;a[i+4>>0]=s}s=c[484632]|0;if(s|0){r=(s|0)<255?s:255;s=Or((r|0)>0?r:0)|0;if((s|0)!=0?(bu(s)|0)==1:0){r=a[s>>0]|0;s=r<<24>>24;t=(r+-65&255)<26?s+32|0:s}else t=16;a[i+6>>0]=t}}if(c[484633]|c[484634]|0){Rs(k,92590)|0;t=c[484633]|0;if(t|0){s=(t|0)<255?t:255;t=Or((s|0)>0?s:0)|0;if((t|0)!=0?(bu(t)|0)==1:0){s=a[t>>0]|0;t=s<<24>>24;u=(s+-65&255)<26?t+32|0:t}else u=16;a[i+256>>0]=u}u=c[484634]|0;if(u|0){t=(u|0)<255?u:255;u=Or((t|0)>0?t:0)|0;if((u|0)!=0?(bu(u)|0)==1:0){t=a[u>>0]|0;u=t<<24>>24;v=(t+-65&255)<26?u+32|0:u}else v=16;a[i+258>>0]=v}}if(c[484635]|c[484636]|c[484637]|c[484638]|0){Rs(j,92590)|0;v=c[484635]|0;if(v|0){u=(v|0)<255?v:255;v=Or((u|0)>0?u:0)|0;if((v|0)!=0?(bu(v)|0)==1:0){u=a[v>>0]|0;v=u<<24>>24;w=(u+-65&255)<26?v+32|0:v}else w=16;a[i+512>>0]=w}w=c[484636]|0;if(w|0){v=(w|0)<255?w:255;w=Or((v|0)>0?v:0)|0;if((w|0)!=0?(bu(w)|0)==1:0){v=a[w>>0]|0;w=v<<24>>24;x=(v+-65&255)<26?w+32|0:w}else x=16;a[i+514>>0]=x}x=c[484637]|0;if(x|0){w=(x|0)<255?x:255;x=Or((w|0)>0?w:0)|0;if((x|0)!=0?(bu(x)|0)==1:0){w=a[x>>0]|0;x=w<<24>>24;y=((w+-65&255)<26?x+32|0:x)&255}else y=16;a[i+516>>0]=y}y=c[484638]|0;if(y|0){x=(y|0)<255?y:255;y=Or((x|0)>0?x:0)|0;if((y|0)!=0?(bu(y)|0)==1:0){x=a[y>>0]|0;y=x<<24>>24;z=((x+-65&255)<26?y+32|0:y)&255}else z=16;a[i+518>>0]=z}}if(c[484639]|c[484640]|0){Rs(n,92590)|0;z=c[484639]|0;if(z|0){y=(z|0)<255?z:255;z=Or((y|0)>0?y:0)|0;if((z|0)!=0?(bu(z)|0)==1:0){y=a[z>>0]|0;z=y<<24>>24;A=((y+-65&255)<26?z+32|0:z)&255}else A=16;a[i+768>>0]=A}A=c[484640]|0;if(A|0){z=(A|0)<255?A:255;A=Or((z|0)>0?z:0)|0;if((A|0)!=0?(bu(A)|0)==1:0){z=a[A>>0]|0;A=z<<24>>24;B=((z+-65&255)<26?A+32|0:A)&255}else B=16;a[i+770>>0]=B}}B=c[742805]|0;Bo(b,i,B,90-((bu(i)|0)<<1)|0,34,1,13)|0;i=c[742805]|0;Bo(b,k,i,90-((bu(k)|0)<<1)|0,44,1,13)|0;k=c[742805]|0;Bo(b,j,k,90-((bu(j)|0)<<1)|0,61,1,13)|0;j=c[742805]|0;Bo(b,n,j,90-((bu(n)|0)<<1)|0,72,1,13)|0;n=m+18|0;j=o+14|0;lm(b,0,0,n,j);k=m+26|0;lm(b,1,0,k,j);i=m+34|0;lm(b,2,0,i,j);B=m+42|0;lm(b,3,0,B,j);j=o+25|0;if(!(ml(4,0)|0))C=(kl(4,0)|0)>128&1;else C=1;Rn(c[(c[c[742804]>>2]|0)+(C+247<<2)>>2]|0,b,0,0,n,j,7,7);a[f>>0]=-114;A=f+1|0;a[A>>0]=0;Bo(b,f,c[742805]|0,n,C+j|0,1,7)|0;C=m+26|0;if(!(ml(5,0)|0))D=(kl(5,0)|0)>128&1;else D=1;Rn(c[(c[c[742804]>>2]|0)+(D+247<<2)>>2]|0,b,0,0,C,j,7,7);a[f>>0]=-105;a[A>>0]=0;Bo(b,f,c[742805]|0,C,D+j|0,1,7)|0;j=o+41|0;lm(b,0,1,n,j);lm(b,1,1,k,j);lm(b,2,1,i,j);lm(b,3,1,B,j);j=o+52|0;if(!(ml(4,1)|0))E=(kl(4,1)|0)>128&1;else E=1;Rn(c[(c[c[742804]>>2]|0)+(E+247<<2)>>2]|0,b,0,0,n,j,7,7);a[f>>0]=-114;a[A>>0]=0;Bo(b,f,c[742805]|0,n,E+j|0,1,7)|0;if(ml(5,1)|0){F=1;G=c[742804]|0;H=c[G>>2]|0;I=F+247|0;J=H+(I<<2)|0;K=c[J>>2]|0;Rn(K,b,0,0,C,j,7,7);a[f>>0]=-105;a[A>>0]=0;L=c[742805]|0;M=F+j|0;Bo(b,f,L,C,M,1,7)|0;N=c[535611]|0;c[e>>2]=N;wt(1719968,92598,e)|0;O=c[742805]|0;P=m+5|0;Q=o+80|0;Bo(b,1719968,O,P,Q,1,13)|0;R=c[742804]|0;S=c[R>>2]|0;T=S+356|0;U=c[T>>2]|0;V=c[g>>2]|0;W=c[U>>2]|0;X=(W|0)/2|0;Y=V-X|0;Z=c[h>>2]|0;_=U+4|0;$=c[_>>2]|0;aa=($|0)/2|0;ba=Z-aa|0;Rn(U,b,0,0,Y,ba,W,$);Ia=d;return}F=(kl(5,1)|0)>128&1;G=c[742804]|0;H=c[G>>2]|0;I=F+247|0;J=H+(I<<2)|0;K=c[J>>2]|0;Rn(K,b,0,0,C,j,7,7);a[f>>0]=-105;a[A>>0]=0;L=c[742805]|0;M=F+j|0;Bo(b,f,L,C,M,1,7)|0;N=c[535611]|0;c[e>>2]=N;wt(1719968,92598,e)|0;O=c[742805]|0;P=m+5|0;Q=o+80|0;Bo(b,1719968,O,P,Q,1,13)|0;R=c[742804]|0;S=c[R>>2]|0;T=S+356|0;U=c[T>>2]|0;V=c[g>>2]|0;W=c[U>>2]|0;X=(W|0)/2|0;Y=V-X|0;Z=c[h>>2]|0;_=U+4|0;$=c[_>>2]|0;aa=($|0)/2|0;ba=Z-aa|0;Rn(U,b,0,0,Y,ba,W,$);Ia=d;return}function nm(b){b=b|0;var c=0,d=0,e=0,f=0;c=a[b>>0]|0;if(!(c<<24>>24))return;d=c;while(1){c=b+((bu(b)|0)+-1)|0;if((a[c>>0]|0)!=32)break;a[c>>0]=0;c=a[b>>0]|0;if(!(c<<24>>24)){e=15;break}else d=c}if((e|0)==15)return;c=d;d=b;do{if((c+-65&255)<26)a[d>>0]=(c&255)+32;d=d+1|0;c=a[d>>0]|0}while(c<<24>>24!=0);c=a[b>>0]|0;if(!(c<<24>>24))return;d=c;c=b;do{if(tb(d<<24>>24)|0){if((a[c>>0]|0)==124){f=95;e=13}}else{f=32;e=13}if((e|0)==13){e=0;a[c>>0]=f}c=c+1|0;d=a[c>>0]|0}while(d<<24>>24!=0);return}function om(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0;a=Ia;Ia=Ia+1056|0;b=a+1024|0;d=a;ds(94185,d);e=Fu(d,96789)|0;if(!e){Ia=a;return}d=c[382608]|0;if((d|0)>0){f=d;d=0;while(1){g=c[382341]|0;if((c[g+(d*696|0)+688>>2]|0)==1){h=c[g+(d*696|0)+644>>2]|0;c[b>>2]=g+(d*696|0)+388;c[b+4>>2]=g+(d*696|0)+516;c[b+8>>2]=h;c[b+12>>2]=g+(d*696|0)+132;c[b+16>>2]=g+(d*696|0)+260;c[b+20>>2]=g+(d*696|0)+4;_u(e,92813,b)|0;i=c[382608]|0}else i=f;d=d+1|0;if((d|0)>=(i|0))break;else f=i}}Lu(e)|0;Ia=a;return}function pm(){var a=0,b=0;a=Ia;Ia=Ia+1024|0;b=a;ds(94185,b);qm(1529360,b);Ia=a;return}function qm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=Ia;Ia=Ia+528|0;f=e+520|0;g=e+512|0;h=e;i=Po(d,104528)|0;if(!i){c[g>>2]=d;wt(1715360,92852,g)|0;Cn(1715360);Ia=e;return}a:do if(!(No(i)|0)){g=b+1072|0;d=b+4|0;j=h+1|0;k=0;do{if(k>>>0>=2048)break a;k=k+1|0;a[h>>0]=0;So(h,511,i)|0;do if((a[h>>0]|0)==124){Bq(c[b>>2]|0,((c[g>>2]|0)*696|0)+696|0)|0;l=c[(c[b>>2]|0)+12>>2]|0;c[d>>2]=l;m=c[g>>2]|0;c[g>>2]=m+1;n=l+(m*696|0)|0;Wv(n|0,0,696)|0;m=n+688|0;c[m>>2]=1;l=j;b:while(1){switch(a[l>>0]|0){case 0:case 124:{break b;break}default:{}}l=l+1|0}a[l>>0]=0;o=n+388|0;Rs(o,j)|0;p=l+1|0;q=p;c:while(1){switch(a[q>>0]|0){case 0:case 124:{break c;break}default:{}}q=q+1|0}a[q>>0]=0;l=n+516|0;Rs(l,p)|0;r=q+1|0;s=r;d:while(1){switch(a[s>>0]|0){case 0:case 124:{break d;break}default:{}}s=s+1|0}a[s>>0]=0;c[f>>2]=n+644;Su(r,94793,f)|0;q=s+1|0;p=q;e:while(1){switch(a[p>>0]|0){case 0:case 124:{break e;break}default:{}}p=p+1|0}a[p>>0]=0;Rs(n+132|0,q)|0;s=p+1|0;r=s;f:while(1){switch(a[r>>0]|0){case 0:case 124:{break f;break}default:{}}r=r+1|0}a[r>>0]=0;p=n+260|0;Rs(p,s)|0;q=r+1|0;t=q;g:while(1){switch(a[t>>0]|0){case 0:case 124:{break g;break}default:{}}t=t+1|0}a[t>>0]=0;Rs(n+4|0,q)|0;rm(n);r=sm(b,o,p)|0;s=(c[g>>2]|0)+-1|0;if((r|0)!=(s|0)){c[g>>2]=s;break}if((c[m>>2]|0)==1)if((a[o>>0]|0)==0?(a[l>>0]|0)==0:0){s=(Ts(p,92808)|0)==0;u=s?177:180}else u=176;else u=c[n>>2]|0;c[n>>2]=u}while(0)}while(!(No(i)|0))}while(0);Ro(i);Ia=e;return}function rm(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=b+388|0;a:do if(a[c>>0]|0)do{d=(bu(c)|0)+-1+(b+388)|0;if((a[d>>0]|0)!=32)break a;a[d>>0]=0}while((a[c>>0]|0)!=0);while(0);d=b+516|0;b:do if(a[d>>0]|0)do{e=(bu(d)|0)+-1+(b+516)|0;if((a[e>>0]|0)!=32)break b;a[e>>0]=0}while((a[d>>0]|0)!=0);while(0);e=b+260|0;c:do if(a[e>>0]|0)do{f=(bu(e)|0)+-1+(b+260)|0;if((a[f>>0]|0)!=32)break c;a[f>>0]=0}while((a[e>>0]|0)!=0);while(0);e=b+132|0;f=a[e>>0]|0;d:do if(f<<24>>24){g=f;while(1){h=(bu(e)|0)+-1+(b+132)|0;if((a[h>>0]|0)!=32)break;a[h>>0]=0;h=a[e>>0]|0;if(!(h<<24>>24))break d;else g=h}h=g;i=e;do{if((h+-65&255)<26)a[i>>0]=(h&255)+32;i=i+1|0;h=a[i>>0]|0}while(h<<24>>24!=0);h=a[e>>0]|0;if(h<<24>>24){i=h;h=e;do{if(!((i+-97&255)<26|(i+-48&255)<10))a[h>>0]=95;h=h+1|0;i=a[h>>0]|0}while(i<<24>>24!=0)}}while(0);if((bu(e)|0)>>>0>16)a[b+148>>0]=0;e=b+4|0;f=a[e>>0]|0;e:do if(f<<24>>24){i=f;while(1){h=(bu(e)|0)+-1+(b+4)|0;if((a[h>>0]|0)!=32)break;a[h>>0]=0;h=a[e>>0]|0;if(!(h<<24>>24))break e;else i=h}h=i;g=e;do{if((h+-65&255)<26)a[g>>0]=(h&255)+32;g=g+1|0;h=a[g>>0]|0}while(h<<24>>24!=0);h=a[e>>0]|0;if(h<<24>>24){g=h;h=e;do{if(tb(g<<24>>24)|0){if((a[h>>0]|0)==124){j=95;k=40}}else{j=32;k=40}if((k|0)==40){k=0;a[h>>0]=j}h=h+1|0;g=a[h>>0]|0}while(g<<24>>24!=0)}}while(0);if(!(au(c,97411)|0))a[c>>0]=0;if(au(d,97411)|0)return;a[d>>0]=0;return}function sm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=c[b+1072>>2]|0;if((f|0)<=0){g=-1;return g|0}h=c[b+4>>2]|0;b=(e|0)==0;if(!(a[d>>0]|0)){if(b){g=-1;return g|0}i=(a[e>>0]|0)==0;j=0;while(1){if(((!i?(a[h+(j*696|0)+388>>0]|0)==0:0)?(a[h+(j*696|0)+516>>0]|0)==0:0)?(au(e,h+(j*696|0)+260|0)|0)==0:0){g=j;k=18;break}j=j+1|0;if((j|0)>=(f|0)){g=-1;k=18;break}}if((k|0)==18)return g|0}j=0;while(1){i=h+(j*696|0)+388|0;if(!(au(i,d)|0)){g=j;k=18;break}if((((!b?a[e>>0]|0:0)?(a[i>>0]|0)==0:0)?(a[h+(j*696|0)+516>>0]|0)==0:0)?(au(e,h+(j*696|0)+260|0)|0)==0:0){g=j;k=18;break}j=j+1|0;if((j|0)>=(f|0)){g=-1;k=18;break}}if((k|0)==18)return g|0;return 0}function tm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+2080|0;e=d+2064|0;f=d+2056|0;g=d+2048|0;h=d+1024|0;i=d;ds(92888,i);hs(i)|0;c[g>>2]=(a|0)/1e4|0;wt(h,92892,g)|0;ds(h,i);hs(i)|0;if(!b){c[e>>2]=i;c[e+4>>2]=a;wt(1563808,92914,e)|0;Ia=d;return 1563808}else{c[f>>2]=i;c[f+4>>2]=a;wt(1563808,92900,f)|0;Ia=d;return 1563808}return 0}function um(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=Ia;Ia=Ia+1056|0;f=e+1040|0;g=e+1032|0;h=e+1024|0;i=e;j=e+1048|0;k=a[b>>0]|0;if(!(k<<24>>24)){a[1563808]=0;Ia=e;return 1563808}c[j>>2]=0;l=bu(b)|0;m=(k+-48&255)<10&1;if(l>>>0>1){k=1;n=m;while(1){o=((a[b+k>>0]|0)+-48&255)>9?0:n;p=k+1|0;if(p>>>0<l>>>0){k=p;n=o}else{q=p;r=o;break}}}else{q=1;r=m}c[j>>2]=q;if(r|0){c[j>>2]=0;c[h>>2]=j;Su(b,94793,h)|0;tm(c[j>>2]|0,d)|0;Ia=e;return 1563808}ds(92888,i);hs(i)|0;ds(92926,i);hs(i)|0;if(!d){c[f>>2]=i;c[f+4>>2]=b;wt(1563808,92951,f)|0;Ia=e;return 1563808}else{c[g>>2]=i;c[g+4>>2]=b;wt(1563808,92936,g)|0;Ia=e;return 1563808}return 0}function vm(a){a=a|0;um(a,0)|0;return 1563808}function wm(a){a=a|0;um(a,1)|0;return 1563808}function xm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e;if((bu(d)|0)>>>0<2){a[1564832]=0;Ia=e;return 1564832}else{g=c[484713]|0;c[f>>2]=b;c[f+4>>2]=g;c[f+8>>2]=d;wt(1564832,92964,f)|0;Ia=e;return 1564832}return 0}function ym(a,b){a=a|0;b=b|0;return (sm(1529360,a,b)|0)!=-1|0}function zm(b){b=b|0;var d=0,e=0,f=0;if(!b){d=0;return d|0}if(!(a[b>>0]|0)){d=0;return d|0}if(!(Ts(b,92808)|0)){e=ys(b)|0;if(!e){d=0;return d|0}f=e+45856|0;if(!(c[f>>2]|0)){d=0;return d|0}e=Sn(128,128,8)|0;Gp(c[f>>2]|0,e,0,0,0,0,128,128);d=e;return d|0}e=ap(b)|0;if(!e){d=0;return d|0}if((c[e>>2]|0)!=160){d=0;return d|0}if((c[e+4>>2]|0)!=205){d=0;return d|0}b=Sn(128,128,32)|0;f=Sn(128,128,8)|0;Gp(e,b,16,24,0,0,128,128);Qk(b,f,c[742761]|0);Tn(e)|0;Tn(b)|0;d=f;return d|0}function Am(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=Ia;Ia=Ia+16|0;e=d;c[554438]=b;c[554439]=0;c[554440]=0;if((b|0)==1){Rs(1546884,93030)|0;f=c[554439]|0;c[1546880+(f*68|0)>>2]=1;g=f+1|0;c[554439]=g;Rs(1546880+(g*68|0)+4|0,93039)|0;g=c[554439]|0;c[1546880+(g*68|0)>>2]=5;f=g+1|0;c[554439]=f;g=1546880+(f*68|0)+4|0;if(1==1)Rs(g,93047)|0;else Rs(g,93070)|0;g=c[554439]|0;c[1546880+(g*68|0)>>2]=3;f=g+1|0;c[554439]=f;g=1529360;h=c[382609]|0;do if((h|0)>=0?(c[382608]|0)>(h|0):0)if((c[(c[(c[g>>2]|0)+12>>2]|0)+(h*696|0)+688>>2]|0)==1){if((c[382608]|0)<=(h|0)){Wv(2218468,0,696)|0;i=f;break}if(a[(c[(c[g>>2]|0)+12>>2]|0)+(h*696|0)+388>>0]|0){if((c[382608]|0)>(h|0))j=(c[(c[g>>2]|0)+12>>2]|0)+(h*696|0)|0;else{Wv(2218468,0,696)|0;j=2218468}c[e>>2]=j+132;wt(1719968,93080,e)|0;Rs(1546880+((c[554439]|0)*68|0)+4|0,1719968)|0;k=c[554439]|0;c[1546880+(k*68|0)>>2]=19;l=k+1|0;c[554439]=l;Rs(1546880+(l*68|0)+4|0,93093)|0;l=c[554439]|0;c[1546880+(l*68|0)>>2]=20;k=l+1|0;c[554439]=k;Rs(1546880+(k*68|0)+4|0,93107)|0;k=c[554439]|0;c[1546880+(k*68|0)>>2]=21;l=k+1|0;c[554439]=l;Rs(1546880+(l*68|0)+4|0,93125)|0;l=c[554439]|0;c[1546880+(l*68|0)>>2]=18;k=l+1|0;c[554439]=k;i=k}else i=f}else i=f;else m=7;while(0);if((m|0)==7){Wv(2218468,0,696)|0;i=f}Rs(1546880+(i*68|0)+4|0,93148)|0;i=c[554439]|0;c[1546880+(i*68|0)>>2]=6;f=i+1|0;c[554439]=f;n=c[554438]|0;o=f}else{n=b;o=0}if((n|0)==4){Rs(1546880+(o*68|0)+4|0,93155)|0;b=c[554439]|0;c[1546880+(b*68|0)>>2]=16;f=b+1|0;c[554439]=f;Rs(1546880+(f*68|0)+4|0,93165)|0;f=c[554439]|0;c[1546880+(f*68|0)>>2]=17;b=f+1|0;c[554439]=b;Rs(1546880+(b*68|0)+4|0,93177)|0;b=c[554439]|0;c[1546880+(b*68|0)>>2]=18;f=b+1|0;c[554439]=f;Rs(1546880+(f*68|0)+4|0,93193)|0;f=c[554439]|0;c[1546880+(f*68|0)>>2]=6;b=f+1|0;c[554439]=b;p=c[554438]|0;q=b}else{p=n;q=o}if((p|0)!=5){Ia=d;return}Rs(1546880+(q*68|0)+4|0,93198)|0;q=c[554439]|0;c[1546880+(q*68|0)>>2]=32;p=q+1|0;c[554439]=p;Rs(1546880+(p*68|0)+4|0,93205)|0;p=c[554439]|0;c[1546880+(p*68|0)>>2]=33;q=p+1|0;c[554439]=q;Rs(1546880+(q*68|0)+4|0,93216)|0;q=c[554439]|0;c[1546880+(q*68|0)>>2]=34;p=q+1|0;c[554439]=p;Rs(1546880+(p*68|0)+4|0,93193)|0;p=c[554439]|0;c[1546880+(p*68|0)>>2]=6;c[554439]=p+1;Ia=d;return}function Bm(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=Ia;Ia=Ia+2064|0;d=b+2048|0;e=b+1024|0;f=b;g=1529360;h=c[382609]|0;do if((h|0)<0)Wv(2218468,0,696)|0;else{if((c[382608]|0)<=(h|0)){Wv(2218468,0,696)|0;break}if(!((c[(c[g>>2]|0)+12>>2]|0)+(h*696|0)|0)){Ia=b;return}if((c[(c[(c[g>>2]|0)+12>>2]|0)+(h*696|0)+688>>2]|0)!=1){Ia=b;return}if((c[382608]|0)>(h|0)){i=(c[(c[g>>2]|0)+12>>2]|0)+(h*696|0)+388|0;j=(c[(c[g>>2]|0)+12>>2]|0)+(h*696|0)|0}else{Wv(2218468,0,696)|0;i=2218856;j=2218468}k=Fm(i,j+260|0)|0;if(k|0){l=c[382609]|0;if((l|0)>=0?(c[382608]|0)>(l|0):0)m=(c[(c[382340]|0)+12>>2]|0)+(l*696|0)|0;else{Wv(2218468,0,696)|0;m=2218468}Vv(k|0,m|0,696)|0;l=k+652|0;c[l>>2]=Sn(128,128,8)|0;n=1529360;o=c[382609]|0;if((o|0)>=0?(c[382608]|0)>(o|0):0){if(c[(c[(c[n>>2]|0)+12>>2]|0)+(o*696|0)+652>>2]|0){if((c[382608]|0)>(o|0))p=c[(c[(c[n>>2]|0)+12>>2]|0)+(o*696|0)+652>>2]|0;else{Wv(2218468,0,696)|0;p=0}Gp(p,c[l>>2]|0,0,0,0,0,128,128)}}else Wv(2218468,0,696)|0;o=k+388|0;if(a[o>>0]|0?(ds(93009,e),c[d>>2]=e,c[d+4>>2]=o,wt(f,93021,d)|0,(Gr(f)|0)==0):0)bp(f,c[l>>2]|0)|0;Gm(k)}k=1530436;l=c[k>>2]|0;o=1530432;n=c[o>>2]|0;q=(n|0)<1?0:n+-1|0;r=(l|0)<(q|0)?l:q;c[k>>2]=(r|0)>0?r:0;if(1!=1&(n|0)>0){n=1529364;r=0;do{k=c[n>>2]|0;q=k+(r*696|0)+692|0;c[q>>2]=0;c[q>>2]=(sm(1529360,k+(r*696|0)+388|0,k+(r*696|0)+260|0)|0)!=-1&1;r=r+1|0}while((r|0)<(c[o>>2]|0))}om();Ia=b;return}while(0);Wv(2218468,0,696)|0;Ia=b;return}function Cm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=Ia;Ia=Ia+3120|0;g=f+3096|0;h=f+3088|0;i=f+3080|0;j=f+3072|0;k=f+2048|0;l=f+1024|0;m=f;if(!e){c[i>>2]=b;wt(l,93277,i)|0;ds(l,k);c[h>>2]=b;wt(l,93297,h)|0;ds(l,1941192)}else{c[j>>2]=b;wt(l,93255,j)|0;ds(l,k);a[1941192]=0}l=c[484711]|0;c[g>>2]=e;c[g+4>>2]=d;c[g+8>>2]=93381;c[g+12>>2]=101;c[g+16>>2]=l;wt(m,93312,g)|0;if(c[484717]|0){Ia=f;return}Rs(1939144,m)|0;Rs(1940168,k)|0;c[484717]=1;c[484718]=Xr()|0;c[484719]=0;ms(1939144,1940168,2,3)|0;Ia=f;return}function Dm(a){a=a|0;var b=0;if(!(c[484717]|0))return;if(Gr(1940168)|0)if(Ts(1940168,92808)|0){a=ap(1940168)|0;if(!a)b=3;else{Tn(a)|0;b=2}}else b=2;else b=3;c[484717]=b;return}function Em(a){a=a|0;if(!(c[484717]|0))return;c[484717]=3;return}function Fm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=sm(1529360,b,d)|0;if((e|0)!=-1){Tn(c[(c[382341]|0)+(e*696|0)+652>>2]|0)|0;f=(c[382608]|0)+-1|0;g=c[382341]|0;if((e|0)<(f|0)){h=g;i=e;while(1){e=i;i=i+1|0;Vv(h+(e*696|0)|0,h+(i*696|0)|0,696)|0;e=(c[382608]|0)+-1|0;j=c[382341]|0;if((i|0)>=(e|0)){k=j;l=e;break}else h=j}}else{k=g;l=f}Wv(k+(l*696|0)|0,0,696)|0;c[382608]=(c[382608]|0)+-1;m=0;return m|0}Bq(c[382340]|0,((c[382608]|0)*696|0)+696|0)|0;l=c[(c[382340]|0)+12>>2]|0;c[382341]=l;k=c[382608]|0;f=l;g=l;a:do if((k|0)>0){l=0;while(1){if((c[f+(l*696|0)+688>>2]|0)==1){n=l;break a}h=l+1|0;if((h|0)<(k|0))l=h;else{n=h;break}}}else n=0;while(0);if((k|0)>(n|0)){l=k+-1|0;Vv(f+(k*696|0)|0,f+(l*696|0)|0,696)|0;if((l|0)>(n|0)){f=l;do{l=c[382341]|0;h=f;f=f+-1|0;Vv(l+(h*696|0)|0,l+(f*696|0)|0,696)|0}while((f|0)>(n|0))}o=c[(c[382340]|0)+12>>2]|0;p=c[382608]|0}else{o=g;p=k}c[382608]=p+1;p=o+(n*696|0)|0;Wv(p|0,0,696)|0;c[p+688>>2]=1;Rs(p+388|0,b)|0;if(!d){m=p;return m|0}Rs(p+260|0,d)|0;if(!(a[d>>0]|0)){m=p;return m|0}b=p+4|0;if(a[b>>0]|0){m=p;return m|0}Zo(d,0,b,0);d=bu(b)|0;if(d>>>0<=3){m=p;return m|0}b=d+-3+(p+4)|0;if((a[b>>0]|0)!=46){m=p;return m|0}a[b>>0]=0;m=p;return m|0}function Gm(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=Ia;Ia=Ia+1024|0;f=e;Wv(f|0,0,1024)|0;g=c[b+652>>2]|0;if(!g){Ia=e;return}h=b+656|0;if(a[h>>0]|0){Ia=e;return}i=b+657|0;if(a[i>>0]|0){Ia=e;return}j=16384;k=c[g+12>>2]|0;while(1){g=f+(d[k>>0]<<2)|0;c[g>>2]=(c[g>>2]|0)+1;j=j+-1|0;if(!j)break;else k=k+1|0}a[h>>0]=0;a[i>>0]=1;a[b+658>>0]=2;a[b+659>>0]=3;a[b+660>>0]=4;a[b+661>>0]=5;a[b+662>>0]=6;a[b+663>>0]=7;a[b+664>>0]=8;a[b+665>>0]=9;a[b+666>>0]=10;a[b+667>>0]=11;a[b+668>>0]=12;a[b+669>>0]=13;a[b+670>>0]=14;a[b+671>>0]=15;c[f>>2]=16384;i=f+4|0;c[i>>2]=16384;h=f+24|0;c[h>>2]=16384;k=f+28|0;c[k>>2]=16384;j=f+8|0;g=f+12|0;l=f+16|0;m=f+20|0;n=f+32|0;o=f+36|0;p=f+40|0;q=f+44|0;r=f+48|0;s=f+52|0;t=f+56|0;u=f+60|0;v=0;do{w=v+128|0;if(c[f+(w<<2)>>2]|0){x=(c[i>>2]|0)<(c[f>>2]|0)&1;y=(c[j>>2]|0)<(c[f+(x<<2)>>2]|0)?2:x;x=(c[g>>2]|0)<(c[f+(y<<2)>>2]|0)?3:y;y=(c[l>>2]|0)<(c[f+(x<<2)>>2]|0)?4:x;x=(c[m>>2]|0)<(c[f+(y<<2)>>2]|0)?5:y;y=(c[h>>2]|0)<(c[f+(x<<2)>>2]|0)?6:x;x=(c[k>>2]|0)<(c[f+(y<<2)>>2]|0)?7:y;y=(c[n>>2]|0)<(c[f+(x<<2)>>2]|0)?8:x;x=(c[o>>2]|0)<(c[f+(y<<2)>>2]|0)?9:y;y=(c[p>>2]|0)<(c[f+(x<<2)>>2]|0)?10:x;x=(c[q>>2]|0)<(c[f+(y<<2)>>2]|0)?11:y;y=(c[r>>2]|0)<(c[f+(x<<2)>>2]|0)?12:x;x=(c[s>>2]|0)<(c[f+(y<<2)>>2]|0)?13:y;y=(c[t>>2]|0)<(c[f+(x<<2)>>2]|0)?14:x;x=(c[f+(v<<2)>>2]|0)==0?v:(c[u>>2]|0)<(c[f+(y<<2)>>2]|0)?15:y;c[f+(x<<2)>>2]=16384;a[b+672+v>>0]=x;a[b+656+x>>0]=w}v=v+1|0}while((v|0)!=16);Ia=e;return}function Hm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=Ia;Ia=Ia+1872|0;f=e+1048|0;g=e+1040|0;h=e+1032|0;i=e+1024|0;j=e+1056|0;k=e;l=(au(3116712,93432)|0)==0;m=b+1080|0;c[m>>2]=0;if(l|(bu(3116712)|0)!=0){n=b+1072|0;Bq(c[b>>2]|0,((c[n>>2]|0)*696|0)+696|0)|0;o=c[(c[b>>2]|0)+12>>2]|0;p=b+4|0;c[p>>2]=o;q=c[n>>2]|0;c[n>>2]=q+1;r=o+(q*696|0)|0;Wv(r+4|0,0,692)|0;c[r>>2]=185;a[r+388>>0]=0;Rs(r+4|0,96845)|0;c[r+652>>2]=0;c[r+688>>2]=2;Bq(c[b>>2]|0,((c[n>>2]|0)*696|0)+696|0)|0;r=c[(c[b>>2]|0)+12>>2]|0;c[p>>2]=r;p=c[n>>2]|0;c[n>>2]=p+1;n=r+(p*696|0)|0;Wv(n+4|0,0,692)|0;c[n>>2]=178;a[n+388>>0]=0;Rs(n+4|0,93441)|0;s=7;t=n}else{c[m>>2]=1;m=b+1072|0;Bq(c[b>>2]|0,((c[m>>2]|0)*696|0)+696|0)|0;n=c[(c[b>>2]|0)+12>>2]|0;c[b+4>>2]=n;p=c[m>>2]|0;c[m>>2]=p+1;m=n+(p*696|0)|0;Wv(m+4|0,0,692)|0;c[m>>2]=178;a[m+388>>0]=0;Rs(m+4|0,93451)|0;s=2;t=m}c[t+652>>2]=0;c[t+688>>2]=s;c[i>>2]=3115688;c[i+4>>2]=d;wt(k,104363,i)|0;if(l){c[h>>2]=3115688;c[h+4>>2]=d;wt(k,104363,h)|0;ds(92926,k)}if(!(Dr(k,97321,j,-1)|0)){h=j+256|0;d=j+512|0;i=j+516|0;s=b+1072|0;t=b+4|0;m=j+520|0;if(l){do do if((a[h>>0]|0)!=46){if(!(Ts(h,93459)|0)){if(!((c[d>>2]&16384|0)!=0&(c[i>>2]|0)>64))break}else if((c[i>>2]|0)<=64)break;Bq(c[b>>2]|0,((c[s>>2]|0)*696|0)+696|0)|0;p=c[(c[b>>2]|0)+12>>2]|0;c[t>>2]=p;n=c[s>>2]|0;c[s>>2]=n+1;r=p+(n*696|0)|0;Wv(r|0,0,696)|0;c[g>>2]=3116712;c[g+4>>2]=h;wt(k,104363,g)|0;n=r+260|0;kv(n,k,128)|0;c[r+652>>2]=0;p=r+688|0;c[p>>2]=1;q=r+388|0;a[q>>0]=0;c[r+648>>2]=c[m>>2];kv(q,h,(bu(h)|0)+-7|0)|0;if(!(c[d>>2]&16384))u=r+4|0;else{c[r>>2]=181;q=r+4|0;Rs(q,h)|0;c[p>>2]=2;u=q}if(((a[u>>0]|0)==0?(Zo(n,0,u,0),n=bu(u)|0,n>>>0>3):0)?(q=n+-3+(r+4)|0,(a[q>>0]|0)==46):0)a[q>>0]=0}while(0);while(!(Er(j)|0));v=t;w=s}else{do do if((a[h>>0]|0)!=46){if(!(Ts(h,93459)|0)){if(!((c[d>>2]&16384|0)!=0&(c[i>>2]|0)>64))break}else if((c[i>>2]|0)<=64)break;Bq(c[b>>2]|0,((c[s>>2]|0)*696|0)+696|0)|0;u=c[(c[b>>2]|0)+12>>2]|0;c[t>>2]=u;g=c[s>>2]|0;c[s>>2]=g+1;q=u+(g*696|0)|0;Wv(q|0,0,696)|0;c[f>>2]=3116712;c[f+4>>2]=h;wt(k,104363,f)|0;g=q+260|0;kv(g,k,128)|0;c[q+652>>2]=0;u=q+688|0;c[u>>2]=1;a[q+388>>0]=0;c[q+648>>2]=c[m>>2];if(!(c[d>>2]&16384))x=q+4|0;else{c[q>>2]=181;r=q+4|0;Rs(r,h)|0;c[u>>2]=2;x=r}if(((a[x>>0]|0)==0?(Zo(g,0,x,0),g=bu(x)|0,g>>>0>3):0)?(r=g+-3+(q+4)|0,(a[r>>0]|0)==46):0)a[r>>0]=0}while(0);while(!(Er(j)|0));v=t;w=s}}else{v=b+4|0;w=b+1072|0}s=c[v>>2]|0;t=c[w>>2]|0;if(l)cu(s,t,696,2);else cu(s,t,696,3);if((b|0)==1529360){Ia=e;return}if((c[w>>2]|0)<=0){Ia=e;return}b=0;do{t=c[v>>2]|0;s=t+(b*696|0)+692|0;c[s>>2]=0;c[s>>2]=(sm(1529360,t+(b*696|0)+388|0,t+(b*696|0)+260|0)|0)!=-1&1;b=b+1|0}while((b|0)<(c[w>>2]|0));Ia=e;return}function Im(a){a=a|0;var b=0,d=0;b=Mp(a)|0;if(!b)return 0;if((bu(Lp(b,93404,0)|0)|0)>>>0<2){Kp(b);return 0}a=c[382609]|0;if((a|0)>=0?(c[382608]|0)>(a|0):0)d=(c[(c[382340]|0)+12>>2]|0)+(a*696|0)|0;else{Wv(2218468,0,696)|0;d=2218468}Km(d,b);om();Kp(b);return 0}function Jm(b){b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d;if(b|0?(bu(b)|0)>>>0>=2:0){if((bu(b)|0)>>>0<2)a[1564832]=0;else{f=c[484713]|0;c[e>>2]=3196396;c[e+4>>2]=f;c[e+8>>2]=b;wt(1564832,92964,e)|0}um(b,0)|0;if(c[484717]|0){Ia=d;return}Rs(1939144,1564832)|0;Rs(1940168,1563808)|0;c[484717]=1;c[484718]=Xr()|0;c[484719]=0;ms(1939144,1940168,2,3)|0;Ia=d;return}c[484717]=0;fb(93388,1500);c[780903]=0;Ia=d;return}function Km(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Ia;Ia=Ia+16|0;e=d;if(!((a|0)!=0&(b|0)!=0)){Ia=d;return}if((bu(Lp(b,93404,0)|0)|0)>>>0<2){Ia=d;return}Wv(a|0,0,696)|0;Rs(a+4|0,Lp(b,93408,0)|0)|0;Rs(a+132|0,Lp(b,93414,0)|0)|0;Rs(a+388|0,Lp(b,93404,0)|0)|0;Rs(a+516|0,Lp(b,93421,0)|0)|0;f=a+644|0;c[f>>2]=0;g=Lp(b,93425,0)|0;c[e>>2]=f;Su(g,94793,e)|0;c[a+688>>2]=1;rm(a);Ia=d;return}function Lm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=b+4|0;f=(a[e>>0]|0)==91;do if(f)if((a[d+4>>0]|0)==91){g=a[b+5>>0]|0;break}else{h=-1;return h|0}else{i=a[b+5>>0]|0;if(f|i<<24>>24!=91)g=i;else{h=1;return h|0}}while(0);i=(c[b+688>>2]|0)==2;j=(c[d+688>>2]|0)==2;if(i)if(j)k=1;else{h=-1;return h|0}else if(i|j^1)k=j;else{h=1;return h|0}j=(c[d+648>>2]|0)-(c[b+648>>2]|0)|0;if(j|0){h=j;return h|0}j=d+4|0;l=au(e,j)|0;if(f){if((a[j>>0]|0)!=91){h=-1;return h|0}}else if(g<<24>>24==91){h=1;return h|0}if(i){if(!k){h=-1;return h|0}}else if(k){h=1;return h|0}h=(l|0)==0?(b>>>0<d>>>0?1:-1):l;return h|0}function Mm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b+4|0;f=d+4|0;g=au(e,f)|0;h=(a[e>>0]|0)==91;if(h){if((a[f>>0]|0)!=91){i=-1;return i|0}}else if(!(h|(a[b+5>>0]|0)!=91)){i=1;return i|0}h=(c[b+688>>2]|0)==2;f=c[d+688>>2]|0;if(h){if((f|0)!=2){i=-1;return i|0}}else if(!(h|(f|0)!=2)){i=1;return i|0}return ((g|0)==0?(b>>>0<d>>>0?1:-1):g)|0}function Nm(){return}function Om(a,b,d){a=a|0;b=b|0;d=d|0;if(c[484717]|0)return;Rs(1939144,a)|0;Rs(1940168,b)|0;c[484717]=1;c[484718]=Xr()|0;c[484719]=d;ms(1939144,1940168,2,3)|0;return}function Pm(a){a=a|0;c[484717]=0;if(a|0)fb(a,1500);c[780903]=0;return}function Qm(){return 101}function Rm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;f=Ia;Ia=Ia+48|0;g=f+24|0;h=f+16|0;i=f;j=f+36|0;k=f+32|0;l=f+28|0;m=ap(d)|0;d=b+8|0;n=(au(c[d>>2]|0,92689)|0)==0;o=n^1;p=b+1080|0;c[p>>2]=0;q=(e|0)!=0;do if(q)r=15;else{if(!m){e=b+1072|0;if((c[e>>2]|0)==0&o){s=e;r=6}else{t=1;Ia=f;return t|0}}else{if(n)break;e=b+1072|0;u=c[e>>2]|0;if((u|0)>0){v=b+4|0;w=u;u=0;while(1){x=c[(c[v>>2]|0)+(u*696|0)+652>>2]|0;if(!x)y=w;else{Tn(x)|0;y=c[e>>2]|0}u=u+1|0;if((u|0)>=(y|0)){z=v;A=e;break}else w=y}}else{s=e;r=6}}if((r|0)==6){z=b+4|0;A=s}c[A>>2]=0;Bq(c[b>>2]|0,696)|0;w=c[(c[b>>2]|0)+12>>2]|0;c[z>>2]=w;v=c[A>>2]|0;c[A>>2]=v+1;u=w+(v*696|0)|0;Wv(u+4|0,0,692)|0;c[u>>2]=178;a[u+388>>0]=0;v=u+4|0;if(!(au(c[d>>2]|0,92682)|0)){Rs(v,93463)|0;B=6}else{Rs(v,93472)|0;B=3}c[p>>2]=1;c[u+688>>2]=B;c[u+652>>2]=0;r=15}while(0);if((r|0)==15){if(!m){t=1;Ia=f;return t|0}if((q?(q=b+1072|0,B=c[q>>2]|0,(B|0)>0):0)?(p=c[b+4>>2]|0,d=B+-1|0,(c[p+(d*696|0)+688>>2]|0)==5):0){Wv(p+(d*696|0)|0,0,696)|0;c[q>>2]=(c[q>>2]|0)+-1}}if((c[m>>2]|0)==1024?(c[m+4>>2]|0)==544:0){q=m+16|0;d=b+1072|0;p=b+4|0;B=0;A=0;while(1){z=(B>>>3)*136|0;s=B<<7&896;y=(c[(c[q>>2]|0)+(z+128<<2)>>2]|0)+(s<<2)+1|0;c[l>>2]=0;c[k>>2]=0;c[j>>2]=0;Wv(1565856,0,1024)|0;n=0;do{a[1565856+n>>0]=a[y+(n<<2)>>0]|0;n=n+1|0}while((n|0)!=128);c[i>>2]=j;c[i+4>>2]=k;c[i+8>>2]=l;Su(1565856,93481,i)|0;if(!(c[j>>2]|0))C=1;else{Bq(c[b>>2]|0,((c[d>>2]|0)*696|0)+696|0)|0;n=c[(c[b>>2]|0)+12>>2]|0;c[p>>2]=n;e=c[d>>2]|0;c[d>>2]=e+1;o=n+(e*696|0)|0;Wv(o|0,0,696)|0;c[o+644>>2]=c[l>>2];e=y+(c[m>>2]<<2)|0;Wv(1565856,0,1024)|0;n=0;do{a[1565856+n>>0]=a[e+(n<<2)>>0]|0;n=n+1|0}while((n|0)!=128);n=o+4|0;kv(n,1565856,128)|0;e=y+(c[m>>2]<<3)|0;Wv(1565856,0,1024)|0;u=0;do{a[1565856+u>>0]=a[e+(u<<2)>>0]|0;u=u+1|0}while((u|0)!=128);u=o+132|0;kv(u,1565856,128)|0;e=y+((c[m>>2]|0)*12|0)|0;Wv(1565856,0,1024)|0;v=0;do{a[1565856+v>>0]=a[e+(v<<2)>>0]|0;v=v+1|0}while((v|0)!=128);v=o+388|0;kv(v,1565856,128)|0;e=y+(c[m>>2]<<4)|0;Wv(1565856,0,1024)|0;w=0;do{a[1565856+w>>0]=a[e+(w<<2)>>0]|0;w=w+1|0}while((w|0)!=128);w=o+516|0;kv(w,1565856,128)|0;if(!(a[v>>0]|0)){c[h>>2]=c[j>>2];wt(v,94793,h)|0}if(!(a[w>>0]|0)){c[g>>2]=c[k>>2];wt(w,94793,g)|0}w=a[n>>0]|0;a:do if(w<<24>>24){e=w;while(1){y=n+((bu(n)|0)+-1)|0;if((a[y>>0]|0)!=32)break;a[y>>0]=0;y=a[n>>0]|0;if(!(y<<24>>24))break a;else e=y}y=e;x=n;do{if((y+-65&255)<26)a[x>>0]=(y&255)+32;x=x+1|0;y=a[x>>0]|0}while(y<<24>>24!=0);y=a[n>>0]|0;if(y<<24>>24){x=y;y=n;do{if(tb(x<<24>>24)|0){if((a[y>>0]|0)==124){D=95;r=51}}else{D=32;r=51}if((r|0)==51){r=0;a[y>>0]=D}y=y+1|0;x=a[y>>0]|0}while(x<<24>>24!=0)}}while(0);n=a[u>>0]|0;b:do if(n<<24>>24){w=n;while(1){x=u+((bu(u)|0)+-1)|0;if((a[x>>0]|0)!=32)break;a[x>>0]=0;x=a[u>>0]|0;if(!(x<<24>>24))break b;else w=x}x=w;y=u;do{if((x+-65&255)<26)a[y>>0]=(x&255)+32;y=y+1|0;x=a[y>>0]|0}while(x<<24>>24!=0);x=a[u>>0]|0;if(x<<24>>24){y=x;x=u;do{if(!((y+-97&255)<26|(y+-48&255)<10))a[x>>0]=95;x=x+1|0;y=a[x>>0]|0}while(y<<24>>24!=0)}}while(0);if((bu(u)|0)>>>0>16)a[u+16>>0]=0;c[o+688>>2]=1;if(!(c[554441]|0))Wv(1547424,0,16384)|0;c[554441]=1;if((bu(v)|0)>>>0>=2?(um(v,0)|0,(Gr(1563808)|0)==0):0){ku(1547424+(c[554442]<<6)|0,v)|0;c[554442]=((c[554442]|0)+1|0)%256|0}n=Sn(128,128,32)|0;y=o+652|0;c[y>>2]=Sn(128,128,8)|0;Gp(m,n,s,z,0,0,128,128);Qk(n,c[y>>2]|0,c[742761]|0);Tn(n)|0;Gm(o);C=A}B=B+1|0;if((B|0)==32)break;else A=C}A=c[d>>2]|0;if((C|0)==0&(A|0)>1){Bq(c[b>>2]|0,(A*696|0)+696|0)|0;A=c[(c[b>>2]|0)+12>>2]|0;c[p>>2]=A;C=c[d>>2]|0;c[d>>2]=C+1;B=A+(C*696|0)|0;Wv(B+4|0,0,692)|0;c[B>>2]=178;a[B+388>>0]=0;Rs(B+4|0,93490)|0;C=B+652|0;c[C>>2]=0;c[C>>2]=Sn(128,128,8)|0;c[B+688>>2]=5}Tn(m)|0;c[b+1084>>2]=0;if((b|0)==1529360){t=0;Ia=f;return t|0}if((c[d>>2]|0)<=0){t=0;Ia=f;return t|0}b=0;do{B=c[p>>2]|0;C=B+(b*696|0)+692|0;c[C>>2]=0;c[C>>2]=(sm(1529360,B+(b*696|0)+388|0,B+(b*696|0)+260|0)|0)!=-1&1;b=b+1|0}while((b|0)<(c[d>>2]|0));t=0;Ia=f;return t|0}Tn(m)|0;t=2;Ia=f;return t|0}function Sm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Mp(b)|0;if(!d){e=0;return e|0}um(Lp(d,93404,0)|0,0)|0;f=(bu(Lp(d,93404,0)|0)|0)>>>0<2;Kp(d);if(f|(c[798799]|0)==0){e=0;return e|0}if(Eg()|0){e=0;return e|0}f=c[382609]|0;if((f|0)>=0?(c[382608]|0)>(f|0):0){if(!(a[(c[(c[382340]|0)+12>>2]|0)+(f*696|0)+132>>0]|0))g=8}else{Wv(2218468,0,696)|0;g=8}if((g|0)==8)Im(b)|0;if(!(au(1563808,3118768)|0)){e=0;return e|0}b=bu(1563808)|0;g=1563808+b|0;a:do if((b|0)>0){f=g;while(1){if((a[f>>0]|0)==45){h=f;break a}d=f+-1|0;if(d>>>0>1563808>>>0)f=d;else{h=d;break}}}else h=g;while(0);if(tt(1563808,3118768,h-1563808|0)|0){e=0;return e|0}c[485559]=1;e=1;return e|0}function Tm(){return c[382614]|0}function Um(b){b=b|0;var d=0,e=0,f=0;d=1530460+(c[382631]|0)|0;e=a[d>>0]|0;if(!(e<<24>>24)){a[d+1>>0]=0;f=(b|0)>0?58:97;a[d>>0]=f;return}else{f=a[93502+((40-b+(e<<24>>24==58?39:e<<24>>24==45?38:e<<24>>24==95?37:e<<24>>24==57?36:e<<24>>24==56?35:e<<24>>24==55?34:e<<24>>24==54?33:e<<24>>24==53?32:e<<24>>24==52?31:e<<24>>24==51?30:e<<24>>24==50?29:e<<24>>24==49?28:e<<24>>24==48?27:e<<24>>24==122?26:e<<24>>24==121?25:e<<24>>24==120?24:e<<24>>24==119?23:e<<24>>24==118?22:e<<24>>24==117?21:e<<24>>24==116?20:e<<24>>24==115?19:e<<24>>24==114?18:e<<24>>24==113?17:e<<24>>24==112?16:e<<24>>24==111?15:e<<24>>24==110?14:e<<24>>24==109?13:e<<24>>24==108?12:e<<24>>24==107?11:e<<24>>24==106?10:e<<24>>24==105?9:e<<24>>24==104?8:e<<24>>24==103?7:e<<24>>24==102?6:e<<24>>24==101?5:e<<24>>24==100?4:e<<24>>24==99?3:e<<24>>24==98?2:e<<24>>24==97?1:(e<<24>>24!=32)<<31>>31)|0)%40|0)>>0]|0;a[d>>0]=f;return}}function Vm(){Xr()|0;return}function Wm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;g=c[382614]|0;if(g|0){h=bu(1530460)|0;do if((g|0)==1){if((qo(82)|0)!=3?(qo(81)|0)!=3:0){if((c[382614]|0)!=1)break;if(!((b|0)==13|(tb(b)|0)!=0))break;c[382614]=2;break}c[382614]=3}while(0);g=(b|0)==-1;if(g){if((qo(80)|0)==3){i=bu(1530460)|0;j=1530524;k=(c[j>>2]|0)+-1|0;l=(k|0)<(i|0)?k:i;c[j>>2]=(l|0)>0?l:0}if((qo(79)|0)==3){l=bu(1530460)|0;j=1530524;i=c[j>>2]|0;if((i|0)==(l|0)&(i|0)<21){a[1530460+l>>0]=32;k=(c[j>>2]|0)+1|0;c[j>>2]=k;a[1530460+k>>0]=0;m=c[j>>2]|0;n=l+1|0}else{m=i;n=l}l=m+1|0;m=(l|0)<(n|0)?l:n;c[j>>2]=(m|0)>0?m:0}}else if((b|0)==27)c[382614]=0;a:do if((c[382614]|0)==2){if((h|0)<22&(tb(b)|0)!=0){m=1530524;j=c[m>>2]|0;if((j|0)<22){n=22;do{l=n;n=n+-1|0;a[1530460+l>>0]=a[1530460+n>>0]|0;l=c[m>>2]|0}while((n|0)>(l|0));o=l}else o=j;a[1530482]=0;a[1530460+o>>0]=b;c[m>>2]=(c[m>>2]|0)+1;c[382614]=2;break}switch(b|0){case 8:case 127:{p=26;break}default:if((qo(76)|0)==3)p=26}if((p|0)==26?(c[382631]|0)>0:0){n=(qo(76)|0)==3;l=1530524;i=c[l>>2]|0;if(n)q=i;else{n=i+-1|0;c[l>>2]=n;q=n}if((q|0)>=22)break;n=q;while(1){l=n;n=n+1|0;a[1530460+l>>0]=a[1530460+n>>0]|0;if((l|0)>=21)break a}}if((b|0)==13){c[f>>2]=1530460;wt(1529372,93232,f)|0;Cm(c[382342]|0,1529372,0);Rs(1530400,1530460)|0;c[382614]=0;nl();break}if(g){if((qo(80)|0)==3){n=bu(1530460)|0;m=1530524;j=(c[m>>2]|0)+-1|0;l=(j|0)<(n|0)?j:n;c[m>>2]=(l|0)>0?l:0}if((qo(79)|0)==3){l=bu(1530460)|0;m=1530524;n=c[m>>2]|0;if((n|0)==(l|0)&(n|0)<21){a[1530460+l>>0]=32;j=(c[m>>2]|0)+1|0;c[m>>2]=j;a[1530460+j>>0]=0;r=c[m>>2]|0;s=l+1|0}else{r=n;s=l}l=r+1|0;n=(l|0)<(s|0)?l:s;c[m>>2]=(n|0)>0?n:0}}}while(0);if((c[382614]|0)!=3){Ia=d;return}if(ml(2,0)|0)Um(-1);if(ml(3,0)|0)Um(1);if(!((ml(4,0)|0)==0?!(ml(5,0)|0):0)){c[e>>2]=1530460;wt(1529372,93232,e)|0;Cm(c[382342]|0,1529372,0);Rs(1530400,1530460)|0;c[382614]=0;nl()}if(!(ml(6,0)|0)){Ia=d;return}c[382614]=0;c[781181]=1;fb(93543,1e3);Ia=d;return}do if((b|0)==27){if((c[484717]|0)>0){c[484717]=0;fb(93553,1500);c[780903]=0;p=63;break}e=c[554438]|0;s=(e|0)==0;if((c[484608]|0)!=0&s){r=(c[554791]|0)==0&1;c[554791]=r;t=r;break}if(s){c[798799]=0;Tg();p=63;break}if((e|0)==1){c[554438]=0;p=63;break}if((e|1|0)==5){c[554438]=1;u=1}else u=e;Am(u);p=63}else p=63;while(0);if((p|0)==63)t=c[554791]|0;if(t|0){Ia=d;return}if(!((b|0)!=102|1==1))if(!(ll(9)|0)){Bm();Xr()|0;p=69}else p=69;else switch(b|0){case 8:case 127:{v=1;p=71;break}default:p=69}if((p|0)==69)if((qo(76)|0)==3?(ll(76)|0)==0:0){v=1;p=71}else p=73;if((p|0)==71){b=c[554438]|0;if((v|0)==1&(b|0)==0){Bm();Xr()|0;p=73}else w=b}if((p|0)==73)w=c[554438]|0;p=(qo(75)|0)!=0;if(!w){if(p?(ll(75)|0)==0:0){w=1530436;b=(c[w>>2]|0)+-6|0;v=c[382608]|0;t=(v|0)<1?0:v+-1|0;v=(b|0)<(t|0)?b:t;c[w>>2]=(v|0)>0?v:0}if(qo(78)|0?(ll(78)|0)==0:0){v=1530436;w=(c[v>>2]|0)+6|0;t=c[382608]|0;b=(t|0)<1?0:t+-1|0;t=(w|0)<(b|0)?w:b;c[v>>2]=(t|0)>0?t:0}if(qo(74)|0?(ll(74)|0)==0:0)c[382609]=0;if(!(qo(77)|0)){Ia=d;return}if(ll(77)|0){Ia=d;return}t=c[382608]|0;v=t+-1|0;b=(t|0)<1?0:v;t=(v|0)<(b|0)?v:b;c[382609]=(t|0)>0?t:0;Ia=d;return}else{if(p?(ll(75)|0)==0:0){p=(c[554440]|0)+-4|0;t=(c[554439]|0)+-1|0;b=(p|0)<(t|0)?p:t;c[554440]=(b|0)>0?b:0}if(qo(78)|0?(ll(78)|0)==0:0){b=(c[554440]|0)+4|0;t=(c[554439]|0)+-1|0;p=(b|0)<(t|0)?b:t;c[554440]=(p|0)>0?p:0}if(qo(74)|0?(ll(74)|0)==0:0)c[554440]=0;if(!(qo(77)|0)){Ia=d;return}if(ll(77)|0){Ia=d;return}c[554440]=(c[554439]|0)+-1;Ia=d;return}}function Xm(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=Ia;Ia=Ia+2064|0;d=b+2048|0;e=b+1024|0;f=b;if(c[554792]|0){Ia=b;return}c[554792]=1;Wv(2217772,0,696)|0;Cn(93572);if(c[554437]|0){Ia=b;return}c[554437]=8;Wv(1528192,0,18688)|0;g=0;do{h=Aq(696)|0;i=1528192+(g*1168|0)|0;c[i>>2]=h;j=c[h+12>>2]|0;c[1528192+(g*1168|0)+4>>2]=j;Wv(j|0,0,696)|0;c[1528192+(g*1168|0)+1080>>2]=0;c[1528192+(g*1168|0)+1084>>2]=0;Rs(1528192+(g*1168|0)+1040|0,c[3632+(g<<2)>>2]|0)|0;j=1528192+(g*1168|0)+1036|0;c[j>>2]=g+187;h=c[3664+(g<<2)>>2]|0;c[1528192+(g*1168|0)+8>>2]=h;if(c[484609]|0)c[j>>2]=178;switch(g&2147483647|0){case 0:{j=1528192+(g*1168|0)+12|0;a[j>>0]=0;Rs(j,c[3696+(g<<2)>>2]|0)|0;break}case 1:{ds(94185,f);qm(i,f);j=1528192+(g*1168|0)+12|0;a[j>>0]=0;Rs(j,c[3696+(g<<2)>>2]|0)|0;Rs(j,93585)|0;break}default:{c[d>>2]=h;wt(e,93297,d)|0;ds(e,f);Rm(i,f,0)|0;i=1528192+(g*1168|0)+12|0;a[i>>0]=0;Rs(i,c[3696+(g<<2)>>2]|0)|0;if((g|0)==7)Rs(i,3196396)|0}}g=g+1|0}while((g|0)<(c[554437]|0));Ia=b;return}function Ym(){var a=0,b=0,d=0,e=0,f=0,g=0;Xm();c[485554]=0;a=c[382316]|0;if((a|0)>0){b=a;a=0;while(1){d=c[(c[382049]|0)+(a*696|0)+652>>2]|0;if(!d)e=b;else{Tn(d)|0;e=c[382316]|0}a=a+1|0;if((a|0)>=(e|0))break;else b=e}}c[382316]=0;Hm(1528192,3116712);e=1530436;b=c[e>>2]|0;a=1530432;d=c[a>>2]|0;f=(d|0)<1?0:d+-1|0;g=(b|0)<(f|0)?b:f;c[e>>2]=(g|0)>0?g:0;if(!(1!=1&(d|0)>0)){Xr()|0;c[554791]=0;return}d=1529364;g=0;do{e=c[d>>2]|0;f=e+(g*696|0)+692|0;c[f>>2]=0;c[f>>2]=(sm(1529360,e+(g*696|0)+388|0,e+(g*696|0)+260|0)|0)!=-1&1;g=g+1|0}while((g|0)<(c[a>>2]|0));Xr()|0;c[554791]=0;return}function Zm(){return}function _m(a){a=a|0;Km(2217772,a);return}function $m(){var b=0,d=0,e=0,f=0;b=Ia;Ia=Ia+1024|0;d=b;a[1566880]=0;Zo(3118768,0,d,0);Rs(1566880,d)|0;if((a[3120504]|0)!=0&(c[780901]|0)!=0|(c[484611]|0)!=0)Rs(1566880,2217776)|0;Rs(1566880,_a()|0)|0;d=a[1566880]|0;if(!(d<<24>>24)){Rs(1566880,93616)|0;e=a[1566880]|0;if(!(e<<24>>24)){Ia=b;return 1566880}else f=e}else f=d;d=f;f=1566880;do{a:do if(!((d+-48&255)<10|((d&-33)+-65&255)<26)){switch(d<<24>>24){case 32:case 45:case 95:{break a;break}default:{}}a[f>>0]=32}while(0);f=f+1|0;d=a[f>>0]|0}while(d<<24>>24!=0);Ia=b;return 1566880}function an(){return}function bn(){return}function cn(a,b){a=a|0;b=b|0;ma(23,a|0,b|0)|0;return}function dn(a){a=a|0;var b=0;b=la(24,a|0)|0;a=(b|0)<255?b:255;return ((a|0)>0?a:0)|0}function en(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0;a=Ia;Ia=Ia+528|0;b=a+512|0;d=a;e=c[(c[c[742802]>>2]|0)+12>>2]|0;c[e+20>>2]=0;f=Lo(3196396,e)|0;Jg(94121,14);a:do if(93768){e=3728;g=0;while(1){h=c[(c[f>>2]|0)+(g<<2)>>2]|0;c[b>>2]=3115688;c[b+4>>2]=94154;wt(d,104363,b)|0;hs(d)|0;lu(d,c[e>>2]|0)|0;i=Po(d,96789)|0;if(!i)break;Ho(c[h+12>>2]|0,1,c[h+16>>2]|0,i)|0;Ro(i);Lg(c[e>>2]|0);g=g+1|0;e=3728+(g<<2)|0;if(!(c[e>>2]|0))break a}Jg(94161,8);Ia=a;return}while(0);jo(f);Ia=a;return}function fn(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=Ia;Ia=Ia+1040|0;b=a+1024|0;d=a;ds(94185,d);e=c[(c[c[742802]>>2]|0)+24>>2]|0;c[e+20>>2]=0;f=Lo(3196396,e)|0;a:do if(93881){e=93881;g=1;while(1){h=c[(c[f>>2]|0)+(g<<2)>>2]|0;Rs(d,vm(e)|0)|0;i=Po(d,104706)|0;if(!i)break;j=h+12|0;k=h+16|0;Ho(c[j>>2]|0,1,c[k>>2]|0,i)|0;Ro(i);Lg(c[3872+(g<<2)>>2]|0);c[b>>2]=3115688;c[b+4>>2]=94200;wt(d,104363,b)|0;hs(d)|0;lu(d,c[3840+(g<<2)>>2]|0)|0;i=Po(d,104706)|0;Ho(c[j>>2]|0,1,c[k>>2]|0,i)|0;Ro(i);g=g+1|0;e=c[3792+(g<<2)>>2]|0;if(!e)break a}Jg(94161,8);Ia=a;return}while(0);jo(f);Ia=a;return}function gn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=a+4|0;e=Aq((B(c[a>>2]<<1,c[d>>2]|0)|0)+1024|0)|0;Ho(c[a+12>>2]|0,1,B(c[d>>2]|0,c[a>>2]|0)|0,e)|0;d=c[26544]|0;if((c[d+12>>2]|0)==(a|0)){Go(1,e);f=c[c[766827]>>2]|0;if(!f)Go(0,e);else{Go(c[f>>2]|0,e);g=f+4|0;Go(c[g>>2]|0,e);Ho(c[f+12>>2]|0,1,B(c[g>>2]|0,c[f>>2]|0)|0,e)|0}f=c[(c[766827]|0)+4>>2]|0;if(!f)Go(0,e);else{Go(c[f>>2]|0,e);g=f+4|0;Go(c[g>>2]|0,e);Ho(c[f+12>>2]|0,1,B(c[g>>2]|0,c[f>>2]|0)|0,e)|0}Go(c[(c[766827]|0)+8>>2]|0,e);Go(c[(c[766827]|0)+12>>2]|0,e);Go(c[798499]|0,e);Go(c[798500]|0,e);Go(c[798489]|0,e);Go(c[798490]|0,e);Go(c[798487]|0,e);Go(c[798496]|0,e);h=c[26544]|0}else h=d;if((c[h+4>>2]|0)!=(a|0)){i=c[798499]|0;Go(i,e);j=c[798500]|0;Go(j,e);Go(b,e);return e|0}Go(0,e);Ho((c[26544]|0)+44832|0,1,256,e)|0;a=c[c[766828]>>2]|0;Ho(c[a+12>>2]|0,1,B(c[a+4>>2]|0,c[a>>2]|0)|0,e)|0;Go(c[798472]|0,e);Go(c[798491]|0,e);Go(c[798492]|0,e);Go(c[798473]|0,e);Go(c[798474]|0,e);Go(c[798486]|0,e);Go(c[798471]|0,e);Go(c[798497]|0,e);i=c[798499]|0;Go(i,e);j=c[798500]|0;Go(j,e);Go(b,e);return e|0}function hn(b,c){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,n=0,o=0,p=0;a[c>>0]=0;d=vq(262144)|0;a:do if(a[b>>0]|0){e=1;f=b;g=1;while(1){a[d>>0]=0;if(a[f>>0]|0){if(!e)h=rh(f)|0;else h=sh(f)|0;i=th()|0;j=h-f|0;Vv(d|0,f|0,j|0)|0;a[d+j>>0]=0;if((i|1|0)!=-999&(a[h>>0]|0)!=0){i=h;k=j;while(1){j=rh(i)|0;l=th()|0;m=j-i|0;Vv(d+k|0,i|0,m|0)|0;k=m+k|0;a[d+k>>0]=0;if(!((l|1|0)!=-999&(a[j>>0]|0)!=0)){n=0;o=j;break}else i=j}}else{n=0;o=h}}else{n=e;o=f}i=d;b:while(1){switch(a[i>>0]|0){case 32:case 9:break;default:break b}i=i+1|0}if(!(ut(i,94207,9)|0))break;lu(c,d)|0;k=(a[o>>0]|0)!=0;if(g>>>0<65536&k){e=n;f=o;g=g+(k&1)|0}else break a}Jg(94217,6);zq(d);p=1;return p|0}while(0);zq(d);p=0;return p|0}function jn(){return 0}function kn(a){a=a|0;return 0}function ln(a){a=a|0;return 0}function mn(a){a=a|0;return 0}function nn(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=c[555247]|0;h=(g|0)<256?g:256;g=(h|0)>0?h:0;h=c[554800]|0;i=c[554801]|0;if(!((h|0)!=0&(i|0)!=0&(c[554964]|0)==0))return;j=(f|0)>0;if(!j)return;k=c[554802]|0;if(!(a[3152374]&32)){l=h;m=k;n=0;o=c[554803]|0;while(1){do if(!m)if((l|0)>0){p=c[554799]|0;q=d[i+p>>0]|0;c[8731]=q;c[554799]=p+1&2047;p=l+-1|0;c[554800]=p;r=q;s=p;break}else{c[8731]=128;r=128;s=l;break}else{r=c[8731]|0;s=l}while(0);m=m+1&3;p=o;o=B(r+-128|0,g)|0;b[1567904+(n<<1)>>1]=(p+o|0)/2|0;n=n+1|0;if((n|0)==(f|0))break;else l=s}c[554803]=o;t=m}else{m=h;h=k;k=0;while(1){do if(!h)if((m|0)>0){o=c[554799]|0;s=d[i+o>>0]|0;c[8731]=s;c[554799]=o+1&2047;o=m+-1|0;c[554800]=o;u=s;v=o;break}else{c[8731]=128;u=128;v=m;break}else{u=c[8731]|0;v=m}while(0);o=h+1&3;b[1567904+(k<<1)>>1]=B(u+-128|0,g)|0;k=k+1|0;if((k|0)==(f|0)){t=o;break}else{m=v;h=o}}}c[554802]=t;if(!j)return;j=0;do{t=e+(j<<1)|0;h=(b[1567904+(j<<1)>>1]|0)+(b[t>>1]|0)|0;v=(h|0)<32767?h:32767;b[t>>1]=(v|0)>-32767?v:-32767;j=j+1|0}while((j|0)!=(f|0));return}function on(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if((f|0)<1){g=0;return g|0}if(!(c[554804]|0)){c[554804]=1;c[554805]=vq(524288)|0;wq(1698976,0,16384)}h=1698976+(b<<2)|0;i=c[h>>2]|0;if(!i){j=vq(48)|0;c[h>>2]=j;c[j>>2]=b;c[j+4>>2]=(b|0)/256|0;c[j+8>>2]=b&255;c[j+12>>2]=10;c[j+16>>2]=8e5;c[j+20>>2]=1050624;c[j+24>>2]=55;c[j+32>>2]=0;c[j+36>>2]=0;k=j}else k=i;do if(!(b&65280)){i=c[554806]|0;j=c[554807]|0;if((((f+7+j|0)/8|0)+i|0)>524282){fb(94234,1e3);c[554807]=0;g=0;return g|0}h=(b|0)==255;if(h|(c[8732]|0)!=(b|0)){if((j|0)>0){l=((j+7|0)/8|0)+i|0;c[554806]=l;m=c[554805]|0;n=c[554808]|0;a[m+n>>0]=j;a[m+(n+1)>>0]=j>>>8;o=m;p=l}else{o=c[554805]|0;p=i}c[8732]=b;c[554807]=0;a[o+p>>0]=b;a[o+(p+1)>>0]=b>>>8;c[554808]=p+2;l=p+4|0;c[554806]=l;q=l;r=0}else{q=i;r=j}if(h){h=c[554805]|0;a[h+q>>0]=f>>>3;a[h+(q+1)>>0]=f>>>11;c[554807]=r+16;s=f;break}h=r;j=q;i=0;l=0;while(1){m=i&7;if(!m){n=$k(2971096,c[781999]|0,(i>>>3)+e|0)|0;t=c[554807]|0;u=c[554806]|0;v=n}else{t=h;u=j;v=l}n=(c[554805]|0)+(((t|0)/8|0)+u)|0;a[n>>0]=(v>>>m&1)<<(t&7)|(d[n>>0]|0);h=t+1|0;c[554807]=h;i=i+1|0;if((i|0)==(f|0)){w=f;x=20;break}else{j=u;l=v}}}else{w=0;x=20}while(0);a:do if((x|0)==20){if((b|1|0)==257){if(!(c[554809]|0))c[554809]=vq(32768)|0;v=(f+7|0)/8|0;u=(f|0)>0;if(u){t=0;do{q=($k(2971096,c[781999]|0,t+e|0)|0)&255;y=c[554809]|0;a[y+t>>0]=q;t=t+1|0}while((t|0)<(v|0));if(u?(_k(2971096,c[781999]|0,e,d[y>>0]|0),(f|0)>8):0){t=1;do{_k(2971096,c[781999]|0,t+e|0,d[(c[554809]|0)+t>>0]|0);t=t+1|0}while((t|0)<(v|0));z=f}else z=f}else z=f}else z=w;switch(b|0){case 2048:{v=(f|0)/8|0;b:do if((f|0)>7){t=c[554794]|0;u=0;while(1){if((t|0)>=(c[554795]|0))break;_k(2971096,c[781999]|0,u+e|0,d[(c[554793]|0)+t>>0]|0);t=(c[554794]|0)+1|0;c[554794]=t;q=u+1|0;if((q|0)>=(v|0))break b;else u=q}jh(u<<5);g=u<<3;return g|0}while(0);jh(f<<2);g=f;return g|0}case 2050:{v=(f|0)/8|0;c:do if((f|0)>7){t=c[554797]|0;q=0;while(1){if((t|0)>=(c[554798]|0))break;_k(2971096,c[781999]|0,q+e|0,d[(c[554796]|0)+t>>0]|0);t=(c[554797]|0)+1|0;c[554797]=t;r=q+1|0;if((r|0)>=(v|0))break c;else q=r}jh(q<<5);g=q<<3;return g|0}while(0);jh(f<<2);g=f;return g|0}case 2056:{if(!(c[554801]|0))c[554801]=vq(2048)|0;v=(f|0)/8|0;if((f|0)<=7){s=f;break a}t=0;do{u=($k(2971096,c[781999]|0,t+e|0)|0)&255;a[(c[554801]|0)+((c[554800]|0)+(c[554799]|0)&2047)>>0]=u;c[554800]=(c[554800]|0)+1;t=t+1|0}while((t|0)!=(v|0));s=f;break}default:{s=z;break a}}}while(0);c[k+44>>2]=1;g=s;return g|0}function pn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=Ia;Ia=Ia+1056|0;f=e+1040|0;g=e+1032|0;h=e+1024|0;i=e;j=e+1044|0;if(!(c[554804]|0)){c[554804]=1;c[554805]=vq(524288)|0;wq(1698976,0,16384)}k=1698976+(b<<2)|0;l=c[k>>2]|0;if(!l){m=vq(48)|0;c[k>>2]=m;c[m>>2]=b;c[m+4>>2]=(b|0)/256|0;c[m+8>>2]=b&255;c[m+12>>2]=10;c[m+16>>2]=8e5;c[m+20>>2]=1050624;c[m+24>>2]=55;c[m+32>>2]=0;c[m+36>>2]=0;n=m}else n=l;if(c[n+44>>2]|0){Ia=e;return}l=a[d>>0]|0;if(l<<24>>24>47?(a[d+1>>0]|0)<58:0){c[h>>2]=j;Su(d,94793,h)|0;c[n+16>>2]=c[j>>2];Ia=e;return}if(l<<24>>24==32){h=d;while(1){m=h+1|0;b=a[m>>0]|0;if(b<<24>>24==32)h=m;else{o=b;p=m;break}}}else{o=l;p=d}d=n+16|0;l=n+12|0;h=n+20|0;m=n+24|0;b=n+32|0;k=n+36|0;if(!(o<<24>>24)){Ia=e;return}o=p;while(1){a[i>>0]=0;c[g>>2]=i;p=Su(o,94257,g)|0;if(!(nu(i,58)|0)){a[i>>0]=0;q=0}else{c[j>>2]=0;n=(nu(i,58)|0)+1|0;c[f>>2]=j;Su(n,94793,f)|0;a[(nu(i,58)|0)>>0]=0;q=p}p=(a[o>>0]|0)==0?o:o+1|0;while(1){r=a[p>>0]|0;if(r<<24>>24==0|(r+-97&255)>25)break;else p=p+1|0}if(r<<24>>24!=0&(r+-97&255)>25){n=p;while(1){s=n+1|0;t=a[s>>0]|0;if(t<<24>>24!=0&(t+-97&255)>25)n=s;else{u=s;break}}}else u=p;if(!(au(i,94264)|0))c[d>>2]=c[j>>2];if(!(au(i,94269)|0))c[l>>2]=c[j>>2];if(!(au(i,94273)|0))c[h>>2]=c[j>>2];if(!(au(i,94278)|0))c[m>>2]=c[j>>2];if(!(au(i,94289)|0))c[b>>2]=c[j>>2];if(!(au(i,94296)|0))c[k>>2]=c[j>>2];if(!q){v=36;break}if(!(a[u>>0]|0)){v=36;break}else o=u}if((v|0)==36){Ia=e;return}}function qn(){var a=0,b=0,d=0;c[554799]=0;c[554800]=0;c[554802]=0;c[8731]=128;if(!(c[554804]|0))return;a=0;do{b=c[1698976+(a<<2)>>2]|0;if(b|0){d=b;b=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0))}a=a+1|0}while((a|0)!=4096);c[554807]=0;wq(c[554805]|0,0,524288);if(!(c[554804]|0))return;c[554807]=0;wq(c[554805]|0,0,524288);c[8732]=-1;c[554808]=0;c[554806]=0;a=c[554809]|0;if(!a)return;wq(a,0,32768);return}function rn(){var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!(c[554804]|0))return;b=c[554807]|0;if((b|0)>0){e=(c[554806]|0)+((b+7|0)/8|0)|0;c[554806]=e;f=c[554805]|0;g=c[554808]|0;a[f+g>>0]=b;a[f+(g+1)>>0]=b>>>8;h=e}else h=c[554806]|0;if((h|0)>0){e=h;h=0;while(1){b=c[554805]|0;g=a[b+(h+1)>>0]|0;f=(g&255)<<8|(d[b+h>>0]|0);i=(d[b+(h+3)>>0]|0)<<8|(d[b+(h+2)>>0]|0);j=h+4|0;do if(!(g<<24>>24)){if((f|0)==255){k=e;l=h+6|0;break}m=(i+7|0)>>>3;if(m){cn(f,d[b+j>>0]|0);if((m|0)!=1){n=1;o=j;do{o=o+1|0;cn(f,d[(c[554805]|0)+o>>0]|0);n=n+1|0}while((n|0)!=(m|0))}k=c[554806]|0;l=j+m|0}else{k=e;l=j}}else{k=e;l=j}while(0);if((l|0)<(k|0)){e=k;h=l}else break}if(!(c[554804]|0))return}c[554807]=0;wq(c[554805]|0,0,524288);c[8732]=-1;c[554808]=0;c[554806]=0;l=c[554809]|0;if(!l)return;wq(l,0,32768);return}function sn(a){a=a|0;var b=0,d=0,e=0;zq(c[554793]|0);b=a+16|0;d=c[b>>2]|0;c[554795]=d;e=vq(d)|0;c[554793]=e;Vv(e|0,c[a+12>>2]|0,c[b>>2]|0)|0;c[554794]=0;return}function tn(b){b=b|0;var d=0,e=0,f=0;zq(c[554796]|0);d=b+4|0;e=(B(c[d>>2]|0,c[b>>2]|0)|0)+4|0;c[554798]=e;f=vq(e)|0;c[554796]=f;a[f>>0]=c[b>>2];a[(c[554796]|0)+1>>0]=(c[b>>2]|0)/256|0;a[(c[554796]|0)+2>>0]=c[d>>2];a[(c[554796]|0)+3>>0]=(c[d>>2]|0)/256|0;Vv((c[554796]|0)+4|0,c[b+12>>2]|0,B(c[d>>2]|0,c[b>>2]|0)|0)|0;c[554797]=0;return}function un(){return (c[554795]|0)-(c[554794]|0)|0}function vn(){return (c[554798]|0)-(c[554797]|0)|0}function wn(){c[554794]=0;c[554795]=0;c[554797]=0;c[554798]=0;return}function xn(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=c[742774]|0;d=b+4|0;if((d|0)==1){e=0;do{f=e>>>5;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+2>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+10>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+18>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+26>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+34>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+42>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+50>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+58>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+66>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+74>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+82>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+90>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+98>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+106>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+114>>0]=g;g=(tp(4)|0)+f&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+122>>0]=g;e=e+1|0}while((e|0)!=128)}switch(b|0){case 0:{e=b;do{g=0;do{a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+g>>0]=((g+e|0)>>>3&7)+6;g=g+4|0}while(g>>>0<128);e=e+2|0}while(e>>>0<128);h=29;break}case 3:{e=0;do{g=2;do{f=(tp(4)|0)+10&255;a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+g>>0]=f;g=g+4|0}while(g>>>0<128);e=e+3|0}while(e>>>0<128);switch(b|0){case 5:{h=14;break}case 8:{h=19;break}case 11:{h=25;break}case 26:{h=26;break}case 31:{h=27;break}case 32:{h=28;break}default:h=29}break}case 5:{h=14;break}case 8:{h=19;break}case 11:{h=25;break}case 26:{h=26;break}case 31:{h=27;break}case 32:{h=28;break}default:h=29}if((h|0)==14){e=0;do{g=1;do{f=c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0;a[f+g>>0]=a[f+(g+1)>>0]|0;g=g+2|0}while(g>>>0<127);e=e+1|0}while((e|0)!=128);switch(b|0){case 8:{h=19;break}case 11:{h=25;break}case 26:{h=26;break}case 31:{h=27;break}case 32:{h=28;break}default:h=29}}if((h|0)==19){e=0;do{if(e&3|0){g=0;do{a[(c[(c[(c[742782]|0)+16>>2]|0)+(e<<2)>>2]|0)+g>>0]=0;g=g+1|0}while((g|0)!=128)}e=e+1|0}while((e|0)!=128);switch(b|0){case 11:{h=25;break}case 26:{h=26;break}case 31:{h=27;break}case 32:{h=28;break}default:h=29}}do if((h|0)==25){Nn(c[742782]|0);i=0}else if((h|0)==26){Uo();Nn(c[742782]|0);b=c[742803]|0;_q(b+16|0,b);Lg(3196396);Lg(3196396);Gp(c[(c[c[742804]>>2]|0)+8>>2]|0,c[742782]|0,0,0,1,1,40,10);c[781022]=6;i=0}else if((h|0)==27){Lg(94301);Gp(c[(c[c[742804]>>2]|0)+8>>2]|0,c[742782]|0,0,0,1,1,40,10);i=0}else if((h|0)==28){Lg(94314);i=0}else if((h|0)==29){if(!((d|0)==37&(c[555247]|0)==0)){if((d|0)==40){Lg(3196396);c[781022]=6;Lg(94347);Lg(3196396);i=0;break}b=(d|0)==60;if(!(b&(c[484608]|0)!=0)){i=b;break}c[780894]=0;c[781022]=6;Ym();c[798799]=2;i=1;break}b=c[798948]|0;if(!b){Lg(3196396);j=c[798948]|0}else j=b;if((j+3|0)>>>0>14){b=c[781024]|0;if((j|0)<20){k=b;l=(j|0)<-3?0:3}else{c[781024]=b+8;i=0;break}}else{k=c[781024]|0;l=(j|0)/4|0}b=(l|0)==1?k+2|0:k;Rn(c[(c[c[742804]>>2]|0)+1068>>2]|0,c[742782]|0,0,0,l<<3|2,(l|0)==3?b+-2|0:b,7,5);c[798948]=(c[798948]|0)+1;c[742774]=(c[742774]|0)+-1;i=0}while(0);l=(c[484543]|0)!=0;k=(c[484542]|0)!=0;if(!(l&((d|0)==90&k))){j=(d|0)==80;if(j&(c[537423]|0)!=0){m=1;h=43}else n=j}else{m=0;h=43}if((h|0)==43){c[780900]=1;n=m}if(!(l|i&k^1))c[780894]=0;if(n)hb();if((d|0)==900)Lg(94667);if((c[780894]|0)==2)return;Xm();return}function yn(a){a=a|0;Rs(2219256,a)|0;Rs(3904,a)|0;return}function zn(a){a=a|0;var b=0;if(!a)b=0;else{Rs(2219512,a)|0;b=2219512}c[554942]=b;return}function An(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=Ia;Ia=Ia+96|0;b=a+88|0;d=a+80|0;e=a+72|0;f=a+64|0;g=a+56|0;h=a+48|0;i=a+40|0;j=a+32|0;k=a+24|0;l=a+16|0;m=a+8|0;n=a;if(c[557096]|0){Ia=a;return 0}c[554810]=0;wq(2219256,0,1704);Rs(2219256,3904)|0;Rs(2219512,3904)|0;c[554942]=2219512;To();o=c[8733]|0;p=c[557097]|0;if((o|0)>0&(p|0)!=0)Bn(o,p);c[n>>2]=94377;vv(94367,n)|0;n=c[8745]|0;Nu(n)|0;c[m>>2]=94403;wt(1715360,94389,m)|0;c[l>>2]=1715360;vv(94367,l)|0;Nu(n)|0;l=c[8733]|0;m=c[557097]|0;if((l|0)>0&(m|0)!=0)Bn(l,m);if(!0){c[k>>2]=94414;vv(94367,k)|0;Nu(n)|0;Kr()|0;c[j>>2]=94432;vv(94367,j)|0;Nu(n)|0;Xr()|0;c[i>>2]=94450;vv(94367,i)|0;Nu(n)|0;to();c[h>>2]=94465;vv(94367,h)|0;Nu(n)|0;ro();c[g>>2]=94481;vv(94367,g)|0;Nu(n)|0;zo();c[f>>2]=94497;vv(94367,f)|0;Nu(n)|0;vr()|0;c[e>>2]=94514;vv(94367,e)|0;Nu(n)|0;mo();c[d>>2]=94531;vv(94367,d)|0;Nu(n)|0}sp(0);c[555282]=(c[555282]|0)+1;c[b>>2]=94551;vv(94367,b)|0;Nu(n)|0;c[557096]=1;Ia=a;return 0}function Bn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;e=Ia;Ia=Ia+32|0;f=e+8|0;g=e;h=e+24|0;if((b|0)<=1){Ia=e;return}i=1;j=0;a:while(1){k=d+(i<<2)|0;l=c[k>>2]|0;b:do switch(a[l>>0]|0){case 62:case 124:case 38:{m=41;break a;break}case 45:{n=l+1|0;o=(ut(n,94556,5)|0)==0;p=(ut(n,94562,6)|0)==0;q=(ut(n,96589,8)|0)==0;r=(ut(n,96475,8)|0)==0;s=(ut(n,94569,8)|0)==0;t=(ut(n,94578,8)|0)==0;u=(ut(n,96611,9)|0)==0;v=(ut(n,96696,17)|0)==0;w=(ut(n,96488,19)|0)==0;x=(ut(n,96528,12)|0)==0;y=(ut(n,96541,12)|0)==0;z=(ut(n,94587,5)|0)==0;A=(ut(n,94593,5)|0)==0;B=(ut(n,96554,15)|0)==0;C=(ut(n,94599,13)|0)==0|(ut(n,94613,16)|0)==0;D=(ut(n,94630,4)|0)==0;E=(ut(n,94635,7)|0)==0;F=(ut(n,94643,13)|0)==0;G=(ut(n,94657,9)|0)==0;H=(ut(n,94667,7)|0)==0;if(!(ut(n,94675,8)|0)){c[555284]=1;I=0}else I=H?20:G?19:F?18:E?17:D?16:v?15:C?14:B?12:A?11:z?10:y?11:x?10:w?9:v?8:u?7:t?6:s?5:r?4:q?3:p?2:o?1:j;o=(ut(n,94684,11)|0)==0;if(!(ut(n,94696,11)|0)){c[555285]=1;J=0}else J=o?29:I;if((a[n>>0]|0)==120){c[555284]=1;K=0}else K=J;o=(ut(n,96508,19)|0)==0;p=(ut(n,94708,17)|0)==0;q=(ut(n,94726,16)|0)==0;r=(ut(n,94743,11)|0)==0;s=(ut(n,94755,13)|0)==0;t=(ut(n,94769,7)|0)==0;u=(ut(n,94777,15)|0)==0;L=u?28:t?27:s?26:r?25:q?24:p?23:o?22:K;break}default:{c[h>>2]=0;c[g>>2]=h;Su(l,94793,g)|0;do switch(j|0){case 1:{c[555244]=c[h>>2];L=0;break b;break}case 2:{c[555245]=c[h>>2];L=0;break b;break}case 3:{c[555263]=c[h>>2];L=0;break b;break}case 4:{c[555246]=c[h>>2];L=0;break b;break}case 5:{c[555255]=c[h>>2];L=0;break b;break}case 6:{c[555256]=c[h>>2];L=0;break b;break}case 7:{c[555254]=c[h>>2];L=0;break b;break}case 8:{c[555270]=c[h>>2];L=0;break b;break}case 9:{c[555249]=c[h>>2];L=0;break b;break}case 10:{c[555247]=c[h>>2];L=0;break b;break}case 11:{c[555248]=c[h>>2];L=0;break b;break}case 12:{c[555260]=c[h>>2];L=0;break b;break}case 14:{c[555272]=c[h>>2];L=0;break b;break}case 15:{c[555270]=c[h>>2];L=0;break b;break}case 16:{Rs(2221148,c[k>>2]|0)|0;L=0;break b;break}case 17:{Rs(2222172,c[k>>2]|0)|0;L=0;break b;break}case 18:{c[555275]=c[h>>2];L=0;break b;break}case 19:{c[555278]=0;c[555279]=0;c[555280]=4096;c[555281]=4096;o=c[k>>2]|0;c[f>>2]=2221112;c[f+4>>2]=2221116;c[f+8>>2]=2221120;c[f+12>>2]=2221124;Su(o,94796,f)|0;L=0;break b;break}case 20:{o=c[h>>2]|0;p=(o|0)<240?o:240;c[555283]=(p|0)>1?p:1;L=0;break b;break}case 21:{c[555284]=1;L=0;break b;break}case 22:{c[555250]=c[h>>2];L=0;break b;break}case 23:{c[555252]=c[h>>2];L=0;break b;break}case 24:{c[555799]=c[h>>2];L=0;break b;break}case 25:{c[555800]=c[h>>2];L=0;break b;break}case 26:{p=c[h>>2]|0;o=(p|0)<8?p:8;c[555273]=(o|0)>0?o:0;L=0;break b;break}case 27:{c[555257]=c[h>>2];L=0;break b;break}case 28:{c[555802]=c[h>>2];L=0;break b;break}case 29:{c[555286]=c[h>>2];L=0;break b;break}default:{L=0;break b}}while(0)}}while(0);i=i+1|0;if((i|0)>=(b|0)){m=41;break}else j=L}if((m|0)==41){Ia=e;return}}function Cn(a){a=a|0;var b=0,d=0;b=Ia;Ia=Ia+16|0;d=b;c[d>>2]=a;vv(94367,d)|0;Nu(c[8745]|0)|0;Ia=b;return}function Dn(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a=Ia;Ia=Ia+96|0;b=a+80|0;d=a+72|0;e=a+64|0;f=a+56|0;g=a+48|0;h=a+40|0;i=a+32|0;j=a+24|0;k=a+16|0;l=a+8|0;m=a;if(!((c[557096]|0)!=0&(c[555239]|0)==0)){Ia=a;return 0}c[557096]=0;c[m>>2]=94808;vv(94367,m)|0;m=c[8745]|0;Nu(m)|0;c[l>>2]=94820;vv(94367,l)|0;Nu(m)|0;lr(0,0);c[k>>2]=94833;vv(94367,k)|0;Nu(m)|0;Ib();c[j>>2]=94849;vv(94367,j)|0;Nu(m)|0;Xo();c[i>>2]=94867;vv(94367,i)|0;Nu(m)|0;Uq()|0;c[h>>2]=94884;vv(94367,h)|0;Nu(m)|0;wr()|0;c[g>>2]=94901;vv(94367,g)|0;Nu(m)|0;c[f>>2]=94921;vv(94367,f)|0;Nu(m)|0;if(!0){Ao();uo()}c[e>>2]=c[554810];wt(1715360,94939,e)|0;c[d>>2]=1715360;vv(94367,d)|0;Nu(m)|0;c[b>>2]=94551;vv(94367,b)|0;Nu(m)|0;m=c[554943]|0;if(m|0)Lu(m)|0;m=c[554944]|0;if(m|0)Lu(m)|0;c[554943]=0;c[554944]=0;c[557096]=0;Ia=a;return 0}function En(a){a=a|0;return}function Fn(){var a=0;a=as()|0;if(!(c[557098]|0)){c[557098]=1;vo();c[557098]=0}cs(2219248,2219252,0);gr();return a|0}function Gn(){var a=0;zr();as()|0;if(!(c[557098]|0)){c[557098]=1;vo();c[557098]=0}cs(2219248,2219252,0);gr();c[557099]=0;Hb();if(!(c[557099]|0)){sb();Br();Ar()}c[554963]=0;a=c[554979]|0;if(!a)return;if((a|0)<=(Xr()|0))return;c[554979]=0;ka(25)|0;return}function Hn(){c[557099]=1;return}function In(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=Ia;Ia=Ia+32|0;d=b+16|0;e=b+8|0;f=b;g=b+24|0;An()|0;tr(800,480,32,4)|0;c[555239]=1;Wv(2224284,0,4096)|0;b=0;h=0;while(1){if((Or(b)|0)!=0?(a[(Or(b)|0)>>0]|0)!=0:0){c[f>>2]=Or(b)|0;c[f+4>>2]=b;vv(95003,f)|0;i=h+1|0;if(!(i&3)){mv(10)|0;j=i}else j=i}else j=h;b=b+1|0;if((b|0)==256)break;else h=j}qv(104526)|0;qv(95016)|0;qv(95097)|0;qv(95178)|0;qv(95259)|0;qv(95340)|0;qv(95421)|0;qv(95097)|0;qv(95502)|0;qv(95097)|0;qv(95583)|0;qv(95097)|0;qv(95664)|0;mv(10)|0;if(c[554811]|0)ya(0);do{Pn(c[742765]|0,0,0,799,479,1118498);Co(c[742765]|0,95745,c[557113]|0,20,20);j=0;do{h=j*24|0;b=h+48|0;f=j<<5;i=h+68|0;k=h+56|0;h=0;do{l=h*24|0;m=h+f|0;c[e>>2]=m;wt(g,95794,e)|0;n=1724192+m|0;Pn(c[742765]|0,l+20|0,b,l+40|0,i,(a[n>>0]|0)==0?5591122:16777215);Bo(c[742765]|0,g,c[557113]|0,l+22|0,k,1,(a[n>>0]|0)==0?11184810:0)|0;h=h+1|0}while((h|0)!=32);j=j+1|0}while((j|0)!=16);j=0;do{if(a[1724192+j>>0]|0?(a[1725216+j>>0]|0)==0:0){h=Or(j)|0;c[d>>2]=j;c[d+4>>2]=h;vv(95799,d)|0}j=j+1|0}while((j|0)!=512);as()|0;if(!(c[557098]|0)){c[557098]=1;vo();c[557098]=0}cs(2219248,2219252,0);gr();Br()}while(!(c[554811]|0));ya(0)}function Jn(a,b){a=a|0;b=b|0;Rs(1719456,c[b>>2]|0)|0;c[8733]=a;c[557097]=b;if((a|0)>1?(au(c[b+4>>2]|0,95834)|0)==0:0)In();lb(a,b);wa(1,0,0);return 0}function Kn(){var a=0;a=xq(768)|0;Wv(a|0,0,768)|0;c[554810]=(c[554810]|0)+1;return a|0}function Ln(a){a=a|0;if(!a)return;zq(a);c[554810]=(c[554810]|0)+-1;return}function Mn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=xq((d<<2)+48|0)|0;c[e>>2]=a;c[e+4>>2]=b;c[e+8>>2]=d;c[e+40>>2]=0;c[e+32>>2]=0;c[e+24>>2]=0;c[e+28>>2]=a;c[e+36>>2]=b;c[e+44>>2]=d;f=B(b,a)|0;g=e+12|0;c[g>>2]=xq(B(f,d)|0)|0;h=e+16|0;c[h>>2]=e+48;if((d|0)<=0){i=c[554810]|0;j=i+1|0;c[554810]=j;return e|0}k=(b<<2)+52|0;if((b|0)<=0){l=0;do{m=xq(k)|0;c[m>>2]=a;c[m+4>>2]=b;c[m+36>>2]=0;c[m+28>>2]=0;c[m+32>>2]=a;c[m+40>>2]=b;c[m+8>>2]=8;c[m+20>>2]=0;c[m+12>>2]=(c[g>>2]|0)+(B(l,f)|0);c[m+16>>2]=m+52;c[(c[h>>2]|0)+(l<<2)>>2]=m;l=l+1|0}while((l|0)!=(d|0));i=c[554810]|0;j=i+1|0;c[554810]=j;return e|0}l=(b|0)==1;m=0;do{n=xq(k)|0;c[n>>2]=a;o=n+4|0;c[o>>2]=b;c[n+36>>2]=0;c[n+28>>2]=0;c[n+32>>2]=a;c[n+40>>2]=b;p=n+8|0;c[p>>2]=8;c[n+20>>2]=0;q=(c[g>>2]|0)+(B(m,f)|0)|0;r=n+12|0;c[r>>2]=q;s=n+52|0;t=n+16|0;c[t>>2]=s;c[s>>2]=q;if(!l){q=1;do{c[(c[t>>2]|0)+(q<<2)>>2]=(c[r>>2]|0)+(B(q,a)|0);q=q+1|0}while((q|0)!=(b|0))}if(2970992!=(n|0)?(wq(c[c[t>>2]>>2]|0,0,a),(c[o>>2]|0)>1):0){q=1;do{wq(c[(c[t>>2]|0)+(q<<2)>>2]|0,0,B(c[p>>2]>>3,c[n>>2]|0)|0);q=q+1|0}while((q|0)<(c[o>>2]|0))}c[(c[h>>2]|0)+(m<<2)>>2]=n;m=m+1|0}while((m|0)!=(d|0));i=c[554810]|0;j=i+1|0;c[554810]=j;return e|0}function Nn(a){a=a|0;var b=0,d=0,e=0,f=0;if(2970992==(a|0))return;b=a+4|0;if((c[b>>2]|0)<=0)return;d=a+16|0;e=a+8|0;f=0;do{wq(c[(c[d>>2]|0)+(f<<2)>>2]|0,0,B(c[e>>2]>>3,c[a>>2]|0)|0);f=f+1|0}while((f|0)<(c[b>>2]|0));return}function On(a){a=a|0;var b=0,d=0,e=0;if(!a)return 0;b=c[a+12>>2]|0;if(b|0)zq(b);b=a+8|0;if((c[b>>2]|0)>0){d=a+16|0;e=0;do{zq(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while((e|0)<(c[b>>2]|0))}zq(a);c[554810]=(c[554810]|0)+-1;return 0}function Pn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;i=(d|0)>(f|0);j=i?d:f;k=i?f:d;d=(e|0)>(g|0);f=d?e:g;i=d?g:e;e=b+8|0;g=c[e>>2]|0;if((g|0)==32){d=b+36|0;l=b+40|0;m=b+28|0;n=b+32|0;o=h&255;p=b+16|0;q=i;while(1){a:do if((2970992!=(b|0)?(c[d>>2]|0)<=(q|0):0)?(c[l>>2]|0)>(q|0):0){r=c[m>>2]|0;s=(k|0)<(r|0)?r:k;r=c[n>>2]|0;t=(j|0)<(r|0)?j:r+-1|0;switch(c[e>>2]|0){case 8:{if((s|0)>(t|0))break a;r=s;while(1){a[(c[(c[p>>2]|0)+(q<<2)>>2]|0)+r>>0]=o;if((r|0)<(t|0))r=r+1|0;else break}break}case 32:{r=1-s+t|0;if((r|0)<=0)break a;u=(c[(c[p>>2]|0)+(q<<2)>>2]|0)+(s<<2)|0;v=r;while(1){c[u>>2]=h;if((v|0)>1){u=u+4|0;v=v+-1|0}else break}break}default:break a}}while(0);if((q|0)<(f|0))q=q+1|0;else break}w=c[e>>2]|0}else w=g;if((w|0)!=8)return;w=c[b+28>>2]|0;g=(k|0)<(w|0)?w:k;k=c[b+32>>2]|0;w=c[b+36>>2]|0;e=c[b+40>>2]|0;q=(f|0)<(e|0)?f+1|0:e;e=((j|0)<(k|0)?j+1|0:k)-g|0;if((e|0)<=0)return;k=(i|0)<(w|0)?w:i;if((k|0)>=(q|0))return;i=b+16|0;b=k;do{wq((c[(c[i>>2]|0)+(b<<2)>>2]|0)+g|0,h,e);b=b+1|0}while((b|0)<(q|0));return}function Qn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[a+28>>2]=(b|0)>0?b:0;b=c[a>>2]|0;c[a+32>>2]=(b|0)>(e|0)?e:b;c[a+36>>2]=(d|0)>0?d:0;d=c[a+4>>2]|0;c[a+40>>2]=(d|0)>(f|0)?f:d;return}function Rn(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(!((a|0)!=0&(b|0)!=0))return;j=c[b+8>>2]|0;if((j|0)!=(c[a+8>>2]|0))return;k=c[a>>2]|0;if((k|0)<=(d|0))return;l=c[a+4>>2]|0;if((l|0)<=(e|0))return;m=c[b+32>>2]|0;if((m|0)<=(f|0))return;n=c[b+40>>2]|0;if((n|0)<=(g|0))return;o=(d|0)<0;p=o?d:0;q=p+h|0;h=f-p|0;p=o?0:d;d=(e|0)<0;o=d?e:0;f=o+i|0;i=g-o|0;o=d?0:e;e=c[b+28>>2]|0;d=(h|0)<(e|0);g=d?h-e|0:0;r=g+((q+p|0)>(k|0)?k-p|0:q)|0;q=d?e:h;h=p-g|0;g=c[b+36>>2]|0;p=(i|0)<(g|0);e=p?i-g|0:0;d=e+((f+o|0)>(l|0)?l-o|0:f)|0;f=p?g:i;i=o-e|0;e=(r+q|0)>(m|0)?m-q|0:r;r=(d+f|0)>(n|0)?n-f|0:d;if((e|0)<1|(r|0)<1)return;if(2970992==(b|0)){Wr(a,b,h,i,q,f,e,r,1);return}switch(j|0){case 8:{Hp(a,b,h,i,q,f,e,r);return}case 32:{Ip(a,b,h,i,q,f,e,r);return}default:return}}function Sn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((a|0)<1|(b|0)<1){e=0;return e|0}f=xq((b<<2)+52|0)|0;c[f>>2]=a;g=f+4|0;c[g>>2]=b;c[f+36>>2]=0;c[f+28>>2]=0;c[f+32>>2]=a;c[f+40>>2]=b;h=f+8|0;c[h>>2]=d;c[f+20>>2]=0;i=B(d>>3,a)|0;a=xq(B(i,b)|0)|0;d=f+12|0;c[d>>2]=a;j=f+52|0;k=f+16|0;c[k>>2]=j;c[j>>2]=a;if((b|0)!=1){a=1;do{c[(c[k>>2]|0)+(a<<2)>>2]=(c[d>>2]|0)+(B(i,a)|0);a=a+1|0}while((a|0)!=(b|0))}if(2970992!=(f|0)?(c[g>>2]|0)>0:0){b=0;do{wq(c[(c[k>>2]|0)+(b<<2)>>2]|0,0,B(c[h>>2]>>3,c[f>>2]|0)|0);b=b+1|0}while((b|0)<(c[g>>2]|0))}c[554810]=(c[554810]|0)+1;e=f;return e|0}function Tn(a){a=a|0;var b=0;if(!a)return 0;b=c[a+12>>2]|0;if(b|0)zq(b);zq(a);c[554810]=(c[554810]|0)+-1;return 0}function Un(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;if((c[b+28>>2]|0)>(d|0))return;if((c[b+36>>2]|0)>(e|0))return;if((c[b+32>>2]|0)<=(d|0))return;if((c[b+40>>2]|0)<=(e|0))return;switch(c[b+8>>2]|0){case 8:{a[(c[(c[b+16>>2]|0)+(e<<2)>>2]|0)+d>>0]=f;return}case 32:{c[(c[(c[b+16>>2]|0)+(e<<2)>>2]|0)+(d<<2)>>2]=f;return}default:return}}function Vn(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;j=c[d>>2]|0;do if((((j|0)<(c[a>>2]|0)?(k=c[e>>2]|0,l=a+4|0,(k|0)<(c[l>>2]|0)):0)?(m=b+32|0,(c[f>>2]|0)<(c[m>>2]|0)):0)?(n=b+40|0,(c[g>>2]|0)<(c[n>>2]|0)):0){if((j|0)<0){c[h>>2]=(c[h>>2]|0)+j;c[f>>2]=(c[f>>2]|0)-(c[d>>2]|0);c[d>>2]=0;o=c[e>>2]|0;p=0}else{o=k;p=j}if((o|0)<0){c[i>>2]=(c[i>>2]|0)+o;c[g>>2]=(c[g>>2]|0)-(c[e>>2]|0);c[e>>2]=0;q=c[d>>2]|0;r=0}else{q=p;r=o}k=c[a>>2]|0;if(((c[h>>2]|0)+q|0)>(k|0)){c[h>>2]=k-q;s=c[e>>2]|0}else s=r;k=c[l>>2]|0;if(((c[i>>2]|0)+s|0)>(k|0))c[i>>2]=k-s;k=c[f>>2]|0;l=b+28|0;t=c[l>>2]|0;if((k|0)<(t|0)){u=k-t|0;c[f>>2]=u;c[h>>2]=(c[h>>2]|0)+u;c[d>>2]=(c[d>>2]|0)-(c[f>>2]|0);u=c[l>>2]|0;c[f>>2]=u;v=u}else v=k;k=c[g>>2]|0;u=b+36|0;l=c[u>>2]|0;if((k|0)<(l|0)){t=k-l|0;c[g>>2]=t;c[i>>2]=(c[i>>2]|0)+t;c[e>>2]=(c[e>>2]|0)-(c[g>>2]|0);t=c[u>>2]|0;c[g>>2]=t;w=c[f>>2]|0;x=t}else{w=v;x=k}k=c[m>>2]|0;if(((c[h>>2]|0)+w|0)>(k|0)){c[h>>2]=k-w;y=c[g>>2]|0}else y=x;k=c[n>>2]|0;if(((c[i>>2]|0)+y|0)>(k|0)){z=k-y|0;break}else return}else z=0;while(0);c[i>>2]=z;return}function Wn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;i=(b|0)==0;a:do if((!(i|2970992==(b|0))?(j=(g|0)<(e|0),k=j?e:g,l=j?g:e,(c[b+28>>2]|0)<=(d|0)):0)?(c[b+32>>2]|0)>(d|0):0){j=c[b+36>>2]|0;m=(l|0)<(j|0)?j:l;l=c[b+40>>2]|0;j=(k|0)<(l|0)?k:l+-1|0;switch(c[b+8>>2]|0){case 8:{if((m|0)>(j|0))break a;l=h&255;k=b+16|0;n=m;while(1){a[(c[(c[k>>2]|0)+(n<<2)>>2]|0)+d>>0]=l;if((n|0)<(j|0))n=n+1|0;else break}break}case 32:{if((m|0)>(j|0))break a;n=c[b+16>>2]|0;l=m;while(1){c[(c[n+(l<<2)>>2]|0)+(d<<2)>>2]=h;if((l|0)<(j|0))l=l+1|0;else break}break}default:break a}}while(0);b:do if((!(i|2970992==(b|0))?(l=(g|0)<(e|0),j=l?e:g,n=l?g:e,(c[b+28>>2]|0)<=(f|0)):0)?(c[b+32>>2]|0)>(f|0):0){l=c[b+36>>2]|0;m=(n|0)<(l|0)?l:n;n=c[b+40>>2]|0;l=(j|0)<(n|0)?j:n+-1|0;switch(c[b+8>>2]|0){case 8:{if((m|0)>(l|0))break b;n=h&255;j=b+16|0;k=m;while(1){a[(c[(c[j>>2]|0)+(k<<2)>>2]|0)+f>>0]=n;if((k|0)<(l|0))k=k+1|0;else break}break}case 32:{if((m|0)>(l|0))break b;k=c[b+16>>2]|0;n=m;while(1){c[(c[k+(n<<2)>>2]|0)+(f<<2)>>2]=h;if((n|0)<(l|0))n=n+1|0;else break}break}default:break b}}while(0);c:do if((!(i|2970992==(b|0))?(n=(f|0)<(d|0),l=n?d:f,k=n?f:d,(c[b+36>>2]|0)<=(e|0)):0)?(c[b+40>>2]|0)>(e|0):0){n=c[b+28>>2]|0;m=(k|0)<(n|0)?n:k;k=c[b+32>>2]|0;n=(l|0)<(k|0)?l:k+-1|0;switch(c[b+8>>2]|0){case 8:{if((m|0)>(n|0))break c;k=h&255;l=b+16|0;j=m;while(1){a[(c[(c[l>>2]|0)+(e<<2)>>2]|0)+j>>0]=k;if((j|0)<(n|0))j=j+1|0;else break}break}case 32:{j=1-m+n|0;if((j|0)<=0)break c;k=(c[(c[b+16>>2]|0)+(e<<2)>>2]|0)+(m<<2)|0;l=j;while(1){c[k>>2]=h;if((l|0)>1){k=k+4|0;l=l+-1|0}else break}break}default:break c}}while(0);if(i|2970992==(b|0))return;i=(f|0)<(d|0);e=i?d:f;l=i?f:d;if((c[b+36>>2]|0)>(g|0))return;if((c[b+40>>2]|0)<=(g|0))return;d=c[b+28>>2]|0;f=(l|0)<(d|0)?d:l;l=c[b+32>>2]|0;d=(e|0)<(l|0)?e:l+-1|0;switch(c[b+8>>2]|0){case 8:{if((f|0)>(d|0))return;l=h&255;e=b+16|0;i=f;while(1){a[(c[(c[e>>2]|0)+(g<<2)>>2]|0)+i>>0]=l;if((i|0)<(d|0))i=i+1|0;else break}return}case 32:{i=1-f+d|0;if((i|0)<=0)return;d=(c[(c[b+16>>2]|0)+(g<<2)>>2]|0)+(f<<2)|0;f=i;while(1){c[d>>2]=h;if((f|0)>1){d=d+4|0;f=f+-1|0}else break}return}default:return}}function Xn(a){a=a|0;c[a+36>>2]=0;c[a+28>>2]=0;c[a+32>>2]=c[a>>2];c[a+40>>2]=c[a+4>>2];return}function Yn(a){a=a|0;c[484272]=c[a+28>>2];c[484276]=c[a+32>>2];c[484284]=c[a+36>>2];c[484280]=c[a+40>>2];return}function Zn(a){a=a|0;c[a+28>>2]=c[484272];c[a+32>>2]=c[484276];c[a+36>>2]=c[484284];c[a+40>>2]=c[484280];return}function _n(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;if((b|0)==0|(d|0)==0|(g|0)==0|(h|0)==0)return;j=c[b>>2]|0;if((j|0)==(g|0)?(c[b+4>>2]|0)==(h|0):0)if(!(i&1)){Gp(b,d,0,0,e,f,g,h);return}else{Rn(b,d,0,0,e,f,g,h);return}k=c[d+8>>2]|0;if((k|0)!=(c[b+8>>2]|0))return;l=(j<<16|0)/(g|0)|0;m=c[b+4>>2]|0;n=(m<<16|0)/(h|0)|0;o=c[d+36>>2]|0;p=(o|0)>(f|0);q=o-f|0;r=B(q,n)|0;s=h-(p?q:0)|0;q=p?o:f;f=(l|0)/2|0;o=(l|0)<0?f+j|0:((n|0)<0?m:0)+((n|0)/2|0)+(p?r:0)|0;r=c[d+28>>2]|0;p=(r|0)>(e|0);m=r-e|0;j=B(m,l)|0;h=(p?j:0)+f|0;f=g-(p?m:0)|0;m=p?r:e;e=(c[d+32>>2]|0)-m|0;r=(f|0)<(e|0)?f:e;e=(c[d+40>>2]|0)-q|0;f=(s|0)<(e|0)?s:e;switch(k|0){case 32:{k=f+q|0;if((f|0)<=0)return;e=c[b+16>>2]|0;s=c[d+16>>2]|0;p=(r|0)>0;if(!(i&1)){g=o;j=q;while(1){t=c[e+(g>>16<<2)>>2]|0;if(p){u=(c[s+(j<<2)>>2]|0)+(m<<2)|0;v=h;w=0;while(1){c[u>>2]=c[t+(v>>16<<2)>>2];w=w+1|0;if((w|0)>=(r|0))break;else{u=u+4|0;v=v+l|0}}}j=j+1|0;if((j|0)>=(k|0))break;else g=g+n|0}return}g=o;j=q;while(1){v=c[e+(g>>16<<2)>>2]|0;a:do if(p){u=(c[s+(j<<2)>>2]|0)+(m<<2)|0;w=h;t=0;while(1){x=c[v+(w>>16<<2)>>2]|0;y=c[u>>2]|0;z=x>>>24;switch((z&255)<<24>>24){case 0:{A=y&16777215;break}case -1:{A=x&16777215;break}default:{C=z^255;A=((((B(y>>>16&255,C)|0)+(B(x>>>16&255,z)|0)|0)>>>0)/255|0)<<16|((((B(y&255,C)|0)+(B(x&255,z)|0)|0)>>>0)/255|0)|((((B(y>>>8&255,C)|0)+(B(x>>>8&255,z)|0)|0)>>>0)/255|0)<<8}}c[u>>2]=A|y&-16777216;t=t+1|0;if((t|0)>=(r|0))break a;else{u=u+4|0;w=w+l|0}}}while(0);j=j+1|0;if((j|0)>=(k|0))break;else g=g+n|0}return}case 8:{g=f+q|0;if((f|0)<=0)return;f=b+16|0;b=d+16|0;d=(r|0)>0;if(!(i&1)){i=o;k=q;while(1){j=c[(c[f>>2]|0)+(i>>16<<2)>>2]|0;if(d){A=(c[(c[b>>2]|0)+(k<<2)>>2]|0)+m|0;s=h;p=0;while(1){a[A>>0]=a[j+(s>>16)>>0]|0;p=p+1|0;if((p|0)>=(r|0))break;else{A=A+1|0;s=s+l|0}}}k=k+1|0;if((k|0)>=(g|0))break;else i=i+n|0}return}if(!d)return;d=o;o=q;while(1){q=c[(c[f>>2]|0)+(d>>16<<2)>>2]|0;i=(c[(c[b>>2]|0)+(o<<2)>>2]|0)+m|0;k=h;s=0;while(1){A=a[q+(k>>16)>>0]|0;if(A<<24>>24)a[i>>0]=A;s=s+1|0;if((s|0)>=(r|0))break;else{i=i+1|0;k=k+l|0}}o=o+1|0;if((o|0)>=(g|0))break;else d=d+n|0}return}default:return}}function $n(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;switch(c|0){case 0:{d=a&16777215;return d|0}case 255:{d=b&16777215;return d|0}default:{e=255-c|0;d=((B(b&255,c)|0)+(B(a&255,e)|0)|0)/255|0|((((B(b>>>8&255,c)|0)+(B(a>>>8&255,e)|0)|0)/255|0)<<8|(((B(b>>>16&255,c)|0)+(B(a>>>16&255,e)|0)|0)/255|0)<<16);return d|0}}return 0}function ao(a,b,e){a=a|0;b=b|0;e=e|0;var f=0;a:do if(((((a|0)!=0?(c[a+28>>2]|0)<=(b|0):0)?(c[a+36>>2]|0)<=(e|0):0)?(c[a+32>>2]|0)>(b|0):0)?(c[a+40>>2]|0)>(e|0):0)switch(c[a+8>>2]|0){case 8:{f=d[(c[(c[a+16>>2]|0)+(e<<2)>>2]|0)+b>>0]|0;break a;break}case 32:{f=c[(c[(c[a+16>>2]|0)+(e<<2)>>2]|0)+(b<<2)>>2]|0;break a;break}default:{f=0;break a}}else f=0;while(0);return f|0}function bo(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;a:do if((f|0)!=(d|0)){i=b+28|0;j=b+36|0;k=b+32|0;l=b+40|0;m=d;n=f;o=e;p=g;while(1){if((p|0)==(o|0)){q=14;break}r=c[i>>2]|0;s=(r|0)>(m|0)&1;t=c[j>>2]|0;u=(t|0)>(o|0)?s|2:s;s=c[k>>2]|0;v=(s|0)>(m|0)?u:u|4;u=c[l>>2]|0;w=(u|0)>(o|0)?v:v|8;v=(r|0)>(n|0)&1;x=(t|0)>(p|0)?v|2:v;v=(s|0)>(n|0)?x:x|4;x=(u|0)>(p|0)?v:v|8;if(!(w|x)){q=25;break}v=(w&1|0)!=0;if(!((x&1|0)==0|v^1)){q=51;break}y=(w&2|0)!=0;if(!((x&2|0)==0|y^1)){q=51;break}z=(w&4|0)!=0;if(!((x&4|0)==0|z^1)){q=51;break}A=(w&8|0)!=0;if(!((x&8|0)==0|A^1)){q=51;break}if(!v)if(z){z=s+-1|0;v=(m-z<<16|0)/(m-n|0)|0;x=65536-v|0;w=(B(x,m)|0)+(B(v,n)|0)>>16;C=(B(x,o)|0)+(B(v,p)|0)>>16;D=(w|0)<(s|0)?w:z;E=C}else{D=m;E=o}else{C=(r-m<<16|0)/(n-m|0)|0;z=65536-C|0;w=(B(z,m)|0)+(B(C,n)|0)>>16;s=(B(z,o)|0)+(B(C,p)|0)>>16;D=(w|0)<(r|0)?r:w;E=s}if(!y)if(A){if((E|0)==(p|0)){q=51;break}A=u+-1|0;y=(E-A<<16|0)/(E-p|0)|0;s=65536-y|0;w=(B(s,D)|0)+(B(y,n)|0)>>16;C=(B(s,E)|0)+(B(y,p)|0)>>16;F=w;G=(C|0)<(u|0)?C:A}else{F=D;G=E}else{if((E|0)==(p|0)){q=51;break}A=(t-E<<16|0)/(p-E|0)|0;C=65536-A|0;u=(B(C,D)|0)+(B(A,n)|0)>>16;w=(B(C,E)|0)+(B(A,p)|0)>>16;F=u;G=(w|0)<(t|0)?t:w}if((F|0)==(n|0)){H=n;I=p;J=G;break a}else{w=p;t=n;n=F;p=G;o=w;m=t}}if((q|0)==14){if((b|0)==0|2970992==(b|0))return;t=(n|0)<(m|0);w=t?m:n;u=t?n:m;if((c[j>>2]|0)>(p|0))return;if((c[l>>2]|0)<=(p|0))return;t=c[i>>2]|0;A=(u|0)<(t|0)?t:u;u=c[k>>2]|0;t=(w|0)<(u|0)?w:u+-1|0;switch(c[b+8>>2]|0){case 8:{if((A|0)>(t|0))return;u=h&255;w=b+16|0;C=A;while(1){a[(c[(c[w>>2]|0)+(p<<2)>>2]|0)+C>>0]=u;if((C|0)<(t|0))C=C+1|0;else break}return}case 32:{C=1-A+t|0;if((C|0)<=0)return;u=(c[(c[b+16>>2]|0)+(p<<2)>>2]|0)+(A<<2)|0;w=C;while(1){c[u>>2]=h;if((w|0)>1){u=u+4|0;w=w+-1|0}else break}return}default:return}}else if((q|0)==25){w=n-m|0;u=p-o|0;A=(w|0)<0?0-w|0:w;t=(u|0)<0?0-u|0:u;C=(A|0)>(t|0)?A:t;t=(C|0)==0?1:C;C=(w<<16|0)/(t|0)|0;w=(u<<16|0)/(t|0)|0;if((t|0)<=-1)return;u=b+8|0;A=h&255;y=b+16|0;s=r;z=t;t=m<<16|32768;v=o<<16|32768;while(1){x=t>>16;K=v>>16;b:do if((((s|0)<=(x|0)?(c[j>>2]|0)<=(K|0):0)?(c[k>>2]|0)>(x|0):0)?(c[l>>2]|0)>(K|0):0)switch(c[u>>2]|0){case 8:{a[(c[(c[y>>2]|0)+(K<<2)>>2]|0)+x>>0]=A;break b;break}case 32:{c[(c[(c[y>>2]|0)+(K<<2)>>2]|0)+(x<<2)>>2]=h;break b;break}default:break b}while(0);if((z|0)<=0)break;s=c[i>>2]|0;z=z+-1|0;t=t+C|0;v=v+w|0}return}else if((q|0)==51)return}else{H=f;I=e;J=g}while(0);if((b|0)==0|2970992==(b|0))return;g=(J|0)<(I|0);e=g?I:J;f=g?J:I;if((c[b+28>>2]|0)>(H|0))return;if((c[b+32>>2]|0)<=(H|0))return;I=c[b+36>>2]|0;J=(f|0)<(I|0)?I:f;f=c[b+40>>2]|0;I=(e|0)<(f|0)?e:f+-1|0;switch(c[b+8>>2]|0){case 8:{if((J|0)>(I|0))return;f=h&255;e=b+16|0;g=J;while(1){a[(c[(c[e>>2]|0)+(g<<2)>>2]|0)+H>>0]=f;if((g|0)<(I|0))g=g+1|0;else break}return}case 32:{if((J|0)>(I|0))return;g=c[b+16>>2]|0;b=J;while(1){c[(c[g+(b<<2)>>2]|0)+(H<<2)>>2]=h;if((b|0)<(I|0))b=b+1|0;else break}return}default:return}}function co(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;if((b|0)==0|(d|0)==0|2970992==(d|0))return;m=c[b>>2]|0;if((((m|0)>(e|0)?(n=c[b+4>>2]|0,(n|0)>(f|0)):0)?(o=c[d+32>>2]|0,(o|0)>(g|0)):0)?(p=c[d+40>>2]|0,(p|0)>(h|0)):0){q=(e|0)<0;r=q?0:e;s=q?e:0;q=g-s|0;t=s+i|0;s=(f|0)<0;u=s?0:f;v=s?f:0;s=h-v|0;w=v+j|0;j=c[d+28>>2]|0;v=(q|0)<(j|0);x=v?q-j|0:0;y=v?j:q;q=x+((t+r|0)>(m|0)?m-r|0:t)|0;t=c[d+36>>2]|0;j=(s|0)<(t|0);v=j?s-t|0:0;z=j?t:s;s=v+((w+u|0)>(n|0)?n-u|0:w)|0;A=y;B=z;C=(s+z|0)>(p|0)?p-z|0:s;D=r-x|0;E=u-v|0;F=(q+y|0)>(o|0)?o-y|0:q}else{A=g;B=h;C=0;D=e;E=f;F=i}i=(l&1|0)!=0;if(i){l=m-D|0;f=l-F|0;if((((f|0)<(m|0)?(e=c[b+4>>2]|0,(E|0)<(e|0)):0)?(h=c[d+32>>2]|0,(A|0)<(h|0)):0)?(g=c[d+40>>2]|0,(B|0)<(g|0)):0){q=(f|0)<0;y=q?0:f;o=A-(q?f:0)|0;v=(E|0)<0;u=v?0:E;x=v?E:0;v=B-x|0;r=C+x|0;x=c[d+28>>2]|0;s=(o|0)<(x|0);z=s?o-x|0:0;p=s?x:o;o=z+((D|0)<0?m-y|0:q?l:F)|0;l=c[d+36>>2]|0;q=(v|0)<(l|0);m=q?v-l|0:0;x=q?l:v;v=m+((r+u|0)>(e|0)?e-u|0:r)|0;G=p;H=x;I=(v+x|0)>(g|0)?g-x|0:v;J=y-z|0;K=u-m|0;L=(o+p|0)>(h|0)?h-p|0:o}else{G=A;H=B;I=0;J=f;K=E;L=F}}else{G=A;H=B;I=C;J=D;K=E;L=F}if((L|0)<0)return;F=(I|0)>0;if((c[d+8>>2]|0)==8){if(!F)return;E=b+16|0;D=d+16|0;C=L+-1|0;B=(L|0)==0;A=k&255;if(i){f=0;do{if(!B){o=(c[(c[D>>2]|0)+(f+H<<2)>>2]|0)+G+C|0;p=(c[(c[E>>2]|0)+(f+K<<2)>>2]|0)+J|0;h=L;while(1){if(a[p>>0]|0)a[o>>0]=A;h=h+-1|0;if(!h)break;else{o=o+-1|0;p=p+1|0}}}f=f+1|0}while((f|0)!=(I|0));return}if(B)return;B=0;do{f=(c[(c[D>>2]|0)+(B+H<<2)>>2]|0)+G|0;C=(c[(c[E>>2]|0)+(B+K<<2)>>2]|0)+J|0;p=L;while(1){if(a[C>>0]|0)a[f>>0]=A;p=p+-1|0;if(!p)break;else{f=f+1|0;C=C+1|0}}B=B+1|0}while((B|0)!=(I|0));return}else{if(!F)return;F=b+16|0;b=d+16|0;d=(L<<2)+-4|0;B=(L|0)==0;if(i){i=0;do{if(!B){A=(c[(c[b>>2]|0)+(i+H<<2)>>2]|0)+(G<<2)+(d<<2)|0;E=(c[(c[F>>2]|0)+(i+K<<2)>>2]|0)+J|0;D=L;while(1){if(a[E>>0]|0)c[A>>2]=k;D=D+-1|0;if(!D)break;else{A=A+-4|0;E=E+1|0}}}i=i+1|0}while((i|0)!=(I|0));return}if(B)return;B=c[F>>2]|0;F=c[b>>2]|0;b=0;do{i=(c[F+(b+H<<2)>>2]|0)+(G<<2)|0;d=(c[B+(b+K<<2)>>2]|0)+J|0;E=L;while(1){if(a[d>>0]|0)c[i>>2]=k;E=E+-1|0;if(!E)break;else{i=i+4|0;d=d+1|0}}b=b+1|0}while((b|0)!=(I|0));return}}function eo(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0;g=c[b>>2]|0;if((g|0)!=(c[e>>2]|0))return;h=b+4|0;i=c[h>>2]|0;if((i|0)!=(c[e+4>>2]|0))return;j=b+8|0;k=c[j>>2]|0;l=e+8|0;m=c[l>>2]|0;if((k|0)==(m|0)){Gp(b,e,0,0,0,0,g,i);return}if((k|0)==8&(m|0)==32){if((i|0)<=0)return;m=b+16|0;n=e+16|0;o=i;p=g;q=0;while(1){if((p|0)>0){r=c[(c[m>>2]|0)+(q<<2)>>2]|0;s=c[(c[n>>2]|0)+(q<<2)>>2]|0;t=0;do{u=a[r+t>>0]|0;v=u&255;c[s+(t<<2)>>2]=(d[f+(v*3|0)>>0]|0)<<16|(u<<24>>24==0?0:-16777216)|(d[f+(v*3|0)+1>>0]|0)<<8|(d[f+(v*3|0)+2>>0]|0);t=t+1|0;w=c[b>>2]|0}while((t|0)<(w|0));x=c[h>>2]|0;y=w}else{x=o;y=p}q=q+1|0;if((q|0)>=(x|0))break;else{o=x;p=y}}z=c[j>>2]|0;A=x;C=y}else{z=k;A=i;C=g}if((z|0)!=32)return;if(!((c[l>>2]|0)==8&(A|0)>0))return;A=b+28|0;z=b+36|0;g=b+32|0;i=e+28|0;k=b+40|0;y=e+36|0;x=e+32|0;p=b+16|0;o=e+40|0;q=e+16|0;e=C;C=0;while(1){if((e|0)>0){w=0;while(1){a:do if((((c[A>>2]|0)<=(w|0)?(c[z>>2]|0)<=(C|0):0)?(c[g>>2]|0)>(w|0):0)?(c[k>>2]|0)>(C|0):0)switch(c[j>>2]|0){case 8:{D=d[(c[(c[p>>2]|0)+(C<<2)>>2]|0)+w>>0]|0;break a;break}case 32:{D=c[(c[(c[p>>2]|0)+(C<<2)>>2]|0)+(w<<2)>>2]|0;break a;break}default:{D=0;break a}}else D=0;while(0);n=D>>>16&255;m=D>>>8&255;t=D&255;s=65536;r=-1;v=0;while(1){u=n-(d[f+(v*3|0)>>0]|0)|0;E=B(u,u)|0;u=m-(d[f+(v*3|0)+1>>0]|0)|0;F=(B(u,u)|0)+E|0;E=t-(d[f+(v*3|0)+2>>0]|0)|0;u=F+(B(E,E)|0)|0;E=u>>>0<27;F=(r|0)==-1|(u|0)<(s|0);r=E|F?v:r;v=E?257:v+1|0;if((v|0)>=256)break;else s=E?s:F?u:s}b:do if((((c[i>>2]|0)<=(w|0)?(c[y>>2]|0)<=(C|0):0)?(c[x>>2]|0)>(w|0):0)?(c[o>>2]|0)>(C|0):0)switch(c[l>>2]|0){case 8:{a[(c[(c[q>>2]|0)+(C<<2)>>2]|0)+w>>0]=r;break b;break}case 32:{c[(c[(c[q>>2]|0)+(C<<2)>>2]|0)+(w<<2)>>2]=r;break b;break}default:break b}while(0);w=w+1|0;r=c[b>>2]|0;if((w|0)>=(r|0)){G=r;break}}}else G=e;C=C+1|0;if((C|0)>=(c[h>>2]|0))break;else e=G}return}function fo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=a+20|0;if((c[d>>2]|0)>=(b|0))return;e=b<<2;c[a>>2]=yq(c[a>>2]|0,e)|0;f=a+4|0;c[f>>2]=yq(c[f>>2]|0,e)|0;g=a+8|0;c[g>>2]=yq(c[g>>2]|0,e)|0;h=a+12|0;i=yq(c[h>>2]|0,e)|0;c[h>>2]=i;e=c[d>>2]|0;if((e|0)<(b|0)?(c[(c[f>>2]|0)+(e<<2)>>2]=0,c[(c[g>>2]|0)+(e<<2)>>2]=e,c[i+(e<<2)>>2]=e,c[(c[a>>2]|0)+(e<<2)>>2]=0,i=e+1|0,(i|0)!=(b|0)):0){e=i;do{i=c[h>>2]|0;c[(c[f>>2]|0)+(e<<2)>>2]=0;c[(c[g>>2]|0)+(e<<2)>>2]=e;c[i+(e<<2)>>2]=e;c[(c[a>>2]|0)+(e<<2)>>2]=0;e=e+1|0}while((e|0)!=(b|0))}c[d>>2]=b;return}function go(b){b=b|0;var d=0;d=vq(64)|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;fo(d,b);a[d+32>>0]=0;c[554810]=(c[554810]|0)+1;return d|0}function ho(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=vq(64)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;fo(e,b);a[e+32>>0]=0;c[554810]=(c[554810]|0)+1;f=xq(B(d,b)|0)|0;c[c[e>>2]>>2]=f;if((b|0)<=1){g=e+24|0;c[g>>2]=1;h=e+28|0;c[h>>2]=d;return e|0}f=1;do{i=c[e>>2]|0;c[i+(f<<2)>>2]=(c[i>>2]|0)+(B(f,d)|0);f=f+1|0}while((f|0)!=(b|0));g=e+24|0;c[g>>2]=1;h=e+28|0;c[h>>2]=d;return e|0}function io(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=a+4|0;a:do if((c[a+24>>2]|0)==0?(e=c[(c[d>>2]|0)+(b<<2)>>2]|0,(e|0)<=99):0)do switch(e|0){case 2:{zq(c[(c[a>>2]|0)+(b<<2)>>2]|0);break a;break}case 3:{jo(c[(c[a>>2]|0)+(b<<2)>>2]|0);break a;break}case 4:{Tn(c[(c[a>>2]|0)+(b<<2)>>2]|0)|0;break a;break}case 5:{Ln(c[(c[a>>2]|0)+(b<<2)>>2]|0);break a;break}case 6:{jp(c[(c[a>>2]|0)+(b<<2)>>2]|0);break a;break}case 7:{mp(c[(c[a>>2]|0)+(b<<2)>>2]|0);break a;break}case 8:{yp(c[(c[a>>2]|0)+(b<<2)>>2]|0);break a;break}case 9:{Xq(c[(c[a>>2]|0)+(b<<2)>>2]|0);break a;break}case 10:{On(c[(c[a>>2]|0)+(b<<2)>>2]|0)|0;break a;break}case 12:{Ro(c[(c[a>>2]|0)+(b<<2)>>2]|0);break a;break}case 11:{Op(c[(c[a>>2]|0)+(b<<2)>>2]|0);break a;break}case 0:return;default:break a}while(0);while(0);e=(c[d>>2]|0)+(b<<2)|0;if(!(c[e>>2]|0))return;c[e>>2]=0;e=a+16|0;d=(c[e>>2]|0)+-1|0;c[e>>2]=d;f=c[a+8>>2]|0;g=f+(d<<2)|0;d=c[g>>2]|0;c[g>>2]=b;g=c[a+12>>2]|0;a=g+(b<<2)|0;c[f+(c[a>>2]<<2)>>2]=d;c[g+(d<<2)>>2]=c[a>>2];c[a>>2]=c[e>>2];return}function jo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!a)return;b=a+24|0;if(!(c[b>>2]|0)){d=a+16|0;e=c[d>>2]|0;if((e|0)>0){f=a+8|0;g=e;h=0;do{io(a,c[(c[f>>2]|0)+(g+-1<<2)>>2]|0);h=h+1|0;g=c[d>>2]|0}while((h|0)<(e|0)&(g|0)!=0)}g=a+20|0;if((c[g>>2]|0)>0){e=c[a+4>>2]|0;h=c[a+8>>2]|0;f=c[a+12>>2]|0;i=0;do{c[e+(i<<2)>>2]=0;c[h+(i<<2)>>2]=i;c[f+(i<<2)>>2]=i;i=i+1|0}while((i|0)<(c[g>>2]|0))}if(c[b>>2]|0)wq(c[c[a>>2]>>2]|0,0,B(c[d>>2]|0,c[a+28>>2]|0)|0);if(c[d>>2]|0)Cn(95845)}else zq(c[c[a>>2]>>2]|0);zq(c[a>>2]|0);zq(c[a+4>>2]|0);zq(c[a+8>>2]|0);zq(c[a+12>>2]|0);zq(a);c[554810]=(c[554810]|0)+-1;return}function ko(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;if(!b){c[g>>2]=95881;wt(1715360,96886,g)|0;Cn(1715360)}if(!d){c[f>>2]=95904;wt(1715360,96886,f)|0;Cn(1715360)}f=(c[a+24>>2]|0)==0;g=a+16|0;h=c[g>>2]|0;i=h+1|0;c[g>>2]=i;j=c[a+20>>2]|0;k=(j|0)<=(h|0);if(f)if(k){fo(a,j+8+((j|0)/2|0)|0);l=c[g>>2]|0}else l=i;else if(k){c[g>>2]=h;m=a+4|0;n=-1;o=c[a>>2]|0;p=o+(n<<2)|0;c[p>>2]=d;q=c[m>>2]|0;r=q+(n<<2)|0;c[r>>2]=b;Ia=e;return n|0}else l=i;i=c[(c[a+8>>2]|0)+(l+-1<<2)>>2]|0;l=a+4|0;c[(c[l>>2]|0)+(i<<2)>>2]=1;m=l;n=i;o=c[a>>2]|0;p=o+(n<<2)|0;c[p>>2]=d;q=c[m>>2]|0;r=q+(n<<2)|0;c[r>>2]=b;Ia=e;return n|0}function lo(){var a=0;if(!2970992)return;a=c[557100]|0;if(a|0)Tn(a)|0;a=Sn(33,33,32)|0;c[557100]=a;Nn(a);Pn(c[557100]|0,15,8,17,24,-1);Pn(c[557100]|0,8,15,24,17,-1);Pn(c[557100]|0,16,9,16,23,-6250336);Pn(c[557100]|0,9,16,23,16,-6250336);Pn(c[557100]|0,11,11,21,21,0);Pn(c[557100]|0,16,11,16,21,-1);Pn(c[557100]|0,11,16,21,16,-1);Pn(c[557100]|0,14,14,18,18,0);return}function mo(){lo();c[557101]=c[557100];return}function no(){return (c[557102]|0)!=0|0}function oo(){var a=0,b=0,d=0,e=0;a=c[557102]|0;if(!a){do{Fn()|0;b=c[557102]|0}while(!(b|0));d=b}else d=a;a=c[431016]|0;b=d+-1|0;if((d|0)<=1){c[557102]=b;return a|0}d=0;do{e=d;d=d+1|0;c[1724064+(e<<2)>>2]=c[1724064+(d<<2)>>2]}while((d|0)!=(b|0));c[557102]=b;return a|0}function po(){var b=0,c=0,d=0;b=0;while(1){if((b|0)!=57&(a[1724192+b>>0]|0)!=0){c=b;d=4;break}b=b+1|0;if(b>>>0>=512){c=0;d=4;break}}if((d|0)==4)return c|0;return 0}function qo(b){b=b|0;var c=0,d=0;if((b|0)>=0){if(b>>>0>511){c=0;return c|0}d=a[1724192+b>>0]|0;if(!(d<<24>>24)){c=0;return c|0}if(!(a[1724704+b>>0]|0))return (d<<24>>24==3|(a[1725216+b>>0]|0)==0?3:1)|0;else{c=0;return c|0}}switch(b|0){case -6:{b=a[1724417]|0;if(b<<24>>24!=0&(a[1724929]|0)==0){c=b<<24>>24==3|(a[1725441]|0)==0?3:1;return c|0}b=a[1724421]|0;if(!(b<<24>>24!=0&(a[1724933]|0)==0)){c=0;return c|0}c=b<<24>>24==3|(a[1725445]|0)==0?3:1;return c|0}case -2:{b=a[1724694]|0;if(b<<24>>24!=0&(a[1725206]|0)==0){c=b<<24>>24==3|(a[1725718]|0)==0?3:1;return c|0}b=a[1724695]|0;if(!(b<<24>>24!=0&(a[1725207]|0)==0)){c=0;return c|0}c=b<<24>>24==3|(a[1725719]|0)==0?3:1;return c|0}case -3:{b=a[1724692]|0;if(b<<24>>24!=0&(a[1725204]|0)==0){c=b<<24>>24==3|(a[1725716]|0)==0?3:1;return c|0}b=a[1724693]|0;if(!(b<<24>>24!=0&(a[1725205]|0)==0)){c=0;return c|0}c=b<<24>>24==3|(a[1725717]|0)==0?3:1;return c|0}case -4:{b=a[1724418]|0;if(b<<24>>24!=0&(a[1724930]|0)==0){c=b<<24>>24==3|(a[1725442]|0)==0?3:1;return c|0}b=a[1724422]|0;if(!(b<<24>>24!=0&(a[1724934]|0)==0)){c=0;return c|0}c=b<<24>>24==3|(a[1725446]|0)==0?3:1;return c|0}case -5:{b=a[1724416]|0;if(b<<24>>24!=0&(a[1724928]|0)==0){c=b<<24>>24==3|(a[1725440]|0)==0?3:1;return c|0}b=a[1724420]|0;if(b<<24>>24!=0&(a[1724932]|0)==0){c=b<<24>>24==3|(a[1725444]|0)==0?3:1;return c|0}b=a[1724692]|0;if(b<<24>>24!=0&(a[1725204]|0)==0){c=b<<24>>24==3|(a[1725716]|0)==0?3:1;return c|0}b=a[1724693]|0;if(!(b<<24>>24!=0&(a[1725205]|0)==0)){c=0;return c|0}c=b<<24>>24==3|(a[1725717]|0)==0?3:1;return c|0}default:{c=0;return c|0}}return 0}function ro(){Wv(1724192,0,512)|0;Wv(1725216,0,512)|0;Wv(1724704,0,512)|0;return}function so(){return}function to(){c[557103]=ho(1024,72)|0;return}function uo(){jo(c[557103]|0);return}function vo(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0;a=Ia;Ia=Ia+16|0;b=a+8|0;d=a+4|0;e=a;f=c[557103]|0;if(!f){Ia=a;return}if(!(c[f+16>>2]|0)){Ia=a;return}cs(b,d,e);f=(c[b>>2]|0)-(c[557104]|0)|0;g=B(f,f)|0;f=(c[d>>2]|0)-(c[557105]|0)|0;h=(B(f,f)|0)+g|0;Rq();g=c[557103]|0;f=c[g+16>>2]|0;i=(f|0)>0;a:do if(i){j=c[b>>2]|0;k=c[d>>2]|0;l=c[g>>2]|0;m=c[g+8>>2]|0;n=c[l+(c[m>>2]<<2)>>2]|0;o=c[n+4>>2]|0;if(((j|0)>=(o|0)?(j|0)<((c[n+12>>2]|0)+o|0):0)?(o=c[n+8>>2]|0,(k|0)>=(o|0)):0)p=(k|0)<((c[n+16>>2]|0)+o|0)?n:0;else p=0;if((f|0)>1){n=p;o=1;while(1){q=c[l+(c[m+(o<<2)>>2]<<2)>>2]|0;r=c[q+4>>2]|0;do if((((j|0)>=(r|0)?(j|0)<((c[q+12>>2]|0)+r|0):0)?(s=c[q+8>>2]|0,(k|0)>=(s|0)):0)?(k|0)<((c[q+16>>2]|0)+s|0):0){if(n|0?c[n+20>>2]&32|0:0){t=n;break}t=q}else t=n;while(0);o=o+1|0;if((o|0)>=(f|0))break;else n=t}if(i)u=t;else break}else u=p;n=u+20|0;o=u+28|0;k=u+28|0;j=u+28|0;m=u+28|0;l=u+24|0;q=u+24|0;r=g;s=h;v=f;while(1){w=v+-1|0;x=c[(c[r>>2]|0)+(c[(c[r+8>>2]|0)+(w<<2)>>2]<<2)>>2]|0;if((x|0)==(u|0)){y=c[e>>2]|0;z=c[n>>2]|0;A=z&2;if(!y){if(!A)Va[c[o>>2]&0](u,c[b>>2]|0,c[d>>2]|0,0,3)}else if(!(c[557106]|A)){c[n>>2]=z|2;Va[c[j>>2]&0](u,c[b>>2]|0,c[d>>2]|0,y,4);y=Xr()|0;if((y-(c[557107]|0)|0)<400?(y=(c[c[l>>2]>>2]|0)/64|0,(s|0)<(B(y,y)|0)):0)Va[c[j>>2]&0](u,c[b>>2]|0,c[d>>2]|0,c[e>>2]|0,18);y=Xr()|0;if((y-(c[557108]|0)|0)<400?(y=(c[c[q>>2]>>2]|0)/64|0,(s|0)<(B(y,y)|0)):0){Va[c[j>>2]&0](u,c[b>>2]|0,c[d>>2]|0,c[e>>2]|0,11);c[557107]=Xr()|0}c[557108]=Xr()|0;c[557104]=c[b>>2];c[557105]=c[d>>2]}y=c[n>>2]|0;if(!(y&1)){c[n>>2]=y|1;Va[c[k>>2]&0](u,c[b>>2]|0,c[d>>2]|0,c[e>>2]|0,1)}y=c[554951]|0;z=c[554952]|0;if(z|y|0){Va[c[m>>2]&0](u,y,z,c[e>>2]|0,16);c[554951]=0;c[554952]=0}}else{z=x+20|0;y=c[z>>2]|0;if(!(y&1))C=y;else{c[z>>2]=y&-2;Va[c[x+28>>2]&0](x,c[b>>2]|0,c[d>>2]|0,c[e>>2]|0,2);C=c[z>>2]|0}c[z>>2]=C&-33}z=x+20|0;y=c[z>>2]|0;if((y&2|0)==0|(c[e>>2]|0)!=0)if((y&1|0)!=0&(c[554959]|0)!=0?(A=Xr()|0,(A|0)<((c[554960]|0)+500|0)):0){A=c[554959]|0;c[557106]=A;D=x+28|0;Va[c[D>>2]&0](x,c[b>>2]|0,c[d>>2]|0,A,12);A=(c[b>>2]|0)-(c[557109]|0)|0;E=B(A,A)|0;A=(c[d>>2]|0)-(c[557110]|0)|0;F=(B(A,A)|0)+E|0;E=Xr()|0;if((E-(c[557111]|0)|0)<400&F>>>0<400)Va[c[D>>2]&0](x,c[b>>2]|0,c[d>>2]|0,c[557106]|0,15);c[557111]=Xr()|0;c[557109]=c[b>>2];c[557110]=c[d>>2];G=F}else G=s;else{c[z>>2]=y&-3;y=x+28|0;Va[c[y>>2]&0](x,c[b>>2]|0,c[d>>2]|0,0,6);F=Xr()|0;if((s|0)<400&(F-(c[557108]|0)|0)<400)Va[c[y>>2]&0](x,c[b>>2]|0,c[d>>2]|0,c[557106]|0,12);F=(c[b>>2]|0)-(c[557109]|0)|0;D=B(F,F)|0;F=(c[d>>2]|0)-(c[557110]|0)|0;E=(B(F,F)|0)+D|0;D=Xr()|0;if((D-(c[557111]|0)|0)<400&E>>>0<400)Va[c[y>>2]&0](x,c[b>>2]|0,c[d>>2]|0,c[557106]|0,15);c[557111]=Xr()|0;c[557109]=c[b>>2];c[557110]=c[d>>2];G=E}E=c[z>>2]|0;y=c[e>>2]|0;if((E&2|0)!=0&(y|0)!=0){Va[c[x+28>>2]&0](x,c[b>>2]|0,c[d>>2]|0,y,5);H=c[z>>2]|0}else H=E;if(H&1|0?!((c[557112]|0)==0|(c[e>>2]|0)!=0):0)Va[c[x+28>>2]&0](x,c[b>>2]|0,c[d>>2]|0,0,17);if((v|0)<=1)break a;r=c[557103]|0;s=G;v=w}}while(0);c[554959]=0;G=c[e>>2]|0;c[557106]=G;c[557112]=G;Sq();Ia=a;return}function wo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d+4|0;g=d;if(!(c[557103]|0)){Ia=d;return}cs(e,f,g);h=c[557103]|0;if((c[h+16>>2]|0)<=0){Ia=d;return}if(!b){i=h;j=0;do{k=c[(c[i>>2]|0)+(c[(c[i+8>>2]|0)+(j<<2)>>2]<<2)>>2]|0;Va[c[k+28>>2]&0](k,c[e>>2]|0,c[f>>2]|0,c[g>>2]|0,a);j=j+1|0;i=c[557103]|0}while((j|0)<(c[i+16>>2]|0));Ia=d;return}i=h;h=0;while(1){j=c[(c[i>>2]|0)+(c[(c[i+8>>2]|0)+(h<<2)>>2]<<2)>>2]|0;if((c[j>>2]|0)==(b|0)){Va[c[j+28>>2]&0](j,c[e>>2]|0,c[f>>2]|0,c[g>>2]|0,a);l=c[557103]|0}else l=i;h=h+1|0;if((h|0)>=(c[l+16>>2]|0))break;else i=l}Ia=d;return}function xo(a){a=a|0;var b=0,d=0;b=c[557103]|0;if((a|0)<0|(b|0)==0){d=0;return d|0}if((c[b+20>>2]|0)<=(a|0)){d=0;return d|0}d=c[(c[b>>2]|0)+(a<<2)>>2]|0;return d|0}function yo(){var a=0,b=0,d=0,e=0,f=0;a=c[557103]|0;b=c[a+16>>2]|0;if((b|0)<=0){d=-1;return d|0}e=c[a>>2]|0;a=b;while(1){b=a;a=a+-1|0;if(c[(c[e+(a<<2)>>2]|0)+20>>2]&1|0){d=a;f=5;break}if((b|0)<=1){d=-1;f=5;break}}if((f|0)==5)return d|0;return 0}function zo(){var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c[557113]=go(512)|0;c[557114]=go(512)|0;b=0;do{e=(b|0)==0;f=e?8:32;g=0;do{h=Sn(5,5,f)|0;i=Sn(6,5,f)|0;ko(c[557113]|0,4,h)|0;ko(c[557114]|0,4,i)|0;g=g+1|0}while((g|0)!=32);g=0;do{i=Sn(5,5,f)|0;h=Sn(6,5,f)|0;Nn(i);j=g*5|0;k=i+16|0;l=h+16|0;if(e){m=0;do{n=d[4160+(m+j)>>0]|0;if(n&16|0){a[c[(c[k>>2]|0)+(m<<2)>>2]>>0]=-1;a[c[(c[l>>2]|0)+(m<<2)>>2]>>0]=-1;a[(c[(c[l>>2]|0)+(m<<2)>>2]|0)+1>>0]=-1}if(n&8|0){a[(c[(c[k>>2]|0)+(m<<2)>>2]|0)+1>>0]=-1;a[(c[(c[l>>2]|0)+(m<<2)>>2]|0)+1>>0]=-1;a[(c[(c[l>>2]|0)+(m<<2)>>2]|0)+2>>0]=-1}if(n&4|0){a[(c[(c[k>>2]|0)+(m<<2)>>2]|0)+2>>0]=-1;a[(c[(c[l>>2]|0)+(m<<2)>>2]|0)+2>>0]=-1;a[(c[(c[l>>2]|0)+(m<<2)>>2]|0)+3>>0]=-1}if(n&2|0){a[(c[(c[k>>2]|0)+(m<<2)>>2]|0)+3>>0]=-1;a[(c[(c[l>>2]|0)+(m<<2)>>2]|0)+3>>0]=-1;a[(c[(c[l>>2]|0)+(m<<2)>>2]|0)+4>>0]=-1}if(n&1|0){a[(c[(c[k>>2]|0)+(m<<2)>>2]|0)+4>>0]=-1;a[(c[(c[l>>2]|0)+(m<<2)>>2]|0)+4>>0]=-1;a[(c[(c[l>>2]|0)+(m<<2)>>2]|0)+5>>0]=-1}m=m+1|0}while((m|0)!=5)}else{m=0;do{n=d[4160+(m+j)>>0]|0;if(n&16|0){c[c[(c[k>>2]|0)+(m<<2)>>2]>>2]=-4144960;o=c[(c[l>>2]|0)+(m<<2)>>2]|0;c[o>>2]=-1;c[o+4>>2]=-1}if(n&8|0){c[(c[(c[k>>2]|0)+(m<<2)>>2]|0)+4>>2]=-4144960;o=c[(c[l>>2]|0)+(m<<2)>>2]|0;c[o+4>>2]=-1;c[o+8>>2]=-1}if(n&4|0){c[(c[(c[k>>2]|0)+(m<<2)>>2]|0)+8>>2]=-4144960;o=c[(c[l>>2]|0)+(m<<2)>>2]|0;c[o+8>>2]=-1;c[o+12>>2]=-1}if(n&2|0){c[(c[(c[k>>2]|0)+(m<<2)>>2]|0)+12>>2]=-4144960;o=c[(c[l>>2]|0)+(m<<2)>>2]|0;c[o+12>>2]=-1;c[o+16>>2]=-1}if(n&1|0){c[(c[(c[k>>2]|0)+(m<<2)>>2]|0)+16>>2]=-4144960;n=c[(c[l>>2]|0)+(m<<2)>>2]|0;c[n+16>>2]=-1;c[n+20>>2]=-1}m=m+1|0}while((m|0)!=5)}ko(c[557113]|0,4,i)|0;ko(c[557114]|0,4,h)|0;g=g+1|0}while((g|0)!=96);g=0;do{e=Sn(5,5,f)|0;m=Sn(6,5,f)|0;ko(c[557113]|0,4,e)|0;ko(c[557114]|0,4,m)|0;g=g+1|0}while((g|0)!=128);b=b+1|0}while((b|0)!=2);return}function Ao(){jo(c[557113]|0);jo(c[557114]|0);return} +function Zk(){var a=0,b=0;a=c[535458]|0;b=c[778903]|0;if(b|0)c[b+332>>2]=a;b=c[778904]|0;if(b|0)c[b+332>>2]=a;b=c[778905]|0;if(b|0)c[b+332>>2]=a;b=c[778906]|0;if(b|0)c[b+332>>2]=a;b=c[778907]|0;if(b|0)c[b+332>>2]=a;b=c[778908]|0;if(b|0)c[b+332>>2]=a;b=c[778909]|0;if(b|0)c[b+332>>2]=a;b=c[778910]|0;if(b|0)c[b+332>>2]=a;b=c[778911]|0;if(b|0)c[b+332>>2]=a;b=c[778912]|0;if(b|0)c[b+332>>2]=a;b=c[778913]|0;if(b|0)c[b+332>>2]=a;b=c[778914]|0;if(b|0)c[b+332>>2]=a;b=c[778915]|0;if(b|0)c[b+332>>2]=a;b=c[778916]|0;if(b|0)c[b+332>>2]=a;b=c[778917]|0;if(b|0)c[b+332>>2]=a;b=c[778918]|0;if(!b)return;c[b+332>>2]=a;return}function _k(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=e&65535;h=g>>>0<24320;if((g+-17152|0)>>>0<7168&(c[742800]|0)>0)return;i=f&255;j=i>>>0>127?f|-256:i;k=(b|0)==0;if(!k)a[b+156904+g>>0]=f;if(e&32768|0){b=g+-32768>>13;if(!(c[3193536+(b<<2)>>2]|0))return;l=2971132+(b<<2)|0;b=e>>>6&127;m=e<<1&126;a[(c[(c[(c[l>>2]|0)+16>>2]|0)+(b<<2)>>2]|0)+m>>0]=f&15;a[(c[(c[(c[l>>2]|0)+16>>2]|0)+(b<<2)>>2]|0)+(m|1)>>0]=f>>>4&15;return}if(g>>>0<4096){m=d+8|0;b=g>>>6;l=e<<1&126;a[(c[(c[(c[m>>2]|0)+16>>2]|0)+(b<<2)>>2]|0)+l>>0]=f&15;a[(c[(c[(c[m>>2]|0)+16>>2]|0)+(b<<2)>>2]|0)+(l|1)>>0]=f>>>4&15;return}if(g>>>0<8192){l=d+8|0;b=g>>>6;m=e<<1&126;a[(c[(c[(c[l>>2]|0)+16>>2]|0)+(b<<2)>>2]|0)+m>>0]=f&15;a[(c[(c[(c[l>>2]|0)+16>>2]|0)+(b<<2)>>2]|0)+(m|1)>>0]=f>>>4&15;a[(c[(c[(c[d+12>>2]|0)+16>>2]|0)+(g>>>7<<2)>>2]|0)+(e&127)>>0]=f;return}if(g>>>0<12288){m=g+-8192|0;a[(c[(c[(c[d+12>>2]|0)+16>>2]|0)+(m>>7<<2)>>2]|0)+(m&127)>>0]=f;return}if(g>>>0<12544){c[d+44832+(g+-12288<<2)>>2]=i;return}if(g>>>0<12800){m=g+-12544|0;b=(m|0)/4|0;l=m&3;c[d+43536+(b<<4)+(l<<2)>>2]=f&127;m=1<<l;l=d+44560+(b<<2)|0;b=c[l>>2]|0;c[l>>2]=b&~m;if(!(f&128))return;c[l>>2]=b|m;return}if(g>>>0<17152){m=g+-12800|0;b=(m|0)/68|0;l=m-(b*68|0)|0;if((l|0)<64){m=(l|0)/2|0;if(!(l&1)){c[d+16+(b*680|0)+20+(m*20|0)>>2]=f&63;n=d+16+(b*680|0)+20+(m*20|0)+4|0;c[n>>2]=c[n>>2]&4|f>>>6&3;return}else{n=d+16+(b*680|0)+20+(m*20|0)+4|0;c[n>>2]=c[n>>2]&3|f<<2&4;c[d+16+(b*680|0)+20+(m*20|0)+8>>2]=f>>>1&7;c[d+16+(b*680|0)+20+(m*20|0)+12>>2]=f>>>4&7;c[d+16+(b*680|0)+20+(m*20|0)+16>>2]=f&128;return}}switch(l|0){case 64:{c[d+16+(b*680|0)+4>>2]=f&1;c[d+16+(b*680|0)>>2]=f&254;return}case 65:{c[d+16+(b*680|0)+8>>2]=i;return}case 66:{c[d+16+(b*680|0)+12>>2]=i;return}case 67:{c[d+16+(b*680|0)+16>>2]=i;return}default:return}}if(k|g>>>0<24064)return;if(h){h=g+-24064|0;k=3120248+(((h|0)/4|0)<<2)|0;b=c[k>>2]|0;d=h<<3&24;h=b&~(255<<d)|i<<d;c[k>>2]=h;if((b|0)==(h|0))return;c[798463]=1;return}if(g>>>0>=24448)if(g>>>0<24576){cn(g+-24448|0,i);return}else{h=g+-24576|0;b=h>>6;k=h<<1&126;a[(c[(c[(c[742782]|0)+16>>2]|0)+(b<<2)>>2]|0)+k>>0]=f&15;a[(c[(c[(c[742782]|0)+16>>2]|0)+(b<<2)>>2]|0)+(k|1)>>0]=f>>>4&15;return}k=g+-24320|0;if(g>>>0<24336){c[3123880+(k<<2)>>2]=i;return}if(g>>>0<24352){c[3123944+(g+-24336<<2)>>2]=i;if(!(f&128))return;nb();return}if(g>>>0<24356){c[3124072+(g+-24352<<2)>>2]=i;Lk();return}do switch((e&65535)<<16>>16){case 24356:{c[781025]=i;return}case 24357:{c[781022]=i;return}case 24358:{c[781023]=i;return}case 24359:{c[781024]=i;return}case 24360:{c[781030]=c[781030]&-256|i;return}case 24361:{c[781030]=c[781030]&255|j<<8;return}case 24362:{c[781031]=c[781031]&-256|i;return}case 24363:{c[781031]=c[781031]&255|j<<8;return}case 24364:{c[781033]=i;return}case 24369:{c[781038]=c[781038]&-256|i;return}case 24370:{c[781038]=c[781038]&-65281|i<<8;return}case 24371:{c[781038]=c[781038]&-16711681|i<<16;return}case 24372:{c[781043]=i;return}case 24373:{c[781041]=i;return}case 24380:{c[781039]=c[781039]&-256|i;return}case 24381:{c[781039]=c[781039]&255|j<<8;return}case 24382:{c[781040]=c[781040]&-256|i;return}case 24383:{c[781040]=c[781040]&255|j<<8;return}case 24384:{c[781382]=i;return}case 24385:{c[781383]=i;return}case 24386:{c[781384]=i;return}case 24387:{c[781385]=i;return}default:switch((e&65532)<<16>>16){case 24388:{b=(g<<3)+-195104|0;yl(0,(xl(0)|0)&~(255<<b)|i<<b);return}case 24392:{b=(g<<3)+-195136|0;yl(1,(xl(1)|0)&~(255<<b)|i<<b);return}default:{b=g+-24396|0;if(b>>>0<8){c[3124188+(b<<5)>>2]=f&1;c[3124188+(b<<5)+4>>2]=f>>>1&1;c[3124188+(b<<5)+8>>2]=f>>>2&1;c[3124188+(b<<5)+12>>2]=f>>>3&1;c[3124188+(b<<5)+16>>2]=f>>>4&1;c[3124188+(b<<5)+20>>2]=f>>>5&1;return}switch(k|1|0){case 85:{Nk(c[798931]|0);return}case 87:{Hh();return}default:{if((k|0)==94){c[781034]=i;c[781035]=f&15;c[781036]=f>>>4&15;return}if((e&65520|0)!=24416)return;c[3124008+(g+-24416<<2)>>2]=i;return}}}}}while(0)}function $k(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=f&65535;h=(b|0)==0;if(h)i=0;else i=d[b+156904+g>>0]|0;a:do if(g>>>0>=8192){if(g>>>0<12288){b=g+-8192|0;j=d[(c[(c[(c[e+12>>2]|0)+16>>2]|0)+(b>>7<<2)>>2]|0)+(b&127)>>0]|0;break}if(g>>>0<12544){j=c[e+44832+(g+-12288<<2)>>2]|0;break}if(g>>>0<12800){b=g+-12544|0;k=(b|0)/4|0;l=b&3;b=c[e+43536+(k<<4)+(l<<2)>>2]&127;j=(c[e+44560+(k<<2)>>2]&1<<l|0)==0?b:b|128;break}if(g>>>0<17152){b=g+-12800|0;l=(b|0)/68|0;k=b-(l*68|0)|0;if((k|0)<64){b=(k|0)/2|0;if(!(k&1)){j=c[e+16+(l*680|0)+20+(b*20|0)+4>>2]<<6&192|c[e+16+(l*680|0)+20+(b*20|0)>>2];break}else{j=c[e+16+(l*680|0)+20+(b*20|0)+8>>2]<<1&14|(c[e+16+(l*680|0)+20+(b*20|0)+4>>2]|0)>>>2&1|c[e+16+(l*680|0)+20+(b*20|0)+12>>2]<<4&112|c[e+16+(l*680|0)+20+(b*20|0)+16>>2]&128;break}}switch(k|0){case 64:{j=c[e+16+(l*680|0)>>2]&254|c[e+16+(l*680|0)+4>>2]&1;break a;break}case 65:{j=c[e+16+(l*680|0)+8>>2]|0;break a;break}case 66:{j=c[e+16+(l*680|0)+12>>2]|0;break a;break}case 67:{j=c[e+16+(l*680|0)+16>>2]|0;break a;break}default:{j=i;break a}}}if(h){m=0;return m|0}if(g>>>0<24064)j=i;else{if(g>>>0<24320){l=g+-24064|0;j=(c[3120248+(((l|0)/4|0)<<2)>>2]|0)>>>(l<<3&24)&255;break}if(g>>>0>=24448){if(g>>>0<24576){j=dn(g+-24448|0)|0;break}if(g>>>0<32768){l=g+-24576|0;k=c[(c[(c[742782]|0)+16>>2]|0)+(l>>6<<2)>>2]|0;b=l<<1&126;j=(a[k+(b|1)>>0]<<4&255|a[k+b>>0]&15)&255;break}b=g+-32768>>13;if(!(c[3193536+(b<<2)>>2]|0)){j=i;break}k=c[(c[(c[2971132+(b<<2)>>2]|0)+16>>2]|0)+((f>>>6&127)<<2)>>2]|0;b=f<<1&126;j=(a[k+(b|1)>>0]<<4&255|a[k+b>>0]&15)&255;break}b=g+-24320|0;b:do if(g>>>0<24336)n=c[3123880+(b<<2)>>2]|0;else{if(g>>>0<24352){n=c[3123944+(g+-24336<<2)>>2]|0;break}if(g>>>0<24356){n=c[3124072+(g+-24352<<2)>>2]|0;break}do switch((f&65535)<<16>>16){case 24356:{n=c[781025]|0;break b;break}case 24357:{n=c[781022]|0;break b;break}case 24358:{n=c[781023]|0;break b;break}case 24359:{n=c[781024]|0;break b;break}case 24360:{n=c[781030]&255;break b;break}case 24361:{n=c[781030]>>8;break b;break}case 24362:{n=c[781031]&255;break b;break}case 24363:{n=c[781031]>>8;break b;break}case 24364:{n=c[781033]|0;break b;break}case 24369:{n=c[781038]&255;break b;break}case 24370:{n=(c[781038]|0)>>>8&255;break b;break}case 24371:{n=(c[781038]|0)>>>16&255;break b;break}case 24373:{n=c[781041]&255;break b;break}case 24380:{n=c[781039]&255;break b;break}case 24381:{n=c[781039]>>8;break b;break}case 24382:{n=c[781040]&255;break b;break}case 24383:{n=c[781040]>>8;break b;break}case 24384:{n=c[781382]|0;break b;break}case 24385:{n=c[781383]|0;break b;break}case 24386:{n=c[781384]|0;break b;break}case 24387:{n=c[781385]|0;break b;break}default:switch((f&65532)<<16>>16){case 24388:{n=(xl(0)|0)>>>((g<<3)+-195104|0)&255;break b;break}case 24392:{n=(xl(1)|0)>>>((g<<3)+-195136|0)&255;break b;break}default:{k=g+-24396|0;if(k>>>0<8){n=((c[3124188+(k<<5)+28>>2]|0)==0?0:128)|(((c[3124188+(k<<5)+24>>2]|0)==0?0:64)|(((c[3124188+(k<<5)+20>>2]|0)==0?0:32)|(((c[3124188+(k<<5)+16>>2]|0)==0?0:16)|(((c[3124188+(k<<5)+12>>2]|0)==0?0:8)|(((c[3124188+(k<<5)+8>>2]|0)==0?0:4)|(((c[3124188+(k<<5)+4>>2]|0)==0?0:2)|(c[3124188+(k<<5)>>2]|0)!=0))))))|a[3128e3+g>>0]&-64&255;break b}if((b|0)==94){n=c[781034]&255;break b}if((f&65520|0)!=24416){n=i;break b}n=c[3124008+(g+-24416<<2)>>2]|0;break b}}}while(0)}while(0);j=n&255}}else{b=c[(c[(c[e+8>>2]|0)+16>>2]|0)+(g>>>6<<2)>>2]|0;k=f<<1&126;j=((d[b+(k|1)>>0]|0)<<4)+(d[b+k>>0]|0)|0}while(0);m=j&255;return m|0}function al(){Wv(3264,((c[798384]|0)==0?10:4)|0,32)|0;Wv(3296,((c[798385]|0)==0?10:5)|0,32)|0;Wv(3328,((c[798386]|0)==0?10:6)|0,32)|0;Wv(3360,((c[798387]|0)==0?10:7)|0,32)|0;return}function bl(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;if((h|0)>32767)return;i=g&65535;j=f&65535;k=a[3136+(g>>>8&255)>>0]|0;l=k<<24>>24;m=i+h|0;n=a[3136+(f>>>8&255)>>0]|0;o=n<<24>>24;p=j+h|0;q=(j|0)>=(m|0);r=(p|0)<=(i|0);s=r|q;if(!(n<<24>>24==(a[3136+((p+65535|0)>>>8&255)>>0]|0)&(k<<24>>24==(a[3136+((m+65535|0)>>>8&255)>>0]|0)&(k<<24>>24!=0&n<<24>>24!=0)))){m=(h|0)>0;if(j>>>0<i>>>0){if(!m)return;t=0;do{_k(b,e,t+j|0,$k(b,e,t+i|0)|0);t=t+1|0}while((t|0)!=(h|0));return}else{if(!m)return;m=h;do{t=m;m=m+-1|0;_k(b,e,m+j|0,$k(b,e,m+i|0)|0)}while((t|0)>1);return}}switch(l|0){case 1:{u=(c[(c[(c[e+8>>2]|0)+16>>2]|0)+(i>>>6<<2)>>2]|0)+(i<<1&126)|0;break}case 2:{m=i+-24576|0;u=(c[(c[(c[742782]|0)+16>>2]|0)+(m>>6<<2)>>2]|0)+(m<<1&126)|0;break}case 7:case 6:case 5:case 4:{u=(c[(c[(c[2971132+(l+-4<<2)>>2]|0)+16>>2]|0)+((g>>>6&127)<<2)>>2]|0)+(i<<1&126)|0;break}case 8:{g=i+-8192|0;u=(c[(c[(c[e+12>>2]|0)+16>>2]|0)+(g>>7<<2)>>2]|0)+(g&127)|0;break}default:u=b+156904+i|0}switch(o|0){case 1:{v=(c[(c[(c[e+8>>2]|0)+16>>2]|0)+(j>>>6<<2)>>2]|0)+(j<<1&126)|0;break}case 2:{g=j+-24576|0;v=(c[(c[(c[742782]|0)+16>>2]|0)+(g>>6<<2)>>2]|0)+(g<<1&126)|0;break}case 7:case 6:case 5:case 4:{v=(c[(c[(c[2971132+(o+-4<<2)>>2]|0)+16>>2]|0)+((f>>>6&127)<<2)>>2]|0)+(j<<1&126)|0;break}case 8:{f=j+-8192|0;v=(c[(c[(c[e+12>>2]|0)+16>>2]|0)+(f>>7<<2)>>2]|0)+(f&127)|0;break}default:v=b+156904+j|0}b=l&8;if(i>>>0<j>>>0&((r|q)^1)){q=h<<(b>>>3^1);if(q|0){r=q;do{r=r+-1|0;a[v+r>>0]=a[u+r>>0]|0}while((r|0)!=0)}}else{r=(o&8|0)!=0;do if((k&8&n)<<24>>24){if(s){Vv(v|0,u|0,h|0)|0;w=v;x=u;break}if((h|0)>0){o=v+h|0;q=v;i=0;l=u;while(1){a[q>>0]=a[l>>0]|0;i=i+1|0;if((i|0)==(h|0))break;else{q=q+1|0;l=l+1|0}}w=o;x=u+h|0}else{w=v;x=u}}else{w=v;x=u}while(0);do if(!((n|k)&8)){u=h<<1;if(s){Vv(w|0,x|0,u|0)|0;y=w;z=x;A=33;break}if((h|0)<=0){B=0;C=w;D=x;E=(b|0)==0;break}v=w;l=0;q=x;while(1){a[v>>0]=a[q>>0]|0;i=v+1|0;f=q+1|0;l=l+1|0;if((l|0)>=(u|0)){y=i;z=f;A=33;break}else{v=i;q=f}}}else{y=w;z=x;A=33}while(0);if((A|0)==33){A=(b|0)==0;b=(h|0)>0;if(b&((A|r)^1)){x=y+(h<<1)|0;w=y;s=0;k=z;while(1){a[w>>0]=a[k>>0]&15;a[w+1>>0]=(d[k>>0]|0)>>>4;s=s+1|0;if((s|0)==(h|0))break;else{w=w+2|0;k=k+1|0}}B=b;C=x;D=z+h|0;E=A}else{B=b;C=y;D=z;E=A}}if(E&r&B){B=C;C=0;r=D;while(1){a[B>>0]=a[r+1>>0]<<4&255|a[r>>0]&15;C=C+1|0;if((C|0)==(h|0))break;else{B=B+1|0;r=r+2|0}}}}r=j+-4096|0;j=(r|0)<4096?r:4096;r=(j|0)>0?j:0;j=(p|0)<4096?0:(p|0)<8192?p+-4096|0:4096;if(!((j|0)>0&(r|0)<4096&(r|0)<(j|0)))return;p=(c[(c[e+12>>2]|0)+12>>2]|0)+(r+4096)|0;B=r;h=(c[(c[e+8>>2]|0)+12>>2]|0)+((r<<1)+8192)|0;while(1){a[p>>0]=a[h+1>>0]<<4&255|a[h>>0]&15;B=B+1|0;if((B|0)>=(j|0))break;else{p=p+1|0;h=h+2|0}}return}function cl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=c&65535;c=d&65535;d=(e|0)>0;if(f>>>0<c>>>0){if(!d)return;g=f;h=e;i=c;while(1){j=256-(i&255)|0;k=256-(g&255)|0;l=j>>>0<k>>>0?j:k;k=(l|0)<(h|0)?l:h;bl(a,b,g,i,k);h=h-k|0;if((h|0)<=0)break;else{g=k+g|0;i=k+i|0}}return}else{if(!d)return;d=f+e|0;f=e;i=c+e|0;do{e=(i+255&255)+1|0;c=(d+255&255)+1|0;g=e>>>0<c>>>0?e:c;c=(g|0)<(f|0)?g:f;i=i-c|0;d=d-c|0;bl(a,b,d,i,c);f=f-c|0}while((f|0)>0);return}}function dl(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if((g|0)<=0)return;h=f&255;i=d+8|0;j=d+12|0;k=f&15;l=f>>>4&15;m=e&65535;e=g;while(1){g=256-(m&255)|0;n=(g|0)<(e|0)?g:e;a:do if((n|0)<=32767){g=m&65535;o=a[3136+(m>>>8&255)>>0]|0;p=o<<24>>24;q=n+g|0;if(!(o<<24>>24)){if((n|0)<=0)break;o=0;while(1){_k(b,d,o+g|0,f);o=o+1|0;if((o|0)==(n|0))break a}}switch(p|0){case 1:{r=(c[(c[i>>2]|0)+16>>2]|0)+(g>>>6<<2)|0;s=g;t=13;break}case 2:{o=g+-24576|0;r=(c[(c[742782]|0)+16>>2]|0)+(o>>6<<2)|0;s=o;t=13;break}case 7:case 6:case 5:case 4:{u=(c[(c[(c[2971132+(p+-4<<2)>>2]|0)+16>>2]|0)+((m>>>6&127)<<2)>>2]|0)+(g<<1&126)|0;t=11;break}case 8:{o=g+-8192|0;v=(c[(c[(c[j>>2]|0)+16>>2]|0)+(o>>7<<2)>>2]|0)+(o&127)|0;t=12;break}default:{u=b+156904+g|0;t=11}}if((t|0)==11){t=0;if(!(p&8)){w=u;t=14}else{v=u;t=12}}else if((t|0)==13){t=0;w=(c[r>>2]|0)+(s<<1&126)|0;t=14}if((t|0)==12){t=0;Wv(v|0,h|0,n|0)|0}else if((t|0)==14?(t=0,(n|0)>0):0){o=w;x=0;while(1){a[o>>0]=k;a[o+1>>0]=l;x=x+1|0;if((x|0)==(n|0))break;else o=o+2|0}}o=g+-4096|0;x=(o|0)<4096?o:4096;o=(x|0)>0?x:0;x=(q|0)<4096?0:(q|0)<8192?q+-4096|0:4096;if((o|0)<4096&(x|0)>0)Wv((c[(c[j>>2]|0)+12>>2]|0)+(o+4096)|0,h|0,x-o|0)|0}while(0);e=e-n|0;if((e|0)<=0)break;else m=n+m|0}return}function el(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;if((g|0)>32767)return;if((g|0)>0){h=0;do{_k(b,d,h+e|0,$k(0,c[26544]|0,h+f|0)|0);h=h+1|0}while((h|0)!=(g|0))}if(!(a[3122552]|0))return;a[3122552]=0;g=30-(c[780904]|0)|0;h=(g|0)<30?g:30;c[780903]=(h|0)>2?h:2;c[780904]=150;return}function fl(a){a=a|0;var b=0,d=0;b=a>>16;a=$k(2971096,c[781999]|0,b)|0;d=(($k(2971096,c[781999]|0,b+1|0)|0)<<8)+a|0;a=d+(($k(2971096,c[781999]|0,b+2|0)|0)<<16)|0;return a+(($k(2971096,c[781999]|0,b+3|0)|0)<<24)|0}function gl(a){a=a|0;var b=0;b=a>>16;a=($k(2971096,c[781999]|0,b)|0)<<16;return (($k(2971096,c[781999]|0,b+1|0)|0)<<24)+a|0}function hl(a){a=a|0;return ($k(2971096,c[781999]|0,a>>16)|0)<<16|0}function il(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,bb=0,cb=0,db=0,eb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0;d=Ia;Ia=Ia+304|0;e=d+280|0;f=d+272|0;g=d+264|0;h=d+256|0;i=d;j=d+284|0;k=c[742782]|0;a:do if(!b){l=c[3115612+(c[778921]<<2)>>2]|0;m=c[l>>2]|0;n=bu(m)|0;o=c[l+336>>2]|0;p=Es(a[m+o>>0]|0)|0;b:do if((o|0)>0){m=o;while(1){q=m+-1|0;if((Es(a[(c[l>>2]|0)+q>>0]|0)|0)!=(p|0)){r=m;break b}if((m|0)>1)m=q;else{r=q;break}}}else r=o;while(0);m=o+1|0;c:do if((m|0)<(n|0)){q=m;while(1){if((Es(a[(c[l>>2]|0)+q>>0]|0)|0)!=(p|0)){s=q;break c}t=q+1|0;if((t|0)<(n|0))q=t;else{s=t;break}}}else s=m;while(0);Wv(i|0,0,256)|0;m=s-r|0;Vv(i|0,(c[l>>2]|0)+r|0,((m|0)<255?m:255)|0)|0;switch(a[i>>0]|0){case 10:case 0:break;default:{u=1;v=i;break a}}fb(62103,1500);Ia=d;return}else{u=0;v=b}while(0);ab();if((a[v>>0]|0)==60?(a[v+((bu(v)|0)+-1)>>0]|0)==62:0){Jg(62130,13);Lg(62163);Ia=d;return}if((au(v,62172)|0)!=0?(au(v,62178)|0)!=0:0)w=0;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(62185,14);Lg(3196396);Lg(62200);Lg(62231);Lg(62264);Lg(3196396);Lg(62289);Lg(62321);Lg(62354);Lg(3196396);w=1}if((au(v,62378)|0)!=0?(au(v,62384)|0)!=0:0)x=w;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(62388,6);Lg(3196396);Jg(62410,12);x=1}if(!(au(v,62420)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Lg(62426);Lg(62452);Lg(3196396);Jg(62480,6);Lg(3196396);Jg(62502,12);y=1}else y=x;if((au(v,62511)|0)!=0?(au(v,62518)|0)!=0:0)z=y;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(62526,14);Lg(3196396);Lg(62536);Lg(62566);Lg(62597);Lg(3196396);Lg(62625);Lg(62640);Lg(62663);Lg(62683);Lg(62712);Lg(62732);Lg(62749);Lg(3196396);Jg(62775,6);Lg(3196396);Jg(62794,12);z=1}if(!(au(v,97461)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(62824,14);Lg(3196396);Lg(62845);Lg(62877);Lg(62906);Lg(3196396);Jg(62930,7);Lg(62956);Lg(3196396);Jg(62959,7);Jg(62971,7);Lg(97397);Lg(3196396);Jg(62977,12);A=1}else A=z;if((au(v,63002)|0)!=0?(au(v,63008)|0)!=0:0)B=A;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(63015,14);Lg(3196396);Lg(63024);Lg(63055);Lg(63088);Lg(63119);Lg(63151);Lg(63180);Lg(3196396);Jg(63209,7);Jg(63241,7);Jg(63264,7);Jg(63294,7);Jg(63322,7);Jg(63351,7);Lg(3196396);Jg(63384,6);Lg(3196396);Jg(63402,12);B=1}if(!(au(v,63433)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(63437,14);Lg(3196396);Lg(63454);Lg(63478);Lg(63511);Lg(3196396);Lg(63520);Lg(63552);Lg(63577);Lg(3196396);Lg(63608);Lg(63641);Lg(63674);Lg(63700);Lg(63727);Lg(3196396);Jg(63758,6);Lg(3196396);Jg(63773,12);C=1}else C=B;if((au(v,63802)|0)!=0?(au(v,63811)|0)!=0:0)D=C;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(63818,14);Lg(3196396);Lg(63846);Lg(63877);Lg(63906);Lg(3196396);Jg(63925,7);Jg(63944,7);Jg(63966,7);Jg(63997,7);Jg(3196396,7);Jg(64001,7);Jg(64018,7);Lg(64029);Jg(64032,7);Lg(97397);D=1}if(!(au(v,64043)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(64049,14);Lg(3196396);Lg(64066);Lg(64097);Lg(3196396);Jg(64116,7);Jg(64122,7);Jg(64137,7);Jg(64148,7);Jg(63997,7);Lg(64160);Lg(97397);Lg(97399);E=1}else E=D;if(!(au(v,64175)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(64178,14);Lg(3196396);Lg(64192);Lg(64220);Lg(64247);Lg(3196396);F=1}else F=E;if(!(au(v,63997)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(64258,14);Lg(3196396);Lg(64273);Lg(64302);Lg(64331);Lg(3196396);G=1}else G=F;if((au(v,64364)|0)!=0?(au(v,64371)|0)!=0:0)H=G;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(64377,14);Lg(3196396);Lg(64403);Lg(64432);Lg(64462);Lg(3196396);Lg(64480);Lg(64509);Lg(64540);Lg(3196396);Jg(64116,7);Jg(64364,7);Jg(64137,7);Jg(64148,7);Jg(64567,7);Lg(64160);Lg(97397);Lg(97399);H=1}if((((au(v,64580)|0)!=0?(au(v,64583)|0)!=0:0)?(au(v,64588)|0)!=0:0)?(au(v,64595)|0)!=0:0)I=H;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(64600,14);Lg(3196396);Lg(64625);Lg(64656);Lg(64689);Lg(3196396);Jg(64699,7);Jg(64713,7);Jg(63997,7);Lg(3196396);Jg(64745,7);Jg(64759,7);Jg(64787,7);Jg(64805,7);Jg(64595,7);Jg(64828,7);Jg(63997,7);Lg(3196396);Jg(64854,7);I=1}if((au(v,64883)|0)!=0?(au(v,64887)|0)!=0:0)J=I;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(64890,14);Lg(3196396);Lg(64902);Lg(3196396);Jg(64934,7);Jg(64137,7);Jg(63997,7);Lg(64947);Lg(3196396);Lg(64968);Lg(3196396);Jg(64994,7);Lg(65022);Lg(3196396);Lg(65041);Lg(65071);Lg(3196396);Jg(65092,12);J=1}if((((au(v,65112)|0)!=0?(au(v,65117)|0)!=0:0)?(au(v,65123)|0)!=0:0)?(au(v,65127)|0)!=0:0)K=J;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(65135,14);Lg(3196396);Lg(65152);Lg(65183);Lg(65213);Lg(65244);Lg(65272);Lg(3196396);Jg(65301,7);Lg(65123);Jg(65332,7);Lg(65117);Lg(3196396);Lg(65348);Lg(65380);Lg(3196396);Jg(62959,7);Jg(65413,7);K=1}if((au(v,94273)|0)!=0?(au(v,65443)|0)!=0:0)L=K;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(65449,14);Lg(3196396);Lg(65459);Lg(65489);Lg(3196396);Lg(65502);Lg(65507);Lg(65516);Lg(65524);Lg(65532);Lg(65542);Lg(3196396);Jg(65549,6);Lg(3196396);Jg(65561,12);L=1}if(!(au(v,92620)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(65584,14);Lg(3196396);Lg(65601);Lg(65630);Lg(65658);Lg(65685);Lg(3196396);Jg(65712,7);Jg(65728,7);Jg(65758,7);Jg(65770,7);Jg(63997,7);Lg(3196396);Jg(65781,7);Jg(65796,7);M=1}else M=L;do if(au(v,65829)|0){if(!(au(v,65831)|0)){N=102;break}if(!(au(v,65833)|0)){N=102;break}if(au(v,65836)|0){O=M;P=0}else N=102}else N=102;while(0);do if((N|0)==102){if(!u){O=1;P=1;break}c[781024]=0;c[781023]=0;Nn(c[742782]|0);O=1;P=1}while(0);do if(au(v,65839)|0){if(!(au(v,65842)|0)){N=107;break}if(au(v,65845)|0){Q=O;R=P}else N=107}else N=107;while(0);do if((N|0)==107){if(!u){Q=1;R=1;break}c[781024]=0;c[781023]=0;Nn(c[742782]|0);Q=1;R=1}while(0);do if(au(v,65848)|0){if(!(au(v,65852)|0)){N=112;break}if(au(v,65855)|0){S=Q;T=R}else N=112}else N=112;while(0);do if((N|0)==112){if(!u){S=1;T=1;break}c[781024]=0;c[781023]=0;Nn(c[742782]|0);S=1;T=1}while(0);do if(au(v,65859)|0){if(!T){U=S;break}if(!u)N=120;else N=119}else{if(!u){N=120;break}c[781024]=0;c[781023]=0;Nn(c[742782]|0);N=119}while(0);if((N|0)==119){c[781024]=0;c[781023]=0;Nn(c[742782]|0);N=120}if((N|0)==120){Jg(65865,14);Lg(3196396);Lg(65894);Lg(3196396);Lg(65921);Lg(3196396);Jg(65938,7);Jg(65963,7);Jg(65989,7);Jg(66014,7);Lg(3196396);Lg(66039);Lg(3196396);Lg(66064);Lg(3196396);Lg(66086);U=1}if(!(au(v,97449)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(66110,14);Lg(3196396);Lg(66126);Lg(66151);Lg(3196396);Jg(66173,7);Jg(66183,7);Lg(97407);V=1}else V=U;if((au(v,66188)|0)!=0?(au(v,66193)|0)!=0:0)W=V;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(66197,6);Lg(3196396);Jg(66227,12);Jg(66251,12);Jg(66274,12);Lg(3196396);Jg(62526,6);Lg(3196396);Jg(62794,12);Lg(3196396);Jg(63015,6);Lg(3196396);Jg(63402,12);W=1}if(!(au(v,62384)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(66293,14);Lg(3196396);Lg(66324);Lg(3196396);Lg(66343);Lg(66376);Lg(66407);Lg(3196396);Lg(66433);Lg(66465);Lg(66496);X=1}else X=W;if(!(au(v,94593)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(66529,14);Lg(3196396);Lg(66557);Lg(66590);Lg(3196396);Lg(66621);Lg(66654);Lg(66686);Lg(66717);Y=1}else Y=X;if(!(au(v,66739)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(66743,14);Lg(3196396);Lg(66760);Lg(66793);Lg(3196396);Lg(66826);Lg(3196396);Lg(66847);Lg(3196396);Lg(66872);Lg(66901);Z=1}else Z=Y;do if(!(au(v,66916)|0)){if(!u){_=1;$=1;break}c[781024]=0;c[781023]=0;Nn(c[742782]|0);_=1;$=1}else{_=Z;$=0}while(0);if(!(a[v+1>>0]|0)){Z=a[v>>0]|0;if(($|0)==0&((Z&255)>153|Z<<24>>24>-1))aa=_;else N=148}else if(!$)aa=_;else N=148;if((N|0)==148){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(66923,14);Lg(3196396);Lg(66938);Lg(66966);Lg(66994);Lg(67022);Lg(67055);Lg(3196396);Jg(67071,6);Lg(3196396);Lg(67081);Lg(3196396);Jg(67105,6);Lg(3196396);Lg(67133);Lg(3196396);Lg(3196396);Lg(3196396);_=c[781024]|0;$=_+-15|0;Z=_+-5|0;_=c[781038]|0;Y=0;do{X=Y<<3;c[781038]=(c[3392+(Y<<2)>>2]|0)+(49072>>>Y<<31>>31);Ck(c[742782]|0,X,$,X|6,Z,(0-(Y&1)&3)+6|0)|0;c[781038]=_;Y=Y+1|0}while((Y|0)!=16);Jg(67150,12);aa=1}if(!(au(v,67175)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(67180,14);Lg(3196396);Lg(67198);Lg(67229);Lg(67258);Lg(3196396);Lg(66826);Lg(3196396);Lg(66847);Lg(3196396);Lg(67291);Lg(3196396);Lg(67320);Lg(67351);Lg(3196396);Lg(67382);Lg(67413);Lg(67444);ba=1}else ba=aa;do if(au(v,67469)|0){if(!(au(v,67474)|0)){N=161;break}if(!(au(v,67478)|0)){N=161;break}if(au(v,67484)|0)ca=ba;else N=161}else N=161;while(0);if((N|0)==161){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(67491,6);Lg(3196396);Lg(67506);Lg(3196396);Lg(67533);Lg(3196396);Lg(67559);Lg(67591);Lg(67621);Lg(3196396);Jg(67633,6);Lg(3196396);Jg(67647,12);ca=1}if((au(v,67678)|0)!=0?(au(v,67683)|0)!=0:0)da=ca;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(67689,6);Lg(3196396);Jg(67720,12);Jg(67749,12);Jg(67778,12);Jg(67797,12);Jg(3196396,12);Jg(67820,6);Lg(3196396);Jg(67840,12);da=1}if((au(v,67869)|0)!=0?(au(v,67873)|0)!=0:0)ea=da;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(67877,14);Lg(3196396);Lg(67894);Lg(67926);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);da=c[781024]|0;ca=da+-34|0;vk(k,34,ca,20,7);ba=da+-48|0;bo(k,34,ca,48,ba,14);vk(k,48,ba,1,7);vk(k,34,ca,1,7);Bo(k,67957,c[742805]|0,28,da+-30|0,1,13)|0;Bo(k,67961,c[742805]|0,54,da+-53|0,1,13)|0;ba=da+-36|0;Bo(k,67980,c[742805]|0,57,ba,1,6)|0;bo(k,54,ca,52,ca,7);Bo(k,67984,c[742805]|0,27,da+-61|0,1,6)|0;aa=da+-54|0;Y=da+-52|0;bo(k,34,aa,34,Y,7);Bo(k,67989,c[742805]|0,1,ba,1,6)|0;bo(k,14,ca,16,ca,7);Bo(k,67993,c[742805]|0,27,da+-11|0,1,6)|0;bo(k,34,aa,34,Y,7);Lg(67998);Lg(68025);Lg(68055);Lg(68087);ea=1}if(!(au(v,68111)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(68117,14);Lg(3196396);Lg(68132);Lg(68162);Lg(68194);Lg(68227);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Y=c[781024]|0;aa=Y+-34|0;vk(k,34,aa,20,7);da=Y+-48|0;bo(k,34,aa,48,da,14);vk(k,48,da,1,7);vk(k,34,aa,1,7);Bo(k,67957,c[742805]|0,28,Y+-30|0,1,13)|0;Bo(k,68257,c[742805]|0,54,Y+-53|0,1,13)|0;da=Y+-36|0;Bo(k,67980,c[742805]|0,57,da,1,6)|0;bo(k,54,aa,52,aa,7);Bo(k,67984,c[742805]|0,27,Y+-61|0,1,6)|0;ca=Y+-54|0;ba=Y+-52|0;bo(k,34,ca,34,ba,7);Bo(k,67989,c[742805]|0,1,da,1,6)|0;bo(k,14,aa,16,aa,7);Bo(k,67993,c[742805]|0,27,Y+-11|0,1,6)|0;bo(k,34,ca,34,ba,7);Lg(68268);fa=1}else fa=ea;if(!(au(v,68300)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(68305,14);Lg(3196396);Lg(68315);ga=1}else ga=fa;if(!(au(v,68343)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(68347,14);Jg(68358,14);Lg(3196396);Lg(68372);Lg(68402);Lg(68433);Lg(3196396);Lg(68456);Lg(68488);ha=1}else ha=ga;if(!(au(v,68517)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(68523,14);Lg(3196396);Lg(68534);Lg(68566);Lg(68598);Lg(68626);Lg(68657);Lg(3196396);ia=1}else ia=ha;do if(au(v,68672)|0){if(!(au(v,68676)|0)){N=193;break}if(au(v,93421)|0)ja=ia;else N=193}else N=193;while(0);if((N|0)==193){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(68680,14);Lg(3196396);Lg(68711);Lg(68740);Lg(68767);Lg(68795);Lg(3196396);Lg(68813);Lg(68833);Lg(68852);ja=1}if((au(v,68871)|0)!=0?(au(v,68875)|0)!=0:0)ka=ja;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(68880,14);Lg(3196396);Lg(68897);Lg(68929);Lg(68959);Lg(68990);Lg(3196396);Lg(69020);Lg(69041);Lg(69062);Lg(69083);Lg(69105);ka=1}if(!(au(v,69126)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(69130,14);Lg(3196396);Lg(69139);Lg(69162);Lg(3196396);Lg(69178);la=1}else la=ka;if(!(au(v,69208)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(69212,14);Lg(3196396);Lg(69221);Lg(69252);Lg(3196396);Lg(69264);Lg(69282);Lg(3196396);Lg(69300);Lg(69325);Lg(69353);Lg(69385);ma=1}else ma=la;if((au(v,69413)|0)!=0?(au(v,96848)|0)!=0:0)na=ma;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(69418,14);Jg(69428,14);Lg(3196396);Lg(69434);Lg(69462);Lg(69491);Lg(69521);Lg(3196396);Lg(69526);Lg(69558);Lg(3196396);Jg(69569,7);Lg(69595);Lg(3196396);Jg(69607,13);Jg(69640,13);na=1}do if(au(v,69669)|0){if(!(au(v,69674)|0)){N=217;break}if(au(v,69676)|0)oa=na;else N=217}else N=217;while(0);if((N|0)==217){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(69679,14);Jg(69692,14);Lg(3196396);Lg(69701);Lg(69462);Lg(69729);Lg(69757);Lg(3196396);Lg(69773);Lg(69804);Lg(69835);Lg(69804);Lg(69866);Lg(3196396);Jg(69897,7);Lg(69924);oa=1}do if(au(v,69936)|0){if(!(au(v,69940)|0)){N=223;break}if(au(v,69942)|0)pa=oa;else N=223}else N=223;while(0);if((N|0)==223){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(69945,14);Jg(69957,14);Lg(3196396);Lg(69966);Lg(69462);Lg(69993);Lg(70021);Lg(3196396);Lg(69773);Lg(69804);Lg(70036);Lg(69804);Lg(70067);Lg(3196396);Jg(70098,7);Lg(70125);pa=1}do if(au(v,70137)|0){if(!(au(v,70142)|0)){N=229;break}if(au(v,65842)|0)qa=pa;else N=229}else N=229;while(0);if((N|0)==229){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(70145,14);Jg(70158,14);Jg(70167,14);Lg(3196396);Lg(70191);Lg(70221);Lg(70253);Lg(70286);Lg(70319);Lg(70352);Lg(3196396);Lg(69773);Lg(69804);Lg(70036);Lg(69804);Lg(70382);Lg(3196396);Jg(70413,7);Lg(70440);qa=1}do if(au(v,70452)|0){if(!(au(v,70456)|0)){N=235;break}if(au(v,70459)|0)ra=qa;else N=235}else N=235;while(0);if((N|0)==235){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(70463,14);Jg(70475,14);Lg(3196396);Lg(70485);Lg(70513);Lg(3196396);Jg(70538,7);Lg(70564);ra=1}do if(au(v,70576)|0){if(!(au(v,70580)|0)){N=241;break}if(au(v,70583)|0)sa=ra;else N=241}else N=241;while(0);if((N|0)==241){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(70587,14);Jg(70599,14);Lg(3196396);Lg(70609);Lg(70642);Lg(70672);Lg(70702);Lg(70730);Lg(3196396);Jg(70740,7);Lg(70768);sa=1}do if(au(v,70780)|0){if(!(au(v,70785)|0)){N=247;break}if(au(v,70789)|0)ta=sa;else N=247}else N=247;while(0);if((N|0)==247){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(70587,14);Jg(70794,14);Lg(3196396);Lg(70805);Lg(70835);Lg(70867);Lg(3196396);Jg(70890,7);Lg(70919);ta=1}do if(au(v,70931)|0){if(!(au(v,70936)|0)){N=253;break}if(au(v,70940)|0)ua=ta;else N=253}else N=253;while(0);if((N|0)==253){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(70945,14);Jg(70958,14);Lg(3196396);Lg(70969);Lg(3196396);Jg(70996,7);Lg(71027);ua=1}do if(au(v,71039)|0){if(!(au(v,71044)|0)){N=259;break}if(au(v,71048)|0)va=ua;else N=259}else N=259;while(0);if((N|0)==259){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(71053,14);Jg(71066,14);Lg(3196396);Lg(71077);Lg(3196396);Jg(71105,7);Lg(71136);va=1}if(!(au(v,71148)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(71156,14);Lg(3196396);Lg(71166);Lg(71194);Lg(71223);Lg(71248);Lg(71277);Lg(71307);Lg(3196396);Lg(71327);Lg(3196396);Lg(71351);Lg(71382);Lg(71411);Lg(71443);Lg(3196396);Lg(71475);Lg(71492);wa=1}else wa=va;if((au(v,71504)|0)!=0?(au(v,71508)|0)!=0:0)xa=wa;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(71520,14);Lg(3196396);Lg(71534);Lg(71564);Lg(3196396);Jg(71593,7);Lg(71607);Lg(3196396);Lg(71610);Lg(71642);Lg(71671);Lg(71701);Lg(71733);Lg(71766);Lg(3196396);Lg(71793);Lg(3196396);Lg(71825);Lg(71847);xa=1}if(!(au(v,71880)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(71887,14);Lg(3196396);Lg(71896);Lg(71929);Lg(3196396);Jg(71962,7);Lg(71981);Lg(3196396);Lg(71986);Lg(72019);Lg(72052);Lg(3196396);Lg(72085);Lg(72117);Lg(72149);Lg(72180);Lg(72212);Lg(72243);Lg(72276);ya=1}else ya=xa;if((au(v,72306)|0)!=0?(au(v,72315)|0)!=0:0)za=ya;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(72325,14);Lg(3196396);Lg(72337);Lg(72370);Lg(72399);Lg(72431);Lg(72463);Lg(72495);Lg(3196396);Lg(72528);Lg(72561);Lg(72594);Lg(72627);Lg(3196396);Jg(72648,7);Jg(72681,7);Lg(97407);Lg(3196396);Jg(72714,12);za=1}do if(au(v,72740)|0){if(!(au(v,72742)|0)){N=284;break}if(!(au(v,97447)|0)){N=284;break}if(au(v,72745)|0)Aa=za;else N=284}else N=284;while(0);if((N|0)==284){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(72748,14);Lg(3196396);Lg(72770);Lg(3196396);Jg(72785,7);Lg(97405);Jg(72792,7);Jg(72798,7);Jg(66183,7);Lg(97401);Lg(3196396);Lg(72805);Lg(72837);Lg(3196396);Jg(72868,7);Lg(72882);Aa=1}do if(au(v,97321)|0){if(!(au(v,72889)|0)){N=291;break}if(!(au(v,97471)|0)){N=291;break}if(au(v,72892)|0)Ba=Aa;else N=291}else N=291;while(0);if((N|0)==291){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(72895,14);Lg(3196396);Lg(72918);Lg(72950);Lg(3196396);Jg(72968,7);Lg(72975);Jg(72978,7);Jg(72984,7);Jg(66183,7);Lg(97395);Lg(3196396);Lg(72991);Lg(73024);Lg(73054);Lg(3196396);Jg(73086,7);Lg(73107);Ba=1}if((au(v,73119)|0)!=0?(au(v,73121)|0)!=0:0)Ca=Ba;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(73124,14);Lg(3196396);Lg(73153);Lg(73180);Lg(3196396);Jg(73209,7);Lg(97399);Jg(73236,7);Jg(73245,7);Jg(66183,7);Lg(97401);Ca=1}if((au(v,73254)|0)!=0?(au(v,73256)|0)!=0:0)Da=Ca;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(73259,14);Lg(3196396);Lg(73283);Lg(73310);Lg(73340);Lg(3196396);Jg(73352,7);Lg(97393);Lg(3196396);Lg(73363);Lg(73393);Lg(73423);Lg(3196396);Lg(73454);Lg(73484);Lg(73513);Lg(73546);Lg(3196396);Jg(73575,12);Da=1}if((au(v,73608)|0)!=0?(au(v,73610)|0)!=0:0)Ea=Da;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(73613,14);Lg(3196396);Lg(73639);Lg(73672);Lg(3196396);Jg(73693,7);Lg(73721);Jg(73725,7);Lg(97399);Lg(3196396);Jg(73737,13);Jg(73768,13);Jg(73800,13);Ea=1}if((au(v,96845)|0)!=0?(au(v,73829)|0)!=0:0)Fa=Ea;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(73833,14);Lg(3196396);Lg(73864);Lg(73896);Lg(73929);Lg(3196396);Jg(73961,7);Lg(73982);Jg(73994,7);Jg(74002,7);Lg(74017);Fa=1}if(!(au(v,74024)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(74028,14);Lg(3196396);Lg(74045);Lg(3196396);Jg(74077,7);Jg(74101,7);Jg(74110,7);Jg(63997,7);Jg(74129,7);Lg(64160);Lg(97393);Lg(97395);Lg(97397);Lg(3196396);Jg(74146,12);Ga=1}else Ga=Fa;do if(au(v,74175)|0){if(!(au(v,74182)|0)){N=321;break}if(au(v,74189)|0)Ha=Ga;else N=321}else N=321;while(0);if((N|0)==321){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(74194,14);Jg(74211,14);Jg(74224,14);Lg(3196396);Lg(74239);Lg(74268);Lg(3196396);Lg(74298);Lg(3196396);Lg(74331);Lg(74359);Lg(74387);Lg(3196396);Jg(74419,7);Jg(74440,7);Jg(74466,7);Jg(74496,7);Jg(63997,7);Jg(74515,7);Ha=1}if(!(au(v,74547)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(74554,6);Lg(3196396);Jg(74577,12);Jg(74603,12);Jg(74631,12);Jg(3196396,12);Jg(74658,6);Lg(3196396);Jg(74676,12);Jg(74705,12);Jg(74735,12);Jg(3196396,12);Jg(74762,6);Lg(3196396);Jg(74774,12);Lg(3196396);Jg(74804,6);Lg(3196396);Jg(62502,12);Ja=1}else Ja=Ha;if(!(au(v,74812)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Lg(74818);Jg(74850,14);Lg(3196396);Lg(74860);Lg(74889);Lg(74921);Ka=1}else Ka=Ja;if(!(au(v,74948)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(74954,14);Lg(3196396);Lg(74964);Lg(74991);Lg(75018);Lg(75047);Lg(75074);Lg(75100);Lg(75131);Lg(75162);La=1}else La=Ka;if((au(v,75186)|0)!=0?(au(v,75194)|0)!=0:0)Ma=La;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(75204,14);Lg(3196396);Lg(75228);Lg(75256);Lg(75287);Lg(75318);Lg(75345);Lg(75372);Ma=1}if(!(au(v,75380)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(75384,6);Lg(3196396);Jg(75404,12);Jg(75435,12);Jg(75465,12);Jg(75495,12);Jg(75519,12);Jg(75539,12);Jg(75569,12);Na=1}else Na=Ma;if(!(au(v,75588)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(75593,14);Lg(3196396);Lg(75602);Lg(75635);Lg(3196396);Lg(75661);Lg(75692);Lg(75724);Lg(3196396);Lg(75737);Lg(3196396);Jg(75764,7);Jg(75779,7);Jg(75811,7);Jg(63997,7);Oa=1}else Oa=Na;if(!(au(v,75819)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(75826,14);Lg(3196396);Lg(75841);Lg(75871);Lg(3196396);Lg(75899);Pa=1}else Pa=Oa;if(!(au(v,75917)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(75922,14);Lg(3196396);Lg(75953);Lg(75984);Lg(76015);Lg(76047);Qa=1}else Qa=Pa;if(!(au(v,76068)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(76072,14);Lg(3196396);Lg(76085);Lg(76116);Lg(76149);Ra=1}else Ra=Qa;if(!(au(v,76159)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(76165,14);Lg(3196396);Lg(76180);Lg(76211);Lg(76240);Lg(3196396);Lg(76270);Lg(76301);Lg(76332);Lg(76363);Lg(3196396);Lg(76383);Lg(3196396);Lg(76412);Lg(76445);Lg(76478);Sa=1}else Sa=Ra;if((au(v,76508)|0)!=0?(au(v,76512)|0)!=0:0)Ta=Sa;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(76520,14);Lg(3196396);Lg(76539);Lg(3196396);Lg(76570);Lg(76595);Lg(76613);Lg(3196396);Lg(76633);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Lg(3196396);Sa=0;do{Ra=(Sa*10|0)+-40|0;Qa=Sa<<2;Pa=Ra+(c[781024]|0)|0;Pn(c[742782]|0,2,Pa,13,Pa+9|0,Qa);c[h>>2]=Qa;wt(j,76653,h)|0;Bo(c[742782]|0,j,c[742805]|0,4,Pa+2|0,1,7)|0;Pa=Ra+(c[781024]|0)|0;Oa=Qa|1;Pn(c[742782]|0,14,Pa,25,Pa+9|0,Oa);c[g>>2]=Oa;wt(j,76653,g)|0;Bo(c[742782]|0,j,c[742805]|0,16,Pa+2|0,1,7)|0;Pa=Ra+(c[781024]|0)|0;Oa=Qa|2;Pn(c[742782]|0,26,Pa,37,Pa+9|0,Oa);c[f>>2]=Oa;wt(j,76653,f)|0;Bo(c[742782]|0,j,c[742805]|0,28,Pa+2|0,1,7)|0;Pa=Ra+(c[781024]|0)|0;Ra=Qa|3;Pn(c[742782]|0,38,Pa,49,Pa+9|0,Ra);c[e>>2]=Ra;wt(j,76653,e)|0;Bo(c[742782]|0,j,c[742805]|0,40,Pa+2|0,1,(Ra|0)==7?5:7)|0;Sa=Sa+1|0}while((Sa|0)!=4);Ta=1}if(!(au(v,76657)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(76662,14);Lg(3196396);Lg(76675);Lg(76707);Lg(76738);Lg(76768);Lg(3196396);Lg(76787);Lg(3196396);Lg(76816);Lg(76846);Lg(76876);Lg(76908);Lg(3196396);Lg(76940);Lg(76971);Lg(76984);Lg(77014);Ua=1}else Ua=Ta;if(!(au(v,77028)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(77034,14);Lg(3196396);Lg(77045);Lg(77076);Lg(77107);Lg(77139);Lg(77171);Lg(3196396);Lg(77204);Lg(77233);Lg(77262);Lg(77291);Lg(3196396);Lg(77320);Lg(3196396);Lg(3196396);Lg(77350);Lg(3196396);Lg(3196396);Ta=c[781024]|0;Sa=Ta+-29|0;j=c[781038]|0;c[781038]=33825;e=Ta+-21|0;Ck(c[742782]|0,4,Sa,60,e,120)|0;c[781038]=20640;Ck(c[742782]|0,64,Sa,120,e,120)|0;e=Ta+-11|0;c[781038]=47133;Ck(c[742782]|0,4,e,40,Ta,46)|0;c[781038]=20927;Ck(c[742782]|0,44,e,80,Ta,46)|0;c[781038]=31455;Ck(c[742782]|0,84,e,120,Ta,46)|0;c[781038]=j;Va=1}else Va=Ua;if(!(au(v,77378)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(77383,14);Lg(3196396);Lg(77415);Lg(77443);Lg(77472);Lg(77505);Wa=1}else Wa=Va;if((au(v,77519)|0)!=0?(au(v,77524)|0)!=0:0)Xa=Wa;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(77533,14);Jg(77563,14);Lg(3196396);Lg(77594);Lg(77621);Lg(77646);Lg(77672);Xa=1}if((au(v,77690)|0)!=0?(au(v,77696)|0)!=0:0)Ya=Xa;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(77706,14);Jg(77737,14);Lg(3196396);Lg(77594);Lg(77769);Lg(77799);Ya=1}if((au(v,77828)|0)!=0?(au(v,77833)|0)!=0:0)Za=Ya;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(77842,14);Jg(77872,14);Lg(3196396);Lg(77903);Lg(77932);Za=1}if((au(v,77953)|0)!=0?(au(v,77958)|0)!=0:0)_a=Za;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(77967,14);Jg(77994,14);Lg(3196396);Lg(78022);Lg(78052);Lg(78081);Lg(78109);_a=1}if(!(au(v,78116)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(78120,14);Jg(78146,14);Lg(3196396);Lg(78168);Lg(78198);Lg(78225);Lg(78258);Lg(3196396);Lg(78276);Lg(78308);Lg(78339);Lg(3196396);Lg(78369);Lg(78402);$a=1}else $a=_a;if((au(v,78430)|0)!=0?(au(v,78435)|0)!=0:0)bb=$a;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(78440,14);Jg(78452,14);Lg(3196396);Lg(78469);Lg(78501);Lg(78534);bb=1}if((au(v,78564)|0)!=0?(au(v,78569)|0)!=0:0)cb=bb;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(78574,14);Jg(78589,14);Jg(78610,14);Lg(3196396);Lg(78629);Lg(78662);Lg(78693);Lg(78726);Lg(3196396);Lg(78759);Lg(78784);Lg(78815);Lg(78848);Lg(3196396);Lg(78870);Lg(78901);cb=1}if(!(au(v,78930)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(78936,14);Jg(78966,14);Lg(3196396);Lg(78991);Lg(79023);Lg(79052);Lg(79080);Lg(79113);Lg(3196396);Lg(79144);Lg(79174);Lg(79204);Lg(3196396);Lg(79235);Lg(79247);Lg(79275);Lg(79304);Lg(79330);Lg(79356);db=1}else db=cb;if(!(au(v,79382)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(79386,14);Jg(79409,14);Lg(3196396);Lg(79431);Lg(3196396);Lg(79453);Lg(79484);Lg(79517);Lg(3196396);Lg(79538);Lg(79570);Lg(3196396);Lg(79603);Lg(79632);eb=1}else eb=db;if(!(au(v,79657)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(79662,14);Jg(79693,14);Lg(3196396);Lg(79725);Lg(79757);Lg(3196396);Lg(79782);Lg(79813);Lg(79845);Lg(3196396);Lg(79603);Lg(79871);gb=1}else gb=eb;if((au(v,79897)|0)!=0?(au(v,79902)|0)!=0:0)hb=gb;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(79907,14);Jg(79919,14);Lg(3196396);Lg(79936);Lg(79968);hb=1}if((au(v,79995)|0)!=0?(au(v,8e4)|0)!=0:0)ib=hb;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(80005,14);Jg(80017,14);Lg(3196396);Lg(79936);Lg(80034);ib=1}if((au(v,80056)|0)!=0?(au(v,80062)|0)!=0:0)jb=ib;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(80064,14);Jg(80090,14);Lg(3196396);Lg(80111);Lg(80140);Lg(3196396);Lg(80171);Lg(80200);Lg(3196396);Lg(80223);Lg(3196396);Jg(80232,13);Lg(80251);Lg(80281);Lg(80311);Lg(80329);Lg(80360);Lg(80391);Lg(80408);jb=1}if(!(au(v,80416)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(80423,14);Jg(80449,14);Lg(3196396);Lg(80478);Lg(80509);Lg(80538);Lg(80571);Lg(80597);Lg(3196396);Lg(80616);Lg(80649);Lg(80674);Lg(80705);Lg(80738);kb=1}else kb=jb;if(!(au(v,80747)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(80754,14);Lg(3196396);Lg(80775);Lg(3196396);Lg(80799);Lg(80833);lb=1}else lb=kb;do if(au(v,80854)|0){if(!(au(v,80859)|0)){N=455;break}if(au(v,80865)|0){mb=lb;nb=0}else N=455}else N=455;while(0);do if((N|0)==455){if(!u){mb=1;nb=1;break}c[781024]=0;c[781023]=0;Nn(c[742782]|0);mb=1;nb=1}while(0);do if(au(v,80871)|0){if(!(au(v,80873)|0)){N=459;break}if(!nb){ob=mb;break}if(!u)N=464;else N=463}else N=459;while(0);do if((N|0)==459){if(!u){N=464;break}c[781024]=0;c[781023]=0;Nn(c[742782]|0);N=463}while(0);if((N|0)==463){c[781024]=0;c[781023]=0;Nn(c[742782]|0);N=464}if((N|0)==464){Jg(80875,14);Lg(3196396);Lg(80893);Lg(80926);Lg(80959);Lg(80991);Lg(81024);Lg(3196396);Lg(81048);Lg(3196396);Jg(81078,7);Lg(3196396);Lg(81100);Lg(3196396);Jg(81125,7);Jg(81146,7);Jg(81168,7);ob=1}do if(au(v,81190)|0){if(!(au(v,81195)|0)){N=468;break}if(au(v,81201)|0)pb=ob;else N=468}else N=468;while(0);if((N|0)==468){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(81207,14);Lg(3196396);Lg(81239);Lg(81270);Lg(81299);Lg(81331);Lg(3196396);Lg(81348);Lg(3196396);Jg(81378,7);pb=1}if(!(au(v,81408)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(81415,14);Lg(3196396);Lg(81440);Lg(81471);Lg(81499);Lg(3196396);Lg(81510);Lg(3196396);Lg(81539);qb=1}else qb=pb;if(!(au(v,81568)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(81575,14);Lg(3196396);Lg(81600);Lg(81632);Lg(81657);Lg(81688);Lg(3196396);Lg(81700);Lg(81733);Lg(3196396);Jg(81758,7);rb=1}else rb=qb;if(!(au(v,81788)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(81795,14);Lg(3196396);Lg(81826);Lg(81854);Lg(81883);Lg(3196396);Lg(81913);Lg(3196396);Lg(81942);Lg(81971);Lg(81999);Lg(3196396);Lg(82028);Lg(82055);Lg(82084);sb=1}else sb=rb;if(!(au(v,82100)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(82107,14);Lg(3196396);Lg(81826);Lg(82138);Lg(82169);Lg(3196396);Lg(82192);Lg(82222);tb=1}else tb=sb;if(!(au(v,82249)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(82258,14);Lg(3196396);Lg(82290);Lg(3196396);Lg(82321);Lg(82353);Lg(82382);Lg(3196396);Lg(82403);Lg(82432);Lg(82462);Lg(82495);Lg(3196396);Lg(82517);Lg(82547);Lg(82578);Lg(3196396);Lg(82587);Lg(82615);ub=1}else ub=tb;if(!(au(v,82643)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(82652,14);Lg(3196396);Lg(82667);Lg(82698);Lg(82730);Lg(82762);Lg(3196396);Lg(82793);Lg(82825);Lg(82857);Lg(82889);Lg(3196396);Lg(82908);Lg(82938);Lg(82968);Lg(82998);vb=1}else vb=ub;if((au(v,83028)|0)!=0?(au(v,83033)|0)!=0:0)wb=vb;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(83038,14);Jg(83048,14);Lg(3196396);Lg(83064);Lg(83096);Lg(3196396);Lg(83129);Lg(83159);Lg(83189);Lg(83219);Lg(3196396);Lg(83252);Lg(83280);Lg(83311);wb=1}if(!(au(v,83323)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(83327,14);Lg(3196396);Lg(83352);Lg(83385);Lg(83415);Lg(83448);Lg(83478);Lg(83508);Lg(83540);Lg(3196396);Jg(83568,7);Jg(83593,7);Jg(83619,7);Lg(3196396);Lg(83643);Lg(3196396);Jg(83675,7);Jg(83685,7);Lg(83692);xb=1}else xb=wb;if(!(au(v,83694)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(83698,14);Lg(3196396);Lg(83728);Lg(83758);Lg(3196396);Lg(83777);Jg(83782,7);Lg(3196396);Lg(83792);Jg(83801,7);yb=1}else yb=xb;if(!(au(v,83827)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(83831,14);Lg(3196396);Lg(83856);Lg(83888);Lg(3196396);Lg(83921);Lg(83953);Lg(3196396);Jg(83983,7);Jg(84004,7);Lg(3196396);Lg(84025);Jg(84037,7);Lg(3196396);Lg(84060);Jg(84090,7);zb=1}else zb=yb;if(!(au(v,84123)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(84129,14);Lg(3196396);Lg(3196396);Lg(84159);Lg(84190);Lg(84216);Lg(3196396);Lg(84248);Lg(84280);Lg(84309);Lg(84339);Lg(3196396);Jg(84351,7);Jg(84377,7);Jg(84407,7);Lg(84436);Ab=1}else Ab=zb;if(!(au(v,84459)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(84465,14);Lg(3196396);Lg(84488);Lg(3196396);Lg(84513);Lg(3196396);Lg(84535);Lg(84567);Lg(3196396);Lg(84590);Lg(84611);Lg(84641);Lg(84670);Bb=1}else Bb=Ab;if(!(au(v,84696)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(84702,14);Lg(3196396);Lg(84725);Lg(84753);Lg(84783);Lg(3196396);Lg(84513);Lg(3196396);Lg(84796);Lg(84827);Lg(84854);Lg(84885);Lg(84914);Lg(3196396);Jg(84945,7);Jg(84974,7);Jg(85002,7);Jg(85025,7);Cb=1}else Cb=Bb;if(!(au(v,85042)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(85046,14);Lg(3196396);Lg(85071);Lg(85101);Lg(3196396);Jg(85121,7);Lg(3196396);Lg(85141);Lg(85168);Lg(85194);Lg(3196396);Jg(85204,7);Jg(85219,7);Lg(3196396);Jg(85249,13);Jg(85278,13);Db=1}else Db=Cb;if(!(au(v,85302)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(85306,14);Lg(3196396);Lg(85322);Lg(85351);Lg(85381);Lg(3196396);Lg(85413);Lg(85445);Lg(3196396);Jg(85477,7);Jg(85490,7);Lg(3196396);Jg(85249,13);Jg(85278,13);Eb=1}else Eb=Db;if(!(au(v,85511)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(85516,14);Lg(3196396);Lg(85535);Lg(85565);Lg(85381);Lg(3196396);Lg(85413);Lg(85445);Lg(3196396);Lg(85596);Lg(85628);Lg(3196396);Jg(85654,7);Jg(85666,7);Jg(85686,7);Lg(3196396);Jg(85249,13);Jg(85278,13);Fb=1}else Fb=Eb;if(!(au(v,85704)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(85708,14);Lg(3196396);Lg(85719);Lg(85748);Lg(3196396);Jg(85775,7);Jg(85785,7);Jg(85798,7);Jg(85817,7);Jg(63997,7);Jg(85830,7);Lg(3196396);Jg(85249,13);Jg(85278,13);Gb=1}else Gb=Fb;if(!(au(v,85841)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(85849,14);Lg(3196396);Lg(85870);Lg(85903);Lg(85936);Lg(3196396);Jg(85952,7);Lg(97393);Lg(97395);Lg(85982);Lg(3196396);Jg(85249,13);Jg(85278,13);Hb=1}else Hb=Gb;if(!(au(v,85986)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(85992,14);Lg(3196396);Lg(86005);Lg(86036);Lg(86068);Lg(86100);Lg(86129);Lg(86162);Lg(3196396);Jg(86187,7);Jg(86217,7);Jg(86240,7);Jg(63997,7);Lg(3196396);Lg(86268);Lg(86279);Ib=1}else Ib=Hb;if(!(au(v,86293)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(86297,14);Lg(3196396);Lg(86316);Lg(86345);Lg(86371);Lg(3196396);Lg(86393);Lg(86424);Lg(86456);Jb=1}else Jb=Ib;if(!(au(v,86465)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(86470,14);Lg(3196396);Lg(86488);Lg(86515);Lg(86544);Lg(3196396);Lg(86555);Lg(86585);Lg(86613);Lg(86645);Kb=1}else Kb=Jb;if(!(au(v,86658)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(86665,14);Jg(86676,14);Lg(3196396);Lg(86683);Lg(86709);Lg(86739);Lg(3196396);Lg(86759);Lg(86788);Lg(86819);Lg(86852);Lb=1}else Lb=Kb;if(!(au(v,86860)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(86866,14);Lg(3196396);Lg(86876);Lg(86907);Lg(86939);Lg(3196396);Lg(86947);Lg(86974);Lg(87005);Lg(3196396);Lg(87019);Lg(87052);Lg(87084);Lg(87115);Lg(87144);Mb=1}else Mb=Lb;if(!(au(v,87153)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(87159,14);Lg(3196396);Lg(87169);Lg(87195);Lg(87221);Lg(3196396);Lg(87243);Jg(87264,12);Nb=1}else Nb=Mb;do if(au(v,87273)|0){if(!(au(v,87264)|0)){N=572;break}if(!(au(v,87282)|0)){N=572;break}if(au(v,87292)|0)Ob=Nb;else N=572}else N=572;while(0);if((N|0)==572){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(87303,14);Jg(87317,14);Lg(3196396);Lg(87347);Lg(87373);Lg(87401);Lg(3196396);Jg(87425,7);Jg(87440,7);Jg(87465,7);Jg(87475,7);Jg(87465,7);Jg(87499,7);Jg(63997,7);Jg(3196396,7);Jg(87517,7);Jg(87535,7);Jg(87567,7);Jg(87598,7);Ob=1}if(!(au(v,87626)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(87635,14);Lg(3196396);Lg(87649);Lg(87673);Lg(3196396);Lg(87698);Lg(87708);Lg(87720);Pb=1}else Pb=Ob;if((au(v,87727)|0)!=0?(au(v,87732)|0)!=0:0)Qb=Pb;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(87734,14);Jg(87743,14);Lg(3196396);Lg(87750);Lg(87780);Lg(87806);Lg(87837);Qb=1}if(!(au(v,87864)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(87873,14);Lg(3196396);Lg(87905);Lg(87936);Lg(87964);Lg(3196396);Lg(87988);Lg(88019);Lg(88050);Lg(88079);Lg(88110);Lg(88140);Lg(3196396);Jg(88166,7);Jg(88197,7);Jg(88218,7);Lg(3196396);Lg(88223);Lg(88252);Rb=1}else Rb=Qb;if(!(au(v,88284)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(88289,14);Lg(3196396);Lg(88299);Lg(88317);Lg(88343);Lg(88369);Lg(88391);Lg(88411);Lg(88432);Lg(88460);Lg(88491);Lg(88521);Lg(88547);Lg(88575);Lg(88603);Lg(88634);Lg(88653);Sb=1}else Sb=Rb;if(!(au(v,88683)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(88690,14);Lg(3196396);Lg(88719);Lg(88747);Lg(3196396);Lg(88770);Lg(3196396);Lg(88779);Lg(88811);Lg(88835);Lg(88868);Lg(88888);Lg(88901);Tb=1}else Tb=Sb;if(!(au(v,88915)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(88922,14);Lg(3196396);Lg(88940);Lg(88971);Lg(3196396);Lg(89002);Lg(89020);Lg(89038);Lg(89071);Lg(89093);Lg(89119);Lg(89146);Lg(89175);Lg(89205);Lg(89238);Lg(89270);Lg(89301);Ub=1}else Ub=Tb;if(!(au(v,89329)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(89334,14);Jg(89352,14);Jg(89384,14);Lg(3196396);Lg(89400);Lg(89430);Lg(89458);Lg(89490);Lg(89521);Lg(89551);Lg(89580);Lg(89611);Lg(3196396);Lg(89640);Lg(89670);Vb=1}else Vb=Ub;if(!(au(v,89701)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(89706,14);Lg(3196396);Lg(89724);Lg(89756);Lg(89785);Lg(89818);Lg(3196396);Jg(89839,7);Lg(89850);Lg(3196396);Lg(89863);Lg(89896);Lg(89928);Lg(3196396);Lg(89961);Jg(89988,7);Lg(3196396);Lg(9e4);Lg(90031);Wb=1}else Wb=Vb;if(!(au(v,90056)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(90063,14);Lg(3196396);Lg(90083);Lg(90114);Lg(90144);Lg(3196396);Lg(90177);Lg(90206);Lg(90236);Lg(3196396);Jg(90266,7);Xb=1}else Xb=Wb;if(!(au(v,90290)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(90297,14);Lg(3196396);Lg(90318);Lg(3196396);Lg(90347);Lg(90366);Lg(90396);Lg(90424);Lg(90451);Lg(90474);Lg(3196396);Lg(90503);Jg(90517,7);Lg(3196396);Lg(90539);Jg(90569,7);Lg(3196396);Lg(90592);Jg(90610,7);Yb=1}else Yb=Xb;if(!(au(v,90642)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(90647,14);Lg(3196396);Lg(90656);Lg(90687);Lg(3196396);Lg(90715);Lg(90725);Lg(90741);Zb=1}else Zb=Yb;if(!(au(v,90758)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(90765,14);Lg(3196396);Lg(90784);Lg(90815);Lg(3196396);Lg(90838);Lg(90869);Lg(3196396);Lg(90889);Lg(90898);Lg(90906);Lg(90911);Lg(3196396);Lg(90920);Lg(90952);Lg(90985);_b=1}else _b=Zb;if(!(au(v,91017)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(91026,14);Lg(3196396);Lg(91039);Lg(91070);Lg(3196396);Lg(91093);Lg(3196396);Lg(91122);Lg(91140);$b=1}else $b=_b;if((au(v,91162)|0)!=0?(au(v,91165)|0)!=0:0)ac=$b;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(91169,14);Lg(3196396);Lg(91183);Lg(91208);Lg(3196396);Lg(91224);ac=1}if(!(au(v,91250)|0)){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(91257,14);Lg(3196396);Lg(91039);Lg(91268);Lg(3196396);Lg(91292);Lg(91323);bc=1}else bc=ac;if((au(v,91350)|0)!=0?(au(v,92375)|0)!=0:0)cc=bc;else{if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(91357,14);Jg(91368,14);Lg(3196396);Lg(91375);Lg(91401);Lg(3196396);Lg(91420);Lg(91449);Lg(91478);Lg(3196396);Lg(91508);Lg(91536);Lg(91564);cc=1}do if(!(au(v,91573)|0))N=644;else{if(!(au(v,91579)|0)){N=644;break}if(cc|0)break;Jg(91783,13);Lg(v);Ia=d;return}while(0);if((N|0)==644){if(u|0){c[781024]=0;c[781023]=0;Nn(c[742782]|0)}Jg(91586,14);Jg(91596,14);Lg(3196396);Lg(91608);Lg(91634);Lg(91666);Lg(91697);Lg(91728);Lg(3196396);Lg(91760)}Lg(3196396);Ia=d;return}function jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=0;c[f>>2]=0;c[g>>2]=0;$r(b,e,f,g);a:do if((a|0)<4){b=c[e>>2]|0;h=B((b|0)/2|0,b)|0;i=c[f>>2]|0;b:do if(((B((i|0)/2|0,i)|0)+h|0)>134217728)switch(a|0){case 0:{j=b<<8;k=0-j|0;if((32767-j|0)>>>0>8388606){l=(k|0)<-32767?0:255;break a}l=(k|0)/32768|0;break a;break}case 1:{if((b+127|0)>>>0>32766){l=(b|0)<-127?0:255;break a}l=(b|0)/128|0;break a;break}case 2:{k=i<<8;j=0-k|0;if((32767-k|0)>>>0>8388606){l=(j|0)<-32767?0:255;break a}l=(j|0)/32768|0;break a;break}case 3:{if((i+127|0)>>>0>32766){l=(i|0)<-127?0:255;break a}l=(i|0)/128|0;break a;break}default:break b}else switch(a|0){case 0:{if(!(c[g>>2]&8192))break b;else{l=255;break a}break}case 1:{if(!(c[g>>2]&16384))break b;else{l=255;break a}break}case 2:{if(!(c[g>>2]&2048))break b;else{l=255;break a}break}case 3:{if(!(c[g>>2]&4096))break b;else{l=255;break a}break}default:break b}while(0);l=0}else switch(a|0){case 4:{l=(c[g>>2]&9|0)==0?0:255;break a;break}case 5:{l=(c[g>>2]&6|0)==0?0:255;break a;break}case 6:{l=(c[g>>2]&64|0)==0?0:255;break a;break}default:{l=0;break a}}while(0);Ia=d;return l|0}function kl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if(b>>>0>7){d=0;return d|0}e=b-(c[484613]|0)|0;b=c[484614]|0;f=(b|0)>1?b:1;if(e|0){if((e|0)<=0){d=0;return d|0}d=jl(a,e+-1+f|0)|0;return d|0}if((f|0)<=0){d=0;return d|0}e=0;b=0;while(1){g=jl(a,e)|0;h=(b|0)>(g|0)?b:g;e=e+1|0;if(e>>>0>=f>>>0){d=h;break}else b=h}return d|0}function ll(a){a=a|0;return ((c[484629]|0)==(a|0)|(c[484630]|0)==(a|0)|(c[484631]|0)==(a|0)|(c[484632]|0)==(a|0)|(c[484633]|0)==(a|0)|(c[484634]|0)==(a|0))&1|0}function ml(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d+4|0;g=d;h=(b|0)==0;a:do if(h){switch(a|0){case 0:{i=c[484629]|0;j=(i|0)==0?80:i;k=0;l=0;m=9;break}case 1:{i=c[484630]|0;j=(i|0)==0?79:i;k=0;l=0;m=9;break}case 2:{i=c[484631]|0;j=(i|0)==0?82:i;k=0;l=0;m=9;break}case 3:{i=c[484632]|0;j=(i|0)==0?81:i;k=0;l=0;m=9;break}case 4:{i=c[484633]|0;j=(i|0)==0?29:i;k=1;l=0;m=9;break}case 5:{i=c[484634]|0;j=(i|0)==0?27:i;k=0;l=1;m=9;break}default:{n=0;o=0;p=0}}if((m|0)==9){n=k;o=l;p=qo(j)|0}if(!(qo(-5)|0)){if(n){i=c[484633]|0;q=qo((i|0)==0?6:i)|0|p}else q=p;if(o){i=c[484634]|0;r=qo((i|0)==0?25:i)|0|q}else r=q}else r=p;if(n){i=c[484633]|0;s=qo((i|0)==0?17:i)|0|r}else s=r;if(o&(qo(-5)|0)==0){i=c[484634]|0;t=qo((i|0)==0?16:i)|0|s}else t=s;i=(a|0)==6;if(i){u=c[484641]|0;v=qo((u|0)==0?19:u)|0|t;u=c[484641]|0;w=v|(qo((u|0)==0?40:u)|0)}else w=t;if(i&((c[798799]|0)==2&(((c[780894]|0)!=1|(c[780901]|0)==0|(c[485555]|0)!=0)^1))){i=c[484641]|0;x=qo((i|0)==0?41:i)|0|w}else x=w}else{if((b|0)!=1){if(!(a>>>0<6&(b|1|0)==3)){x=0;break}i=c[1938516+((b*6|1)+a<<2)>>2]|0;if((i|0)<=0){x=0;break}x=(qo(i)|0)!=0&1;break}switch(a|0){case 0:{i=c[484635]|0;if(!i){x=qo(22)|0;break a}else{x=qo(i)|0;break a}break}case 1:{i=c[484636]|0;if(!i){x=qo(9)|0;break a}else{x=qo(i)|0;break a}break}case 2:{i=c[484637]|0;if(!i){x=qo(8)|0;break a}else{x=qo(i)|0;break a}break}case 3:{i=c[484638]|0;if(!i){x=qo(7)|0;break a}else{x=qo(i)|0;break a}break}case 4:{i=c[484639]|0;u=qo((i|0)==0?225:i)|0;i=c[484639]|0;v=qo((i|0)==0?43:i)|0|u;u=c[484639]|0;x=v|(qo((u|0)==0?26:u)|0);break a;break}case 5:{u=c[484640]|0;v=qo((u|0)==0?4:u)|0;u=c[484640]|0;x=qo((u|0)==0?20:u)|0|v;break a;break}default:{x=0;break a}}}while(0);w=c[3125228+(b<<2)>>2]|0;b=x|(w|0)!=-1&(w&1<<a|0)!=0&1;if(!((a+-4|0)>>>0<3&h)){y=b;Ia=d;return y|0}if((($k(2971096,c[781999]|0,24365)|0)&3|0)!=3){y=b;Ia=d;return y|0}cs(e,f,g);switch(a|0){case 4:{z=c[g>>2]&2;break}case 5:{z=c[g>>2]&1;break}default:z=c[g>>2]&4}y=(z|0)==0?b:x|1;Ia=d;return y|0}function nl(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;a=(c[485558]|0)==0?0:2;b=c[485555]|0;d=a;while(1){c[3124700+(d<<2)>>2]=1;c[3124188+(d<<2)>>2]=0;if(!b){e=$k(2971096,c[781999]|0,24412)|0;f=c[485555]|0;g=(e|0)==0?15:e}else{f=b;g=15}h=c[554962]|0;if(!(f|h)){e=c[798455]|0;i=(e|0)>0?e:30}else i=30;c[3125260+(d<<2)>>2]=((B(i,g)|0)/30|0)+1;d=d+1|0;if((d|0)==8)break;else b=f}b=h;h=f;f=a;while(1){c[3124732+(f<<2)>>2]=1;c[3124220+(f<<2)>>2]=0;if(!h){d=$k(2971096,c[781999]|0,24412)|0;j=c[485555]|0;k=c[554962]|0;l=(d|0)==0?15:d}else{j=h;k=b;l=15}if(!(j|k)){d=c[798455]|0;m=(d|0)>0?d:30}else m=30;c[3125292+(f<<2)>>2]=((B(m,l)|0)/30|0)+1;f=f+1|0;if((f|0)==8)break;else{b=k;h=j}}h=j;j=k;k=a;while(1){c[3124764+(k<<2)>>2]=1;c[3124252+(k<<2)>>2]=0;if(!h){b=$k(2971096,c[781999]|0,24412)|0;n=c[485555]|0;o=c[554962]|0;p=(b|0)==0?15:b}else{n=h;o=j;p=15}if(!(n|o)){b=c[798455]|0;q=(b|0)>0?b:30}else q=30;c[3125324+(k<<2)>>2]=((B(q,p)|0)/30|0)+1;k=k+1|0;if((k|0)==8)break;else{h=n;j=o}}j=n;n=o;o=a;while(1){c[3124796+(o<<2)>>2]=1;c[3124284+(o<<2)>>2]=0;if(!j){h=$k(2971096,c[781999]|0,24412)|0;r=c[485555]|0;s=c[554962]|0;t=(h|0)==0?15:h}else{r=j;s=n;t=15}if(!(r|s)){h=c[798455]|0;u=(h|0)>0?h:30}else u=30;c[3125356+(o<<2)>>2]=((B(u,t)|0)/30|0)+1;o=o+1|0;if((o|0)==8)break;else{j=r;n=s}}n=r;r=s;s=a;while(1){c[3124828+(s<<2)>>2]=1;c[3124316+(s<<2)>>2]=0;if(!n){j=$k(2971096,c[781999]|0,24412)|0;v=c[485555]|0;w=c[554962]|0;x=(j|0)==0?15:j}else{v=n;w=r;x=15}if(!(v|w)){j=c[798455]|0;y=(j|0)>0?j:30}else y=30;c[3125388+(s<<2)>>2]=((B(y,x)|0)/30|0)+1;s=s+1|0;if((s|0)==8)break;else{n=v;r=w}}r=v;v=w;w=a;while(1){c[3124860+(w<<2)>>2]=1;c[3124348+(w<<2)>>2]=0;if(!r){n=$k(2971096,c[781999]|0,24412)|0;z=c[485555]|0;A=c[554962]|0;C=(n|0)==0?15:n}else{z=r;A=v;C=15}if(!(z|A)){n=c[798455]|0;D=(n|0)>0?n:30}else D=30;c[3125420+(w<<2)>>2]=((B(D,C)|0)/30|0)+1;w=w+1|0;if((w|0)==8)break;else{r=z;v=A}}v=z;z=A;A=a;while(1){c[3124892+(A<<2)>>2]=1;c[3124380+(A<<2)>>2]=0;if(!v){r=$k(2971096,c[781999]|0,24412)|0;E=c[485555]|0;F=c[554962]|0;G=(r|0)==0?15:r}else{E=v;F=z;G=15}if(!(E|F)){r=c[798455]|0;H=(r|0)>0?r:30}else H=30;c[3125452+(A<<2)>>2]=((B(H,G)|0)/30|0)+1;A=A+1|0;if((A|0)==8)break;else{v=E;z=F}}z=E;E=F;F=a;while(1){c[3124924+(F<<2)>>2]=1;c[3124412+(F<<2)>>2]=0;if(!z){a=$k(2971096,c[781999]|0,24412)|0;I=c[485555]|0;J=c[554962]|0;K=(a|0)==0?15:a}else{I=z;J=E;K=15}if(!(I|J)){a=c[798455]|0;L=(a|0)>0?a:30}else L=30;c[3125484+(F<<2)>>2]=((B(L,K)|0)/30|0)+1;F=F+1|0;if((F|0)==8)break;else{z=I;E=J}}return}function ol(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;Wv(3124188,0,256)|0;if((c[535463]|0)>0){c[781047]=tp(2)|0;c[781048]=tp(2)|0;c[781049]=tp(2)|0;c[781050]=tp(2)|0;c[781051]=tp(2)|0;c[781052]=tp(2)|0;c[781055]=tp(2)|0;c[781056]=tp(2)|0;c[781057]=tp(2)|0;c[781058]=tp(2)|0;c[781059]=tp(2)|0;c[781060]=tp(2)|0;c[781063]=tp(2)|0;c[781064]=tp(2)|0;c[781065]=tp(2)|0;c[781066]=tp(2)|0;c[781067]=tp(2)|0;c[781068]=tp(2)|0;c[781071]=tp(2)|0;c[781072]=tp(2)|0;c[781073]=tp(2)|0;c[781074]=tp(2)|0;c[781075]=tp(2)|0;c[781076]=tp(2)|0;c[781079]=tp(2)|0;c[781080]=tp(2)|0;c[781081]=tp(2)|0;c[781082]=tp(2)|0;c[781083]=tp(2)|0;c[781084]=tp(2)|0;c[781087]=tp(2)|0;c[781088]=tp(2)|0;c[781089]=tp(2)|0;c[781090]=tp(2)|0;c[781091]=tp(2)|0;c[781092]=tp(2)|0;c[781095]=tp(2)|0;c[781096]=tp(2)|0;c[781097]=tp(2)|0;c[781098]=tp(2)|0;c[781099]=tp(2)|0;c[781100]=tp(2)|0;c[781103]=tp(2)|0;c[781104]=tp(2)|0;c[781105]=tp(2)|0;c[781106]=tp(2)|0;c[781107]=tp(2)|0;c[781108]=tp(2)|0;return}a=0;do{b=0;do{do if(!(ml(b,a)|0)){d=a-(c[484613]|0)|0;e=c[484614]|0;f=(e|0)>1?e:1;if(!d){if((f|0)>0){e=0;g=0;while(1){h=jl(b,e)|0;i=(g|0)>(h|0)?g:h;e=e+1|0;if(e>>>0>=f>>>0){j=i;k=12;break}else g=i}}}else if((d|0)>0){j=jl(b,d+-1+f|0)|0;k=12}if((k|0)==12?(k=0,(j|0)>128):0){k=13;break}c[3124700+(a<<5)+(b<<2)>>2]=0}else k=13;while(0);if(((k|0)==13?(k=0,(c[3124700+(a<<5)+(b<<2)>>2]|0)==0):0)?(c[3124188+(a<<5)+(b<<2)>>2]=1,(c[3124444+(a<<5)+(b<<2)>>2]|0)==0):0){g=c[485555]|0;if(!g){e=$k(2971096,c[781999]|0,24412)|0;l=c[485555]|0;m=(e|0)==0?15:e}else{l=g;m=15}if(!(l|c[554962])){g=c[798455]|0;n=(g|0)>0?g:30}else n=30;c[3125260+(a<<5)+(b<<2)>>2]=((B(n,m)|0)/30|0)+1}b=b+1|0}while((b|0)!=8);a=a+1|0}while((a|0)!=8);c[781303]=c[554951];c[781304]=c[554952];c[554951]=0;c[554952]=0;c[781305]=c[554957];c[781306]=c[554958];c[554957]=0;c[554958]=0;if(!(c[485591]|0))return;c[781053]=1;c[485591]=0;return}function pl(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0;if((c[780894]|0)!=1|(c[780901]|0)==0|(c[485555]|0)!=0)a=0;else{ol();a=1}b=0;do{d=3124956+(b<<5)|0;c[d>>2]=0;e=c[3124188+(b<<5)>>2]|0;f=3124444+(b<<5)|0;do if(e|0){if(c[f>>2]|0?(c[3125260+(b<<5)>>2]|0)!=1:0)break;if(!(c[3124700+(b<<5)>>2]|0))c[d>>2]=1}while(0);c[f>>2]=e;d=3124956+(b<<5)+4|0;c[d>>2]=0;g=c[3124188+(b<<5)+4>>2]|0;h=3124444+(b<<5)+4|0;do if(g|0){if(c[h>>2]|0?(c[3125260+(b<<5)+4>>2]|0)!=1:0)break;if(!(c[3124700+(b<<5)+4>>2]|0))c[d>>2]=1}while(0);c[h>>2]=g;d=3124956+(b<<5)+8|0;c[d>>2]=0;e=c[3124188+(b<<5)+8>>2]|0;f=3124444+(b<<5)+8|0;do if(e|0){if(c[f>>2]|0?(c[3125260+(b<<5)+8>>2]|0)!=1:0)break;if(!(c[3124700+(b<<5)+8>>2]|0))c[d>>2]=1}while(0);c[f>>2]=e;d=3124956+(b<<5)+12|0;c[d>>2]=0;g=c[3124188+(b<<5)+12>>2]|0;h=3124444+(b<<5)+12|0;do if(g|0){if(c[h>>2]|0?(c[3125260+(b<<5)+12>>2]|0)!=1:0)break;if(!(c[3124700+(b<<5)+12>>2]|0))c[d>>2]=1}while(0);c[h>>2]=g;d=3124956+(b<<5)+16|0;c[d>>2]=0;e=c[3124188+(b<<5)+16>>2]|0;f=3124444+(b<<5)+16|0;do if(e|0){if(c[f>>2]|0?(c[3125260+(b<<5)+16>>2]|0)!=1:0)break;if(!(c[3124700+(b<<5)+16>>2]|0))c[d>>2]=1}while(0);c[f>>2]=e;d=3124956+(b<<5)+20|0;c[d>>2]=0;g=c[3124188+(b<<5)+20>>2]|0;h=3124444+(b<<5)+20|0;do if(g|0){if(c[h>>2]|0?(c[3125260+(b<<5)+20>>2]|0)!=1:0)break;if(!(c[3124700+(b<<5)+20>>2]|0))c[d>>2]=1}while(0);c[h>>2]=g;d=3124956+(b<<5)+24|0;c[d>>2]=0;e=c[3124188+(b<<5)+24>>2]|0;f=3124444+(b<<5)+24|0;do if(e|0){if(c[f>>2]|0?(c[3125260+(b<<5)+24>>2]|0)!=1:0)break;if(!(c[3124700+(b<<5)+24>>2]|0))c[d>>2]=1}while(0);c[f>>2]=e;d=3124956+(b<<5)+28|0;c[d>>2]=0;g=c[3124188+(b<<5)+28>>2]|0;h=3124444+(b<<5)+28|0;do if(g|0){if(c[h>>2]|0?(c[3125260+(b<<5)+28>>2]|0)!=1:0)break;if(!(c[3124700+(b<<5)+28>>2]|0))c[d>>2]=1}while(0);c[h>>2]=g;b=b+1|0}while((b|0)!=8);if(($k(2971096,c[781999]|0,24412)|0)!=255){b=0;do{d=3125260+(b<<5)|0;e=c[d>>2]|0;if((e|0)>0?(f=e+-1|0,c[d>>2]=f,(f|0)==0):0){f=c[485555]|0;if(!f){e=$k(2971096,c[781999]|0,24413)|0;i=c[485555]|0;j=(e|0)==0?4:e}else{i=f;j=4}if(!(i|c[554962])){f=c[798455]|0;k=(f|0)>0?f:30}else k=30;c[d>>2]=(B(k,j)|0)/30|0}d=3125260+(b<<5)+4|0;f=c[d>>2]|0;if((f|0)>0?(e=f+-1|0,c[d>>2]=e,(e|0)==0):0){e=c[485555]|0;if(!e){f=$k(2971096,c[781999]|0,24413)|0;l=c[485555]|0;m=(f|0)==0?4:f}else{l=e;m=4}if(!(l|c[554962])){e=c[798455]|0;n=(e|0)>0?e:30}else n=30;c[d>>2]=(B(n,m)|0)/30|0}d=3125260+(b<<5)+8|0;e=c[d>>2]|0;if((e|0)>0?(f=e+-1|0,c[d>>2]=f,(f|0)==0):0){f=c[485555]|0;if(!f){e=$k(2971096,c[781999]|0,24413)|0;o=c[485555]|0;p=(e|0)==0?4:e}else{o=f;p=4}if(!(o|c[554962])){f=c[798455]|0;q=(f|0)>0?f:30}else q=30;c[d>>2]=(B(q,p)|0)/30|0}d=3125260+(b<<5)+12|0;f=c[d>>2]|0;if((f|0)>0?(e=f+-1|0,c[d>>2]=e,(e|0)==0):0){e=c[485555]|0;if(!e){f=$k(2971096,c[781999]|0,24413)|0;r=c[485555]|0;s=(f|0)==0?4:f}else{r=e;s=4}if(!(r|c[554962])){e=c[798455]|0;t=(e|0)>0?e:30}else t=30;c[d>>2]=(B(t,s)|0)/30|0}d=3125260+(b<<5)+16|0;e=c[d>>2]|0;if((e|0)>0?(f=e+-1|0,c[d>>2]=f,(f|0)==0):0){f=c[485555]|0;if(!f){e=$k(2971096,c[781999]|0,24413)|0;u=c[485555]|0;v=(e|0)==0?4:e}else{u=f;v=4}if(!(u|c[554962])){f=c[798455]|0;w=(f|0)>0?f:30}else w=30;c[d>>2]=(B(w,v)|0)/30|0}d=3125260+(b<<5)+20|0;f=c[d>>2]|0;if((f|0)>0?(e=f+-1|0,c[d>>2]=e,(e|0)==0):0){e=c[485555]|0;if(!e){f=$k(2971096,c[781999]|0,24413)|0;x=c[485555]|0;y=(f|0)==0?4:f}else{x=e;y=4}if(!(x|c[554962])){e=c[798455]|0;z=(e|0)>0?e:30}else z=30;c[d>>2]=(B(z,y)|0)/30|0}d=3125260+(b<<5)+24|0;e=c[d>>2]|0;if((e|0)>0?(f=e+-1|0,c[d>>2]=f,(f|0)==0):0){f=c[485555]|0;if(!f){e=$k(2971096,c[781999]|0,24413)|0;A=c[485555]|0;C=(e|0)==0?4:e}else{A=f;C=4}if(!(A|c[554962])){f=c[798455]|0;D=(f|0)>0?f:30}else D=30;c[d>>2]=(B(D,C)|0)/30|0}d=3125260+(b<<5)+28|0;f=c[d>>2]|0;if((f|0)>0?(e=f+-1|0,c[d>>2]=e,(e|0)==0):0){e=c[485555]|0;if(!e){f=$k(2971096,c[781999]|0,24413)|0;E=c[485555]|0;F=(f|0)==0?4:f}else{E=e;F=4}if(!(E|c[554962])){e=c[798455]|0;G=(e|0)>0?e:30}else G=30;c[d>>2]=(B(G,F)|0)/30|0}b=b+1|0}while((b|0)!=8)}if(a|0)return;ol();return}function ql(a,b){a=a|0;b=b|0;var d=0,e=0;if((b|a)>>>0>=8){d=0;return d|0}e=c[3124188+(b<<5)+(a<<2)>>2]|0;if(!(c[3124444+(b<<5)+(a<<2)>>2]|0)){d=e;return d|0}else return ((c[3125260+(b<<5)+(a<<2)>>2]|0)==1?e:0)|0;return 0}function rl(a,b){a=a|0;b=b|0;var c=0;c=Nv(b|0,((b|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;a=Qv(c|0,G()|0,16)|0;G()|0;return a|0}function sl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if((b|0)>65535&(b&65535|0)==0){c=(a|0)/(b>>>16|0)|0;return c|0}if(!b){c=(a>>31&2)+2147483647|0;return c|0}else{d=Rv(a|0,((a|0)<0)<<31>>31|0,16)|0;a=Lv(d|0,G()|0,b|0,((b|0)<0)<<31>>31|0)|0;b=G()|0;d=(b|0)<0|(b|0)==0&a>>>0<2147483647;e=d?a:2147483647;a=d?b:0;b=(a|0)>-1|(a|0)==-1&e>>>0>2147483649;a=b?e:-2147483647;c=a;return c|0}return 0}function tl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if(!b){c=0;return c|0}d=(b|0)<0?0-b|0:b;b=((a|0)==-2147483648?d:0)+a|0;if((b|0)<0)e=d-((0-b|0)%(d|0)|0)|0;else e=b;c=(e|0)%(d|0)|0;return c|0}function ul(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;if(!b){c=65536;return c|0}if((b|0)<0){if(!((a|0)>65535&(a&65535|0)==0))if(!a)d=2147483647;else{e=Lv(0,1,a|0,((a|0)<0)<<31>>31|0)|0;f=G()|0;g=(f|0)<0|(f|0)==0&e>>>0<2147483647;h=g?e:2147483647;e=g?f:0;f=(e|0)>-1|(e|0)==-1&h>>>0>2147483649;e=f?h:-2147483647;d=e}else d=65536/(a>>>16>>>0)|0;i=d;j=0-b|0}else{i=a;j=b}b=j&-65536;a=j-b|0;if((b|0)>65535){j=b;b=65536;d=i;while(1){e=((d|0)<0)<<31>>31;h=Nv(d|0,e|0,b|0,((b|0)<0)<<31>>31|0)|0;f=Qv(h|0,G()|0,16)|0;G()|0;h=(j&65536|0)==0?b:f;f=Nv(d|0,e|0,d|0,e|0)|0;d=Qv(f|0,G()|0,16)|0;G()|0;if(j>>>0<=131071){k=h;break}else{j=j>>>1;b=h}}}else k=65536;if((a|0)>0){b=k;j=i;i=a;while(1){if((i|0)<65536){a=j;d=i;while(1){h=Rv(a|0,((a|0)<0)<<31>>31|0,16)|0;f=G()|0;if((a|0)<0)l=0;else{e=1073741824;g=0;while(1){m=Qv(g|0,e|0,2)|0;n=G()|0;if(e>>>0>f>>>0|(e|0)==(f|0)&g>>>0>h>>>0){e=n;g=m}else break}if((g|0)==0&(e|0)==0)o=0;else{m=0;n=0;p=g;q=e;r=f;s=h;while(1){t=Hv(m|0,n|0,p|0,q|0)|0;u=G()|0;if(r>>>0<u>>>0|(r|0)==(u|0)&s>>>0<t>>>0){v=Qv(m|0,n|0,1)|0;w=s;x=r;y=v;z=G()|0}else{v=Iv(s|0,r|0,t|0,u|0)|0;u=G()|0;t=Qv(m|0,n|0,1)|0;A=Hv(t|0,G()|0,p|0,q|0)|0;w=v;x=u;y=A;z=G()|0}p=Qv(p|0,q|0,2)|0;q=G()|0;if((p|0)==0&(q|0)==0)break;else{m=y;n=z;r=x;s=w}}o=y}jh(8);l=o}s=d<<1;if((d|0)<32768){a=l;d=s}else{B=l;C=s;break}}}else{B=j;C=i}d=Nv(B|0,((B|0)<0)<<31>>31|0,b|0,((b|0)<0)<<31>>31|0)|0;a=Qv(d|0,G()|0,16)|0;G()|0;if((C|0)>65536){b=a;j=B;i=C+-65536|0}else{D=a;break}}}else D=k;jh(8);c=D;return c|0}function vl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;b=Rv(a|0,((a|0)<0)<<31>>31|0,16)|0;c=G()|0;if((a|0)<0){d=0;return d|0}a=1073741824;e=0;while(1){f=Qv(e|0,a|0,2)|0;g=G()|0;if(a>>>0>c>>>0|(a|0)==(c|0)&e>>>0>b>>>0){a=g;e=f}else break}if((e|0)==0&(a|0)==0)h=0;else{f=e;e=a;a=0;g=0;i=c;c=b;while(1){b=Hv(f|0,e|0,a|0,g|0)|0;j=G()|0;if(i>>>0<j>>>0|(i|0)==(j|0)&c>>>0<b>>>0){k=Qv(a|0,g|0,1)|0;l=c;m=i;n=k;o=G()|0}else{k=Iv(c|0,i|0,b|0,j|0)|0;j=G()|0;b=Qv(a|0,g|0,1)|0;p=Hv(b|0,G()|0,f|0,e|0)|0;l=k;m=j;n=p;o=G()|0}f=Qv(f|0,e|0,2)|0;e=G()|0;if((f|0)==0&(e|0)==0)break;else{a=n;g=o;i=m;c=l}}h=n}jh(8);d=h;return d|0}function wl(a,b){a=a|0;b=b|0;return wp(a,b)|0}function xl(a){a=a|0;var b=0,d=0,e=0;switch(a|0){case 0:{b=34912;d=3;break}case 1:{b=34916;d=3;break}default:e=0}if((d|0)==3)e=c[b>>2]|0;return e|0}function yl(a,b){a=a|0;b=b|0;var d=0;switch(a|0){case 0:{d=34912;break}case 1:{d=34916;break}default:return}c[d>>2]=b;return}function zl(a){a=a|0;var b=0;b=(a|0)==0?-559038737:a;c[8729]=b;c[8728]=b^-1095947846;b=0;do{c[8728]=(c[8728]|0)>>>16|c[8728]<<16;c[8728]=(c[8728]|0)+(c[8729]|0);c[8729]=(c[8729]|0)+(c[8728]|0);b=b+1|0}while((b|0)!=32);jh(8);return}function Al(a){a=a|0;var b=0;if(!a){b=0;return b|0}c[8728]=(c[8728]|0)>>>16|c[8728]<<16;c[8728]=(c[8728]|0)+(c[8729]|0);c[8729]=(c[8729]|0)+(c[8728]|0);b=((c[8728]|0)>>>0)%(a>>>0)|0;return b|0}function Bl(a,b){a=a|0;b=b|0;var c=0;c=b>>>16;b=c&31;return (1<<b)+-1&a>>>(0-c&31)|a<<b|0}function Cl(a,b){a=a|0;b=b|0;var c=0;c=b>>>16;b=0-c&31;return (1<<b)+-1&a>>>(c&31)|a<<b|0}function Dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;a:do if((b|0)<0){c=b;while(1){if((c|0)<-2031616){d=0;e=9;break}f=c&-65536;g=0-f|0;if((g|0)>=0){e=7;break}if((g|0)<-2031616){d=0;e=9;break}if((f|0)<0)c=f;else{h=f;break a}}if((e|0)==7){d=(g|0)>2097151?0:a<<(g>>>16);return d|0}else if((e|0)==9)return d|0}else h=b;while(0);return ((h|0)>2097151?0:a>>>(h>>>16))|0}function El(a,b){a=a|0;b=b|0;var c=0;if((b|0)>=0)return ((b|0)>2097151?0:a<<(b>>>16))|0;if((b|0)<-2031616){c=0;return c|0}c=Dl(a,0-(b&-65536)|0)|0;return c|0}function Fl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=b>>16;do if((b|0)<0)if((b|0)>=-2031616){d=b&-65536;e=0-d|0;if((e|0)>=0){f=(e|0)>2097151?0:a<<(e>>>16);break}if((e|0)>=-2031616){if((d|0)>=0){f=(d|0)>2097151?0:a>>>(d>>>16);break}if((d|0)>=-2031616)while(1){}else f=0}else f=0}else f=0;else if((b|0)>2097151){f=a>>31;break}else{f=a>>c;break}while(0);return f|0}function Gl(a,b){a=a|0;b=b|0;var d=0;d=xq(2092)|0;wq(d,0,2092);c[d>>2]=Sn(a,b,8)|0;c[d+24>>2]=Sn(a,b,8)|0;c[d+16>>2]=Sn(a,b,8)|0;c[d+20>>2]=Sn(a,b,8)|0;return d|0}function Hl(a,f){a=a|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;Wv(1446272,0,16384)|0;g=c[554428]|0;if(!g){h=Ys(524288)|0;c[554428]=h;i=h;j=h}else{i=g;j=g}Wv(i|0,0,524288)|0;i=f+-2|0;if((f|0)<=2)return;f=0;g=0;while(1){h=g;g=g+1|0;k=1446272+((((d[a+g>>0]|0)*1503|0)+((d[a+h>>0]|0)*7|0)+((d[a+(h+2)>>0]|0)*51717|0)&4095)<<2)|0;l=c[k>>2]|0;if(l){m=l+2|0;n=b[m>>1]|0;if((b[l>>1]|0)==n<<16>>16){o=j+(f<<1)|0;c[k>>2]=o;p=n<<16>>16<0?-1:(n&65535)<<1&65535;b[o>>1]=p;q=b[m>>1]|0;r=o+2|0;b[r>>1]=q;Vv(o+4|0,l+4|0,e[m>>1]<<1|0)|0;s=q;t=r;u=f+2+(p&65535)|0;v=o}else{s=n;t=m;u=f;v=l}}else{l=j+(f<<1)|0;c[k>>2]=l;b[l>>1]=4;k=l+2|0;b[k>>1]=0;s=0;t=k;u=f+6|0;v=l}b[v+((s&65535)+2<<1)>>1]=h;b[t>>1]=s+1<<16>>16;if((g|0)==(i|0))break;else f=u}return}function Il(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0;g=Ia;Ia=Ia+4112|0;h=g+4108|0;i=g+4104|0;j=g+3072|0;k=g+2048|0;l=g+1024|0;m=g;n=g+4100|0;o=g+4096|0;p=0;do{c[j+(p<<2)>>2]=p;p=p+1|0}while((p|0)!=256);p=0;do{c[k+(c[j+(p<<2)>>2]<<2)>>2]=p;p=p+1|0}while((p|0)!=256);Hl(b,f);c[8730]=1;c[554427]=0;c[554425]=e;c[554426]=0;if(!f){q=0;Ia=g;return q|0}p=xq(f)|0;Vv(p|0,b|0,f|0)|0;r=c[554425]|0;s=c[8730]|0;t=c[554426]|0;u=r+t|0;v=(s^255)&(d[u>>0]|0);a[u>>0]=v;w=s<<1;x=t+1|0;if((w|0)!=256){y=(w^255)&v;a[u>>0]=y;v=s<<2;if((v|0)==256){s=r+x|0;c[554426]=x;w=d[s>>0]|0;c[554427]=w;z=w&254;a[s>>0]=z;A=2;B=s;C=z;D=x;E=314}else{F=t;G=y;H=u;I=x;J=v;E=312}}else{v=r+x|0;c[554426]=x;u=d[v>>0]|0;c[554427]=u;y=u&254;a[v>>0]=y;F=x;G=y;H=v;I=t+2|0;J=2;E=312}do if((E|0)==312){t=(J^255)&(G&255);a[H>>0]=t;v=J<<1;if((v|0)==256){y=r+I|0;c[554426]=I;x=d[y>>0]|0;c[554427]=x;A=1;B=y;C=x;D=I;E=314;break}x=(v^255)&t;a[H>>0]=x;t=J<<2;if((t|0)==256){v=r+I|0;c[554426]=I;y=d[v>>0]|0;c[554427]=y;u=y&254;a[v>>0]=u;K=2;L=v;M=u;N=I;E=319}else{O=F;P=x;Q=H;R=I;S=t;E=317}}while(0);if((E|0)==314){I=(A^255)&C;a[B>>0]=I;O=D;P=I;Q=B;R=D+1|0;S=A<<1;E=317}do if((E|0)==317){A=(S^255)&(P&255);a[Q>>0]=A;D=S<<1;if((D|0)==256){B=r+R|0;c[554426]=R;I=d[B>>0]|0;c[554427]=I;K=1;L=B;M=I;N=R;E=319;break}I=(D^255)&A;a[Q>>0]=I;A=S<<2;if((A|0)==256){D=r+R|0;c[554426]=R;B=d[D>>0]|0;c[554427]=B;C=B&254;a[D>>0]=C;T=2;U=D;V=C;W=R;E=324}else{X=O;Y=I;Z=Q;_=R;$=A;E=322}}while(0);if((E|0)==319){R=(K^255)&M;a[L>>0]=R;X=N;Y=R;Z=L;_=N+1|0;$=K<<1;E=322}do if((E|0)==322){K=($^255)&(Y&255);a[Z>>0]=K;N=$<<1;if((N|0)==256){L=r+_|0;c[554426]=_;R=d[L>>0]|0;c[554427]=R;T=1;U=L;V=R;W=_;E=324;break}R=(N^255)&K;a[Z>>0]=R;K=$<<2;if((K|0)==256){N=r+_|0;c[554426]=_;L=d[N>>0]|0;c[554427]=L;aa=_;ba=1;ca=N;da=L;ea=_+1|0}else{fa=X;ga=R;ha=Z;ia=_;ja=K;E=326}}while(0);if((E|0)==324){_=(T^255)&V;a[U>>0]=_;fa=W;ga=_;ha=U;ia=W+1|0;ja=T<<1;E=326}if((E|0)==326){aa=fa;ba=ja;ca=ha;da=ga&255;ea=ia}c[8730]=ba;ia=c[554431]|0;c[554431]=ia+8;ga=(ba^255)&da;a[ca>>0]=ga;da=ba<<1;if((da|0)!=256){ha=(da^255)&ga;a[ca>>0]=ha;ga=ba<<2;if((ga|0)==256){ba=r+ea|0;c[554426]=ea;da=d[ba>>0]|0;c[554427]=da;ja=da&254;a[ba>>0]=ja;ka=2;la=ba;ma=ja;na=ea;E=296}else{oa=aa;pa=ha;qa=ca;ra=ea;sa=ga;E=294}}else{ga=r+ea|0;c[554426]=ea;ca=d[ga>>0]|0;c[554427]=ca;ha=ca&254;a[ga>>0]=ha;oa=ea;pa=ha;qa=ga;ra=ea+1|0;sa=2;E=294}do if((E|0)==294){ea=(sa^255)&(pa&255);a[qa>>0]=ea;ga=sa<<1;if((ga|0)==256){ha=r+ra|0;c[554426]=ra;ca=d[ha>>0]|0;c[554427]=ca;ka=1;la=ha;ma=ca;na=ra;E=296;break}ca=(ga^255)&ea;a[qa>>0]=ca;ea=sa<<2;if((ea|0)==256){ga=r+ra|0;c[554426]=ra;ha=d[ga>>0]|0;c[554427]=ha;ta=1;ua=ra;va=ga;wa=ha;xa=ra+1|0}else{ya=oa;za=ca;Aa=qa;Ba=ra;Ca=ea;E=298}}while(0);if((E|0)==296){ra=(ka^255)&ma;a[la>>0]=ra;ya=na;za=ra;Aa=la;Ba=na+1|0;Ca=ka<<1;E=298}if((E|0)==298){ta=Ca;ua=ya;va=Aa;wa=za&255;xa=Ba}Ba=ta|(ta^255)&wa;a[va>>0]=Ba;wa=ta<<1;if((wa|0)==256){ta=r+xa|0;c[554426]=xa;za=d[ta>>0]|0;c[554427]=za;Da=1;Ea=xa;Fa=ta;Ga=za;Ha=xa+1|0}else{Da=wa;Ea=ua;Fa=va;Ga=Ba&255;Ha=xa}xa=Da|(Da^255)&Ga;a[Fa>>0]=xa;Ga=Da<<1;if((Ga|0)==256){Da=r+Ha|0;c[554426]=Ha;Ba=d[Da>>0]|0;c[554427]=Ba;Ja=1;Ka=Ha;La=Da;Ma=Ba;Na=Ha+1|0}else{Ja=Ga;Ka=Ea;La=Fa;Ma=xa&255;Na=Ha}Ha=Ja|(Ja^255)&Ma;a[La>>0]=Ha;Ma=Ja<<1;if((Ma|0)!=256){xa=(Ma^255)&(Ha&255);a[La>>0]=xa;Ha=Ja<<2;if((Ha|0)==256){Ja=r+Na|0;c[554426]=Na;Ma=d[Ja>>0]|0;c[554427]=Ma;Oa=Na;Pa=1;Qa=Ja;Ra=Ma;Sa=Na+1|0}else{Oa=Ka;Pa=Ha;Qa=La;Ra=xa;Sa=Na}}else{xa=r+Na|0;c[554426]=Na;La=d[xa>>0]|0;c[554427]=La;Ha=La&254;a[xa>>0]=Ha;Oa=Na;Pa=2;Qa=xa;Ra=Ha;Sa=Na+1|0}c[8730]=Pa;c[554431]=ia+16;Na=(Pa^255)&Ra;a[Qa>>0]=Na;Ra=Pa<<1;do if((Ra|0)!=256){Ha=(Ra^255)&(Na&255);a[Qa>>0]=Ha;xa=Pa<<2;if((xa|0)==256){La=r+Sa|0;c[554426]=Sa;Ka=d[La>>0]|0;c[554427]=Ka;Ta=1;Ua=La;Va=Ka;E=275;break}Ka=(xa^255)&Ha;a[Qa>>0]=Ka;Ha=Pa<<3;if((Ha|0)==256){xa=r+Sa|0;c[554426]=Sa;La=d[xa>>0]|0;c[554427]=La;Wa=1;Xa=Sa;Ya=xa;Za=La;_a=Sa+1|0}else{$a=Oa;ab=Ka;bb=Qa;cb=Sa;db=Ha;E=277}}else{Ha=r+Sa|0;c[554426]=Sa;Ka=d[Ha>>0]|0;c[554427]=Ka;La=Ka&254;a[Ha>>0]=La;Ta=2;Ua=Ha;Va=La;E=275}while(0);if((E|0)==275){Qa=(Ta^255)&Va;a[Ua>>0]=Qa;$a=Sa;ab=Qa;bb=Ua;cb=Sa+1|0;db=Ta<<1;E=277}if((E|0)==277){Wa=db;Xa=$a;Ya=bb;Za=ab&255;_a=cb}cb=Wa|(Wa^255)&Za;a[Ya>>0]=cb;Za=Wa<<1;if((Za|0)==256){Wa=r+_a|0;c[554426]=_a;ab=d[Wa>>0]|0;c[554427]=ab;eb=1;fb=_a;gb=Wa;hb=ab;ib=_a+1|0}else{eb=Za;fb=Xa;gb=Ya;hb=cb&255;ib=_a}_a=eb|(eb^255)&hb;a[gb>>0]=_a;hb=eb<<1;if((hb|0)==256){eb=r+ib|0;c[554426]=ib;cb=d[eb>>0]|0;c[554427]=cb;jb=1;kb=ib;lb=eb;mb=cb;nb=ib+1|0}else{jb=hb;kb=fb;lb=gb;mb=_a&255;nb=ib}ib=jb|(jb^255)&mb;a[lb>>0]=ib;mb=jb<<1;if((mb|0)==256){jb=r+nb|0;c[554426]=nb;_a=d[jb>>0]|0;c[554427]=_a;ob=1;pb=nb;qb=jb;rb=_a;sb=nb+1|0}else{ob=mb;pb=kb;qb=lb;rb=ib&255;sb=nb}nb=ob|(ob^255)&rb;a[qb>>0]=nb;rb=ob<<1;if((rb|0)!=256){ib=(rb^255)&(nb&255);a[qb>>0]=ib;nb=ob<<2;if((nb|0)==256){ob=r+sb|0;c[554426]=sb;rb=d[ob>>0]|0;c[554427]=rb;tb=sb;ub=1;vb=ob;wb=rb;xb=sb+1|0}else{tb=pb;ub=nb;vb=qb;wb=ib;xb=sb}}else{ib=r+sb|0;c[554426]=sb;qb=d[ib>>0]|0;c[554427]=qb;nb=qb&254;a[ib>>0]=nb;tb=sb;ub=2;vb=ib;wb=nb;xb=sb+1|0}c[8730]=ub;c[554431]=ia+24;sb=ub|(ub^255)&wb;a[vb>>0]=sb;wb=ub<<1;do if((wb|0)!=256){nb=(wb^255)&(sb&255);a[vb>>0]=nb;ib=ub<<2;if((ib|0)==256){qb=r+xb|0;c[554426]=xb;pb=d[qb>>0]|0;c[554427]=pb;yb=1;zb=qb;Ab=pb;E=256;break}pb=(ib^255)&nb;a[vb>>0]=pb;nb=ub<<3;if((nb|0)==256){ib=r+xb|0;c[554426]=xb;qb=d[ib>>0]|0;c[554427]=qb;rb=qb&254;a[ib>>0]=rb;Bb=2;Cb=ib;Db=rb;Eb=xb;E=261}else{Fb=tb;Gb=pb;Hb=vb;Ib=xb;Jb=nb;E=259}}else{nb=r+xb|0;c[554426]=xb;pb=d[nb>>0]|0;c[554427]=pb;rb=pb&254;a[nb>>0]=rb;yb=2;zb=nb;Ab=rb;E=256}while(0);if((E|0)==256){vb=(yb^255)&Ab;a[zb>>0]=vb;Fb=xb;Gb=vb;Hb=zb;Ib=xb+1|0;Jb=yb<<1;E=259}do if((E|0)==259){yb=(Jb^255)&(Gb&255);a[Hb>>0]=yb;xb=Jb<<1;if((xb|0)==256){zb=r+Ib|0;c[554426]=Ib;vb=d[zb>>0]|0;c[554427]=vb;Bb=1;Cb=zb;Db=vb;Eb=Ib;E=261;break}vb=(xb^255)&yb;a[Hb>>0]=vb;yb=Jb<<2;if((yb|0)==256){xb=r+Ib|0;c[554426]=Ib;zb=d[xb>>0]|0;c[554427]=zb;Kb=1;Lb=Ib;Mb=xb;Nb=zb;Ob=Ib+1|0}else{Pb=Fb;Qb=vb;Rb=Hb;Sb=Ib;Tb=yb;E=263}}while(0);if((E|0)==261){Ib=(Bb^255)&Db;a[Cb>>0]=Ib;Pb=Eb;Qb=Ib;Rb=Cb;Sb=Eb+1|0;Tb=Bb<<1;E=263}if((E|0)==263){Kb=Tb;Lb=Pb;Mb=Rb;Nb=Qb&255;Ob=Sb}Sb=Kb|(Kb^255)&Nb;a[Mb>>0]=Sb;Nb=Kb<<1;if((Nb|0)==256){Kb=r+Ob|0;c[554426]=Ob;Qb=d[Kb>>0]|0;c[554427]=Qb;Ub=1;Vb=Ob;Wb=Kb;Xb=Qb;Yb=Ob+1|0}else{Ub=Nb;Vb=Lb;Wb=Mb;Xb=Sb&255;Yb=Ob}Ob=Ub|(Ub^255)&Xb;a[Wb>>0]=Ob;Xb=Ub<<1;if((Xb|0)!=256){Sb=(Xb^255)&(Ob&255);a[Wb>>0]=Sb;Ob=Ub<<2;if((Ob|0)==256){Ub=r+Yb|0;c[554426]=Yb;Xb=d[Ub>>0]|0;c[554427]=Xb;Zb=Yb;_b=1;$b=Ub;ac=Xb;bc=Yb+1|0}else{Zb=Vb;_b=Ob;$b=Wb;ac=Sb;bc=Yb}}else{Sb=r+Yb|0;c[554426]=Yb;Wb=d[Sb>>0]|0;c[554427]=Wb;Ob=Wb&254;a[Sb>>0]=Ob;Zb=Yb;_b=2;$b=Sb;ac=Ob;bc=Yb+1|0}c[8730]=_b;c[554431]=ia+32;Yb=(f|0)/256|0;Ob=((Yb&1|0)==0?0:_b)|(_b^255)∾a[$b>>0]=Ob;ac=_b<<1;if((ac|0)==256){_b=r+bc|0;c[554426]=bc;Sb=d[_b>>0]|0;c[554427]=Sb;cc=1;dc=bc;ec=_b;fc=Sb;gc=bc+1|0}else{cc=ac;dc=Zb;ec=$b;fc=Ob&255;gc=bc}bc=((Yb&2|0)==0?0:cc)|(cc^255)&fc;a[ec>>0]=bc;fc=cc<<1;if((fc|0)==256){cc=r+gc|0;c[554426]=gc;Ob=d[cc>>0]|0;c[554427]=Ob;hc=1;ic=gc;jc=cc;kc=Ob;lc=gc+1|0}else{hc=fc;ic=dc;jc=ec;kc=bc&255;lc=gc}gc=((Yb&4|0)==0?0:hc)|(hc^255)&kc;a[jc>>0]=gc;kc=hc<<1;if((kc|0)==256){hc=r+lc|0;c[554426]=lc;bc=d[hc>>0]|0;c[554427]=bc;mc=1;nc=lc;oc=hc;pc=bc;qc=lc+1|0}else{mc=kc;nc=ic;oc=jc;pc=gc&255;qc=lc}lc=((Yb&8|0)==0?0:mc)|(mc^255)&pc;a[oc>>0]=lc;pc=mc<<1;if((pc|0)==256){mc=r+qc|0;c[554426]=qc;gc=d[mc>>0]|0;c[554427]=gc;rc=1;sc=qc;tc=mc;uc=gc;vc=qc+1|0}else{rc=pc;sc=nc;tc=oc;uc=lc&255;vc=qc}qc=((Yb&16|0)==0?0:rc)|(rc^255)&uc;a[tc>>0]=qc;uc=rc<<1;if((uc|0)==256){rc=r+vc|0;c[554426]=vc;lc=d[rc>>0]|0;c[554427]=lc;wc=1;xc=vc;yc=rc;zc=lc;Ac=vc+1|0}else{wc=uc;xc=sc;yc=tc;zc=qc&255;Ac=vc}vc=((Yb&32|0)==0?0:wc)|(wc^255)&zc;a[yc>>0]=vc;zc=wc<<1;if((zc|0)==256){wc=r+Ac|0;c[554426]=Ac;qc=d[wc>>0]|0;c[554427]=qc;Bc=1;Cc=Ac;Dc=wc;Ec=qc;Fc=Ac+1|0}else{Bc=zc;Cc=xc;Dc=yc;Ec=vc&255;Fc=Ac}Ac=((Yb&64|0)==0?0:Bc)|(Bc^255)&Ec;a[Dc>>0]=Ac;Ec=Bc<<1;if((Ec|0)==256){Bc=r+Fc|0;c[554426]=Fc;vc=d[Bc>>0]|0;c[554427]=vc;Gc=1;Hc=Fc;Ic=Bc;Jc=vc;Kc=Fc+1|0}else{Gc=Ec;Hc=Cc;Ic=Dc;Jc=Ac&255;Kc=Fc}Fc=((Yb&128|0)==0?0:Gc)|(Gc^255)&Jc;a[Ic>>0]=Fc;Jc=Gc<<1;if((Jc|0)==256){Gc=r+Kc|0;c[554426]=Kc;Ac=d[Gc>>0]|0;c[554427]=Ac;Lc=Kc;Mc=1;Nc=Gc;Oc=Ac;Pc=Kc+1|0}else{Lc=Hc;Mc=Jc;Nc=Ic;Oc=Fc&255;Pc=Kc}c[8730]=Mc;c[554431]=ia+40;Kc=f-(Yb<<8)|0;Yb=((Kc&1|0)==0?0:Mc)|(Mc^255)&Oc;a[Nc>>0]=Yb;Oc=Mc<<1;if((Oc|0)==256){Mc=r+Pc|0;c[554426]=Pc;Fc=d[Mc>>0]|0;c[554427]=Fc;Qc=1;Rc=Pc;Sc=Mc;Tc=Fc;Uc=Pc+1|0}else{Qc=Oc;Rc=Lc;Sc=Nc;Tc=Yb&255;Uc=Pc}Pc=((Kc&2|0)==0?0:Qc)|(Qc^255)&Tc;a[Sc>>0]=Pc;Tc=Qc<<1;if((Tc|0)==256){Qc=r+Uc|0;c[554426]=Uc;Yb=d[Qc>>0]|0;c[554427]=Yb;Vc=1;Wc=Uc;Xc=Qc;Yc=Yb;Zc=Uc+1|0}else{Vc=Tc;Wc=Rc;Xc=Sc;Yc=Pc&255;Zc=Uc}Uc=((Kc&4|0)==0?0:Vc)|(Vc^255)&Yc;a[Xc>>0]=Uc;Yc=Vc<<1;if((Yc|0)==256){Vc=r+Zc|0;c[554426]=Zc;Pc=d[Vc>>0]|0;c[554427]=Pc;_c=1;$c=Zc;ad=Vc;bd=Pc;cd=Zc+1|0}else{_c=Yc;$c=Wc;ad=Xc;bd=Uc&255;cd=Zc}Zc=((Kc&8|0)==0?0:_c)|(_c^255)&bd;a[ad>>0]=Zc;bd=_c<<1;if((bd|0)==256){_c=r+cd|0;c[554426]=cd;Uc=d[_c>>0]|0;c[554427]=Uc;dd=1;ed=cd;fd=_c;gd=Uc;hd=cd+1|0}else{dd=bd;ed=$c;fd=ad;gd=Zc&255;hd=cd}cd=((Kc&16|0)==0?0:dd)|(dd^255)&gd;a[fd>>0]=cd;gd=dd<<1;if((gd|0)==256){dd=r+hd|0;c[554426]=hd;Zc=d[dd>>0]|0;c[554427]=Zc;id=1;jd=hd;kd=dd;ld=Zc;md=hd+1|0}else{id=gd;jd=ed;kd=fd;ld=cd&255;md=hd}hd=((Kc&32|0)==0?0:id)|(id^255)&ld;a[kd>>0]=hd;ld=id<<1;if((ld|0)==256){id=r+md|0;c[554426]=md;cd=d[id>>0]|0;c[554427]=cd;nd=1;od=md;pd=id;qd=cd;rd=md+1|0}else{nd=ld;od=jd;pd=kd;qd=hd&255;rd=md}md=((Kc&64|0)==0?0:nd)|(nd^255)&qd;a[pd>>0]=md;qd=nd<<1;if((qd|0)==256){nd=r+rd|0;c[554426]=rd;hd=d[nd>>0]|0;c[554427]=hd;sd=1;td=rd;ud=nd;vd=hd;wd=rd+1|0}else{sd=qd;td=od;ud=pd;vd=md&255;wd=rd}rd=((Kc&128|0)==0?0:sd)|(sd^255)&vd;a[ud>>0]=rd;vd=sd<<1;if((vd|0)==256){sd=r+wd|0;c[554426]=wd;Kc=d[sd>>0]|0;c[554427]=Kc;xd=wd;yd=1;zd=sd;Ad=Kc;Bd=wd+1|0}else{xd=td;yd=vd;zd=ud;Ad=rd&255;Bd=wd}c[8730]=yd;c[554431]=ia+48;wd=(yd^255)&Ad;a[zd>>0]=wd;Ad=yd<<1;do if((Ad|0)==256){rd=r+Bd|0;c[554426]=Bd;ud=d[rd>>0]|0;c[554427]=ud;vd=ud&254;a[rd>>0]=vd;Cd=Bd;Dd=vd;Ed=rd;Fd=Bd+1|0;Gd=2;E=197}else{rd=(Ad^255)&wd;a[zd>>0]=rd;vd=yd<<2;if((vd|0)!=256){Cd=xd;Dd=rd;Ed=zd;Fd=Bd;Gd=vd;E=197;break}vd=r+Bd|0;c[554426]=Bd;rd=d[vd>>0]|0;c[554427]=rd;ud=rd&254;a[vd>>0]=ud;Hd=2;Id=vd;Jd=ud;Kd=Bd;E=199}while(0);do if((E|0)==197){Bd=(Gd^255)&(Dd&255);a[Ed>>0]=Bd;zd=Gd<<1;if((zd|0)==256){xd=r+Fd|0;c[554426]=Fd;yd=d[xd>>0]|0;c[554427]=yd;Hd=1;Id=xd;Jd=yd;Kd=Fd;E=199;break}yd=(zd^255)&Bd;a[Ed>>0]=yd;Bd=Gd<<2;if((Bd|0)!=256){Ld=Cd;Md=yd;Nd=Ed;Od=Fd;Pd=Bd;E=202;break}Bd=r+Fd|0;c[554426]=Fd;yd=d[Bd>>0]|0;c[554427]=yd;zd=yd&254;a[Bd>>0]=zd;Qd=2;Rd=Bd;Sd=zd;Td=Fd;E=204}while(0);if((E|0)==199){Fd=(Hd^255)&Jd;a[Id>>0]=Fd;Ld=Kd;Md=Fd;Nd=Id;Od=Kd+1|0;Pd=Hd<<1;E=202}do if((E|0)==202){Hd=(Pd^255)&(Md&255);a[Nd>>0]=Hd;Kd=Pd<<1;if((Kd|0)==256){Id=r+Od|0;c[554426]=Od;Fd=d[Id>>0]|0;c[554427]=Fd;Qd=1;Rd=Id;Sd=Fd;Td=Od;E=204;break}Fd=(Kd^255)&Hd;a[Nd>>0]=Fd;Hd=Pd<<2;if((Hd|0)!=256){Ud=Ld;Vd=Fd;Wd=Nd;Xd=Od;Yd=Hd;E=207;break}Hd=r+Od|0;c[554426]=Od;Fd=d[Hd>>0]|0;c[554427]=Fd;Kd=Fd&254;a[Hd>>0]=Kd;Zd=2;_d=Hd;$d=Kd;ae=Od;E=209}while(0);if((E|0)==204){Od=(Qd^255)&Sd;a[Rd>>0]=Od;Ud=Td;Vd=Od;Wd=Rd;Xd=Td+1|0;Yd=Qd<<1;E=207}do if((E|0)==207){Qd=(Yd^255)&(Vd&255);a[Wd>>0]=Qd;Td=Yd<<1;if((Td|0)==256){Rd=r+Xd|0;c[554426]=Xd;Od=d[Rd>>0]|0;c[554427]=Od;Zd=1;_d=Rd;$d=Od;ae=Xd;E=209;break}Od=(Td^255)&Qd;a[Wd>>0]=Od;Qd=Yd<<2;if((Qd|0)!=256){be=Ud;ce=Od;de=Wd;ee=Xd;fe=Qd;E=211;break}Qd=r+Xd|0;c[554426]=Xd;Od=d[Qd>>0]|0;c[554427]=Od;ge=Xd;he=1;ie=Qd;je=Od;ke=Xd+1|0}while(0);if((E|0)==209){Xd=(Zd^255)&$d;a[_d>>0]=Xd;be=ae;ce=Xd;de=_d;ee=ae+1|0;fe=Zd<<1;E=211}if((E|0)==211){ge=be;he=fe;ie=de;je=ce&255;ke=ee}c[8730]=he;c[554431]=ia+56;ee=(he^255)&je;a[ie>>0]=ee;je=he<<1;do if((je|0)==256){ce=r+ke|0;c[554426]=ke;de=d[ce>>0]|0;c[554427]=de;fe=de&254;a[ce>>0]=fe;le=ke;me=fe;ne=ce;oe=ke+1|0;pe=2;E=179}else{ce=(je^255)ⅇa[ie>>0]=ce;fe=he<<2;if((fe|0)!=256){le=ge;me=ce;ne=ie;oe=ke;pe=fe;E=179;break}fe=r+ke|0;c[554426]=ke;ce=d[fe>>0]|0;c[554427]=ce;de=ce&254;a[fe>>0]=de;qe=2;re=fe;se=de;te=ke;E=181}while(0);do if((E|0)==179){ke=(pe^255)&(me&255);a[ne>>0]=ke;ie=pe<<1;if((ie|0)==256){ge=r+oe|0;c[554426]=oe;he=d[ge>>0]|0;c[554427]=he;qe=1;re=ge;se=he;te=oe;E=181;break}he=(ie^255)&ke;a[ne>>0]=he;ke=pe<<2;if((ke|0)!=256){ue=le;ve=he;we=ne;xe=oe;ye=ke;E=184;break}ke=r+oe|0;c[554426]=oe;he=d[ke>>0]|0;c[554427]=he;ie=he&254;a[ke>>0]=ie;ze=2;Ae=ke;Be=ie;Ce=oe;E=186}while(0);if((E|0)==181){oe=(qe^255)&se;a[re>>0]=oe;ue=te;ve=oe;we=re;xe=te+1|0;ye=qe<<1;E=184}do if((E|0)==184){qe=(ye^255)&(ve&255);a[we>>0]=qe;te=ye<<1;if((te|0)==256){re=r+xe|0;c[554426]=xe;oe=d[re>>0]|0;c[554427]=oe;ze=1;Ae=re;Be=oe;Ce=xe;E=186;break}oe=(te^255)&qe;a[we>>0]=oe;qe=ye<<2;if((qe|0)!=256){De=ue;Ee=oe;Fe=we;Ge=xe;He=qe;E=189;break}qe=r+xe|0;c[554426]=xe;oe=d[qe>>0]|0;c[554427]=oe;te=oe&254;a[qe>>0]=te;Ie=xe;Je=2;Ke=qe;Le=te;E=191}while(0);if((E|0)==186){xe=(ze^255)&Be;a[Ae>>0]=xe;De=Ce;Ee=xe;Fe=Ae;Ge=Ce+1|0;He=ze<<1;E=189}do if((E|0)==189){ze=(He^255)&(Ee&255);a[Fe>>0]=ze;Ce=He<<1;if((Ce|0)==256){Ae=r+Ge|0;c[554426]=Ge;xe=d[Ae>>0]|0;c[554427]=xe;Ie=Ge;Je=1;Ke=Ae;Le=xe;E=191;break}a[Fe>>0]=(Ce^255)&ze;ze=He<<2;if((ze|0)!=256){Me=De;Ne=ze;E=193;break}c[554426]=Ge;ze=d[r+Ge>>0]|0;c[554427]=ze;Oe=1;Pe=Ge;Qe=ze}while(0);if((E|0)==191){a[Ke>>0]=(Je^255)&Le;Me=Ie;Ne=Je<<1;E=193}if((E|0)==193){Oe=Ne;Pe=Me;Qe=c[554427]|0}c[8730]=Oe;c[554431]=ia+64;c[554422]=0;c[554423]=0;c[554424]=0;ia=Pe<<16|Oe|Qe<<8;Vv(l|0,j|0,1024)|0;Vv(m|0,k|0,1024)|0;if((f|0)>0){Qe=0;Oe=ia;Me=ia>>16;Ne=ia>>8;ia=Pe;Pe=0;Je=0;Ie=0;while(1){Le=Jl(p,Qe,f,h,i)|0;Ke=d[p+Qe>>0]|0;Ge=k+(Ke<<2)|0;r=c[Ge>>2]|0;De=(r|0)<16;if(De)Re=4;else{He=4;Fe=16;while(1){Ee=He+1|0;Fe=Fe+(2<<He)|0;if((r|0)<(Fe|0)){Re=Ee;break}else He=Ee}}He=256/((Re<<1)+-2|0)|0;do if((Le|0)>2){Fe=c[i>>2]|0;a:do if((Fe|0)>(He|0)&(Fe|0)<128){Ee=(Fe*6|0)/5|0;c[n>>2]=0;c[o>>2]=0;Jl(p,Qe+1|0,f,n,o)|0;do if((c[o>>2]|0)<=(Ee|0)){c[n>>2]=0;c[o>>2]=0;Jl(p,Qe+2|0,f,n,o)|0;if((c[o>>2]|0)>(Ee|0))break;Se=Fe;break a}while(0);c[i>>2]=0;Se=0}else Se=Fe;while(0);if((Se|0)<=(He|0)){E=58;break}Fe=c[8730]|0;Ee=c[554425]|0;ze=c[554426]|0;Ce=Ee+ze|0;a[Ce>>0]=(Fe^255)&(d[Ce>>0]|0);Ce=Fe<<1;c[8730]=Ce;if((Ce|0)==256){c[8730]=1;Fe=ze+1|0;c[554426]=Fe;c[554427]=d[Ee+Fe>>0];Te=Fe;Ue=1}else{Te=ze;Ue=Ce}Ce=(c[554429]|0)+1|0;c[554429]=Ce;ze=c[h>>2]|0;Fe=5;while(1)if((1<<Fe|0)<(ze|0))Fe=Fe+5|0;else break;xe=ze+-1|0;Ae=(Fe>>>0)/5|0;Be=Te;we=Ue;ue=0;ye=3-Ae|0;while(1){ve=(ye|0)<1;te=ve?ye:1;qe=Ee+Be|0;a[qe>>0]=((te&1|0)==0?0:we)|(we^255)&(d[qe>>0]|0);qe=we<<1;oe=Be+1|0;if((qe|0)==256){c[554426]=oe;c[554427]=d[Ee+oe>>0];Ve=oe;We=1}else{Ve=Be;We=qe}ue=ue+1|0;if(ue>>>0>=2)break;if(ve)break;else{Be=Ve;we=We;ye=ye-te|0}}c[8730]=We;ye=We;we=Ve;Be=0;while(1){ue=Ee+we|0;a[ue>>0]=((1<<Be&xe|0)==0?0:ye)|(ye^255)&(d[ue>>0]|0);ue=ye<<1;ze=we+1|0;if((ue|0)==256){c[554426]=ze;c[554427]=d[Ee+ze>>0];Xe=ze;Ye=1}else{Xe=we;Ye=ue}Be=Be+1|0;if((Be|0)==(Fe|0))break;else{ye=Ye;we=Xe}}c[8730]=Ye;we=Fe+Ce+Ae|0;c[554429]=we;ye=Xe;Be=Ye;xe=0;ue=Le+-3|0;while(1){ze=(ue|0)<7;te=ze?ue:7;ve=Ee+ye|0;qe=((te&1|0)==0?0:Be)|(Be^255)&(d[ve>>0]|0);a[ve>>0]=qe;oe=Be<<1;re=ye+1|0;if((oe|0)==256){se=Ee+re|0;c[554426]=re;ne=d[se>>0]|0;c[554427]=ne;Ze=re;_e=1;$e=se;af=ne;bf=ye+2|0}else{Ze=ye;_e=oe;$e=ve;af=qe&255;bf=re}re=((te&2|0)==0?0:_e)|(_e^255)⁡a[$e>>0]=re;qe=_e<<1;if((qe|0)==256){ve=Ee+bf|0;c[554426]=bf;oe=d[ve>>0]|0;c[554427]=oe;cf=bf;df=1;ef=ve;ff=oe;gf=bf+1|0}else{cf=Ze;df=qe;ef=$e;ff=re&255;gf=bf}a[ef>>0]=((te&4|0)==0?0:df)|(df^255)&ff;re=df<<1;if((re|0)==256){c[554426]=gf;c[554427]=d[Ee+gf>>0];hf=gf;jf=1}else{hf=cf;jf=re}xe=xe+3|0;if(xe>>>0>=1e5)break;if(ze)break;else{ye=hf;Be=jf;ue=ue-te|0}}c[8730]=jf;c[554429]=xe+we;if((Le|0)>9)c[554424]=(c[554424]|0)+1;c[554422]=(c[554422]|0)+1;kf=Le;lf=jf;mf=hf;nf=Ee;of=2217720}else E=58;while(0);if((E|0)==58){E=0;Le=c[8730]|0;He=c[554425]|0;ue=c[554426]|0;Be=He+ue|0;a[Be>>0]=(Le^255)&(d[Be>>0]|0)|Le;Be=Le<<1;c[8730]=Be;if((Be|0)==256){c[8730]=1;Le=ue+1|0;c[554426]=Le;c[554427]=d[He+Le>>0];pf=Le;qf=1}else{pf=ue;qf=Be}if(De){rf=4;sf=r}else{Be=4;ue=16;Le=r;while(1){ye=Le-(1<<Be)|0;Ae=Be+1|0;ue=ue+(2<<Be)|0;if((r|0)<(ue|0)){rf=Ae;sf=ye;break}else{Be=Ae;Le=ye}}}Le=pf;Be=qf;ue=0;De=rf+-4|0;while(1){ye=(De|0)<1;Ae=ye?De:1;Ce=He+Le|0;a[Ce>>0]=((Ae&1|0)==0?0:Be)|(Be^255)&(d[Ce>>0]|0);Ce=Be<<1;Fe=Le+1|0;if((Ce|0)==256){c[554426]=Fe;c[554427]=d[He+Fe>>0];tf=Fe;uf=1}else{tf=Le;uf=Ce}ue=ue+1|0;if(ue>>>0>=16)break;if(ye)break;else{Le=tf;Be=uf;De=De-Ae|0}}c[8730]=uf;De=uf;Be=tf;Le=0;while(1){ue=He+Be|0;a[ue>>0]=((1<<Le&sf|0)==0?0:De)|(De^255)&(d[ue>>0]|0);ue=De<<1;Ae=Be+1|0;if((ue|0)==256){c[554426]=Ae;c[554427]=d[He+Ae>>0];vf=Ae;wf=1}else{vf=Be;wf=ue}Le=Le+1|0;if((Le|0)==(rf|0))break;else{De=wf;Be=vf}}c[8730]=wf;if((r|0)>0){Be=r;do{De=Be;Be=Be+-1|0;Le=c[j+(Be<<2)>>2]|0;c[j+(De<<2)>>2]=Le;ue=k+(Le<<2)|0;c[ue>>2]=(c[ue>>2]|0)+1}while((De|0)>1)}c[j>>2]=Ke;c[Ge>>2]=0;kf=1;lf=wf;mf=vf;nf=He;of=2217692}c[of>>2]=(c[of>>2]|0)+kf;Be=(Qe|0)<2?0:Qe+-2|0;Qe=kf+Qe|0;r=Qe+-2|0;if((Be|0)<(r|0)){De=Be;do De=De+1|0;while((De|0)<(r|0))}r=mf-ia|0;if((Qe|0)==(f|0)|(r|0)>31){De=Qe-Pe|0;if((r|0)>(De+((Je|0)==(Pe|0)?3:0)|0)){r=Oe&255;c[8730]=r;c[554427]=Ne&255;c[554426]=Me;if(!Ie){He=nf+Me|0;Ge=(Oe^255)&(d[He>>0]|0);a[He>>0]=Ge;Ke=r<<1;c[8730]=Ke;if((r|0)==128){c[8730]=1;Be=Me+1|0;c[554426]=Be;ue=nf+Be|0;Le=d[ue>>0]|0;c[554427]=Le;xf=1;yf=Be;zf=ue;Af=Le}else{xf=Ke;yf=Me;zf=He;Af=Ge}Ge=(xf^255)&Af|xf;a[zf>>0]=Ge;He=xf<<1;c[8730]=He;if((xf|0)==128){c[8730]=1;Ke=yf+1|0;c[554426]=Ke;Le=nf+Ke|0;ue=d[Le>>0]|0;c[554427]=ue;Bf=1;Cf=Ke;Df=Le;Ef=ue}else{Bf=He;Cf=yf;Df=zf;Ef=Ge&255}Ge=(Bf^255)&Ef;a[Df>>0]=Ge;He=Bf<<1;c[8730]=He;if((Bf|0)==128){c[8730]=1;ue=Cf+1|0;c[554426]=ue;Le=nf+ue|0;Ke=d[Le>>0]|0;c[554427]=Ke;Ff=ue;Gf=Le;Hf=1;If=Ke}else{Ff=Cf;Gf=Df;Hf=He;If=Ge}Ge=(Hf^255)&If;a[Gf>>0]=Ge;He=Hf<<1;Ke=Ff+1|0;do if((He|0)==256){Le=nf+Ke|0;c[554426]=Ke;ue=d[Le>>0]|0;c[554427]=ue;Be=ue&254;a[Le>>0]=Be;Jf=2;Kf=Le;Lf=Be;E=121}else{Be=(He^255)&(Ge&255);a[Gf>>0]=Be;Le=Hf<<2;if((Le|0)==256){ue=nf+Ke|0;c[554426]=Ke;Ae=d[ue>>0]|0;c[554427]=Ae;Jf=1;Kf=ue;Lf=Ae;E=121;break}Ae=(Le^255)&Be;a[Gf>>0]=Ae;Be=Hf<<3;if((Be|0)!=256){Mf=Ff;Nf=Ae;Of=Gf;Pf=Ke;Qf=Be;E=124;break}Be=nf+Ke|0;c[554426]=Ke;Ae=d[Be>>0]|0;c[554427]=Ae;Le=Ae&254;a[Be>>0]=Le;Rf=2;Sf=Be;Tf=Le;Uf=Ke;E=126}while(0);if((E|0)==121){E=0;Ge=(Jf^255)&Lf;a[Kf>>0]=Ge;Mf=Ke;Nf=Ge;Of=Kf;Pf=Ff+2|0;Qf=Jf<<1;E=124}do if((E|0)==124){E=0;Ge=(Qf^255)&(Nf&255);a[Of>>0]=Ge;He=Qf<<1;if((He|0)==256){Le=nf+Pf|0;c[554426]=Pf;Be=d[Le>>0]|0;c[554427]=Be;Rf=1;Sf=Le;Tf=Be;Uf=Pf;E=126;break}Be=(He^255)&Ge;a[Of>>0]=Be;Ge=Qf<<2;if((Ge|0)!=256){Vf=Mf;Wf=Be;Xf=Of;Yf=Pf;Zf=Ge;E=129;break}Ge=nf+Pf|0;c[554426]=Pf;Be=d[Ge>>0]|0;c[554427]=Be;He=Be&254;a[Ge>>0]=He;_f=2;$f=Ge;ag=He;bg=Pf;E=131}while(0);if((E|0)==126){E=0;Ke=(Rf^255)&Tf;a[Sf>>0]=Ke;Vf=Uf;Wf=Ke;Xf=Sf;Yf=Uf+1|0;Zf=Rf<<1;E=129}do if((E|0)==129){E=0;Ke=(Zf^255)&(Wf&255);a[Xf>>0]=Ke;He=Zf<<1;if((He|0)==256){Ge=nf+Yf|0;c[554426]=Yf;Be=d[Ge>>0]|0;c[554427]=Be;_f=1;$f=Ge;ag=Be;bg=Yf;E=131;break}Be=(He^255)&Ke;a[Xf>>0]=Be;Ke=Zf<<2;if((Ke|0)!=256){cg=Vf;dg=Be;eg=Xf;fg=Yf;gg=Ke;E=134;break}Ke=nf+Yf|0;c[554426]=Yf;Be=d[Ke>>0]|0;c[554427]=Be;He=Be&254;a[Ke>>0]=He;hg=2;ig=Ke;jg=He;kg=Yf;E=136}while(0);if((E|0)==131){E=0;He=(_f^255)&ag;a[$f>>0]=He;cg=bg;dg=He;eg=$f;fg=bg+1|0;gg=_f<<1;E=134}do if((E|0)==134){E=0;He=(gg^255)&(dg&255);a[eg>>0]=He;Ke=gg<<1;if((Ke|0)==256){Be=nf+fg|0;c[554426]=fg;Ge=d[Be>>0]|0;c[554427]=Ge;hg=1;ig=Be;jg=Ge;kg=fg;E=136;break}Ge=(Ke^255)&He;a[eg>>0]=Ge;He=gg<<2;if((He|0)!=256){lg=cg;mg=Ge;ng=eg;og=fg;pg=He;E=139;break}He=nf+fg|0;c[554426]=fg;Ge=d[He>>0]|0;c[554427]=Ge;a[He>>0]=Ge&254;qg=fg;rg=2}while(0);if((E|0)==136){E=0;Ge=(hg^255)&jg;a[ig>>0]=Ge;lg=kg;mg=Ge;ng=ig;og=kg+1|0;pg=hg<<1;E=139}do if((E|0)==139){E=0;a[ng>>0]=(pg^255)&mg;Ge=pg<<1;if((Ge|0)!=256){qg=lg;rg=Ge;break}c[554426]=og;c[554427]=d[nf+og>>0];qg=og;rg=1}while(0);c[8730]=rg;sg=qg;tg=rg}else{Ge=Me+-1|0;c[554426]=Ge;sg=Ge;tg=r}if((De|0)>0){Ge=tg;He=sg;Ke=0;while(1){Be=d[p+(Ke+Pe)>>0]|0;Le=nf+He|0;Ae=((Be&1|0)==0?0:Ge)|(Ge^255)&(d[Le>>0]|0);a[Le>>0]=Ae;ue=Ge<<1;ye=He+1|0;if((ue|0)==256){Ce=nf+ye|0;c[554426]=ye;Fe=d[Ce>>0]|0;c[554427]=Fe;ug=ye;vg=1;wg=Ce;xg=Fe;yg=He+2|0}else{ug=He;vg=ue;wg=Le;xg=Ae&255;yg=ye}ye=((Be&2|0)==0?0:vg)|(vg^255)&xg;a[wg>>0]=ye;Ae=vg<<1;if((Ae|0)==256){Le=nf+yg|0;c[554426]=yg;ue=d[Le>>0]|0;c[554427]=ue;zg=1;Ag=yg;Bg=Le;Cg=ue;Dg=yg+1|0}else{zg=Ae;Ag=ug;Bg=wg;Cg=ye&255;Dg=yg}ye=((Be&4|0)==0?0:zg)|(zg^255)&Cg;a[Bg>>0]=ye;Ae=zg<<1;if((Ae|0)==256){ue=nf+Dg|0;c[554426]=Dg;Le=d[ue>>0]|0;c[554427]=Le;Eg=1;Fg=Dg;Gg=ue;Hg=Le;Ig=Dg+1|0}else{Eg=Ae;Fg=Ag;Gg=Bg;Hg=ye&255;Ig=Dg}ye=((Be&8|0)==0?0:Eg)|(Eg^255)&Hg;a[Gg>>0]=ye;Ae=Eg<<1;if((Ae|0)==256){Le=nf+Ig|0;c[554426]=Ig;ue=d[Le>>0]|0;c[554427]=ue;Jg=1;Kg=Ig;Lg=Le;Mg=ue;Ng=Ig+1|0}else{Jg=Ae;Kg=Fg;Lg=Gg;Mg=ye&255;Ng=Ig}ye=((Be&16|0)==0?0:Jg)|(Jg^255)&Mg;a[Lg>>0]=ye;Ae=Jg<<1;if((Ae|0)==256){ue=nf+Ng|0;c[554426]=Ng;Le=d[ue>>0]|0;c[554427]=Le;Og=1;Pg=Ng;Qg=ue;Rg=Le;Sg=Ng+1|0}else{Og=Ae;Pg=Kg;Qg=Lg;Rg=ye&255;Sg=Ng}ye=((Be&32|0)==0?0:Og)|(Og^255)&Rg;a[Qg>>0]=ye;Ae=Og<<1;if((Ae|0)==256){Le=nf+Sg|0;c[554426]=Sg;ue=d[Le>>0]|0;c[554427]=ue;Tg=1;Ug=Sg;Vg=Le;Wg=ue;Xg=Sg+1|0}else{Tg=Ae;Ug=Pg;Vg=Qg;Wg=ye&255;Xg=Sg}ye=((Be&64|0)==0?0:Tg)|(Tg^255)&Wg;a[Vg>>0]=ye;Ae=Tg<<1;if((Ae|0)==256){ue=nf+Xg|0;c[554426]=Xg;Le=d[ue>>0]|0;c[554427]=Le;Yg=1;Zg=Xg;_g=ue;$g=Le;ah=Xg+1|0}else{Yg=Ae;Zg=Ug;_g=Vg;$g=ye&255;ah=Xg}a[_g>>0]=((Be&128|0)==0?0:Yg)|(Yg^255)&$g;Be=Yg<<1;if((Be|0)==256){c[554426]=ah;c[554427]=d[nf+ah>>0];bh=ah;ch=1}else{bh=Zg;ch=Be}Ke=Ke+1|0;if((Ke|0)==(De|0))break;else{Ge=ch;He=bh}}c[8730]=ch;dh=bh;eh=ch}else{dh=sg;eh=tg}He=nf+dh|0;Ge=(eh^255)&(d[He>>0]|0);a[He>>0]=Ge;De=eh<<1;Ke=dh+1|0;do if((De|0)==256){r=nf+Ke|0;c[554426]=Ke;Be=d[r>>0]|0;c[554427]=Be;ye=Be&254;a[r>>0]=ye;fh=Ke;gh=ye;hh=r;ih=dh+2|0;jh=2;E=162}else{r=(De^255)&Ge;a[He>>0]=r;ye=eh<<2;if((ye|0)!=256){fh=dh;gh=r;hh=He;ih=Ke;jh=ye;E=162;break}ye=nf+Ke|0;c[554426]=Ke;r=d[ye>>0]|0;c[554427]=r;Be=r&254;a[ye>>0]=Be;kh=2;lh=ye;mh=Be;nh=Ke;E=164}while(0);do if((E|0)==162){E=0;Ke=(jh^255)&(gh&255);a[hh>>0]=Ke;He=jh<<1;if((He|0)==256){Ge=nf+ih|0;c[554426]=ih;De=d[Ge>>0]|0;c[554427]=De;kh=1;lh=Ge;mh=De;nh=ih;E=164;break}De=(He^255)&Ke;a[hh>>0]=De;Ke=jh<<2;if((Ke|0)!=256){oh=fh;ph=De;qh=hh;rh=ih;sh=Ke;E=167;break}Ke=nf+ih|0;c[554426]=ih;De=d[Ke>>0]|0;c[554427]=De;He=De&254;a[Ke>>0]=He;th=2;uh=Ke;vh=He;wh=ih;E=169}while(0);if((E|0)==164){E=0;He=(kh^255)&mh;a[lh>>0]=He;oh=nh;ph=He;qh=lh;rh=nh+1|0;sh=kh<<1;E=167}do if((E|0)==167){E=0;He=(sh^255)&(ph&255);a[qh>>0]=He;Ke=sh<<1;if((Ke|0)==256){De=nf+rh|0;c[554426]=rh;Ge=d[De>>0]|0;c[554427]=Ge;th=1;uh=De;vh=Ge;wh=rh;E=169;break}Ge=(Ke^255)&He;a[qh>>0]=Ge;He=sh<<2;if((He|0)!=256){xh=oh;yh=Ge;zh=qh;Ah=rh;Bh=He;E=172;break}He=nf+rh|0;c[554426]=rh;Ge=d[He>>0]|0;c[554427]=Ge;Ke=Ge&254;a[He>>0]=Ke;Ch=rh;Dh=2;Eh=He;Fh=Ke;E=174}while(0);if((E|0)==169){E=0;Ke=(th^255)&vh;a[uh>>0]=Ke;xh=wh;yh=Ke;zh=uh;Ah=wh+1|0;Bh=th<<1;E=172}do if((E|0)==172){E=0;Ke=(Bh^255)&(yh&255);a[zh>>0]=Ke;He=Bh<<1;if((He|0)==256){Ge=nf+Ah|0;c[554426]=Ah;De=d[Ge>>0]|0;c[554427]=De;Ch=Ah;Dh=1;Eh=Ge;Fh=De;E=174;break}a[zh>>0]=(He^255)&Ke;Ke=Bh<<2;if((Ke|0)!=256){Gh=Ke;Hh=xh;break}c[554426]=Ah;c[554427]=d[nf+Ah>>0];Gh=1;Hh=Ah}while(0);if((E|0)==174){E=0;a[Eh>>0]=(Dh^255)&Fh;Gh=Dh<<1;Hh=Ch}c[8730]=Gh;Vv(j|0,l|0,1024)|0;Vv(k|0,m|0,1024)|0;Ih=Hh;Jh=Gh;Kh=Je;Lh=1}else{Vv(l|0,j|0,1024)|0;Vv(m|0,k|0,1024)|0;Ih=mf;Jh=lf;Kh=Qe;Lh=0}Ke=c[554427]<<8|Ih<<16|Jh;Mh=Ke;Nh=Ke>>16;Oh=Ke>>8;Ph=Ih;Qh=Qe;Rh=Kh;Sh=Lh}else{Mh=Oe;Nh=Me;Oh=Ne;Ph=ia;Qh=Pe;Rh=Je;Sh=Ie}if((Qe|0)>=(f|0))break;else{Oe=Mh;Me=Nh;Ne=Oh;ia=Ph;Pe=Qh;Je=Rh;Ie=Sh}}}zq(p);p=c[8730]|0;if((p|0)==1){Th=c[554426]|0;Uh=c[554425]|0}else{Sh=c[554425]|0;Ie=c[554426]|0;Rh=Sh+Ie|0;Je=p;p=a[Rh>>0]|0;do{p=(Je^255)&(p&255)&255;Je=Je<<1}while((Je|0)!=256);a[Rh>>0]=p;p=Ie+1|0;c[554426]=p;c[554427]=d[Sh+p>>0];c[8730]=1;Th=p;Uh=Sh}a[Uh+6>>0]=(Th|0)/256|0;a[Uh+7>>0]=Th;if((Th|0)<=(f|0)){q=Th;Ia=g;return q|0}Vv(e|0,b|0,f|0)|0;q=f;Ia=g;return q|0}function Jl(f,g,h,i,j){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;k=h-g|0;if((k|0)<3){l=0;return l|0}h=c[1446272+((((d[f+(g+1)>>0]|0)*1503|0)+((d[f+g>>0]|0)*7|0)+((d[f+(g+2)>>0]|0)*51717|0)&4095)<<2)>>2]|0;if(!h){l=0;return l|0}m=b[h+2>>1]|0;if(!(m<<16>>16)){n=0;o=0;p=-1}else{q=g+-32767|0;r=m&65535;m=0;s=-1e5;t=-1;u=0;while(1){v=e[h+(u+2<<1)>>1]|0;if((v|0)>=(g|0)){w=m;x=s;y=t;break}if((q|0)>(v|0)){z=m;A=s;B=t}else{C=0;while(1){D=C+v|0;if((D|0)>=(g|0)){E=D;F=C;break}if((a[f+D>>0]|0)!=(a[f+(C+g)>>0]|0)){E=D;F=C;break}C=C+1|0;if((C|0)>=(k|0)){G=21;break}}if((G|0)==21){G=0;E=C+v|0;F=C}D=g-v|0;a:do if((F|0)>=(k|0)|(E|0)<(g|0))H=F;else{I=F;while(1){if((a[f+(((I|0)%(D|0)|0)+v)>>0]|0)!=(a[f+(I+g)>>0]|0)){H=I;break a}J=I+1|0;if((J|0)>=(k|0)|(J+v|0)<(g|0)){H=J;break}else I=J}}while(0);if((D|0)>0){C=0;I=D;do{C=C+1|0;I=I>>>5}while((I|0)!=0);if(C>>>0<2){K=C;G=17}else{L=2;M=C}}else{K=0;G=17}if((G|0)==17){G=0;L=K;M=K}I=(H<<8>>>0)/(((M*5|0)+4+L|0)>>>0)|0;D=(I|0)>(t|0);z=D?H:m;A=D?v:s;B=D?I:t}u=u+1|0;if(u>>>0>=r>>>0){w=z;x=A;y=B;break}else{m=z;s=A;t=B}}n=(x|0)>-1?g-x|0:0;o=w;p=y}c[i>>2]=n;c[j>>2]=p;l=o;return l|0}function Kl(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0;g=Ia;Ia=Ia+2080|0;h=g+1056|0;i=g+32|0;j=g;c[8730]=1;c[554427]=0;c[554432]=b;k=0;do{c[h+(k<<2)>>2]=k;k=k+1|0}while((k|0)!=256);k=0;do{c[i+(c[h+(k<<2)>>2]<<2)>>2]=k;k=k+1|0}while((k|0)!=256);c[j>>2]=d[b>>0];c[j+4>>2]=d[b+1>>0];c[j+8>>2]=d[b+2>>0];c[j+12>>2]=d[b+3>>0];c[j+16>>2]=d[b+4>>0];c[j+20>>2]=d[b+5>>0];c[j+24>>2]=d[b+6>>0];c[j+28>>2]=d[b+7>>0];c[8730]=1;k=(c[j+16>>2]<<8)+(c[j+20>>2]|0)|0;l=(c[j+24>>2]<<8)+(c[j+28>>2]|0)|0;if(!((f|0)>0&((k|0)>0&(l|0)>8))){Ia=g;return 0}j=f+-1|0;m=1;n=8;o=0;a:while(1){p=m<<1;q=(p|0)==256;r=n+(q&1)|0;s=q?1:p;b:do if(!(m&(d[b+n>>0]|0))){p=(s&(d[b+r>>0]|0)|0)!=0;q=s<<1;t=(q|0)==256;u=r+(t&1)|0;v=t?1:q;if(p){q=v<<1;t=(q|0)==256;w=t?1:q;x=u+(t&1)|0;y=(p&1)+((v&(d[b+u>>0]|0)|0)!=0&1)|0}else{w=v;x=u;y=0}u=3-y|0;v=u*5|0;if((u|0)>0){u=x;p=x;t=w;q=0;z=0;while(1){A=t<<1;B=(A|0)==256;C=p+1|0;D=B?C:u;E=B?1:A;A=((t&(d[b+p>>0]|0)|0)==0?0:1<<q)|z;q=q+1|0;if((q|0)==(v|0)){F=E;G=D;H=A;break}else{u=D;p=B?C:p;t=E;z=A}}}else{F=w;G=x;H=0}z=H+1|0;if(!((v|0)==10&(H|0)==0|(z|0)==0)){t=G;p=F;u=0;q=0;while(1){A=d[b+t>>0]|0;E=(p&A|0)!=0;C=p<<1;B=t+1|0;do if((C|0)!=256){D=E&1;I=(C&A|0)==0;J=p<<2;if((J|0)==256){K=1;L=d[b+B>>0]|0;M=D;N=I;O=42;break}else{P=p<<3;Q=(P|0)==256;R=Q?B:t;S=Q?1:P;T=J&A;U=(I?0:2)|D;break}}else{D=d[b+B>>0]|0;K=2;L=D;M=E&1;N=(D&1|0)==0;O=42}while(0);if((O|0)==42){O=0;R=B;S=K<<1;T=K&L;U=(N?0:2)|M}E=((T|0)==0?0:4)|U;u=u+3|0;q=E+q|0;if(!(u>>>0<1e5&(E|0)==7))break;else{t=R;p=S}}p=q+3|0;t=o;while(1){a[e+t>>0]=a[e+(t-z)>>0]|0;t=t+1|0;if((p|0)<=1)break;else p=p+-1|0}if((t|0)>=(j|0)){V=S;W=R;X=t;break}a[e+t>>0]=0;V=S;W=R;X=t;break}if((o|0)<(k|0)){p=F;z=G;q=o;while(1){u=d[b+z>>0]|0;v=(p&u|0)!=0;E=p<<1;A=z+1|0;do if((E|0)!=256){C=v&1;D=(E&u|0)==0;I=p<<2;if((I|0)==256){Y=1;Z=d[b+A>>0]|0;_=C;$=D;O=46;break}J=(D?0:2)|C;C=(I&u|0)==0;I=p<<3;if((I|0)==256){D=d[b+A>>0]|0;aa=2;ba=D;ca=A;da=(D&1|0)==0;ea=(C?0:4)|J;O=51}else{fa=I;ga=z;ha=u;ia=A;ja=C;ka=J;O=49}}else{J=d[b+A>>0]|0;Y=2;Z=J;_=v&1;$=(J&1|0)==0;O=46}while(0);if((O|0)==46){O=0;fa=Y<<1;ga=A;ha=Z;ia=z+2|0;ja=(Y&Z|0)==0;ka=($?0:2)|_;O=49}do if((O|0)==49){O=0;v=(ja?0:4)|ka;u=(fa&ha|0)==0;E=fa<<1;if((E|0)==256){aa=1;ba=d[b+ia>>0]|0;ca=ia;da=u;ea=v;O=51;break}B=(u?0:8)|v;v=(E&ha|0)==0;E=fa<<2;if((E|0)==256){u=d[b+ia>>0]|0;la=2;ma=u;na=ia;oa=(u&1|0)==0;pa=(v?0:16)|B;O=56}else{qa=E;ra=ga;sa=ha;ta=ia;ua=v;va=B;O=54}}while(0);if((O|0)==51){O=0;qa=aa<<1;ra=ca;sa=ba;ta=ca+1|0;ua=(aa&ba|0)==0;va=(da?0:8)|ea;O=54}do if((O|0)==54){O=0;A=(ua?0:16)|va;B=(qa&sa|0)==0;v=qa<<1;if((v|0)==256){la=1;ma=d[b+ta>>0]|0;na=ta;oa=B;pa=A;O=56;break}E=(B?0:32)|A;A=(v&sa|0)==0;v=qa<<2;if((v|0)==256){wa=ta;xa=2;ya=(a[b+ta>>0]&1)==0;za=(A?0:64)|E}else{Aa=v;Ba=ra;Ca=sa;Da=ta;Ea=A;Fa=E;O=59}}while(0);if((O|0)==56){O=0;Aa=la<<1;Ba=na;Ca=ma;Da=na+1|0;Ea=(la&ma|0)==0;Fa=(oa?0:32)|pa;O=59}if((O|0)==59){O=0;E=Aa<<1;A=(E|0)==256;wa=A?Da:Ba;xa=A?1:E;ya=(Aa&Ca|0)==0;za=(Ea?0:64)|Fa}E=(ya?0:128)|za;a[e+q>>0]=E;if(!(E&255)){V=xa;W=wa;X=q;break b}E=q+1|0;if((E|0)<(k|0)){p=xa;z=wa;q=E}else{V=xa;W=wa;X=E;break}}}else{V=F;W=G;X=o}}else{q=r;z=s;p=0;t=0;E=0;while(1){A=z<<1;v=(A|0)==256;Ga=q+(v&1)|0;Ha=v?1:A;if(!(E>>>0<16?(z&(d[b+q>>0]|0)|0)!=0:0))break;A=(16<<p)+t|0;q=Ga;z=Ha;p=p+1|0;t=A;E=E+1|0}E=p+3|0;z=Ga;q=Ha;A=0;v=0;while(1){B=q<<1;u=(B|0)==256;J=z;z=z+(u&1)|0;C=q;q=u?1:B;v=((C&(d[b+J>>0]|0)|0)==0?0:1<<A)|v;if((A|0)==(E|0))break;else A=A+1|0}A=v+t|0;if((A|0)>255){Ja=q;break a}E=c[h+(A<<2)>>2]|0;a[e+o>>0]=E;p=o+1|0;a[e+p>>0]=0;if((A|0)>0){J=A;do{A=J;J=J+-1|0;C=c[h+(J<<2)>>2]|0;c[h+(A<<2)>>2]=C;B=i+(C<<2)|0;c[B>>2]=(c[B>>2]|0)+1}while((A|0)>1)}c[h>>2]=E;c[i+(E<<2)>>2]=0;V=q;W=z;X=p}while(0);if((X|0)<(f|0)&((X|0)<(k|0)&(W|0)<(l|0))){m=V;n=W;o=X}else{Ja=V;break}}c[8730]=Ja;Ia=g;return 0}function Ll(b){b=b|0;var c=0;switch(a[b>>0]|0){case 58:{if(((a[b+1>>0]|0)==99?(a[b+2>>0]|0)==58:0)?(a[b+3>>0]|0)==0:0){c=1;return c|0}break}case 0:{if(((a[b+1>>0]|0)==112?(a[b+2>>0]|0)==120:0)?(a[b+3>>0]|0)==97:0){c=2;return c|0}break}default:{}}c=0;return c|0}function Ml(a,b,c){a=a|0;b=b|0;c=c|0;return Il(a,b,c)|0}function Nl(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;switch(a[b>>0]|0){case 58:{if(((a[b+1>>0]|0)==99?(a[b+2>>0]|0)==58:0)?(a[b+3>>0]|0)==0:0){f=d[b+4>>0]<<8|d[b+5>>0];wq(c,0,e);if((f|0)>(e|0)){g=1;return g|0}h=c+f|0;if(!f)i=c;else{f=b+8|0;j=c;while(1){k=a[f>>0]|0;l=k&255;m=f+1|0;if((k&255)<60){n=k<<24>>24==0;a[j>>0]=a[(n?m:91800+l|0)>>0]|0;o=1;p=n?f+2|0:m}else{n=d[m>>0]|0;m=(n>>>4)+2|0;Vv(j|0,j+(0-(n&15|(l<<4)+-960))|0,m|0)|0;o=m;p=f+2|0}m=j+o|0;if(m>>>0<h>>>0){f=p;j=m}else{i=m;break}}}j=bv(c,91861)|0;if((j|0)!=0?(p=bu(c)|0,(c-j+p|0)==56):0){j=c+p+-56|0;a[j>>0]=0;q=j}else q=i;i=bv(c,91918)|0;if(i){j=bu(c)|0;p=c;if((p-i+j|0)==73){i=c+j+-73|0;a[i>>0]=0;r=i;s=p}else{r=q;s=p}}else{r=q;s=c}g=r-s|0;return g|0}break}case 0:{if(((a[b+1>>0]|0)==112?(a[b+2>>0]|0)==120:0)?(a[b+3>>0]|0)==97:0){Kl(b,c,e)|0;g=0;return g|0}break}default:{}}kv(c,b,e)|0;g=0;return g|0}function Ol(a){a=a|0;var b=0;c[554434]=(c[554434]|0)+a;b=_s(a,1)|0;a=c[554433]|0;c[1462656+(a<<2)>>2]=b;c[554433]=a+((a|0)<16384&1);return b|0}function Pl(){var a=0,b=0;a=c[554433]|0;if((a|0)<=0)return;b=a;do{a=b+-1|0;c[554433]=a;Zs(c[1462656+(a<<2)>>2]|0);b=c[554433]|0}while((b|0)>0);return}function Ql(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=1;while(1){e=1<<d;if(d>>>0<9&(e|0)<(a|0))d=d+1|0;else break}if((e|0)!=(a|0)){f=0;return f|0}e=(c[554434]|0)+16|0;c[554434]=e;d=_s(16,1)|0;g=c[554433]|0;c[1462656+(g<<2)>>2]=d;h=g+((g|0)<16384&1)|0;c[554433]=h;if(!d){f=0;return f|0}g=a*3|0;c[554434]=e+g;e=_s(a,3)|0;c[1462656+(h<<2)>>2]=e;c[554433]=h+((h|0)<16384&1);c[d+12>>2]=e;if(!e){f=0;return f|0}c[d>>2]=a;h=1;while(1)if(h>>>0<9&(1<<h|0)<(a|0))h=h+1|0;else break;c[d+4>>2]=h;if(!b){f=d;return f|0}Vv(e|0,b|0,g|0)|0;f=d;return f|0}function Rl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=384;g=tu(a,b?193:577,f)|0;if((g|0)==-1)if(!d)h=0;else{c[d>>2]=1;h=0}else{f=Sl(g,d)|0;if(!f){su(g)|0;h=0}else h=f}Ia=e;return h|0}function Sl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[554434]|0;c[554434]=d+76;e=_s(76,1)|0;f=c[554433]|0;c[1462656+(f<<2)>>2]=e;g=f+((f|0)<16384&1)|0;c[554433]=g;if(!e){h=0;return h|0}f=e;i=f+76|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(i|0));c[554434]=d+24984;f=_s(24908,1)|0;c[1462656+(g<<2)>>2]=f;i=g+((g|0)<16384&1)|0;c[554433]=i;if(!f){if(!b){h=0;return h|0}c[b>>2]=7;h=0;return h|0}c[554434]=d+57752;d=_s(32768,1)|0;c[1462656+(i<<2)>>2]=d;c[554433]=i+((i|0)<16384&1);if(d|0){Wv(d|0,-1,32768)|0;c[f+24900>>2]=d;d=Hu(a,104706)|0;c[e+72>>2]=f;c[f+4>>2]=a;c[f+56>>2]=d;c[f>>2]=1;c[f+64>>2]=0;c[e+68>>2]=0;c[e+64>>2]=0;h=e;return h|0}if(!b){h=0;return h|0}c[b>>2]=7;h=0;return h|0}function Tl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=c[b+72>>2]|0;e=c[b+24>>2]|0;if((e|0)>0){f=c[b+52>>2]|0;g=d+24904|0;h=0;do{i=c[f+(h*36|0)+28>>2]|0;a:do if((i|0)>0){j=c[f+(h*36|0)+32>>2]|0;switch(c[j+8>>2]|0){case 1:case 249:case 254:case 255:{a[g>>0]=1;break}default:{}}if((i|0)>1){k=1;while(1){switch(c[j+(k*12|0)+8>>2]|0){case 1:case 249:case 254:case 255:{a[g>>0]=1;break}default:{}}k=k+1|0;if((k|0)>=(i|0))break a}}}while(0);h=h+1|0}while((h|0)<(e|0))}e=c[b+56>>2]|0;if((e|0)<=0){l=d+24904|0;m=a[l>>0]|0;n=m<<24>>24==0;o=n?91992:91999;return o|0}h=c[b+60>>2]|0;b=d+24904|0;d=0;while(1){switch(c[h+(d*12|0)+8>>2]|0){case 1:case 249:case 254:case 255:{a[b>>0]=1;break}default:{}}d=d+1|0;if((d|0)>=(e|0)){l=b;break}}m=a[l>>0]|0;n=m<<24>>24==0;o=n?91992:91999;return o|0}function Ul(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=Ia;Ia=Ia+16|0;j=i+4|0;k=i;l=b+72|0;m=c[l>>2]|0;n=c[m>>2]|0;if(n&2|0){c[b+64>>2]=3;o=0;Ia=i;return o|0}if(!(n&1)){c[b+64>>2]=10;o=0;Ia=i;return o|0}n=Tl(b)|0;p=bu(n)|0;q=c[l>>2]|0;r=c[q+64>>2]|0;if(!r)s=hv(n,1,p,c[q+56>>2]|0)|0;else s=Oa[r&7](b,n,p)|0;if((s|0)!=(bu(n)|0)){c[b+64>>2]=2;o=0;Ia=i;return o|0}c[b>>2]=d;c[b+4>>2]=e;c[b+8>>2]=f;c[b+12>>2]=g;n=(h|0)!=0;if(n){s=Ql(c[h>>2]|0,c[h+12>>2]|0)|0;c[b+20>>2]=s;if(!s){c[b+64>>2]=7;o=0;Ia=i;return o|0}}else c[b+20>>2]=0;a[j>>0]=d;s=j+1|0;a[s>>0]=d>>>8;d=c[l>>2]|0;p=c[d+64>>2]|0;if(!p)hv(j,1,2,c[d+56>>2]|0)|0;else Oa[p&7](b,j,2)|0;a[j>>0]=e;a[s>>0]=e>>>8;e=c[l>>2]|0;s=c[e+64>>2]|0;if(!s)hv(j,1,2,c[e+56>>2]|0)|0;else Oa[s&7](b,j,2)|0;j=(n?128:0)|(f<<4)+240;if(n){f=(c[h+4>>2]|0)+-1|j;a[k>>0]=f;if(a[h+8>>0]|0){t=f|8;u=24}}else{t=j|7;u=24}if((u|0)==24)a[k>>0]=t;t=k+1|0;a[t>>0]=g;g=k+2|0;a[g>>0]=a[b+16>>0]|0;u=c[l>>2]|0;j=c[u+64>>2]|0;if(!j)hv(k,1,3,c[u+56>>2]|0)|0;else Oa[j&7](b,k,3)|0;a:do if(n?(c[h>>2]|0)>0:0){j=h+12|0;u=0;while(1){f=c[j>>2]|0;a[k>>0]=a[f+(u*3|0)>>0]|0;a[t>>0]=a[f+(u*3|0)+1>>0]|0;a[g>>0]=a[f+(u*3|0)+2>>0]|0;f=c[l>>2]|0;s=c[f+64>>2]|0;if(!s)v=hv(k,1,3,c[f+56>>2]|0)|0;else v=Oa[s&7](b,k,3)|0;u=u+1|0;if((v|0)!=3)break;if((u|0)>=(c[h>>2]|0))break a}c[b+64>>2]=2;o=0;Ia=i;return o|0}while(0);c[m>>2]=c[m>>2]|2;o=1;Ia=i;return o|0} +function Wa(a){a=a|0;var b=0;b=Ia;Ia=Ia+a|0;Ia=Ia+15&-16;return b|0}function Xa(){return Ia|0}function Ya(a){a=a|0;Ia=a}function Za(a,b){a=a|0;b=b|0;Ia=a;Ja=b}function _a(){return c[(c[(c[c[742804]>>2]|0)+16>>2]|0)+12>>2]|0}function $a(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((c[780901]|0)!=0&(c[780894]|0)==1?a[3152374]&64:0)return;c[781024]=(c[781024]|0)-b;d=128-b|0;e=c[742782]|0;if((d|0)>0){f=e;g=0;while(1){Gp(f,f,0,g+b|0,0,g,128,1);g=g+1|0;h=c[742782]|0;if((g|0)==(d|0)){i=h;j=d;break}else f=h}}else{i=e;j=0}Pn(i,0,j,127,127,0);jh(65536);return}function ab(){var b=0,d=0;b=(c[781024]|0)+(c[781029]|0)|0;c[781024]=b;if((b|0)<=((c[781031]|0)+122|0))return;if((c[780901]|0)!=0&(c[780894]|0)==1?a[3152374]&64:0)return;c[781024]=b+-6;b=c[742782]|0;d=0;do{Gp(b,b,0,d+6|0,0,d,128,1);d=d+1|0;b=c[742782]|0}while((d|0)!=122);Pn(b,0,122,127,127,0);jh(65536);return}function bb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;b=Ia;Ia=Ia+352|0;d=b+336|0;e=b+328|0;f=b+320|0;g=b+312|0;h=b+304|0;i=b+296|0;j=b+288|0;k=b+280|0;l=b+272|0;m=b+264|0;n=b+256|0;o=b+248|0;p=b+240|0;q=b+232|0;r=b+224|0;s=b+216|0;t=b+208|0;u=b+200|0;v=b+192|0;w=b+184|0;x=b+176|0;y=b+168|0;z=b+160|0;A=b+152|0;B=b+144|0;C=b+136|0;D=b+128|0;E=b+120|0;F=b+16|0;G=b+8|0;H=b;I=b+340|0;if(!(ut(a,35296,9)|0))Wo(a+10|0,3115688)|0;if(!(ut(a,35306,10)|0))Wo(a+11|0,3117736)|0;if(!(ut(a,35317,14)|0)){c[H>>2]=1938452;Su(a+14|0,96484,H)|0}if(!(ut(a,35332,15)|0)){c[G>>2]=1938456;Su(a+15|0,96484,G)|0}if(!(ut(a,35348,11)|0)){c[F>>2]=1938516;c[F+4>>2]=1938520;c[F+8>>2]=1938524;c[F+12>>2]=1938528;c[F+16>>2]=1938532;c[F+20>>2]=1938536;c[F+24>>2]=1938540;c[F+28>>2]=1938544;c[F+32>>2]=1938548;c[F+36>>2]=1938552;c[F+40>>2]=1938556;c[F+44>>2]=1938560;c[F+48>>2]=1938564;c[F+52>>2]=1938568;c[F+56>>2]=1938572;c[F+60>>2]=1938576;c[F+64>>2]=1938580;c[F+68>>2]=1938584;c[F+72>>2]=1938588;c[F+76>>2]=1938592;c[F+80>>2]=1938596;c[F+84>>2]=1938600;c[F+88>>2]=1938604;c[F+92>>2]=1938608;c[F+96>>2]=1938612;Su(a+11|0,35360,F)|0}if(!(ut(a,35436,10)|0)){c[E>>2]=1938772;Su(a+10|0,96484,E)|0}if(!(ut(a,35447,11)|0)){c[D>>2]=1938800;Su(a+11|0,96484,D)|0}if(!(ut(a,51100,7)|0)){c[C>>2]=1938804;Su(a+7|0,96484,C)|0}if((ut(a,93198,6)|0)==0?(c[B>>2]=2142440,Su(a+6|0,96484,B)|0,c[555247]|0):0)c[555247]=c[535610];if(!(ut(a,35459,9)|0)){c[A>>2]=1938820;Su(a+9|0,96484,A)|0}if(!(ut(a,51487,16)|0)){c[z>>2]=1938788;Su(a+16|0,96484,z)|0}if(!(ut(a,51388,9)|0)){c[y>>2]=1938792;Su(a+9|0,96484,y)|0}if(!(ut(a,35469,12)|0)){c[x>>2]=1938836;Su(a+12|0,96484,x)|0}if(!(ut(a,35482,20)|0)){c[w>>2]=2141880;Su(a+20|0,96484,w)|0}if(!(ut(a,35503,22)|0)){c[v>>2]=2141884;Su(a+22|0,96484,v)|0}if(!(ut(a,35526,14)|0)){c[u>>2]=I;Su(a+14|0,96484,u)|0;c[484711]=(c[I>>2]|0)==2&1}if(!(ut(a,50818,13)|0)){c[t>>2]=1938844;Su(a+13|0,96484,t)|0}if(!(ut(a,35541,14)|0)){c[s>>2]=1938848;Su(a+14|0,96484,s)|0}if(!(ut(a,51593,9)|0)){c[r>>2]=1938776;Su(a+9|0,96484,r)|0}if(!(ut(a,50604,9)|0)){c[q>>2]=1938780;Su(a+9|0,96484,q)|0}if(!(ut(a,35556,19)|0)){c[p>>2]=1938500;Su(a+19|0,96484,p)|0}if(!(ut(a,35576,19)|0)){c[o>>2]=1938496;Su(a+19|0,96484,o)|0}if(!(ut(a,35596,22)|0)){c[n>>2]=1938504;Su(a+22|0,96484,n)|0}if(!(ut(a,35619,11)|0)){c[m>>2]=1938828;Su(a+11|0,96484,m)|0}if(!(ut(a,35631,14)|0)){c[l>>2]=1938784;Su(a+14|0,96484,l)|0}if(!(ut(a,35646,22)|0)){c[k>>2]=1938492;Su(a+22|0,96484,k)|0}if(!(ut(a,35669,18)|0)){c[j>>2]=1938484;Su(a+18|0,96484,j)|0}if(!(ut(a,35688,16)|0)){c[i>>2]=1938488;Su(a+16|0,96484,i)|0}if(!(ut(a,35705,16)|0)){c[h>>2]=1938480;Su(a+16|0,96484,h)|0}if(!(ut(a,35722,14)|0)){c[g>>2]=1938476;Su(a+14|0,96484,g)|0}if(!(ut(a,35737,18)|0)){c[f>>2]=1938816;Su(a+18|0,96484,f)|0}if(!(ut(a,35756,20)|0)){c[e>>2]=1938512;Su(a+20|0,96484,e)|0}if(ut(a,35777,13)|0){Ia=b;return 0}c[d>>2]=1938448;Su(a+13|0,96484,d)|0;c[555803]=c[484612];Ia=b;return 0}function cb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0;b=Ia;Ia=Ia+432|0;d=b+424|0;e=b+416|0;f=b+408|0;g=b+400|0;h=b+392|0;i=b+384|0;j=b+376|0;k=b+368|0;l=b+360|0;m=b+352|0;n=b+344|0;o=b+336|0;p=b+328|0;q=b+320|0;r=b+312|0;s=b+304|0;t=b+296|0;u=b+288|0;v=b+280|0;w=b+272|0;x=b+264|0;y=b+256|0;z=b+248|0;A=b+240|0;B=b+232|0;C=b+224|0;D=b+216|0;E=b+208|0;F=b+200|0;G=b+192|0;H=b+184|0;I=b+176|0;J=b+168|0;K=b+160|0;L=b+152|0;M=b+144|0;N=b+136|0;O=b+128|0;P=b+120|0;Q=b+112|0;R=b+104|0;S=b+96|0;T=b+88|0;U=b+80|0;V=b+72|0;W=b+64|0;X=b+56|0;Y=b+48|0;Z=b+40|0;_=b+32|0;$=b+24|0;aa=b+16|0;ba=b+8|0;ca=b;da=a+8|0;a=c[da>>2]|0;c[ca>>2]=35804;_u(a,35791,ca)|0;hv(35810,25,1,c[da>>2]|0)|0;ca=c[da>>2]|0;c[ba>>2]=c[535610];_u(ca,35836,ba)|0;hv(35848,37,1,c[da>>2]|0)|0;ba=c[da>>2]|0;c[aa>>2]=3115688;_u(ba,35886,aa)|0;hv(35901,36,1,c[da>>2]|0)|0;aa=c[da>>2]|0;c[$>>2]=3117736;_u(aa,35938,$)|0;hv(35954,65,1,c[da>>2]|0)|0;$=c[da>>2]|0;c[_>>2]=c[484613];_u($,36020,_)|0;hv(36040,77,1,c[da>>2]|0)|0;hv(36118,78,1,c[da>>2]|0)|0;_=c[da>>2]|0;c[Z>>2]=c[484614];_u(_,36197,Z)|0;hv(36218,111,1,c[da>>2]|0)|0;hv(36330,12,1,c[da>>2]|0)|0;Z=c[da>>2]|0;c[Y>>2]=c[484629];_u(Z,36343,Y)|0;Y=c[da>>2]|0;c[X>>2]=c[484630];_u(Y,36343,X)|0;X=c[da>>2]|0;c[W>>2]=c[484631];_u(X,36343,W)|0;W=c[da>>2]|0;c[V>>2]=c[484632];_u(W,36343,V)|0;V=c[da>>2]|0;c[U>>2]=c[484633];_u(V,36343,U)|0;U=c[da>>2]|0;c[T>>2]=c[484634];_u(U,36343,T)|0;T=c[da>>2]|0;c[S>>2]=c[484635];_u(T,36343,S)|0;S=c[da>>2]|0;c[R>>2]=c[484636];_u(S,36343,R)|0;R=c[da>>2]|0;c[Q>>2]=c[484637];_u(R,36343,Q)|0;Q=c[da>>2]|0;c[P>>2]=c[484638];_u(Q,36343,P)|0;P=c[da>>2]|0;c[O>>2]=c[484639];_u(P,36343,O)|0;O=c[da>>2]|0;c[N>>2]=c[484640];_u(O,36343,N)|0;N=c[da>>2]|0;c[M>>2]=c[484641];_u(N,36343,M)|0;M=c[da>>2]|0;c[L>>2]=c[484642];_u(M,36343,L)|0;L=c[da>>2]|0;c[K>>2]=c[484643];_u(L,36343,K)|0;K=c[da>>2]|0;c[J>>2]=c[484644];_u(K,36343,J)|0;J=c[da>>2]|0;c[I>>2]=c[484645];_u(J,36343,I)|0;I=c[da>>2]|0;c[H>>2]=c[484646];_u(I,36343,H)|0;H=c[da>>2]|0;c[G>>2]=c[484647];_u(H,36343,G)|0;G=c[da>>2]|0;c[F>>2]=c[484648];_u(G,36343,F)|0;F=c[da>>2]|0;c[E>>2]=c[484649];_u(F,36343,E)|0;E=c[da>>2]|0;c[D>>2]=c[484650];_u(E,36343,D)|0;D=c[da>>2]|0;c[C>>2]=c[484651];_u(D,36343,C)|0;C=c[da>>2]|0;c[B>>2]=c[484652];_u(C,36343,B)|0;B=c[da>>2]|0;c[A>>2]=c[484653];_u(B,36343,A)|0;hv(36347,2,1,c[da>>2]|0)|0;hv(36350,52,1,c[da>>2]|0)|0;A=c[da>>2]|0;c[z>>2]=c[484693];_u(A,36403,z)|0;hv(36419,70,1,c[da>>2]|0)|0;z=c[da>>2]|0;c[y>>2]=c[484700];_u(z,36490,y)|0;hv(36507,125,1,c[da>>2]|0)|0;y=c[da>>2]|0;c[x>>2]=c[484705];_u(y,36633,x)|0;hv(36648,52,1,c[da>>2]|0)|0;x=c[da>>2]|0;c[w>>2]=c[484697];_u(x,36701,w)|0;w=c[da>>2]|0;c[v>>2]=c[484698];_u(w,36722,v)|0;hv(36737,68,1,c[da>>2]|0)|0;v=c[da>>2]|0;c[u>>2]=c[484701];_u(v,36806,u)|0;hv(36819,101,1,c[da>>2]|0)|0;u=c[da>>2]|0;c[t>>2]=c[484702];_u(u,36921,t)|0;hv(36941,102,1,c[da>>2]|0)|0;t=c[da>>2]|0;c[s>>2]=c[535471];_u(t,37044,s)|0;hv(37072,28,1,c[da>>2]|0)|0;hv(37101,68,1,c[da>>2]|0)|0;s=c[da>>2]|0;c[r>>2]=c[484711];_u(s,37170,r)|0;hv(37189,64,1,c[da>>2]|0)|0;r=c[da>>2]|0;c[q>>2]=c[484712];_u(r,37254,q)|0;hv(37274,36,1,c[da>>2]|0)|0;q=c[da>>2]|0;c[p>>2]=c[484694];_u(q,37311,p)|0;hv(37326,59,1,c[da>>2]|0)|0;p=c[da>>2]|0;c[o>>2]=c[484695];_u(p,37386,o)|0;hv(37401,109,1,c[da>>2]|0)|0;o=c[da>>2]|0;c[n>>2]=c[484625];_u(o,37511,n)|0;hv(37536,53,1,c[da>>2]|0)|0;n=c[da>>2]|0;c[m>>2]=c[484624];_u(n,37590,m)|0;hv(37615,90,1,c[da>>2]|0)|0;m=c[da>>2]|0;c[l>>2]=c[484626];_u(m,37706,l)|0;if(!(c[484696]|0)){ea=c[da>>2]|0;hv(37753,48,1,ea)|0;fa=c[da>>2]|0;ga=c[484623]|0;c[k>>2]=ga;_u(fa,37802,k)|0;ha=c[da>>2]|0;hv(37830,67,1,ha)|0;ia=c[da>>2]|0;hv(37898,62,1,ia)|0;ja=c[da>>2]|0;ka=c[484621]|0;c[j>>2]=ka;_u(ja,37961,j)|0;la=c[da>>2]|0;hv(37985,89,1,la)|0;ma=c[da>>2]|0;na=c[484622]|0;c[i>>2]=na;_u(ma,38075,i)|0;oa=c[da>>2]|0;hv(38097,34,1,oa)|0;pa=c[da>>2]|0;hv(38132,26,1,pa)|0;qa=c[da>>2]|0;hv(38159,24,1,qa)|0;ra=c[da>>2]|0;hv(38184,29,1,ra)|0;sa=c[da>>2]|0;hv(38214,30,1,sa)|0;ta=c[da>>2]|0;hv(38245,30,1,ta)|0;ua=c[da>>2]|0;va=c[484620]|0;c[h>>2]=va;_u(ua,38276,h)|0;wa=c[da>>2]|0;hv(38298,95,1,wa)|0;xa=c[da>>2]|0;ya=c[484619]|0;c[g>>2]=ya;_u(xa,38394,g)|0;za=c[da>>2]|0;hv(38414,51,1,za)|0;Aa=c[da>>2]|0;hv(38466,80,1,Aa)|0;Ba=c[da>>2]|0;Ca=c[484704]|0;c[f>>2]=Ca;_u(Ba,38547,f)|0;Da=c[da>>2]|0;hv(38571,83,1,Da)|0;Ea=c[da>>2]|0;hv(38655,82,1,Ea)|0;Fa=c[da>>2]|0;Ga=c[484628]|0;c[e>>2]=Ga;_u(Fa,38738,e)|0;Ha=c[da>>2]|0;hv(38764,79,1,Ha)|0;Ja=c[da>>2]|0;Ka=c[484612]|0;c[d>>2]=Ka;_u(Ja,38844,d)|0;Ia=b;return 0}hv(37734,18,1,c[da>>2]|0)|0;ea=c[da>>2]|0;hv(37753,48,1,ea)|0;fa=c[da>>2]|0;ga=c[484623]|0;c[k>>2]=ga;_u(fa,37802,k)|0;ha=c[da>>2]|0;hv(37830,67,1,ha)|0;ia=c[da>>2]|0;hv(37898,62,1,ia)|0;ja=c[da>>2]|0;ka=c[484621]|0;c[j>>2]=ka;_u(ja,37961,j)|0;la=c[da>>2]|0;hv(37985,89,1,la)|0;ma=c[da>>2]|0;na=c[484622]|0;c[i>>2]=na;_u(ma,38075,i)|0;oa=c[da>>2]|0;hv(38097,34,1,oa)|0;pa=c[da>>2]|0;hv(38132,26,1,pa)|0;qa=c[da>>2]|0;hv(38159,24,1,qa)|0;ra=c[da>>2]|0;hv(38184,29,1,ra)|0;sa=c[da>>2]|0;hv(38214,30,1,sa)|0;ta=c[da>>2]|0;hv(38245,30,1,ta)|0;ua=c[da>>2]|0;va=c[484620]|0;c[h>>2]=va;_u(ua,38276,h)|0;wa=c[da>>2]|0;hv(38298,95,1,wa)|0;xa=c[da>>2]|0;ya=c[484619]|0;c[g>>2]=ya;_u(xa,38394,g)|0;za=c[da>>2]|0;hv(38414,51,1,za)|0;Aa=c[da>>2]|0;hv(38466,80,1,Aa)|0;Ba=c[da>>2]|0;Ca=c[484704]|0;c[f>>2]=Ca;_u(Ba,38547,f)|0;Da=c[da>>2]|0;hv(38571,83,1,Da)|0;Ea=c[da>>2]|0;hv(38655,82,1,Ea)|0;Fa=c[da>>2]|0;Ga=c[484628]|0;c[e>>2]=Ga;_u(Fa,38738,e)|0;Ha=c[da>>2]|0;hv(38764,79,1,Ha)|0;Ja=c[da>>2]|0;Ka=c[484612]|0;c[d>>2]=Ka;_u(Ja,38844,d)|0;Ia=b;return 0}function db(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;b=Ia;Ia=Ia+32|0;f=b+16|0;g=b+8|0;h=b;c[537596]=0;if(c[536392]|0){Ia=b;return}ic();c[h>>2]=3118768;c[h+4>>2]=1937144;vv(38945,h)|0;h=Aq(e)|0;Ho(d,1,e,h)|0;c[g>>2]=e;vv(39048,g)|0;c[h+20>>2]=0;g=Sb(h)|0;Ro(h);if(!g){c[484720]=-1;Ia=b;return}do if(bv(1937144,39063)|0){h=bv(1937144,39081)|0;if(!h){Rs(3118768,39086)|0;break}else{Rs(3118768,h+4|0)|0;break}}else Qo(1937144,0,3118768,0,1);while(0);h=3118768+(bu(3118768)|0)|0;e=h;a[e>>0]=46;a[e+1>>0]=112;a[e+2>>0]=56;a[e+3>>0]=46;e=h+4|0;a[e>>0]=112;a[e+1>>0]=110;a[e+2>>0]=103;a[e+3>>0]=0;c[f>>2]=3118768;c[f+4>>2]=1937144;vv(39112,f)|0;Zb(g,3118768);jc(g,3118768);c[780894]=0;c[781022]=6;c[780900]=1;Ia=b;return}function eb(a){a=a|0;c[537596]=0;if(!(c[780901]|0)){Mg(39175,0,0);c[484720]=-2;return}else{Rs(2141888,39175)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;c[484720]=-2;return}}function fb(a,b){a=a|0;b=b|0;Rs(2141888,a)|0;c[535536]=Xr()|0;c[535537]=b+400+(Xr()|0);c[535538]=15;return}function gb(){var b=0,d=0,e=0,f=0,g=0,h=0;ic();if(!(ka(0)|0))return;b=ka(1)|0;d=(b|0)>0;e=d?((b|0)<32?b:32):0;b=e<<15;f=xq(b)|0;if((e|0)>0){g=0;do{a[f+g>>0]=ka(2)|0;g=g+1|0}while((g|0)<(b|0))}b=vs()|0;Rb(b,f);c[b+45860>>2]=43;la(3,0)|0;a[104896]=0;g=0;do{h=ka(4)|0;a[104896+g>>0]=h;g=g+1|0;a[104896+g>>0]=0}while((h|0)!=0&g>>>0<1023);Zb(b,104896);if(d){d=0;do{b=vs()|0;Rb(b,f+(d<<15)|0);c[b+45860>>2]=43;la(3,d|0)|0;a[104896]=0;g=0;do{h=ka(4)|0;a[104896+g>>0]=h;g=g+1|0;a[104896+g>>0]=0}while((h|0)!=0&g>>>0<1023);jc(b,104896);ws(b);d=d+1|0}while((d|0)<(e|0))}c[780894]=0;c[780900]=1;return}function hb(){var b=0;b=ka(0)|0;if((b|0)!=0|(a[1937144]|0)==0){c[537596]=0;Cn(39361);c[484611]=0;gb();return}else{c[537596]=1;Cn(39342);c[484611]=1;qa(1937144,0,1,1);return}}function ib(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;e=Ia;Ia=Ia+16|0;f=e;g=e+4|0;Wv(2150388,0,66948)|0;if((b|0)<=1){Ia=e;return}h=1;i=0;a:while(1){j=d+(h<<2)|0;k=c[j>>2]|0;l=a[k>>0]|0;switch(l<<24>>24){case 62:case 124:case 38:{m=48;break a;break}default:{}}b:do if((i|0)!=17&l<<24>>24==45){n=k+1|0;o=(au(n,39389)|0)==0;if(!(au(n,86293)|0)){c[484543]=1;c[484608]=0;p=0}else p=o?4:-1;if(!(au(n,39398)|0)){c[484627]=1;q=0}else q=p;if(!(au(n,39409)|0)){c[484609]=1;c[484608]=1;r=0}else r=q;if((au(n,39437)|0)!=0?(o=(au(n,39425)|0)==0,s=(au(n,39415)|0)==0,t=(au(n,51388)|0)==0,u=(au(n,51487)|0)==0,v=(au(n,35459)|0)==0,w=(au(n,51100)|0)==0,(au(n,39439)|0)!=0):0)x=o?11:s?10:t?9:u?8:v?7:w?6:r;else{c[742801]=1;c[484543]=1;c[484608]=0;c[555284]=1;x=0}w=(au(n,39444)|0)==0;v=w|(au(n,39450)|0)==0;w=(au(n,50818)|0)==0;u=(au(n,35296)|0)==0;t=(au(n,35306)|0)==0;s=(au(n,35777)|0)==0;o=(au(n,90290)|0)==0;y=(au(n,93198)|0)==0;z=(au(n,39452)|0)==0;A=(au(n,39461)|0)==0;B=(au(n,39472)|0)==0;C=(au(n,51192)|0)==0;D=(au(n,39483)|0)==0;E=(au(n,39485)|0)==0;F=(au(n,39487)|0)==0;G=(au(n,39496)|0)==0;H=(au(n,39504)|0)==0;I=H?28:G?27:F?26:E?25:D?24:C?22:B?21:A?20:z?19:y?18:o?17:s?16:t?15:u?14:w?13:v?12:x}else{c[g>>2]=0;c[f>>2]=g;Su(k,94793,f)|0;do switch(i|0){case 0:{if(!(a[1937144]|0)){Wv(1937144,0,1024)|0;Rs(1937144,c[j>>2]|0)|0;I=0;break b}else{Rs(2150392+(c[537597]<<10)|0,c[j>>2]|0)|0;c[537597]=(c[537597]|0)+1;I=0;break b}break}case 4:{c[484613]=c[g>>2];I=0;break b;break}case 6:{c[484701]=c[g>>2];I=0;break b;break}case 7:{c[484705]=c[g>>2];I=0;break b;break}case 8:{c[484697]=c[g>>2];I=0;break b;break}case 9:{c[484698]=c[g>>2];I=0;break b;break}case 10:{c[484706]=c[g>>2];I=0;break b;break}case 11:{c[535463]=c[g>>2];I=0;break b;break}case 12:{kv(3126573,c[j>>2]|0,1024)|0;I=0;break b;break}case 13:{c[484711]=c[g>>2];I=0;break b;break}case 14:{Wo(c[j>>2]|0,3115688)|0;I=0;break b;break}case 15:{Wo(c[j>>2]|0,3117736)|0;I=0;break b;break}case 16:{c[484612]=c[g>>2];I=0;break b;break}case 17:{kv(2142448,c[j>>2]|0,1023)|0;c[555284]=1;I=0;break b;break}case 18:{v=c[g>>2]|0;w=(v|0)<256?v:256;v=(w|0)>0?w:0;c[535610]=v;if(!(c[555247]|0)){I=0;break b}c[555247]=v;I=0;break b;break}case 19:{c[535871]=c[g>>2];I=0;break b;break}case 20:{c[535873]=c[g>>2];I=0;break b;break}case 21:{c[535874]=c[g>>2];I=0;break b;break}case 22:{c[484702]=c[g>>2];I=0;break b;break}case 23:{kv(2219928,c[j>>2]|0,1023)|0;I=0;break b;break}default:{if(!((i|0)!=24|(c[536396]|0)!=0)){c[536396]=Fu(c[j>>2]|0,96074)|0;I=0;break b}if(!((i|0)!=25|(c[536397]|0)!=0)){c[536397]=Fu(c[j>>2]|0,104706)|0;I=0;break b}switch(i|0){case 26:{kv(2145596,c[j>>2]|0,2047)|0;I=0;break b;break}case 27:{kv(2147644,c[j>>2]|0,2047)|0;I=0;break b;break}case 28:{kv(1938176,c[j>>2]|0,255)|0;I=0;break b;break}default:{I=0;break b}}}}while(0)}while(0);h=h+1|0;if((h|0)>=(b|0)){m=48;break}else i=I}if((m|0)==48){Ia=e;return}}function jb(){var a=0;if(c[537423]|0){ka(5)|0;c[537423]=0}c[535869]=0;c[780894]=2;c[742774]=-15;c[798948]=0;Rg();Tg();Lg(3196396);c[781022]=7;Nn(c[742782]|0);Nn(c[742795]|0);bo(c[(c[26544]|0)+4>>2]|0,2,2,5,5,7);bo(c[(c[26544]|0)+4>>2]|0,5,2,2,5,7);a=Fa(0)|0;zl((Xr()|0)+a|0);or();lr(0,0);c[554964]=0;c[535872]=0;c[484610]=0;if(!(no()|0))return;do oo()|0;while((no()|0)!=0);return}function kb(){Wv(3193872,0,488)|0;c[798575]=2;c[798506]=0;c[798576]=5;c[798472]=1;c[798491]=8;c[798492]=0;c[778921]=0;c[484616]=0;c[535466]=1;return}function lb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=Ia;Ia=Ia+2896|0;f=e+2888|0;g=e+2880|0;h=e+2872|0;i=e+2864|0;j=e+2048|0;k=e+1024|0;l=e;Wv(1937144,0,213240)|0;Tk();c[484699]=0;c[484701]=16;c[484697]=3;c[484706]=-1;c[484709]=1;c[535470]=1;c[535471]=1;c[484711]=0;c[484694]=1;c[484626]=1;c[484623]=5;c[484622]=20;c[484628]=4;c[484625]=0;c[484624]=0;c[484698]=2;ka(6)|0;yn(62178);Do(2);Eo(3);wq(2971096,0,224700);An()|0;c[484608]=c[484712];ib(b,d);Vq(1);if((c[555241]|0)<32|(c[555242]|0)<32){c[555241]=580;c[555242]=540}if(!((a[3115688]|0)!=0?(d=Dr(3115688,97321,j,-1)|0,Fr(j)|0,!(d|0)):0))ds(40671,3115688);if(!((a[3117736]|0)!=0?(d=Dr(3117736,97321,j,-1)|0,Fr(j)|0,!(d|0)):0))ds(40678,3117736);Wv(3193872,0,488)|0;c[798575]=2;c[798506]=0;c[798576]=5;c[798472]=1;c[798491]=8;c[798492]=0;c[778921]=0;c[484616]=0;c[535466]=1;c[781999]=vs()|0;es(40685,k);es(40695,k);if(c[742801]|0){c[i>>2]=1937144;vv(40704,i)|0}i=Oo(k)|0;c[742802]=i;if(!i){c[h>>2]=k;vv(40717,h)|0;ya(0)}h=c[c[i>>2]>>2]|0;c[h+20>>2]=0;c[742803]=xs(h,0)|0;h=c[(c[c[742802]>>2]|0)+4>>2]|0;c[h+20>>2]=0;c[742804]=Lo(3196396,h)|0;h=c[(c[c[742802]>>2]|0)+8>>2]|0;c[h+20>>2]=0;i=Lo(3196396,h)|0;c[742805]=i;if(c[484696]|0){h=(c[(c[i>>2]|0)+152>>2]|0)+16|0;i=c[c[h>>2]>>2]|0;d=a[i>>0]|0;a[i>>0]=a[i+2>>0]|0;a[(c[c[h>>2]>>2]|0)+2>>0]=d;d=c[(c[h>>2]|0)+4>>2]|0;i=a[d>>0]|0;a[d>>0]=a[d+2>>0]|0;a[(c[(c[h>>2]|0)+4>>2]|0)+2>>0]=i;i=c[(c[h>>2]|0)+8>>2]|0;d=a[i>>0]|0;a[i>>0]=a[i+2>>0]|0;a[(c[(c[h>>2]|0)+8>>2]|0)+2>>0]=d;d=c[(c[h>>2]|0)+12>>2]|0;i=a[d>>0]|0;a[d>>0]=a[d+2>>0]|0;a[(c[(c[h>>2]|0)+12>>2]|0)+2>>0]=i;i=c[(c[h>>2]|0)+16>>2]|0;d=a[i>>0]|0;a[i>>0]=a[i+2>>0]|0;a[(c[(c[h>>2]|0)+16>>2]|0)+2>>0]=d}zn(93616);zn(c[(c[(c[c[742804]>>2]|0)+16>>2]|0)+12>>2]|0);do if(!(c[535871]|0)){d=c[535873]|0;h=c[535874]|0;if((d|0)>1|(h|0)>1){i=(d|0)<8?d:8;d=(h|0)<8?h:8;tr((i|0)<1?128:i<<7,(d|0)<1?128:d<<7,8,256)|0;break}else{tr(128,128,8,256)|0;c[555257]=-1;break}}else tr(144,136,8,256)|0;while(0);ur(c[(c[c[742804]>>2]|0)+4>>2]|0);c[742782]=Sn(128,128,8)|0;c[742787]=Sn(128,128,8)|0;c[742788]=Sn(128,128,8)|0;c[742789]=Sn(128,128,8)|0;c[742790]=Sn(128,128,8)|0;c[742782]=c[742787];c[742783]=Sn(128,128,8)|0;c[742784]=Sn(128,128,8)|0;c[742785]=Sn(128,128,8)|0;c[742786]=Sn(128,128,8)|0;c[742795]=Sn(128,128,8)|0;c[535604]=Sn(128,128,8)|0;c[766827]=Gl(128,128)|0;c[766828]=Gl(128,128)|0;d=0;do{c[3067316+(d<<2)>>2]=Gl(8,32)|0;d=d+1|0}while((d|0)!=64);c[742806]=Sn(1,1,8)|0;c[742807]=Sn(8,8,8)|0;Wv(105920,0,260)|0;c[26544]=vs()|0;jb();d=Bs(0,65538)|0;c[778903]=d;c[d+308>>2]=4;c[d+312>>2]=6;i=c[484694]|0;h=(i|0)<4?i:4;c[d+316>>2]=((h|0)>1?h:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778904]=d;c[d+308>>2]=4;c[d+312>>2]=6;h=c[484694]|0;i=(h|0)<4?h:4;c[d+316>>2]=((i|0)>1?i:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778905]=d;c[d+308>>2]=4;c[d+312>>2]=6;i=c[484694]|0;h=(i|0)<4?i:4;c[d+316>>2]=((h|0)>1?h:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778906]=d;c[d+308>>2]=4;c[d+312>>2]=6;h=c[484694]|0;i=(h|0)<4?h:4;c[d+316>>2]=((i|0)>1?i:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778907]=d;c[d+308>>2]=4;c[d+312>>2]=6;i=c[484694]|0;h=(i|0)<4?i:4;c[d+316>>2]=((h|0)>1?h:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778908]=d;c[d+308>>2]=4;c[d+312>>2]=6;h=c[484694]|0;i=(h|0)<4?h:4;c[d+316>>2]=((i|0)>1?i:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778909]=d;c[d+308>>2]=4;c[d+312>>2]=6;i=c[484694]|0;h=(i|0)<4?i:4;c[d+316>>2]=((h|0)>1?h:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778910]=d;c[d+308>>2]=4;c[d+312>>2]=6;h=c[484694]|0;i=(h|0)<4?h:4;c[d+316>>2]=((i|0)>1?i:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778911]=d;c[d+308>>2]=4;c[d+312>>2]=6;i=c[484694]|0;h=(i|0)<4?i:4;c[d+316>>2]=((h|0)>1?h:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778912]=d;c[d+308>>2]=4;c[d+312>>2]=6;h=c[484694]|0;i=(h|0)<4?h:4;c[d+316>>2]=((i|0)>1?i:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778913]=d;c[d+308>>2]=4;c[d+312>>2]=6;i=c[484694]|0;h=(i|0)<4?i:4;c[d+316>>2]=((h|0)>1?h:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778914]=d;c[d+308>>2]=4;c[d+312>>2]=6;h=c[484694]|0;i=(h|0)<4?h:4;c[d+316>>2]=((i|0)>1?i:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778915]=d;c[d+308>>2]=4;c[d+312>>2]=6;i=c[484694]|0;h=(i|0)<4?i:4;c[d+316>>2]=((h|0)>1?h:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778916]=d;c[d+308>>2]=4;c[d+312>>2]=6;h=c[484694]|0;i=(h|0)<4?h:4;c[d+316>>2]=((i|0)>1?i:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778917]=d;c[d+308>>2]=4;c[d+312>>2]=6;i=c[484694]|0;h=(i|0)<4?i:4;c[d+316>>2]=((h|0)>1?h:1)<<2;c[d+332>>2]=0;d=Bs(0,65538)|0;c[778918]=d;c[d+308>>2]=4;c[d+312>>2]=6;h=c[484694]|0;i=(h|0)<4?h:4;c[d+316>>2]=((i|0)>1?i:1)<<2;c[d+332>>2]=0;c[778919]=c[778903];ku(3118768,rc(40174)|0)|0;d=0;do{if(!(Gr(3118768)|0))break;d=d+1|0;c[g>>2]=d;wt(j,40187,g)|0;ku(3118768,rc(j)|0)|0}while(d>>>0<1e3);Kb(c[26544]|0,3119792);Tq(22050,1)|0;c[555267]=1;ka(7)|0;do if(!((c[742801]|0)==0&(a[2142448]|0)==0)){_o(1937144,k);d=(bc(k)|0)==0;c[484542]=d&1;if(!d){c[f>>2]=1937144;vv(40735,f)|0;ya(1)}if(!(a[2142448]|0)){c[780894]=0;c[780900]=1;break}else{c[742801]=1;Rs(l,3115688)|0;Rs(3115688,40754)|0;Rs(3116712,3196396)|0;bm(2142448);Rs(3115688,l)|0;ya(0)}}while(0);c[484713]=0;if(ka(8)|0)c[484713]=1;if(ka(9)|0)c[484713]=3;c[555803]=c[484612];if(!((a[2147644]|a[2145596])<<24>>24)){Ia=e;return}uc(2145596,2147644);c[537423]=1;Ia=e;return}function mb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=d&-65;d=e|2;if((d|0)==3){f=b+16|0;g=0;do{h=127;while(1){i=c[(c[f>>2]|0)+(g<<2)>>2]|0;a[i+h>>0]=a[i+(h>>>1)>>0]|0;if(!h)break;else h=h+-1|0}g=g+1|0}while((g|0)!=128)}g=e|1;if((g|0)==3){f=b+16|0;h=127;while(1){i=h>>>1;j=0;do{k=c[f>>2]|0;a[(c[k+(h<<2)>>2]|0)+j>>0]=a[(c[k+(i<<2)>>2]|0)+j>>0]|0;j=j+1|0}while((j|0)!=128);if(!h)break;else h=h+-1|0}}if((d|0)==7){h=b+16|0;f=0;do{j=0;do{i=c[(c[h>>2]|0)+(f<<2)>>2]|0;a[i+(127-j)>>0]=a[i+j>>0]|0;j=j+1|0}while((j|0)!=64);f=f+1|0}while((f|0)!=128)}if((g|0)==7){f=b+16|0;h=0;do{j=127-h|0;i=0;do{k=c[f>>2]|0;a[(c[k+(j<<2)>>2]|0)+i>>0]=a[(c[k+(h<<2)>>2]|0)+i>>0]|0;i=i+1|0}while((i|0)!=128);h=h+1|0}while((h|0)!=64)}h=(e|0)==134;if(h|(g|0)==131){g=b+16|0;f=0;do{i=127-f|0;j=0;do{k=c[g>>2]|0;l=(c[k+(f<<2)>>2]|0)+j|0;m=a[l>>0]|0;a[l>>0]=a[(c[k+(i<<2)>>2]|0)+j>>0]|0;a[(c[(c[g>>2]|0)+(i<<2)>>2]|0)+j>>0]=m;j=j+1|0}while((j|0)!=128);f=f+1|0}while((f|0)!=64)}if(h|(d|0)==131){d=b+16|0;h=0;do{f=0;do{g=c[(c[d>>2]|0)+(h<<2)>>2]|0;j=g+f|0;i=a[j>>0]|0;m=127-f|0;a[j>>0]=a[g+m>>0]|0;a[(c[(c[d>>2]|0)+(h<<2)>>2]|0)+m>>0]=i;f=f+1|0}while((f|0)!=64);h=h+1|0}while((h|0)!=128)}switch(e|0){case 133:{e=b+16|0;h=0;do{d=127-h|0;f=0;do{i=c[e>>2]|0;m=(c[i+(h<<2)>>2]|0)+f|0;g=a[m>>0]|0;j=127-f|0;a[m>>0]=a[(c[i+(j<<2)>>2]|0)+h>>0]|0;i=c[e>>2]|0;a[(c[i+(j<<2)>>2]|0)+h>>0]=a[(c[i+(d<<2)>>2]|0)+j>>0]|0;i=c[e>>2]|0;a[(c[i+(d<<2)>>2]|0)+j>>0]=a[(c[i+(f<<2)>>2]|0)+d>>0]|0;a[(c[(c[e>>2]|0)+(f<<2)>>2]|0)+d>>0]=g;f=f+1|0}while((f|0)!=64);h=h+1|0}while((h|0)!=64);return}case 135:{h=b+16|0;b=0;do{e=127-b|0;f=0;do{d=c[h>>2]|0;g=(c[d+(b<<2)>>2]|0)+f|0;i=a[g>>0]|0;a[g>>0]=a[(c[d+(f<<2)>>2]|0)+e>>0]|0;d=c[h>>2]|0;g=127-f|0;a[(c[d+(f<<2)>>2]|0)+e>>0]=a[(c[d+(e<<2)>>2]|0)+g>>0]|0;d=c[h>>2]|0;a[(c[d+(e<<2)>>2]|0)+g>>0]=a[(c[d+(g<<2)>>2]|0)+b>>0]|0;a[(c[(c[h>>2]|0)+(g<<2)>>2]|0)+b>>0]=i;f=f+1|0}while((f|0)!=64);b=b+1|0}while((b|0)!=64);return}default:return}}function nb(){if(c[535872]|0)return;c[535872]=(Xr()|0)+150;return}function ob(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=Ia;Ia=Ia+128|0;f=e;g=(c[780901]|0)!=0;h=c[781999]|0;i=c[(g&(a[3152405]|0)==0?h+4|0:2971148+((g?b:0)<<2)|0)>>2]|0;b=c[742795]|0;c[781037]=1;c[f>>2]=$k(2971096,h,24416)|0;c[f+4>>2]=$k(2971096,c[781999]|0,24417)|0;c[f+8>>2]=$k(2971096,c[781999]|0,24418)|0;c[f+12>>2]=$k(2971096,c[781999]|0,24419)|0;c[f+16>>2]=$k(2971096,c[781999]|0,24420)|0;c[f+20>>2]=$k(2971096,c[781999]|0,24421)|0;c[f+24>>2]=$k(2971096,c[781999]|0,24422)|0;c[f+28>>2]=$k(2971096,c[781999]|0,24423)|0;c[f+32>>2]=$k(2971096,c[781999]|0,24424)|0;c[f+36>>2]=$k(2971096,c[781999]|0,24425)|0;c[f+40>>2]=$k(2971096,c[781999]|0,24426)|0;c[f+44>>2]=$k(2971096,c[781999]|0,24427)|0;c[f+48>>2]=$k(2971096,c[781999]|0,24428)|0;c[f+52>>2]=$k(2971096,c[781999]|0,24429)|0;c[f+56>>2]=$k(2971096,c[781999]|0,24430)|0;c[f+60>>2]=$k(2971096,c[781999]|0,24431)|0;c[f+64>>2]=$k(2971096,c[781999]|0,24432)|0;c[f+68>>2]=$k(2971096,c[781999]|0,24433)|0;c[f+72>>2]=$k(2971096,c[781999]|0,24434)|0;c[f+76>>2]=$k(2971096,c[781999]|0,24435)|0;c[f+80>>2]=$k(2971096,c[781999]|0,24436)|0;c[f+84>>2]=$k(2971096,c[781999]|0,24437)|0;c[f+88>>2]=$k(2971096,c[781999]|0,24438)|0;c[f+92>>2]=$k(2971096,c[781999]|0,24439)|0;c[f+96>>2]=$k(2971096,c[781999]|0,24440)|0;c[f+100>>2]=$k(2971096,c[781999]|0,24441)|0;c[f+104>>2]=$k(2971096,c[781999]|0,24442)|0;c[f+108>>2]=$k(2971096,c[781999]|0,24443)|0;c[f+112>>2]=$k(2971096,c[781999]|0,24444)|0;c[f+116>>2]=$k(2971096,c[781999]|0,24445)|0;c[f+120>>2]=$k(2971096,c[781999]|0,24446)|0;c[f+124>>2]=$k(2971096,c[781999]|0,24447)|0;h=$k(2971096,c[781999]|0,24415)|0;a:do if((h|0)==16){g=i+12|0;j=b+12|0;k=0;do{l=(($k(2971096,c[781999]|0,(k>>>3)+24432|0)|0)&1<<(k&7)|0)==0;m=l?3123944:f;l=k<<7;n=l+128|0;o=l;do{a[(c[j>>2]|0)+o>>0]=c[m+((a[(c[g>>2]|0)+o>>0]&15)<<2)>>2]&143;o=o+1|0}while(o>>>0<n>>>0);k=k+1|0}while((k|0)!=128);if(!(c[535872]|0))c[535872]=(Xr()|0)+150}else{if((h|0)==32&(c[781033]|0)==1&(c[780894]|0)==1){k=i+12|0;g=b+12|0;j=64;n=0;while(1){o=n<<7;if(o>>>0<(o|64)>>>0){m=o;do{o=c[k>>2]|0;a[(c[g>>2]|0)+m>>0]=c[((a[o+(m+64)>>0]|0)==0?3123944:f)+((a[o+m>>0]&15)<<2)>>2]&143;m=m+1|0}while((m|0)!=(j|0))}n=n+1|0;if((n|0)==128)break;else j=j+128|0}if(c[535872]|0)break;c[535872]=(Xr()|0)+150;break}j=i+12|0;if((h&-16|0)!=48){n=b+12|0;g=0;while(1){a[(c[n>>2]|0)+g>>0]=c[3123944+((a[(c[j>>2]|0)+g>>0]&15)<<2)>>2]&143;g=g+1|0;if((g|0)==16384)break a}}g=h+-48|0;n=b+12|0;k=0;do{m=k>>>3;o=(($k(2971096,c[781999]|0,m+24432|0)|0)&1<<(k&7)|0)==0;l=k<<7;p=l+128|0;q=f+((o?m:m+1&15)<<2)|0;m=l;do{l=d[(c[j>>2]|0)+m>>0]|0;a[(c[n>>2]|0)+m>>0]=c[((g|0)==(l|0)?q:3123944+((l&15)<<2)|0)>>2]&143;m=m+1|0}while(m>>>0<p>>>0);k=k+1|0}while((k|0)!=128);if(!(c[535872]|0))c[535872]=(Xr()|0)+150}while(0);if(!((c[780894]|0)==1&(c[780901]|0)!=0)){Ia=e;return}mb(b,c[781033]|0);Ia=e;return}function pb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;switch(c[485555]|0){case 2:{jm(a);return}case 3:{mm(a);return}default:{b=(c[26757]|0)==7?22:0;d=((c[485556]<<3)+8|0)/2|0;e=b+d|0;Hk(a,23,63-d+b|0,104,e+64|0,1);f=64-d+b|0;Wn(a,24,f,103,e+63|0,7);e=f+6|0;if((c[26757]|0)==7){Hk(a,10,25,118,55,1);Wn(a,11,26,117,54,7);Bo(a,40935,c[742805]|0,22,34,1,7)|0;Bo(a,40957,c[742805]|0,20,42,1,7)|0;if((up((Xr()|0)*50|0)|0)<-1999)g=0;else g=(up((Xr()|0)*50|0)|0)/2e3|0;Rn(c[(c[c[742804]>>2]|0)+((((g|0)/4|0|0)%10|0)+212<<2)>>2]|0,a,0,0,g+63|0,59,10,10);if((up(((Xr()|0)*50|0)+32768|0)|0)<-1999)h=0;else h=(up(((Xr()|0)*50|0)+32768|0)|0)/2e3|0;Rn(c[(c[c[742804]>>2]|0)+((((h|0)/4|0|0)%10|0)+212<<2)>>2]|0,a,0,0,56-h|0,59,10,10)}if((c[485556]|0)<=0)return;h=0;g=e;while(1){Bo(a,106960+(h*72|0)|0,c[742805]|0,(h|0)==(c[485557]|0)?35:34,g,1,7)|0;if((h|0)==(c[485557]|0))Rn(c[(c[c[742804]>>2]|0)+980>>2]|0,a,0,0,25,g+-1|0,7,7);do if((c[106960+(h*72|0)+68>>2]|0)==2){e=(ym(3120504,3121528)|0)==0;f=c[(c[c[742804]>>2]|0)+752>>2]|0;b=g+-1|0;if(e){co(f,a,0,0,74,b,7,7,13,0);break}else{Rn(f,a,0,0,74,b,7,7);break}}while(0);h=h+1|0;if((h|0)>=(c[485556]|0))break;else g=g+8|0}return}}}function qb(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;e=c[554334]|0;if(!e){f=Sn(128,128,8)|0;c[554334]=f;g=f}else g=e;e=b+4|0;Gp(b,g,0,0,0,0,c[b>>2]|0,c[e>>2]|0);Nn(b);Gp(g,b,0,0,((c[b>>2]|0)+-128|0)/2|0,((c[e>>2]|0)+-128|0)/2|0,128,128);f=c[c[742804]>>2]|0;h=c[f+996>>2]|0;i=c[f+4>>2]|0;a[i+765>>0]=73;a[i+766>>0]=51;a[i+767>>0]=59;f=g+16|0;g=0;do{j=(g|0)==0;k=g<<7|16;l=0;do{m=c[f>>2]|0;n=l<<2;o=c[m+(n<<2)>>2]|0;if(j){p=0;q=0;r=0;s=0;t=0;do{u=d[o+q>>0]|0;v=d[i+(u*3|0)>>0]|0;w=d[i+(u*3|0)+1>>0]|0;x=d[i+(u*3|0)+2>>0]|0;u=80-q+v+w+x|0;t=u+t|0;s=(B(u,v)|0)+s|0;r=(B(u,w)|0)+r|0;p=(B(u,x)|0)+p|0;q=q+1|0}while((q|0)!=64);q=c[m+((n|1)<<2)>>2]|0;x=p;u=0;w=r;v=s;y=t;do{z=d[q+u>>0]|0;A=d[i+(z*3|0)>>0]|0;C=d[i+(z*3|0)+1>>0]|0;D=d[i+(z*3|0)+2>>0]|0;z=80-u+A+C+D|0;y=z+y|0;v=(B(z,A)|0)+v|0;w=(B(z,C)|0)+w|0;x=(B(z,D)|0)+x|0;u=u+1|0}while((u|0)!=64);u=c[m+((n|2)<<2)>>2]|0;q=x;t=0;s=w;r=v;p=y;do{D=d[u+t>>0]|0;z=d[i+(D*3|0)>>0]|0;C=d[i+(D*3|0)+1>>0]|0;A=d[i+(D*3|0)+2>>0]|0;D=80-t+z+C+A|0;p=D+p|0;r=(B(D,z)|0)+r|0;s=(B(D,C)|0)+s|0;q=(B(D,A)|0)+q|0;t=t+1|0}while((t|0)!=64);t=c[m+((n|3)<<2)>>2]|0;u=q;y=0;v=s;w=r;x=p;while(1){A=d[t+y>>0]|0;D=d[i+(A*3|0)>>0]|0;C=d[i+(A*3|0)+1>>0]|0;z=d[i+(A*3|0)+2>>0]|0;A=80-y+D+C+z|0;E=A+x|0;F=(B(A,D)|0)+w|0;D=(B(A,C)|0)+v|0;C=(B(A,z)|0)+u|0;y=y+1|0;if((y|0)==64){G=C;H=D;I=F;J=E;break}else{u=C;v=D;w=F;x=E}}}else{x=0;w=0;v=0;u=0;y=0;do{t=d[o+(127-w)>>0]|0;p=d[i+(t*3|0)>>0]|0;r=d[i+(t*3|0)+1>>0]|0;s=d[i+(t*3|0)+2>>0]|0;t=80-w+p+r+s|0;y=t+y|0;u=(B(t,p)|0)+u|0;v=(B(t,r)|0)+v|0;x=(B(t,s)|0)+x|0;w=w+1|0}while((w|0)!=64);w=c[m+((n|1)<<2)>>2]|0;o=x;s=0;t=v;r=u;p=y;do{q=d[w+(127-s)>>0]|0;E=d[i+(q*3|0)>>0]|0;F=d[i+(q*3|0)+1>>0]|0;D=d[i+(q*3|0)+2>>0]|0;q=80-s+E+F+D|0;p=q+p|0;r=(B(q,E)|0)+r|0;t=(B(q,F)|0)+t|0;o=(B(q,D)|0)+o|0;s=s+1|0}while((s|0)!=64);s=c[m+((n|2)<<2)>>2]|0;w=o;y=0;u=t;v=r;x=p;do{D=d[s+(127-y)>>0]|0;q=d[i+(D*3|0)>>0]|0;F=d[i+(D*3|0)+1>>0]|0;E=d[i+(D*3|0)+2>>0]|0;D=80-y+q+F+E|0;x=D+x|0;v=(B(D,q)|0)+v|0;u=(B(D,F)|0)+u|0;w=(B(D,E)|0)+w|0;y=y+1|0}while((y|0)!=64);y=c[m+((n|3)<<2)>>2]|0;s=w;p=0;r=u;t=v;o=x;while(1){E=d[y+(127-p)>>0]|0;D=d[i+(E*3|0)>>0]|0;F=d[i+(E*3|0)+1>>0]|0;q=d[i+(E*3|0)+2>>0]|0;E=80-p+D+F+q|0;C=E+o|0;z=(B(E,D)|0)+t|0;D=(B(E,F)|0)+r|0;F=(B(E,q)|0)+s|0;p=p+1|0;if((p|0)==64){G=F;H=D;I=z;J=C;break}else{s=F;r=D;t=z;o=C}}}o=l+k|0;a[i+(o*3|0)>>0]=(I|0)/(J|0)|0;a[i+(o*3|0)+1>>0]=(H|0)/(J|0)|0;a[i+(o*3|0)+2>>0]=(G|0)/(J|0)|0;l=l+1|0}while((l|0)!=32);g=g+1|0}while((g|0)!=2);g=0;do{J=g<<7&128|16;G=0;do{H=G+J|0;I=G+-1|0;f=((I|0)>0?I:0)+J|0;G=G+1|0;I=(G>>>0<31?G:31)+J|0;l=i+(H*3|0)|0;a[l>>0]=(((d[l>>0]|0)*6|0)+(d[i+(f*3|0)>>0]|0)+(d[i+(I*3|0)>>0]|0)|0)>>>3;l=i+(H*3|0)+1|0;a[l>>0]=(((d[l>>0]|0)*6|0)+(d[i+(f*3|0)+1>>0]|0)+(d[i+(I*3|0)+1>>0]|0)|0)>>>3;l=i+(H*3|0)+2|0;a[l>>0]=(((d[l>>0]|0)*6|0)+(d[i+(f*3|0)+2>>0]|0)+(d[i+(I*3|0)+2>>0]|0)|0)>>>3}while((G|0)!=32);g=g+1|0}while((g|0)!=128);g=h+4|0;G=0;do{J=G+16|0;I=(ao(h,1,(B(c[g>>2]|0,G)|0)/32|0)|0)>>>16;f=(ao(h,1,(B(c[g>>2]|0,G)|0)/32|0)|0)>>>8;l=ao(h,1,(B(c[g>>2]|0,G)|0)/32|0)|0;H=i+(J*3|0)|0;a[H>>0]=I+(((d[H>>0]|0)/5|0)&255);H=i+(J*3|0)+1|0;a[H>>0]=f+(((d[H>>0]|0)/5|0)&255);H=i+(J*3|0)+2|0;a[H>>0]=l+(((d[H>>0]|0)/5|0)&255);G=G+1|0}while((G|0)!=32);G=0;do{H=G+144|0;l=(ao(h,(c[h>>2]|0)+-2|0,(B(c[g>>2]|0,G)|0)/32|0)|0)>>>16;J=(ao(h,(c[h>>2]|0)+-2|0,(B(c[g>>2]|0,G)|0)/32|0)|0)>>>8;f=ao(h,(c[h>>2]|0)+-2|0,(B(c[g>>2]|0,G)|0)/32|0)|0;I=i+(H*3|0)|0;a[I>>0]=l+(((d[I>>0]|0)/5|0)&255);I=i+(H*3|0)+1|0;a[I>>0]=J+(((d[I>>0]|0)/5|0)&255);I=i+(H*3|0)+2|0;a[I>>0]=f+(((d[I>>0]|0)/5|0)&255);G=G+1|0}while((G|0)!=32);ur(i);i=c[e>>2]|0;if((i|0)<=0){Un(b,0,0,172);K=c[b>>2]|0;L=K+-1|0;Un(b,L,0,172);M=c[e>>2]|0;N=M+-1|0;Un(b,0,N,172);O=c[b>>2]|0;P=O+-1|0;Q=c[e>>2]|0;R=Q+-1|0;Un(b,P,R,172);return}G=i;i=0;do{g=(i<<5|0)/(G|0)|0;bo(b,0,i,2,i,g+16|0);h=c[b>>2]|0;bo(b,h+-3|0,i,h+-1|0,i,g+144|0);i=i+1|0;G=c[e>>2]|0}while((i|0)<(G|0));Un(b,0,0,172);K=c[b>>2]|0;L=K+-1|0;Un(b,L,0,172);M=c[e>>2]|0;N=M+-1|0;Un(b,0,N,172);O=c[b>>2]|0;P=O+-1|0;Q=c[e>>2]|0;R=Q+-1|0;Un(b,P,R,172);return}function rb(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=b+16|0;b=(((Xr()|0)/4e3|0)*101|0)+10201|0;f=0;g=0;while(1){h=a[(c[(c[e>>2]|0)+(g<<2)>>2]|0)+f>>0]|0;i=h&255;j=B(g+1001|0,b)|0;if(!(g&2)){k=0;while(1){l=c[(c[e>>2]|0)+(g<<2)>>2]|0;if((k|0)==127){m=128;n=i}else{o=k+1|0;m=o;n=d[l+o>>0]|0}o=(k&6|0)==0?((B(j,k+1103|0)|0)%19|0|0)!=0:0;a[l+k>>0]=o?((n&15|0)==0?1:n^128):n;if((m|0)==128)break;else k=m}}else{k=0;do{j=c[(c[e>>2]|0)+(g<<2)>>2]|0;i=k;k=k+1|0;a[j+i>>0]=a[j+k>>0]|0}while((k|0)!=127);a[(c[(c[e>>2]|0)+(g<<2)>>2]|0)+k>>0]=h}g=g+2|0;if(g>>>0>=128)break;else f=128}return}function sb(){var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;b=Ia;Ia=Ia+16|0;e=b;f=b+12|0;g=b+8|0;h=b+4|0;i=c[554335]|0;if((i|0)==5){Xr()|0;j=c[554335]|0}else j=i;c[554335]=j+1;j=c[742787]|0;a[2142156]=0;c[535605]=Xr()|0;if(c[780900]|0){Ia=b;return}Nn(c[742765]|0);i=c[798799]|0;if((i|0)!=0&(c[780894]|0)==0){if((i|0)==1){jm(j);k=c[798799]|0}else k=i}else if(c[780895]|0){Pn(j,0,0,128,128,5);if((c[780895]|0)==1){i=c[484705]|0;if(i>>>0<2){Pn(j,0,0,128,128,1);l=c[484705]|0}else l=i;if((l|0)==2){Pn(j,0,0,128,128,0);m=c[484705]|0}else m=l;if((m|0)==3)Pn(j,0,0,128,128,5)}Pn(j,0,0,128,7,8);Pn(j,0,121,128,127,8);wo(7,0);cs(f,g,h);if(!(c[h>>2]|0))c[798589]=-1;if(((((c[798591]|0)==89?(m=xo(yo()|0)|0,m|0):0)?(c[m+12>>2]|0)<20:0)?(c[m+16>>2]|0)<20:0)?c[m+20>>2]&1|0:0)c[798591]=(c[h>>2]|0)==0?93:94;m=c[f>>2]|0;if(((c[780895]|0)==1?(c[h>>2]|c[781042]|0)==0:0)&(m|0)==(c[554336]|0)?(h=c[g>>2]|0,(h|0)==(c[554337]|0)):0)n=h;else{c[536398]=0;n=c[g>>2]|0}c[554336]=m;c[554337]=n;n=Xr()|0;m=c[798591]|0;if((n|0)>=(c[536398]|0)&(m|0)!=0?(n=c[(c[c[742804]>>2]|0)+(m<<2)>>2]|0,m=c[n>>2]|0,h=c[n+4>>2]|0,Rn(n,j,0,0,(c[f>>2]|0)-((m|0)/2|0)|0,(c[g>>2]|0)-((h|0)/2|0)|0,m,h),(c[798589]|0)!=-1):0){h=c[f>>2]|0;m=c[g>>2]|0;Pn(j,h+6|0,m+4|0,h+14|0,m+10|0,7);c[e>>2]=c[798589];wt(1719968,40980,e)|0;Bo(j,1719968,c[742805]|0,(c[f>>2]|0)+7|0,(c[g>>2]|0)+5|0,1,14)|0}}if(!((c[484717]|0)!=0&(c[780901]|0)==0&(c[780894]|0)==1)){if(!(c[485558]|c[780903]|c[742797]))ob(0)}else Gp(j,c[742795]|0,0,0,0,0,128,128);j=c[742765]|0;Gp(c[742795]|0,j,0,0,0,0,128,128);if(c[485558]|c[485555]|0)pb(j);a:do if((c[780903]|0)>0|(c[780904]|0)>140?(c[780894]|0)==1&(c[780901]|0)!=0:0){do if(!((c[484717]|0)>0|(c[537596]|0)!=0)){if(c[535537]|0?(au(2141888,93388)|0)==0:0)break;g=c[798801]|0;f=(g|0)/2|0;if((g|0)>-2)o=f;else o=12-((0-f|0)%12|0)|0;Rn(c[(c[c[742804]>>2]|0)+(((o|0)%12|0)+212<<2)>>2]|0,j,0,0,3,3,12,12);break a}while(0);f=c[798801]|0;g=(f|0)/2|0;if((f|0)>-2)p=g;else p=16-((0-g|0)%16|0)|0;Rn(c[(c[c[742804]>>2]|0)+(((p|0)%16|0)+229<<2)>>2]|0,j,0,0,3,3,12,12)}while(0);Gp(c[742765]|0,c[535604]|0,0,0,0,0,128,128);j=Xr()|0;do if((j|0)<(c[535537]|0)){p=Xr()|0;o=c[535536]|0;g=p-o|0;f=(c[535537]|0)-p|0;p=(o|0)==0?0:(f|0)<200?(200-f|0)/20|0:(g|0)<200?(200-g|0)/20|0:0;if(!(au(2141888,61592)|0)){Wn(c[742765]|0,0,p+119|0,101,p+127|0,0);Pn(c[742765]|0,1,p+120|0,100,p+126|0,6);Bo(c[742765]|0,2141888,c[742805]|0,16,p+121|0,1,1)|0;Rn(c[(c[c[742804]>>2]|0)+904>>2]|0,c[742765]|0,0,0,2,(p<<1)+112|0,15,15);break}g=(au(2141888,61568)|0)==0;f=c[742765]|0;if(g){Wn(f,0,p+119|0,101,p+127|0,0);Pn(c[742765]|0,1,p+120|0,127,p+126|0,6);Bo(c[742765]|0,2141888,c[742805]|0,16,p+121|0,1,1)|0;Rn(c[(c[c[742804]>>2]|0)+908>>2]|0,c[742765]|0,0,0,109,(p<<1)+112|0,17,15);break}else{Pn(f,0,p+121|0,128,p+127|0,8);Bo(c[742765]|0,2141888,c[742805]|0,1,p+122|0,1,c[535538]|0)|0;break}}else if(a[2142156]|0){Pn(c[742765]|0,0,121,128,127,8);Bo(c[742765]|0,2142156,c[742805]|0,1,122,1,2)|0}while(0);j=Xr()|0;c[535605]=j-(c[535605]|0);j=Xr()|0;if((j|0)<(c[535872]|0)?(j=Xr()|0,(j|0)>((c[535872]|0)+-150|0)):0){j=c[742765]|0;p=j+16|0;j=(((Xr()|0)/4e3|0)*101|0)+10201|0;f=0;g=0;while(1){o=c[(c[p>>2]|0)+(g<<2)>>2]|0;e=a[o+f>>0]|0;m=e&255;h=B(g+1001|0,j)|0;b:do if(!(g&2)){n=o;l=0;while(1){i=l+1|0;if((l|0)==127){q=128;r=m}else{q=i;r=d[n+i>>0]|0}i=(l&6|0)==0?((B(h,l+1103|0)|0)%19|0|0)!=0:0;a[n+l>>0]=i?((r&15|0)==0?1:r^128):r;if((q|0)==128)break b;n=c[(c[p>>2]|0)+(g<<2)>>2]|0;l=q}}else{l=o;n=0;do{i=n;n=n+1|0;a[l+i>>0]=a[l+n>>0]|0;l=c[(c[p>>2]|0)+(g<<2)>>2]|0}while((n|0)!=127);a[l+127>>0]=e}while(0);g=g+2|0;if(g>>>0>=128)break;else f=128}}if(!(c[535871]|0))s=1;else{qb(c[742765]|0);s=(c[535871]|0)==0}f=(c[780901]|0)!=0;if(s&(f&(((a[3120504]|0)!=0&f|(c[484611]|0)!=0)^1))?(a[3152374]&1)!=0:0){f=c[742765]|0;s=c[f>>2]|0;g=(s|0)/128|0;if((s|0)>127?(c[f+4>>2]|0)>127:0){f=0;do{s=B(f,g)|0;p=f<<7;q=0;do{r=q+s|0;if((r+-1|0)>>>0<3){ob(r);Gp(c[742795]|0,c[742765]|0,0,0,q<<7,p,128,128)}q=q+1|0}while((q|0)!=(g|0));f=f+1|0}while((f|0)<((c[(c[742765]|0)+4>>2]|0)/128|0|0))}}else t=80;if((t|0)==80?(Nk(0),(Ok()|0)>1):0){t=1;do{Nn(c[2971148+(t<<2)>>2]|0);t=t+1|0}while((t|0)<(Ok()|0))}if(c[536388]|0)Xg(c[742765]|0);if(!(c[485555]|0))Vg(c[742765]|0);t=c[484620]|0;if((t|0)<=127){Ia=b;return}mb(c[742765]|0,t);Ia=b;return}function tb(a){a=a|0;return (a|0)>15&(a|0)!=27&1|0}function ub(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=Ia;Ia=Ia+2064|0;e=d+2048|0;f=d+1024|0;g=d;if(!(c[798798]|0)){Ia=d;return}if(!b)ku(f,3194372)|0;else ku(f,rc(b)|0)|0;if(a[f>>0]|0?(h=f+((bu(f)|0)+-1)|0,(a[h>>0]|0)==42):0)a[h>>0]=0;a:do switch(c[798797]|0){case 0:{qc(b,g)|0;if(!(a[g>>0]|0)){h=1719968;i=40985;j=h+13|0;do{a[h>>0]=a[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0))}else{c[e>>2]=g;wt(1719968,40998,e)|0}Jg(1719968,12);if(!(Hr(f)|0)){Lg(41012);k=0;l=17;break a}else{i=Dr(f,97321,3194372,16384)|0;c[798797]=1;m=i;l=18;break a}break}case 2:{i=Dr(f,97321,3194372,-16385)|0;c[798797]=3;n=i;l=23;break}default:{k=Er(3194372)|0;l=17}}while(0);if((l|0)==17)switch(c[798797]|0){case 1:{m=k;l=18;break}case 3:{n=k;l=23;break}default:{}}do if((l|0)==18){if(m|0){c[798797]=2;break}if(au(3194628,104886)|0?au(3194628,96845)|0:0){Jg(3194628,14);c[798798]=(c[798798]|0)+-1}}else if((l|0)==23){if(n|0){Fr(3194372)|0;c[798797]=0;break}if(bv(3194628,93459)|0){Lg(3194628);c[798798]=(c[798798]|0)+-1;break}if((c[798721]&16384|0)==0&(a[2140800]|0)==42){Jg(3194628,5);c[798798]=(c[798798]|0)+-1}}while(0);if(!((c[798798]|0)==0&(c[798797]|0)!=0)){Ia=d;return}Jg(41022,12);Ia=d;return}function vb(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=Ia;Ia=Ia+16|0;d=b;c[485556]=0;e=c[485555]|0;if((e|0)<2){c[485556]=1;f=106960;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(106960,41031,16)|0;c[26757]=0;if(a[3127662]|0){h=c[485556]|0;c[485556]=h+1;i=106960+(h*72|0)|0;f=i;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(i,3127662,16)|0;c[106960+(h*72|0)+68>>2]=257}if(a[3127726]|0){h=c[485556]|0;c[485556]=h+1;i=106960+(h*72|0)|0;f=i;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(i,3127726,16)|0;c[106960+(h*72|0)+68>>2]=258}if(a[3127790]|0){h=c[485556]|0;c[485556]=h+1;i=106960+(h*72|0)|0;f=i;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(i,3127790,16)|0;c[106960+(h*72|0)+68>>2]=259}if(a[3127854]|0){h=c[485556]|0;c[485556]=h+1;i=106960+(h*72|0)|0;f=i;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(i,3127854,16)|0;c[106960+(h*72|0)+68>>2]=260}if(a[3127918]|0){h=c[485556]|0;c[485556]=h+1;i=106960+(h*72|0)|0;f=i;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(i,3127918,16)|0;c[106960+(h*72|0)+68>>2]=261}h=c[485556]|0;c[485556]=h+1;i=106960+(h*72|0)|0;f=i;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(i,93039,16)|0;c[106960+(h*72|0)+68>>2]=8;h=c[485556]|0;c[485556]=h+1;i=106960+(h*72|0)|0;f=i;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(i,41040,16)|0;c[106960+(h*72|0)+68>>2]=1;if(Eg()|0){h=Eg()|0;i=c[485556]|0;c[485556]=i+1;j=106960+(i*72|0)|0;f=j;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(j,h,16)|0;c[106960+(i*72|0)+68>>2]=5}if(c[484543]|0){i=c[485556]|0;c[485556]=i+1;h=106960+(i*72|0)|0;f=h;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(h,91017,16)|0;c[106960+(i*72|0)+68>>2]=6}k=c[485555]|0}else k=e;if((k|0)!=4){Ia=b;return}wt(1719968,(c[555247]|0)==0?41060:41051,d)|0;d=c[485556]|0;c[485556]=d+1;k=106960+(d*72|0)|0;f=k;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(k,1719968,16)|0;c[106960+(d*72|0)+68>>2]=9;f=1719968;d=41070;g=f+17|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(g|0));d=c[535610]|0;k=(c[555247]|0)>0?16:18;a[1719976]=(d|0)>31?k:45;a[1719977]=(d|0)>63?k:45;a[1719978]=(d|0)>95?k:45;a[1719979]=(d|0)>127?k:45;a[1719980]=(d|0)>159?k:45;a[1719981]=(d|0)>191?k:45;a[1719982]=(d|0)>223?k:45;a[1719983]=(d|0)>255?k:45;k=c[485556]|0;c[485556]=k+1;d=106960+(k*72|0)|0;f=d;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(d,1719968,16)|0;c[106960+(k*72|0)+68>>2]=19;k=c[485556]|0;c[485556]=k+1;d=106960+(k*72|0)|0;f=d;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(d,60622,16)|0;c[106960+(k*72|0)+68>>2]=13;k=c[485556]|0;c[485556]=k+1;d=106960+(k*72|0)|0;f=d;g=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));kv(d,93193,16)|0;c[106960+(k*72|0)+68>>2]=11;Ia=b;return}function wb(){var b=0,d=0,e=0,f=0,g=0;b=c[781053]|0;if(c[485559]|0){c[485559]=0;c[485555]=1;c[485556]=1;d=106960;e=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));kv(106960,41087,16)|0;c[26757]=7;f=c[485556]|0;c[485556]=f+1;g=106960+(f*72|0)|0;d=g;e=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));kv(g,41099,16)|0;c[106960+(f*72|0)+68>>2]=0;c[485557]=0;a[1724745]=1;nl()}if((b|0)==0|(c[780901]|0)==0|(c[485555]|0)!=0)return;if(($k(2971096,c[781999]|0,24368)|0)==1)_k(2971096,c[781999]|0,24368,0);else{c[485555]=1;vb();c[485557]=0}a[1724745]=1;nl();return}function xb(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=(qo(-5)|0)!=0;d=b&(c[554340]|0)==0&1;c[554340]=qo(-5)|0;if(!(no()|0))e=d;else{b=d;while(1){d=oo()|0;a:do if(!(qo(-5)|0)){f=c[798930]|0;if((c[485555]|0)==0&(f|0)<256?(g=(d+-65|0)>>>0<26?d+63|0:d,h=(g|0)==127?8:g,h>>>0<154):0){a[3195464+f>>0]=h;c[798930]=(c[798930]|0)+1;i=b}else i=b}else{do if((d|0)==112){c[536388]=((c[536388]|0)+1|0)%2|0;nl()}else{if((d|0)==114&(c[742800]|0)==0){h=Xr()|0;if((h|0)<=((c[535608]|0)+500|0))break;c[742800]=1;c[485555]=0;c[535608]=Xr()|0;if(no()|0)do oo()|0;while((no()|0)!=0);nl()}if((d|0)!=118)if((d+-97|0)>>>0<26)break;else{i=b;break a}h=rs()|0;if((h|0)!=0?(a[h>>0]|0)!=0:0){zq(c[485560]|0);f=xq((bu(h)|0)<<2)|0;c[485560]=f;Ls(h,f)|0;zq(h)}else zq(h);nl()}while(0);a[3195464+(c[798930]|0)>>0]=d+95;c[798930]=(c[798930]|0)+1;i=0}while(0);if(!(no()|0)){e=i;break}else b=i}}if(!e)return;a[3195464+(c[798930]|0)>>0]=-38;c[798930]=(c[798930]|0)+1;return}function yb(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(ql(2,0)|0)c[485557]=(c[485557]|0)+-1;b=(ql(3,0)|0)==0;d=c[485557]|0;if(b)e=d;else{b=d+1|0;c[485557]=b;e=b}b=c[485556]|0;if((e|0)>-1)f=e;else f=b-((0-e|0)%(b|0)|0)|0;c[485557]=(f|0)%(b|0)|0;b=ql(0,0)|0;f=ql(1,0)|0;e=(b|0)!=0;d=(f|0)==0;do if(f|b|0){g=c[106960+((c[485557]|0)*72|0)+68>>2]|0;if((g|0)>255){h=(g|0)<261?g+-256|0:5;i=(h|0)>0?h:0;h=(e?1:2)&((a[3127988+i>>0]^3)&255);if(!h)break;a[3127982+i>>0]=h;c[485558]=1;if(c[485555]|0)c[798930]=0;c[485555]=0;h=3124188;c[h>>2]=0;c[h+4>>2]=0;c[781175]=1;c[781176]=1;break}if((g|0)==19){if(e)c[535610]=(c[535610]|0)+-32;g=c[535610]|0;if(d)j=g;else{h=g+32|0;c[535610]=h;j=h}h=(j|0)<256?j:256;g=(h|0)>8?h:8;c[535610]=g;c[555247]=g;g=3124188;c[g>>2]=0;c[g+4>>2]=0;c[781175]=1;c[781176]=1;vb()}}while(0);if(!(((ql(4,0)|0)==0?(ql(5,0)|0)==0:0)?!(ql(6,0)|0):0))k=22;a:do if((k|0)==22){c[781051]=0;c[781052]=0;c[781053]=0;c[781179]=1;c[781180]=1;c[781181]=1;j=c[106960+((c[485557]|0)*72|0)+68>>2]|0;if((j|0)>255?(d=(j|0)<261?j+-256|0:5,e=a[3127988+d>>0]&112^112,e<<24>>24):0){a[3127982+d>>0]=e;c[485558]=1;if(c[485555]|0)c[798930]=0;c[485555]=0}do switch(j|0){case 0:{if(c[485555]|0)c[798930]=0;c[485555]=0;break a;break}case 1:{if(c[485555]|0)c[798930]=0;c[485555]=0;c[742800]=1;break a;break}case 13:{c[485555]=3;break a;break}case 3:{if(c[485555]|0)c[798930]=0;c[485555]=0;c[780900]=2;c[485554]=2;break a;break}case 4:{if(c[485555]|0)c[798930]=0;c[485555]=0;ah();c[798799]=0;c[780894]=0;c[781022]=6;break a;break}case 5:{Ig();break a;break}case 6:{c[554811]=1;break a;break}case 8:{c[485555]=4;vb();c[485557]=0;break a;break}case 9:{if(!(c[555247]|0)){e=c[535610]|0;l=(e|0)==0?256:e}else l=0;c[555247]=l;vb();break a;break}case 10:{yr();vb();break a;break}case 11:{c[485555]=1;vb();c[485557]=0;break a;break}case 12:{gm();c[485555]=2;nl();break a;break}default:break a}while(0)}while(0);if(c[485555]|c[554962]|0)return;nl();return}function zb(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0;if(c[798799]|0){if(!(no()|0))return;do{a=oo()|0;b=c[798799]|0;if((b|0)==2)d=c[798799]|0;else d=b;if((d|0)==1){im(a);e=c[798799]|0}else e=d;if((e|0)==2){Wm(a);f=c[798799]|0}else f=e;if((f|0)==0?no()|0:0)do oo()|0;while((no()|0)!=0)}while((no()|0)!=0);return}if(!(c[798797]|0)){if(!(c[798800]|0))return;if(!(no()|0))return;f=oo()|0;switch(f|0){case 13:case 121:{g=26;break}case 27:case 110:break;default:return}a:do if((g|0)==26){e=1|0;d=(e|0)<0?e:0;_g(108112+(((d|0)>0?d:0)<<8)|0,1);switch(f|0){case 27:case 110:{break a;break}default:{}}return}while(0);c[798800]=0;Lg(93543);return}else{if(c[798798]|0)return;if(!(no()|0))return;do{f=oo()|0;if((f|0)!=0?(g=c[781024]|0,d=g+-6|0,c[781024]=d,Pn(c[742782]|0,0,d,128,g+-1|0,0),(f|0)==27):0){c[798797]=0;Fr(3194372)|0;h=0}else h=17;c[798798]=h}while((no()|0)!=0);return}}function Ab(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Ia;Ia=Ia+272|0;g=f+256|0;h=f;c[g>>2]=d;c[g+4>>2]=e;wt(h,a,g)|0;Rs(2141888,h)|0;c[535536]=Xr()|0;c[535537]=b+400+(Xr()|0);c[535538]=15;Ia=f;return}function Bb(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=Ia;Ia=Ia+1312|0;d=b+1304|0;e=b+1296|0;f=b+1040|0;g=b;ws(c[781999]|0);ws(c[26544]|0);Ds(c[778903]|0);Ds(c[778904]|0);Ds(c[778905]|0);Ds(c[778906]|0);Ds(c[778907]|0);Ds(c[778908]|0);Ds(c[778909]|0);Ds(c[778910]|0);Ds(c[778911]|0);Ds(c[778912]|0);Ds(c[778913]|0);Ds(c[778914]|0);Ds(c[778915]|0);Ds(c[778916]|0);Ds(c[778917]|0);Ds(c[778918]|0);c[778919]=0;if(!(a[3126573]|0))qv(42397)|0;else{c[e>>2]=3126573;vv(41141,e)|0}Vv(g|0,3126573,1025)|0;wq(3118764,0,75604);Vv(3126573,g|0,1025)|0;Wv(3193872,0,488)|0;c[798575]=2;c[798506]=0;c[798576]=5;c[798472]=1;c[798491]=8;c[798492]=0;c[778921]=0;c[484616]=0;c[535466]=1;Rs(3116712,3196396)|0;c[781999]=vs()|0;c[26544]=vs()|0;g=Bs(0,65538)|0;c[778903]=g;c[g+308>>2]=4;c[g+312>>2]=6;e=c[484694]|0;h=(e|0)<4?e:4;c[g+316>>2]=((h|0)>1?h:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778904]=g;c[g+308>>2]=4;c[g+312>>2]=6;h=c[484694]|0;e=(h|0)<4?h:4;c[g+316>>2]=((e|0)>1?e:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778905]=g;c[g+308>>2]=4;c[g+312>>2]=6;e=c[484694]|0;h=(e|0)<4?e:4;c[g+316>>2]=((h|0)>1?h:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778906]=g;c[g+308>>2]=4;c[g+312>>2]=6;h=c[484694]|0;e=(h|0)<4?h:4;c[g+316>>2]=((e|0)>1?e:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778907]=g;c[g+308>>2]=4;c[g+312>>2]=6;e=c[484694]|0;h=(e|0)<4?e:4;c[g+316>>2]=((h|0)>1?h:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778908]=g;c[g+308>>2]=4;c[g+312>>2]=6;h=c[484694]|0;e=(h|0)<4?h:4;c[g+316>>2]=((e|0)>1?e:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778909]=g;c[g+308>>2]=4;c[g+312>>2]=6;e=c[484694]|0;h=(e|0)<4?e:4;c[g+316>>2]=((h|0)>1?h:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778910]=g;c[g+308>>2]=4;c[g+312>>2]=6;h=c[484694]|0;e=(h|0)<4?h:4;c[g+316>>2]=((e|0)>1?e:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778911]=g;c[g+308>>2]=4;c[g+312>>2]=6;e=c[484694]|0;h=(e|0)<4?e:4;c[g+316>>2]=((h|0)>1?h:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778912]=g;c[g+308>>2]=4;c[g+312>>2]=6;h=c[484694]|0;e=(h|0)<4?h:4;c[g+316>>2]=((e|0)>1?e:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778913]=g;c[g+308>>2]=4;c[g+312>>2]=6;e=c[484694]|0;h=(e|0)<4?e:4;c[g+316>>2]=((h|0)>1?h:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778914]=g;c[g+308>>2]=4;c[g+312>>2]=6;h=c[484694]|0;e=(h|0)<4?h:4;c[g+316>>2]=((e|0)>1?e:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778915]=g;c[g+308>>2]=4;c[g+312>>2]=6;e=c[484694]|0;h=(e|0)<4?e:4;c[g+316>>2]=((h|0)>1?h:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778916]=g;c[g+308>>2]=4;c[g+312>>2]=6;h=c[484694]|0;e=(h|0)<4?h:4;c[g+316>>2]=((e|0)>1?e:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778917]=g;c[g+308>>2]=4;c[g+312>>2]=6;e=c[484694]|0;h=(e|0)<4?e:4;c[g+316>>2]=((h|0)>1?h:1)<<2;c[g+332>>2]=0;g=Bs(0,65538)|0;c[778918]=g;c[g+308>>2]=4;c[g+312>>2]=6;h=c[484694]|0;e=(h|0)<4?h:4;c[g+316>>2]=((e|0)>1?e:1)<<2;c[g+332>>2]=0;c[778919]=c[778903];jb();c[535868]=0;ku(3118768,rc(40174)|0)|0;g=0;while(1){if(!(Gr(3118768)|0)){i=7;break}g=g+1|0;c[d>>2]=g;wt(f,40187,d)|0;ku(3118768,rc(f)|0)|0;if(g>>>0>=1e3){i=7;break}}if((i|0)==7){Kb(c[26544]|0,3119792);Ia=b;return}}function Cb(a){a=a|0;if((c[742800]|0)>0)return 0;else{Qd(c[554360]|0,a)|0;tf(c[554360]|0)|0}return 0}function Db(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=c[742800]|0;if(!b)return;d=(b|0)<(((c[798454]|0)==60?12:6)|0)?b+1|0:0;c[742800]=d;if((d|0)==2){b=$k(2971096,c[781999]|0,24366)|0;if(!(tp(8)|0))c[781033]=tp(4)|0;e=c[781999]|0;_k(2971096,e,24384,tp(256)|0);e=c[781999]|0;_k(2971096,e,24384,tp(256)|0);e=c[781999]|0;_k(2971096,e,24384,tp(256)|0);e=c[781999]|0;_k(2971096,e,24384,tp(256)|0);if(!(tp(4)|0)){e=c[781999]|0;_k(2971096,e,24414,tp(16)|0|240)}tp(3)|0;tp(10)|0;e=(c[535463]|0)==0?4:c[535464]<<1;f=e*10|0;if((e|0)>0){g=0;do{h=c[781999]|0;i=tp(12288)|0;_k(2971096,h,i,tp(256)|0);g=g+1|0}while((g|0)<(f|0))}f=c[781999]|0;g=(tp(32)|0)+24320|0;_k(2971096,f,g,tp(140)|0);g=c[781999]|0;f=(tp(32)|0)+24320|0;_k(2971096,g,f,tp(140)|0);if(!(tp(4)|0)){f=c[781999]|0;_k(2971096,f,24369,tp(256)|0);f=c[781999]|0;_k(2971096,f,24370,tp(256)|0);f=c[781999]|0;_k(2971096,f,24371,tp(256)|0)}if(!(tp(4)|0)){f=c[781999]|0;_k(2971096,f,24408,tp(256)|0);f=c[781999]|0;_k(2971096,f,24409,tp(256)|0);f=c[781999]|0;_k(2971096,f,24410,tp(256)|0);f=c[781999]|0;_k(2971096,f,24411,tp(256)|0)}f=(e|0)/2|0;g=(e|0)>1;if(g){e=0;do{i=(tp(10240)|0)+1024|0;h=c[781999]|0;j=(tp(2048)|0)+i|0;k=j-(tp(2048)|0)|0;cl(2971096,h,i,k,tp(1024)|0);k=c[781999]|0;i=tp(11264)|0;h=tp(11264)|0;cl(2971096,k,i,h,tp(1024)|0);e=e+1|0}while((e|0)!=(f|0));if(g){g=0;do{e=tp(11776)|0;h=c[781999]|0;i=tp(256)|0;dl(2971096,h,e,i,tp(512)|0);g=g+1|0}while((g|0)!=(f|0))}}_k(2971096,c[781999]|0,24366,b);l=c[742800]|0}else l=d;if(l|0)return;c[780900]=1;if(a[3126573]|0)return;Rs(3126573,3125548)|0;return}function Eb(){var a=0,b=0,d=0,e=0,f=0,g=0;a=c[780900]|0;if(!a)return;c[742800]=0;if((a|0)==1){fh();if((c[780894]|0)==2)c[780894]=0;b=c[780900]|0}else b=a;if((b|0)==2){ah();d=c[780900]|0}else d=b;if((d|0)==3){Bb();e=c[780900]|0}else e=d;if((e|0)==4){ah();Rg();Lg(3196396);Lg(174160);f=c[780900]|0}else f=e;if((f|0)==5){Bb();g=c[780900]|0}else g=f;if((g|0)==6)Rg();c[780900]=0;return}function Fb(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a=Ia;Ia=Ia+1040|0;b=a+1032|0;d=a+1024|0;e=a;switch(c[484717]|0){case 1:{f=2;break}case 0:{Ia=a;return}default:{}}if((f|0)==2){g=Xr()|0;if((g|0)>(((c[555283]|0)*1e3|0)+(c[484718]|0)|0)?(Pm(0),Gg(),(c[780901]|0)==0):0){c[781024]=(c[781024]|0)+-6;Mg(41184,0,0)}if(!(c[484717]|0)){Ia=a;return}}if((qo(41)|0)==0?!((c[780901]|0)!=0&(c[781053]|0)!=0):0){g=c[484717]|0;if((g|0)==2){c[484717]=0;h=(bv(1940168,41227)|0)!=0;i=c[484719]|0;do if(!(h&(i|0)==0)){if(h&(i|0)==1){Sm(1940168)|0;break}if(h&(i|0)==2){Im(1940168)|0;break}if((i|0)!=3){j=Tb(1940168)|0;if(j|0){Zb(j,1940168);c[484720]=6;if((c[780901]|0)==0|(c[742801]|0)!=0){c[781024]=(c[781024]|0)+-6;Mg(41259,0,0);Jg(2008174,14);k=dh(1940168)|0;l=bu(c[j>>2]|0)|0;c[b>>2]=k;c[b+4>>2]=l;wt(1719968,41276,b)|0;Mg(1719968,0,0);break}else{Hg();c[780900]=1;c[780903]=20;break}}l=c[484618]|0;c[484720]=-10-l;if((l|0)==1){Rs(2141888,41298)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;m=c[484618]|0}else m=l;if((m|0)==2){Rs(2141888,60936)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;n=c[484618]|0}else n=m;if((n|0)==3){Rs(2141888,41323)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;o=c[484618]|0}else o=n;if((o|0)==4){Rs(2141888,44078)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15}}}else{l=Mp(1940168)|0;Rs(e,1940168)|0;k=bv(1940168,41232)|0;if(k|0)Rs(e+(k-1940168)+1|0,k+6|0)|0;do if(l)if((bu(Lp(l,93404,0)|0)|0)>>>0<=1)if(!(au(Lp(l,93425,0)|0,97411)|0)){p=l;break}else{f=19;break}else{ep(1940168,e)|0;p=l;break}else f=19;while(0);if((f|0)==19){l=Mp(e)|0;if(!l){if(!(c[780901]|0))Mg(41298,0,0);Gg();c[484720]=-3;break}else p=l}l=Lp(p,93404,0)|0;if((bu(l)|0)>>>0<2){k=(au(Lp(p,93425,0)|0,97411)|0)==0;j=(c[780901]|0)!=0;do if(k)if(j)q=-1;else{Mg(41239,0,0);q=-1}else if(j){Rs(2141888,39175)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;q=-2;break}else{Mg(39175,0,0);q=-2;break}while(0);c[484720]=q;Gg();c[780903]=0}else{j=bc(vm(l)|0)|0;_m(p);do if(!j){c[484720]=5;if((c[780901]|0)==0|(c[742801]|0)!=0){c[781024]=(c[781024]|0)+-6;Mg(41259,0,0);Rs(1719968,Lp(p,93408,0)|0)|0;nm(1719968);Jg(1719968,14);k=bu(c[c[26544]>>2]|0)|0;c[d>>2]=l;c[d+4>>2]=k;wt(1719968,41276,d)|0;Mg(1719968,0,0);break}else{Hg();c[780900]=1;c[780903]=20;break}}else{Jm(l);Rs(2008174,Lp(p,93408,0)|0)|0;nm(2008174)}while(0);Kp(p)}c[798801]=0}while(0);r=c[484717]|0}else r=g;if((r|0)!=3){Ia=a;return}c[484717]=0;c[484720]=-3;Gg();if(!(c[780901]|0)){Mg(93388,0,0);Ia=a;return}else{Rs(2141888,93388)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;Ia=a;return}}Pm(0);Gg();if(!(c[780901]|0)){c[781024]=(c[781024]|0)+-6;Mg(41203,0,0)}c[781053]=0;c[781181]=1;Ia=a;return}function Gb(){var a=0,b=0,d=0;a=sr(0,Xr()|0)|0;c[485561]=c[a>>2];c[485562]=c[a+4>>2];c[485563]=c[a+8>>2];c[485564]=c[a+12>>2];c[485565]=c[a+16>>2];c[485566]=c[a+20>>2];if(!(c[485563]|0)){a=sr(4,Xr()|0)|0;c[485561]=c[a>>2];c[485562]=c[a+4>>2];c[485563]=c[a+8>>2];c[485564]=c[a+12>>2];c[485565]=c[a+16>>2];c[485566]=c[a+20>>2]}a=sr(1,Xr()|0)|0;c[485567]=c[a>>2];c[485568]=c[a+4>>2];c[485569]=c[a+8>>2];c[485570]=c[a+12>>2];c[485571]=c[a+16>>2];c[485572]=c[a+20>>2];if(!(c[485569]|0)){a=sr(5,Xr()|0)|0;c[485567]=c[a>>2];c[485568]=c[a+4>>2];c[485569]=c[a+8>>2];c[485570]=c[a+12>>2];c[485571]=c[a+16>>2];c[485572]=c[a+20>>2]}a=sr(2,Xr()|0)|0;c[485573]=c[a>>2];c[485574]=c[a+4>>2];c[485575]=c[a+8>>2];c[485576]=c[a+12>>2];c[485577]=c[a+16>>2];c[485578]=c[a+20>>2];if(!(c[485575]|0)){a=sr(6,Xr()|0)|0;c[485573]=c[a>>2];c[485574]=c[a+4>>2];c[485575]=c[a+8>>2];c[485576]=c[a+12>>2];c[485577]=c[a+16>>2];c[485578]=c[a+20>>2]}a=sr(3,Xr()|0)|0;c[485579]=c[a>>2];c[485580]=c[a+4>>2];c[485581]=c[a+8>>2];c[485582]=c[a+12>>2];c[485583]=c[a+16>>2];c[485584]=c[a+20>>2];if(c[485581]|0){b=Xr()|0;d=sr(-1,b)|0;c[485585]=c[d>>2];c[485586]=c[d+4>>2];c[485587]=c[d+8>>2];c[485588]=c[d+12>>2];c[485589]=c[d+16>>2];c[485590]=c[d+20>>2];return}a=sr(7,Xr()|0)|0;c[485579]=c[a>>2];c[485580]=c[a+4>>2];c[485581]=c[a+8>>2];c[485582]=c[a+12>>2];c[485583]=c[a+16>>2];c[485584]=c[a+20>>2];b=Xr()|0;d=sr(-1,b)|0;c[485585]=c[d>>2];c[485586]=c[d+4>>2];c[485587]=c[d+8>>2];c[485588]=c[d+12>>2];c[485589]=c[d+16>>2];c[485590]=c[d+20>>2];return}function Hb(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;b=Ia;Ia=Ia+304|0;d=b+272|0;e=b+264|0;f=b+256|0;g=b;h=b+292|0;i=b+288|0;j=b+284|0;k=b+280|0;l=b+276|0;if(c[554811]|0){Nn(c[742782]|0);or();lr(0,0);Ia=b;return}m=c[8719]|0;do if((c[780894]|0)!=2&(m|0)!=-1){if((c[535610]|0)==(m|0)?(c[555247]|0)==(c[8720]|0):0)break;Xo()}while(0);c[8719]=c[535610];c[8720]=c[555247];Zg();do if((c[485555]|0)==0&(c[780894]|0)==1&(c[780901]|0)!=0){if((ml(6,0)|0)==0?(kl(6,0)|0)<=128:0){c[554338]=Xr()|0;c[554339]=0;break}m=c[554339]|0;c[554339]=m+1;if((m|0)>4?(m=Xr()|0,(m|0)>((c[554338]|0)+500|0)):0){c[485555]=1;c[485557]=0;vb();nl();a[1724745]=1}}else c[554338]=Xr()|0;while(0);oc();Zk();m=c[555247]|0;if(m|0)c[535610]=m;c[555248]=256;m=(($k(2971096,c[781999]|0,24365)|0)&5|0)==5;is((c[485555]|0)==0&((c[780894]|0)==1&m)&1);m=c[535463]|0;n=c[780894]|0;do if((m|0)!=0&(n|0)==1){o=m+1|0;c[535463]=o;if((o|0)==12)c[742800]=1;if((c[780900]|0)==1){gc(c[742795]|0,0,0)|0;c[535463]=1;o=(c[535464]|0)+1|0;c[535464]=o;if((o|0)==48)ya(0);else{p=c[780894]|0;break}}else p=1}else p=n;while(0);if(!((c[780895]|0)>>>0>1&((c[484699]|0)!=0&(p|0)==0))){c[554966]=0;c[554965]=0}if(qo(-5)|0?(qo(16)|0)==3:0){if(!(c[555247]|0)){p=c[535610]|0;c[555247]=(p|0)==0?256:p;Rs(2141888,41123)|0}else{c[555247]=0;Rs(2141888,41104)|0}c[535536]=Xr()|0;c[535537]=(Xr()|0)+1400;c[535538]=15;c[555248]=256;vb()}if(qo(-5)|0?(qo(45)|0)==3:0){p=(c[535610]|0)+-32|0;n=(p|0)<256?p:256;p=(n|0)>0?n:0;c[535610]=p;c[555247]=p;q=1719968;r=41354;s=q+32|0;do{a[q>>0]=a[r>>0]|0;q=q+1|0;r=r+1|0}while((q|0)<(s|0));a[1719979]=(p|0)>31?16:45;a[1719980]=(p|0)>63?16:45;a[1719981]=(p|0)>95?16:45;a[1719982]=(p|0)>127?16:45;a[1719983]=(p|0)>159?16:45;a[1719984]=(p|0)>191?16:45;a[1719985]=(p|0)>223?16:45;a[1719986]=(p|0)>255?16:45;Rs(2141888,1719968)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;c[535536]=(c[535536]|0)+-1e3;vb();if(no()|0)do oo()|0;while((no()|0)!=0)}if(qo(-5)|0?(qo(46)|0)==3:0){p=(c[535610]|0)+32|0;n=(p|0)<256?p:256;p=(n|0)>0?n:0;c[535610]=p;c[555247]=p;q=1719968;r=41354;s=q+32|0;do{a[q>>0]=a[r>>0]|0;q=q+1|0;r=r+1|0}while((q|0)<(s|0));a[1719979]=(p|0)>31?16:45;a[1719980]=(p|0)>63?16:45;a[1719981]=(p|0)>95?16:45;a[1719982]=(p|0)>127?16:45;a[1719983]=(p|0)>159?16:45;a[1719984]=(p|0)>191?16:45;a[1719985]=(p|0)>223?16:45;a[1719986]=(p|0)>255?16:45;Rs(2141888,1719968)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;c[535536]=(c[535536]|0)+-1e3;vb();if(no()|0)do oo()|0;while((no()|0)!=0)};c[781307]=-1;c[781308]=-1;c[781309]=-1;c[781310]=-1;c[781311]=-1;c[781312]=-1;c[781313]=-1;c[781314]=-1;p=c[485555]|0;r=c[555247]|0;q=c[742775]|0;s=ns()|0;n=(($k(2971096,c[781999]|0,24365)|0)&5|0)==5;pa(10,p|0,r|0,q|0,s|0,1,(c[485555]|0)==0&((c[780894]|0)==1&n)&1|0,c[484610]|0,c[554811]|0)|0;c[554341]=(c[554341]|0)+1;n=ka(11)|0;a:do if((n|0)>0){s=ka(12)|0;do switch(n|0){case 1:{c[780900]=1;break a;break}case 2:{q=(s|0)<256?s:256;c[555247]=(q|0)>0?q:0;c[555248]=256;break a;break}case 3:{if(!(c[555247]|0)){q=c[535610]|0;c[555247]=(q|0)==0?256:q;Rs(2141888,41123)|0}else{c[555247]=0;Rs(2141888,41104)|0}c[535536]=Xr()|0;c[535537]=(Xr()|0)+1400;c[535538]=15;c[555248]=256;break a;break}case 4:{if(!(c[485555]|0)){c[485591]=1;c[554338]=0;break a}else{c[798930]=0;c[485555]=0;break a}break}case 5:{q=(s|0)==0;r=(c[485555]|0)!=0;if(!(q|r)){c[485555]=1;vb();c[485557]=0;break a}if(!(q&r))break a;c[798930]=0;c[485555]=0;break a;break}case 6:{Wv(1937144,0,1024)|0;la(3,0)|0;a[104896]=0;r=0;do{q=ka(4)|0;a[104896+r>>0]=q;r=r+1|0;a[104896+r>>0]=0}while((q|0)!=0&r>>>0<1023);Rs(1937144,xm(3196396,104896)|0)|0;Bb();Nn(c[742765]|0);Nn(c[742795]|0);Nn(c[742782]|0);break a;break}case 7:{r=c[485555]|0;if((r|1|0)!=3){c[485555]=3;gm();break a}if(r|0)c[798930]=0;c[485555]=0;break a;break}case 9:{c[536395]=0;pc();break a;break}case 10:{c[536395]=1;break a;break}case 11:{c[536395]=0;break a;break}default:break a}while(0)}while(0);ka(13)|0;c[781307]=ka(14)|0;c[781308]=ka(14)|0;c[781309]=ka(14)|0;c[781310]=ka(14)|0;c[781311]=ka(14)|0;c[781312]=ka(14)|0;c[781313]=ka(14)|0;c[781314]=ka(14)|0;c[535611]=ka(15)|0;c[798591]=89;Eb();if((c[780894]|0)!=1){c[554962]=0;if(c[485555]|0)c[798930]=0;c[485555]=0;c[798454]=30}n=(Xr()|0)+72e6|0;s=(c[485555]|c[554962]|0)==0;r=c[798454]|0;q=n-(c[554342]|0)|0;p=B((((q|0)<32e3?q:32e3)<<16|0)/1e3|0,s?r:30)|0;q=p+(c[535606]|0)|0;p=(q|0)>0?q:0;c[535606]=p;c[554342]=n;if(!(c[535463]|0))t=p;else{c[535606]=65536;t=65536}p=(r|0)==60?131072:131071;r=t>>>0<p>>>0?t:p;p=(r|0)>0?r:0;c[535606]=p;if(s){cs(j,k,l);l=c[j>>2]|0;j=c[k>>2]|0;k=(j|0)!=(c[554344]|0)|(l|0)!=(c[554343]|0);c[554343]=l;c[554344]=j;j=(qo(225)|0)==0;l=(c[780894]|0)!=1;s=c[535606]|0;if((s|0)<65536&(l&(k&j)^1)|l&(s|0)<32768){l=2143500+(c[536387]<<5)+16|0;c[l>>2]=(c[l>>2]|0)+1;l=(ns()|0)==0;j=l?c[555250]|0:c[555249]|0;if((j|0)>0)u=100/(((j|0)<50?j:50)>>>0)|0;else u=1e4;j=c[554345]|0;if((j|0)<(u|0)){Hn();v=c[554345]|0}else v=j;w=c[535606]|0;x=v+1|0}else{w=s;x=0}c[554345]=x;if((w|0)>65535)do{do if((c[780894]|0)==1){if((c[484717]|0)>0|(c[537596]|0)!=0){pl();if((c[484717]|0)>0)Fb();w=c[780903]|0;if((w|0)<=10)break;c[780903]=w+-1;break}w=c[780903]|0;if((w|0)>0){c[780903]=w+-1;break}Gb();w=(c[780904]|0)+-1|0;x=(w|0)<150?w:150;c[780904]=(x|0)>0?x:0;xb();c[g>>2]=0;c[h>>2]=0;c[i>>2]=0;cs(g,h,i);x=c[8716]|0;w=c[g>>2]|0;do if((x|0)==-1){y=c[h>>2]|0;z=c[i>>2]|0}else{if((x|0)!=(w|0))c[781042]=c[781042]|1;s=c[h>>2]|0;if((c[8717]|0)!=(s|0))c[781042]=c[781042]|2;v=c[8718]|0;j=c[i>>2]|0;if((v|0)==(j|0)){y=s;z=v;break}c[781042]=c[781042]|4;y=s;z=j}while(0);c[8716]=w;c[8717]=y;c[8718]=z;if((c[780901]|0)==0|(c[781379]|0)<2){pl();if(c[780901]|0)c[742775]=((c[798454]|0)==30?2:1)+(c[742775]|0);wb();Yg()}if((c[742800]|0)>2)break;c[536392]=1;ih();c[536392]=0;if(!(c[742797]|0))break;c[535607]=1;if(!((c[780901]|0)!=0&(c[781379]|0)==2))break;if((Qg(0)|0)<=2097152)break;ol();wb();Yg()}else{pl();x=c[798799]|0;if((x|0)==1){km();A=c[798799]|0}else A=x;c[780903]=0}while(0);x=c[780894]|0;if((x|0)==2){xn();C=c[780894]|0}else C=x;do if((C|0)==3){x=po()|0;if(!(c[781047]|x|c[781048]|c[781049]|c[781050]|c[781051]|c[781052]|c[781053]))break;jb()}while(0);Db();c[535606]=(c[535606]|0)+-65536;c[742774]=(c[742774]|0)+1;c[798801]=(c[798801]|0)+1;x=c[554346]&1^1;c[554346]=x;do if(!(c[484703]|0)){j=c[554962]|0;s=c[485555]|0;v=c[798454]|0;if((v|0)==60&(j|x|s|0)==0){Lh(c[535604]|0);D=c[485555]|0;E=c[554962]|0;F=c[798454]|0}else{D=s;E=j;F=v}if((F|0)==30|(D|E|0)!=0){Lh(c[535604]|0);G=c[485555]|0;H=c[554962]|0;I=c[798454]|0}else{G=D;H=E;I=F}if(!((G|H|0)==0&(I|0)==15))break;Lh(c[535604]|0);Lh(c[535604]|0)}while(0)}while((c[535606]|0)>65535)}else if((p|0)>65535){pl();Gb();switch(c[485555]|0){case 2:{km();break}case 3:{if(ql(6,0)|0){if(c[485555]|0)c[798930]=0;c[485555]=0;nl()}break}default:{xb();yb()}}c[535606]=(c[535606]|0)+-65536;if(!(c[484703]|0))Lh(c[535604]|0)}if(!(c[780895]|c[780894])){zb();p=c[798797]|0;I=c[798798]|0;if((p|0)!=0&(I|0)>0){ub(0);J=c[798797]|0;K=c[798798]|0}else{J=p;K=I}if((J|0)!=0&(K|0)>0)ub(0)}if((c[780894]|0)==1&(c[780895]|0)==0&(c[485555]|0)==2?(qo(41)|0)==3:0)hm();if(c[780902]|0)c[780902]=0;do if(!(c[484624]|0))L=0;else{if((qo(63)|0)!=3?(qo(58)|0)!=3:0)M=0;else M=1;if((qo(64)|0)!=3?(qo(59)|0)!=3:0)N=M;else N=2;if((qo(65)|0)!=3?(qo(60)|0)!=3:0)O=N;else O=3;if((qo(66)|0)!=3?(qo(61)|0)!=3:0)P=O;else P=4;if((qo(67)|0)!=3?(qo(62)|0)!=3:0){L=P;break}L=5}while(0);if(!(qo(-5)|0))Q=L;else{P=(qo(35)|0)==3;Q=P?1:L}if(!(qo(-5)|0))R=Q;else{L=(qo(36)|0)==3;R=L?2:Q}if(!(qo(-5)|0))S=R;else{Q=(qo(37)|0)==3;S=Q?3:R}if(!(qo(-5)|0))T=S;else{R=(qo(38)|0)==3;T=R?4:S}if(!(qo(-5)|0))U=T;else{S=(qo(39)|0)==3;U=S?5:T}b:do if(!(qo(-4)|0))switch(U|0){case 1:{if(!(gc(c[742795]|0,0,0)|0)){Rs(2141888,60414)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1400;c[535538]=15;break b}else{Rs(2141888,42155)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;break b}break}case 3:{Mh();Rs(2141888,42184)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1400;c[535538]=15;break b;break}case 4:{T=Kh(0,0)|0;do if((T|0)!=9)if((T|0)>0){Rs(2141888,42241)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;break}else{c[f>>2]=Qh()|0;c[f+4>>2]=0;wt(g,60572,f)|0;Rs(2141888,g)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15;break}else{Rs(2141888,42209)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1900;c[535538]=15}while(0);if((c[484702]|0)!=1)break b;Mh();break b;break}default:break b}while(0);if(c[502428]|0){Vv(1724192,2009198,512)|0;c[502428]=0}if(!(c[484717]|c[780903]|c[780904]))c[798801]=0;g=c[780894]|0;if((g|0)==1&(c[780901]|0)!=0){f=$k(2971096,c[781999]|0,24367)|0;U=(f|0)==1|((f|0)!=2?(c[485558]|c[485555]|0)!=0:0);f=c[554964]|0;c[554964]=(f+-1|0)>>>0<4&(U^1)?f+1|0:U&1;V=c[780894]|0}else V=g;do if((V|1|0)==3){c[554980]=0;W=199}else{g=c[554980]|0;if(g|0){c[e>>2]=g&255;wt(1719968,42265,e)|0;Rs(2141888,1719968)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1400;c[535538]=15;c[554980]=0}g=c[554981]|0;if(!g)break;c[d>>2]=g&255;wt(1719968,42287,d)|0;Rs(2141888,1719968)|0;c[535536]=Xr()|0;c[535537]=(Xr()|0)+1400;c[535538]=15;W=199}while(0);if((W|0)==199)c[554981]=0;W=c[536397]|0;if(W|0)Nu(W)|0;Nu(c[8745]|0)|0;Ia=b;return}function Ib(){var a=0;$l()|0;if(c[798797]|0)Fr(3194372)|0;a=c[536396]|0;if(a|0)Lu(a)|0;a=c[536397]|0;if(!a){Dn()|0;return}Lu(a)|0;Dn()|0;return}function Jb(a,b){a=a|0;b=b|0;ka(16)|0;return Jn(a,b)|0}function Kb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=Ia;Ia=Ia+1024|0;f=e;g=d;h=g+40|0;do{a[g>>0]=48;g=g+1|0}while((g|0)<(h|0));i=d+40|0;a[i>>0]=0;if(!b){Ia=e;return}j=vq(32768)|0;g=f;h=g+64|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));g=c[b>>2]|0;Gq(g,bu(g)|0,f)|0;a[f+40>>0]=0;g=c[b>>2]|0;c[b>>2]=f;h=Lb(b,j,0)|0;c[b>>2]=g;if(!h)Gq(j,32768,d)|0;else Rs(d,f)|0;a[i>>0]=0;zq(j);Ia=e;return}function Lb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;wq(d,0,32768);Rq();f=0;do{a[d+f>>0]=$k(0,b,f)|0;f=f+1|0}while((f|0)!=17152);Sq();f=vq(262144)|0;g=c[b>>2]|0;do if(!e){h=f;i=Ml(g,f,bu(g)|0)|0;j=0}else{if(!(hn(g,f)|0)){b=vq(262144)|0;h=b;i=Ml(f,b,bu(f)|0)|0;j=f;break}zq(f);k=2;return k|0}while(0);c[554347]=i;if((i|0)>15616){zq(h);zq(j);k=1;return k|0}else{Vv(d+17152|0,h|0,i|0)|0;zq(h);zq(j);k=0;return k|0}return 0}function Mb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=Ia;Ia=Ia+1056|0;d=b+1040|0;e=b+1024|0;f=b+768|0;g=b+512|0;h=b;i=Vo(a)|0;Zo(a,0,f,g);c[e>>2]=f;c[e+4>>2]=g;wt(h,104363,e)|0;if(!i){c[d>>2]=a;vv(42417,d)|0;Ia=b;return}c[484610]=0;if((bv(a,58348)|0)==0?(bv(a,92099)|0)==0:0){j=i+12|0;k=i+16|0}else{a=vq(20971520)|0;Rh(e);d=i+12|0;g=i+16|0;Th(c[d>>2]|0,c[g>>2]|0,a,e)|0;Uh(a+(bu(a)|0)|0,e)|0;c[i+20>>2]=0;c[g>>2]=0;Ho(a,bu(a)|0,1,i)|0;zq(a);j=d;k=g}g=bu(h)|0;na(17,h|0,g|0,c[j>>2]|0,c[k>>2]|0)|0;Cq(i);Ia=b;return}function Nb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=Ia;Ia=Ia+16|0;g=f;h=f+4|0;i=Vo(a)|0;j=i+16|0;k=vq(((c[j>>2]<<3|0)/6|0)+256|0)|0;wq(h,0,12);c[g>>2]=b;wt(k,42530,g)|0;g=k+(bu(k)|0)|0;if(i|0){Rh(h);Th(c[i+12>>2]|0,c[j>>2]|0,g,h)|0;Uh(g+(bu(g)|0)|0,h)|0}h=bu(k)|0;oa(18,k|0,h|0,d|0,e|0,a|0,bu(a)|0)|0;zq(k);Ro(i);Ia=f;return}function Ob(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=Ia;Ia=Ia+16|0;h=g;i=xq(32768)|0;wq(i,0,32768);if(Lb(b,i,1)|0){Jg(43954,8);zq(i);j=1;Ia=g;return j|0}if(bv(e,59915)|0){b=c[554347]|0;k=xq((b<<1|1)+1024|0)|0;if((b|0)>0){l=k;m=0;n=0;while(1){c[h>>2]=d[i+(m+17152)>>0];wt(l,104626,h)|0;o=n+2|0;if((m&31|0)==31){a[k+o>>0]=10;p=n+3|0}else p=o;m=m+1|0;o=k+p|0;if((m|0)==(b|0)){q=o;break}else{l=o;n=p}}}else q=k;a[q>>0]=0;os(k)|0;zq(k);zq(i);Mg(43979,b,0);j=0;Ia=g;return j|0}b=Po(e,104706)|0;if(!b){zq(i);j=1;Ia=g;return j|0}if(!f){Ho(i,1,32768,b)|0;Mg(44038,32768,0)}else{Ho(i+17152|0,1,c[554347]|0,b)|0;Mg(44009,c[554347]|0,0)}Ro(b);zq(i);j=0;Ia=g;return j|0}function Pb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;g=Ia;Ia=Ia+256|0;h=g+64|0;i=g+240|0;j=g+232|0;k=g+224|0;l=g+216|0;m=g+208|0;n=g+200|0;o=g+192|0;p=g+184|0;q=g+176|0;r=g+168|0;s=g+160|0;t=g+152|0;u=g+144|0;v=g+136|0;w=g+128|0;x=g+120|0;y=g+112|0;z=g+104|0;A=g+96|0;B=g;C=g+244|0;D=B;E=D+64|0;do{c[D>>2]=0;D=D+4|0}while((D|0)<(E|0));D=xq(32800)|0;wq(D,0,32800);if(Lb(b,D,f)|0){zq(D);Jg(43954,8);F=2;Ia=g;return F|0}a[D+32768>>0]=43;a[D+32769>>0]=0;a[D+32770>>0]=2;a[D+32771>>0]=7;a[D+32772>>0]=Qm()|0;a[D+32773>>0]=0;Gq(D,32768,B)|0;c[C>>2]=0;c[A>>2]=C;Su(B,44055,A)|0;a[D+32774>>0]=c[C>>2];c[C>>2]=0;c[z>>2]=C;Su(B+2|0,44055,z)|0;a[D+32775>>0]=c[C>>2];c[C>>2]=0;c[y>>2]=C;Su(B+4|0,44055,y)|0;a[D+32776>>0]=c[C>>2];c[C>>2]=0;c[x>>2]=C;Su(B+6|0,44055,x)|0;a[D+32777>>0]=c[C>>2];c[C>>2]=0;c[w>>2]=C;Su(B+8|0,44055,w)|0;a[D+32778>>0]=c[C>>2];c[C>>2]=0;c[v>>2]=C;Su(B+10|0,44055,v)|0;a[D+32779>>0]=c[C>>2];c[C>>2]=0;c[u>>2]=C;Su(B+12|0,44055,u)|0;a[D+32780>>0]=c[C>>2];c[C>>2]=0;c[t>>2]=C;Su(B+14|0,44055,t)|0;a[D+32781>>0]=c[C>>2];c[C>>2]=0;c[s>>2]=C;Su(B+16|0,44055,s)|0;a[D+32782>>0]=c[C>>2];c[C>>2]=0;c[r>>2]=C;Su(B+18|0,44055,r)|0;a[D+32783>>0]=c[C>>2];c[C>>2]=0;c[q>>2]=C;Su(B+20|0,44055,q)|0;a[D+32784>>0]=c[C>>2];c[C>>2]=0;c[p>>2]=C;Su(B+22|0,44055,p)|0;a[D+32785>>0]=c[C>>2];c[C>>2]=0;c[o>>2]=C;Su(B+24|0,44055,o)|0;a[D+32786>>0]=c[C>>2];c[C>>2]=0;c[n>>2]=C;Su(B+26|0,44055,n)|0;a[D+32787>>0]=c[C>>2];c[C>>2]=0;c[m>>2]=C;Su(B+28|0,44055,m)|0;a[D+32788>>0]=c[C>>2];c[C>>2]=0;c[l>>2]=C;Su(B+30|0,44055,l)|0;a[D+32789>>0]=c[C>>2];c[C>>2]=0;c[k>>2]=C;Su(B+32|0,44055,k)|0;a[D+32790>>0]=c[C>>2];c[C>>2]=0;c[j>>2]=C;Su(B+34|0,44055,j)|0;a[D+32791>>0]=c[C>>2];c[C>>2]=0;c[i>>2]=C;Su(B+36|0,44055,i)|0;a[D+32792>>0]=c[C>>2];c[C>>2]=0;c[h>>2]=C;Su(B+38|0,44055,h)|0;a[D+32793>>0]=c[C>>2];C=Sn(160,205,32)|0;Gp(c[(c[c[742804]>>2]|0)+580>>2]|0,C,0,0,0,0,160,205);B=c[b+45856>>2]|0;if(B|0)Gp(B,C,0,0,16,24,128,128);B=c[b>>2]|0;b=B;while(1){i=a[b>>0]|0;G=i<<24>>24==10;H=b+1|0;if(G^i<<24>>24!=0)b=H;else break}i=G?H:b;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;if((a[B>>0]|0)==45?(a[B+1>>0]|0)==45:0){b=B+2|0;H=(a[b>>0]|0)==32?B+3|0:b;b=0;a:while(1){B=a[H>>0]|0;switch(B<<24>>24){case 10:case 0:{break a;break}default:{}}if(b>>>0>=31)break;a[h+b>>0]=B;H=H+1|0;b=b+1|0}Bo(C,h,c[742805]|0,18,167,1,-1808)|0};c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;if((a[i>>0]|0)==45?(a[i+1>>0]|0)==45:0){b=i+2|0;H=(a[b>>0]|0)==32?i+3|0:b;b=0;b:while(1){i=a[H>>0]|0;switch(i<<24>>24){case 10:case 0:{break b;break}default:{}}if(b>>>0>=31)break;a[h+b>>0]=i;H=H+1|0;b=b+1|0}Bo(C,h,c[742805]|0,18,175,1,-1808)|0}Bo(C,104368,c[742805]|0,18,187,1,-6250336)|0;h=0;b=c[C+12>>2]|0;while(1){H=a[b>>0]&-4;a[b>>0]=H;a[b>>0]=(d[D+(h>>>2)>>0]|0)>>>(h<<1&6)&3|H&255;h=h+1|0;if((h|0)==131200)break;else b=b+1|0}bp(e,C)|0;Tn(C)|0;zq(D);F=0;Ia=g;return F|0}function Qb(a,b){a=a|0;b=b|0;return Pb(a,b,0)|0}function Rb(a,b){a=a|0;b=b|0;var e=0,f=0;e=0;do{_k(0,a,e,d[b+e>>0]|0);e=e+1|0}while((e|0)!=17152);if(!(c[a>>2]|0)){e=xq(65538)|0;c[a>>2]=e;wq(e,0,65538)}e=b+17152|0;b=(Ll(e)|0)==0;f=c[a>>2]|0;if(b){Vv(f|0,e|0,15616)|0;return}else{wq(f,0,65538);Nl(e,c[a>>2]|0,65537)|0;return}}function Sb(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=Ia;Ia=Ia+80|0;f=e+72|0;g=e+64|0;h=e;i=e+76|0;c[484618]=0;if(!b){c[484618]=2;j=0;Ia=e;return j|0}k=$o(b)|0;if(!k){c[484618]=1;j=0;Ia=e;return j|0}if((c[k>>2]|0)==160?(c[k+4>>2]|0)==205:0){b=vs()|0;l=c[k+12>>2]|0;m=0;do{n=m<<2;a[l+m>>0]=a[l+(n|1)>>0]<<2&12|a[l+n>>0]&3|a[l+(n|2)>>0]<<4&48|a[l+(n|3)>>0]<<6&255;m=m+1|0}while((m|0)!=32800);m=l+32768|0;c[b+45860>>2]=d[m>>0];n=a[m>>0]|0;if(!((n&255)<44|(c[484612]|0)!=0)){c[g>>2]=n&255;wt(1719968,44059,g)|0;Lg(1719968);c[484618]=3;Tn(k)|0;j=0;Ia=e;return j|0}Rb(b,l);Gq(l,32768,h)|0;g=0;n=0;m=0;do{c[i>>2]=0;c[f>>2]=i;Su(h+(m<<1)|0,44055,f)|0;o=a[l+(m+32774)>>0]|0;n=o<<24>>24==0?n:1;g=(c[i>>2]|0)==(o&255|0)?g:1;m=m+1|0}while((m|0)!=20);Tn(k)|0;if((n|0)!=0&(g|0)!=0){Lg(44078);p=0;q=4}else{p=b;q=0}c[484618]=q;j=p;Ia=e;return j|0}Tn(k)|0;c[484618]=5;j=0;Ia=e;return j|0}function Tb(a){a=a|0;var b=0,d=0;b=Po(a,96074)|0;d=Sb(b)|0;Ro(b);if(!d)return d|0;c[d+45856>>2]=zm(a)|0;return d|0}function Ub(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;d=Ia;Ia=Ia+16|0;e=d;f=Po(b,96074)|0;if(!f){g=0;Ia=d;return g|0}b=vs()|0;h=vq(262144)|0;i=vq(65536)|0;j=Fo(h,1,131071,f)|0;a:do switch(a[h>>0]|0){case -17:{if((a[h+1>>0]|0)==-69?(a[h+2>>0]|0)==-65:0){k=h+3|0;l=0;m=1}else n=17;break}case 0:{if(((a[h+1>>0]|0)==0?(a[h+2>>0]|0)==-2:0)?(a[h+3>>0]|0)==-1:0){k=h+4|0;l=3;m=4}else n=17;break}case -1:{if((a[h+1>>0]|0)==-2){if((a[h+2>>0]|0)==0?(a[h+3>>0]|0)==0:0){k=h+4|0;l=0;m=4;break a}o=h+2|0;if((a[o>>0]|0)==0?(a[h+3>>0]|0)==0:0){k=h;l=0;m=1;break a}k=o;l=0;m=2}else{k=h;l=0;m=1}break}case -2:{if((a[h+1>>0]|0)==-1){o=h+2|0;if((a[o>>0]|0)==0?(a[h+3>>0]|0)==0:0)n=17;else{k=o;l=1;m=2}}else n=17;break}default:n=17}while(0);if((n|0)==17){k=h;l=0;m=1}n=(j+h-k|0)/(m|0)|0;if((n|0)>0){j=0;o=0;while(1){p=B(j,m)|0;q=a[k+(p+l)>>0]|0;r=0;s=0;while(1){if((s|0)==(l|0))t=r;else t=(a[k+(s+p)>>0]|0)==0?r:1;s=s+1|0;if(s>>>0>=m>>>0)break;else r=t}if(!t)if(q<<24>>24==13)u=o;else{a[k+o>>0]=q;u=o+1|0}else{a[k+o>>0]=95;a[k+(o+1)>>0]=120;r=0;s=o+2|0;while(1){c[e>>2]=a[k+(r+p)>>0];wt(k+s|0,104626,e)|0;r=r+1|0;v=s+2|0;if(r>>>0>=m>>>0){u=v;break}else s=v}}j=j+1|0;if((j|0)==(n|0)){w=u;break}else o=u}}else w=0;a[k+w>>0]=10;a[k+(w+1)>>0]=0;w=vq(131072)|0;Ls(k,w)|0;a[w+65534>>0]=0;Ro(f);zq(h);zq(i);i=w+(bu(w)|0)|0;a[i>>0]=10;a[i+1>>0]=0;Rs(c[b>>2]|0,w)|0;zq(w);g=b;Ia=d;return g|0}function Vb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Ia;Ia=Ia+3120|0;e=d+3104|0;f=d+3088|0;g=d+3072|0;h=d+2048|0;i=d+1024|0;j=d;Rs(b,a)|0;if(Ts(b,93459)|0){Ia=d;return}Zo(a,h,i,j);if(Ts(j,92808)|0){c[g>>2]=h;c[g+4>>2]=i;c[g+8>>2]=j;wt(b,44106,g)|0;Ia=d;return}if(!(Ts(j,44116)|0)){c[e>>2]=h;c[e+4>>2]=i;c[e+8>>2]=j;wt(b,44121,e)|0;Ia=d;return}else{c[f>>2]=h;c[f+4>>2]=i;c[f+8>>2]=j;wt(b,44106,f)|0;Ia=d;return}}function Wb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=Ia;Ia=Ia+4160|0;g=f+4096|0;h=f+2048|0;i=f+1024|0;j=f;k=f+4120|0;if(!(a[b>>0]|0)){Rs(h,44131)|0;Rs(i,93459)|0}else Zo(b,f+3072|0,h,i);ds(44140,j);if(e|0){Ir(k,0);e=c[k+8>>2]|0;l=c[k+12>>2]|0;m=c[k+16>>2]|0;n=c[k+20>>2]|0;o=c[k+24>>2]|0;c[g>>2]=c[k+4>>2];c[g+4>>2]=e;c[g+8>>2]=l;c[g+12>>2]=m;c[g+16>>2]=n;c[g+20>>2]=o;wt(1719968,44148,g)|0;lu(j,1719968)|0}lu(j,h)|0;lu(j,i)|0;if(d|0){d=xq(1048576)|0;i=Po(b,96074)|0;h=Fo(d,1,1048576,i)|0;Ro(i);i=Po(j,104706)|0;Ho(d,1,h,i)|0;Ro(i);zq(d);Ia=f;return 0}bh();if(Ts(b,92808)|0){Pb(c[26544]|0,j,0)|0;Ia=f;return 0}d=(Ts(b,44116)|0)==0;b=c[26544]|0;if(d){As(b,j)|0;Ia=f;return 0}else{Ob(b,j,0)|0;Ia=f;return 0}return 0}function Xb(a,b){a=a|0;b=b|0;Wb(a,b,1)|0;return 0}function Yb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=Ia;Ia=Ia+1024|0;e=d;bh();f=vq(262144)|0;do if(hn(c[c[26544]>>2]|0,f)|0){if((Ts(b,92808)|0)==0?(Ts(b,44116)|0)==0:0){Rs(f,c[c[26544]>>2]|0)|0;break}zq(f);g=1;Ia=d;return g|0}while(0);h=bu(f)|0;i=bu(c[c[26544]>>2]|0)|0;j=(h|0)==(i|0);if(i>>>0>65536){Lg(44174);zq(f);g=1;Ia=d;return g|0}i=vq(262144)|0;wq(i,0,262144);h=Ml(f,i,bu(f)|0)|0;zq(i);if((Ts(b,92808)|0)==0?(Ts(b,44116)|0)==0:0){if((h|0)>15616){Jg(44245,9);Jg(44278,9);Mg(44231,h,15616);Lg(44309)}}else k=12;do if((k|0)==12){if((h|0)>15616){Jg(44199,8);Mg(44231,h,15616);zq(f);g=1;Ia=d;return g|0}if(Ts(b,92808)|0){i=c[(c[26544]|0)+45856>>2]|0;if(i|0){l=c[i+12>>2]|0;i=a[l>>0]|0;m=1;n=0;do{n=(a[l+m>>0]|0)==i<<24>>24?n:1;m=m+1|0}while((m|0)!=16384);if(n|0)break}Jg(59953,9);Jg(59977,10)}}while(0);Vb(b,e);if(au(e,3118768)|0?Gr(e)|0:0)Wb(e,1,1)|0;do if(!(Ts(e,92808)|0)){b=(Ts(e,44116)|0)==0;h=c[26544]|0;if(b){o=As(h,e)|0;break}else{Rs(c[h>>2]|0,f)|0;ch();o=Ob(c[26544]|0,e,0)|0;break}}else{Rs(c[c[26544]>>2]|0,f)|0;ch();o=Pb(c[26544]|0,e,0)|0}while(0);if(!o){Rs(3118768,e)|0;Kb(c[26544]|0,3119792);if(!j)Jg(44329,9)}else if(c[780895]|0)fb(44349,1500);zq(f);g=o;Ia=d;return g|0}function Zb(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=Ia;Ia=Ia+1040|0;g=f+1032|0;h=f+1024|0;i=f;if(!b){Ia=f;return}ws(c[26544]|0);c[26544]=b;_b(b);j=c[(c[b+12>>2]|0)+16>>2]|0;k=0;l=32;while(1){m=c[j+(l<<2)>>2]|0;n=k;o=0;do{n=(a[m+o>>0]|0)==0?n:1;o=o+1|0}while((o|0)!=128);l=l+1|0;if((l|0)==64)break;else k=n}if(!n)Fh(b);else Gh(b);c[484610]=0;Kb(c[26544]|0,3119874);ch();bh();Kb(c[26544]|0,3119792);a[184176]=0;c[h>>2]=44393;c[h+4>>2]=3119792;wt(184176,44370,h)|0;h=184176+(bu(184176)|0)|0;a[h>>0]=46;a[h+1>>0]=112;a[h+2>>0]=56;a[h+3>>0]=0;Rs(i,184176)|0;if(!e)Rs(3118768,i)|0;else Rs(3118768,e)|0;do if(eh(e)|0){c[g>>2]=i;wt(1715360,44396,g)|0;Cn(1715360);h=ys(i)|0;if(!h){Cn(44464);break}Cn(44455);n=0;do{if(1<<(n&7)&d[(n>>>3)+(h+45884)>>0]|0)_k(0,b,n,$k(0,h,n)|0);n=n+1|0}while((n|0)!=17152)}while(0);kb();Os(c[(c[778903]|0)+364>>2]|0);i=c[778903]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778904]|0)+364>>2]|0);i=c[778904]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778905]|0)+364>>2]|0);i=c[778905]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778906]|0)+364>>2]|0);i=c[778906]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778907]|0)+364>>2]|0);i=c[778907]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778908]|0)+364>>2]|0);i=c[778908]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778909]|0)+364>>2]|0);i=c[778909]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778910]|0)+364>>2]|0);i=c[778910]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778911]|0)+364>>2]|0);i=c[778911]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778912]|0)+364>>2]|0);i=c[778912]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778913]|0)+364>>2]|0);i=c[778913]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778914]|0)+364>>2]|0);i=c[778914]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778915]|0)+364>>2]|0);i=c[778915]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778916]|0)+364>>2]|0);i=c[778916]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778917]|0)+364>>2]|0);i=c[778917]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;Os(c[(c[778918]|0)+364>>2]|0);i=c[778918]|0;c[i+336>>2]=0;c[i+344>>2]=-1;c[i+348>>2]=-1;c[535868]=0;c[484715]=0;i=0;do{if(c[b+16+(i*680|0)>>2]&294|0)c[484715]=1;i=i+1|0}while((i|0)!=64);if(c[780901]|0){Ia=f;return}a[3125548]=0;Ia=f;return}function _b(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;b=Ia;Ia=Ia+16|0;d=b;e=a+45864|0;if(c[e>>2]|0){Ia=b;return}c[e>>2]=1;e=a+45860|0;f=c[e>>2]|0;do if((f+-19|0)>>>0<5)if(!(bv(c[a>>2]|0,48241)|0)){Ia=b;return}else{fb(44477,3e3);g=c[e>>2]|0;break}else g=f;while(0);if((g|0)<5){f=0;do{h=a+43536+(f<<4)|0;i=c[h>>2]|0;j=i>>>0<64;if(j){k=c[a+16+(i*680|0)+8>>2]|0;l=((k|0)>1?k:1)<<5;k=(c[a+16+(i*680|0)+16>>2]|0)>(c[a+16+(i*680|0)+12>>2]|0);m=l;n=k?0:l;o=k<<31>>31}else{m=0;n=0;o=-1}k=c[a+43536+(f<<4)+4>>2]|0;l=k>>>0<64;if(l){p=c[a+16+(k*680|0)+8>>2]|0;q=((p|0)>1?p:1)<<5;p=(m|0)>(q|0)?m:q;if((o|0)==-1){r=(c[a+16+(k*680|0)+16>>2]|0)>(c[a+16+(k*680|0)+12>>2]|0);s=p;t=r?n:q;u=r?-1:1}else{s=p;t=n;u=0}}else{s=m;t=n;u=o}p=c[a+43536+(f<<4)+8>>2]|0;r=p>>>0<64;if(r){q=c[a+16+(p*680|0)+8>>2]|0;v=((q|0)>1?q:1)<<5;q=(s|0)>(v|0)?s:v;if((u|0)==-1){w=(c[a+16+(p*680|0)+16>>2]|0)>(c[a+16+(p*680|0)+12>>2]|0);x=q;y=w?t:v;z=w?-1:2}else{x=q;y=t;z=u}}else{x=s;y=t;z=u}q=c[a+43536+(f<<4)+12>>2]|0;w=q>>>0<64;if(w){v=c[a+16+(q*680|0)+8>>2]|0;A=((v|0)>1?v:1)<<5;v=(x|0)>(A|0)?x:A;if((z|0)==-1){B=(c[a+16+(q*680|0)+16>>2]|0)>(c[a+16+(q*680|0)+12>>2]|0);C=v;D=B?y:A;E=B?-1:3}else{C=v;D=y;E=z}}else{C=x;D=y;E=z}a:do if((C|0)!=(D|0)&(E|0)!=-1){if((j?(c[a+16+(i*680|0)+16>>2]|0)<=(c[a+16+(i*680|0)+12>>2]|0):0)?(v=c[a+16+(i*680|0)+8>>2]|0,(((v|0)>1?v:1)<<5|0)==(C|0)):0)break;if((l?(c[a+16+(k*680|0)+16>>2]|0)<=(c[a+16+(k*680|0)+12>>2]|0):0)?(v=c[a+16+(k*680|0)+8>>2]|0,(((v|0)>1?v:1)<<5|0)==(C|0)):0)F=1;else G=49;do if((G|0)==49){G=0;if((r?(c[a+16+(p*680|0)+16>>2]|0)<=(c[a+16+(p*680|0)+12>>2]|0):0)?(v=c[a+16+(p*680|0)+8>>2]|0,(((v|0)>1?v:1)<<5|0)==(C|0)):0){F=2;break}if(!w)break a;if((c[a+16+(q*680|0)+16>>2]|0)>(c[a+16+(q*680|0)+12>>2]|0))break a;v=c[a+16+(q*680|0)+8>>2]|0;if((((v|0)>1?v:1)<<5|0)==(C|0))F=3;else break a}while(0);c[d>>2]=f;c[d+4>>2]=0;c[d+8>>2]=F;wt(1719968,44509,d)|0;Lg(1719968);v=c[h>>2]|0;B=a+43536+(f<<4)+(F<<2)|0;c[h>>2]=c[B>>2];c[B>>2]=v}while(0);f=f+1|0}while((f|0)!=64);f=c[e>>2]|0;if((f|0)<5){F=0;do{d=0;do{if((c[a+16+(F*680|0)+20+(d*20|0)+4>>2]|0)==6?(C=a+16+(F*680|0)+20+(d*20|0)+8|0,(c[C>>2]|0)>5):0)c[C>>2]=5;d=d+1|0}while((d|0)!=32);F=F+1|0}while((F|0)!=64);if(bv(c[a>>2]|0,44541)|0){F=vq(65538)|0;Rs(F,c[a>>2]|0)|0;Rs(c[a>>2]|0,44566)|0;lu(c[a>>2]|0,F)|0;Lg(45837);zq(F);H=c[e>>2]|0}else H=f}else H=f}else H=g;if((H|0)>=11){Ia=b;return}H=0;g=0;do{H=H+((c[a+16+(g*680|0)+4>>2]|0)>1&1)+((c[a+16+(g*680|0)+12>>2]|0)>63&1)+((c[a+16+(g*680|0)+16>>2]|0)>63&1)+((c[a+16+(g*680|0)+36>>2]|0)!=0&1)+((c[a+16+(g*680|0)+56>>2]|0)!=0&1)+((c[a+16+(g*680|0)+76>>2]|0)!=0&1)+((c[a+16+(g*680|0)+96>>2]|0)!=0&1)+((c[a+16+(g*680|0)+116>>2]|0)!=0&1)+((c[a+16+(g*680|0)+136>>2]|0)!=0&1)+((c[a+16+(g*680|0)+156>>2]|0)!=0&1)+((c[a+16+(g*680|0)+176>>2]|0)!=0&1)+((c[a+16+(g*680|0)+196>>2]|0)!=0&1)+((c[a+16+(g*680|0)+216>>2]|0)!=0&1)+((c[a+16+(g*680|0)+236>>2]|0)!=0&1)+((c[a+16+(g*680|0)+256>>2]|0)!=0&1)+((c[a+16+(g*680|0)+276>>2]|0)!=0&1)+((c[a+16+(g*680|0)+296>>2]|0)!=0&1)+((c[a+16+(g*680|0)+316>>2]|0)!=0&1)+((c[a+16+(g*680|0)+336>>2]|0)!=0&1)+((c[a+16+(g*680|0)+356>>2]|0)!=0&1)+((c[a+16+(g*680|0)+376>>2]|0)!=0&1)+((c[a+16+(g*680|0)+396>>2]|0)!=0&1)+((c[a+16+(g*680|0)+416>>2]|0)!=0&1)+((c[a+16+(g*680|0)+436>>2]|0)!=0&1)+((c[a+16+(g*680|0)+456>>2]|0)!=0&1)+((c[a+16+(g*680|0)+476>>2]|0)!=0&1)+((c[a+16+(g*680|0)+496>>2]|0)!=0&1)+((c[a+16+(g*680|0)+516>>2]|0)!=0&1)+((c[a+16+(g*680|0)+536>>2]|0)!=0&1)+((c[a+16+(g*680|0)+556>>2]|0)!=0&1)+((c[a+16+(g*680|0)+576>>2]|0)!=0&1)+((c[a+16+(g*680|0)+596>>2]|0)!=0&1)+((c[a+16+(g*680|0)+616>>2]|0)!=0&1)+((c[a+16+(g*680|0)+636>>2]|0)!=0&1)+((c[a+16+(g*680|0)+656>>2]|0)!=0&1)|0;g=g+1|0}while((g|0)!=64);if(H|0){Ia=b;return}H=0;do{g=0;do{f=a+16+(H*680|0)+20+(g*20|0)+12|0;if((c[f>>2]|0)==1?(c[a+16+(H*680|0)+20+(g*20|0)+8>>2]|0)==0:0)c[f>>2]=0;g=g+1|0}while((g|0)!=32);H=H+1|0}while((H|0)!=64);Ia=b;return}function $b(b){b=b|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=d;a[184176]=0;c[e>>2]=44393;c[e+4>>2]=b;wt(184176,44370,e)|0;e=184176+(bu(184176)|0)|0;a[e>>0]=46;a[e+1>>0]=112;a[e+2>>0]=56;a[e+3>>0]=0;Ia=d;return 184176}function ac(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Po(b,96074)|0;e=Sb(d)|0;Ro(d);if(e|0){c[e+45856>>2]=zm(b)|0;f=e;return f|0}e=ys(b)|0;if(e|0){f=e;return f|0}if(Ts(b,44116)|0?(e=Vo(b)|0,e|0):0){d=e+16|0;g=c[d>>2]|0;if((g|0)<32768){do Jo(0,e);while((c[d>>2]|0)<32768);if((g|0)<15617){g=e+12|0;d=0;do{h=c[g>>2]|0;a[h+(d+17152)>>0]=a[h+d>>0]|0;a[(c[g>>2]|0)+d>>0]=0;d=d+1|0}while((d|0)!=15616);i=g}else j=10}else j=10;if((j|0)==10)i=e+12|0;j=vs()|0;Rb(j,c[i>>2]|0);c[j+45860>>2]=43;Ro(e);if(j|0){f=j;return f|0}}if(!(Ts(b,45864)|0)){f=0;return f|0}f=Ub(b)|0;return f|0}function bc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=Ia;Ia=Ia+1024|0;e=d;Rs(e,b)|0;f=ac(b)|0;g=c[779979]|0;h=c[484618]|0;if((f|0)==0&(g|0)!=1&(h|0)!=3){Vb(b,e);i=ac(e)|0;j=c[779979]|0;k=c[484618]|0;l=i}else{j=g;k=h;l=f}if((l|0)==0&(j|0)!=1&(k|0)!=3){f=e+(bu(e)|0)|0;a[f>>0]=a[92808]|0;a[f+1>>0]=a[92809]|0;a[f+2>>0]=a[92810]|0;a[f+3>>0]=a[92811]|0;a[f+4>>0]=a[92812]|0;f=ac(e)|0;m=c[779979]|0;n=c[484618]|0;o=f}else{m=j;n=k;o=l}if((o|0)==0&(m|0)!=1&(n|0)!=3){Rs(e,b)|0;b=e+(bu(e)|0)|0;a[b>>0]=a[92808]|0;a[b+1>>0]=a[92809]|0;a[b+2>>0]=a[92810]|0;a[b+3>>0]=a[92811]|0;a[b+4>>0]=a[92812]|0;p=ac(e)|0}else p=o;if(!p){q=1;Ia=d;return q|0}Zb(p,e);q=0;Ia=d;return q|0}function cc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(au(a,3122552)|0){Rs(3122552,a)|0;f=30-(c[780904]|0)|0;g=(f|0)<30?f:30;c[780903]=(g|0)>2?g:2;c[780904]=150}g=ac(a)|0;if(!g){h=1;return h|0}if((e|0)>0){a=0;do{f=c[781999]|0;_k(2971096,f,a+b|0,$k(0,g,a+d|0)|0);a=a+1|0}while((a|0)!=(e|0))}ws(g);h=0;return h|0}function dc(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=Ia;Ia=Ia+1040|0;k=j+1024|0;l=j;c[k>>2]=b;wt(l,61063,k)|0;do if(!(bv(2009716,l)|0)){k=0;m=0;a:while(1){switch(a[2009716+m>>0]|0){case 0:{break a;break}case 124:{n=k+1|0;break}default:n=k}k=n;m=m+1|0}if((k|0)>63){o=3;Ia=j;return o|0}else{lu(2009716,l)|0;break}}while(0);Rs(3122552,b)|0;c[780903]=30;l=ac(b)|0;if(!l){n=vs()|0;if(!i)p=n;else{Wv(n+45884|0,0,2144)|0;p=n}}else p=l;l=(g|0)>0;if(l)if(!h){h=0;do{_k(0,p,h+e|0,$k(2971096,c[781999]|0,h+f|0)|0);h=h+1|0}while((h|0)!=(g|0))}else{h=0;do{n=h+e|0;m=h+f|0;_k(0,p,n,$k(2971096,c[781999]|0,m)|0);q=c[26544]|0;_k(0,q,n,$k(2971096,c[781999]|0,m)|0);h=h+1|0}while((h|0)!=(g|0))}if(i|0?(i=g+e|0,l):0){l=e;do{if(l>>>0<17152){e=(l>>>3)+(p+45884)|0;a[e>>0]=1<<(l&7)|d[e>>0]}l=l+1|0}while((l|0)<(i|0))}i=As(p,b)|0;ws(p);o=(i|0)==0?0:2;Ia=j;return o|0}function ec(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=Ia;Ia=Ia+3104|0;e=d+3080|0;f=d+3072|0;g=d+2048|0;h=d+1024|0;i=d;if(!(a[3118768]|0))if(!b){fb(45895,1500);Ia=d;return}else{Lg(45869);Ia=d;return}ds(92888,g);if(bv(3118768,g)|0)if(!b){fb(45954,1500);Ia=d;return}else{Lg(45927);Ia=d;return}if(Yb(3118768)|0)if(!b){fb(45998,1500);Ia=d;return}else{Lg(45986);Ia=d;return}Zo(3118768,g,h,i);c[f>>2]=h;c[f+4>>2]=i;wt(1719968,46020,f)|0;if(!b){fb(1719968,1500);Ia=d;return}b=bu(3115688)|0;f=(ut(g,3115688,b)|0)==0;j=f?g+(b+-1)|0:g;if((a[j>>0]|0)==47){g=bu(3116712)|0;b=(ut(j+1|0,3116712,g)|0)==0;k=b?j+(g+1)|0:j}else k=j;c[e>>2]=k;c[e+4>>2]=h;c[e+8>>2]=i;wt(1719968,46045,e)|0;Lg(1719968);Ia=d;return}function fc(){return}function gc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=Ia;Ia=Ia+1040|0;g=f+1024|0;h=f;i=c[484697]|0;j=(i|0)<32?i:32;i=(d|0)<32?d:32;k=(d|0)>0?((i|0)>1?i:1):(j|0)>1?j:1;hc(46072,e)|0;ku(h,185200)|0;e=B(k,c[b>>2]|0)|0;j=Sn(e,B(k,c[b+4>>2]|0)|0,8)|0;k=j+4|0;_n(b,j,0,0,c[j>>2]|0,c[k>>2]|0,0);if((c[k>>2]|0)>0){b=j+16|0;e=c[j>>2]|0;i=0;while(1){if((e|0)>0){d=e;l=0;while(1){m=(c[(c[b>>2]|0)+(i<<2)>>2]|0)+l|0;if(!(a[m>>0]|0)){a[m>>0]=16;n=c[j>>2]|0}else n=d;l=l+1|0;if((l|0)>=(n|0)){o=n;break}else d=n}}else o=e;i=i+1|0;if((i|0)>=(c[k>>2]|0))break;else e=o}}c[g>>2]=h;wt(1715360,46076,g)|0;Cn(1715360);bp(h,j)|0;Nb(h,46072,128,128);Tn(j)|0;j=(Gr(h)|0)==0&1;Ia=f;return j|0}function hc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=Ia;Ia=Ia+2224|0;f=e+2208|0;g=e+2200|0;h=e+2192|0;i=e+2184|0;j=e+2176|0;k=e+2144|0;l=e+2112|0;m=e+1088|0;n=e+64|0;o=e;Wv(185200,0,1024)|0;c[l>>2]=$m()|0;c[l+4>>2]=b;wt(o,46102,l)|0;if(c[484704]|0){Ir(l,1);p=$m()|0;q=c[l+4>>2]|0;r=c[l+8>>2]|0;s=c[l+12>>2]|0;t=c[l+16>>2]|0;u=c[l+20>>2]|0;v=c[l+24>>2]|0;c[k>>2]=p;c[k+4>>2]=q;c[k+8>>2]=r;c[k+12>>2]=s;c[k+16>>2]=t;c[k+20>>2]=u;c[k+24>>2]=v;c[k+28>>2]=b;wt(o,46112,k)|0}if(a[3195728]|0){c[j>>2]=3195728;c[j+4>>2]=b;wt(o,46142,j)|0}j=(d|0)==0;if(!(nu(o,37)|0))if(j){fs(o,n);ku(185200,n)|0;Ia=e;return 185200}else{ds(3196396,n);d=n+(bu(n)|0)|0;b=d;a[b>>0]=97;a[b+1>>0]=112;a[b+2>>0]=112;a[b+3>>0]=100;b=d+4|0;a[b>>0]=97;a[b+1>>0]=116;a[b+2>>0]=97;a[b+3>>0]=0;hs(n)|0;b=n+(bu(n)|0)|0;a[b>>0]=47;a[b+1>>0]=0;lu(n,_a()|0)|0;hs(n)|0;b=n+(bu(n)|0)|0;a[b>>0]=47;a[b+1>>0]=0;lu(n,o)|0;c[f>>2]=n;wt(1715360,46148,f)|0;Cn(1715360);ku(185200,n)|0;Ia=e;return 185200}if(j){j=0;while(1){c[i>>2]=j;wt(m,o,i)|0;fs(m,n);if(!(Gr(n)|0))break;else j=j+1|0}ku(185200,n)|0;Ia=e;return 185200}else{j=0;while(1){c[h>>2]=j;wt(m,o,h)|0;ds(3196396,n);i=n+(bu(n)|0)|0;f=i;a[f>>0]=97;a[f+1>>0]=112;a[f+2>>0]=112;a[f+3>>0]=100;f=i+4|0;a[f>>0]=97;a[f+1>>0]=116;a[f+2>>0]=97;a[f+3>>0]=0;hs(n)|0;f=n+(bu(n)|0)|0;a[f>>0]=47;a[f+1>>0]=0;lu(n,_a()|0)|0;hs(n)|0;f=n+(bu(n)|0)|0;a[f>>0]=47;a[f+1>>0]=0;lu(n,m)|0;c[g>>2]=n;wt(1715360,46148,g)|0;Cn(1715360);if(!(Gr(n)|0))break;else j=j+1|0}ku(185200,n)|0;Ia=e;return 185200}return 0}function ic(){c[554348]=0;return}function jc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Ia;Ia=Ia+16|0;e=d;f=c[554348]|0;if((f|0)==32){Ia=d;return}c[554348]=f+1;Rs(174672+(f*297|0)+41|0,b)|0;g=174672+(f*297|0)|0;Kb(a,g);f=bu(c[a>>2]|0)|0;c[e>>2]=b;c[e+4>>2]=f;c[e+8>>2]=g;wt(1715360,46170,e)|0;Cn(1715360);e=ts(b,96789)|0;if(!e){Cn(46209);Ia=d;return}else{zs(a,e,0)|0;Ro(e);Ia=d;return}}function kc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=Ia;Ia=Ia+1024|0;f=e;g=c[554348]|0;if((g|0)<=0){h=0;Ia=e;return h|0}a:do if(d){i=0;while(1){j=174672+(i*297|0)+41|0;if(!(au(b,j)|0)){k=i;break a}Vb(b,f);if(!(au(f,j)|0)){l=10;break}m=f+(bu(f)|0)|0;a[m>>0]=a[92808]|0;a[m+1>>0]=a[92809]|0;a[m+2>>0]=a[92810]|0;a[m+3>>0]=a[92811]|0;a[m+4>>0]=a[92812]|0;if(!(au(f,j)|0)){l=12;break}j=i+1|0;if((j|0)<(c[554348]|0))i=j;else{h=0;l=14;break}}if((l|0)==10){h=174672+(i*297|0)|0;Ia=e;return h|0}else if((l|0)==12){h=174672+(i*297|0)|0;Ia=e;return h|0}else if((l|0)==14){Ia=e;return h|0}}else{j=0;while(1){if(!(au(b,174672+(j*297|0)+41|0)|0)){k=j;break a}j=j+1|0;if((j|0)>=(g|0)){h=0;break}}Ia=e;return h|0}while(0);h=174672+(k*297|0)|0;Ia=e;return h|0}function lc(){return 0}function mc(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=Ia;Ia=Ia+128|0;d=b+64|0;e=b;if(!(a[3118768]|0)){f=0;Ia=b;return f|0}g=ac(3118768)|0;if(!g){f=0;Ia=b;return f|0}_b(g);h=c[(c[g+12>>2]|0)+16>>2]|0;i=0;j=32;while(1){k=c[h+(j<<2)>>2]|0;l=i;m=0;do{l=(a[k+m>>0]|0)==0?l:1;m=m+1|0}while((m|0)!=128);j=j+1|0;if((j|0)==64)break;else i=l}if(!l)Fh(g);else Gh(g);Kb(g,d);Kb(c[26544]|0,e);ws(g);if(!(au(d,e)|0)){f=0;Ia=b;return f|0}if(!(au(d,3119792)|0)){f=0;Ia=b;return f|0}f=(au(d,3119874)|0)!=0&1;Ia=b;return f|0}function nc(a){a=a|0;return 0}function oc(){var b=0,d=0,e=0,f=0,g=0;if(!(a[2219928]|0)){a[2219928]=0;return}b=ac(2219928)|0;d=(b|0)!=0;if((c[780895]|c[780894]|0)==0&((d|(c[780901]|0)!=0)^1)){Lg(46249);a[2219928]=0;return}if(d){ws(b);fb(46274,2e3);a[2219928]=0;return}if(Ts(2219928,46287)|0){fb(46295,2e3);a[2219928]=0;return}if(!(Ts(2219928,92808)|0)){if(!(a[2219928]|0)){a[2219928]=0;return}b=Vo(2219928)|0;if((c[b+16>>2]|0)>524288)fb(46346,2e3);else sn(b);Cq(b);a[2219928]=0;return}b=ap(2219928)|0;if(!b){a[2219928]=0;return}vh();d=b+4|0;e=Sn(c[b>>2]|0,c[d>>2]|0,8)|0;Pk(b,e,c[742761]|0);do if((c[780894]|0)!=1&(c[780895]|0)==2){f=c[798472]|0;g=(f|0)/16|0;Gp(e,c[(c[26544]|0)+4>>2]|0,0,0,f-(g<<4)<<3,g<<3,c[b>>2]|0,c[d>>2]|0)}else{if((c[e>>2]|0)<=128?(c[e+4>>2]|0)<=128:0){tn(e);break}fb(46317,2e3)}while(0);Tn(b)|0;Tn(e)|0;a[2219928]=0;return}function pc(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;b=Ia;Ia=Ia+32|0;d=b+16|0;e=b+8|0;f=b;g=b+24|0;h=Aq(139392)|0;i=ka(19)|0;j=i;ka(20)|0;do if(i){c[f>>2]=j;vv(46841,f)|0;k=bv(j,46862)|0;if(k|0){l=k+7|0;Wh(g);k=bu(l)|0;m=h+16|0;c[m>>2]=Xh(l,k,c[h+12>>2]|0,g)|0;k=h+20|0;c[k>>2]=0;l=Sb(h)|0;if(!l)n=xs(h,0)|0;else n=l;l=(n|0)!=0;if((c[780894]|0)==0&((l|(c[780901]|0)!=0)^1)){Lg(46249);a[2219928]=0;Ia=b;return}if(l){ws(n);fb(46274,2e3);break}c[k>>2]=0;k=$o(h)|0;if(!k){c[d>>2]=c[m>>2];vv(46906,d)|0;if((c[m>>2]|0)>524288){fb(46346,2e3);break}else{sn(h);break}}vh();m=k+4|0;l=Sn(c[k>>2]|0,c[m>>2]|0,8)|0;Pk(k,l,c[742761]|0);do if((c[780894]|0)!=1&(c[780895]|0)==2){o=c[798472]|0;p=(o|0)/16|0;Gp(l,c[(c[26544]|0)+4>>2]|0,0,0,o-(p<<4)<<3,p<<3,c[k>>2]|0,c[m>>2]|0)}else{p=c[l>>2]|0;if((p|0)<=128?(o=c[l+4>>2]|0,(o|0)<=128):0){c[e>>2]=p;c[e+4>>2]=o;vv(46870,e)|0;tn(l);break}fb(46317,2e3)}while(0);Tn(k)|0;Tn(l)|0}}else Lg(46946);while(0);Ro(h);Ia=b;return}function qc(b,c){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,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=Ia;Ia=Ia+2048|0;e=d+1024|0;f=d;if((a[b>>0]|0)==47)ku(c,b)|0;else{a[c>>0]=47;a[c+1>>0]=0;lu(c,3116712)|0;lu(c,b)|0}b=a[c>>0]|0;if(b<<24>>24==47?(a[c+1>>0]|0)==0:0){Ia=d;return c|0}a[e>>0]=0;if(b<<24>>24==47){g=c;while(1){h=g+1|0;i=a[h>>0]|0;if(i<<24>>24==47)g=h;else{j=i;k=h;break}}}else{j=b;k=c}a:do if(j<<24>>24){b=j;g=k;h=0;while(1){i=b;l=g;b:while(1){switch(i<<24>>24){case 0:case 47:{break b;break}default:{}}m=l+1|0;i=a[m>>0]|0;l=m}i=l-g|0;c:do switch(i|0){case 1:{if(b<<24>>24==46)n=h;else o=26;break}case 2:{if(b<<24>>24==46?(a[g+1>>0]|0)==46:0)if((h|0)>1){m=e+h+-1|0;if(m>>>0>e>>>0){p=m;q=h;while(1){if((a[p>>0]|0)==47){r=p;s=q;break}a[p>>0]=0;t=q+-1|0;a[e+t>>0]=0;u=p+-1|0;if(u>>>0>e>>>0){p=u;q=t}else{r=u;s=t;break}}if((s|0)>0){v=r;w=s}else{n=s;break c}}else{v=m;w=h}q=w+-1|0;a[v>>0]=0;a[e+q>>0]=0;n=q}else n=h;else o=26;break}default:o=26}while(0);if((o|0)==26){o=0;Wv(f+i|0,0,(i>>>0>1023?0:1024-i|0)|0)|0;Vv(f|0,g|0,i|0)|0;q=e+(bu(e)|0)|0;a[q>>0]=47;a[q+1>>0]=0;lu(e,f)|0;n=bu(e)|0}q=l;d:while(1){x=a[q>>0]|0;switch(x<<24>>24){case 0:{break a;break}case 47:{q=q+1|0;break}default:break d}}b=x;g=q;h=n}}while(0);ku(c,e)|0;Ia=d;return c|0}function rc(a){a=a|0;ku(186224,3115688)|0;qc((a|0)==0?3196396:a,186224+(bu(186224)|0)+-1|0)|0;return 186224}function sc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=Ia;Ia=Ia+16|0;f=e;ds(3196396,d);g=d+(bu(d)|0)|0;h=g;a[h>>0]=97;a[h+1>>0]=112;a[h+2>>0]=112;a[h+3>>0]=100;h=g+4|0;a[h>>0]=97;a[h+1>>0]=116;a[h+2>>0]=97;a[h+3>>0]=0;hs(d)|0;h=d+(bu(d)|0)|0;a[h>>0]=47;a[h+1>>0]=0;lu(d,_a()|0)|0;hs(d)|0;h=d+(bu(d)|0)|0;a[h>>0]=47;a[h+1>>0]=0;lu(d,b)|0;c[f>>2]=d;wt(1715360,46148,f)|0;Cn(1715360);Ia=e;return}function tc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=Ia;Ia=Ia+16|0;e=d;f=d+4|0;g=xq(32768)|0;wq(g,0,32768);if(Lb(b,g,1)|0){Jg(43954,8);zq(g);Ia=d;return}h=vq(62464)|0;i=h;j=46974;k=i+27|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));c[537424]=1;wq(f,0,12);Rh(f);j=c[554347]|0;Th(g+17152|0,j,h+(bu(h)|0)|0,f)|0;Uh(h+(bu(h)|0)|0,f)|0;f=b+4|0;b=c[(c[f>>2]|0)+12>>2]|0;j=0;g=0;do{i=j;j=j+1|0;g=(a[b+i>>0]&15)==0?g:j}while((j|0)!=16384);if((g|0)>0){j=h+(bu(h)|0)|0;a[j>>0]=38;a[j+1>>0]=103;a[j+2>>0]=61;a[j+3>>0]=0;j=h+(bu(h)|0)|0;b=0;while(1){i=c[(c[f>>2]|0)+12>>2]|0;k=a[i+b>>0]|0;l=k&15;m=l&255;if((b|0)<(g|0)){a:do if((k&15)==l<<24>>24){n=b;o=0;while(1){p=n+1|0;q=o+1|0;if((p|0)>=(g|0)){r=p;s=q;break a}if(q>>>0<67?(a[i+p>>0]&15)==l<<24>>24:0){n=p;o=q}else{r=p;s=q;break}}}else{r=b;s=0}while(0);if(s>>>0<4){t=r;u=s;v=13}else{a[j>>0]=Sh((m|48)&255)|0;w=2;x=j+1|0;y=r;z=s+252|0}}else{t=b;u=0;v=13}if((v|0)==13){v=0;w=1;x=j;y=t;z=(u<<4)+240|m}a[x>>0]=Sh(z&255)|0;j=j+w|0;a[j>>0]=0;if((y|0)>=(g|0))break;else b=y}}c[537424]=0;if((bu(h)|0)>>>0<2040){y=vq(65536)|0;c[e>>2]=h+23;wt(y,47001,e)|0;va(y|0);zq(y)}else Jg(47097,9);Mg(47124,bu(h)|0,0);zq(h);Ia=d;return}function uc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=Ia;Ia=Ia+16|0;f=e;c[537424]=1;if(b|0?a[b>>0]|0:0){g=vq(16384)|0;Wh(f);Xh(b,bu(b)|0,g,f)|0;wq(c[c[26544]>>2]|0,0,65538);Nl(g,c[c[26544]>>2]|0,65537)|0;zq(g);ch()}if(!d){c[537424]=0;Ia=e;return}g=a[d>>0]|0;if(!(g<<24>>24)){c[537424]=0;Ia=e;return}f=g;g=d;d=0;while(1){b=Vh(f)|0;h=g+1|0;i=b&15;j=(b>>>4&3)+1|0;if((j|0)==4){b=a[h>>0]|0;if(!(b<<24>>24)){k=h;l=4}else{k=g+2|0;l=(Vh(b)|0)+4|0}}else{k=h;l=j}if((l|0)>0&(d|0)<16384){j=i&255;i=d;h=l;while(1){a[(c[(c[(c[26544]|0)+4>>2]|0)+12>>2]|0)+i>>0]=j;b=i+1|0;if((h|0)>1&(i|0)<16383){i=b;h=h+-1|0}else{m=b;break}}}else m=d;f=a[k>>0]|0;if(!(f<<24>>24))break;else{g=k;d=m}}Fh(c[26544]|0);c[537424]=0;Ia=e;return}function vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=Ia;Ia=Ia+16|0;e=d;c[e>>2]=b;f=c[a+16>>2]|0;g=a+8|0;h=c[g>>2]|0;do if(((c[a+24>>2]|0)-h>>3|0)<=(b|0)){if(((h-(c[a+28>>2]|0)>>3)+5|0)>(1e6-b|0)){i=0;Ia=d;return i|0}if(!(xc(a,2,e)|0)){j=c[g>>2]|0;k=c[e>>2]|0;break}else{i=0;Ia=d;return i|0}}else{j=h;k=b}while(0);b=f+4|0;f=j+(k<<3)|0;if((c[b>>2]|0)>>>0>=f>>>0){i=1;Ia=d;return i|0}c[b>>2]=f;i=1;Ia=d;return i|0}function wc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=c[a+32>>2]|0;if((e|0)>1e6)yc(a,6);f=(c[b>>2]|0)+5+((c[a+8>>2]|0)-(c[a+28>>2]|0)>>3)|0;b=e<<1;e=(b|0)<1e6?b:1e6;b=(e|0)<(f|0)?f:e;if((b|0)>1e6){zc(a,1000200);Ac(a,47184,d)}else{zc(a,b);Ia=d;return}}function xc(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=Ia;Ia=Ia+176|0;g=4;h=Ys(40)|0;c[h>>2]=0;i=f;l=a+38|0;m=b[l>>1]|0;n=i+160|0;c[n>>2]=0;o=a+64|0;c[i>>2]=c[o>>2];c[o>>2]=i;h=Sv(i+4|0,1,h|0,g|0)|0;g=G()|0;j=0;p=j;j=0;if((p|0)!=0&(k|0)!=0){q=Tv(c[p>>2]|0,h|0,g|0)|0;if(!q)Da(p|0,k|0);F(k|0)}else q=-1;p=G()|0;if((q|0)==1)r=p;else r=0;do{if(r|0){s=6;break}j=0;H(d|0,a|0,e|0);p=j;j=0;if((p|0)!=0&(k|0)!=0){t=Tv(c[p>>2]|0,h|0,g|0)|0;if(!t)Da(p|0,k|0);F(k|0)}else t=-1;r=G()|0}while((t|0)==1);if((s|0)==6){u=c[i>>2]|0;c[o>>2]=u;b[l>>1]=m;v=c[n>>2]|0;Zs(h|0);Ia=f;return v|0}u=c[i>>2]|0;c[o>>2]=u;b[l>>1]=m;v=c[n>>2]|0;Zs(h|0);Ia=f;return v|0}function yc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=c[b+64>>2]|0;if(e|0){c[e+160>>2]=d;Da(e+4|0,1)}a[b+6>>0]=d;e=b+12|0;f=c[e>>2]|0;g=c[f+144>>2]|0;if(c[g+64>>2]|0){h=c[b+8>>2]|0;i=g+8|0;g=c[i>>2]|0;c[i>>2]=g+8;c[g>>2]=c[h+-8>>2];c[g+4>>2]=c[h+-4>>2];yc(c[(c[e>>2]|0)+144>>2]|0,d)}d=c[f+140>>2]|0;if(!d)ja();La[d&255](b)|0;ja()}function zc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=b+28|0;f=c[e>>2]|0;g=b+32|0;h=c[g>>2]|0;if((d+1|0)>>>0>536870911)Lc(b);i=h<<3;j=d<<3;k=c[b+12>>2]|0;l=(f|0)==0;m=k+4|0;n=Pa[c[k>>2]&3](c[m>>2]|0,f,i,j)|0;if((j|0)!=0&(n|0)==0){if(!(a[k+51>>0]|0))yc(b,4);Kc(b,1);o=Pa[c[k>>2]&3](c[m>>2]|0,f,i,j)|0;if(!o)yc(b,4);else p=o}else p=n;n=k+12|0;c[n>>2]=(l?0:0-i|0)+j+(c[n>>2]|0);c[e>>2]=p;if((h|0)<(d|0)){n=h;do{c[p+(n<<3)+4>>2]=0;n=n+1|0}while((n|0)!=(d|0))}c[g>>2]=d;c[b+24>>2]=p+(d<<3)+-40;d=b+8|0;g=f;c[d>>2]=p+((c[d>>2]|0)-g>>3<<3);d=c[b+56>>2]|0;if(d|0?(f=d+8|0,c[f>>2]=p+((c[f>>2]|0)-g>>3<<3),f=c[d>>2]|0,f|0):0){d=f;do{f=d+8|0;c[f>>2]=(c[e>>2]|0)+((c[f>>2]|0)-g>>3<<3);d=c[d>>2]|0}while((d|0)!=0)}d=c[b+16>>2]|0;if(!d)return;b=d;do{d=b+4|0;f=c[e>>2]|0;c[d>>2]=f+((c[d>>2]|0)-g>>3<<3);c[b>>2]=f+((c[b>>2]|0)-g>>3<<3);if(a[b+18>>0]&1){d=b+24|0;c[d>>2]=f+((c[d>>2]|0)-g>>3<<3)}b=c[b+8>>2]|0}while((b|0)!=0);return}function Ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=d;Cc(a,Bc(a,b,f)|0);Dc(a)}function Bc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;f=Ia;Ia=Ia+80|0;g=f+64|0;h=f+56|0;i=f+48|0;j=f+40|0;k=f;l=nu(d,37)|0;m=b+24|0;n=b+8|0;o=c[n>>2]|0;p=(c[m>>2]|0)-o|0;q=o;do if(l){r=b+32|0;s=b+28|0;t=o;u=q;v=l;w=d;x=0;y=p;a:while(1){if((y|0)<24){z=c[r>>2]|0;if((z|0)>1e6){A=5;break}B=(t-(c[s>>2]|0)>>3)+7|0;C=z<<1;z=(C|0)<1e6?C:1e6;C=(z|0)<(B|0)?B:z;if((C|0)>1e6){A=7;break}zc(b,C);D=c[n>>2]|0}else D=u;c[n>>2]=D+8;C=xd(b,w,v-w|0)|0;c[D>>2]=C;c[D+4>>2]=(a[C+4>>0]|64)&255;E=a[v+1>>0]|0;switch(E<<24>>24|0){case 115:{C=(c[e>>2]|0)+(4-1)&~(4-1);z=c[C>>2]|0;c[e>>2]=C+4;C=(z|0)==0?104822:z;z=bu(C)|0;B=c[n>>2]|0;c[n>>2]=B+8;F=xd(b,C,z)|0;c[B>>2]=F;c[B+4>>2]=(a[F+4>>0]|64)&255;break}case 99:{F=(c[e>>2]|0)+(4-1)&~(4-1);B=c[F>>2]|0;c[e>>2]=F+4;a[k>>0]=B;B=c[n>>2]|0;c[n>>2]=B+8;F=bd(b,k,1)|0;c[B>>2]=F;c[B+4>>2]=(a[F+4>>0]|64)&255;break}case 100:{F=c[n>>2]|0;c[n>>2]=F+8;B=(c[e>>2]|0)+(4-1)&~(4-1);z=c[B>>2]|0;c[e>>2]=B+4;c[F>>2]=z;c[F+4>>2]=3;break}case 102:{F=c[n>>2]|0;c[n>>2]=F+8;z=(c[e>>2]|0)+(4-1)&~(4-1);B=c[z>>2]|0;c[e>>2]=z+4;c[F>>2]=B;c[F+4>>2]=3;break}case 112:{F=(c[e>>2]|0)+(4-1)&~(4-1);B=c[F>>2]|0;c[e>>2]=F+4;c[i>>2]=B;B=wt(k,47853,i)|0;F=c[n>>2]|0;c[n>>2]=F+8;z=xd(b,k,B)|0;c[F>>2]=z;c[F+4>>2]=(a[z+4>>0]|64)&255;break}case 37:{z=c[n>>2]|0;c[n>>2]=z+8;F=bd(b,73254,1)|0;c[z>>2]=F;c[z+4>>2]=(a[F+4>>0]|64)&255;break}default:{A=16;break a}}G=x+2|0;H=v+2|0;F=nu(H,37)|0;I=c[n>>2]|0;J=(c[m>>2]|0)-I|0;if(!F){A=18;break}else{t=I;u=I;v=F;w=H;x=G;y=J}}if((A|0)==5)yc(b,6);else if((A|0)==7){zc(b,1000200);Ac(b,47184,j)}else if((A|0)==16){c[h>>2]=E<<24>>24;Ac(b,47858,h)}else if((A|0)==18){K=I;L=I;M=H;N=G;O=J;break}}else{K=o;L=q;M=d;N=0;O=p}while(0);do if((O|0)<16){p=c[b+32>>2]|0;if((p|0)>1e6)yc(b,6);d=(K-(c[b+28>>2]|0)>>3)+6|0;q=p<<1;p=(q|0)<1e6?q:1e6;q=(p|0)<(d|0)?d:p;if((q|0)>1e6){zc(b,1000200);Ac(b,47184,g)}else{zc(b,q);P=c[n>>2]|0;break}}else P=L;while(0);L=bu(M)|0;c[n>>2]=P+8;g=xd(b,M,L)|0;c[P>>2]=g;c[P+4>>2]=(a[g+4>>0]|64)&255;if(!N){Q=c[n>>2]|0;R=Q+-8|0;S=c[R>>2]|0;T=S+16|0;Ia=f;return T|0}Rc(b,N|1);Q=c[n>>2]|0;R=Q+-8|0;S=c[R>>2]|0;T=S+16|0;Ia=f;return T|0}function Cc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=Ia;Ia=Ia+80|0;f=e+64|0;g=e;h=c[b+16>>2]|0;if(!(a[h+18>>0]&1)){Ia=e;return}i=c[(c[c[h>>2]>>2]|0)+12>>2]|0;j=c[i+20>>2]|0;if(!j)k=0;else k=c[j+(((c[h+28>>2]|0)-(c[i+12>>2]|0)>>2)+-1<<2)>>2]|0;h=c[i+36>>2]|0;a:do if(!h){a[g>>0]=63;a[g+1>>0]=0}else{i=h+16|0;j=bu(i)|0;switch(a[i>>0]|0){case 61:{l=i+1|0;if(j>>>0>60){m=g;n=l;o=m+59|0;do{a[m>>0]=a[n>>0]|0;m=m+1|0;n=n+1|0}while((m|0)<(o|0));a[g+59>>0]=0;break a}else{Vv(g|0,l|0,j|0)|0;break a}break}case 64:{if(j>>>0>60){a[g>>0]=a[74024]|0;a[g+1>>0]=a[74025]|0;a[g+2>>0]=a[74026]|0;m=g+3|0;n=i+1+j+-57|0;o=m+57|0;do{a[m>>0]=a[n>>0]|0;m=m+1|0;n=n+1|0}while((m|0)<(o|0));break a}else{Vv(g|0,i+1|0,j|0)|0;break a}break}default:{l=nu(i,10)|0;m=g;n=47837;o=m+9|0;do{a[m>>0]=a[n>>0]|0;m=m+1|0;n=n+1|0}while((m|0)<(o|0));p=g+9|0;q=(l|0)==0;if(j>>>0<45&q){Vv(p|0,i|0,j|0)|0;r=p+j|0}else{s=q?j:l-i|0;q=s>>>0<45?s:45;Vv(p|0,i|0,q|0)|0;s=p+q|0;a[s>>0]=a[74024]|0;a[s+1>>0]=a[74025]|0;a[s+2>>0]=a[74026]|0;r=s+3|0};a[r>>0]=a[47847]|0;a[r+1>>0]=a[47848]|0;a[r+2>>0]=a[47849]|0;break a}}}while(0);c[f>>2]=d;wd(b,47850,f)|0;c[554351]=k;Ia=e;return}function Dc(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d;d=c[a+68>>2]|0;if(!d)yc(a,2);f=(c[a+28>>2]|0)+d|0;d=f+4|0;if((c[d>>2]&15|0)!=6)yc(a,6);g=a+8|0;h=c[g>>2]|0;c[h>>2]=c[h+-8>>2];c[h+4>>2]=c[h+-4>>2];h=c[g>>2]|0;c[h+-8>>2]=c[f>>2];c[h+-4>>2]=c[d>>2];d=c[g>>2]|0;c[g>>2]=d+8;g=d+-8|0;d=a+38|0;h=(b[d>>1]|0)+1<<16>>16;b[d>>1]=h;if((h&65535)>199){if(h<<16>>16==200)Ac(a,47199,e);if((h&65535)>224)yc(a,6)}h=a+36|0;b[h>>1]=(b[h>>1]|0)+1<<16>>16;if(!(Ec(a,g,1)|0))Fc(a);b[h>>1]=(b[h>>1]|0)+-1<<16>>16;b[d>>1]=(b[d>>1]|0)+-1<<16>>16;yc(a,2)}function Ec(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;h=Ia;Ia=Ia+32|0;i=h+24|0;j=h+16|0;k=h+8|0;l=h;m=e+28|0;n=e+12|0;o=e+8|0;p=e+24|0;q=e+32|0;r=f;a:while(1){s=c[m>>2]|0;t=r-s|0;f=c[r+4>>2]|0;u=(f&63)+-6|0;switch(u>>>4|u<<28|0){case 3:{v=3;break a;break}case 1:{v=6;break a;break}case 2:{v=7;break a;break}case 0:{v=33;break a;break}default:{}}switch(f&15){case 5:{w=(c[r>>2]|0)+8|0;break}case 7:{w=(c[r>>2]|0)+8|0;break}default:w=(c[n>>2]|0)+276+((f&15)<<2)|0}f=c[w>>2]|0;b:do if(!f)x=2217396;else{u=c[(c[n>>2]|0)+272>>2]|0;y=(c[f+16>>2]|0)+(((1<<d[f+7>>0])+-1&c[u+8>>2])*20|0)|0;while(1){if((c[y+12>>2]|0)==68?(c[y+8>>2]|0)==(u|0):0)break;z=c[y+16>>2]|0;if(!z){x=2217396;break b}else y=z}x=y}while(0);f=x+4|0;if((c[f>>2]&15|0)!=6){v=77;break}u=c[o>>2]|0;if(u>>>0>r>>>0){z=u;do{A=z;z=z+-8|0;c[A>>2]=c[z>>2];c[A+4>>2]=c[A+-4>>2]}while(z>>>0>r>>>0);B=c[o>>2]|0}else B=u;z=B+8|0;c[o>>2]=z;A=z;if(((c[p>>2]|0)-A|0)<8){z=c[q>>2]|0;if((z|0)>1e6){v=84;break}C=(A-(c[m>>2]|0)>>3)+5|0;A=z<<1;z=(A|0)<1e6?A:1e6;A=(z|0)<(C|0)?C:z;if((A|0)>1e6){v=86;break}zc(e,A)}A=(c[m>>2]|0)+t|0;c[A>>2]=c[x>>2];c[A+4>>2]=c[f>>2];r=A}if((v|0)==3){c[e+112>>2]=((c[o>>2]|0)-r>>3)+-1;c[r>>2]=La[c[r>>2]&255](e)|0;c[r+4>>2]=3;c[o>>2]=r+8;if((g|0)<=1){D=1;Ia=h;return D|0}x=r;B=g;while(1){c[x+12>>2]=0;if((B|0)>2){x=x+8|0;B=B+-1|0}else{D=1;break}}Ia=h;return D|0}else if((v|0)==6)E=r;else if((v|0)==7)E=(c[r>>2]|0)+12|0;else if((v|0)==33){B=c[(c[r>>2]|0)+12>>2]|0;x=c[o>>2]|0;w=x-r>>3;A=w+-1|0;z=B+78|0;C=d[z>>0]|0;do if(((c[p>>2]|0)-x>>3|0)<=(C|0)){F=c[q>>2]|0;if((F|0)>1e6)yc(e,6);G=(x-s>>3)+5+C|0;H=F<<1;F=(H|0)<1e6?H:1e6;H=(F|0)<(G|0)?G:F;if((H|0)>1e6){zc(e,1000200);Ac(e,47184,k)}else{zc(e,H);break}}while(0);k=a[B+76>>0]|0;C=k&255;if((w|0)>(C|0))I=A;else{w=c[o>>2]|0;x=A;do{A=w;w=w+8|0;c[A+4>>2]=0;x=x+1|0}while((x|0)<(C|0));c[o>>2]=w;I=x}if(!(a[B+77>>0]|0)){x=(c[m>>2]|0)+t|0;J=x+8|0;K=x}else{x=c[o>>2]|0;w=d[z>>0]|0;do if(((c[p>>2]|0)-x>>3|0)<=(w|0)){A=c[q>>2]|0;if((A|0)>1e6)yc(e,6);H=w+5+(x-(c[m>>2]|0)>>3)|0;F=A<<1;A=(F|0)<1e6?F:1e6;F=(A|0)<(H|0)?H:A;if((F|0)>1e6){zc(e,1000200);Ac(e,47184,j)}else{zc(e,F);L=c[o>>2]|0;break}}else L=x;while(0);x=0-I|0;I=L+(x<<3)|0;if(k<<24>>24?(c[o>>2]=L+8,c[L>>2]=c[I>>2],j=L+(x<<3)+4|0,c[L+4>>2]=c[j>>2],c[j>>2]=0,k<<24>>24!=1):0){k=1;do{j=c[o>>2]|0;x=I+(k<<3)|0;c[o>>2]=j+8;c[j>>2]=c[x>>2];w=x+4|0;c[j+4>>2]=c[w>>2];c[w>>2]=0;k=k+1|0}while((k|0)!=(C|0))}J=L;K=(c[m>>2]|0)+t|0}L=e+16|0;C=c[(c[L>>2]|0)+12>>2]|0;if(!C){k=c[n>>2]|0;I=k+4|0;w=Pa[c[k>>2]&3](c[I>>2]|0,0,0,40)|0;if(!w){if(!(a[k+51>>0]|0))yc(e,4);Kc(e,1);j=Pa[c[k>>2]&3](c[I>>2]|0,0,0,40)|0;if(!j)yc(e,4);else M=j}else M=w;w=k+12|0;c[w>>2]=(c[w>>2]|0)+40;w=c[L>>2]|0;c[w+12>>2]=M;c[M+8>>2]=w;c[M+12>>2]=0;N=M}else N=C;c[L>>2]=N;b[N+16>>1]=g;c[N>>2]=K;c[N+24>>2]=J;K=J+(d[z>>0]<<3)|0;c[N+4>>2]=K;c[N+28>>2]=c[B+12>>2];a[N+18>>0]=1;c[o>>2]=K;K=c[n>>2]|0;N=K+12|0;B=c[N>>2]|0;if((B|0)<=0){D=0;Ia=h;return D|0}if(!(a[K+51>>0]|0)){z=K+8|0;c[z>>2]=B+1600+(c[z>>2]|0);c[N>>2]=-1600;D=0;Ia=h;return D|0}else{Oc(e);D=0;Ia=h;return D|0}}else if((v|0)==77)dd(e,r,47832);else if((v|0)==84)yc(e,6);else if((v|0)==86){zc(e,1000200);Ac(e,47184,i)}i=c[E>>2]|0;E=c[o>>2]|0;c[e+112>>2]=(E-r>>3)+-1;do if(((c[p>>2]|0)-E|0)<168){r=c[q>>2]|0;if((r|0)>1e6)yc(e,6);v=(E-s>>3)+25|0;N=r<<1;r=(N|0)<1e6?N:1e6;N=(r|0)<(v|0)?v:r;if((N|0)>1e6){zc(e,1000200);Ac(e,47184,l)}else{zc(e,N);break}}while(0);l=e+16|0;s=c[(c[l>>2]|0)+12>>2]|0;if(!s){E=c[n>>2]|0;q=E+4|0;p=Pa[c[E>>2]&3](c[q>>2]|0,0,0,40)|0;if(!p){if(!(a[E+51>>0]|0))yc(e,4);Kc(e,1);N=Pa[c[E>>2]&3](c[q>>2]|0,0,0,40)|0;if(!N)yc(e,4);else O=N}else O=p;p=E+12|0;c[p>>2]=(c[p>>2]|0)+40;p=c[l>>2]|0;c[p+12>>2]=O;c[O+8>>2]=p;c[O+12>>2]=0;P=O}else P=s;c[l>>2]=P;b[P+16>>1]=g;c[P>>2]=(c[m>>2]|0)+t;c[P+4>>2]=(c[o>>2]|0)+160;a[P+18>>0]=0;P=c[n>>2]|0;n=P+12|0;t=c[n>>2]|0;do if((t|0)>0)if(!(a[P+51>>0]|0)){m=P+8|0;c[m>>2]=t+1600+(c[m>>2]|0);c[n>>2]=-1600;break}else{Oc(e);break}while(0);n=La[i&255](e)|0;e=c[o>>2]|0;i=c[l>>2]|0;t=c[i>>2]|0;P=b[i+16>>1]|0;c[l>>2]=c[i+8>>2];c:do if(P<<16>>16){i=P<<16>>16;l=0-n|0;if((l|0)<0){m=e+(l<<3)|0;l=i;g=t;while(1){s=g+8|0;c[g>>2]=c[m>>2];c[g+4>>2]=c[m+4>>2];O=l+-1|0;if(!O){Q=s;break c}m=m+8|0;if(m>>>0>=(c[o>>2]|0)>>>0){R=O;S=s;break}else{l=O;g=s}}}else{R=i;S=t}if((R|0)>0){g=R;l=S;while(1){m=l+8|0;c[l+4>>2]=0;if((g|0)>1){g=g+-1|0;l=m}else{Q=m;break}}}else Q=S}else Q=t;while(0);c[o>>2]=Q;D=1;Ia=h;return D|0} +function Si(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;b=a+112|0;d=c[b>>2]|0;do if((d|0)>0){e=a+8|0;f=c[e>>2]|0;g=0-d|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{g=Gd(h)|0;i=c[b>>2]|0;j=g}if((i|0)>1){g=(c[e>>2]|0)+(0-i<<3)+8|0;if((c[g+4>>2]|0)==3){k=i;l=c[g>>2]|0}else{h=Gd(g)|0;k=c[b>>2]|0;l=h}if((k|0)>2){h=(c[e>>2]|0)+(0-k<<3)+16|0;if((c[h+4>>2]|0)==3){m=k;n=c[h>>2]|0}else{g=Gd(h)|0;m=c[b>>2]|0;n=g}if((m|0)>3){g=(c[e>>2]|0)+(0-m<<3)+24|0;if((c[g+4>>2]|0)==3){o=n;p=c[g>>2]|0;q=j;r=l;break}else{o=n;p=Gd(g)|0;q=j;r=l;break}}else{o=n;p=0;q=j;r=l}}else{o=0;p=0;q=j;r=l}}else{o=0;p=0;q=j;r=0}}else{o=0;p=0;q=0;r=0}while(0);c[781044]=0;j=qk(a,5)|0;a=c[781030]<<16;l=q-a>>16;q=c[781031]<<16;n=r-q>>16;r=o-a>>16;a=p-q>>16;q=(r|0)<(l|0);p=q?r:l;o=q?l:r;r=(a|0)<(n|0);l=r?a:n;q=r?n:a;a=c[742782]|0;do if(!(c[781044]|0)){n=c[a+28>>2]|0;r=(p|0)>(n|0)?p:n;n=(c[a+32>>2]|0)+-1|0;m=(o|0)<(n|0)?o:n;n=c[a+36>>2]|0;b=(l|0)>(n|0)?l:n;n=(c[a+40>>2]|0)+-1|0;k=(q|0)<(n|0)?q:n;if((m|0)<(r|0)|(k|0)<(b|0))return 0;if((m-r|0)<8&(k-b|0)>4){n=Kk(a,r,b,k,j)|0;if((m|0)<=(r|0)){s=n;break}i=n;n=r;while(1){n=n+1|0;d=(Kk(c[742782]|0,n,b,k,j)|0)+i|0;if((n|0)>=(m|0)){s=d;break}else i=d}}else{i=xk(a,r,m,b,j)|0;if((k|0)<=(b|0)){s=i;break}n=i;i=b;while(1){i=i+1|0;d=(xk(c[742782]|0,r,m,i,j)|0)+n|0;if((i|0)>=(k|0)){s=d;break}else n=d}}}else{n=Ck(a,-1,-1,128,l+-1|0,j)|0;k=(Ck(c[742782]|0,-1,q+1|0,128,128,j)|0)+n|0;n=k+(Ck(c[742782]|0,-1,l,p+-1|0,q,j)|0)|0;s=n+(Ck(c[742782]|0,o+1|0,l,128,q,j)|0)|0}while(0);jh((s|0)/16|0);return 0}function Ti(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=c[742782]|0;if((yd(a)|0)<2)return 0;if(!(Ed(a,1)|0))d=0;else d=(Fd(a,1,0)|0)>>16;if(!(Ed(a,2)|0))e=0;else e=(Fd(a,2,0)|0)>>16;if(!(Ed(a,3)|0))f=0;else f=(Fd(a,3,0)|0)>>16;if(!(Ed(a,4)|0))g=0;else g=(Fd(a,4,0)|0)>>16;if(!(Ed(a,5)|0))h=0;else h=(Fd(a,5,0)|0)>>16;i=pk(a,6,1)|0;a=d-(c[781030]|0)<<16>>16;d=e-(c[781031]|0)<<16>>16;if((f|0)<1|(g|0)<1)return 0;e=((((f|0)<(g|0)?f:g)|0)/2|0)+-1|0;j=(h|0)<(e|0)?h:e;if((j|0)<1){e=a+f+-1|0;h=d+g|0;k=h+-1|0;l=Ik(b,a,d,e,d,i)|0;if((k|0)==(d|0))m=l;else m=(Ik(b,a,k,e,k,i)|0)+l|0;l=k-d|0;k=d+1|0;n=h+-2|0;if((((l|0)<0?0-l|0:l)|0)>1){l=(Ik(b,a,k,a,n,i)|0)+m|0;o=l+(Ik(b,e,k,e,n,i)|0)|0}else o=m;jh((o|0)/2|0);return 0}else{o=j<<1;m=o+2|0;n=-2-o|0;o=Fk(b,a,d,a+m|0,d+m|0,f+-1+n|0,g+-1+n|0,i)|0;n=j+2|0;j=a+n|0;m=a+f|0;f=m-n|0;e=f+-1|0;k=d+n|0;l=d+g|0;g=l-n|0;n=g+-1|0;h=l+-1|0;if((f|0)>(j|0)){f=(Ik(b,j,d,e,d,i)|0)+o|0;p=f+(Ik(b,j,h,e,h,i)|0)|0}else p=o;o=m+-1|0;if((g|0)>(k|0)){g=(Ik(b,a,k,a,n,i)|0)+p|0;q=g+(Ik(b,o,k,o,n,i)|0)|0}else q=p;jh((q|0)/2|0);return 0}return 0}function Ui(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;b=c[742782]|0;if((yd(a)|0)<2)return 0;if(!(Ed(a,1)|0))d=0;else d=(Fd(a,1,0)|0)>>16;if(!(Ed(a,2)|0))e=0;else e=(Fd(a,2,0)|0)>>16;if(!(Ed(a,3)|0))f=0;else f=(Fd(a,3,0)|0)>>16;if(!(Ed(a,4)|0))g=0;else g=(Fd(a,4,0)|0)>>16;if(!(Ed(a,5)|0))h=0;else h=(Fd(a,5,0)|0)>>16;i=d-(c[781030]|0)<<16>>16;d=e-(c[781031]|0)<<16>>16;c[781044]=0;e=pk(a,6,1)|0;if((f|0)<1|(g|0)<1){if(!(c[781044]|0))return 0;jh((Ck(b,0,0,(c[b>>2]|0)+-1|0,(c[b+4>>2]|0)+-1|0,e)|0)/16|0);return 0}a=((((f|0)<(g|0)?f:g)|0)/2|0)+-1|0;j=(h|0)<(a|0)?h:a;a=(c[781044]|0)==0?1:2;if((j|0)>=1){h=j<<1;k=h+2|0;l=-2-h|0;h=f+-1|0;m=Gk(b,i,d,i+k|0,d+k|0,h+l|0,g+-1+l|0,e)|0;l=d+(j+2)|0;k=d+g+(-2-j)|0;if((l|0)<(k|0)){j=h+i|0;h=m;n=l;while(1){l=(Qa[a&3](b,i,j,n,e)|0)+h|0;n=n+1|0;if((n|0)>=(k|0)){o=l;break}else h=l}}else o=m;jh((o|0)/16|0);return 0}o=d+g|0;g=f+-1+i|0;f=0;m=d;do{f=(Qa[a&3](b,i,g,m,e)|0)+f|0;m=m+1|0}while((m|0)<(o|0));if(!(c[781044]|0))p=f;else{m=(Ck(b,-1,-1,c[b>>2]|0,d+-1|0,e)|0)+f|0;p=m+(Ck(b,-1,o,c[b>>2]|0,c[b+4>>2]|0,e)|0)|0}jh((p|0)/16|0);return 0}function Vi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=yd(b)|0;if((d|0)<2)return 0;e=Fd(b,1,0)|0;f=Fd(b,2,0)|0;if((d|0)!=2){d=Fd(b,3,0)|0;if((d|0)<0)return 0;else{g=(a[3152374]&2)==0?0:d>>>15&1;h=d>>16}}else{g=0;h=4}d=pk(b,4,1)|0;b=e-(c[781030]<<16)>>16;e=f-(c[781031]<<16)>>16;f=h+g|0;jh((zk(c[742782]|0,b-h|0,e-h|0,f+b|0,f+e|0,d)|0)/2|0);return 0}function Wi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=yd(b)|0;if((d|0)<2)return 0;e=Fd(b,1,0)|0;f=Fd(b,2,0)|0;c[781044]=0;g=pk(b,4,1)|0;do if((d|0)==2){h=0;i=4}else{j=Fd(b,3,0)|0;if((j|0)>=0){h=(a[3152374]&2)==0?0:j>>>15&1;i=j>>>16;break}if(!(c[781044]|0))return 0;jh((Ck(c[742782]|0,0,0,127,127,g)|0)/16|0);return 0}while(0);b=e-(c[781030]<<16)>>16;e=f-(c[781031]<<16)>>16;f=h+i|0;jh((Ek(c[742782]|0,b-i|0,e-i|0,f+b|0,f+e|0,g)|0)/16|0);return 0}function Xi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=Fd(a,1,0)|0;d=Fd(a,2,0)|0;e=Fd(a,3,0)|0;f=Fd(a,4,0)|0;g=pk(a,5,1)|0;a=c[781030]<<16;h=b-a>>16;b=c[781031]<<16;i=d-b>>16;d=e-a>>16;a=f-b>>16;b=(d|0)<(h|0);f=(a|0)<(i|0);jh((zk(c[742782]|0,b?d:h,f?a:i,b?h:d,f?i:a,g)|0)/2|0);return 0}function Yi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=Fd(a,1,0)|0;d=Fd(a,2,0)|0;e=Fd(a,3,0)|0;f=Fd(a,4,0)|0;c[781044]=0;g=pk(a,5,1)|0;a=c[781030]<<16;h=b-a>>16;b=c[781031]<<16;i=d-b>>16;d=e-a>>16;a=f-b>>16;b=(d|0)<(h|0);f=(a|0)<(i|0);jh((Ek(c[742782]|0,b?d:h,f?a:i,b?h:d,f?i:a,g)|0)/16|0);return 0}function Zi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=(Fd(a,1,0)|0)>>16;d=(Fd(a,2,0)|0)>>16;if(!(yd(a)|0)){c[781041]=1;return 0}if((yd(a)|0)==1){c[781041]=1;pk(a,1,1)|0;return 0}do if((yd(a)|0)<4){if((yd(a)|0)==3)pk(a,3,1)|0;if(!(c[781041]&1)){e=c[781039]|0;f=c[781040]|0;c[781039]=b;c[781040]=d;g=e;h=f;break}c[781039]=b;c[781040]=d;c[781041]=0;return 0}else{f=(Fd(a,3,0)|0)>>16;e=(Fd(a,4,0)|0)>>16;c[781039]=f;c[781040]=e;c[781041]=0;g=f;h=e}while(0);e=pk(a,5,1)|0;a=c[781030]|0;f=b-a<<16>>16;b=c[781031]|0;i=d-b<<16>>16;d=g-a<<16>>16;a=h-b<<16>>16;if((f|0)==(d|0)){jh((Kk(c[742782]|0,f,i,a,e)|0)/16|0);return 0}b=c[742782]|0;if((i|0)==(a|0)){jh((xk(b,f,d,i,e)|0)/16|0);return 0}else{jh((Ik(b,f,i,d,a,e)|0)/2|0);return 0}return 0}function _i(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=c[781045]|0;d=(b|0)==0?13:b;if((yd(a)|0)==1)c[781045]=(Fd(a,1,0)|0)>>16;if((yd(a)|0)<2){Od(a,d<<16);e=1;return e|0}b=Fd(a,1,0)|0;f=Fd(a,2,0)|0;g=Fd(a,3,0)|0;h=Fd(a,4,0)|0;if((yd(a)|0)>4)i=Fd(a,5,0)|0;else i=0;if((yd(a)|0)>5)j=Fd(a,6,0)|0;else j=0;if((yd(a)|0)>6)k=Fd(a,7,0)|0;else k=8192;if((yd(a)|0)>7)l=Fd(a,8,0)|0;else l=0;if((yd(a)|0)>8)m=(Fd(a,9,0)|0)>>16;else m=0;a=c[781030]<<16;n=c[781031]<<16;jh((Jk(c[742782]|0,b-a|0,f-n|0,g-a|0,h-n|0,i,j,k,l,m,d)|0)<<1);e=0;return e|0}function $i(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=yd(a)|0;if((Cd(a,1)|0)==5){if((b|0)>1)d=(Fd(a,2,0)|0)>>16;else d=0;Nd(a);if(!(uf(a,1)|0)){e=0;return e|0}switch(d|0){case 0:{do{if((Cd(a,-2)|0)==3){f=Hd(a,-2,0)|0;g=Hd(a,-1,0)|0;h=3123880+((f&15)<<2)|0;c[h>>2]=c[h>>2]&16|g&15}zd(a,-2);jh(2)}while((uf(a,1)|0)!=0);e=0;return e|0}case 1:{do{if((Cd(a,-2)|0)==3?(g=Hd(a,-2,0)|0,h=Hd(a,-1,0)|0,c[3123944+((g&15)<<2)>>2]=h&255,h&128|0):0)nb();zd(a,-2);jh(2)}while((uf(a,1)|0)!=0);e=0;return e|0}default:{h=(d|0)==2;do{if((Cd(a,-2)|0)==3?(d=Hd(a,-2,0)|0,g=Hd(a,-1,0)|0,h):0)c[3124008+((d&15)<<2)>>2]=g&255;zd(a,-2);jh(2)}while((uf(a,1)|0)!=0);e=0;return e|0}}}if((b|0)>=2){h=(Fd(a,1,0)|0)>>>16;g=Fd(a,2,0)|0;d=g>>16;f=(Fd(a,3,0)|0)>>16;i=h&15;h=d&255;switch(f|0){case 0:{j=3123880+(i<<2)|0;k=c[j>>2]|0;c[j>>2]=k&16|d&15;l=k;break}case 1:{k=3123944+(i<<2)|0;d=c[k>>2]|0;c[k>>2]=h;if(!(g&8388608))l=d;else{nb();l=d}break}case 2:{d=3124008+(i<<2)|0;i=c[d>>2]|0;c[d>>2]=h;l=i;break}default:l=0}i=l<<16;Od(a,(f|0)==0?i&-1114112:i);e=1;return e|0}do if((b|0)==1?(Cd(a,1)|0)==3:0){i=(Fd(a,1,0)|0)>>16;if((i+1|0)>>>0<2){c[780970]=0;if((i|0)==-1){m=37;break}c[780971]=1;c[780972]=2;c[780973]=3;c[780974]=4;c[780975]=5;c[780976]=6;c[780977]=7;c[780978]=8;c[780979]=9;c[780980]=10;c[780981]=11;c[780982]=12;c[780983]=13;c[780984]=14;c[780985]=15;break}switch(i|0){case -1:{c[780986]=0;c[781002]=0;c[780987]=1;c[781003]=1;c[780988]=2;c[781004]=18;c[780989]=3;c[781005]=19;c[780990]=4;c[781006]=36;c[780991]=5;c[781007]=21;c[780992]=6;c[781008]=214;c[780993]=7;c[781009]=103;c[780994]=8;c[781010]=72;c[780995]=9;c[781011]=73;c[780996]=10;c[781012]=154;c[780997]=11;c[781013]=59;c[780998]=12;c[781014]=220;c[780999]=13;c[781015]=93;c[781e3]=14;c[781016]=142;c[781001]=15;c[781017]=239;e=0;return e|0}case 1:{c[780986]=0;c[780987]=1;c[780988]=2;c[780989]=3;c[780990]=4;c[780991]=5;c[780992]=6;c[780993]=7;c[780994]=8;c[780995]=9;c[780996]=10;c[780997]=11;c[780998]=12;c[780999]=13;c[781e3]=14;c[781001]=15;e=0;return e|0}case 2:{c[781002]=0;c[781003]=1;c[781004]=18;c[781005]=19;c[781006]=36;c[781007]=21;c[781008]=214;c[781009]=103;c[781010]=72;c[781011]=73;c[781012]=154;c[781013]=59;c[781014]=220;c[781015]=93;c[781016]=142;c[781017]=239;e=0;return e|0}default:{e=0;return e|0}}}else m=23;while(0);if((m|0)==23){c[780970]=0;m=37}if((m|0)==37){c[780986]=0;c[781002]=0;c[780971]=1;c[780987]=1;c[781003]=1;c[780972]=2;c[780988]=2;c[781004]=18;c[780973]=3;c[780989]=3;c[781005]=19;c[780974]=4;c[780990]=4;c[781006]=36;c[780975]=5;c[780991]=5;c[781007]=21;c[780976]=6;c[780992]=6;c[781008]=214;c[780977]=7;c[780993]=7;c[781009]=103;c[780978]=8;c[780994]=8;c[781010]=72;c[780979]=9;c[780995]=9;c[781011]=73;c[780980]=10;c[780996]=10;c[781012]=154;c[780981]=11;c[780997]=11;c[781013]=59;c[780982]=12;c[780998]=12;c[781014]=220;c[780983]=13;c[780999]=13;c[781015]=93;c[780984]=14;c[781e3]=14;c[781016]=142;c[780985]=15;c[781001]=15;c[781017]=239}c[780970]=16;e=0;return e|0}function aj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;b=yd(a)|0;d=c[780970]|0;e=c[780971]|0;f=c[780972]|0;g=c[780973]|0;h=c[780974]|0;i=c[780975]|0;j=c[780976]|0;k=c[780977]|0;l=c[780978]|0;m=c[780979]|0;n=c[780980]|0;o=c[780981]|0;p=c[780982]|0;q=c[780983]|0;r=c[780984]|0;s=c[780985]|0;t=s>>>4&1|(r>>>3&2|(q>>>2&4|(p>>>1&8|(o&16|(n<<1&32|(m<<2&64|(l<<3&128|(k<<4&256|(j<<5&512|(i<<6&1024|(h<<7&2048|(g<<8&4096|(f<<9&8192|(e<<10&16384|d<<11&32768))))))))))))));if(!b){c[780971]=e&15;c[780972]=f&15;c[780973]=g&15;c[780974]=h&15;c[780975]=i&15;c[780976]=j&15;c[780977]=k&15;c[780978]=l&15;c[780979]=m&15;c[780980]=n&15;c[780981]=o&15;c[780982]=p&15;c[780983]=q&15;c[780984]=r&15;c[780985]=s&15;c[780970]=d&15|16;Od(a,t<<16);return 1}d=Fd(a,1,0)|0;if((b|0)==1){b=c[780970]&15;c[780970]=(d|0)>-1?b:b|16;c[780971]=d>>>26&16|c[780971]&15;c[780972]=d>>>25&16|c[780972]&15;c[780973]=d>>>24&16|c[780973]&15;c[780974]=d>>>23&16|c[780974]&15;c[780975]=d>>>22&16|c[780975]&15;c[780976]=d>>>21&16|c[780976]&15;c[780977]=d>>>20&16|c[780977]&15;c[780978]=d>>>19&16|c[780978]&15;c[780979]=d>>>18&16|c[780979]&15;c[780980]=d>>>17&16|c[780980]&15;c[780981]=d>>>16&16|c[780981]&15;c[780982]=d>>>15&16|c[780982]&15;c[780983]=d>>>14&16|c[780983]&15;c[780984]=d>>>13&16|c[780984]&15;c[780985]=d>>>12&16|c[780985]&15;jh(2);Od(a,t<<16);return 1}else{t=Id(a,2)|0;b=3123880+((d>>>16&15)<<2)|0;d=c[b>>2]|0;s=d&15;c[b>>2]=(t|0)==0?s:s|16;Vd(a,d>>>4&1);return 1}return 0}function bj(a){a=a|0;var b=0,d=0,e=0;b=c[781038]|0;d=b>>>1&32768|b<<16|b>>>3&16384;if(!(yd(a)|0)){e=0;c[781038]=e;Od(a,d);return 1}b=Fd(a,1,0)|0;e=b<<1&65536|b>>>16|b<<3&131072|b<<5&262144;c[781038]=e;Od(a,d);return 1}function cj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;d=Ia;Ia=Ia+80|0;e=d+72|0;f=d+68|0;g=d+16|0;h=d+12|0;i=d+8|0;j=d+4|0;k=d;l=(a[3152374]<<4&255)<<24>>24>>7<<24>>24;m=(Fd(b,1,0)|0)>>16;n=(Fd(b,2,0)|0)>>16;o=Fd(b,3,0)|0;p=Fd(b,4,0)|0;q=a[3152406]|0;r=q<<24>>24>-1?8192:(q&255)<<8;q=a[3152407]|0;s=q<<24>>24==0?256:q&255;q=((r>>>0>32767?65536-r|0:8192)>>>0)/(s>>>0)|0;if((yd(b)|0)>4?(Cd(b,5)|0)!=0:0)t=(Fd(b,5,0)|0)>>16;else t=s;if((yd(b)|0)>5?(Cd(b,6)|0)!=0:0)u=(Fd(b,6,0)|0)>>16;else u=q;if((yd(b)|0)>6)v=(Fd(b,7,0)|0)>>16;else v=0;if((t|0)<1|(u|0)<1){Ia=d;return 0}b=o-(c[781030]<<16)>>16;o=p-(c[781031]<<16)>>16;p=c[(c[781999]|0)+8>>2]|0;q=c[781018]|0;s=c[781019]|0;if((b|0)<(q+-7|0)){r=(q-b|0)/8|0;w=r+m|0;x=(r<<3)+b|0;y=t-r|0}else{w=m;x=b;y=t}if((o|0)<(s+-7|0)){t=(s-o|0)/8|0;z=u-t|0;A=t+n|0;C=(t<<3)+o|0}else{z=u;A=n;C=o}o=((7-q+(c[781020]|0)|0)/8|0)+1|0;q=(o|0)<(y|0)?o:y;y=((7-s+(c[781021]|0)|0)/8|0)+1|0;s=(y|0)<(z|0)?y:z;if((s|0)>0){z=(q|0)>0;y=(v|0)==0;o=g+4|0;n=0;u=0;while(1){a:do if(z){t=u+A|0;b=(u<<3)+C|0;if(y){m=n;r=0;while(1){D=Ih(r+w|0,t)|0;if((D|0)==(l|0))E=m;else{F=(r<<3)+x|0;uk(p,c[742782]|0,D<<3&120,((D|0)/16|0)<<3,F,b,8,8,3123880);c[e>>2]=8;c[f>>2]=8;c[h>>2]=0;c[i>>2]=0;c[j>>2]=F;c[k>>2]=b;c[g>>2]=8;c[o>>2]=8;Vn(g,c[742782]|0,h,i,j,k,e,f);F=c[e>>2]|0;D=c[f>>2]|0;G=B(D,F)|0;E=((D|F|0)<0?0:G)+m|0}r=r+1|0;if((r|0)>=(q|0)){H=E;break a}else m=E}}m=n;r=0;while(1){G=Ih(r+w|0,t)|0;if((G|0)!=(l|0)?(c[(c[781999]|0)+44832+(G<<2)>>2]&v|0)!=0:0){F=(r<<3)+x|0;uk(p,c[742782]|0,G<<3&120,((G|0)/16|0)<<3,F,b,8,8,3123880);c[e>>2]=8;c[f>>2]=8;c[h>>2]=0;c[i>>2]=0;c[j>>2]=F;c[k>>2]=b;c[g>>2]=8;c[o>>2]=8;Vn(g,c[742782]|0,h,i,j,k,e,f);F=c[e>>2]|0;G=c[f>>2]|0;D=B(G,F)|0;I=((G|F|0)<0?0:D)+m|0}else I=m;r=r+1|0;if((r|0)>=(q|0)){H=I;break}else m=I}}else H=n;while(0);u=u+1|0;if((u|0)>=(s|0)){J=H;break}else n=H}}else J=0;jh(J);Ia=d;return 0}function dj(a){a=a|0;var b=0;b=(Fd(a,1,0)|0)>>16;Od(a,(Ih(b,(Fd(a,2,0)|0)>>16)|0)<<16);return 1}function ej(a){a=a|0;var b=0,c=0;b=(Fd(a,1,0)|0)>>16;c=(Fd(a,2,0)|0)>>16;Jh(b,c,(Fd(a,3,0)|0)>>>16&255);return 0}function fj(a){a=a|0;var b=0,d=0,e=0,f=0;if(!(yd(a)|0)){b=0;return b|0}d=Fd(a,1,0)|0;e=d>>16;if((yd(a)|0)==1){if(d>>>0>16777215)f=0;else f=c[(c[781999]|0)+44832+(e<<2)>>2]<<16&16711680;Od(a,f);b=1;return b|0}f=Fd(a,2,0)|0;if(d>>>0>16777215){Vd(a,0);b=1;return b|0}if(f>>>0>524287){Vd(a,0);b=1;return b|0}else{Vd(a,(c[(c[781999]|0)+44832+(e<<2)>>2]&1<<(f>>16)|0)!=0&1);b=1;return b|0}return 0}function gj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=yd(a)|0;if((b|0)<2)return 0;d=Fd(a,1,0)|0;e=d>>16;f=Fd(a,2,0)|0;g=f>>16;if(d>>>0>16777215)return 0;if((b|0)==2){c[(c[781999]|0)+44832+(e<<2)>>2]=g&255;return 0}b=Id(a,3)|0;if(f>>>0>524287)return 0;f=1<<g;g=(c[781999]|0)+44832+(e<<2)|0;e=(f&255^255)&c[g>>2];c[g>>2]=e;if(!b)return 0;c[g>>2]=e|f;return 0}function hj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Fd(b,1,0)|0;e=d>>16;f=Fd(b,2,0)|0;g=f>>16;if(a[3152374]&16?(f|0)>8388607|((d|0)>8388607|(f|d|0)<0):0){h=($k(2971096,c[781999]|0,24409)|0)<<16;Od(b,h);return 1}h=(ao(c[(c[781999]|0)+8>>2]|0,e,g)|0)<<16&983040;Od(b,h);return 1}function ij(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[781022]|0;d=Fd(a,1,0)|0;e=Fd(a,2,0)|0;if((yd(a)|0)>2)f=(Fd(a,3,0)|0)>>16;else f=b;b=f&15;if((e|0)>8388607|((d|0)>8388607|(e|d|0)<0))return 0;f=(e>>16<<6)+((d>>16|0)/2|0)|0;e=$k(2971096,c[781999]|0,f)|0;if(!(d&65536))g=e&240|b;else g=e&15|b<<4;_k(2971096,c[781999]|0,f,g);return 0}function jj(a){a=a|0;var b=0,d=0,e=0,f=0;jh(4);if((c[780901]|0)==0&(c[554964]|0)!=0){lr(0,0);or();c[554964]=0}b=c[781999]|0;d=(Fd(a,1,0)|0)>>16;if((yd(a)|0)>1)e=(Fd(a,2,0)|0)>>16;else e=0;if((yd(a)|0)>2)f=(Fd(a,3,0)|0)>>16;else f=0;if((d|0)==-1){lr(0,e);return 0}else{a=(d|0)<63?d:63;fr(b,(a|0)>0?a:0,e);c[781381]=f;return 0}return 0}function kj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;jh(4);if((c[780901]|0)==0&(c[554964]|0)!=0){lr(0,0);or();c[554964]=0}if((yd(a)|0)<1){b=0;return b|0}d=Fd(a,1,0)|0;e=d>>16;if((yd(a)|0)>1){f=Fd(a,2,0)|0;if((f+131072|0)>>>0>393215){b=0;return b|0}else g=f>>16}else g=-1;if((yd(a)|0)>2)h=(Fd(a,3,0)|0)>>16;else h=0;if((yd(a)|0)>3)i=(Fd(a,4,0)|0)>>16;else i=0;if((e|0)==-1){Od(a,(Zq(0,0,0,c[781999]|0,(g|0)==-2?-1:g)|0)<<16);b=1;return b|0}f=(g|0)==-2;if((e|0)==-2){dr(f?-1:g);b=0;return b|0}if(!f){f=(e|0)<63?e:63;j=(f|0)>0?f:0;f=(h|0)<31?h:31;$q((c[781999]|0)+16+(j*680|0)|0);h=c[781999]|0;Od(a,(Zq(h+16+(j*680|0)|0,(f|0)>0?f:0,i,h,g)|0)<<16);b=1;return b|0}if(d>>>0>=4194304){b=0;return b|0}$q((c[781999]|0)+16+(e*680|0)|0);b=0;return b|0}function lj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=(Fd(a,1,0)|0)>>16;if((yd(a)|0)==2?(Cd(a,2)|0)==4:0){c=Jd(a,2,0)|0;if(!c){d=0;return d|0}if((bu(c)|0)>>>0>256){d=0;return d|0}pn(b,c);d=0;return d|0}c=(Fd(a,2,0)|0)>>16;e=(Fd(a,3,0)|0)>>13;if((yd(a)|0)>3){f=Fd(a,4,0)|0;if((f|0)>65535){g=f>>16;h=8}else i=0}else{g=1;h=8}if((h|0)==8){h=0;f=0;while(1){j=(on(b,c,e)|0)+h|0;f=f+1|0;if((f|0)==(g|0)){i=j;break}else h=j}}jh((i|0)/64|0);Od(a,i<<13);d=1;return d|0}function mj(a){a=a|0;var b=0,d=0,e=0;b=(Fd(a,1,0)|0)>>16;d=(Fd(a,2,0)|0)>>16;e=Fd(a,3,0)|0;a=e>>16;if((e|0)<65536|(b|0)==(d|0))return 0;cl(2971096,c[781999]|0,b,d,a);jh((a+1|0)/4|0);return 0}function nj(a){a=a|0;var b=0,d=0,e=0;b=Fd(a,1,0)|0;d=Fd(a,2,0)|0;e=Fd(a,3,0)|0;a=e>>16;if((e|0)<65536)return 0;dl(2971096,c[781999]|0,b>>16,d>>16,a);jh((a+1|0)/4|0);return 0}function oj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=Ia;Ia=Ia+1040|0;e=d+1032|0;f=d+1024|0;g=d+1036|0;h=d;if((yd(b)|0)>2){i=(Fd(b,1,0)|0)>>16;j=(Fd(b,2,0)|0)>>16;k=(Fd(b,3,0)|0)>>16;l=((k|0)<4096?k:4096)<<3;m=i;n=j;o=k}else{l=32768;m=0;n=0;o=17152}jh(l);if((yd(b)|0)==4?(Cd(b,4)|0)==4:0){l=Jd(b,4,g)|0;if((l|0)==0|(c[g>>2]|0)>>>0>512){Od(b,0);p=1;Ia=d;return p|0}if((a[l>>0]|0)==95?(a[l+1>>0]|0)==95:0){Od(b,0);p=1;Ia=d;return p|0}a[h>>0]=0;do if(!(kc(l,1)|0)){ds(61830,h);g=(a[l>>0]|0)==47?l+1|0:l;if((a[g>>0]|0)==47){p=0;Ia=d;return p|0}if(!(bv(g,96845)|0)){lu(h,g)|0;break}else{p=0;Ia=d;return p|0}}else{Ss(h,$b(kc(l,1)|0)|0,1023)|0;g=h+1023|0;a[g>>0]=0;k=Po(h,104528)|0;if(!k){c[f>>2]=h;wt(1715360,61838,f)|0;Cn(1715360);c[e>>2]=l;wt(1715360,61875,e)|0;Cn(1715360);Ss(h,l,1023)|0;a[g>>0]=0}Ro(k)}while(0);if(!(cc(h,m,n,o)|0)){Od(b,o<<16);p=1;Ia=d;return p|0}else{Od(b,0);p=1;Ia=d;return p|0}}el(2971096,c[781999]|0,m,n,o);Od(b,o<<16);p=1;Ia=d;return p|0}function pj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=Ia;Ia=Ia+1040|0;e=d;f=d+1024|0;if((yd(b)|0)>2){g=(Fd(b,1,0)|0)>>16;h=(Fd(b,2,0)|0)>>16;i=(Fd(b,3,0)|0)>>16;j=((i|0)<4096?i:4096)<<6;k=i;l=g;m=h}else{j=262144;k=17152;l=0;m=0}jh(j);do if((yd(b)|0)>3?(Cd(b,4)|0)==4:0){j=Jd(b,4,f)|0;if((j|0)==0|(c[f>>2]|0)>>>0>512){Od(b,0);n=1;Ia=d;return n|0}if((a[j>>0]|0)==95?(a[j+1>>0]|0)==95:0){Od(b,0);n=1;Ia=d;return n|0}if(kc(j,1)|0){Ss(e,$b(kc(j,1)|0)|0,1023)|0;a[e+1023>>0]=0;o=0;p=1;break}ds(61830,e);h=(a[j>>0]|0)==47?j+1|0:j;if((a[h>>0]|0)==47){n=0;Ia=d;return n|0}if(!(bv(h,96845)|0)){lu(e,h)|0;o=0;p=0;break}else{n=0;Ia=d;return n|0}}else q=15;while(0);if((q|0)==15){Ss(e,$b(3119792)|0,1023)|0;a[e+1023>>0]=0;o=1;p=1}if(!(dc(e,l,m,k,o,p)|0)){Od(b,k<<16);n=1;Ia=d;return n|0}else{Od(b,0);n=1;Ia=d;return n|0}return 0}function qj(a){a=a|0;var b=0,c=0;if((Cd(a,1)|0)==5){Od(a,((Al((Ld(a,1)|0)<<8)|0)>>>8<<16)+65536|0);Xd(a,-2);jh(4);return 1}if((yd(a)|0)>0)b=Fd(a,1,0)|0;else b=65536;c=Al(b)|0;jh(4);Od(a,c);return 1}function rj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[a+112>>2]|0;do if((b|0)>0){d=c[a+8>>2]|0;e=0-b|0;f=d+(e<<3)|0;if((c[d+(e<<3)+4>>2]|0)==3){g=c[f>>2]|0;break}else{g=Gd(f)|0;break}}else g=0;while(0);zl(g&2147483647);return 0}function sj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[a+112>>2]|0;c[554353]=(c[554353]|0)-b;do if((b|0)>0){d=c[a+8>>2]|0;e=0-b|0;f=d+(e<<3)|0;if((c[d+(e<<3)+4>>2]|0)==3){g=c[f>>2]|0;break}else{g=Gd(f)|0;break}}else g=0;while(0);return g+65535&-65536|0}function tj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[a+112>>2]|0;do if((b|0)>0){d=c[a+8>>2]|0;e=0-b|0;f=d+(e<<3)|0;if((c[d+(e<<3)+4>>2]|0)==3){g=c[f>>2]|0;break}else{g=Gd(f)|0;break}}else g=0;while(0);return g>>31&-131072|65536|0}function uj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[a+112>>2]|0;if((b|0)>0){d=c[a+8>>2]|0;a=0-b|0;b=d+(a<<3)|0;if((c[d+(a<<3)+4>>2]|0)==3)e=c[b>>2]|0;else e=Gd(b)|0;if((e|0)==-2147483648){f=2147483647;return f|0}else g=(e|0)<0?0-e|0:e}else g=0;f=g;return f|0}function vj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=a+112|0;d=c[b>>2]|0;if((d|0)<=0){e=0;return e|0}f=a+8|0;a=c[f>>2]|0;g=0-d|0;h=a+(g<<3)|0;if((c[a+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{d=Gd(h)|0;i=c[b>>2]|0;j=d}do if((i|0)>1){d=(c[f>>2]|0)+(0-i<<3)+8|0;if((c[d+4>>2]|0)==3){k=i;l=c[d>>2]|0}else{h=Gd(d)|0;k=c[b>>2]|0;l=h}if((k|0)>2){h=(c[f>>2]|0)+(0-k<<3)+16|0;if((c[h+4>>2]|0)==3){m=l;n=c[h>>2]|0;break}else{m=l;n=Gd(h)|0;break}}else{m=l;n=0}}else{m=0;n=0}while(0);l=(j|0)<(m|0);k=(j|0)<(n|0);if(l&k){e=(m|0)<(n|0)?m:n;return e|0}if(!((m|0)<(j|0)&(m|0)<(n|0)))return (l?j:m)|0;e=k?j:n;return e|0}function wj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[a+112>>2]|0;do if((b|0)>0){d=c[a+8>>2]|0;e=0-b|0;f=d+(e<<3)|0;if((c[d+(e<<3)+4>>2]|0)==3){g=c[f>>2]|0;break}else{g=Gd(f)|0;break}}else g=0;while(0);return up(g)|0}function xj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[a+112>>2]|0;do if((b|0)>0){d=c[a+8>>2]|0;e=0-b|0;f=d+(e<<3)|0;if((c[d+(e<<3)+4>>2]|0)==3){g=c[f>>2]|0;break}else{g=Gd(f)|0;break}}else g=0;while(0);return vp(g)|0}function yj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;jh(6);b=c[a+112>>2]|0;do if((b|0)>0){d=c[a+8>>2]|0;e=0-b|0;f=d+(e<<3)|0;if((c[d+(e<<3)+4>>2]|0)==3){g=c[f>>2]|0;break}else{g=Gd(f)|0;break}}else g=0;while(0);return vl(g)|0}function zj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;do if((d|0)>0){e=a+8|0;f=c[e>>2]|0;g=0-d|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{g=Gd(h)|0;i=c[b>>2]|0;j=g}if((i|0)>1){g=(c[e>>2]|0)+(0-i<<3)+8|0;if((c[g+4>>2]|0)==3){k=c[g>>2]|0;l=j;break}else{k=Gd(g)|0;l=j;break}}else{k=0;l=j}}else{k=0;l=0}while(0);return wl(l,k)|0}function Aj(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+112>>2]|0;c[554353]=(c[554353]|0)-b;if((b|0)<=0){d=0;e=~d;return e|0}f=c[a+8>>2]|0;a=0-b|0;b=f+(a<<3)|0;if((c[f+(a<<3)+4>>2]|0)==3){d=c[b>>2]|0;e=~d;return e|0}else{d=Gd(b)|0;e=~d;return e|0}return 0}function Bj(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+112>>2]|0;c[554353]=(c[554353]|0)-b;if((b|0)<=0){d=0;e=d&-65536;return e|0}f=c[a+8>>2]|0;a=0-b|0;b=f+(a<<3)|0;if((c[f+(a<<3)+4>>2]|0)==3){d=c[b>>2]|0;e=d&-65536;return e|0}else{d=Gd(b)|0;e=d&-65536;return e|0}return 0}function Cj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;c[554353]=(c[554353]|0)-d;if((d|0)<=0){e=0;f=0;g=e&f;return g|0}h=a+8|0;a=c[h>>2]|0;i=0-d|0;j=a+(i<<3)|0;if((c[a+(i<<3)+4>>2]|0)==3){k=d;l=c[j>>2]|0}else{d=Gd(j)|0;k=c[b>>2]|0;l=d}if((k|0)<=1){e=0;f=l;g=e&f;return g|0}d=(c[h>>2]|0)+(0-k<<3)+8|0;if((c[d+4>>2]|0)==3){e=c[d>>2]|0;f=l;g=e&f;return g|0}else{e=Gd(d)|0;f=l;g=e&f;return g|0}return 0}function Dj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;c[554353]=(c[554353]|0)-d;if((d|0)<=0){e=0;f=0;g=e|f;return g|0}h=a+8|0;a=c[h>>2]|0;i=0-d|0;j=a+(i<<3)|0;if((c[a+(i<<3)+4>>2]|0)==3){k=d;l=c[j>>2]|0}else{d=Gd(j)|0;k=c[b>>2]|0;l=d}if((k|0)<=1){e=0;f=l;g=e|f;return g|0}d=(c[h>>2]|0)+(0-k<<3)+8|0;if((c[d+4>>2]|0)==3){e=c[d>>2]|0;f=l;g=e|f;return g|0}else{e=Gd(d)|0;f=l;g=e|f;return g|0}return 0}function Ej(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;c[554353]=(c[554353]|0)-d;if((d|0)<=0){e=0;f=0;g=e^f;return g|0}h=a+8|0;a=c[h>>2]|0;i=0-d|0;j=a+(i<<3)|0;if((c[a+(i<<3)+4>>2]|0)==3){k=d;l=c[j>>2]|0}else{d=Gd(j)|0;k=c[b>>2]|0;l=d}if((k|0)<=1){e=0;f=l;g=e^f;return g|0}d=(c[h>>2]|0)+(0-k<<3)+8|0;if((c[d+4>>2]|0)==3){e=c[d>>2]|0;f=l;g=e^f;return g|0}else{e=Gd(d)|0;f=l;g=e^f;return g|0}return 0}function Fj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;c[554353]=(c[554353]|0)-d;do if((d|0)>0){e=a+8|0;f=c[e>>2]|0;g=0-d|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{g=Gd(h)|0;i=c[b>>2]|0;j=g}if((i|0)>1){g=(c[e>>2]|0)+(0-i<<3)+8|0;if((c[g+4>>2]|0)==3){k=c[g>>2]|0;l=j;break}else{k=Gd(g)|0;l=j;break}}else{k=0;l=j}}else{k=0;l=0}while(0);return El(l,k)|0}function Gj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;c[554353]=(c[554353]|0)-d;do if((d|0)>0){e=a+8|0;f=c[e>>2]|0;g=0-d|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{g=Gd(h)|0;i=c[b>>2]|0;j=g}if((i|0)>1){g=(c[e>>2]|0)+(0-i<<3)+8|0;if((c[g+4>>2]|0)==3){k=c[g>>2]|0;l=j;break}else{k=Gd(g)|0;l=j;break}}else{k=0;l=j}}else{k=0;l=0}while(0);return Fl(l,k)|0}function Hj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;c[554353]=(c[554353]|0)-d;do if((d|0)>0){e=a+8|0;f=c[e>>2]|0;g=0-d|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{g=Gd(h)|0;i=c[b>>2]|0;j=g}if((i|0)>1){g=(c[e>>2]|0)+(0-i<<3)+8|0;if((c[g+4>>2]|0)==3){k=c[g>>2]|0;l=j;break}else{k=Gd(g)|0;l=j;break}}else{k=0;l=j}}else{k=0;l=0}while(0);return Dl(l,k)|0}function Ij(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;c[554353]=(c[554353]|0)-d;do if((d|0)>0){e=a+8|0;f=c[e>>2]|0;g=0-d|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{g=Gd(h)|0;i=c[b>>2]|0;j=g}if((i|0)>1){g=(c[e>>2]|0)+(0-i<<3)+8|0;if((c[g+4>>2]|0)==3){k=c[g>>2]|0;l=j;break}else{k=Gd(g)|0;l=j;break}}else{k=0;l=j}}else{k=0;l=0}while(0);return Bl(l,k)|0}function Jj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;c[554353]=(c[554353]|0)-d;do if((d|0)>0){e=a+8|0;f=c[e>>2]|0;g=0-d|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{g=Gd(h)|0;i=c[b>>2]|0;j=g}if((i|0)>1){g=(c[e>>2]|0)+(0-i<<3)+8|0;if((c[g+4>>2]|0)==3){k=c[g>>2]|0;l=j;break}else{k=Gd(g)|0;l=j;break}}else{k=0;l=j}}else{k=0;l=0}while(0);return Cl(l,k)|0}function Kj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;if((d|0)<=0){e=0;return e|0}f=a+8|0;a=c[f>>2]|0;g=0-d|0;h=a+(g<<3)|0;if((c[a+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{d=Gd(h)|0;i=c[b>>2]|0;j=d}do if((i|0)>1){d=(c[f>>2]|0)+(0-i<<3)+8|0;if((c[d+4>>2]|0)==3){k=i;l=c[d>>2]|0;break}else{h=Gd(d)|0;k=c[b>>2]|0;l=h;break}}else{k=i;l=0}while(0);if((j|0)<(l|0)){if((k|0)<=0){e=0;return e|0}l=c[f>>2]|0;j=0-k|0;i=l+(j<<3)|0;if((c[l+(j<<3)+4>>2]|0)==3){e=c[i>>2]|0;return e|0}else{e=Gd(i)|0;return e|0}}else{if((k|0)<=1){e=0;return e|0}i=(c[f>>2]|0)+(0-k<<3)+8|0;if((c[i+4>>2]|0)==3){e=c[i>>2]|0;return e|0}else{e=Gd(i)|0;return e|0}}return 0}function Lj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;b=a+112|0;d=c[b>>2]|0;if((d|0)<=0){e=0;return e|0}f=a+8|0;a=c[f>>2]|0;g=0-d|0;h=a+(g<<3)|0;if((c[a+(g<<3)+4>>2]|0)==3){i=d;j=c[h>>2]|0}else{d=Gd(h)|0;i=c[b>>2]|0;j=d}do if((i|0)>1){d=(c[f>>2]|0)+(0-i<<3)+8|0;if((c[d+4>>2]|0)==3){k=i;l=c[d>>2]|0;break}else{h=Gd(d)|0;k=c[b>>2]|0;l=h;break}}else{k=i;l=0}while(0);if((j|0)>(l|0)){if((k|0)<=0){e=0;return e|0}l=c[f>>2]|0;j=0-k|0;i=l+(j<<3)|0;if((c[l+(j<<3)+4>>2]|0)==3){e=c[i>>2]|0;return e|0}else{e=Gd(i)|0;return e|0}}else{if((k|0)<=1){e=0;return e|0}i=(c[f>>2]|0)+(0-k<<3)+8|0;if((c[i+4>>2]|0)==3){e=c[i>>2]|0;return e|0}else{e=Gd(i)|0;return e|0}}return 0}function Mj(a){a=a|0;var b=0,d=0,e=0,f=0;if((yd(a)|0)>0)c[554353]=(c[554353]|0)+-2;if((yd(a)|0)>1){b=Fd(a,2,0)|0;if((b|0)<2147418112)if((b|0)<65536){d=0;return d|0}else e=b>>16;else e=32767}else e=1;b=(Fd(a,1,0)|0)>>16;if(!(vc(a,e)|0)){Cb(61808)|0;d=0;return d|0}if((e|0)>0){f=0;do{Od(a,($k(2971096,c[781999]|0,f+b|0)|0)<<16);f=f+1|0}while((f|0)!=(e|0))}jh(e+-1|0);d=e;return d|0}function Nj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;if((yd(a)|0)>0)c[554353]=(c[554353]|0)+-2;if((yd(a)|0)>1){b=Fd(a,2,0)|0;if((b|0)<2147418112)if((b|0)<65536){d=0;return d|0}else e=b>>16;else e=32767}else e=1;b=(Fd(a,1,0)|0)>>16;if(!(vc(a,e)|0)){Cb(61808)|0;d=0;return d|0}if((e|0)>0){f=0;do{g=(f<<1)+b|0;h=($k(2971096,c[781999]|0,g)|0)<<16;Od(a,(($k(2971096,c[781999]|0,g+1|0)|0)<<24)+h|0);f=f+1|0}while((f|0)!=(e|0))}jh(e+-1|0);d=e;return d|0}function Oj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;if((yd(a)|0)>0)c[554353]=(c[554353]|0)+-2;if((yd(a)|0)>1){b=Fd(a,2,0)|0;if((b|0)<2147418112)if((b|0)<65536){d=0;return d|0}else e=b>>16;else e=32767}else e=1;b=(Fd(a,1,0)|0)>>16;if(!(vc(a,e)|0)){Cb(61808)|0;d=0;return d|0}if((e|0)>0){f=0;do{g=(f<<2)+b|0;h=$k(2971096,c[781999]|0,g)|0;i=(($k(2971096,c[781999]|0,g+1|0)|0)<<8)+h|0;h=i+(($k(2971096,c[781999]|0,g+2|0)|0)<<16)|0;Od(a,h+(($k(2971096,c[781999]|0,g+3|0)|0)<<24)|0);f=f+1|0}while((f|0)!=(e|0))}jh(e+-1|0);d=e;return d|0}function Pj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=b+112|0;e=c[d>>2]|0;do if((e|0)>0){f=c[b+8>>2]|0;g=0-e|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=e;j=c[h>>2]|0;break}else{g=Gd(h)|0;i=c[d>>2]|0;j=g;break}}else{i=e;j=0}while(0);e=j>>16;j=(i|0)<2?1:(i|0)<32768?i+-1|0:32767;if((i|0)>1)c[554353]=(c[554353]|0)+-2;if((j|0)<=0){k=j+-1|0;jh(k);return 0}g=b+8|0;b=i;i=0;while(1){h=i+1|0;do if((b|0)>(h|0)){f=(c[g>>2]|0)+(0-b<<3)+(h<<3)|0;if((c[f+4>>2]|0)==3){l=c[f>>2]|0;break}else{l=Gd(f)|0;break}}else l=0;while(0);f=l>>16;m=i+e|0;if((m&-8192|0)==24576){n=m+-24576|0;o=n>>6;p=n<<1&126;a[(c[(c[(c[742782]|0)+16>>2]|0)+(o<<2)>>2]|0)+p>>0]=f&15;a[(c[(c[(c[742782]|0)+16>>2]|0)+(o<<2)>>2]|0)+(p|1)>>0]=l>>>20&15}else _k(2971096,c[781999]|0,m,f);if((h|0)==(j|0))break;b=c[d>>2]|0;i=h}k=j+-1|0;jh(k);return 0}function Qj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=b+112|0;e=c[d>>2]|0;do if((e|0)>0){f=c[b+8>>2]|0;g=0-e|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=e;j=c[h>>2]|0;break}else{g=Gd(h)|0;i=c[d>>2]|0;j=g;break}}else{i=e;j=0}while(0);e=j>>16;j=(i|0)<2?1:(i|0)<32768?i+-1|0:32767;if((i|0)>1)c[554353]=(c[554353]|0)+-2;if((j|0)<=0){k=j+-1|0;jh(k);return 0}g=b+8|0;b=i;i=0;while(1){h=i+1|0;do if((b|0)>(h|0)){f=(c[g>>2]|0)+(0-b<<3)+(h<<3)|0;if((c[f+4>>2]|0)==3){l=c[f>>2]|0;break}else{l=Gd(f)|0;break}}else l=0;while(0);f=l>>16;m=(i<<1)+e|0;if((m+-24576|0)>>>0<8191){n=(c[(c[742782]|0)+12>>2]|0)+((m<<1)+-49152)|0;a[n>>0]=f&15;o=n+1|0;a[o>>0]=f>>>4&15;n=o+1|0;a[n>>0]=f>>>8&15;a[n+1>>0]=f>>>12&15}else{_k(2971096,c[781999]|0,m,f&255);_k(2971096,c[781999]|0,m+1|0,f>>>8&255)}if((h|0)==(j|0))break;b=c[d>>2]|0;i=h}k=j+-1|0;jh(k);return 0}function Rj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=b+112|0;e=c[d>>2]|0;do if((e|0)>0){f=c[b+8>>2]|0;g=0-e|0;h=f+(g<<3)|0;if((c[f+(g<<3)+4>>2]|0)==3){i=e;j=c[h>>2]|0;break}else{g=Gd(h)|0;i=c[d>>2]|0;j=g;break}}else{i=e;j=0}while(0);e=j>>16;j=(i|0)<2?1:(i|0)<32768?i+-1|0:32767;if((i|0)>1)c[554353]=(c[554353]|0)+-2;if((j|0)<=0){k=j+-1|0;jh(k);return 0}g=b+8|0;b=i;i=0;while(1){h=i+1|0;do if((b|0)>(h|0)){f=(c[g>>2]|0)+(0-b<<3)+(h<<3)|0;if((c[f+4>>2]|0)==3){l=c[f>>2]|0;break}else{l=Gd(f)|0;break}}else l=0;while(0);f=(i<<2)+e|0;if((f+-24576|0)>>>0<8189){m=(c[(c[742782]|0)+12>>2]|0)+((f<<1)+-49152)|0;a[m>>0]=l&15;n=m+1|0;a[n>>0]=l>>>4&15;m=n+1|0;a[m>>0]=l>>>8&15;n=m+1|0;a[n>>0]=l>>>12&15;m=n+1|0;a[m>>0]=l>>>16&15;n=m+1|0;a[n>>0]=l>>>20&15;m=n+1|0;a[m>>0]=l>>>24&15;a[m+1>>0]=l>>>28}else{_k(2971096,c[781999]|0,f,l&255);_k(2971096,c[781999]|0,f+1|0,l>>>8&255);_k(2971096,c[781999]|0,f+2|0,l>>>16&255);_k(2971096,c[781999]|0,f+3|0,l>>>24)}if((h|0)==(j|0))break;b=c[d>>2]|0;i=h}k=j+-1|0;jh(k);return 0}function Sj(a){a=a|0;var b=0,d=0;b=c[742775]|0;d=Rv(b|0,((b|0)<0)<<31>>31|0,16)|0;b=Lv(d|0,G()|0,60,0)|0;G()|0;Od(a,b);return 1}function Tj(a){a=a|0;if(!(c[554381]|0))fb(61775,2e3);c[554381]=1;Nd(a);Od(a,0);return 2}function Uj(a){a=a|0;return 0}function Vj(a){a=a|0;c[798462]=1;ok(a,0);return 1}function Wj(a){a=a|0;c[798462]=1;ok(a,1);return 1}function Xj(b){b=b|0;var c=0,d=0;c=Fd(b,1,0)|0;d=c>>>16&255;if((d+-1|0)>>>0>4)return 0;a[3127988+d>>0]=c>>>24;c=Jd(b,2,0)|0;if(c|0?(bu(c)|0)>>>0<=63:0){Ss(3127598+(d<<6)|0,c,63)|0;a[3127598+(d<<6)+63>>0]=0;return 0}a[3127598+(d<<6)>>0]=0;return 0}function Yj(a){a=a|0;var b=0,d=0,e=0,f=0;b=Ia;Ia=Ia+16|0;d=b;c[d>>2]=255;if((yd(a)|0)<=0){e=0;Ia=b;return e|0}f=Jd(a,1,d)|0;if((f|0)==0|(c[d>>2]|0)>>>0>64){e=0;Ia=b;return e|0}d=am(f)|0;jh(32);Vd(a,(d|0)==0&1);e=1;Ia=b;return e|0}function Zj(b){b=b|0;var d=0,e=0;d=Fd(b,1,0)|0;if(!(a[3120180]|0)){Cb(61745)|0;e=0;return e|0}if(d>>>0>4194303){Od(b,0);e=1;return e|0}else{Od(b,c[3120248+(d>>16<<2)>>2]|0);e=1;return e|0}return 0}function _j(b){b=b|0;var d=0,e=0;d=Fd(b,1,0)|0;e=Fd(b,2,0)|0;if(!(a[3120180]|0)){Cb(61715)|0;return 0}if(d>>>0>4194303)return 0;b=3120248+(d>>16<<2)|0;if((c[b>>2]|0)!=(e|0))c[798463]=1;c[b>>2]=e;return 0}function $j(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=Ia;Ia=Ia+112|0;e=d+64|0;f=d+108|0;g=d+104|0;h=d+100|0;i=d+72|0;j=d;jh(16);a:do if((yd(b)|0)>0){k=(Fd(b,1,0)|0)>>16;switch(k|0){case 1:{l=4;break a;break}case 0:{sf(c[554360]|0,2,0)|0;m=(c[798390]|0)+(c[781046]|0)|0;n=((m|0)<2097152?m:2097152)<<6;o=(n|0)>0?n:0;p=0;l=15;break a;break}case 2:{q=Wg(Qg(1)|0)|0;r=2;l=85;break a;break}default:{n=(k|0)==3?c[798931]<<16:0;switch(k|0){case 5:{q=2818048;r=k;l=85;break a;break}case 4:{qs();m=c[485560]|0;if(!m){Pd(b,3196396,0)|0;Ia=d;return 1}else{s=xq((bu(m)|0)+16|0)|0;Ls(c[485560]|0,s)|0;Pd(b,s,bu(s)|0)|0;zq(s);Ia=d;return 1}break}case 6:{s=bu(3125548)|0;Pd(b,3125548,s>>>0<1024?s:1024)|0;Ia=d;return 1}case 7:{q=c[798454]<<16;r=7;l=85;break a;break}case 9:{q=(Cr()|0)<<16;r=9;l=85;break a;break}case 11:{q=(Ok()|0)<<16;r=11;l=85;break a;break}case 13:{vb();q=4128768-((((c[485556]<<3)+8|0)/2|0)<<16)|0;r=13;l=85;break a;break}default:{o=n;p=k;l=15;break a}}}}}else l=4;while(0);if((l|0)==4){o=Wg(Qg(0)|0)|0;p=1;l=15}b:do if((l|0)==15)switch(p|0){case 12:{q=1507328;r=p;l=85;break b;break}case 14:{q=6815744;r=p;l=85;break b;break}case 15:{vb();t=((((c[485556]<<3)+8|0)/2|0)<<16)+4194304|0;break b;break}default:{k=(p|0)==10?c[798392]<<16:(p|0)==8?c[798455]<<16:o;if((p+-16|0)>>>0<11)u=bi(p)|0;else u=k;if((p+-46|0)>>>0<11){k=bi(p)|0;if((k|0)==-65536)v=bi(p+-30|0)|0;else v=k}else if((p|0)==29){t=_r()|0;break b}else v=u;k=(p|0)==30;n=(p|0)==31;s=(p|0)==28;switch(p|0){case 28:case 30:case 31:{if(!(($k(2971096,c[781999]|0,24365)|0)&1)){if(k)Vd(b,0);if(n)Pd(b,3196396,0)|0;if(!s){Ia=d;return 1}Vd(b,0);Ia=d;return 1}qs();if((a[3120504]|0)!=0&(c[780901]|0)!=0|(c[484611]|0)!=0){if(!(c[798389]|0))fb(61568,2e3);c[798389]=1}if(s)if((Cd(b,2)|0)==3){Vd(b,(qo((Fd(b,2,0)|0)>>16)|0)!=0&1);Ia=d;return 1}else{Od(b,0);Ia=d;return 1}if(k){Vd(b,(c[798930]|0)>0&1);Ia=d;return 1}if(n){if(!(c[798930]|0)){Pd(b,3196396,0)|0;Ia=d;return 1}Pd(b,3195464,1)|0;n=0;do{k=n;n=n+1|0;a[3195464+k>>0]=a[3195464+n>>0]|0}while((n|0)!=255);c[798930]=(c[798930]|0)+-1;Ia=d;return 1}else w=v;break}default:if((p+-32|0)>>>0<9?(($k(2971096,c[781999]|0,24365)|0)&1|0)!=0:0){if((a[3120504]|0)!=0&(c[780901]|0)!=0|(c[484611]|0)!=0){if(!(c[798389]|0))fb(61592,2e3);c[798389]=1}cs(f,g,h);n=(p|0)==36?c[781304]|0:(p|0)==35?c[781303]|0:(p|0)==34?c[h>>2]|0:(p|0)==33?c[g>>2]|0:(p|0)==32?c[f>>2]|0:v;if(!(($k(2971096,c[781999]|0,24365)|0)&4))x=n;else x=(p|0)==39?c[781306]|0:(p|0)==38?c[781305]|0:n;w=x<<16}else w=v}switch(p|0){case 37:{n=c[781042]<<16;c[781042]=0;t=n;break b;break}case 57:{Vd(b,(nr()|0)!=0&1);Ia=d;return 1}default:{if((p&-8|0)==64){Nd(b);Ia=d;return 1}do if((p+-80|0)>>>0>=6){if((p+-90|0)>>>0<6){Ir(i,1);y=((p|0)==95?c[i+24>>2]|0:(p|0)==94?c[i+20>>2]|0:(p|0)==93?c[i+16>>2]|0:(p|0)==92?c[i+12>>2]|0:(p|0)==91?c[i+8>>2]|0:(p|0)==90?c[i+4>>2]|0:w)<<16;break}if((p|0)==99){n=(c[798390]|0)+(c[781046]|0)|0;k=((n|0)<2097152?n:2097152)<<6;t=(k|0)>0?k:0;break b}else y=w}else{Ir(i,0);y=((p|0)==85?c[i+24>>2]|0:(p|0)==84?c[i+20>>2]|0:(p|0)==83?c[i+16>>2]|0:(p|0)==82?c[i+12>>2]|0:(p|0)==81?c[i+8>>2]|0:(p|0)==80?c[i+4>>2]|0:w)<<16}while(0);switch(p|0){case 100:{if(!(Eg()|0)){Nd(b);Ia=d;return 1}else{k=Eg()|0;Pd(b,k,bu(Eg()|0)|0)|0;Ia=d;return 1}break}case 101:{if((a[3120504]|0)!=0&(c[780901]|0)!=0){Pd(b,3120504,bu(3120504)|0)|0;Ia=d;return 1}else{Nd(b);Ia=d;return 1}break}case 102:{k=la(22,0)|0;n=k;if(!k){Nd(b);Ia=d;return 1}else{Pd(b,n,bu(n)|0)|0;Ia=d;return 1}break}case 103:{Pd(b,3119833,bu(3119833)|0)|0;Ia=d;return 1}case 104:{Vd(b,0);Ia=d;return 1}case 106:{c[e>>2]=3125548;c[e+4>>2]=3119833;wt(1719968,104363,e)|0;Gq(1719968,bu(1719968)|0,j)|0;Pd(b,j,bu(j)|0)|0;Ia=d;return 1}case 107:{t=c[484720]<<16;break b;break}default:{if((p|0)!=109){q=(p|0)==108?c[554800]<<16:y;r=p;l=85;break b}t=((c[555260]|0)/4|0)<<16;break b}}}}}}while(0);c:do if((l|0)==85)switch(r|0){case 110:{Vd(b,c[485657]|0);Ia=d;return 1}case 111:{t=((c[555260]|0)/4|0)<<16|256;break c;break}case 120:{Vd(b,(un()|0)>0&1);Ia=d;return 1}case 121:{Vd(b,(vn()|0)>0&1);Ia=d;return 1}case 122:{Vd(b,c[536395]|0);Ia=d;return 1}case 124:{Qd(b,3196396)|0;Ia=d;return 1}default:{p=r+-190|0;if(p>>>0>=4){t=q;break c}t=(c[3193536+(p<<2)>>2]|0)!=0&1;break c}}while(0);Od(b,t);Ia=d;return 1}function ak(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=Ia;Ia=Ia+16|0;d=b;c[d>>2]=0;e=Jd(a,1,d)|0;f=c[d>>2]|0;if(!e){g=0;Ia=b;return g|0}if((yd(a)|0)>1)h=(Fd(a,2,0)|0)>>16;else h=1;if((yd(a)|0)>2?(Cd(a,3)|0)==3:0)i=(Fd(a,3,0)|0)>>16;else i=f;d=f+1|0;j=((h|0)<0?d:0)+h|0;h=((i|0)<0?d:0)+i|0;if((j|0)>(f|0)|((h|0)<(j|0)|(h|0)<1)){Pd(a,e,0)|0;g=1;Ia=b;return g|0}else{i=(j|0)<(f|0)?j:f;j=(i|0)>1?i:1;i=(h|0)<(f|0)?h:f;f=((i|0)>1?i:1)-j+1|0;Pd(a,e+j+-1|0,f)|0;jh((f|0)/2|0);g=1;Ia=b;return g|0}return 0}function bk(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=Ia;Ia=Ia+16|0;d=c;e=yd(b)|0;if((e|0)<=16)if((e|0)>0){f=0;g=d}else{Pd(b,d,e)|0;jh(e);Ia=c;return 1}else{d=xq(e)|0;f=d;g=d}d=0;do{h=d;d=d+1|0;a[g+h>>0]=(Fd(b,d,0)|0)>>>16}while((d|0)!=(e|0));Pd(b,g,e)|0;if(!f){jh(e);Ia=c;return 1}zq(f);jh(e);Ia=c;return 1}function ck(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=Ia;Ia=Ia+16|0;e=d;c[e>>2]=32768;if((yd(b)|0)>0)f=Jd(b,1,e)|0;else f=0;if((yd(b)|0)>1)g=((Fd(b,2,0)|0)>>16)+-1|0;else g=0;if((yd(b)|0)>2){h=Fd(b,3,0)|0;if((h|0)<65536){i=0;Ia=d;return i|0}else j=h>>16}else j=1;if(!(vc(b,j)|0)){Cb(61547)|0;i=0;Ia=d;return i|0}jh(j);h=j+g|0;if((j|0)<=0){i=j;Ia=d;return i|0}if(!f){k=g;do{Nd(b);k=k+1|0}while((k|0)<(h|0));i=j;Ia=d;return i|0}k=g;do{if((k|0)>-1?k>>>0<(c[e>>2]|0)>>>0:0)Od(b,(((a[f+k>>0]|0)+256|0)%256|0)<<16);else Nd(b);k=k+1|0}while((k|0)<(h|0));i=j;Ia=d;return i|0}function dk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d+12|0;g=d+4|0;h=d;c[e>>2]=0;if((yd(b)|0)<=0){i=0;Ia=d;return i|0}j=Jd(b,1,e)|0;if(!j){i=0;Ia=d;return i|0}k=c[e>>2]|0;Yd(b,0,1);jh(k);if((yd(b)|0)>2)l=Id(b,3)|0;else l=1;e=(Fd(b,3,0)|0)==2;m=e?1:l;if((Cd(b,2)|0)==3){l=(Fd(b,2,0)|0)>>16;e=(l|0)<(k|0)?l:k;l=(e|0)>1?e:1;e=vq(l+1|0)|0;a:do if((k|0)>0){if(!m){n=1;o=0;while(1){wq(e,0,l);p=k-o|0;q=(l|0)<(p|0)?l:p;Vv(e|0,j+o|0,q|0)|0;c[g>>2]=0;Pd(b,e,q)|0;_d(b,-2,n);o=o+l|0;if((k|0)<=(o|0))break a;else n=n+1|0}}n=1;o=0;while(1){wq(e,0,l);q=k-o|0;p=(l|0)<(q|0)?l:q;Vv(e|0,j+o|0,p|0)|0;c[g>>2]=0;if(!(Wc(e,bu(e)|0,g)|0))Pd(b,e,p)|0;else Od(b,c[g>>2]|0);_d(b,-2,n);o=o+l|0;if((k|0)<=(o|0))break;else n=n+1|0}}while(0);zq(e);i=1;Ia=d;return i|0}c[g>>2]=0;if((yd(b)|0)>1?(e=Jd(b,2,g)|0,l=c[g>>2]|0,!((e|0)==0|l>>>0>256)):0){r=l;s=e}else{c[g>>2]=1;r=1;s=97469}b:do if((s|0)==0|(r|0)==0){if((k|0)>0){g=f+1|0;if(!m){e=1;l=0;while(1){a[f>>0]=a[j+l>>0]|0;a[g>>0]=0;Pd(b,f,1)|0;_d(b,-2,e);l=l+1|0;if((l|0)==(k|0))break b;else e=e+1|0}}e=1;l=0;while(1){n=a[j+l>>0]|0;a[f>>0]=n;a[g>>0]=0;if((n+-48&255)<10)Od(b,(n<<24>>24<<16)+-3145728|0);else Pd(b,f,1)|0;_d(b,-2,e);l=l+1|0;if((l|0)==(k|0))break;else e=e+1|0}}}else{e=vq(k+1|0)|0;Vv(e|0,j|0,k|0)|0;c:do if(!m){l=1;g=0;while(1){n=a[s>>0]|0;o=g;while(1){t=(o|0)>=(k|0);if(t|(a[e+o>>0]|0)==n<<24>>24)break;o=o+1|0}a[e+o>>0]=0;c[h>>2]=0;Pd(b,e+g|0,o-g|0)|0;_d(b,-2,l);if(t)break c;l=l+1|0;g=o+1|0}}else{g=1;l=0;while(1){n=a[s>>0]|0;p=l;while(1){u=(p|0)>=(k|0);if(u|(a[e+p>>0]|0)==n<<24>>24)break;p=p+1|0}n=e+l|0;a[e+p>>0]=0;c[h>>2]=0;o=p-l|0;if(!(Wc(n,o,h)|0))Pd(b,n,o)|0;else Od(b,c[h>>2]|0);_d(b,-2,g);if(u)break c;g=g+1|0;l=p+1|0}}while(0);zq(e)}while(0);i=1;Ia=d;return i|0}function ek(a){a=a|0;var b=0;if(!(yd(a)|0))b=0;else b=Wf(a)|0;return b|0}function fk(a){a=a|0;var b=0,c=0;b=yd(a)|0;if((b|0)>=1){c=1;while(1){Bd(a,c);if((c|0)==(b|0))break;else c=c+1|0}}return Gc(a,b,0,0)|0}function gk(a){a=a|0;c[742797]=1;if(c[798391]|0)return 0;c[798391]=1;return 0}function hk(b){b=b|0;var c=0,d=0,e=0;c=Fd(b,1,0)|0;if((c+-65536|0)>>>0>327679){d=0;return d|0}e=3127982+(c>>>16)|0;c=a[e>>0]|0;if(!(c<<24>>24)){d=0;return d|0}Od(b,c<<24>>24<<16);a[e>>0]=0;d=1;return d|0}function ik(a){a=a|0;var b=0;b=(Fd(a,1,0)|0)>>16;c[742775]=(c[742775]|0)+b;pl();return 0}function jk(a){a=a|0;lh();return 0}function kk(a){a=a|0;c[781379]=(Fd(a,1,0)|0)>>16;return 0}function lk(a){a=a|0;var b=0;b=(Fd(a,1,0)|0)>>16;c[798454]=b;c[798455]=b;return 0}function mk(a){a=a|0;var b=0;b=(Fd(a,1,0)|0)>>16;a=(b|0)<2?b:2;b=(a|0)>0?a:0;c[3193824+(b<<2)>>2]=Qg(0)|0;c[3193836+(b<<2)>>2]=Xr()|0;return 0}function nk(b){b=b|0;var d=0,e=0,f=0;d=Fd(b,1,0)|0;e=d>>16;f=(d|0)>65535;d=f?((e|0)<7?e:7):0;if(f){if(!(a[3152374]&1)){Vd(b,0);return 1}if((c[535873]|0)<2&(c[535874]|0)<2){if(!(c[554380]|0))qv(61449)|0;c[554380]=1}}Nk(d);Vd(b,1);return 1}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=(Fd(a,1,0)|0)>>16;e=(d|0)<7?d:7;d=(e|0)>0?e:0;if(!(yd(a)|0)){e=(b|0)==0;Od(a,((((e?c[781062]|0:c[781254]|0)|0)==0?0:32768)|((((e?c[781061]|0:c[781253]|0)|0)==0?0:16384)|((((e?c[781060]|0:c[781252]|0)|0)==0?0:8192)|((((e?c[781059]|0:c[781251]|0)|0)==0?0:4096)|((((e?c[781058]|0:c[781250]|0)|0)==0?0:2048)|((((e?c[781057]|0:c[781249]|0)|0)==0?0:1024)|((((e?c[781056]|0:c[781248]|0)|0)==0?0:512)|((((e?c[781055]|0:c[781247]|0)|0)==0?0:256)|((((e?c[781054]|0:c[781246]|0)|0)==0?0:128)|((((e?c[781053]|0:c[781245]|0)|0)==0?0:64)|((((e?c[781052]|0:c[781244]|0)|0)==0?0:32)|((((e?c[781051]|0:c[781243]|0)|0)==0?0:16)|((((e?c[781050]|0:c[781242]|0)|0)==0?0:8)|((((e?c[781049]|0:c[781241]|0)|0)==0?0:4)|((((e?c[781048]|0:c[781240]|0)|0)==0?0:2)|((e?c[781047]|0:c[781239]|0)|0)!=0)))))))))))))))<<16);return}if((yd(a)|0)>1)f=(Fd(a,2,0)|0)>>16;else f=0;if((f|d)>>>0<8)if(!b)g=c[3124188+(f<<5)+(d<<2)>>2]|0;else g=c[3124956+(f<<5)+(d<<2)>>2]|0;else g=0;Vd(a,g);jh(4);return}function pk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=c[781022]&255;if((yd(a)|0)>=(b|0)){f=Fd(a,b,0)|0;b=f>>>16&255;c[781022]=b;if(f&268435456){a=c[781043]|0;if(a&1|0?(g=f>>>8,h=g&131072|(g&65536|f&65535),c[781038]=h,f&67108864|0):0)c[781038]=h|262144;if(a&2){c[781044]=f&134217728;i=b}else i=b}else i=b}else i=e;if(!d){j=i;return j|0}d=c[3123880+((i&15)<<2)>>2]&15;if(!(c[781038]&262144)){j=c[3123880+(i>>>4<<2)>>2]<<4&240|d;return j|0}j=c[3124008+(d<<2)>>2]|0;return j|0}function qk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a+112>>2]|0;if((d|0)>=(b|0)){e=(c[a+8>>2]|0)+(0-d<<3)+(b<<3)+-8|0;if((c[e+4>>2]|0)==3)f=c[e>>2]|0;else f=Gd(e)|0;e=f>>>16&255;c[781022]=e;if(f&268435456){b=c[781043]|0;if(b&1|0?(d=f>>>8,a=d&131072|(d&65536|f&65535),c[781038]=a,f&67108864|0):0)c[781038]=a|262144;if(b&2){c[781044]=f&134217728;g=e}else g=e}else g=e}else g=c[781022]&255;e=c[3123880+((g&15)<<2)>>2]&15;if(!(c[781038]&262144)){h=c[3123880+(g>>>4<<2)>>2]<<4&240|e;return h|0}h=c[3124008+(e<<2)>>2]|0;return h|0}function rk(b,d,e,f,g,h,i,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;n=Ia;Ia=Ia+32|0;o=n+20|0;p=n+16|0;q=n+12|0;r=n+8|0;s=n+4|0;t=n;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;Yn(b);Xn(b);Vn(b,d,o,p,q,r,s,t);Zn(b);j=c[s>>2]|0;i=c[t>>2]|0;if((j|0)<1|(i|0)<1){Ia=n;return}h=(k|0)!=0;k=(l|0)!=0;if(h&k){l=b+16|0;g=d+16|0;f=j;e=i;u=0;while(1){if((f|0)>0){v=~u;w=e;x=f;y=0;while(1){a[(c[(c[g>>2]|0)+((c[r>>2]|0)+u<<2)>>2]|0)+((c[q>>2]|0)+y)>>0]=c[m+((a[(c[(c[l>>2]|0)+((c[p>>2]|0)+v+w<<2)>>2]|0)+(x+~y+(c[o>>2]|0))>>0]&15)<<2)>>2];y=y+1|0;z=c[s>>2]|0;A=c[t>>2]|0;if((y|0)>=(z|0)){B=A;C=z;break}else{w=A;x=z}}}else{B=e;C=f}u=u+1|0;if((u|0)>=(B|0))break;else{f=C;e=B}}Ia=n;return}if(k){k=b+16|0;B=d+16|0;e=j;C=i;f=0;while(1){if((e|0)>0){u=~f;l=C;g=0;while(1){a[(c[(c[B>>2]|0)+((c[r>>2]|0)+f<<2)>>2]|0)+((c[q>>2]|0)+g)>>0]=c[m+((a[(c[(c[k>>2]|0)+((c[p>>2]|0)+u+l<<2)>>2]|0)+((c[o>>2]|0)+g)>>0]&15)<<2)>>2];g=g+1|0;x=c[s>>2]|0;w=c[t>>2]|0;if((g|0)>=(x|0)){D=w;E=x;break}else l=w}}else{D=C;E=e}f=f+1|0;if((f|0)>=(D|0))break;else{e=E;C=D}}Ia=n;return}if(h){h=b+16|0;D=d+16|0;C=j;E=i;e=0;while(1){if((C|0)>0){f=C;k=0;do{a[(c[(c[D>>2]|0)+((c[r>>2]|0)+e<<2)>>2]|0)+((c[q>>2]|0)+k)>>0]=c[m+((a[(c[(c[h>>2]|0)+((c[p>>2]|0)+e<<2)>>2]|0)+(f+~k+(c[o>>2]|0))>>0]&15)<<2)>>2];k=k+1|0;f=c[s>>2]|0}while((k|0)<(f|0));F=c[t>>2]|0;G=f}else{F=E;G=C}e=e+1|0;if((e|0)>=(F|0))break;else{C=G;E=F}}Ia=n;return}F=d+16|0;d=b+16|0;b=j;j=i;i=0;while(1){if(!b)H=j;else{E=(c[(c[F>>2]|0)+((c[r>>2]|0)+i<<2)>>2]|0)+(c[q>>2]|0)|0;G=(c[(c[d>>2]|0)+((c[p>>2]|0)+i<<2)>>2]|0)+(c[o>>2]|0)|0;C=b;while(1){a[E>>0]=c[m+((a[G>>0]&15)<<2)>>2];C=C+-1|0;if(!C)break;else{E=E+1|0;G=G+1|0}}H=c[t>>2]|0}G=i+1|0;if((G|0)>=(H|0))break;b=c[s>>2]|0;j=H;i=G}Ia=n;return}function sk(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if((b|0)==0|(e|0)==0|(h|0)==0|(i|0)==0)return;j=c[b>>2]|0;k=c[b+4>>2]|0;if((j|0)==(h|0)&(k|0)==(i|0)){tk(b,e,0,0,f,g,h,i);return}l=(j<<16|0)/(h|0)|0;j=(k<<16|0)/(i|0)|0;m=c[e+36>>2]|0;n=(m|0)>(g|0);o=m-g|0;p=i-(n?o:0)|0;i=n?m:g;g=c[e+28>>2]|0;m=(g|0)>(f|0);q=g-f|0;r=B(q,l)|0;s=(m?r:0)+((l|0)/2|0)|0;r=h-(m?q:0)|0;q=m?g:f;f=(c[e+32>>2]|0)-q|0;g=(r|0)<(f|0)?r:f;f=(c[e+40>>2]|0)-i|0;r=(p|0)<(f|0)?p:f;f=r+i|0;if((r|0)<=0)return;r=b+16|0;b=e+16|0;if((g|0)<=0){e=i;do e=e+1|0;while((e|0)<(f|0));return}e=B(o,j)|0;o=((j|0)<0?k:0)+((j|0)/2|0)+(n?e:0)|0;e=i;while(1){i=c[(c[r>>2]|0)+(o>>16<<2)>>2]|0;if(!(c[781038]&131072)){n=(c[(c[b>>2]|0)+(e<<2)>>2]|0)+q|0;k=s;p=0;while(1){m=d[i+(k>>16)>>0]|0;if(!(m&240)){h=c[781035]|0;a[n>>0]=((h^15)&(d[n>>0]|0)|h&m&c[781036])&15}p=p+1|0;if((p|0)>=(g|0))break;else{n=n+1|0;k=k+l|0}}}else{k=e<<2&12^12;n=s;p=0;while(1){m=d[i+(n>>16)>>0]|0;if((m&240|0)==0?(h=p+q|0,t=c[781038]|0,u=t>>k>>>(h&3^3)&1,(t&65536|0)==0|(u|0)==0):0){t=(c[(c[b>>2]|0)+(e<<2)>>2]|0)+h|0;h=c[781035]|0;a[t>>0]=((h^15)&(d[t>>0]|0)|h&c[3124008+((m&15)<<2)>>2]>>(u<<2)&c[781036])&15}p=p+1|0;if((p|0)>=(g|0))break;else n=n+l|0}}e=e+1|0;if((e|0)>=(f|0))break;else o=o+j|0}return}function tk(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;l=Ia;Ia=Ia+32|0;m=l+20|0;n=l+16|0;o=l+12|0;p=l+8|0;q=l+4|0;r=l;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[q>>2]=j;c[r>>2]=k;if(!((b|0)!=0&(e|0)!=0)){Ia=l;return}Vn(b,e,m,n,o,p,q,r);if(!((c[r>>2]|0)>0&(c[q>>2]|0)>0)){Ia=l;return}k=b+16|0;b=e+16|0;e=0;do{j=(c[(c[k>>2]|0)+((c[n>>2]|0)+e<<2)>>2]|0)+(c[m>>2]|0)|0;i=c[q>>2]|0;if(!(c[781038]&131072)){if(i|0){h=(c[(c[b>>2]|0)+((c[p>>2]|0)+e<<2)>>2]|0)+(c[o>>2]|0)|0;g=j;f=i;while(1){s=d[g>>0]|0;if(!(s&240)){t=c[781035]|0;a[h>>0]=((t^15)&(d[h>>0]|0)|t&s&c[781036])&15}f=f+-1|0;if(!f)break;else{h=h+1|0;g=g+1|0}}}}else if((i|0)>0){g=i;h=j;f=0;while(1){s=d[h>>0]|0;if((s&240|0)==0?(t=(c[o>>2]|0)+f|0,u=(c[p>>2]|0)+e|0,v=c[781038]|0,w=v>>(u<<2&12^12)>>>(t&3^3)&1,(v&65536|0)==0|(w|0)==0):0){v=(c[(c[b>>2]|0)+(u<<2)>>2]|0)+t|0;t=c[781035]|0;a[v>>0]=((t^15)&(d[v>>0]|0)|t&c[3124008+((s&15)<<2)>>2]>>(w<<2)&c[781036])&15;x=c[q>>2]|0}else x=g;f=f+1|0;if((f|0)>=(x|0))break;else{g=x;h=h+1|0}}}e=e+1|0}while((e|0)<(c[r>>2]|0));Ia=l;return}function uk(b,e,f,g,h,i,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=Ia;Ia=Ia+32|0;n=m+20|0;o=m+16|0;p=m+12|0;q=m+8|0;r=m+4|0;s=m;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=i;c[r>>2]=j;c[s>>2]=k;if(!((b|0)!=0&(e|0)!=0)){Ia=m;return}Vn(b,e,n,o,p,q,r,s);if(!((c[s>>2]|0)>0&(c[r>>2]|0)>0)){Ia=m;return}k=b+16|0;b=e+16|0;e=0;do{j=(c[(c[k>>2]|0)+((c[o>>2]|0)+e<<2)>>2]|0)+(c[n>>2]|0)|0;i=c[r>>2]|0;if(!(c[781038]&131072)){if(i|0){h=(c[(c[b>>2]|0)+((c[q>>2]|0)+e<<2)>>2]|0)+(c[p>>2]|0)|0;g=j;f=i;while(1){t=c[l+((a[g>>0]&15)<<2)>>2]|0;if(!(t&240)){u=c[781035]|0;a[h>>0]=((u^15)&(d[h>>0]|0)|u&t&c[781036])&15}f=f+-1|0;if(!f)break;else{h=h+1|0;g=g+1|0}}}}else if((i|0)>0){g=i;h=j;f=0;while(1){t=c[l+((a[h>>0]&15)<<2)>>2]|0;if((t&240|0)==0?(u=(c[p>>2]|0)+f|0,v=(c[q>>2]|0)+e|0,w=c[781038]|0,x=w>>(v<<2&12^12)>>>(u&3^3)&1,(w&65536|0)==0|(x|0)==0):0){w=(c[(c[b>>2]|0)+(v<<2)>>2]|0)+u|0;u=c[781035]|0;a[w>>0]=((u^15)&(d[w>>0]|0)|u&c[3124008+((t&15)<<2)>>2]>>(x<<2)&c[781036])&15;y=c[r>>2]|0}else y=g;f=f+1|0;if((f|0)>=(y|0))break;else{g=y;h=h+1|0}}}e=e+1|0}while((e|0)<(c[s>>2]|0));Ia=m;return}function vk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;i=c[781038]|0;if((g|0)<0)return;j=b+28|0;k=b+32|0;l=b+36|0;m=b+40|0;n=(i&65536|0)==0;o=b+16|0;b=1-g|0;p=g;g=0;while(1){q=p+e|0;r=g+f|0;s=c[j>>2]|0;if(((((s|0)<=(q|0)?(c[k>>2]|0)>(q|0):0)?(c[l>>2]|0)<=(r|0):0)?(c[m>>2]|0)>(r|0):0)?(t=i>>(r<<2&12^12)>>>(q&3^3)&1,n|(t|0)==0):0){u=(c[(c[o>>2]|0)+(r<<2)>>2]|0)+q|0;v=c[781035]|0;a[u>>0]=((v^15)&(d[u>>0]|0)|v&h>>(t<<2)&c[781036])&15;w=c[j>>2]|0}else w=s;s=g+e|0;t=p+f|0;if(((((w|0)<=(s|0)?(c[k>>2]|0)>(s|0):0)?(c[l>>2]|0)<=(t|0):0)?(c[m>>2]|0)>(t|0):0)?(v=i>>(t<<2&12^12)>>>(s&3^3)&1,n|(v|0)==0):0){u=(c[(c[o>>2]|0)+(t<<2)>>2]|0)+s|0;x=c[781035]|0;a[u>>0]=((x^15)&(d[u>>0]|0)|x&h>>(v<<2)&c[781036])&15;y=c[j>>2]|0}else y=w;v=e-p|0;if(((((y|0)<=(v|0)?(c[k>>2]|0)>(v|0):0)?(c[l>>2]|0)<=(r|0):0)?(c[m>>2]|0)>(r|0):0)?(x=i>>(r<<2&12^12)>>>(v&3^3)&1,n|(x|0)==0):0){u=(c[(c[o>>2]|0)+(r<<2)>>2]|0)+v|0;r=c[781035]|0;a[u>>0]=((r^15)&(d[u>>0]|0)|r&h>>(x<<2)&c[781036])&15;z=c[j>>2]|0}else z=y;x=e-g|0;if(((((z|0)<=(x|0)?(c[k>>2]|0)>(x|0):0)?(c[l>>2]|0)<=(t|0):0)?(c[m>>2]|0)>(t|0):0)?(r=i>>(t<<2&12^12)>>>(x&3^3)&1,n|(r|0)==0):0){u=(c[(c[o>>2]|0)+(t<<2)>>2]|0)+x|0;t=c[781035]|0;a[u>>0]=((t^15)&(d[u>>0]|0)|t&h>>(r<<2)&c[781036])&15;A=c[j>>2]|0}else A=z;r=f-g|0;if(((((A|0)<=(v|0)?(c[k>>2]|0)>(v|0):0)?(c[l>>2]|0)<=(r|0):0)?(c[m>>2]|0)>(r|0):0)?(t=i>>(r<<2&12^12)>>>(v&3^3)&1,n|(t|0)==0):0){u=(c[(c[o>>2]|0)+(r<<2)>>2]|0)+v|0;v=c[781035]|0;a[u>>0]=((v^15)&(d[u>>0]|0)|v&h>>(t<<2)&c[781036])&15;B=c[j>>2]|0}else B=A;t=f-p|0;if(((((B|0)<=(x|0)?(c[k>>2]|0)>(x|0):0)?(c[l>>2]|0)<=(t|0):0)?(c[m>>2]|0)>(t|0):0)?(v=i>>(t<<2&12^12)>>>(x&3^3)&1,n|(v|0)==0):0){u=(c[(c[o>>2]|0)+(t<<2)>>2]|0)+x|0;x=c[781035]|0;a[u>>0]=((x^15)&(d[u>>0]|0)|x&h>>(v<<2)&c[781036])&15;C=c[j>>2]|0}else C=B;if(((((C|0)<=(q|0)?(c[k>>2]|0)>(q|0):0)?(c[l>>2]|0)<=(r|0):0)?(c[m>>2]|0)>(r|0):0)?(v=i>>(r<<2&12^12)>>>(q&3^3)&1,n|(v|0)==0):0){x=(c[(c[o>>2]|0)+(r<<2)>>2]|0)+q|0;q=c[781035]|0;a[x>>0]=((q^15)&(d[x>>0]|0)|q&h>>(v<<2)&c[781036])&15;D=c[j>>2]|0}else D=C;if(((((D|0)<=(s|0)?(c[k>>2]|0)>(s|0):0)?(c[l>>2]|0)<=(t|0):0)?(c[m>>2]|0)>(t|0):0)?(v=i>>(t<<2&12^12)>>>(s&3^3)&1,n|(v|0)==0):0){q=(c[(c[o>>2]|0)+(t<<2)>>2]|0)+s|0;s=c[781035]|0;a[q>>0]=((s^15)&(d[q>>0]|0)|s&h>>(v<<2)&c[781036])&15}v=g+1|0;s=(b|0)<0;q=p+-1|0;p=s?p:q;if((p|0)<=(g|0))break;else{b=(v-(s?0:q)<<1|1)+b|0;g=v}}return}function wk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;if((c[b+28>>2]|0)>(e|0))return;if((c[b+32>>2]|0)<=(e|0))return;if((c[b+36>>2]|0)>(f|0))return;if((c[b+40>>2]|0)<=(f|0))return;i=h>>(f<<2&12^12)>>>(e&3^3)&1;if(!((h&65536|0)==0|(i|0)==0))return;h=(c[(c[b+16>>2]|0)+(f<<2)>>2]|0)+e|0;e=c[781035]|0;a[h>>0]=((e^15)&(d[h>>0]|0)|e&g>>(i<<2)&c[781036])&15;return}function xk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=c[781038]|0;if((c[b+36>>2]|0)>(g|0))return 0;if((c[b+40>>2]|0)<=(g|0))return 0;j=h&15;k=(i&65536|0)!=0;l=k?16:h>>>4&15;h=i>>(12-(g<<2)&12);i=((h&4|0)==0?j:l)<<8|((h&8|0)==0?j:l)|((h&2|0)==0?j:l)<<16|((h&1|0)==0?j:l)<<24;l=(f|0)<(e|0);j=l?e:f;h=l?f:e;e=c[b+28>>2]|0;f=(h|0)<(e|0)?e:h;h=c[b+32>>2]|0;e=(j|0)<(h|0)?j:h+-1|0;if((f|0)>=(h|0))return 0;h=b+16|0;b=c[(c[h>>2]|0)+(g<<2)>>2]|0;j=b+f|0;l=b+(f+3&-4)|0;if(k){if((f|0)>(e|0)){m=(e|0)<(f|0);n=1-f|0;o=n+e|0;p=m?0:o;return p|0}k=j;b=f;while(1){q=i>>>(b<<3&24);if(!(q&16)){r=c[781035]|0;a[k>>0]=((r^15)&(d[k>>0]|0)|r&q&c[781036])&15}if((b|0)<(e|0)){k=k+1|0;b=b+1|0}else break}m=(e|0)<(f|0);n=1-f|0;o=n+e|0;p=m?0:o;return p|0}b=c[781036]|0;k=b<<8|b|b<<16|b<<24;b=c[781035]|0;q=b<<8|b|b<<16|b<<24;a:do if((f|0)>(e|0))s=f;else{b=j;r=f;while(1){t=r&3;if(!t){s=r;break a}u=c[781035]|0;a[b>>0]=((u^15)&(d[b>>0]|0)|u&i>>>(t<<3)&c[781036])&15;t=r+1|0;if((r|0)<(e|0)){b=b+1|0;r=t}else{s=t;break}}}while(0);j=e+1&-4;if((s|0)<(j|0)){r=q^252645135;b=k&i&q;q=s+(j+-1-s&-4)|0;k=l;l=s;while(1){c[k>>2]=(c[k>>2]&r|b)&252645135;l=l+4|0;if((l|0)>=(j|0))break;else k=k+4|0}v=q+4|0}else v=s;if((v|0)>(e|0)){m=(e|0)<(f|0);n=1-f|0;o=n+e|0;p=m?0:o;return p|0}s=v;while(1){v=(c[(c[h>>2]|0)+(g<<2)>>2]|0)+s|0;q=c[781035]|0;a[v>>0]=((q^15)&(d[v>>0]|0)|q&i>>>(s<<3&24)&c[781036])&15;if((s|0)<(e|0))s=s+1|0;else break}m=(e|0)<(f|0);n=1-f|0;o=n+e|0;p=m?0:o;return p|0}function yk(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0;l=c[781038]|0;m=((h|0)<0)<<31>>31;n=((g|0)<0)<<31>>31;o=Nv(g|0,n|0,g|0,n|0)|0;p=G()|0;q=Nv(h|0,m|0,h|0,m|0)|0;r=G()|0;s=Qv(o|0,p|0,2)|0;t=(g|0)%2|0;u=Hv(s|0,G()|0,t|0,((t|0)<0)<<31>>31|0)|0;t=Hv(q|0,r|0,u|0,G()|0)|0;u=Iv(0,0,t|0,G()|0)|0;t=G()|0;s=Qv(q|0,r|0,2)|0;v=(h|0)%2|0;w=Hv(s|0,G()|0,v|0,((v|0)<0)<<31>>31|0)|0;v=G()|0;s=Hv(o|0,p|0,w|0,v|0)|0;x=Iv(0,0,s|0,G()|0)|0;s=G()|0;y=Iv(0,0,w|0,v|0)|0;v=G()|0;w=Rv(q|0,r|0,1)|0;z=G()|0;A=Rv(o|0,p|0,1)|0;B=G()|0;if((h|g|0)<=-1){C=0;return C|0}D=Nv(o|0,p|0,-2,-1)|0;E=Nv(D|0,G()|0,h|0,m|0)|0;D=G()|0;F=Iv(0,0,o|0,p|0)|0;H=Nv(F|0,G()|0,h|0,m|0)|0;F=((i|0)<0)<<31>>31;I=i+e|0;J=((j|0)<0)<<31>>31;K=j+f|0;L=b+28|0;M=b+32|0;N=b+36|0;O=b+40|0;P=(l&65536|0)==0;Q=b+16|0;b=H;H=G()|0;R=0;S=0;T=E;E=D;D=0;U=h;h=m;m=0;V=0;while(1){W=I+D|0;X=K+U|0;if(((((c[L>>2]|0)<=(W|0)?(c[M>>2]|0)>(W|0):0)?(c[N>>2]|0)<=(X|0):0)?(c[O>>2]|0)>(X|0):0)?(Y=l>>(X<<2&12^12)>>>(W&3^3)&1,P|(Y|0)==0):0){Z=(c[(c[Q>>2]|0)+(X<<2)>>2]|0)+W|0;_=c[781035]|0;a[Z>>0]=((_^15)&(d[Z>>0]|0)|_&k>>(Y<<2)&c[781036])&15}Y=V+2|0;_=Hv(U|0,h|0,j|0,J|0)|0;Z=G()|0;$=(Z|0)>0|(Z|0)==0&_>>>0>0;_=Hv(D|0,m|0,i|0,F|0)|0;Z=G()|0;aa=(Z|0)>0|(Z|0)==0&_>>>0>0;if($&aa){_=e-D|0;Z=f-U|0;if(((((c[L>>2]|0)<=(_|0)?(c[M>>2]|0)>(_|0):0)?(c[N>>2]|0)<=(Z|0):0)?(c[O>>2]|0)>(Z|0):0)?(ba=l>>(Z<<2&12^12)>>>(_&3^3)&1,P|(ba|0)==0):0){ca=(c[(c[Q>>2]|0)+(Z<<2)>>2]|0)+_|0;_=c[781035]|0;a[ca>>0]=((_^15)&(d[ca>>0]|0)|_&k>>(ba<<2)&c[781036])&15}da=V+3|0}else da=Y;if($){$=f-U|0;if(((((c[L>>2]|0)<=(W|0)?(c[M>>2]|0)>(W|0):0)?(c[N>>2]|0)<=($|0):0)?(c[O>>2]|0)>($|0):0)?(Y=l>>($<<2&12^12)>>>(W&3^3)&1,P|(Y|0)==0):0){ba=(c[(c[Q>>2]|0)+($<<2)>>2]|0)+W|0;W=c[781035]|0;a[ba>>0]=((W^15)&(d[ba>>0]|0)|W&k>>(Y<<2)&c[781036])&15}ea=da+1|0}else ea=da;if(aa){aa=e-D|0;if(((((c[L>>2]|0)<=(aa|0)?(c[M>>2]|0)>(aa|0):0)?(c[N>>2]|0)<=(X|0):0)?(c[O>>2]|0)>(X|0):0)?(Y=l>>(X<<2&12^12)>>>(aa&3^3)&1,P|(Y|0)==0):0){W=(c[(c[Q>>2]|0)+(X<<2)>>2]|0)+aa|0;aa=c[781035]|0;a[W>>0]=((aa^15)&(d[W>>0]|0)|aa&k>>(Y<<2)&c[781036])&15}fa=ea+1|0}else fa=ea;Y=Nv(D|0,m|0,q|0,r|0)|0;aa=Hv(Y|0,G()|0,b|0,H|0)|0;Y=G()|0;do if((Y|0)>(t|0)|(Y|0)==(t|0)&aa>>>0>u>>>0?(W=Nv(U|0,h|0,o|0,p|0)|0,X=G()|0,ba=Hv(W|0,X|0,b|0,H|0)|0,$=G()|0,($|0)>(v|0)|($|0)==(v|0)&ba>>>0>y>>>0):0){ba=Iv(b|0,H|0,W|0,X|0)|0;X=G()|0;if((X|0)>(s|0)|(X|0)==(s|0)&ba>>>0>x>>>0){ba=Hv(U|0,h|0,-1,-1)|0;X=G()|0;W=Hv(T|0,E|0,A|0,B|0)|0;$=G()|0;_=Hv(W|0,$|0,b|0,H|0)|0;ga=X;ha=ba;ia=m;ja=D;ka=_;la=G()|0;ma=R;na=S;oa=W;pa=$;break}else{$=Hv(D|0,m|0,1,0)|0;W=G()|0;_=Hv(R|0,S|0,w|0,z|0)|0;ba=G()|0;X=Hv(_|0,ba|0,b|0,H|0)|0;ca=G()|0;Z=Hv(U|0,h|0,-1,-1)|0;qa=G()|0;ra=Hv(T|0,E|0,A|0,B|0)|0;sa=G()|0;ta=Hv(X|0,ca|0,ra|0,sa|0)|0;ga=qa;ha=Z;ia=W;ja=$;ka=ta;la=G()|0;ma=_;na=ba;oa=ra;pa=sa;break}}else ua=35;while(0);if((ua|0)==35){ua=0;aa=Hv(D|0,m|0,1,0)|0;Y=G()|0;sa=Hv(R|0,S|0,w|0,z|0)|0;ra=G()|0;ba=Hv(sa|0,ra|0,b|0,H|0)|0;ga=h;ha=U;ia=Y;ja=aa;ka=ba;la=G()|0;ma=sa;na=ra;oa=T;pa=E}if(((ga|0)>-1|(ga|0)==-1&ha>>>0>4294967295)&((ia|0)<(n|0)|(ia|0)==(n|0)&ja>>>0<=g>>>0)){b=ka;H=la;R=ma;S=na;T=oa;E=pa;D=ja;U=ha;h=ga;m=ia;V=fa}else{C=fa;break}}return C|0}function zk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=(e|0)<(b|0);i=h?b:e;j=h?e:b;b=(f|0)<(d|0);e=b?d:f;h=b?f:d;d=e-h|0;if((d|0)>=2?(f=i-j|0,(f|0)>=2):0){b=i+j>>1;k=e+h>>1;l=f>>>1;m=d>>>1;n=c[a+32>>2]|0;o=c[a+28>>2]|0;if(((f|0)>(n-o|0)?(p=((l*7|0)>>>0)/10|0,!((p+b|0)<(n|0)|(b-p|0)>=(o|0))):0)?(p=((m*7|0)>>>0)/10|0,(k-p|0)<(c[a+36>>2]|0)):0){q=c[a+40>>2]|0;if((i|0)<(o|0)|((j|0)>=(n|0)|(p+k|0)>=(q|0))){r=0;return r|0}else s=q}else t=9;do if((t|0)==9)if((j|0)>=(n|0)|(i|0)<(o|0)){r=0;return r|0}else{s=c[a+40>>2]|0;break}while(0);if((h|0)>=(s|0)){r=0;return r|0}if((e|0)<(c[a+36>>2]|0)){r=0;return r|0}r=yk(a,b,k,l,m,f&1,d&1,g)|0;return r|0}d=0;f=h;while(1){h=(xk(a,j,i,f,g)|0)+d|0;if((f|0)<(e|0)){d=h;f=f+1|0}else{r=h;break}}return r|0}function Ak(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;j=((f|0)<0)<<31>>31;k=((e|0)<0)<<31>>31;l=Nv(e|0,k|0,e|0,k|0)|0;m=G()|0;n=Nv(f|0,j|0,f|0,j|0)|0;o=G()|0;p=Qv(l|0,m|0,2)|0;q=(e|0)%2|0;r=Hv(p|0,G()|0,q|0,((q|0)<0)<<31>>31|0)|0;q=Hv(n|0,o|0,r|0,G()|0)|0;r=Iv(0,0,q|0,G()|0)|0;q=G()|0;p=Qv(n|0,o|0,2)|0;s=(f|0)%2|0;t=Hv(p|0,G()|0,s|0,((s|0)<0)<<31>>31|0)|0;s=G()|0;p=Hv(l|0,m|0,t|0,s|0)|0;u=Iv(0,0,p|0,G()|0)|0;p=G()|0;v=Iv(0,0,t|0,s|0)|0;s=G()|0;t=Rv(n|0,o|0,1)|0;w=G()|0;x=Rv(l|0,m|0,1)|0;y=G()|0;z=c[781044]|0;A=(z|0)==0?1:2;if((f|e|0)<0){B=z;C=0}else{z=Nv(l|0,m|0,-2,-1)|0;D=Nv(z|0,G()|0,f|0,j|0)|0;z=G()|0;E=Iv(0,0,l|0,m|0)|0;F=Nv(E|0,G()|0,f|0,j|0)|0;E=g+b|0;g=((h|0)<0)<<31>>31;H=h+d|0;I=0;J=0;K=F;F=G()|0;L=f;M=j;j=0;N=0;O=D;D=z;z=0;while(1){P=z+8|0;Q=Nv(I|0,J|0,n|0,o|0)|0;R=Hv(Q|0,G()|0,K|0,F|0)|0;Q=G()|0;do if((Q|0)>(q|0)|(Q|0)==(q|0)&R>>>0>r>>>0?(S=Nv(L|0,M|0,l|0,m|0)|0,T=G()|0,U=Hv(S|0,T|0,K|0,F|0)|0,V=G()|0,(V|0)>(s|0)|(V|0)==(s|0)&U>>>0>v>>>0):0){U=Iv(K|0,F|0,S|0,T|0)|0;T=G()|0;S=b-I|0;V=E+I|0;W=(Qa[A&3](a,S,V,d-L|0,i)|0)+P|0;X=Hv(L|0,M|0,h|0,g|0)|0;Y=G()|0;Z=(Y|0)>0|(Y|0)==0&X>>>0>0;X=H+L|0;if((T|0)>(p|0)|(T|0)==(p|0)&U>>>0>u>>>0){if(Z)_=(Qa[A&3](a,S,V,X,i)|0)+W|0;else _=W;U=Hv(L|0,M|0,-1,-1)|0;T=G()|0;Y=Hv(O|0,D|0,x|0,y|0)|0;$=G()|0;aa=Hv(K|0,F|0,Y|0,$|0)|0;ba=T;ca=J;da=I;ea=j;fa=N;ga=Y;ha=$;ia=aa;ja=G()|0;ka=U;la=_;break}else{if(Z)ma=(Qa[A&3](a,S,V,X,i)|0)+W|0;else ma=W;W=Hv(I|0,J|0,1,0)|0;X=G()|0;V=Hv(j|0,N|0,t|0,w|0)|0;S=G()|0;Z=Hv(K|0,F|0,V|0,S|0)|0;U=G()|0;aa=Hv(L|0,M|0,-1,-1)|0;$=G()|0;Y=Hv(O|0,D|0,x|0,y|0)|0;T=G()|0;na=Hv(Z|0,U|0,Y|0,T|0)|0;ba=$;ca=X;da=W;ea=V;fa=S;ga=Y;ha=T;ia=na;ja=G()|0;ka=aa;la=ma;break}}else oa=5;while(0);if((oa|0)==5){oa=0;R=Hv(I|0,J|0,1,0)|0;Q=G()|0;aa=Hv(j|0,N|0,t|0,w|0)|0;na=G()|0;T=Hv(K|0,F|0,aa|0,na|0)|0;ba=M;ca=Q;da=R;ea=aa;fa=na;ga=O;ha=D;ia=T;ja=G()|0;ka=L;la=P}if((ba|0)<0|((ca|0)>(k|0)|(ca|0)==(k|0)&da>>>0>e>>>0))break;else{I=da;J=ca;K=ia;F=ja;L=ka;M=ba;j=ea;N=fa;O=ga;D=ha;z=la}}B=c[781044]|0;C=la}if(!B){pa=C;return pa|0}B=d-f|0;la=B+-1|0;z=(B|0)<0;B=z?-1:la;ha=0;D=z?la:-1;while(1){ha=(xk(a,0,127,D,i)|0)+ha|0;if((D|0)>=(B|0))break;else D=D+1|0}D=h+d+1+f|0;f=(D|0)>128;d=f?D:128;h=0;B=f?128:D;while(1){h=(xk(a,0,127,B,i)|0)+h|0;if((B|0)>=(d|0))break;else B=B+1|0}pa=ha+C+h|0;return pa|0}function Bk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=(d|0)<(b|0);h=xk(a,(c[a+28>>2]|0)+-1|0,(g?d:b)+-1|0,e,f)|0;return (xk(a,(g?b:d)+1|0,(c[a+32>>2]|0)+1|0,e,f)|0)+h|0}function Ck(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,i=0,j=0;g=(d|0)<(b|0);h=g?b:d;i=g?d:b;b=(e|0)<(c|0);d=b?c:e;g=0;j=b?e:c;while(1){g=(xk(a,i,h,j,f)|0)+g|0;if((j|0)>=(d|0))break;else j=j+1|0}return g|0}function Dk(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,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;i=B(d,d)|0;j=B(e,e)|0;k=0-(j+(((d|0)%2|0)+(i>>>2)))|0;l=(j>>>2)+((e|0)%2|0)|0;m=0-(i+l)|0;n=0-l|0;l=j<<1;o=i<<1;if((e|d|0)<0)p=0;else{q=f+b|0;r=g+c|0;s=0;t=0;u=B(B(i,-2)|0,e)|0;v=B(0-i|0,e)|0;w=0;x=e;while(1){y=s+8|0;do if(((B(w,j)|0)+v|0)>(k|0)?(z=B(x,i)|0,(z+v|0)>(n|0)):0){A=b-w|0;C=q+w|0;D=(xk(a,A,C,c-x|0,h)|0)+y|0;if((v-z|0)<=(m|0)){z=t+l|0;E=u+o|0;F=(xk(a,A,C,r+x|0,h)|0)+D|0;G=z;H=E;I=z+v+E|0;J=w+1|0;K=x+-1|0;break}if(!x)L=D;else L=(xk(a,A,C,r+x|0,h)|0)+D|0;D=u+o|0;F=L;G=t;H=D;I=D+v|0;J=w;K=x+-1|0}else M=5;while(0);if((M|0)==5){M=0;D=t+l|0;F=y;G=D;H=u;I=D+v|0;J=w+1|0;K=x}if((K|0)<0|(J|0)>(d|0)){p=F;break}else{s=F;t=G;u=H;v=I;w=J;x=K}}}if(!g)N=p;else N=(xk(a,b-d|0,d+b+f|0,c+1|0,h)|0)+p|0;if(e|0){O=N;return O|0}O=(xk(a,b-d|0,d+b|0,c,h)|0)+N|0;return O|0}function Ek(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;h=(e|0)<(b|0);i=h?b:e;j=h?e:b;b=(f|0)<(d|0);e=b?d:f;h=b?f:d;d=e-h|0;if((d|0)>=2?(f=i-j|0,(f|0)>=2):0){b=i+j>>1;k=e+h>>1;l=f>>>1;m=d>>>1;n=c[a+32>>2]|0;o=c[a+28>>2]|0;if((((f|0)>(n-o|0)?(p=((l*7|0)>>>0)/10|0,!((p+b|0)<(n|0)|(b-p|0)>=(o|0))):0)?(p=((m*7|0)>>>0)/10|0,q=c[a+36>>2]|0,(k-p|0)<(q|0)):0)?(r=c[a+40>>2]|0,(p+k|0)>=(r|0)):0){if(c[781044]|0){s=0;return s|0}p=c[742782]|0;t=(n|0)<(o|0);u=t?o:n;v=t?n:o;t=(r|0)<(q|0);w=t?q:r;x=0;y=t?r:q;while(1){q=(xk(p,v,u,y,g)|0)+x|0;if((y|0)<(w|0)){x=q;y=y+1|0}else{s=q;break}}return s|0}if((!((j|0)>=(n|0)|(i|0)<(o|0))?(h|0)<(c[a+40>>2]|0):0)?(e|0)>=(c[a+36>>2]|0):0){if((f|0)<128?(d|0)<128&(c[781044]|0)==0:0){s=Dk(a,b,k,l,m,f&1,d&1,g)|0;return s|0}s=Ak(a,b,k,l,m,f&1,d&1,g)|0;return s|0}if(!(c[781044]|0)){s=0;return s|0}d=c[742782]|0;f=c[a+36>>2]|0;m=c[a+40>>2]|0;l=(n|0)<(o|0);k=l?o:n;b=l?n:o;o=(m|0)<(f|0);n=o?f:m;l=0;y=o?m:f;while(1){f=(xk(d,b,k,y,g)|0)+l|0;if((y|0)<(n|0)){l=f;y=y+1|0}else{s=f;break}}return s|0}if(!(c[781044]|0)){y=0;l=h;while(1){n=(xk(a,j,i,l,g)|0)+y|0;if((l|0)<(e|0)){y=n;l=l+1|0}else{s=n;break}}return s|0}l=c[742782]|0;y=h+-1|0;a=(h|0)<0;n=a?-1:y;k=0;b=a?y:-1;while(1){k=(xk(l,-1,128,b,g)|0)+k|0;if((b|0)>=(n|0))break;else b=b+1|0}b=c[742782]|0;n=e+1|0;l=(e|0)>127;y=l?n:128;a=0;d=l?128:n;while(1){a=(xk(b,-1,128,d,g)|0)+a|0;if((d|0)>=(y|0))break;else d=d+1|0}d=c[742782]|0;y=j+-1|0;b=(j|0)<0;j=b?-1:y;n=b?y:-1;y=0;b=h;while(1){y=(xk(d,n,j,b,g)|0)+y|0;if((b|0)>=(e|0))break;else b=b+1|0}b=a+k|0;k=c[742782]|0;a=i+1|0;j=(i|0)>127;i=j?a:128;n=j?128:a;a=0;j=h;while(1){a=(xk(k,n,i,j,g)|0)+a|0;if((j|0)>=(e|0))break;else j=j+1|0}s=b+y+a|0;return s|0}function Fk(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;j=(e|0)<(b|0);k=j?b:e;l=j?e:b;b=(f|0)<(d|0);e=b?d:f;j=b?f:d;d=e-j|0;if((d|0)>=2?(f=k-l|0,(f|0)>=2):0){if((l|0)>=(c[a+32>>2]|0)){m=0;return m|0}if((k+g|0)<(c[a+28>>2]|0)){m=0;return m|0}if((j|0)>=(c[a+40>>2]|0)){m=0;return m|0}if((e+h|0)<(c[a+36>>2]|0)){m=0;return m|0}m=yk(a,k+l>>1,e+j>>1,f>>>1,d>>>1,g,h,i)|0;return m|0}h=0;g=j;while(1){j=(xk(a,l,k,g,i)|0)+h<<1;if((g|0)<(e|0)){h=j;g=g+1|0}else{m=j;break}}return m|0}function Gk(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=f-d|0;if((j|0)>=2?(k=e-b|0,(k|0)>=2):0){l=e+b>>1;m=f+d>>1;n=k>>>1;o=j>>>1;j=c[a+32>>2]|0;p=c[a+28>>2]|0;if((((k|0)>(j-p|0)?(k=((n*7|0)>>>0)/10|0,!((k+l|0)<(j|0)|(l-k|0)>=(p|0))):0)?(k=((o*7|0)>>>0)/10|0,q=c[a+36>>2]|0,(m-k|0)<(q|0)):0)?(r=c[a+40>>2]|0,(k+m|0)>=(r|0)):0){if(c[781044]|0){s=0;return s|0}k=(j|0)<(p|0);t=k?p:j;u=k?j:p;k=(r|0)<(q|0);v=k?q:r;w=0;x=k?r:q;while(1){q=(xk(a,u,t,x,i)|0)+w|0;if((x|0)<(v|0)){w=q;x=x+1|0}else{s=q;break}}return s|0}if(!(c[781044]|0)){if((j|0)<=(b|0)|(g+e|0)<(p|0)){s=0;return s|0}if((c[a+40>>2]|0)<=(d|0)){s=0;return s|0}if((h+f|0)<(c[a+36>>2]|0)){s=0;return s|0}}s=Ak(a,l,m,n,o,g,h,i)|0;return s|0}if((f|0)<(d|0)){s=0;return s|0}h=0;g=d;while(1){d=(xk(a,b,e,g,i)|0)+h<<1;if((g|0)<(f|0)){h=d;g=g+1|0}else{s=d;break}}return s|0}function Hk(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;i=Ia;Ia=Ia+128|0;j=i+64|0;k=i;l=k;m=1920;n=l+64|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));if((h|0)==1){l=k;m=1984;n=l+64|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));l=j;n=l+64|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(n|0));if(!((e|0)>(g|0)|(d|0)>(f|0))){l=c[b+16>>2]|0;n=e;while(1){m=c[l+(n<<2)>>2]|0;h=d;while(1){o=j+(c[2048+((a[m+h>>0]&15)<<2)>>2]<<2)|0;c[o>>2]=(c[o>>2]|0)+1;if((h|0)<(f|0))h=h+1|0;else break}if((n|0)<(g|0))n=n+1|0;else break}}n=(B(1-d+f<<1,1-e+g|0)|0)/3|0;l=(c[j+4>>2]|0)+(c[j>>2]|0)-n|0;h=(l|0)<0?0-l|0:l;l=(c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0))-n|0;m=(l|0)<0?0-l|0:l;l=(m|0)<(h|0);o=l?m:h;h=(c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0)))-n|0;m=(h|0)<0?0-h|0:h;h=(m|0)<(o|0);p=h?m:o;o=(c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0))))-n|0;m=(o|0)<0?0-o|0:o;o=(m|0)<(p|0);q=o?m:p;p=(c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0)))))-n|0;m=(p|0)<0?0-p|0:p;p=(m|0)<(q|0);r=p?m:q;q=(c[j+24>>2]|0)+((c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0))))))-n|0;m=(q|0)<0?0-q|0:q;q=(m|0)<(r|0);s=q?m:r;r=(c[j+28>>2]|0)+((c[j+24>>2]|0)+((c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0)))))))-n|0;m=(r|0)<0?0-r|0:r;r=(m|0)<(s|0);t=r?m:s;s=(c[j+32>>2]|0)+((c[j+28>>2]|0)+((c[j+24>>2]|0)+((c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0))))))))-n|0;m=(s|0)<0?0-s|0:s;s=(m|0)<(t|0);u=s?m:t;t=(c[j+36>>2]|0)+((c[j+32>>2]|0)+((c[j+28>>2]|0)+((c[j+24>>2]|0)+((c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0)))))))))-n|0;m=(t|0)<0?0-t|0:t;t=(m|0)<(u|0);v=t?m:u;u=(c[j+40>>2]|0)+((c[j+36>>2]|0)+((c[j+32>>2]|0)+((c[j+28>>2]|0)+((c[j+24>>2]|0)+((c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0))))))))))-n|0;m=(u|0)<0?0-u|0:u;u=(m|0)<(v|0);w=u?m:v;v=(c[j+44>>2]|0)+((c[j+40>>2]|0)+((c[j+36>>2]|0)+((c[j+32>>2]|0)+((c[j+28>>2]|0)+((c[j+24>>2]|0)+((c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0)))))))))))-n|0;m=(v|0)<0?0-v|0:v;v=(m|0)<(w|0);x=v?12:u?11:t?10:s?9:r?8:q?7:p?6:o?5:h?4:l?3:2;l=v?m:w;w=(c[j+48>>2]|0)+((c[j+44>>2]|0)+((c[j+40>>2]|0)+((c[j+36>>2]|0)+((c[j+32>>2]|0)+((c[j+28>>2]|0)+((c[j+24>>2]|0)+((c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0))))))))))))-n|0;m=(w|0)<0?0-w|0:w;w=(x|0)==-1|(m|0)<(l|0);v=w?13:x;x=w?m:l;l=(c[j+52>>2]|0)+((c[j+48>>2]|0)+((c[j+44>>2]|0)+((c[j+40>>2]|0)+((c[j+36>>2]|0)+((c[j+32>>2]|0)+((c[j+28>>2]|0)+((c[j+24>>2]|0)+((c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0)))))))))))))-n|0;m=(l|0)<0?0-l|0:l;l=(v|0)==-1|(m|0)<(x|0);w=l?14:v;v=(c[j+56>>2]|0)+((c[j+52>>2]|0)+((c[j+48>>2]|0)+((c[j+44>>2]|0)+((c[j+40>>2]|0)+((c[j+36>>2]|0)+((c[j+32>>2]|0)+((c[j+28>>2]|0)+((c[j+24>>2]|0)+((c[j+20>>2]|0)+((c[j+16>>2]|0)+((c[j+12>>2]|0)+((c[j+8>>2]|0)+((c[j+4>>2]|0)+(c[j>>2]|0))))))))))))))-n|0;n=((w|0)==-1?1:(((v|0)<0?0-v|0:v)|0)<((l?m:x)|0))?15:w;if(!(qo(225)|0)){c[k>>2]=(n|0)<1&1;c[k+4>>2]=(n|0)<2&1;c[k+8>>2]=(n|0)<4&1;c[k+12>>2]=(n|0)<6&1;c[k+16>>2]=(n|0)<5&1;c[k+20>>2]=(n|0)<3&1;c[k+24>>2]=(n|0)<12&1;c[k+28>>2]=(n|0)<16&1;c[k+32>>2]=(n|0)<8&1;c[k+36>>2]=(n|0)<13&1;c[k+40>>2]=(n|0)<14&1;c[k+44>>2]=(n|0)<10&1;c[k+48>>2]=(n|0)<9&1;c[k+52>>2]=(n|0)<7&1;c[k+56>>2]=(n|0)<11&1;c[k+60>>2]=(n|0)<15&1}}if((e|0)>(g|0)){Ia=i;return}n=b+16|0;if((d|0)>(f|0)){Ia=i;return}b=e;while(1){e=d;while(1){w=(c[(c[n>>2]|0)+(b<<2)>>2]|0)+e|0;a[w>>0]=c[k+((a[w>>0]&15)<<2)>>2];if((e|0)<(f|0))e=e+1|0;else break}if((b|0)<(g|0))b=b+1|0;else break}Ia=i;return}function Ik(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0;j=c[781038]|0;k=(h|0)<(f|0);l=k?f:h;m=k?e:g;n=k?h:f;f=k?g:e;e=m-f|0;g=((e|0)<0)<<31>>31;k=l-n|0;h=((k|0)<0)<<31>>31;o=(g|0)<0;p=Iv(0,0,e|0,g|0)|0;q=G()|0;r=o?p:e;p=o?q:g;q=(h|0)<0;o=Iv(0,0,k|0,h|0)|0;s=G()|0;t=q?o:k;o=q?s:h;s=(p|0)>(o|0)|(p|0)==(o|0)&r>>>0>t>>>0;o=s?r:t;t=((o|0)<0)<<31>>31;if((o|0)>0){r=Rv(k|0,h|0,16)|0;s=G()|0;p=Rv(e|0,g|0,16)|0;q=Lv(p|0,G()|0,o|0,t|0)|0;p=G()|0;u=Lv(r|0,s|0,o|0,t|0)|0;v=u;w=G()|0;x=q;y=p}else{v=k;w=h;x=e;y=g}g=c[b+36>>2]|0;if((l|0)<(g|0)){z=0;return z|0}e=c[b+40>>2]|0;if((n|0)>=(e|0)){z=0;return z|0}h=c[b+28>>2]|0;k=(f|0)<(h|0);p=(m|0)<(h|0);if(k&p){z=0;return z|0}q=c[b+32>>2]|0;u=(f|0)<(q|0);s=(m|0)<(q|0);if(!(u|s)){z=0;return z|0}m=f<<16|32768;f=((m|0)<0)<<31>>31;r=n<<16|32768;A=((r|0)<0)<<31>>31;if((n|0)<(g|0)){n=g<<16;g=Iv(n|0,((n|0)<0)<<31>>31|0,r|0,A|0)|0;n=Rv(g|0,G()|0,16)|0;g=Lv(n|0,G()|0,v|0,w|0)|0;n=Pv(g|0,G()|0,16)|0;g=Hv(n|0,G()|0,1,0)|0;n=G()|0;C=(n|0)>0|(n|0)==0&g>>>0>0;n=C?g:0;D=n}else D=0;if((l|0)<(e|0))E=o;else{l=e<<16;e=Iv(l|0,((l|0)<0)<<31>>31|0,r|0,A|0)|0;A=Rv(e|0,G()|0,16)|0;e=Hv(A|0,G()|0,-65536,-1)|0;A=Lv(e|0,G()|0,v|0,w|0)|0;w=Pv(A|0,G()|0,16)|0;A=G()|0;e=(A|0)>(t|0)|(A|0)==(t|0)&w>>>0>o>>>0;t=e?o:w;E=t}if(k){k=h<<16;t=Iv(k|0,((k|0)<0)<<31>>31|0,m|0,f|0)|0;k=Rv(t|0,G()|0,16)|0;t=Lv(k|0,G()|0,x|0,y|0)|0;k=Pv(t|0,G()|0,16)|0;t=Hv(k|0,G()|0,1,0)|0;k=G()|0;w=((D|0)<0)<<31>>31;o=(k|0)<(w|0)|(k|0)==(w|0)&t>>>0<D>>>0;w=o?D:t;F=w}else F=D;if(u)H=F;else{u=q<<16;D=Iv(m|0,f|0,u|0,((u|0)<0)<<31>>31|0)|0;u=Rv(D|0,G()|0,16)|0;D=G()|0;w=Iv(0,0,x|0,y|0)|0;t=Lv(u|0,D|0,w|0,G()|0)|0;w=Pv(t|0,G()|0,16)|0;t=Hv(w|0,G()|0,1,0)|0;w=G()|0;D=((F|0)<0)<<31>>31;u=(w|0)<(D|0)|(w|0)==(D|0)&t>>>0<F>>>0;D=u?F:t;H=D}if(p){p=h<<16;h=Iv(m|0,f|0,p|0,((p|0)<0)<<31>>31|0)|0;p=Rv(h|0,G()|0,16)|0;h=Hv(p|0,G()|0,-65536,-1)|0;p=G()|0;D=Iv(0,0,x|0,y|0)|0;t=Lv(h|0,p|0,D|0,G()|0)|0;D=Pv(t|0,G()|0,16)|0;t=G()|0;p=((E|0)<0)<<31>>31;h=(t|0)>(p|0)|(t|0)==(p|0)&D>>>0>E>>>0;p=h?E:D;I=p}else I=E;if(s)J=I;else{s=q<<16;q=Iv(s|0,((s|0)<0)<<31>>31|0,m|0,f|0)|0;f=Rv(q|0,G()|0,16)|0;q=Hv(f|0,G()|0,-65536,-1)|0;f=Lv(q|0,G()|0,x|0,y|0)|0;y=Pv(f|0,G()|0,16)|0;f=G()|0;q=((I|0)<0)<<31>>31;s=(f|0)>(q|0)|(f|0)==(q|0)&y>>>0>I>>>0;q=s?I:y;J=q}q=J-H|0;J=q+1|0;y=(B(H,x)|0)+m|0;m=(B(H,v)|0)+r|0;if((q|0)<=-1){z=J;return z|0}r=b+16|0;if(!(j&65536)){b=q;H=y;I=m;while(1){s=H>>16;f=I>>16;E=(c[(c[r>>2]|0)+(f<<2)>>2]|0)+s|0;p=c[781035]|0;a[E>>0]=((p^15)&(d[E>>0]|0)|p&i>>(j>>(f<<2&12^12)>>>(s&3^3)<<2&4)&c[781036])&15;if((b|0)>0){b=b+-1|0;H=H+x|0;I=I+v|0}else{z=J;break}}return z|0}I=q;q=y;y=m;while(1){m=q>>16;H=y>>16;if(!(j>>(H<<2&12^12)&1<<(m&3^3))){b=(c[(c[r>>2]|0)+(H<<2)>>2]|0)+m|0;m=c[781035]|0;a[b>>0]=((m^15)&(d[b>>0]|0)|m&i&c[781036])&15}if((I|0)>0){I=I+-1|0;q=q+x|0;y=y+v|0}else{z=J;break}}return z|0}function Jk(b,e,f,g,h,i,j,k,l,m,n){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;o=c[781999]|0;p=c[o+8>>2]|0;q=($k(2971096,o,24376)|0)+255&255;o=($k(2971096,c[781999]|0,24377)|0)+255&255;r=$k(2971096,c[781999]|0,24378)|0;s=$k(2971096,c[781999]|0,24379)|0;t=(a[3152374]<<4&255)<<24>>24>>7<<24>>24;u=e>>16;e=f>>16;f=g>>16;g=h>>16;h=f-u|0;v=((h|0)<0)<<31>>31;w=g-e|0;x=((w|0)<0)<<31>>31;y=(v|0)<0;z=Iv(0,0,h|0,v|0)|0;A=G()|0;C=y?z:h;D=y?A:v;y=(x|0)<0;E=Iv(0,0,w|0,x|0)|0;F=G()|0;H=y?E:w;I=y?F:x;y=(D|0)>(I|0)|(D|0)==(I|0)&C>>>0>H>>>0;I=y?C:H;H=(g|0)<(e|0);C=B(I,k)|0;y=B(I,l)|0;D=H?E:w;w=H?F:x;x=H?z:h;h=H?A:v;v=H?0-l|0:l;l=H?0-k|0:k;k=H?e:g;A=H?u:f;z=H?g:e;e=H?f:u;u=((I|0)<0)<<31>>31;if((I|0)>0){f=Rv(D|0,w|0,16)|0;g=G()|0;F=Rv(x|0,h|0,16)|0;E=Lv(F|0,G()|0,I|0,u|0)|0;F=G()|0;J=Lv(f|0,g|0,I|0,u|0)|0;K=J;L=G()|0;M=E;N=F}else{K=D;L=w;M=x;N=h}h=c[b+36>>2]|0;if((k|0)<(h|0)){O=0;return O|0}x=c[b+40>>2]|0;if((z|0)>=(x|0)){O=0;return O|0}w=c[b+28>>2]|0;D=(e|0)<(w|0);F=(A|0)<(w|0);if(D&F){O=0;return O|0}E=c[b+32>>2]|0;J=(e|0)<(E|0);g=(A|0)<(E|0);if(!(J|g)){O=0;return O|0}A=e<<16|32768;e=((A|0)<0)<<31>>31;f=z<<16|32768;P=((f|0)<0)<<31>>31;if((z|0)<(h|0)){z=h<<16;h=Iv(z|0,((z|0)<0)<<31>>31|0,f|0,P|0)|0;z=Rv(h|0,G()|0,16)|0;h=Lv(z|0,G()|0,K|0,L|0)|0;z=Pv(h|0,G()|0,16)|0;h=Hv(z|0,G()|0,1,0)|0;z=G()|0;Q=(z|0)>0|(z|0)==0&h>>>0>0;z=Q?h:0;R=z}else R=0;if((k|0)<(x|0))S=I;else{k=x<<16;x=Iv(k|0,((k|0)<0)<<31>>31|0,f|0,P|0)|0;k=Rv(x|0,G()|0,16)|0;x=Hv(k|0,G()|0,-65536,-1)|0;k=Lv(x|0,G()|0,K|0,L|0)|0;x=Pv(k|0,G()|0,16)|0;k=G()|0;z=(k|0)>(u|0)|(k|0)==(u|0)&x>>>0>I>>>0;u=z?I:x;S=u}if(D){D=w<<16;u=Iv(D|0,((D|0)<0)<<31>>31|0,A|0,e|0)|0;D=Rv(u|0,G()|0,16)|0;u=Lv(D|0,G()|0,M|0,N|0)|0;D=Pv(u|0,G()|0,16)|0;u=Hv(D|0,G()|0,1,0)|0;D=G()|0;x=((R|0)<0)<<31>>31;I=(D|0)<(x|0)|(D|0)==(x|0)&u>>>0<R>>>0;x=I?R:u;T=x}else T=R;if(J)U=T;else{J=E<<16;R=Iv(A|0,e|0,J|0,((J|0)<0)<<31>>31|0)|0;J=Rv(R|0,G()|0,16)|0;R=G()|0;x=Iv(0,0,M|0,N|0)|0;u=Lv(J|0,R|0,x|0,G()|0)|0;x=Pv(u|0,G()|0,16)|0;u=Hv(x|0,G()|0,1,0)|0;x=G()|0;R=((T|0)<0)<<31>>31;J=(x|0)<(R|0)|(x|0)==(R|0)&u>>>0<T>>>0;R=J?T:u;U=R}if(F){F=w<<16;w=Iv(A|0,e|0,F|0,((F|0)<0)<<31>>31|0)|0;F=Rv(w|0,G()|0,16)|0;w=Hv(F|0,G()|0,-65536,-1)|0;F=G()|0;R=Iv(0,0,M|0,N|0)|0;u=Lv(w|0,F|0,R|0,G()|0)|0;R=Pv(u|0,G()|0,16)|0;u=G()|0;F=((S|0)<0)<<31>>31;w=(u|0)>(F|0)|(u|0)==(F|0)&R>>>0>S>>>0;F=w?S:R;V=F}else V=S;if(g)W=V;else{g=E<<16;E=Iv(g|0,((g|0)<0)<<31>>31|0,A|0,e|0)|0;g=Rv(E|0,G()|0,16)|0;E=Hv(g|0,G()|0,-65536,-1)|0;g=Lv(E|0,G()|0,M|0,N|0)|0;E=Pv(g|0,G()|0,16)|0;g=G()|0;S=((V|0)<0)<<31>>31;F=(g|0)>(S|0)|(g|0)==(S|0)&E>>>0>V>>>0;S=F?V:E;W=S}S=((U|0)<0)<<31>>31;E=Nv(M|0,N|0,U|0,S|0)|0;V=Hv(E|0,G()|0,A|0,e|0)|0;e=G()|0;A=Nv(K|0,L|0,U|0,S|0)|0;S=Hv(A|0,G()|0,f|0,P|0)|0;P=G()|0;f=(H?C:0)+i+(B(U,l)|0)|0;i=(H?y:0)+j+(B(U,v)|0)|0;j=W-U|0;U=j+1|0;W=(n|0)<0?13:n;n=W+3|0;if(!(c[781038]&131072)){if((j|0)<=-1){O=U;return O|0}y=b+16|0;if(!m){H=S;C=P;A=V;E=e;F=f;g=i;R=j;while(1){w=Ih((F>>n&q)+r|0,(g>>n&o)+s|0)|0;if((w|0)!=(t|0)?(u=(w|0)/16|0,T=c[3123880+(((ao(p,w-(u<<4)<<3|F>>W&7,u<<3|g>>W&7)|0)&15)<<2)>>2]|0,(T&16|0)==0):0){u=c[y>>2]|0;w=Qv(H|0,C|0,16)|0;G()|0;J=c[u+(w<<2)>>2]|0;w=Qv(A|0,E|0,16)|0;G()|0;u=J+w|0;w=c[781035]|0;a[u>>0]=((w^15)&(d[u>>0]|0)|w&T&c[781036])&15}A=Hv(A|0,E|0,M|0,N|0)|0;E=G()|0;H=Hv(H|0,C|0,K|0,L|0)|0;C=G()|0;if((R|0)<=0){O=U;break}else{F=F+l|0;g=g+v|0;R=R+-1|0}}return O|0}R=S;g=P;P=V;F=e;e=f;C=i;H=j;while(1){E=Ih((e>>n&q)+r|0,(C>>n&o)+s|0)|0;if(((E|0)!=(t|0)?c[(c[781999]|0)+44832+(E<<2)>>2]&m|0:0)?(A=(E|0)/16|0,T=c[3123880+(((ao(p,E-(A<<4)<<3|e>>W&7,A<<3|C>>W&7)|0)&15)<<2)>>2]|0,(T&16|0)==0):0){A=c[y>>2]|0;E=Qv(R|0,g|0,16)|0;G()|0;w=c[A+(E<<2)>>2]|0;E=Qv(P|0,F|0,16)|0;G()|0;A=w+E|0;E=c[781035]|0;a[A>>0]=((E^15)&(d[A>>0]|0)|E&T&c[781036])&15}P=Hv(P|0,F|0,M|0,N|0)|0;F=G()|0;R=Hv(R|0,g|0,K|0,L|0)|0;g=G()|0;if((H|0)<=0){O=U;break}else{e=e+l|0;C=C+v|0;H=H+-1|0}}return O|0}if((j|0)<=-1){O=U;return O|0}H=b+16|0;if(!m){b=f;C=i;e=j;g=V;L=S;while(1){R=Ih((b>>n&q)+r|0,(C>>n&o)+s|0)|0;if(((R|0)!=(t|0)?(F=(R|0)/16|0,N=(ao(p,R-(F<<4)<<3|b>>W&7,F<<3|C>>W&7)|0)&15,(c[3123880+(N<<2)>>2]&16|0)==0):0)?(F=g>>16,R=L>>16,P=c[781038]|0,y=P>>(R<<2&12^12)>>>(F&3^3)&1,(P&65536|0)==0|(y|0)==0):0){P=(c[(c[H>>2]|0)+(R<<2)>>2]|0)+F|0;F=c[781035]|0;a[P>>0]=((F^15)&(d[P>>0]|0)|F&c[3124008+(N<<2)>>2]>>(y<<2)&c[781036])&15}if((e|0)>0){b=b+l|0;C=C+v|0;e=e+-1|0;g=g+M|0;L=L+K|0}else{O=U;break}}return O|0}L=f;f=i;i=j;j=V;V=S;while(1){S=Ih((L>>n&q)+r|0,(f>>n&o)+s|0)|0;if((((S|0)!=(t|0)?c[(c[781999]|0)+44832+(S<<2)>>2]&m|0:0)?(g=(S|0)/16|0,e=(ao(p,S-(g<<4)<<3|L>>W&7,g<<3|f>>W&7)|0)&15,(c[3123880+(e<<2)>>2]&16|0)==0):0)?(g=j>>16,S=V>>16,C=c[781038]|0,b=C>>(S<<2&12^12)>>>(g&3^3)&1,(C&65536|0)==0|(b|0)==0):0){C=(c[(c[H>>2]|0)+(S<<2)>>2]|0)+g|0;g=c[781035]|0;a[C>>0]=((g^15)&(d[C>>0]|0)|g&c[3124008+(e<<2)>>2]>>(b<<2)&c[781036])&15}if((i|0)>0){L=L+l|0;f=f+v|0;i=i+-1|0;j=j+M|0;V=V+K|0}else{O=U;break}}return O|0}function Kk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=c[781038]|0;if((c[b+28>>2]|0)>(e|0))return 0;if((c[b+32>>2]|0)<=(e|0))return 0;j=h&15;k=(i&65536|0)!=0;l=k?16:h>>>4&15;h=i>>(3-e&3);i=((h&256|0)==0?j:l)<<8|((h&4096|0)==0?j:l)|((h&16|0)==0?j:l)<<16|((h&1|0)==0?j:l)<<24;l=(g|0)<(f|0);j=l?f:g;h=l?g:f;f=c[b+36>>2]|0;g=(h|0)<(f|0)?f:h;h=c[b+40>>2]|0;f=(j|0)<(h|0)?j:h+-1|0;if((g|0)>=(h|0))return 0;h=(c[(c[b+16>>2]|0)+(g<<2)>>2]|0)+e|0;e=(g|0)>(f|0);if(!k){if(e){m=1-g|0;n=m+f|0;o=e?0:n;return o|0}k=h;b=g;while(1){j=c[781035]|0;a[k>>0]=((j^15)&(d[k>>0]|0)|j&i>>>(b<<3&24)&c[781036])&15;if((b|0)<(f|0)){k=k+128|0;b=b+1|0}else break}m=1-g|0;n=m+f|0;o=e?0:n;return o|0}if(e){m=1-g|0;n=m+f|0;o=e?0:n;return o|0}b=h;h=g;while(1){k=i>>>(h<<3&24);if(!(k&16)){j=c[781035]|0;a[b>>0]=((j^15)&(d[b>>0]|0)|j&k&c[781036])&15}if((h|0)<(f|0)){b=b+128|0;h=h+1|0}else break}m=1-g|0;n=m+f|0;o=e?0:n;return o|0}function Lk(){Xn(c[(c[781999]|0)+4>>2]|0);Xn(c[742782]|0);Qn(c[742782]|0,c[781018]|0,c[781019]|0,c[781020]|0,c[781021]|0);return}function Mk(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=c[2971132+(b<<2)>>2]|0;g=b<<13;h=g+32768|0;i=a[3152406]|0;j=i<<24>>24<0&((i&255)<<8|0)<(g+40960|0)?0:e;e=3193536+(b<<2)|0;b=c[e>>2]|0;if((b|0)==0&(j|0)!=0){g=0;i=c[f+12>>2]|0;k=3128e3+h|0;while(1){a[i>>0]=a[k>>0]&15;a[i+1>>0]=(d[k>>0]|0)>>>4;g=g+1|0;if((g|0)==8192)break;else{i=i+2|0;k=k+1|0}}l=c[e>>2]|0}else l=b;if((j|0)==0&(l|0)!=0){b=3128e3+h|0;h=0;k=c[f+12>>2]|0;while(1){a[b>>0]=a[k+1>>0]<<4|a[k>>0]&15;h=h+1|0;if((h|0)==8192)break;else{b=b+1|0;k=k+2|0}}m=c[e>>2]|0}else m=l;if((m|0)==(j|0))return j|0;c[e>>2]=j;al();jh(1024);return j|0}function Nk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=(b|0)<3?b:3;b=(d|0)>0?d:0;c[798931]=b;d=a[3152404]|0;e=d&255;f=c[(c[781999]|0)+4>>2]|0;switch(d<<24>>24){case 0:{g=f;break}case 96:{g=c[2971148+(b<<2)>>2]|0;break}default:if(d<<24>>24<0&(e&224|0)==(e|0)?(d=e+-128>>5,(Mk(d,1)|0)!=0):0)g=c[2971132+(d<<2)>>2]|0;else g=f}f=c[781999]|0;c[f+8>>2]=g;g=a[3152405]|0;d=g&255;e=c[2971148+(c[798931]<<2)>>2]|0;switch(g<<24>>24){case 0:{h=c[f+4>>2]|0;break}case 96:{h=e;break}default:if(g<<24>>24<0&(d&224|0)==(d|0)?(g=d+-128>>5,(Mk(g,1)|0)!=0):0)h=c[2971132+(g<<2)>>2]|0;else h=e}c[742782]=h;Xn(c[(c[781999]|0)+4>>2]|0);Xn(c[742782]|0);Qn(c[742782]|0,c[781018]|0,c[781019]|0,c[781020]|0,c[781021]|0);return}function Ok(){var a=0,b=0;if(c[535871]|0)return 1;a=c[742765]|0;b=B((c[a+4>>2]|0)/128|0,(c[a>>2]|0)/128|0)|0;if((b|0)<1)return 1;else return ((b|0)<4?b:4)|0;return 0}function Pk(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;f=c[a>>2]|0;if((f|0)!=(c[b>>2]|0))return;g=a+4|0;h=c[g>>2]|0;if((h|0)!=(c[b+4>>2]|0))return;i=c[a+8>>2]|0;j=c[b+8>>2]|0;if((i|0)==(j|0)){Gp(a,b,0,0,0,0,f,h);return}if(!((i|0)==32&(j|0)==8&(h|0)>0))return;j=h;h=f;f=0;while(1){if((h|0)>0){i=0;do{k=ao(a,i,f)|0;l=k>>>16&255;m=k>>>8&255;n=k&255;k=1e7;o=-1;p=0;while(1){q=c[3123944+(p<<2)>>2]&143;r=l-(d[e+(q*3|0)>>0]|0)|0;s=B(r,r)|0;r=m-(d[e+(q*3|0)+1>>0]|0)|0;t=(B(r,r)|0)+s|0;s=n-(d[e+(q*3|0)+2>>0]|0)|0;q=t+(B(s,s)|0)|0;s=(o|0)==-1|(q|0)<(k|0);o=s?p:o;p=p+1|0;if((p|0)==16)break;else k=s?q:k}Un(b,i,f,o);i=i+1|0;u=c[a>>2]|0}while((i|0)<(u|0));v=c[g>>2]|0;w=u}else{v=j;w=h}f=f+1|0;if((f|0)>=(v|0))break;else{j=v;h=w}}return}function Qk(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;g=c[b>>2]|0;if((g|0)!=(c[e>>2]|0))return;h=b+4|0;i=c[h>>2]|0;if((i|0)!=(c[e+4>>2]|0))return;j=b+8|0;k=c[j>>2]|0;l=e+8|0;m=c[l>>2]|0;if((k|0)==(m|0)){Gp(b,e,0,0,0,0,g,i);return}if((k|0)==8&(m|0)==32){if((i|0)<=0)return;m=b+16|0;n=e+16|0;o=i;p=g;q=0;while(1){if((p|0)>0){r=c[(c[m>>2]|0)+(q<<2)>>2]|0;s=c[(c[n>>2]|0)+(q<<2)>>2]|0;t=0;do{u=a[r+t>>0]|0;v=u&255;c[s+(t<<2)>>2]=(d[f+(v*3|0)>>0]|0)<<16|(u<<24>>24==0?0:-16777216)|(d[f+(v*3|0)+1>>0]|0)<<8|(d[f+(v*3|0)+2>>0]|0);t=t+1|0;w=c[b>>2]|0}while((t|0)<(w|0));x=c[h>>2]|0;y=w}else{x=o;y=p}q=q+1|0;if((q|0)>=(x|0))break;else{o=x;p=y}}z=c[j>>2]|0;A=x;C=y}else{z=k;A=i;C=g}if((z|0)!=32)return;if(!((c[l>>2]|0)==8&(A|0)>0))return;l=e+16|0;e=C;C=A;A=0;z=0;g=0;while(1){if((e|0)>0){i=A;k=z;y=0;while(1){x=ao(b,y,g)|0;j=i;i=x&-50529028;if((i|0)==(j|0))D=k;else{j=x>>>16&252;p=x>>>8&252;o=x&252;x=1e7;q=-1;w=0;while(1){n=w>>>0<16?w:w+112|0;m=j-(d[f+(n*3|0)>>0]|0)|0;t=B(m,m)|0;m=p-(d[f+(n*3|0)+1>>0]|0)|0;s=(B(m,m)|0)+t|0;t=o-(d[f+(n*3|0)+2>>0]|0)|0;m=s+(B(t,t)|0)|0;t=(q|0)==-1|(m|0)<(x|0);s=t?n:q;w=w+1|0;if((w|0)==32){D=s;break}else{x=t?m:x;q=s}}}a[(c[(c[l>>2]|0)+(g<<2)>>2]|0)+y>>0]=D;y=y+1|0;E=c[b>>2]|0;if((y|0)>=(E|0))break;else k=D}F=c[h>>2]|0;G=E;H=i;I=D}else{F=C;G=e;H=A;I=z}g=g+1|0;if((g|0)>=(F|0))break;else{e=G;C=F;A=H;z=I}}return}function Rk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;i=Ia;Ia=Ia+256|0;j=i+128|0;k=i;l=h&1;m=b+112|0;if(!(c[m>>2]|0)){n=c[781023]|0;c[b+96>>2]=n;o=c[781024]|0;c[b+100>>2]=o;p=b+68|0;if((c[p>>2]|0)==0?(c[b+60>>2]|0)==0:0)q=g;else q=g<<1;if((c[b+20>>2]|0)!=0?(n|0)>((c[b+24>>2]|0)-f|0):0){c[781023]=c[b+28>>2];n=b+48|0;r=c[n>>2]|0;if(!r)s=c[b+92>>2]|0;else s=r;r=s+o|0;c[781024]=r;c[n>>2]=0;t=r}else t=o;o=128-q-(c[b+124>>2]|0)+(c[781031]|0)|0;if((c[b+16>>2]|0)!=0&(t|0)>(o|0)){$a(t-o|0);u=p}else u=p}else u=b+68|0;p=c[3123880+((c[b+36>>2]&15)<<2)>>2]&15;o=c[3123880+((c[b+40>>2]&15)<<2)>>2]&15;t=b+136|0;q=c[3123880+((c[t>>2]&15)<<2)>>2]&15;if(!(c[u>>2]|0)){u=c[b+56>>2]|0;r=(u|0)!=0;n=r?2:1;s=c[b+60>>2]|0;v=(s|0)!=0;w=v?2:1;if((u|0)!=0?(c[b+64>>2]|0)!=0:0)x=(s|0)==0?1444224:1445248;else x=1445248;if(!s){y=n;z=w;A=x;C=0;D=v;E=r}else{y=n;z=w;A=x;C=(c[b+64>>2]|0)!=0;D=1;E=r}}else{y=2;z=2;A=1444224;C=1;D=1;E=1}r=0-l|0;x=y&r;w=z&r;r=((c[b+120>>2]|0)-(c[781030]|0)<<16>>16)+(c[781023]|0)|0;n=r-x|0;v=(c[781024]|0)+(h<<28>>31)+((c[b+124>>2]|0)-(c[781031]|0)<<16>>16)|0;h=v-w|0;s=(B(y,(f|0)<8?f:8)|0)+x|0;x=B(z,(g|0)<8?g:8)|0;u=x+w|0;w=B(y,f)|0;y=B(z,g)|0;if(c[b+76>>2]|0){z=c[b+44>>2]|0;F=r+w|0;r=F+-1|0;G=v+y|0;H=G+-1|0;I=(F|0)<=(n|0);F=I?n:r;J=I?r:n;r=(G|0)<=(h|0);G=r?h:H;I=r?H:h;while(1){xk(z,J,F,I,o)|0;if((I|0)<(G|0))I=I+1|0;else break}}I=(c[b+80>>2]|0)==0?0:(1<<s)+-1|0;c[j>>2]=I;if(!(c[554385]|0)){G=0;do{o=G&1;F=o<<1;J=G&2;z=J<<2;H=G&4;r=H<<3;K=G&8;L=K<<4;M=G&16;N=M<<5;O=G&32;P=O<<6;Q=G&64;R=Q<<7;S=G&128;T=S<<8;c[1445248+(G<<2)>>2]=T|o|S<<7|R|Q<<6|P|O<<5|N|M<<4|L|K<<3|r|H<<2|F|z|J<<1;c[1444224+(G<<2)>>2]=F|z|r|L|N|P|R|T;G=G+1|0}while((G|0)!=256);c[554385]=1}G=(g|0)>0;if(E){if(G){E=l<<1;T=0;do{c[j+(T+l<<2)>>2]=c[A+(d[e+T>>0]<<2)>>2]<<E^I;T=T+1|0}while((T|0)!=(g|0))}}else if(G){G=0;do{c[j+(G+l<<2)>>2]=d[e+G>>0]<<l^I;G=G+1|0}while((G|0)!=(g|0))}if(D?(D=(u|0)>1,D):0){g=u;do{G=g;g=g+-1|0;c[j+(g<<2)>>2]=c[j+(g>>1<<2)>>2]}while((G|0)>2);if(C&D){D=1;do{c[j+(D<<2)>>2]=I;D=D+2|0}while((D|0)<(u|0))}}D=b+132|0;I=c[D>>2]|0;if(!I)U=0;else{C=k;g=C+128|0;do{c[C>>2]=0;C=C+4|0}while((C|0)<(g|0));C=(u|0)>0;if(C){if(I&1|0?(c[k>>2]=c[j>>2],(u|0)>1):0){g=1;do{c[k+(g<<2)>>2]=c[k+(g<<2)>>2]|c[j+(g<<2)>>2];g=g+1|0}while((g|0)<(u|0))}if(I&2|0){g=0;do{G=k+(g<<2)|0;c[G>>2]=c[G>>2]|c[j+(g<<2)>>2]<<1;g=g+1|0}while((g|0)<(u|0))}if(I&4|0){g=0;do{G=k+(g<<2)|0;c[G>>2]=c[G>>2]|c[j+(g<<2)>>2]<<2;g=g+1|0}while((g|0)<(u|0))}if(I&8|0){g=0;do{G=g;g=g+1|0;l=k+(g<<2)|0;c[l>>2]=c[l>>2]|c[j+(G<<2)>>2]}while((g|0)<(u|0))}if(I&16|0){g=0;do{G=g;g=g+1|0;l=k+(g<<2)|0;c[l>>2]=c[l>>2]|c[j+(G<<2)>>2]<<1}while((g|0)<(u|0))}if(I&32|0){g=0;do{G=g;g=g+1|0;l=k+(g<<2)|0;c[l>>2]=c[l>>2]|c[j+(G<<2)>>2]<<2}while((g|0)<(u|0))}if(I&64|0){g=0;do{G=k+(g+2<<2)|0;c[G>>2]=c[G>>2]|c[j+(g<<2)>>2];g=g+1|0}while((g|0)<(u|0))}if(I&128|0){g=0;do{G=k+(g+2<<2)|0;c[G>>2]=c[G>>2]|c[j+(g<<2)>>2]<<1;g=g+1|0}while((g|0)<(u|0))}if(I&256|0){I=0;do{g=k+(I+2<<2)|0;c[g>>2]=c[g>>2]|c[j+(I<<2)>>2]<<2;I=I+1|0}while((I|0)<(u|0))}if(C){C=0;do{I=C;C=C+1|0;g=k+(C<<2)|0;c[g>>2]=c[g>>2]&~(c[j+(I<<2)>>2]<<1)}while((C|0)<(u|0))}}C=c[b+44>>2]|0;I=n+-1|0;g=h+-1|0;G=s+2|0;l=u+2|0;if(((((c[C+28>>2]|0)-G|0)<(n|0)?((c[C+36>>2]|0)-l|0)<(h|0):0)?(c[C+32>>2]|0)>=(n|0):0)?(c[C+40>>2]|0)>=(h|0):0){if((s|0)>-2&(u|0)>-2){e=k;k=0;while(1){T=g+k|0;E=c[e>>2]|0;A=0;while(1){if(E&1|0)Un(C,I+A|0,T,q);A=A+1|0;if((A|0)==(G|0))break;else E=E>>>1}k=k+1|0;if((k|0)==(l|0))break;else e=e+4|0}}V=B(l,G)|0}else V=0;U=V}V=v+x|0;if(c[b+140>>2]|0)Ik(c[b+44>>2]|0,n,V,n+f|0,V,p)|0;if((c[D>>2]|0)!=0?(c[t>>2]&65536|0)!=0:0)W=U;else{t=c[b+44>>2]|0;if(((((c[t+28>>2]|0)-s|0)<=(n|0)?((c[t+36>>2]|0)-u|0)<=(h|0):0)?(c[t+32>>2]|0)>(n|0):0)?(c[t+40>>2]|0)>(h|0):0){if((s|0)>0&(u|0)>0){D=j;j=0;while(1){V=j+h|0;f=c[D>>2]|0;x=0;while(1){if(f&1|0)Un(t,x+n|0,V,p);x=x+1|0;if((x|0)==(s|0))break;else f=f>>>1}j=j+1|0;if((j|0)==(u|0))break;else D=D+4|0}}X=B(u,s)|0}else X=0;W=X+U|0}jh((W|0)/2|0);c[b+104>>2]=w;c[781023]=(c[781023]|0)+w;w=b+48|0;W=c[w>>2]|0;c[w>>2]=(W|0)>(y|0)?W:y;if(c[m>>2]|0){c[781023]=c[b+96>>2];c[781024]=c[b+100>>2];c[m>>2]=0}m=c[b+128>>2]|0;if((m|0)<=0){Y=0;Ia=i;return Y|0}c[b+52>>2]=m+-1;m=b+4|0;b=c[m>>2]|0;if(!(a[b>>0]|0)){Y=1;Ia=i;return Y|0}c[m>>2]=b+1;Y=1;Ia=i;return Y|0}function Sk(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0;e=Ia;Ia=Ia+16|0;f=e;g=b+4|0;h=c[g>>2]|0;i=a[h>>0]|0;a:do switch(i<<24>>24){case 0:{j=0;k=h+-1|0;l=h;break}case 1:{m=a[h+1>>0]|0;if(!(m<<24>>24))n=156;else{o=m&255;p=o+-48|0;c[b+116>>2]=p>>>0<10?p:(m&255)>96?o+-87|0:0;o=h+2|0;j=0;k=o;l=o}break}case 2:{o=h+1|0;m=a[o>>0]|0;if(!(m<<24>>24))n=156;else{p=m&255;q=p+-48|0;c[b+40>>2]=(q>>>0<10?q:(m&255)>96?p+9|0:0)&15;c[b+76>>2]=1;j=0;k=o;l=h}break}case 3:{o=h+1|0;p=a[o>>0]|0;if(!(p<<24>>24))n=156;else{m=p&255;q=m+-48|0;c[781023]=(q>>>0<10?q:(p&255)>96?m+-87|0:0)+-16+(c[781023]|0);j=0;k=o;l=h}break}case 4:{o=h+1|0;m=a[o>>0]|0;if(!(m<<24>>24))n=156;else{p=m&255;q=p+-48|0;c[781024]=(q>>>0<10?q:(m&255)>96?p+-87|0:0)+-16+(c[781024]|0);j=0;k=o;l=h}break}case 5:{o=a[h+1>>0]|0;p=o&255;if(o<<24>>24!=0?(m=h+2|0,(a[m>>0]|0)!=0):0){q=p+-48|0;c[781023]=(q>>>0<10?q:(o&255)>96?p+-87|0:0)+-16+(c[781023]|0);p=a[m>>0]|0;o=p&255;q=o+-48|0;c[781024]=(c[781024]|0)+-16+(q>>>0<10?q:(p&255)>96?o+-87|0:0);j=0;k=m;l=h}else n=156;break}case 6:{m=h+1|0;o=a[m>>0]|0;p=o&255;switch(o<<24>>24){case 0:{n=156;break a;break}case 45:{o=h+2|0;q=a[o>>0]|0;r=q<<24>>24==0;s=r&1;t=r?p:q&255;u=r?m:o;break}default:{s=1;t=p;u=m}}m=t+-49|0;b:do if(m>>>0<9){c[b+52>>2]=(1<<m)+-1;v=1}else switch(t|0){case 99:{p=u+1|0;o=a[p>>0]|0;if(!(o<<24>>24)){j=0;k=u;l=h;break a}r=o&255;q=r+-48|0;Pn(c[742782]|0,0,0,127,127,q>>>0<10?q:(o&255)>96?r+-87|0:0);jh(1024);c[781023]=0;c[781024]=0;j=0;k=p;l=h;break a;break}case 100:{p=u+1|0;r=a[p>>0]|0;if(!(r<<24>>24)){j=0;k=u;l=h;break a}o=r&255;q=o+-48|0;c[b+128>>2]=q>>>0<10?q:(r&255)>96?o+-87|0:0;j=0;k=p;l=h;break a;break}default:{v=0;break b}}while(0);switch(t|0){case 103:{c[781023]=c[b+28>>2];c[781024]=c[b+32>>2];j=v;k=u;l=h;break a;break}case 104:{c[b+28>>2]=c[781023];c[b+32>>2]=c[781024];j=v;k=u;l=h;break a;break}case 106:{m=a[u+1>>0]|0;if(!(m<<24>>24)){j=v;k=u;l=h;break a}p=m&255;o=p+-48|0;c[781023]=(o>>>0<10?o:(m&255)>96?p+-87|0:0)<<2;p=u+2|0;m=a[p>>0]|0;o=m&255;r=o+-48|0;c[781024]=(r>>>0<10?r:(m&255)>96?o+-87|0:0)<<2;j=v;k=p;l=h;break a;break}default:{p=(s|0)!=0;if(!(p|(t|0)!=111))c[b+132>>2]=0;if(p&(t|0)==111){o=u+1|0;m=a[o>>0]|0;r=m&255;if(!(m<<24>>24)){j=v;k=u;l=h;break a}q=u+2|0;if(!(a[q>>0]|0)){j=v;k=u;l=h;break a}w=u+3|0;if(!(a[w>>0]|0)){j=v;k=u;l=h;break a}x=r+-48|0;y=b+136|0;c[y>>2]=x>>>0<10?x:(m&255)>96?r+-87|0:0;r=a[o>>0]|0;if(r<<24>>24==36){c[y>>2]=c[b+36>>2];z=a[o>>0]|0}else z=r;if(z<<24>>24==33)c[y>>2]=c[b+36>>2]|65536;y=b+132|0;c[y>>2]=0;r=a[q>>0]|0;q=r&255;o=q+-48|0;m=(o>>>0<10?o:(r&255)>96?q+-87|0:0)<<5;c[y>>2]=m;q=a[w>>0]|0;r=q&255;o=r+-48|0;c[y>>2]=(o>>>0<10?o:(q&255)>96?r+-87|0:0)|m;j=v;k=w;l=h;break a}switch(t|0){case 114:{w=u+1|0;m=a[w>>0]|0;r=m&255;q=r+-48|0;c[b+24>>2]=(q>>>0<10?q:(m&255)>96?r+-87|0:0)<<2;c[b+20>>2]=1;j=v;k=w;l=h;break a;break}case 120:{w=u+1|0;r=a[w>>0]|0;if(!(r<<24>>24)){j=v;k=u;l=h;break a}m=r&255;q=m+-48|0;c[b+84>>2]=q>>>0<10?q:(r&255)>96?m+-87|0:0;m=c[b+12>>2]|0;r=a[w>>0]|0;q=r&255;o=q+-48|0;c[b+88>>2]=(d[m+1>>0]|0)-(d[m>>0]|0)+(o>>>0<10?o:(r&255)>96?q+-87|0:0);j=v;k=w;l=h;break a;break}case 121:{w=u+1|0;q=a[w>>0]|0;if(!(q<<24>>24)){j=v;k=u;l=h;break a}r=q&255;o=r+-48|0;c[b+92>>2]=o>>>0<10?o:(q&255)>96?r+-87|0:0;j=v;k=w;l=h;break a;break}case 115:{w=u+1|0;r=a[w>>0]|0;q=r&255;o=q+-48|0;c[b+108>>2]=(o>>>0<10?o:(r&255)>96?q+-87|0:0)<<2;j=v;k=w;l=h;break a;break}default:{if(!(p|(t|0)!=117))c[b+140>>2]=0;if(p&(t|0)==117){c[b+140>>2]=1;j=v;k=u;l=h;break a}switch(t|0){case 119:{c[b+56>>2]=s;j=v;k=u;l=h;break a;break}case 116:{c[b+60>>2]=s;j=v;k=u;l=h;break a;break}case 61:{c[b+64>>2]=s;j=v;k=u;l=h;break a;break}case 112:{c[b+68>>2]=s;j=v;k=u;l=h;break a;break}case 35:{c[b+76>>2]=s;j=v;k=u;l=h;break a;break}case 105:{c[b+80>>2]=s;j=v;k=u;l=h;break a;break}case 98:{c[b+72>>2]=s;j=v;k=u;l=h;break a;break}case 36:{c[b+20>>2]=s;j=v;k=u;l=h;break a;break}case 64:{p=b+8|0;w=u+1|0;q=c[p>>2]|0;if(w>>>0<q>>>0){r=a[w>>0]|0;o=r&255;m=o+-48|0;y=m>>>0<10?m:(r&255)>96?o+-87|0:0;o=u+2|0;if(o>>>0<q>>>0){r=a[o>>0]|0;m=r&255;x=m+-48|0;A=(x>>>0<10?x:(r&255)>96?m+-87|0:0)+(y<<4)|0;m=u+3|0;if(m>>>0<q>>>0){r=a[m>>0]|0;x=r&255;B=x+-48|0;C=(B>>>0<10?B:(r&255)>96?x+-87|0:0)+(A<<4)|0;x=u+4|0;if(x>>>0<q>>>0){r=a[x>>0]|0;B=r&255;D=B+-48|0;E=(D>>>0<10?D:(r&255)>96?B+-87|0:0)+(C<<4)|0;F=u+5|0}else{E=C;F=x}}else{E=A;F=m}}else{E=y;F=o}}else{E=0;F=w}c:do if(F>>>0<q>>>0){w=a[F>>0]|0;o=w&255;y=o+-48|0;m=y>>>0<10?y:(w&255)>96?o+-87|0:0;o=F+1|0;if(o>>>0<q>>>0){w=a[o>>0]|0;y=w&255;A=y+-48|0;x=(A>>>0<10?A:(w&255)>96?y+-87|0:0)+(m<<4)|0;y=F+2|0;if(y>>>0<q>>>0){w=a[y>>0]|0;A=w&255;C=A+-48|0;B=(C>>>0<10?C:(w&255)>96?A+-87|0:0)+(x<<4)|0;A=F+3|0;if(A>>>0<q>>>0){w=a[A>>0]|0;C=w&255;r=C+-48|0;G=(r>>>0<10?r:(w&255)>96?C+-87|0:0)+(B<<4)|0;H=F+4|0}else{G=B;H=A}}else{G=x;H=y}}else{G=m;H=o}if((G|0)>0&H>>>0<q>>>0){o=E;m=0;y=H;while(1){_k(2971096,c[781999]|0,o,d[y>>0]|0);x=y+1|0;jh(1);m=m+1|0;if((m|0)>=(G|0)){I=x;break c}if(x>>>0>=(c[p>>2]|0)>>>0){I=x;break}else{o=o+1|0;y=x}}}else I=H}else I=F;while(0);J=I+-1|0;break}default:J=u}if((t|0)==33){p=b+8|0;q=J+1|0;y=c[p>>2]|0;if(q>>>0<y>>>0){o=a[q>>0]|0;m=o&255;x=m+-48|0;A=x>>>0<10?x:(o&255)>96?m+-87|0:0;m=J+2|0;if(m>>>0<y>>>0){o=a[m>>0]|0;x=o&255;B=x+-48|0;C=(B>>>0<10?B:(o&255)>96?x+-87|0:0)+(A<<4)|0;x=J+3|0;if(x>>>0<y>>>0){o=a[x>>0]|0;B=o&255;w=B+-48|0;r=(w>>>0<10?w:(o&255)>96?B+-87|0:0)+(C<<4)|0;B=J+4|0;if(B>>>0<y>>>0){o=a[B>>0]|0;w=o&255;D=w+-48|0;K=(D>>>0<10?D:(o&255)>96?w+-87|0:0)+(r<<4)|0;L=J+5|0}else{K=r;L=B}}else{K=C;L=x}}else{K=A;L=m}}else{K=0;L=q}if(L>>>0<y>>>0){y=K;q=L;while(1){_k(2971096,c[781999]|0,y,d[q>>0]|0);m=q+1|0;jh(1);if(m>>>0<(c[p>>2]|0)>>>0){y=y+1|0;q=m}else{M=m;break}}}else M=L;q=M+-1|0;c[g>>2]=q;a[q>>0]=0;N=0;Ia=e;return N|0}else{q=(t|0)==46;y=(t|0)==58;switch(t|0){case 44:case 46:case 58:case 59:break;default:{j=v;k=J;l=h;break a}}p=J+1|0;do if((p+((t|2|0)==46?8:16)|0)>>>0<=(c[b+8>>2]|0)>>>0)if((t|1|0)==59){a[f>>0]=(c[2112+(d[J+2>>0]<<2)>>2]|0)+(c[2112+(d[p>>0]<<2)>>2]<<4);a[f+1>>0]=(c[2112+(d[J+4>>0]<<2)>>2]|0)+(c[2112+(d[J+3>>0]<<2)>>2]<<4);a[f+2>>0]=(c[2112+(d[J+6>>0]<<2)>>2]|0)+(c[2112+(d[J+5>>0]<<2)>>2]<<4);a[f+3>>0]=(c[2112+(d[J+8>>0]<<2)>>2]|0)+(c[2112+(d[J+7>>0]<<2)>>2]<<4);a[f+4>>0]=(c[2112+(d[J+10>>0]<<2)>>2]|0)+(c[2112+(d[J+9>>0]<<2)>>2]<<4);a[f+5>>0]=(c[2112+(d[J+12>>0]<<2)>>2]|0)+(c[2112+(d[J+11>>0]<<2)>>2]<<4);a[f+6>>0]=(c[2112+(d[J+14>>0]<<2)>>2]|0)+(c[2112+(d[J+13>>0]<<2)>>2]<<4);a[f+7>>0]=(c[2112+(d[J+16>>0]<<2)>>2]|0)+(c[2112+(d[J+15>>0]<<2)>>2]<<4);if(y)O=0;else O=c[b+72>>2]|0;P=Rk(b,f,8,8,O)|0;Q=J+17|0;break}else{if(q)R=0;else R=c[b+72>>2]|0;P=Rk(b,p,8,8,R)|0;Q=J+9|0;break}else{P=0;Q=p}while(0);j=(P|0)>(v|0)?P:v;k=Q+-1|0;l=h;break a}}}}}break}case 7:{p=h+1|0;q=a[p>>0]|0;d:do if((q+-48&255)>=10){y=cr(0)|0;m=(y|0)==((c[781999]|0)+42856|0);y=cr(1)|0;A=(y|0)==((c[781999]|0)+42856|0)|m;m=cr(2)|0;y=(m|0)==((c[781999]|0)+42856|0)|A;A=cr(3)|0;m=c[781999]|0;if((A|0)==(m+42856|0)|y){y=cr(0)|0;A=(y|0)==((c[781999]|0)+42176|0);y=cr(1)|0;x=(y|0)==((c[781999]|0)+42176|0)|A;A=cr(2)|0;y=(A|0)==((c[781999]|0)+42176|0)|x;x=cr(3)|0;A=c[781999]|0;if((x|0)==(A+42176|0)|y){y=cr(0)|0;x=(y|0)==((c[781999]|0)+41496|0);y=cr(1)|0;C=(y|0)==((c[781999]|0)+41496|0)|x;x=cr(2)|0;y=(x|0)==((c[781999]|0)+41496|0)|C;C=cr(3)|0;x=c[781999]|0;if((C|0)==(x+41496|0)|y){y=cr(0)|0;C=(y|0)==((c[781999]|0)+40816|0);y=cr(1)|0;B=(y|0)==((c[781999]|0)+40816|0)|C;C=cr(2)|0;y=(C|0)==((c[781999]|0)+40816|0)|B;B=cr(3)|0;C=c[781999]|0;S=C;T=(B|0)==(C+40816|0)|y?63:60;U=p;n=93}else{S=x;T=61;U=p;n=93}}else{S=A;T=62;U=p;n=93}}else{S=m;T=63;U=p;n=93}}else{m=(q&255)+-48|0;A=h+2|0;x=a[A>>0]|0;if((x+-48&255)<10){y=(m*10|0)+-48+(x&255)|0;C=(y|0)<63?y:63;y=h+3|0;V=a[y>>0]|0;W=(C|0)>0?C:0;X=y}else{V=x;W=m;X=A}switch(V<<24>>24){case 0:case 10:case 32:{Y=(c[781999]|0)+16+(W*680|0)|0;Z=X;break d;break}default:{S=c[781999]|0;T=W;U=X;n=93;break d}}}while(0);e:do if((n|0)==93){q=S+16+(T*680|0)|0;wq(q,0,680);p=S+16+(T*680|0)+8|0;c[p>>2]=4;A=S+16+(T*680|0)+12|0;m=S+16+(T*680|0)+16|0;x=U;f:while(1){switch(a[x>>0]|0){case 0:case 10:case 32:{n=103;break f;break}case 115:{y=a[x+1>>0]|0;if(!(y<<24>>24)){_=0;break f}C=y&255;B=C+-48|0;c[p>>2]=B>>>0<10?B:(y&255)>96?C+-87|0:0;$=2;break}case 108:{C=a[x+1>>0]|0;y=C&255;if(!(C<<24>>24)){_=0;break f}B=x+2|0;if(!(a[B>>0]|0)){_=0;break f}r=y+-48|0;c[A>>2]=r>>>0<10?r:(C&255)>96?y+-87|0:0;y=a[B>>0]|0;B=y&255;C=B+-48|0;c[m>>2]=C>>>0<10?C:(y&255)>96?B+-87|0:0;$=3;break}case 122:{B=a[x+1>>0]|0;if(!(B<<24>>24)){_=0;break f}y=B&255;C=y+-48|0;c[q>>2]=(C>>>0<10?C:(B&255)>96?y+2147483561|0:0)<<1;$=2;break}default:{_=0;break f}}x=x+$|0}if((n|0)==103){c[p>>2]=16;c[S+16+(T*680|0)+20>>2]=46;c[S+16+(T*680|0)+24>>2]=0;c[S+16+(T*680|0)+28>>2]=5;c[S+16+(T*680|0)+32>>2]=0;_=1}m=0;A=5;y=3;B=_;C=x;r=5;while(1){w=B>>>0<32;o=m;D=A;aa=y;ba=C;ca=r;g:while(1){da=o;ea=aa;fa=ba;ga=ca;h:while(1){ha=da;ia=ea;ja=fa;i:while(1){ka=ia;la=ja;j:while(1){ma=a[la>>0]|0;switch(ma<<24>>24){case 32:case 0:{Y=q;Z=la;break e;break}default:{}}if(!(w&ma<<24>>24!=10)){Y=q;Z=la;break e}switch(ma<<24>>24){case 46:{n=116;break g;break}case 0:{n=125;break g;break}case 98:{n=124;break g;break}case 100:{na=2;n=127;break g;break}case 101:{n=120;break g;break}case 102:{n=121;break g;break}case 103:{n=122;break g;break}case 97:{n=123;break g;break}case 105:{break h;break}case 118:{n=113;break i;break}case 62:case 60:{n=118;break i;break}case 120:{break j;break}case 93:case 91:break;default:{n=126;break g}}oa=(ma<<24>>24==91?-1:1)+ka|0;pa=(oa|0)<5?oa:5;ka=(pa|0)>0?pa:0;la=la+1|0}pa=a[la+1>>0]|0;oa=pa&255;qa=oa+-48|0;ha=(qa>>>0<10?qa:(pa&255)>96?oa+1|0:0)&7;ia=ka;ja=la+2|0}if((n|0)==113){n=0;ja=a[la+1>>0]|0;ia=ja&255;oa=ia+-48|0;ra=la+2|0;sa=(oa>>>0<10?oa:(ja&255)>96?ia+1|0:0)&7}else if((n|0)==118){n=0;ia=(ma<<24>>24==60?-1:1)+ga|0;ja=(ia|0)<7?ia:7;ra=la+1|0;sa=(ja|0)>0?ja:0}da=ha;ea=ka;fa=ra;ga=sa}fa=a[la+1>>0]|0;ea=fa&255;da=ea+-48|0;o=ha;D=(da>>>0<10?da:(fa&255)>96?ea+9|0:0)&15;aa=ka;ba=la+2|0;ca=ga}if((n|0)==116){n=0;ta=ka;ua=la+1|0}else if((n|0)==120){n=0;na=4;n=127}else if((n|0)==121){n=0;na=5;n=127}else if((n|0)==122){n=0;na=7;n=127}else if((n|0)==123){n=0;na=9;n=127}else if((n|0)==124){n=0;na=11;n=127}else if((n|0)==125){n=0;na=12;n=127}else if((n|0)==126){n=0;na=0;n=127}if((n|0)==127){n=0;ca=S+16+(T*680|0)+20+(B*20|0)|0;c[ca>>2]=na;c[S+16+(T*680|0)+20+(B*20|0)+4>>2]=D&7;c[S+16+(T*680|0)+20+(B*20|0)+8>>2]=ga&7;c[S+16+(T*680|0)+20+(B*20|0)+12>>2]=ha;ba=la+1|0;aa=a[ba>>0]|0;o=la+2|0;if(aa<<24>>24==35){w=na+1|0;c[ca>>2]=w;va=a[o>>0]|0;wa=w;xa=o}else{va=aa;wa=na;xa=ba}if(va<<24>>24==45){ba=wa+-1|0;c[ca>>2]=ba;aa=xa+1|0;ya=a[aa>>0]|0;za=ba;Aa=aa}else{ya=va;za=wa;Aa=xa}aa=(ya+-48&255)<6;ba=aa?(ya&255)+-48|0:ka;o=(ba*12|0)+za|0;w=(o|0)<63?o:63;c[ca>>2]=(w|0)>0?w:0;ta=ba;ua=aa?Aa+1|0:Aa}m=ha;A=D;y=ta;B=B+1|0;C=ua;r=ga}}while(0);if((c[780901]|0)==0&(c[554964]|0)!=0){lr(0,0);or();c[554964]=0}Zq(Y,0,0,c[781999]|0,-1)|0;j=0;k=(a[Z>>0]|0)==10?Z+-1|0:Z;l=h;break}case 8:{c[781023]=(c[781023]|0)-(c[b+104>>2]|0);j=0;k=h;l=h;break}case 9:{r=c[b+12>>2]|0;C=r+5|0;if(a[C>>0]&2)c[781023]=(c[781023]|0)-(c[781025]|0);B=c[b+108>>2]|0;if(!B){y=r+6|0;r=a[y>>0]|0;A=(r<<24>>24==0?16:r&255)+(c[781023]|0)|0;c[781023]=A;Ba=A;Ca=d[y>>0]|0}else{y=(c[781023]|0)+B|0;c[781023]=y;Ba=y;Ca=B}B=Ba-((Ba|0)%(((Ca|0)==0?16:Ca)|0)|0)|0;c[781023]=B;if(!(a[C>>0]&2)){j=0;k=h;l=h}else{c[781023]=(c[781025]|0)+B;j=0;k=h;l=h}break}case 10:{c[781023]=c[b+28>>2];B=b+48|0;C=c[B>>2]|0;y=(C|0)!=0;if(!(c[b+16>>2]|0)){if(y)Da=C;else Da=c[b+92>>2]|0;c[781024]=(c[781024]|0)+Da}else{if(y)Ea=C;else Ea=c[b+92>>2]|0;c[781029]=Ea;ab();c[781029]=6}c[B>>2]=0;j=0;k=h;l=h;break}case 11:{B=c[781023]|0;C=b+96|0;y=c[C>>2]|0;c[781023]=y;c[C>>2]=B;B=c[781024]|0;C=b+100|0;A=c[C>>2]|0;c[781024]=A;c[C>>2]=B;c[b+112>>2]=1;B=h+1|0;C=a[B>>0]|0;r=C&255;m=r+-48|0;q=m>>>0<10?m:(C&255)>96?r+-87|0:0;r=(q|0)/4|0;c[781023]=y+-2+(q-(r<<2));c[781024]=A+-8+r;j=0;k=B;l=h;break}case 12:{B=h+1|0;r=a[B>>0]|0;A=r&255;q=A+-48|0;y=q>>>0<10?q:(r&255)>96?A+-87|0:0;c[b+36>>2]=y;c[781022]=y;j=0;k=B;l=h;break}case 13:{c[781023]=c[b+28>>2];j=0;k=h;l=h;break}case 14:{c[b+12>>2]=3150016;c[b+84>>2]=d[3150016];c[b+88>>2]=d[3150017];c[b+92>>2]=d[3150018];c[b+120>>2]=d[3150019];c[b+124>>2]=d[3150020];j=0;k=h;l=h;break}case 15:{c[b+12>>2]=1442176;c[b+84>>2]=d[1442176];c[b+88>>2]=d[1442177];c[b+92>>2]=d[1442178];c[b+120>>2]=d[1442179];c[b+124>>2]=d[1442180];j=0;k=h;l=h;break}default:n=156}while(0);if((n|0)==156){n=c[(i<<24>>24<0?b+88|0:b+84|0)>>2]|0;Ea=(c[b+72>>2]|0)!=0&1;Da=c[b+12>>2]|0;Ca=i&255;if(!(a[Da+5>>0]&1)){Fa=n;Ga=Ea}else{i=(d[Da+(Ca>>>1)>>0]|0)>>>(Ca<<2&4);Fa=n+-4+(i+4&7)|0;Ga=i&8|Ea}Ea=Rk(b,Da+(Ca<<3)|0,Fa,c[b+92>>2]|0,Ga)|0;j=(Ea|0)>0?Ea:0;k=h;l=h}h=c[554378]|0;Ea=c[781023]|0;c[554378]=(h|0)>(Ea|0)?h:Ea;Ea=c[554379]|0;h=c[781024]|0;c[554379]=(Ea|0)>(h|0)?Ea:h;h=b+116|0;b=c[h>>2]|0;if((b|0)>0){c[h>>2]=b+-1;Ha=l}else Ha=k+1|0;c[g>>2]=Ha;N=j;Ia=e;return N|0}function Tk(){Wv(2217544,0,144)|0;return}function Uk(){zq(c[554386]|0);c[554386]=0;return}function Vk(){var b=0,e=0,f=0,g=0,h=0,i=0,j=0;b=$k(2971096,c[781999]|0,24408)|0;e=$k(2971096,c[781999]|0,24409)|0;f=$k(2971096,c[781999]|0,24410)|0;g=$k(2971096,c[781999]|0,24411)|0;h=(a[3152374]&16)==0;i=h?e:0;e=h?f:0;f=h?g:0;g=(b&1|0)==0?2:b;b=(g&128|0)==0?1442176:3150016;c[554389]=b;c[554404]=g>>>1&1;c[554400]=g>>>2&1;c[554401]=g>>>3&1;c[554405]=g>>>4&1;c[554406]=g>>>5&1;c[554402]=g>>>6&1;c[554403]=0;c[554413]=0;g=a[b>>0]|0;c[554407]=g&255;h=a[b+1>>0]|0;c[554408]=h&255;j=a[b+2>>0]|0;c[554409]=j&255;c[554416]=d[b+3>>0];c[554417]=d[b+4>>0];if(!((h|g|j)<<24>>24)){c[554407]=8;c[554409]=8;c[554408]=8}j=i&15;if(j|0)c[554407]=j;if(i&240|0)c[554409]=i>>>4&15;i=e&15;if(i|0)c[554408]=i;if(e&240|0)c[554413]=(e>>>2&60)+4;e=f&15;if(e|0)c[554416]=e;if(!(f&240)){c[554419]=0;c[554420]=0;c[554421]=0;return}c[554417]=f>>>4&15;c[554419]=0;c[554420]=0;c[554421]=0;return}function Wk(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=c[554386]|0;if(!b){d=0;return d|0}e=c[554399]|0;if((e|0)>0){c[554399]=e+-1;d=1;return d|0}e=c[554387]|0;do if(a[e>>0]|0){f=e;while(1){g=Sk(2217544)|0;h=(c[554387]|0)-f|0;jh((h|0)>1?h:1);if(g|0){d=g;i=10;break}f=c[554387]|0;if(!(a[f>>0]|0)){i=8;break}}if((i|0)==8){j=c[554386]|0;break}else if((i|0)==10)return d|0}else j=b;while(0);zq(j);c[554386]=0;d=0;return d|0}function Xk(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(!d){h=0;return h|0}if(!(c[554384]|0)){c[554384]=1;wq(1442176,0,2048);i=c[742805]|0;j=0;do{k=c[(c[i>>2]|0)+(j<<2)>>2]|0;l=k+4|0;if((c[l>>2]|0)>0){m=j<<3;n=k+16|0;o=0;do{p=c[k>>2]|0;if((p|0)>0){q=c[(c[n>>2]|0)+(o<<2)>>2]|0;r=0;s=0;while(1){t=((a[q+s>>0]|0)==0?0:1<<s)|r;s=s+1|0;if((s|0)==(p|0)){u=t;break}else r=t}}else u=0;a[1442176+(o+m)>>0]=u;o=o+1|0}while((o|0)<(c[l>>2]|0))}j=j+1|0}while((j|0)!=256);a[1442176]=4;a[1442177]=8;a[1442178]=6;a[1442179]=0;a[1442180]=0}zq(c[554386]|0);wq(2217544,0,144);j=vq(e+32|0)|0;c[554386]=j;Vv(j|0,d|0,e|0)|0;Vk();d=c[554386]|0;c[554387]=d;j=d+e|0;c[554388]=j;c[554391]=f&16;c[554392]=c[b+32>>2];c[554390]=f&32;c[554393]=c[781025];c[554394]=c[781024];c[554395]=g&15;c[554396]=g>>>4&15;c[554397]=b;c[554399]=0;c[554415]=0;c[554398]=0;c[554412]=c[554407];if(!(a[3152374]&4)){a[j>>0]=10;a[(c[554386]|0)+(e+1)>>0]=0;v=c[554386]|0}else v=d;if(!v){h=0;return h|0}d=c[554399]|0;if((d|0)>0){c[554399]=d+-1;h=1;return h|0}d=c[554387]|0;do if(a[d>>0]|0){e=d;while(1){j=Sk(2217544)|0;b=(c[554387]|0)-e|0;jh((b|0)>1?b:1);if(j|0){h=j;w=23;break}e=c[554387]|0;if(!(a[e>>0]|0)){w=21;break}}if((w|0)==21){x=c[554386]|0;break}else if((w|0)==23)return h|0}else x=v;while(0);zq(x);c[554386]=0;h=0;return h|0}function Yk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a=(b|0)!=0;if(!e){if(!a){f=0;return f|0}g=b+-4|0;h=c[g>>2]|0;zq(g);c[781046]=(c[781046]|0)-h;f=0;return f|0}h=c[781046]|0;g=(c[798390]|0)+h|0;if((g|0)>(((c[484611]|0)==0?2359296:2113536)|0)){c[798465]=1;Bg();i=c[781046]|0;j=i;k=(c[798390]|0)+i|0}else{j=h;k=g}if((k|0)>67108864){Lg(62069);Mg(62091,(c[781046]|0)/1048576|0,e>>>10);c[798467]=1;f=0;return f|0}if(a){k=b+-4|0;g=c[k>>2]|0;c[781046]=j-g;j=yq(k,e+4|0)|0;l=(g|0)==0?0:e;m=j}else{l=0;m=yq(0,e+4|0)|0}j=(b|0)==0;b=j&(d|0)==0&(c[798388]|0)!=0?0:j&(d+-7|0)>>>0<13?32:a?l:(d|0)!=2&(j&d>>>0<7)?e:0;c[781046]=b+(c[781046]|0);c[m>>2]=b;f=m+4|0;return f|0} +function cs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=Ia;Ia=Ia+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;j=ka(34)|0;if(!(c[554961]|0))k=1;else k=(ka(33)|0)==0;if((j|0)!=0&k){if(a|0)c[a>>2]=ka(35)|0;if(b|0)c[b>>2]=ka(36)|0;if(!d){Ia=e;return}c[d>>2]=ka(45)|0;Ia=e;return}k=(L(f|0,g|0)|0)&255;if(c[554961]|0?ka(33)|0:0){c[f>>2]=(c[742768]|0)/4|0;c[g>>2]=(c[742769]|0)/4|0}N(0,h|0,i|0);j=c[h>>2]|0;h=c[i>>2]|0;if((j|0)==0|(h|0)==0){Ia=e;return}i=c[742748]|0;l=c[742749]|0;if(!(+(j|0)/+(h|0)>=+(i|0)/+(l|0))){m=(h-((B(l,j)|0)/(i|0)|0)|0)/2|0;n=(c[g>>2]|0)-m|0;c[g>>2]=n;m=(B(c[742748]|0,c[f>>2]|0)|0)/(j|0)|0;c[f>>2]=m;o=j;p=m;q=B(c[742748]|0,n)|0}else{n=(j-((B(i,h)|0)/(l|0)|0)|0)/2|0;i=(B((c[f>>2]|0)-n|0,l)|0)/(h|0)|0;c[f>>2]=i;o=h;p=i;q=B(c[g>>2]|0,l)|0}l=(q|0)/(o|0)|0;c[g>>2]=l;if(a|0)c[a>>2]=p;if(b|0)c[b>>2]=l;if(!d){Ia=e;return}c[d>>2]=k<<1&4|k&1|k>>>1&2;Ia=e;return}function ds(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=d;c[e>>2]=a;wt(b,103129,e)|0;Ia=d;return}function es(a,b){a=a|0;b=b|0;ku(b,a)|0;return}function fs(a,b){a=a|0;b=b|0;ku(b,a)|0;return}function gs(a,b){a=a|0;b=b|0;ku(b,a)|0;return}function hs(b){b=b|0;var c=0,d=0;if(!(ka(26)|0)){qv(103229)|0;return 0}ka(46)|0;c=bu(b)|0;if((c|0)>0){d=0;do{la(47,a[b+d>>0]|0)|0;d=d+1|0}while((d|0)!=(c|0))}ka(48)|0;return 0}function is(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=Ia;Ia=Ia+16|0;d=b+4|0;e=b;f=(a|0)==0;g=c[554961]|0;if(f|(g|0)!=0)h=g;else{L(d|0,e|0)|0;if(!(ka(34)|0))i=c[e>>2]|0;else{c[d>>2]=ka(35)|0;g=ka(36)|0;c[e>>2]=g;i=g}c[742768]=c[d>>2]<<2;c[742769]=i<<2;h=c[554961]|0}if(!(f&(h|0)!=0)){c[554961]=a;Ia=b;return}qv(103377)|0;ka(49)|0;c[554961]=a;Ia=b;return}function js(a){a=a|0;return}function ks(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=ts(a,104706)|0;if(e|0){Ho(b,1,d,e)|0;Ro(e)}e=c[a+1024>>2]|0;if(!e){zq(a);return}Sa[e&7](a);zq(a);return}function ls(a){a=a|0;var b=0,d=0;b=Ia;Ia=Ia+16|0;d=b;if(a|0){c[d>>2]=a;vv(103443,d)|0}Nu(c[8745]|0)|0;d=c[a+1028>>2]|0;if(!d){zq(a);Ia=b;return}Sa[d&7](a);zq(a);Ia=b;return}function ms(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=vq(1032)|0;ku(f,b)|0;c[f+1024>>2]=d;c[f+1028>>2]=e;qa(a|0,f|0,2,4);return 0}function ns(){var a=0;if(c[554962]|0){a=0;return a|0}a=ka(41)|0;return a|0}function os(a){a=a|0;var b=0;b=c[742772]|0;if(b|0)zq(b);b=vq((bu(a)|0)+1|0)|0;c[742772]=b;ku(b,a)|0;ka(50)|0;return 0}function ps(a){a=a|0;ka(51)|0;ma(52,a|0,bu(a)|0)|0;return ka(53)|0}function qs(){if(c[742767]|0)return;c[742767]=1;ka(54)|0;return}function rs(){var b=0,d=0,e=0;if(ka(55)|0){Wv(1802912,0,131073)|0;ma(56,1802912,131072)|0;b=xq((bu(1802912)|0)+1|0)|0;ku(b,1802912)|0;d=b;return d|0}b=c[742772]|0;if(!b){e=xq(2)|0;a[e>>0]=0;d=e;return d|0}else{e=vq((bu(b)|0)+1|0)|0;ku(e,c[742772]|0)|0;d=e;return d|0}return 0}function ss(a){a=a|0;return 0}function ts(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=Ia;Ia=Ia+1296|0;f=e+1280|0;g=e+1024|0;h=e+512|0;i=e;Zo(b,0,h,i);c[f>>2]=h;c[f+4>>2]=i;wt(g,104363,f)|0;f=c[742773]|0;a:do if((f|0)>0){i=0;while(1){h=c[1934e3+(i<<2)>>2]|0;i=i+1|0;if(!(au(g,h+24|0)|0)){j=h;break a}if((i|0)>=(f|0)){j=0;break}}}else j=0;while(0);switch(a[d>>0]|0){case 114:{if(!j){k=0;Ia=e;return k|0}c[j+20>>2]=0;k=j;Ia=e;return k|0}case 119:{if(!j){d=Aq(0)|0;c[d+4>>2]=1;Rs(d+24|0,g)|0;g=c[742773]|0;c[1934e3+(g<<2)>>2]=d;c[742773]=g+1;k=d;Ia=e;return k|0}else{c[j+16>>2]=0;c[j+20>>2]=0;k=j;Ia=e;return k|0}break}default:{k=0;Ia=e;return k|0}}return 0}function us(a){a=a|0;var b=0,d=0,e=0;b=c[742773]|0;a:do if((b|0)>0){d=0;while(1){if((c[1934e3+(d<<2)>>2]|0)==(a|0)){e=1;break a}d=d+1|0;if((d|0)>=(b|0)){e=0;break}}}else e=0;while(0);return e|0}function vs(){var a=0,b=0,d=0;a=xq(48036)|0;Wv(a|0,0,48036)|0;c[a>>2]=vq(65538)|0;b=a+4|0;c[b>>2]=Sn(128,128,8)|0;c[a+12>>2]=Sn(128,64,8)|0;c[a+8>>2]=c[b>>2];b=a+16|0;d=0;do{c[b+(d*680|0)+8>>2]=(d|0)==0?1:16;d=d+1|0}while((d|0)!=64);d=a+43536|0;b=0;do{c[d+(b<<4)>>2]=65;c[d+(b<<4)+4>>2]=66;c[d+(b<<4)+8>>2]=67;c[d+(b<<4)+12>>2]=68;b=b+1|0}while((b|0)!=64);c[a+45868>>2]=Ms()|0;c[a+45872>>2]=Ms()|0;c[a+45876>>2]=Ms()|0;c[a+45880>>2]=Ms()|0;Wv(a+45884|0,-1,2144)|0;return a|0}function ws(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!a)return;Tn(c[a+4>>2]|0)|0;Tn(c[a+12>>2]|0)|0;er(a);$q(a+16|0);$q(a+696|0);$q(a+1376|0);$q(a+2056|0);$q(a+2736|0);$q(a+3416|0);$q(a+4096|0);$q(a+4776|0);$q(a+5456|0);$q(a+6136|0);$q(a+6816|0);$q(a+7496|0);$q(a+8176|0);$q(a+8856|0);$q(a+9536|0);$q(a+10216|0);$q(a+10896|0);$q(a+11576|0);$q(a+12256|0);$q(a+12936|0);$q(a+13616|0);$q(a+14296|0);$q(a+14976|0);$q(a+15656|0);$q(a+16336|0);$q(a+17016|0);$q(a+17696|0);$q(a+18376|0);$q(a+19056|0);$q(a+19736|0);$q(a+20416|0);$q(a+21096|0);$q(a+21776|0);$q(a+22456|0);$q(a+23136|0);$q(a+23816|0);$q(a+24496|0);$q(a+25176|0);$q(a+25856|0);$q(a+26536|0);$q(a+27216|0);$q(a+27896|0);$q(a+28576|0);$q(a+29256|0);$q(a+29936|0);$q(a+30616|0);$q(a+31296|0);$q(a+31976|0);$q(a+32656|0);$q(a+33336|0);$q(a+34016|0);$q(a+34696|0);$q(a+35376|0);$q(a+36056|0);$q(a+36736|0);$q(a+37416|0);$q(a+38096|0);$q(a+38776|0);$q(a+39456|0);$q(a+40136|0);$q(a+40816|0);$q(a+41496|0);$q(a+42176|0);$q(a+42856|0);zq(c[a>>2]|0);b=a+48028|0;d=a+48032|0;e=c[d>>2]|0;if((c[b>>2]|0)>0){f=e;g=0;while(1){Cq(c[f+(g<<2)>>2]|0);g=g+1|0;h=c[d>>2]|0;if((g|0)>=(c[b>>2]|0)){i=h;break}else f=h}}else i=e;zq(i);Ns(c[a+45868>>2]|0);Ns(c[a+45872>>2]|0);Ns(c[a+45876>>2]|0);Ns(c[a+45880>>2]|0);Wv(a|0,0,48036)|0;zq(a);if((c[781999]|0)!=(a|0))return;c[781999]=0;return}function xs(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;e=Ia;Ia=Ia+80|0;f=e+48|0;g=e+40|0;h=e+24|0;i=e+8|0;j=e;k=e+68|0;l=e+64|0;c[779979]=0;m=vq(196609)|0;n=vq(196609)|0;a[m>>0]=0;o=So(m,196608,b)|0;if((d|0)!=0?(bv(o,104368)|0)==0:0){c[k>>2]=43;p=1}else q=2;do if((q|0)==2){d=o;a:while(1){switch(a[d>>0]|0){case 0:{break a;break}case 112:case 10:{q=7;break a;break}default:{}}d=d+1|0}if((q|0)==7?(ut(d,104368,16)|0)==0:0){So(m,196608,b)|0;c[k>>2]=0;c[j>>2]=k;Su(m,104385,j)|0;if(!((c[555803]|0)==0&(c[k>>2]|0)>43)){p=0;break}zq(m);zq(n);c[779979]=1;r=0;Ia=e;return r|0}zq(m);zq(n);r=0;Ia=e;return r|0}while(0);j=vs()|0;c[j+45860>>2]=c[k>>2];o=0;do{Wv(j+16+(o*680|0)|0,0,680)|0;c[j+16+(o*680|0)+8>>2]=(o|0)==0?1:16;o=o+1|0}while((o|0)!=64);o=j+4|0;Nn(c[o>>2]|0);s=j+12|0;Nn(c[s>>2]|0);Wv(j+44832|0,0,1024)|0;a[c[j>>2]>>0]=0;b:do if(!(No(b)|0)){t=j+48028|0;u=j+48032|0;v=m+3|0;w=j+45856|0;x=0;y=p;z=0;A=0;B=0;C=0;D=0;E=0;c:while(1){if(!y){Wv(m|0,0,196609)|0;So(m,196608,b)|0}if((No(b)|0)!=0?(a[m>>0]|0)==0:0){F=x;G=z;H=A;I=-1;J=C;K=D;L=E}else q=19;d:do if((q|0)==19){q=0;if(ut(m,104396,8)|0)if(ut(m,104405,7)|0)if(ut(m,104413,7)|0)if(ut(m,104421,7)|0)if(ut(m,104429,7)|0)if(ut(m,104437,7)|0)if(ut(m,104445,9)|0)if(ut(m,104455,9)|0)if(!(ut(m,104465,15)|0)){F=x;G=z;H=A;I=7;J=C;K=D;L=E}else{if(!(ut(m,104481,7)|0)){M=(c[t>>2]|0)+1|0;c[t>>2]=M;c[u>>2]=yq(c[u>>2]|0,M<<2)|0;M=Aq(256)|0;N=(c[t>>2]|0)+-1|0;c[(c[u>>2]|0)+(N<<2)>>2]=M;M=(bu(m)|0)+1|0;Ho(m,1,M,c[(c[u>>2]|0)+(N<<2)>>2]|0)|0;F=x;G=z;H=A;I=8;J=C;K=D;L=E;break}if((B|0)==1){Ls(m,n)|0;N=c[j>>2]|0;M=bu(N)|0;if(((bu(n)|0)+M|0)>>>0>=65536)break c;lu(N,n)|0;if(!(No(b)|0)){N=c[j>>2]|0;M=N+(bu(N)|0)|0;a[M>>0]=10;a[M+1>>0]=0}a[(c[j>>2]|0)+65536>>0]=0;F=x;G=z;H=A;I=1;J=C;K=D;L=E;break}if((B|0)==2&(E|0)<128){M=0;do{N=a[m+M>>0]|0;O=N+-48|0;a[(c[(c[(c[o>>2]|0)+16>>2]|0)+(E<<2)>>2]|0)+M>>0]=O>>>0<10?O:(N+-97|0)>>>0<6?N+169|0:0;M=M+1|0}while((M|0)!=128);P=E+1|0}else P=E;if((x|0)<2&(B|0)==10){M=x<<7;N=(c[k>>2]|0)>2;O=0;do{if(N){Q=O<<1;R=a[m+Q>>0]|0;S=R+-48|0;T=a[m+(Q|1)>>0]|0;Q=T+-48|0;U=((S>>>0<10?S:(R+-97|0)>>>0<6?R+268435369|0:0)<<4)+(Q>>>0<10?Q:(T+-97|0)>>>0<6?T+-87|0:0)|0}else{T=a[m+O>>0]|0;Q=T+-48|0;U=Q>>>0<10?Q:(T+-97|0)>>>0<6?T+-87|0:0}c[j+44832+(O+M<<2)>>2]=U;O=O+1|0}while((O|0)!=128);V=x+1|0}else V=x;if((A|0)<64&(B|0)==3){O=0;do{M=O<<1;N=a[m+M>>0]|0;T=N+-48|0;Q=a[m+(M|1)>>0]|0;M=Q+-48|0;a[(c[(c[(c[s>>2]|0)+16>>2]|0)+(A<<2)>>2]|0)+O>>0]=((T>>>0<10?T:(N+-97|0)>>>0<6?N+9|0:0)<<4)+(M>>>0<10?M:(Q+-97|0)>>>0<6?Q+169|0:0);O=O+1|0}while((O|0)!=128);W=A+1|0}else W=A;if((D|0)<64&(B|0)==4){c[l>>2]=0;c[i>>2]=l;c[i+4>>2]=j+16+(D*680|0)+8;c[i+8>>2]=j+16+(D*680|0)+12;c[i+12>>2]=j+16+(D*680|0)+16;Su(m,104489,i)|0;O=c[l>>2]|0;c[j+16+(D*680|0)+4>>2]=O&1;c[j+16+(D*680|0)>>2]=O&254;O=0;do{Q=j+16+(D*680|0)+20+(O*20|0)|0;M=j+16+(D*680|0)+20+(O*20|0)+4|0;N=j+16+(D*680|0)+20+(O*20|0)+8|0;T=j+16+(D*680|0)+20+(O*20|0)+12|0;c[h>>2]=Q;c[h+4>>2]=M;c[h+8>>2]=N;c[h+12>>2]=T;Su(m+((O*5|0)+8)|0,104506,h)|0;R=c[T>>2]|0;if(R&8|0)c[j+16+(D*680|0)+20+(O*20|0)+16>>2]=128;S=c[M>>2]|0;if(S&8|0)c[j+16+(D*680|0)+20+(O*20|0)+16>>2]=128;c[T>>2]=R&7;c[M>>2]=S&7;c[N>>2]=c[N>>2]&7;c[Q>>2]=c[Q>>2]&63;O=O+1|0}while((O|0)!=32);X=D+1|0}else X=D;if((C|0)<64&(B|0)==5){if((c[k>>2]|0)>2){c[g>>2]=j+44560+(C<<2);Su(m,104520,g)|0;Y=v}else Y=m;O=j+43536+(C<<4)|0;Q=j+43536+(C<<4)+4|0;N=j+43536+(C<<4)+8|0;S=j+43536+(C<<4)+12|0;c[f>>2]=O;c[f+4>>2]=Q;c[f+8>>2]=N;c[f+12>>2]=S;Su(Y,104489,f)|0;do if((c[k>>2]|0)<4){if(!(c[O>>2]|0))c[O>>2]=65;if(!(c[Q>>2]|0))c[Q>>2]=65;if(!(c[N>>2]|0))c[N>>2]=65;if(c[S>>2]|0)break;c[S>>2]=65}while(0);F=V;G=z;H=W;I=5;J=C+1|0;K=X;L=P;break}if((z|0)<128&(B|0)==6){if(!(c[w>>2]|0))c[w>>2]=Sn(128,128,8)|0;S=0;do{N=a[m+S>>0]|0;Q=N+-48|0;do if(Q>>>0>=10)if((N+-97|0)>>>0<22){Z=N+-87|0;break}else{Z=(N+-65|0)>>>0<22?N+-55|0:0;break}else Z=Q;while(0);a[(c[(c[(c[w>>2]|0)+16>>2]|0)+(z<<2)>>2]|0)+S>>0]=(Z|0)>15?Z+112|0:Z;S=S+1|0}while((S|0)!=128);_=z+1|0}else _=z;switch(B|0){case 7:{S=0;while(1){Q=S<<1;N=a[m+Q>>0]|0;O=N+-48|0;M=a[m+(Q|1)>>0]|0;Q=M+-48|0;a[j+45884+S>>0]=((O>>>0<10?O:(N+-97|0)>>>0<6?N+9|0:0)<<4)+(Q>>>0<10?Q:(M+-97|0)>>>0<6?M+169|0:0);S=S+1|0;if((S|0)==2144){F=V;G=_;H=W;I=0;J=C;K=X;L=P;break d}}break}case 8:break;default:{F=V;G=_;H=W;I=B;J=C;K=X;L=P;break d}}S=c[(c[u>>2]|0)+((c[t>>2]|0)+-1<<2)>>2]|0;M=c[S+16>>2]|0;Q=bu(m)|0;if((Q+M|0)>>>0<262144)Ho(m,1,Q,S)|0;if(No(b)|0){F=V;G=_;H=W;I=8;J=C;K=X;L=P;break}Ho(104526,1,1,S)|0;F=V;G=_;H=W;I=8;J=C;K=X;L=P}else{F=x;G=z;H=A;I=6;J=C;K=D;L=E}else{F=x;G=z;H=A;I=5;J=C;K=D;L=E}else{F=x;G=z;H=A;I=4;J=C;K=D;L=E}else{F=x;G=z;H=A;I=3;J=C;K=D;L=E}else{F=x;G=z;H=A;I=10;J=C;K=D;L=E}else{F=x;G=z;H=A;I=2;J=C;K=D;L=E}else{F=x;G=z;H=A;I=1;J=C;K=D;L=E}else{F=x;G=z;H=A;I=-1;J=C;K=D;L=E}}while(0);if((I|0)!=-1&(No(b)|0)==0){x=F;y=0;z=G;A=H;B=I;C=J;D=K;E=L}else break b}zq(m);zq(n);c[779979]=2;r=0;Ia=e;return r|0}while(0);L=c[j>>2]|0;if(a[L>>0]|0)a[L+((bu(L)|0)+-1)>>0]=0;zq(m);zq(n);r=j;Ia=e;return r|0}function ys(a){a=a|0;var b=0,c=0;b=Po(a,104528)|0;if(!b){c=0;return c|0}a=xs(b,0)|0;Ro(b);c=a;return c|0}function zs(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Ia;Ia=Ia+256|0;h=g;Wv(h|0,0,256)|0;if(!f){Yo(e,104530,0)|0;Yo(e,104573,43)|0}if(a[c[b>>2]>>0]|0){Yo(e,104585,0)|0;f=xq(196614)|0;Ks(c[b>>2]|0,f)|0;Ho(f,1,bu(f)|0,e)|0;zq(f);Yo(e,104526,0)|0}f=b+4|0;i=c[(c[f>>2]|0)+16>>2]|0;j=-1;k=0;while(1){l=c[i+(k<<2)>>2]|0;m=j;n=0;do{m=(a[l+n>>0]|0)==0?m:k;n=n+1|0}while((n|0)!=128);k=k+1|0;if((k|0)==128)break;else j=m}if((m|0)>-1){Yo(e,104594,0)|0;j=0;while(1){k=0;do{i=a[(c[(c[(c[f>>2]|0)+16>>2]|0)+(j<<2)>>2]|0)+k>>0]|0;dp(e,104603,((i&255)<15?i:15)&255,0,0,0)|0;k=k+1|0}while((k|0)!=128);Yo(e,104526,0)|0;if((j|0)==(m|0))break;else j=j+1|0}}j=b+45856|0;m=c[j>>2]|0;if((m|0?(c[m>>2]|0)==128:0)?(c[m+4>>2]|0)==128:0){f=c[m+12>>2]|0;m=0;k=0;do{m=(a[f+k>>0]|0)==0?m:1;k=k+1|0}while((k|0)!=16384);if(m|0){Yo(e,104606,0)|0;m=0;do{k=(c[j>>2]|0)+16|0;f=0;do{i=a[(c[(c[k>>2]|0)+(m<<2)>>2]|0)+f>>0]|0;n=i&15;l=i<<24>>24<0?n|16:n;a[h+f>>0]=(l>>>0<10?48:87)+l;f=f+1|0}while((f|0)!=128);Ho(h,1,128,e)|0;Yo(e,104526,0)|0;m=m+1|0}while((m|0)!=128);Yo(e,104526,0)|0}}m=0;h=0;do{m=(c[b+44832+(h<<2)>>2]|0)==0?m:1;h=h+1|0}while((h|0)!=256);if(m|0){Yo(e,104617,0)|0;m=0;do{dp(e,104626,c[b+44832+(m<<2)>>2]&255,0,0,0)|0;m=m+1|0}while((m|0)!=128);Yo(e,104526,0)|0;m=0;do{dp(e,104626,c[b+44832+(m+128<<2)>>2]&255,0,0,0)|0;m=m+1|0}while((m|0)!=128);Yo(e,104526,0)|0}m=b+12|0;h=c[(c[m>>2]|0)+16>>2]|0;j=-1;f=0;while(1){k=c[h+(f<<2)>>2]|0;o=j;l=0;do{o=(a[k+l>>0]|0)==0?o:f;l=l+1|0}while((l|0)!=128);f=f+1|0;if((f|0)==32)break;else j=o}if((o|0)>-1){Yo(e,104631,0)|0;j=0;while(1){f=0;do{dp(e,104626,d[(c[(c[(c[m>>2]|0)+16>>2]|0)+(j<<2)>>2]|0)+f>>0]|0,0,0,0)|0;f=f+1|0}while((f|0)!=128);Yo(e,104526,0)|0;if((j|0)==(o|0))break;else j=j+1|0}}Rq();j=-1;o=0;while(1){m=(c[b+16+(o*680|0)+4>>2]|0)==0?j:o;f=c[b+16+(o*680|0)+8>>2]|0;p=(c[b+16+(o*680|0)+16>>2]|c[b+16+(o*680|0)+12>>2]|0)==0?((o|0)==0?((f|0)==1?m:o):(f|0)==16?m:o):o;m=0;do{p=(c[b+16+(o*680|0)+20+(m*20|0)+4>>2]|c[b+16+(o*680|0)+20+(m*20|0)>>2]|c[b+16+(o*680|0)+20+(m*20|0)+16>>2]|c[b+16+(o*680|0)+20+(m*20|0)+8>>2]|c[b+16+(o*680|0)+20+(m*20|0)+12>>2]|0)==0?p:o;m=m+1|0}while((m|0)!=32);o=o+1|0;if((o|0)==64)break;else j=p}if((p|0)>-1){Yo(e,104640,0)|0;j=0;while(1){o=c[b+16+(j*680|0)+8>>2]|0;m=(o|0)<255?o:255;o=c[b+16+(j*680|0)+12>>2]|0;f=(o|0)<255?o:255;o=c[b+16+(j*680|0)+16>>2]|0;h=(o|0)<255?o:255;dp(e,104489,c[b+16+(j*680|0)>>2]&254|(c[b+16+(j*680|0)+4>>2]|0)!=0,(m|0)>0?m:0,(f|0)>0?f:0,(h|0)>0?h:0)|0;h=0;do{f=c[b+16+(j*680|0)+20+(h*20|0)>>2]|0;m=(f|0)<63?f:63;f=c[b+16+(j*680|0)+20+(h*20|0)+4>>2]|0;o=(f|0)<7?f:7;f=c[b+16+(j*680|0)+20+(h*20|0)+8>>2]|0;l=(f|0)<7?f:7;f=c[b+16+(j*680|0)+20+(h*20|0)+12>>2]|0;k=(f|0)<7?f:7;dp(e,104649,(m|0)>0?m:0,((o|0)>0?o:0)+((c[b+16+(j*680|0)+20+(h*20|0)+16>>2]|0)==0?0:8)|0,(l|0)>0?l:0,(k|0)>0?k:0)|0;h=h+1|0}while((h|0)!=32);Yo(e,104526,0)|0;if((j|0)==(p|0))break;else j=j+1|0}}j=-1;p=0;do{j=(c[b+43536+(p<<4)+12>>2]|0)==68&((c[b+43536+(p<<4)+8>>2]|0)==67&((c[b+43536+(p<<4)+4>>2]|0)==66&((c[b+44560+(p<<2)>>2]|0)==0?(c[b+43536+(p<<4)>>2]|0)==65:0)))?j:p;p=p+1|0}while((p|0)!=64);if((j|0)>-1){Yo(e,104660,0)|0;p=0;while(1){dp(e,104520,c[b+44560+(p<<2)>>2]|0,0,0,0)|0;dp(e,104671,c[b+43536+(p<<4)>>2]|0,c[b+43536+(p<<4)+4>>2]|0,c[b+43536+(p<<4)+8>>2]|0,c[b+43536+(p<<4)+12>>2]|0)|0;if((p|0)==(j|0))break;else p=p+1|0}Yo(e,104526,0)|0}Sq();p=0;j=0;do{p=(a[b+45884+j>>0]|0)==-1?p:1;j=j+1|0}while((j|0)!=2144);if(p|0){Yo(e,104689,0)|0;p=0;do{dp(e,104626,d[b+45884+p>>0]|0,0,0,0)|0;p=p+1|0}while((p|0)!=2144);Yo(e,104526,0)|0}p=b+48028|0;if((c[p>>2]|0)<=0){Ia=g;return 0}j=b+48032|0;b=0;do{h=c[(c[j>>2]|0)+(b<<2)>>2]|0;k=h+12|0;l=c[k>>2]|0;o=bu(l)|0;Ho(l,1,o,e)|0;Yo(e,104526,0)|0;l=o+1|0;Ho((c[k>>2]|0)+l|0,1,(c[h+16>>2]|0)-l|0,e)|0;b=b+1|0}while((b|0)<(c[p>>2]|0));Ia=g;return 0}function As(a,b){a=a|0;b=b|0;var c=0,d=0;c=Po(b,104706)|0;if(!c){d=1;return d|0}zs(a,c,0)|0;Ro(c);d=0;return d|0}function Bs(a,b){a=a|0;b=b|0;var d=0,e=0;d=vq(370)|0;if(!a){e=Aq(b+1|0)|0;c[d+4>>2]=e;c[d>>2]=c[e+12>>2]}else c[d>>2]=a;c[d+8>>2]=b;b=Ms()|0;c[d+364>>2]=b;c[b+16>>2]=24;Cs(d);return d|0}function Cs(a){a=a|0;var b=0,d=0;b=Aq(2048)|0;d=c[a>>2]|0;Ho(d,1,(bu(d)|0)+1|0,b)|0;Go(c[a+336>>2]|0,b);Go(c[a+344>>2]|0,b);Go(c[a+348>>2]|0,b);Go(c[a+320>>2]|0,b);Go(c[a+324>>2]|0,b);Go(c[a+352>>2]|0,b);d=c[a+364>>2]|0;Ps(b,d,(bu(c[a>>2]|0)|0)+1|0)|0;return}function Ds(a){a=a|0;var b=0;if(!a)return;b=c[a+4>>2]|0;if(b|0)Cq(b);Ns(c[a+364>>2]|0);zq(a);return}function Es(a){a=a|0;var b=0,c=0;if(a>>>0>127|(Mt(104709,a,64)|0)!=0){b=1;return b|0}if(Mt(104773,a,4)|0){b=3;return b|0}if(Mt(104777,a,4)|0){b=4;return b|0}if(Mt(104781,a,9)|0){b=5;return b|0}c=(Mt(104790,a,22)|0)==0;b=c?0:2;return b|0}function Fs(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;f=bu(b)|0;if(!d)g=xq(f+1|0)|0;else g=d;a[g>>0]=0;if((f|0)<=0)return g|0;d=(e|0)==0;e=0;h=g;while(1){i=(a[b+e>>0]|0)+256|0;j=(i|0)%256|0;do if((j|0)>127){k=b+(e+1)|0;l=b+(e+2)|0;m=b+(e+3)|0;n=b+(e+4)|0;o=b+(e+5)|0;p=b+(e+6)|0;q=0;while(1){r=a[32224+(q*7|0)>>0]|0;if(r<<24>>24!=0&(j|0)==(r&255|0)){s=a[32224+(q*7|0)+1>>0]|0;if(s<<24>>24?(((a[k>>0]|0)+256|0)%256|0|0)==(s&255|0):0){t=a[32224+(q*7|0)+2>>0]|0;if(t<<24>>24?(((a[l>>0]|0)+256|0)%256|0|0)==(t&255|0):0){u=a[32224+(q*7|0)+3>>0]|0;if(u<<24>>24?(((a[m>>0]|0)+256|0)%256|0|0)==(u&255|0):0){v=a[32224+(q*7|0)+4>>0]|0;if(v<<24>>24?(((a[n>>0]|0)+256|0)%256|0|0)==(v&255|0):0){w=a[32224+(q*7|0)+5>>0]|0;if(w<<24>>24?(((a[o>>0]|0)+256|0)%256|0|0)==(w&255|0):0){x=a[32224+(q*7|0)+6>>0]|0;if(x<<24>>24?(((a[p>>0]|0)+256|0)%256|0|0)==(x&255|0):0){y=7;z=11;break}else{A=x;B=6}}else{A=w;B=5}}else{A=v;B=4}}else{A=u;B=3}}else{A=t;B=2}}else{A=s;B=1}}else{A=r;B=0}if(!(A<<24>>24)){y=B;z=11;break}r=q+1|0;if(r>>>0<70)q=r;else break}if((z|0)==11){z=0;if(q>>>0>=26)if(q>>>0<42)C=246;else C=q>>>0<44?212:21;else C=128;a[h>>0]=q+C;p=h+1|0;a[p>>0]=0;D=e+-1+y|0;E=p;break}if((j|0)==227){p=-1;o=e;n=0;m=h;while(1){l=b+(o+1)|0;k=c[32784+(n<<2)>>2]|0;if((((a[l>>0]|0)+256|0)%256|0|0)==(k>>>8&255|0)?(r=o+2|0,s=m+1|0,(((a[b+r>>0]|0)+256|0)%256|0|0)==(k&255|0)):0){a[m>>0]=n+154;a[s>>0]=0;F=b+(o+3)|0;G=n;H=r;I=s}else{F=l;G=p;H=o;I=m}l=c[32992+(n<<2)>>2]|0;if((((a[F>>0]|0)+256|0)%256|0|0)==(l>>>8&255|0)?(s=H+2|0,r=I+1|0,(((a[b+s>>0]|0)+256|0)%256|0|0)==(l&255|0)):0){a[I>>0]=n+204;a[r>>0]=0;J=n;K=s;L=r}else{J=G;K=H;L=I}n=n+1|0;if((n|0)==50)break;else{p=J;o=K;m=L}}if((J|0)<0){M=(a[b+K>>0]|0)+256|0;N=J;O=K;P=L;z=26}else{D=K;E=L}}else{M=i;N=-1;O=e;P=h;z=26}}else{M=i;N=-1;O=e;P=h;z=26}while(0);do if((z|0)==26){z=0;if((((M|0)%256|0|0)==226?(((a[b+(O+1)>>0]|0)+256|0)%256|0|0)==151:0)?(i=O+2|0,(((a[b+i>>0]|0)+256|0)%256|0|0)==139):0){a[P>>0]=127;j=P+1|0;a[j>>0]=0;D=i;E=j;break}j=N;i=O;m=1;o=P;while(1){a:do if((m|0)<4){p=c[32720+(m<<2)>>2]|0;if((p>>>8&255|0)==(((a[b+i>>0]|0)+256|0)%256|0|0)?(n=i+1|0,(p&255|0)==(((a[b+n>>0]|0)+256|0)%256|0|0)):0){a[o>>0]=m;p=o+1|0;a[p>>0]=0;Q=m;R=n;S=1e3;T=p}else{Q=j;R=i;S=m;T=o}}else{switch(m|0){case 9:case 10:case 13:{Q=j;R=i;S=m;T=o;break a;break}default:{}}p=c[32720+(m<<2)>>2]|0;if(((p>>>16&255|0)==(((a[b+i>>0]|0)+256|0)%256|0|0)?(p>>>8&255|0)==(((a[b+(i+1)>>0]|0)+256|0)%256|0|0):0)?(n=i+2|0,(p&255|0)==(((a[b+n>>0]|0)+256|0)%256|0|0)):0){a[o>>0]=m;p=o+1|0;a[p>>0]=0;Q=m;R=n;S=1e3;T=p}else{Q=j;R=i;S=m;T=o}}while(0);if((S|0)<15){j=Q;i=R;m=S+1|0;o=T}else break}if((Q|0)<0?(o=a[b+R>>0]|0,o<<24>>24!=13):0){if(d&(o+-65&255)<26)U=(o&255)+32&255;else U=o;a[T>>0]=U;o=T+1|0;a[o>>0]=0;D=R;E=o}else{D=R;E=T}}while(0);e=D+1|0;if((e|0)>=(f|0))break;else h=E}return g|0}function Gs(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=c[b+292>>2]|0;if(!e)f=c[8743]|0;else{c[8744]=c[e+12>>2];g=c[e+16>>2]|0;c[8743]=g;f=g}g=(d|0)!=0&(f|0)>128?(f|0)/3|0:d;d=c[b+336>>2]|0;a:do if(!d){h=b+312|0;i=b+308|0;j=0;k=0}else{e=c[b>>2]|0;l=b+316|0;m=b+308|0;n=b+312|0;o=e;p=e;e=0;q=0;while(1){r=a[p>>0]|0;if(!(r<<24>>24)){h=n;i=m;j=0;k=0;break a}s=c[l>>2]|0;t=(s|0)>4?s:4;if(r<<24>>24!=9)if(r<<24>>24==10){u=0;v=(c[n>>2]|0)+q|0}else{u=(c[m>>2]<<((r&255)>>>7))+e|0;v=q}else{u=t+e-((e|0)%(t|0)|0)|0;v=q}p=p+1|0;if((p-o|0)==(d|0)){h=n;i=m;j=u;k=v;break}else{e=u;q=v}}}while(0);v=(c[h>>2]|0)-f+k|0;f=b+324|0;h=c[f>>2]|0;u=(h|0)<(k|0)?h:k;h=(g|0)==0?((v|0)>(u|0)?v:u):k-g|0;c[f>>2]=(h|0)>0?h:0;h=(c[i>>2]|0)-(c[8744]|0)+j|0;i=b+320|0;b=c[i>>2]|0;f=(b|0)<(j|0)?b:j;j=(h|0)>(f|0)?h:f;c[i>>2]=(j|0)>0?j:0;return}function Hs(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;f=bu(b)|0;if(!d)g=xq((f*7|0)+1|0)|0;else g=d;a[g>>0]=0;if((f|0)<=0)return g|0;d=(e|0)==0;e=0;h=g;while(1){i=a[b+e>>0]|0;j=((i<<24>>24)+256|0)%256|0;a:do if((j+-1|0)>>>0>=3){b:do if((j|0)<16){switch(j|0){case 13:case 10:case 9:{break b;break}default:{}}k=c[32720+(j<<2)>>2]|0;a[h>>0]=k>>>16;a[h+1>>0]=k>>>8;a[h+2>>0]=k;l=h+3|0;break a}else{if((j|0)==127){a[h>>0]=-30;a[h+1>>0]=-105;a[h+2>>0]=-117;l=h+3|0;break a}k=j+-128|0;if(k>>>0>=26){m=j+-154|0;if(m>>>0<50){a[h>>0]=-29;n=c[32784+(m<<2)>>2]|0;a[h+1>>0]=n>>>8;a[h+2>>0]=n;l=h+3|0;break a}n=j+-204|0;if(n>>>0>=50)break;a[h>>0]=-29;m=c[32992+(n<<2)>>2]|0;a[h+1>>0]=m>>>8;a[h+2>>0]=m;l=h+3|0;break a}m=a[32224+(k*7|0)>>0]|0;if(!(m<<24>>24))o=h;else{a[h>>0]=m;o=h+1|0}m=a[32224+(k*7|0)+1>>0]|0;if(!(m<<24>>24))p=o;else{a[o>>0]=m;p=o+1|0}m=a[32224+(k*7|0)+2>>0]|0;if(!(m<<24>>24))q=p;else{a[p>>0]=m;q=p+1|0}m=a[32224+(k*7|0)+3>>0]|0;if(!(m<<24>>24))r=q;else{a[q>>0]=m;r=q+1|0}m=a[32224+(k*7|0)+4>>0]|0;if(!(m<<24>>24))s=r;else{a[r>>0]=m;s=r+1|0}m=a[32224+(k*7|0)+5>>0]|0;if(!(m<<24>>24))t=s;else{a[s>>0]=m;t=s+1|0}m=a[32224+(k*7|0)+6>>0]|0;if(!(m<<24>>24)){l=t;break a}a[t>>0]=m;l=t+1|0;break a}while(0);if((j&-16|0)==16){m=j+10|0;k=a[32224+(m*7|0)>>0]|0;if(!(k<<24>>24))u=h;else{a[h>>0]=k;u=h+1|0}k=a[32224+(m*7|0)+1>>0]|0;if(!(k<<24>>24))v=u;else{a[u>>0]=k;v=u+1|0}k=a[32224+(m*7|0)+2>>0]|0;if(!(k<<24>>24))w=v;else{a[v>>0]=k;w=v+1|0}k=a[32224+(m*7|0)+3>>0]|0;if(!(k<<24>>24))x=w;else{a[w>>0]=k;x=w+1|0}k=a[32224+(m*7|0)+4>>0]|0;if(!(k<<24>>24))y=x;else{a[x>>0]=k;y=x+1|0}k=a[32224+(m*7|0)+5>>0]|0;if(!(k<<24>>24))z=y;else{a[y>>0]=k;z=y+1|0}k=a[32224+(m*7|0)+6>>0]|0;if(!(k<<24>>24)){l=z;break}a[z>>0]=k;l=z+1|0;break}if((j|0)>253){k=j+-212|0;m=a[32224+(k*7|0)>>0]|0;if(!(m<<24>>24))A=h;else{a[h>>0]=m;A=h+1|0}m=a[32224+(k*7|0)+1>>0]|0;if(!(m<<24>>24))B=A;else{a[A>>0]=m;B=A+1|0}m=a[32224+(k*7|0)+2>>0]|0;if(!(m<<24>>24))C=B;else{a[B>>0]=m;C=B+1|0}m=a[32224+(k*7|0)+3>>0]|0;if(!(m<<24>>24))D=C;else{a[C>>0]=m;D=C+1|0}m=a[32224+(k*7|0)+4>>0]|0;if(!(m<<24>>24))E=D;else{a[D>>0]=m;E=D+1|0}m=a[32224+(k*7|0)+5>>0]|0;if(!(m<<24>>24))F=E;else{a[E>>0]=m;F=E+1|0}m=a[32224+(k*7|0)+6>>0]|0;if(!(m<<24>>24)){l=F;break}a[F>>0]=m;l=F+1|0;break}if(!(d&(j+-65|0)>>>0<26)){a[h>>0]=i;l=h+1|0;break}m=j+-21|0;k=a[32224+(m*7|0)>>0]|0;if(!(k<<24>>24))G=h;else{a[h>>0]=k;G=h+1|0}k=a[32224+(m*7|0)+1>>0]|0;if(!(k<<24>>24))H=G;else{a[G>>0]=k;H=G+1|0}k=a[32224+(m*7|0)+2>>0]|0;if(!(k<<24>>24))I=H;else{a[H>>0]=k;I=H+1|0}k=a[32224+(m*7|0)+3>>0]|0;if(!(k<<24>>24))J=I;else{a[I>>0]=k;J=I+1|0}k=a[32224+(m*7|0)+4>>0]|0;if(!(k<<24>>24))K=J;else{a[J>>0]=k;K=J+1|0}k=a[32224+(m*7|0)+5>>0]|0;if(!(k<<24>>24))L=K;else{a[K>>0]=k;L=K+1|0}k=a[32224+(m*7|0)+6>>0]|0;if(!(k<<24>>24))l=L;else{a[L>>0]=k;l=L+1|0}}else{k=c[32720+(j<<2)>>2]|0;a[h>>0]=k>>>8;a[h+1>>0]=k;l=h+2|0}while(0);a[l>>0]=0;e=e+1|0;if((e|0)==(f|0))break;else h=l}return g|0}function Is(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;if((c|0)==0|d<<24>>24==0){e=0;return e|0}f=d;d=b;b=0;g=c;while(1){g=g+-1|0;c=b+(f<<24>>24==10&1)|0;d=d+1|0;f=a[d>>0]|0;if((g|0)==0|f<<24>>24==0){e=c;break}else b=c}return e|0}function Js(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=a[b>>0]|0;if((c|0)==0|d<<24>>24==0)e=b;else{f=d;d=b;g=0;while(1){g=g+(f<<24>>24==10&1)|0;h=d+1|0;f=a[h>>0]|0;if((g|0)==(c|0)|f<<24>>24==0){e=h;break}else d=h}}return e-b|0}function Ks(a,b){a=a|0;b=b|0;return Hs(a,b,1)|0}function Ls(a,b){a=a|0;b=b|0;return Fs(a,b,1)|0}function Ms(){var a=0;a=vq(20)|0;c[a>>2]=Aq(0)|0;c[a+4>>2]=Aq(0)|0;c[a+8>>2]=Aq(0)|0;c[a+12>>2]=Aq(0)|0;return a|0}function Ns(a){a=a|0;if(!a)return;Cq(c[a>>2]|0);Cq(c[a+4>>2]|0);Cq(c[a+8>>2]|0);Cq(c[a+12>>2]|0);return}function Os(a){a=a|0;if(!a)return;Dq(c[a>>2]|0);Dq(c[a+4>>2]|0);Dq(c[a+8>>2]|0);Dq(c[a+12>>2]|0);return}function Ps(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=b+8|0;f=c[e>>2]|0;g=c[f+16>>2]|0;if(!g){Cq(f);c[e>>2]=a;h=0;return h|0}if((c[a+16>>2]|0)==(g|0)?(tt(c[a+12>>2]|0,c[f+12>>2]|0,((d|0)<1?g:0)+d|0)|0)==0:0){Cq(a);h=0;return h|0}d=Qs(a,f,c[b+16>>2]|0)|0;f=c[b+4>>2]|0;g=d+16|0;Ho(c[d+12>>2]|0,1,c[g>>2]|0,f)|0;Go(c[g>>2]|0,f);Cq(d);Dq(c[b>>2]|0);Cq(c[e>>2]|0);c[e>>2]=a;h=1;return h|0}function Qs(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=Aq(0)|0;h=(c[b+16>>2]|0)-f|0;i=e+16|0;j=(c[i>>2]|0)-f|0;k=(h|0)<(j|0)?h:j;if((k|0)<0)return g|0;a:do if(k){l=c[b+12>>2]|0;m=c[e+12>>2]|0;n=0;while(1){if((a[l+n>>0]|0)!=(a[m+n>>0]|0)){o=n;break}p=n+1|0;if((p|0)<(k|0))n=p;else{o=p;break}}if((k|0)>0){n=c[b+12>>2]|0;m=h+-1|0;l=c[e+12>>2]|0;p=j+-1|0;q=0;r=0;while(1){if((a[n+(m+q)>>0]|0)!=(a[l+(p+q)>>0]|0)){s=o;t=r;u=q;break a}v=r+1|0;w=~r;if((v|0)<(k-v|0)){q=w;r=v}else{s=o;t=v;u=w;break}}}else{s=o;t=0;u=0}}else{s=0;t=0;u=0}while(0);Io(j,g);Io(s,g);Io(t,g);t=j-s+u|0;u=(t+7|0)/8|0;j=(t|0)>0;if(j){o=b+12|0;b=e+12|0;k=0;do{r=k<<3;do if((r|0)<(t|0)){q=r+s|0;if((q|0)<(h|0)?(a[(c[o>>2]|0)+q>>0]|0)==(a[(c[b>>2]|0)+q>>0]|0):0){x=0;break}x=1}else x=0;while(0);q=r|1;do if((q|0)<(t|0)){p=q+s|0;if((p|0)<(h|0)?(a[(c[o>>2]|0)+p>>0]|0)==(a[(c[b>>2]|0)+p>>0]|0):0){y=x;break}y=x|2}else y=x;while(0);q=r|2;do if((q|0)<(t|0)){p=q+s|0;if((p|0)<(h|0)?(a[(c[o>>2]|0)+p>>0]|0)==(a[(c[b>>2]|0)+p>>0]|0):0){z=y;break}z=y|4}else z=y;while(0);q=r|3;do if((q|0)<(t|0)){p=q+s|0;if((p|0)<(h|0)?(a[(c[o>>2]|0)+p>>0]|0)==(a[(c[b>>2]|0)+p>>0]|0):0){A=z;break}A=z|8}else A=z;while(0);q=r|4;do if((q|0)<(t|0)){p=q+s|0;if((p|0)<(h|0)?(a[(c[o>>2]|0)+p>>0]|0)==(a[(c[b>>2]|0)+p>>0]|0):0){B=A;break}B=A|16}else B=A;while(0);q=r|5;do if((q|0)<(t|0)){p=q+s|0;if((p|0)<(h|0)?(a[(c[o>>2]|0)+p>>0]|0)==(a[(c[b>>2]|0)+p>>0]|0):0){C=B;break}C=B|32}else C=B;while(0);q=r|6;do if((q|0)<(t|0)){p=q+s|0;if((p|0)<(h|0)?(a[(c[o>>2]|0)+p>>0]|0)==(a[(c[b>>2]|0)+p>>0]|0):0){D=C;break}D=C|64}else D=C;while(0);q=r|7;do if((q|0)<(t|0)){p=q+s|0;if((p|0)<(h|0)?(a[(c[o>>2]|0)+p>>0]|0)==(a[(c[b>>2]|0)+p>>0]|0):0){E=D;break}E=D|-128}else E=D;while(0);Jo(E,g);k=k+1|0}while((k|0)<(u|0));if(j){j=g+12|0;u=e+12|0;k=0;do{E=k+s|0;if(!((E|0)<(h|0)?!(1<<(k&7)&d[(c[j>>2]|0)+((k>>>3)+12)>>0]|0):0))Jo(a[(c[u>>2]|0)+E>>0]|0,g);k=k+1|0}while((k|0)!=(t|0));F=u}else G=18}else G=18;if((G|0)==18)F=e+12|0;e=g+20|0;c[e>>2]=c[g+16>>2];Ho((c[F>>2]|0)+((c[i>>2]|0)-f)|0,1,f,g)|0;Go(f,g);c[e>>2]=0;return g|0}function Rs(a,b){a=a|0;b=b|0;var c=0;if((a|0)==(b|0))c=a;else{ku(a,b)|0;c=a}return c|0}function Ss(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((a|0)==(b|0))d=a;else{kv(a,b,c)|0;d=a}return d|0}function Ts(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=vq((bu(c)|0)+1|0)|0;if((d|0)!=(c|0))ku(d,c)|0;c=a[d>>0]|0;if(c<<24>>24){e=c;c=d;do{if((e+-65&255)<26)a[c>>0]=(e&255)+32;c=c+1|0;e=a[c>>0]|0}while(e<<24>>24!=0)}e=vq((bu(b)|0)+1|0)|0;if((e|0)!=(b|0))ku(e,b)|0;c=a[e>>0]|0;if(c<<24>>24){f=c;c=e;do{if((f+-65&255)<26)a[c>>0]=(f&255)+32;c=c+1|0;f=a[c>>0]|0}while(f<<24>>24!=0)}f=bv(e,d)|0;zq(d);zq(e);return ((f|0)==0?0:b+(f-e)|0)|0}function Us(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0.0,D=0,E=0,F=0;e=d+64|0;f=c[e>>2]|0;g=d+68|0;h=c[g>>2]|0;i=c[b+525580>>2]|0;a:do if(!i)j=f;else{k=c[d+28>>2]|0;if((k|0)<=-1?(c[d+32>>2]|0)==0:0){j=f;break}switch(k|0){case 0:{switch((i|0)%3|0|0){case 1:{j=(c[d+32>>2]>>4)+f|0;break a;break}case 2:{j=(c[d+32>>2]&15)+f|0;break a;break}default:{j=f;break a}}break}case 1:{c[g>>2]=(c[d+32>>2]<<4)+h;j=f;break a;break}case 2:{c[g>>2]=h-(c[d+32>>2]<<4);j=f;break a;break}case 3:{k=c[d+76>>2]|0;if((f|0)<(k|0)){l=(c[d+32>>2]<<4)+h|0;c[g>>2]=l;if((l|0)<0){m=255-l+((l|0)>-256?l:-256)|0;n=f+-1-(m>>>8)|0;o=l+256+(m&-256)|0;c[e>>2]=n;c[g>>2]=o;p=o;q=n}else{p=l;q=f}if((p|0)>255){l=~p;n=p+256+((l|0)>-512?l:-512)|0;l=(n>>>8)+1+q|0;c[e>>2]=l;c[g>>2]=p+-256-(n&-256);r=l}else r=q;if((r|0)<(k|0)){j=f;break a}c[e>>2]=k;c[g>>2]=0;j=f;break a}if((f|0)<=(k|0)?(h|0)==0|(f|0)!=(k|0):0){j=f;break a}l=h-(c[d+32>>2]<<4)|0;c[g>>2]=l;if((l|0)<0){n=255-l+((l|0)>-256?l:-256)|0;o=f+-1-(n>>>8)|0;m=l+256+(n&-256)|0;c[e>>2]=o;c[g>>2]=m;s=m;t=o}else{s=l;t=f}if((s|0)>255){l=~s;o=s+256+((l|0)>-512?l:-512)|0;l=(o>>>8)+1+t|0;c[e>>2]=l;c[g>>2]=s+-256-(o&-256);u=l}else u=t;if((u|0)>(k|0)){j=f;break a}c[e>>2]=k;c[g>>2]=0;j=f;break a;break}case 4:{k=c[d+32>>2]>>4;if(!k){j=f;break a}l=B(c[b+525588>>2]|0,k)|0;k=c[(c[b>>2]|0)+48>>2]|0;c[d+60>>2]=65536/((B(l,k)|0)/(k+-1|0)|0|0)|0;j=f;break a;break}case 10:{k=d+8|0;l=(c[k>>2]|0)-(c[d+32>>2]|0)|0;o=(l|0)<63?l:63;c[k>>2]=(o|0)>0?o:0;j=f;break a;break}default:{j=f;break a}}}while(0);f=c[d+4>>2]|0;if(!f)return;g=c[b>>2]|0;if((f|0)>(c[g+64>>2]|0))return;b=c[g+68>>2]|0;if((c[d+28>>2]|0)==4){g=c[d+32>>2]|0;e=d+56|0;u=(g>>4<<5)+(c[e>>2]|0)|0;c[e>>2]=u&2047;e=u+512&2047;v=(B(512-(e>>>0<1024?e:2048-e|0)|0,g&15)|0)/16|0}else v=0;g=(c[b+(f*332|0)+100>>2]|0)+j|0;j=h-((c[b+(f*332|0)+88>>2]|0)/2|0)+v|0;if((j|0)<0){v=255-j+((j|0)>-256?j:-256)|0;w=j+256+(v&-256)|0;x=g+-1-(v>>>8)|0}else{w=j;x=g}if((w|0)>255){g=~w;j=w+256+((g|0)>-512?g:-512)|0;y=w+-256-(j&-256)|0;z=x+1+(j>>>8)|0}else{y=w;z=x}if((z|0)<0)A=1;else{x=(z>>>0)/12|0;C=+(c[33200+((z-(x*12|0)<<3)+((y|0)/32|0)<<2)>>2]<<4|0)*64.0/+(1<<x|0);A=C!=0.0?~~(916317184.0/C/44742.0*65536.0*256.0+.5):3749769}c[d+52>>2]=A;A=c[b+(f*332|0)+128>>2]|0;if(A|0?a[b+(f*332|0)+116>>0]&1:0){x=d+20|0;y=c[x>>2]|0;z=A+-1|0;if((y|0)<(z|0)?(w=y+1|0,(c[d+24>>2]|0)>=(c[b+(f*332|0)+132+(w<<2)>>2]|0)):0){c[x>>2]=w;D=w}else D=y;y=(D|0)<(z|0)?D:z;z=(y|0)>0?y:0;c[x>>2]=z;x=z+1|0;if((x|0)<(A|0)){A=c[b+(f*332|0)+132+(z<<2)>>2]|0;y=(c[b+(f*332|0)+132+(x<<2)>>2]|0)-A|0;D=d+24|0;w=c[D>>2]|0;j=w-A|0;A=B(y-j|0,c[b+(f*332|0)+180+(z<<2)>>2]|0)|0;g=d+16|0;c[g>>2]=A;c[g>>2]=((B(c[b+(f*332|0)+180+(x<<2)>>2]|0,j)|0)+A|0)/(y|0)|0;E=w;F=D}else{c[d+16>>2]=c[b+(f*332|0)+180+(z<<2)>>2];z=d+24|0;E=c[z>>2]|0;F=z}c[F>>2]=E+1;return}c[d+16>>2]=64;return}function Vs(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;f=e+28|0;g=c[f>>2]|0;h=e+36|0;c[h>>2]=g;i=e+32|0;j=c[i>>2]|0;k=e+40|0;c[k>>2]=j;l=c[b>>2]|0;m=c[l+60>>2]|0;n=d[(c[b+525572>>2]|0)+(l+72)>>0]|0;o=c[e>>2]|0;p=c[b+525576>>2]|0;q=m+(n*2596|0)+36+(o*320|0)+(p*5|0)|0;r=a[m+(n*2596|0)+36+(o*320|0)+(p*5|0)+1>>0]|0;s=e+4|0;do if(!(r<<24>>24)){t=c[s>>2]|0;if(!t){u=m+(n*2596|0)+36+(o*320|0)+(p*5|0)+3|0;if((a[u>>0]|0)==11){v=11;w=c[l+68>>2]|0;x=0;y=u;z=1;A=7;break}else return}else{B=t;A=6}}else{t=r&255;c[s>>2]=t;B=t;A=6}while(0);if((A|0)==6){s=m+(n*2596|0)+36+(o*320|0)+(p*5|0)+3|0;r=a[s>>0]|0;t=c[l+68>>2]|0;if(!(r<<24>>24)){C=t;D=B;E=g;F=s;G=0}else{v=r;w=t;x=B;y=s;z=0;A=7}}if((A|0)==7){A=v&255;c[f>>2]=A;C=w;D=x;E=A;F=y;G=z}z=m+(n*2596|0)+36+(o*320|0)+(p*5|0)+4|0;y=a[z>>0]|0;if(y<<24>>24)c[i>>2]=y&255;if((a[F>>0]|0)==0?(a[z>>0]|0)==0:0){c[i>>2]=0;c[f>>2]=0;H=0}else H=E;E=a[q>>0]|0;do if(E<<24>>24){q=E&255;if((E&255)>96){c[e+8>>2]=0;break}if((H|0)==3){c[e+76>>2]=q;c[e+20>>2]=0;c[e+24>>2]=0;break}c[e+64>>2]=q;if(!G){c[e+68>>2]=0;c[e+44>>2]=0;c[e+48>>2]=0;c[e+8>>2]=c[C+(D*332|0)+84>>2];c[e+20>>2]=0;c[e+24>>2]=0;c[e+56>>2]=0}}while(0);D=a[m+(n*2596|0)+36+(o*320|0)+(p*5|0)+2>>0]|0;if(D<<24>>24)c[e+8>>2]=(D&255)+-16;if((g|0)!=11)return;c[b+525592>>2]=j;c[f>>2]=0;c[k>>2]=0;c[h>>2]=0;return}function Ws(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=d+8|0;h=B(c[d+16>>2]|0,c[g>>2]|0)|0;i=(e|0)==0?d+80|0:e;if((h|0?(e=c[d+4>>2]|0,e|0):0)?(j=c[a>>2]|0,(e|0)<=(c[j+64>>2]|0)):0){k=c[j+68>>2]|0;j=c[k+(e*332|0)+72>>2]|0;l=c[k+(e*332|0)+328>>2]|0;if(l|0){Va[l&0](a,d,i,f,h);return}if((f|0)<=0)return;a=k+(e*332|0)+104|0;l=d+52|0;m=d+48|0;n=d+44|0;d=k+(e*332|0)+80|0;o=k+(e*332|0)+68|0;p=k+(e*332|0)+92|0;q=k+(e*332|0)+76|0;e=i;k=0;r=h;while(1){if((c[a>>2]|0)==8){h=tp(32e3)|0;s=c[m>>2]|0;t=c[n>>2]|0;u=h}else{h=c[n>>2]|0;v=c[m>>2]|0;w=v>>16;x=B(256-w|0,b[j+(h<<1)>>1]|0)|0;s=v;t=h;u=x+(B(w,b[j+(h+1<<1)>>1]|0)|0)>>8}b[e>>1]=(B(u,r)|0)>>>12;e=e+2|0;h=s+(c[l>>2]|0)|0;w=t+(h>>24)|0;c[n>>2]=w;c[m>>2]=h&16777215;h=c[d>>2]|0;if(((h|0)!=0?(c[p>>2]&3|0)!=0:0)?(w|0)>=((c[q>>2]|0)+h|0):0){x=w-h|0;c[n>>2]=x;y=x}else y=w;if((y|0)<(c[o>>2]|0))z=r;else{c[g>>2]=0;z=0}k=k+1|0;if((k|0)==(f|0))break;else r=z}return}wq(i,0,f<<1);return}function Xs(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;g=c[a>>2]|0;Xr()|0;if((f|0)<=0)return;h=a+525596|0;i=a+525588|0;j=a+525572|0;k=g+32|0;l=g+40|0;g=a+525592|0;m=a+525580|0;n=a+525576|0;o=a+525600|0;p=a+525584|0;q=c[h>>2]|0;r=f;f=e;a:while(1){e=c[i>>2]|0;if((e|0)>(q|0)){s=e-q|0;e=(s|0)<(r|0)?s:r;do if((e|0)!=0?(s=e+q|0,(e|0)>0):0){t=c[(c[a>>2]|0)+40>>2]|0;if((t|0)<=0){u=q+1|0;Wv(f|0,0,((s|0)>(u|0)?s:u)-q<<1|0)|0;v=c[h>>2]|0;break}u=f;w=q;while(1){x=0;y=0;do{y=y+(b[a+4+(x*32848|0)+80+(w<<1)>>1]|0)|0;x=x+1|0}while((x|0)!=(t|0));x=(y|0)/3|0;z=(x|0)<32767?x:32767;b[u>>1]=(z|0)>-32767?z:-32767;w=w+1|0;if((w|0)>=(s|0)){v=q;break}else u=u+2|0}}else v=q;while(0);c[h>>2]=v+e;u=r-e|0;if((u|0)>0){A=u;C=f+(e<<1)|0}else{D=44;break}}else{A=r;C=f}u=c[l>>2]|0;b:do if((c[j>>2]|0)<(c[k>>2]|0))E=u;else{c:do if((u|0)>0){s=0;while(1){F=a+4+(s*32848|0)+28|0;if((c[F>>2]|0)==11)break;w=s+1|0;if((w|0)<(u|0))s=w;else break c}y=c[a+4+(s*32848|0)+32>>2]|0;c[j>>2]=y;c[j>>2]=((y|0)<0?1:(y|0)>=(c[k>>2]|0))?0:y;c[F>>2]=0;c[a+4+(s*32848|0)+40>>2]=0;c[a+4+(s*32848|0)+36>>2]=0;c[m>>2]=0;c[n>>2]=0;E=c[l>>2]|0;break b}while(0);if(!(c[o>>2]|0)){D=21;break a}c[j>>2]=0;E=u}while(0);if((E|0)>0){u=0;do{e=a+262788+(u*32848|0)|0;y=a+4+(u*32848|0)|0;w=e+80|0;do{c[e>>2]=c[y>>2];e=e+4|0;y=y+4|0}while((e|0)<(w|0));u=u+1|0;y=c[l>>2]|0}while((u|0)<(y|0));G=y}else G=E;c[g>>2]=-1;if(!(c[m>>2]|0)){if((G|0)>0){u=0;do{Vs(a,a+4+(u*32848|0)|0);u=u+1|0;H=c[l>>2]|0}while((u|0)<(H|0));u=c[g>>2]|0;if((u|0)!=-1){c[j>>2]=u;c[m>>2]=0;c[n>>2]=0;if((H|0)>0){u=0;do{Vs(a,a+4+(u*32848|0)|0);u=u+1|0;y=c[l>>2]|0}while((u|0)<(y|0));I=y;D=33}}else{I=H;D=33}}}else{I=G;D=33}if((D|0)==33?(D=0,(I|0)>0):0){u=0;do{y=a+4+(u*32848|0)|0;Us(a,y);Ws(a,y,0,c[i>>2]|0);Ws(a,a+262788+(u*32848|0)|0,0,128);y=0;do{e=B(128-y|0,b[a+262788+(u*32848|0)+80+(y<<1)>>1]|0)|0;w=a+4+(u*32848|0)+80+(y<<1)|0;b[w>>1]=((B(y,b[w>>1]|0)|0)+e|0)>>>7;y=y+1|0}while((y|0)!=128);u=u+1|0}while((u|0)<(c[l>>2]|0))}c[h>>2]=0;u=(c[m>>2]|0)+1|0;c[m>>2]=u;if((u|0)<(c[p>>2]|0))J=c[n>>2]|0;else{c[m>>2]=0;u=(c[n>>2]|0)+1|0;c[n>>2]=u;J=u}u=c[a>>2]|0;y=c[j>>2]|0;if((J|0)>=(c[(c[u+60>>2]|0)+((d[u+72+y>>0]|0)*2596|0)+32>>2]|0)){c[n>>2]=0;c[j>>2]=y+1}if((A|0)>0){q=0;r=A;f=C}else{D=44;break}}if((D|0)==21){c[a+525604>>2]=0;return}else if((D|0)==44)return}function Ys(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0;b=Ia;Ia=Ia+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[798949]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=3195836+(i<<1<<2)|0;k=j+8|0;l=c[k>>2]|0;m=l+8|0;n=c[m>>2]|0;if((n|0)==(j|0))c[798949]=g&~(1<<i);else{c[n+12>>2]=j;c[k>>2]=n}n=i<<3;c[l+4>>2]=n|3;i=l+n+4|0;c[i>>2]=c[i>>2]|1;o=m;Ia=b;return o|0}m=c[798951]|0;if(e>>>0>m>>>0){if(h|0){i=2<<f;n=h<<f&(i|0-i);i=(n&0-n)+-1|0;n=i>>>12&16;f=i>>>n;i=f>>>5&8;h=f>>>i;f=h>>>2&4;l=h>>>f;h=l>>>1&2;k=l>>>h;l=k>>>1&1;j=(i|n|f|h|l)+(k>>>l)|0;l=3195836+(j<<1<<2)|0;k=l+8|0;h=c[k>>2]|0;f=h+8|0;n=c[f>>2]|0;if((n|0)==(l|0)){i=g&~(1<<j);c[798949]=i;p=i}else{c[n+12>>2]=l;c[k>>2]=n;p=g}n=j<<3;j=n-e|0;c[h+4>>2]=e|3;k=h+e|0;c[k+4>>2]=j|1;c[h+n>>2]=j;if(m|0){n=c[798954]|0;h=m>>>3;l=3195836+(h<<1<<2)|0;i=1<<h;if(!(p&i)){c[798949]=p|i;q=l+8|0;r=l}else{i=l+8|0;q=i;r=c[i>>2]|0}c[q>>2]=n;c[r+12>>2]=n;c[n+8>>2]=r;c[n+12>>2]=l}c[798951]=j;c[798954]=k;o=f;Ia=b;return o|0}f=c[798950]|0;if(f){k=(f&0-f)+-1|0;j=k>>>12&16;l=k>>>j;k=l>>>5&8;n=l>>>k;l=n>>>2&4;i=n>>>l;n=i>>>1&2;h=i>>>n;i=h>>>1&1;s=c[3196100+((k|j|l|n|i)+(h>>>i)<<2)>>2]|0;i=(c[s+4>>2]&-8)-e|0;h=s;n=s;while(1){s=c[h+16>>2]|0;if(!s){l=c[h+20>>2]|0;if(!l)break;else t=l}else t=s;s=(c[t+4>>2]&-8)-e|0;l=s>>>0<i>>>0;i=l?s:i;h=t;n=l?t:n}h=n+e|0;if(h>>>0>n>>>0){l=c[n+24>>2]|0;s=c[n+12>>2]|0;do if((s|0)==(n|0)){j=n+20|0;k=c[j>>2]|0;if(!k){u=n+16|0;v=c[u>>2]|0;if(!v){w=0;break}else{x=v;y=u}}else{x=k;y=j}j=x;k=y;while(1){u=j+20|0;v=c[u>>2]|0;if(!v){z=j+16|0;A=c[z>>2]|0;if(!A)break;else{B=A;C=z}}else{B=v;C=u}j=B;k=C}c[k>>2]=0;w=j}else{u=c[n+8>>2]|0;c[u+12>>2]=s;c[s+8>>2]=u;w=s}while(0);do if(l|0){s=c[n+28>>2]|0;u=3196100+(s<<2)|0;if((n|0)==(c[u>>2]|0)){c[u>>2]=w;if(!w){c[798950]=f&~(1<<s);break}}else{s=l+16|0;c[((c[s>>2]|0)==(n|0)?s:l+20|0)>>2]=w;if(!w)break}c[w+24>>2]=l;s=c[n+16>>2]|0;if(s|0){c[w+16>>2]=s;c[s+24>>2]=w}s=c[n+20>>2]|0;if(s|0){c[w+20>>2]=s;c[s+24>>2]=w}}while(0);if(i>>>0<16){l=i+e|0;c[n+4>>2]=l|3;f=n+l+4|0;c[f>>2]=c[f>>2]|1}else{c[n+4>>2]=e|3;c[h+4>>2]=i|1;c[h+i>>2]=i;if(m|0){f=c[798954]|0;l=m>>>3;s=3195836+(l<<1<<2)|0;u=1<<l;if(!(u&g)){c[798949]=u|g;D=s+8|0;E=s}else{u=s+8|0;D=u;E=c[u>>2]|0}c[D>>2]=f;c[E+12>>2]=f;c[f+8>>2]=E;c[f+12>>2]=s}c[798951]=i;c[798954]=h}o=n+8|0;Ia=b;return o|0}else F=e}else F=e}else F=e}else if(a>>>0<=4294967231){s=a+11|0;f=s&-8;u=c[798950]|0;if(u){l=0-f|0;v=s>>>8;if(v)if(f>>>0>16777215)G=31;else{s=(v+1048320|0)>>>16&8;z=v<<s;v=(z+520192|0)>>>16&4;A=z<<v;z=(A+245760|0)>>>16&2;H=14-(v|s|z)+(A<<z>>>15)|0;G=f>>>(H+7|0)&1|H<<1}else G=0;H=c[3196100+(G<<2)>>2]|0;a:do if(!H){I=l;J=0;K=0;L=61}else{z=l;A=0;s=f<<((G|0)==31?0:25-(G>>>1)|0);v=H;M=0;while(1){N=(c[v+4>>2]&-8)-f|0;if(N>>>0<z>>>0)if(!N){O=0;P=v;Q=v;L=65;break a}else{R=N;S=v}else{R=z;S=M}N=c[v+20>>2]|0;v=c[v+16+(s>>>31<<2)>>2]|0;T=(N|0)==0|(N|0)==(v|0)?A:N;if(!v){I=R;J=T;K=S;L=61;break}else{z=R;A=T;s=s<<1;M=S}}}while(0);if((L|0)==61){if((J|0)==0&(K|0)==0){H=2<<G;l=(H|0-H)&u;if(!l){F=f;break}H=(l&0-l)+-1|0;l=H>>>12&16;e=H>>>l;H=e>>>5&8;n=e>>>H;e=n>>>2&4;h=n>>>e;n=h>>>1&2;i=h>>>n;h=i>>>1&1;U=c[3196100+((H|l|e|n|h)+(i>>>h)<<2)>>2]|0;V=0}else{U=J;V=K}if(!U){W=I;X=V}else{O=I;P=U;Q=V;L=65}}if((L|0)==65){h=O;i=P;n=Q;while(1){e=(c[i+4>>2]&-8)-f|0;l=e>>>0<h>>>0;H=l?e:h;e=l?i:n;l=c[i+16>>2]|0;if(!l)Y=c[i+20>>2]|0;else Y=l;if(!Y){W=H;X=e;break}else{h=H;i=Y;n=e}}}if(((X|0)!=0?W>>>0<((c[798951]|0)-f|0)>>>0:0)?(n=X+f|0,n>>>0>X>>>0):0){i=c[X+24>>2]|0;h=c[X+12>>2]|0;do if((h|0)==(X|0)){e=X+20|0;H=c[e>>2]|0;if(!H){l=X+16|0;g=c[l>>2]|0;if(!g){Z=0;break}else{_=g;$=l}}else{_=H;$=e}e=_;H=$;while(1){l=e+20|0;g=c[l>>2]|0;if(!g){m=e+16|0;M=c[m>>2]|0;if(!M)break;else{aa=M;ba=m}}else{aa=g;ba=l}e=aa;H=ba}c[H>>2]=0;Z=e}else{l=c[X+8>>2]|0;c[l+12>>2]=h;c[h+8>>2]=l;Z=h}while(0);do if(i){h=c[X+28>>2]|0;l=3196100+(h<<2)|0;if((X|0)==(c[l>>2]|0)){c[l>>2]=Z;if(!Z){l=u&~(1<<h);c[798950]=l;ca=l;break}}else{l=i+16|0;c[((c[l>>2]|0)==(X|0)?l:i+20|0)>>2]=Z;if(!Z){ca=u;break}}c[Z+24>>2]=i;l=c[X+16>>2]|0;if(l|0){c[Z+16>>2]=l;c[l+24>>2]=Z}l=c[X+20>>2]|0;if(l){c[Z+20>>2]=l;c[l+24>>2]=Z;ca=u}else ca=u}else ca=u;while(0);b:do if(W>>>0<16){u=W+f|0;c[X+4>>2]=u|3;i=X+u+4|0;c[i>>2]=c[i>>2]|1}else{c[X+4>>2]=f|3;c[n+4>>2]=W|1;c[n+W>>2]=W;i=W>>>3;if(W>>>0<256){u=3195836+(i<<1<<2)|0;l=c[798949]|0;h=1<<i;if(!(l&h)){c[798949]=l|h;da=u+8|0;ea=u}else{h=u+8|0;da=h;ea=c[h>>2]|0}c[da>>2]=n;c[ea+12>>2]=n;c[n+8>>2]=ea;c[n+12>>2]=u;break}u=W>>>8;if(u)if(W>>>0>16777215)fa=31;else{h=(u+1048320|0)>>>16&8;l=u<<h;u=(l+520192|0)>>>16&4;i=l<<u;l=(i+245760|0)>>>16&2;g=14-(u|h|l)+(i<<l>>>15)|0;fa=W>>>(g+7|0)&1|g<<1}else fa=0;g=3196100+(fa<<2)|0;c[n+28>>2]=fa;l=n+16|0;c[l+4>>2]=0;c[l>>2]=0;l=1<<fa;if(!(ca&l)){c[798950]=ca|l;c[g>>2]=n;c[n+24>>2]=g;c[n+12>>2]=n;c[n+8>>2]=n;break}l=c[g>>2]|0;c:do if((c[l+4>>2]&-8|0)==(W|0))ga=l;else{g=W<<((fa|0)==31?0:25-(fa>>>1)|0);i=l;while(1){ha=i+16+(g>>>31<<2)|0;h=c[ha>>2]|0;if(!h)break;if((c[h+4>>2]&-8|0)==(W|0)){ga=h;break c}else{g=g<<1;i=h}}c[ha>>2]=n;c[n+24>>2]=i;c[n+12>>2]=n;c[n+8>>2]=n;break b}while(0);l=ga+8|0;e=c[l>>2]|0;c[e+12>>2]=n;c[l>>2]=n;c[n+8>>2]=e;c[n+12>>2]=ga;c[n+24>>2]=0}while(0);o=X+8|0;Ia=b;return o|0}else F=f}else F=f}else F=-1;while(0);X=c[798951]|0;if(X>>>0>=F>>>0){ga=X-F|0;ha=c[798954]|0;if(ga>>>0>15){W=ha+F|0;c[798954]=W;c[798951]=ga;c[W+4>>2]=ga|1;c[ha+X>>2]=ga;c[ha+4>>2]=F|3}else{c[798951]=0;c[798954]=0;c[ha+4>>2]=X|3;ga=ha+X+4|0;c[ga>>2]=c[ga>>2]|1}o=ha+8|0;Ia=b;return o|0}ha=c[798952]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[798952]=ga;X=c[798955]|0;W=X+F|0;c[798955]=W;c[W+4>>2]=ga|1;c[X+4>>2]=F|3;o=X+8|0;Ia=b;return o|0}if(!(c[799067]|0)){c[799069]=4096;c[799068]=4096;c[799070]=-1;c[799071]=-1;c[799072]=0;c[799060]=0;c[799067]=d&-16^1431655768;ia=4096}else ia=c[799069]|0;d=F+48|0;X=F+47|0;ga=ia+X|0;W=0-ia|0;ia=ga&W;if(ia>>>0<=F>>>0){o=0;Ia=b;return o|0}fa=c[799059]|0;if(fa|0?(ca=c[799057]|0,ea=ca+ia|0,ea>>>0<=ca>>>0|ea>>>0>fa>>>0):0){o=0;Ia=b;return o|0}d:do if(!(c[799060]&4)){fa=c[798955]|0;e:do if(fa){ea=3196244;while(1){ca=c[ea>>2]|0;if(ca>>>0<=fa>>>0?(ca+(c[ea+4>>2]|0)|0)>>>0>fa>>>0:0)break;ca=c[ea+8>>2]|0;if(!ca){L=128;break e}else ea=ca}ca=ga-ha&W;if(ca>>>0<2147483647){da=Xv(ca|0)|0;if((da|0)==((c[ea>>2]|0)+(c[ea+4>>2]|0)|0))if((da|0)==(-1|0))ja=ca;else{ka=da;la=ca;L=145;break d}else{ma=da;na=ca;L=136}}else ja=0}else L=128;while(0);do if((L|0)==128){fa=Xv(0)|0;if((fa|0)!=(-1|0)?(f=fa,ca=c[799068]|0,da=ca+-1|0,Z=((da&f|0)==0?0:(da+f&0-ca)-f|0)+ia|0,f=c[799057]|0,ca=Z+f|0,Z>>>0>F>>>0&Z>>>0<2147483647):0){da=c[799059]|0;if(da|0?ca>>>0<=f>>>0|ca>>>0>da>>>0:0){ja=0;break}da=Xv(Z|0)|0;if((da|0)==(fa|0)){ka=fa;la=Z;L=145;break d}else{ma=da;na=Z;L=136}}else ja=0}while(0);do if((L|0)==136){Z=0-na|0;if(!(d>>>0>na>>>0&(na>>>0<2147483647&(ma|0)!=(-1|0))))if((ma|0)==(-1|0)){ja=0;break}else{ka=ma;la=na;L=145;break d}da=c[799069]|0;fa=X-na+da&0-da;if(fa>>>0>=2147483647){ka=ma;la=na;L=145;break d}if((Xv(fa|0)|0)==(-1|0)){Xv(Z|0)|0;ja=0;break}else{ka=ma;la=fa+na|0;L=145;break d}}while(0);c[799060]=c[799060]|4;oa=ja;L=143}else{oa=0;L=143}while(0);if(((L|0)==143?ia>>>0<2147483647:0)?(ja=Xv(ia|0)|0,ia=Xv(0)|0,na=ia-ja|0,ma=na>>>0>(F+40|0)>>>0,!((ja|0)==(-1|0)|ma^1|ja>>>0<ia>>>0&((ja|0)!=(-1|0)&(ia|0)!=(-1|0))^1)):0){ka=ja;la=ma?na:oa;L=145}if((L|0)==145){oa=(c[799057]|0)+la|0;c[799057]=oa;if(oa>>>0>(c[799058]|0)>>>0)c[799058]=oa;oa=c[798955]|0;f:do if(oa){na=3196244;while(1){pa=c[na>>2]|0;qa=c[na+4>>2]|0;if((ka|0)==(pa+qa|0)){L=154;break}ma=c[na+8>>2]|0;if(!ma)break;else na=ma}if(((L|0)==154?(ma=na+4|0,(c[na+12>>2]&8|0)==0):0)?ka>>>0>oa>>>0&pa>>>0<=oa>>>0:0){c[ma>>2]=qa+la;ma=(c[798952]|0)+la|0;ja=oa+8|0;ia=(ja&7|0)==0?0:0-ja&7;ja=oa+ia|0;X=ma-ia|0;c[798955]=ja;c[798952]=X;c[ja+4>>2]=X|1;c[oa+ma+4>>2]=40;c[798956]=c[799071];break}if(ka>>>0<(c[798953]|0)>>>0)c[798953]=ka;ma=ka+la|0;X=3196244;while(1){if((c[X>>2]|0)==(ma|0)){L=162;break}ja=c[X+8>>2]|0;if(!ja)break;else X=ja}if((L|0)==162?(c[X+12>>2]&8|0)==0:0){c[X>>2]=ka;na=X+4|0;c[na>>2]=(c[na>>2]|0)+la;na=ka+8|0;ja=ka+((na&7|0)==0?0:0-na&7)|0;na=ma+8|0;ia=ma+((na&7|0)==0?0:0-na&7)|0;na=ja+F|0;d=ia-ja-F|0;c[ja+4>>2]=F|3;g:do if((oa|0)==(ia|0)){W=(c[798952]|0)+d|0;c[798952]=W;c[798955]=na;c[na+4>>2]=W|1}else{if((c[798954]|0)==(ia|0)){W=(c[798951]|0)+d|0;c[798951]=W;c[798954]=na;c[na+4>>2]=W|1;c[na+W>>2]=W;break}W=c[ia+4>>2]|0;if((W&3|0)==1){ha=W&-8;ga=W>>>3;h:do if(W>>>0<256){fa=c[ia+8>>2]|0;Z=c[ia+12>>2]|0;if((Z|0)==(fa|0)){c[798949]=c[798949]&~(1<<ga);break}else{c[fa+12>>2]=Z;c[Z+8>>2]=fa;break}}else{fa=c[ia+24>>2]|0;Z=c[ia+12>>2]|0;do if((Z|0)==(ia|0)){da=ia+16|0;ca=da+4|0;f=c[ca>>2]|0;if(!f){ba=c[da>>2]|0;if(!ba){ra=0;break}else{sa=ba;ta=da}}else{sa=f;ta=ca}ca=sa;f=ta;while(1){da=ca+20|0;ba=c[da>>2]|0;if(!ba){aa=ca+16|0;$=c[aa>>2]|0;if(!$)break;else{ua=$;va=aa}}else{ua=ba;va=da}ca=ua;f=va}c[f>>2]=0;ra=ca}else{da=c[ia+8>>2]|0;c[da+12>>2]=Z;c[Z+8>>2]=da;ra=Z}while(0);if(!fa)break;Z=c[ia+28>>2]|0;i=3196100+(Z<<2)|0;do if((c[i>>2]|0)!=(ia|0)){da=fa+16|0;c[((c[da>>2]|0)==(ia|0)?da:fa+20|0)>>2]=ra;if(!ra)break h}else{c[i>>2]=ra;if(ra|0)break;c[798950]=c[798950]&~(1<<Z);break h}while(0);c[ra+24>>2]=fa;Z=ia+16|0;i=c[Z>>2]|0;if(i|0){c[ra+16>>2]=i;c[i+24>>2]=ra}i=c[Z+4>>2]|0;if(!i)break;c[ra+20>>2]=i;c[i+24>>2]=ra}while(0);wa=ia+ha|0;xa=ha+d|0}else{wa=ia;xa=d}ga=wa+4|0;c[ga>>2]=c[ga>>2]&-2;c[na+4>>2]=xa|1;c[na+xa>>2]=xa;ga=xa>>>3;if(xa>>>0<256){W=3195836+(ga<<1<<2)|0;ea=c[798949]|0;i=1<<ga;if(!(ea&i)){c[798949]=ea|i;ya=W+8|0;za=W}else{i=W+8|0;ya=i;za=c[i>>2]|0}c[ya>>2]=na;c[za+12>>2]=na;c[na+8>>2]=za;c[na+12>>2]=W;break}W=xa>>>8;do if(!W)Aa=0;else{if(xa>>>0>16777215){Aa=31;break}i=(W+1048320|0)>>>16&8;ea=W<<i;ga=(ea+520192|0)>>>16&4;Z=ea<<ga;ea=(Z+245760|0)>>>16&2;da=14-(ga|i|ea)+(Z<<ea>>>15)|0;Aa=xa>>>(da+7|0)&1|da<<1}while(0);W=3196100+(Aa<<2)|0;c[na+28>>2]=Aa;ha=na+16|0;c[ha+4>>2]=0;c[ha>>2]=0;ha=c[798950]|0;da=1<<Aa;if(!(ha&da)){c[798950]=ha|da;c[W>>2]=na;c[na+24>>2]=W;c[na+12>>2]=na;c[na+8>>2]=na;break}da=c[W>>2]|0;i:do if((c[da+4>>2]&-8|0)==(xa|0))Ba=da;else{W=xa<<((Aa|0)==31?0:25-(Aa>>>1)|0);ha=da;while(1){Ca=ha+16+(W>>>31<<2)|0;ea=c[Ca>>2]|0;if(!ea)break;if((c[ea+4>>2]&-8|0)==(xa|0)){Ba=ea;break i}else{W=W<<1;ha=ea}}c[Ca>>2]=na;c[na+24>>2]=ha;c[na+12>>2]=na;c[na+8>>2]=na;break g}while(0);da=Ba+8|0;W=c[da>>2]|0;c[W+12>>2]=na;c[da>>2]=na;c[na+8>>2]=W;c[na+12>>2]=Ba;c[na+24>>2]=0}while(0);o=ja+8|0;Ia=b;return o|0}na=3196244;while(1){d=c[na>>2]|0;if(d>>>0<=oa>>>0?(Da=d+(c[na+4>>2]|0)|0,Da>>>0>oa>>>0):0)break;na=c[na+8>>2]|0}na=Da+-47|0;ja=na+8|0;d=na+((ja&7|0)==0?0:0-ja&7)|0;ja=oa+16|0;na=d>>>0<ja>>>0?oa:d;d=na+8|0;ia=la+-40|0;ma=ka+8|0;X=(ma&7|0)==0?0:0-ma&7;ma=ka+X|0;W=ia-X|0;c[798955]=ma;c[798952]=W;c[ma+4>>2]=W|1;c[ka+ia+4>>2]=40;c[798956]=c[799071];ia=na+4|0;c[ia>>2]=27;c[d>>2]=c[799061];c[d+4>>2]=c[799062];c[d+8>>2]=c[799063];c[d+12>>2]=c[799064];c[799061]=ka;c[799062]=la;c[799064]=0;c[799063]=d;d=na+24|0;do{W=d;d=d+4|0;c[d>>2]=7}while((W+8|0)>>>0<Da>>>0);if((na|0)!=(oa|0)){d=na-oa|0;c[ia>>2]=c[ia>>2]&-2;c[oa+4>>2]=d|1;c[na>>2]=d;W=d>>>3;if(d>>>0<256){ma=3195836+(W<<1<<2)|0;X=c[798949]|0;da=1<<W;if(!(X&da)){c[798949]=X|da;Ea=ma+8|0;Fa=ma}else{da=ma+8|0;Ea=da;Fa=c[da>>2]|0}c[Ea>>2]=oa;c[Fa+12>>2]=oa;c[oa+8>>2]=Fa;c[oa+12>>2]=ma;break}ma=d>>>8;if(ma)if(d>>>0>16777215)Ga=31;else{da=(ma+1048320|0)>>>16&8;X=ma<<da;ma=(X+520192|0)>>>16&4;W=X<<ma;X=(W+245760|0)>>>16&2;fa=14-(ma|da|X)+(W<<X>>>15)|0;Ga=d>>>(fa+7|0)&1|fa<<1}else Ga=0;fa=3196100+(Ga<<2)|0;c[oa+28>>2]=Ga;c[oa+20>>2]=0;c[ja>>2]=0;X=c[798950]|0;W=1<<Ga;if(!(X&W)){c[798950]=X|W;c[fa>>2]=oa;c[oa+24>>2]=fa;c[oa+12>>2]=oa;c[oa+8>>2]=oa;break}W=c[fa>>2]|0;j:do if((c[W+4>>2]&-8|0)==(d|0))Ha=W;else{fa=d<<((Ga|0)==31?0:25-(Ga>>>1)|0);X=W;while(1){Ja=X+16+(fa>>>31<<2)|0;da=c[Ja>>2]|0;if(!da)break;if((c[da+4>>2]&-8|0)==(d|0)){Ha=da;break j}else{fa=fa<<1;X=da}}c[Ja>>2]=oa;c[oa+24>>2]=X;c[oa+12>>2]=oa;c[oa+8>>2]=oa;break f}while(0);d=Ha+8|0;W=c[d>>2]|0;c[W+12>>2]=oa;c[d>>2]=oa;c[oa+8>>2]=W;c[oa+12>>2]=Ha;c[oa+24>>2]=0}}else{W=c[798953]|0;if((W|0)==0|ka>>>0<W>>>0)c[798953]=ka;c[799061]=ka;c[799062]=la;c[799064]=0;c[798958]=c[799067];c[798957]=-1;c[798962]=3195836;c[798961]=3195836;c[798964]=3195844;c[798963]=3195844;c[798966]=3195852;c[798965]=3195852;c[798968]=3195860;c[798967]=3195860;c[798970]=3195868;c[798969]=3195868;c[798972]=3195876;c[798971]=3195876;c[798974]=3195884;c[798973]=3195884;c[798976]=3195892;c[798975]=3195892;c[798978]=3195900;c[798977]=3195900;c[798980]=3195908;c[798979]=3195908;c[798982]=3195916;c[798981]=3195916;c[798984]=3195924;c[798983]=3195924;c[798986]=3195932;c[798985]=3195932;c[798988]=3195940;c[798987]=3195940;c[798990]=3195948;c[798989]=3195948;c[798992]=3195956;c[798991]=3195956;c[798994]=3195964;c[798993]=3195964;c[798996]=3195972;c[798995]=3195972;c[798998]=3195980;c[798997]=3195980;c[799e3]=3195988;c[798999]=3195988;c[799002]=3195996;c[799001]=3195996;c[799004]=3196004;c[799003]=3196004;c[799006]=3196012;c[799005]=3196012;c[799008]=3196020;c[799007]=3196020;c[799010]=3196028;c[799009]=3196028;c[799012]=3196036;c[799011]=3196036;c[799014]=3196044;c[799013]=3196044;c[799016]=3196052;c[799015]=3196052;c[799018]=3196060;c[799017]=3196060;c[799020]=3196068;c[799019]=3196068;c[799022]=3196076;c[799021]=3196076;c[799024]=3196084;c[799023]=3196084;W=la+-40|0;d=ka+8|0;ja=(d&7|0)==0?0:0-d&7;d=ka+ja|0;na=W-ja|0;c[798955]=d;c[798952]=na;c[d+4>>2]=na|1;c[ka+W+4>>2]=40;c[798956]=c[799071]}while(0);ka=c[798952]|0;if(ka>>>0>F>>>0){la=ka-F|0;c[798952]=la;ka=c[798955]|0;oa=ka+F|0;c[798955]=oa;c[oa+4>>2]=la|1;c[ka+4>>2]=F|3;o=ka+8|0;Ia=b;return o|0}}c[(gt()|0)>>2]=12;o=0;Ia=b;return o|0}function Zs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if(!a)return;b=a+-8|0;d=c[798953]|0;e=c[a+-4>>2]|0;a=e&-8;f=b+a|0;do if(!(e&1)){g=c[b>>2]|0;if(!(e&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0<d>>>0)return;if((c[798954]|0)==(h|0)){j=f+4|0;k=c[j>>2]|0;if((k&3|0)!=3){l=h;m=h;n=i;break}c[798951]=i;c[j>>2]=k&-2;c[h+4>>2]=i|1;c[h+i>>2]=i;return}k=g>>>3;if(g>>>0<256){g=c[h+8>>2]|0;j=c[h+12>>2]|0;if((j|0)==(g|0)){c[798949]=c[798949]&~(1<<k);l=h;m=h;n=i;break}else{c[g+12>>2]=j;c[j+8>>2]=g;l=h;m=h;n=i;break}}g=c[h+24>>2]|0;j=c[h+12>>2]|0;do if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=c[o>>2]|0;if(!p){q=c[k>>2]|0;if(!q){r=0;break}else{s=q;t=k}}else{s=p;t=o}o=s;p=t;while(1){k=o+20|0;q=c[k>>2]|0;if(!q){u=o+16|0;v=c[u>>2]|0;if(!v)break;else{w=v;x=u}}else{w=q;x=k}o=w;p=x}c[p>>2]=0;r=o}else{k=c[h+8>>2]|0;c[k+12>>2]=j;c[j+8>>2]=k;r=j}while(0);if(g){j=c[h+28>>2]|0;k=3196100+(j<<2)|0;if((c[k>>2]|0)==(h|0)){c[k>>2]=r;if(!r){c[798950]=c[798950]&~(1<<j);l=h;m=h;n=i;break}}else{j=g+16|0;c[((c[j>>2]|0)==(h|0)?j:g+20|0)>>2]=r;if(!r){l=h;m=h;n=i;break}}c[r+24>>2]=g;j=h+16|0;k=c[j>>2]|0;if(k|0){c[r+16>>2]=k;c[k+24>>2]=r}k=c[j+4>>2]|0;if(k){c[r+20>>2]=k;c[k+24>>2]=r;l=h;m=h;n=i}else{l=h;m=h;n=i}}else{l=h;m=h;n=i}}else{l=b;m=b;n=a}while(0);if(l>>>0>=f>>>0)return;a=f+4|0;b=c[a>>2]|0;if(!(b&1))return;if(!(b&2)){if((c[798955]|0)==(f|0)){r=(c[798952]|0)+n|0;c[798952]=r;c[798955]=m;c[m+4>>2]=r|1;if((m|0)!=(c[798954]|0))return;c[798954]=0;c[798951]=0;return}if((c[798954]|0)==(f|0)){r=(c[798951]|0)+n|0;c[798951]=r;c[798954]=l;c[m+4>>2]=r|1;c[l+r>>2]=r;return}r=(b&-8)+n|0;x=b>>>3;do if(b>>>0<256){w=c[f+8>>2]|0;t=c[f+12>>2]|0;if((t|0)==(w|0)){c[798949]=c[798949]&~(1<<x);break}else{c[w+12>>2]=t;c[t+8>>2]=w;break}}else{w=c[f+24>>2]|0;t=c[f+12>>2]|0;do if((t|0)==(f|0)){s=f+16|0;d=s+4|0;e=c[d>>2]|0;if(!e){k=c[s>>2]|0;if(!k){y=0;break}else{z=k;A=s}}else{z=e;A=d}d=z;e=A;while(1){s=d+20|0;k=c[s>>2]|0;if(!k){j=d+16|0;q=c[j>>2]|0;if(!q)break;else{B=q;C=j}}else{B=k;C=s}d=B;e=C}c[e>>2]=0;y=d}else{o=c[f+8>>2]|0;c[o+12>>2]=t;c[t+8>>2]=o;y=t}while(0);if(w|0){t=c[f+28>>2]|0;i=3196100+(t<<2)|0;if((c[i>>2]|0)==(f|0)){c[i>>2]=y;if(!y){c[798950]=c[798950]&~(1<<t);break}}else{t=w+16|0;c[((c[t>>2]|0)==(f|0)?t:w+20|0)>>2]=y;if(!y)break}c[y+24>>2]=w;t=f+16|0;i=c[t>>2]|0;if(i|0){c[y+16>>2]=i;c[i+24>>2]=y}i=c[t+4>>2]|0;if(i|0){c[y+20>>2]=i;c[i+24>>2]=y}}}while(0);c[m+4>>2]=r|1;c[l+r>>2]=r;if((m|0)==(c[798954]|0)){c[798951]=r;return}else D=r}else{c[a>>2]=b&-2;c[m+4>>2]=n|1;c[l+n>>2]=n;D=n}n=D>>>3;if(D>>>0<256){l=3195836+(n<<1<<2)|0;b=c[798949]|0;a=1<<n;if(!(b&a)){c[798949]=b|a;E=l+8|0;F=l}else{a=l+8|0;E=a;F=c[a>>2]|0}c[E>>2]=m;c[F+12>>2]=m;c[m+8>>2]=F;c[m+12>>2]=l;return}l=D>>>8;if(l)if(D>>>0>16777215)G=31;else{F=(l+1048320|0)>>>16&8;E=l<<F;l=(E+520192|0)>>>16&4;a=E<<l;E=(a+245760|0)>>>16&2;b=14-(l|F|E)+(a<<E>>>15)|0;G=D>>>(b+7|0)&1|b<<1}else G=0;b=3196100+(G<<2)|0;c[m+28>>2]=G;c[m+20>>2]=0;c[m+16>>2]=0;E=c[798950]|0;a=1<<G;a:do if(!(E&a)){c[798950]=E|a;c[b>>2]=m;c[m+24>>2]=b;c[m+12>>2]=m;c[m+8>>2]=m}else{F=c[b>>2]|0;b:do if((c[F+4>>2]&-8|0)==(D|0))H=F;else{l=D<<((G|0)==31?0:25-(G>>>1)|0);n=F;while(1){I=n+16+(l>>>31<<2)|0;r=c[I>>2]|0;if(!r)break;if((c[r+4>>2]&-8|0)==(D|0)){H=r;break b}else{l=l<<1;n=r}}c[I>>2]=m;c[m+24>>2]=n;c[m+12>>2]=m;c[m+8>>2]=m;break a}while(0);F=H+8|0;w=c[F>>2]|0;c[w+12>>2]=m;c[F>>2]=m;c[m+8>>2]=w;c[m+12>>2]=H;c[m+24>>2]=0}while(0);m=(c[798957]|0)+-1|0;c[798957]=m;if(m|0)return;m=3196252;while(1){H=c[m>>2]|0;if(!H)break;else m=H+8|0}c[798957]=-1;return}function _s(a,b){a=a|0;b=b|0;var d=0,e=0;if(a){d=B(b,a)|0;if((b|a)>>>0>65535)e=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1;else e=d}else e=0;d=Ys(e)|0;if(!d)return d|0;if(!(c[d+-4>>2]&3))return d|0;Wv(d|0,0,e|0)|0;return d|0}function $s(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!a){d=Ys(b)|0;return d|0}if(b>>>0>4294967231){c[(gt()|0)>>2]=12;d=0;return d|0}e=at(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(e|0){d=e+8|0;return d|0}e=Ys(b)|0;if(!e){d=0;return d|0}f=c[a+-4>>2]|0;g=(f&-8)-((f&3|0)==0?8:4)|0;Vv(e|0,a|0,(g>>>0<b>>>0?g:b)|0)|0;Zs(a);d=e;return d|0}function at(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=a+4|0;e=c[d>>2]|0;f=e&-8;g=a+f|0;if(!(e&3)){if(b>>>0<256){h=0;return h|0}if(f>>>0>=(b+4|0)>>>0?(f-b|0)>>>0<=c[799069]<<1>>>0:0){h=a;return h|0}h=0;return h|0}if(f>>>0>=b>>>0){i=f-b|0;if(i>>>0<=15){h=a;return h|0}j=a+b|0;c[d>>2]=e&1|b|2;c[j+4>>2]=i|3;k=g+4|0;c[k>>2]=c[k>>2]|1;bt(j,i);h=a;return h|0}if((c[798955]|0)==(g|0)){i=(c[798952]|0)+f|0;j=i-b|0;k=a+b|0;if(i>>>0<=b>>>0){h=0;return h|0}c[d>>2]=e&1|b|2;c[k+4>>2]=j|1;c[798955]=k;c[798952]=j;h=a;return h|0}if((c[798954]|0)==(g|0)){j=(c[798951]|0)+f|0;if(j>>>0<b>>>0){h=0;return h|0}k=j-b|0;if(k>>>0>15){i=a+b|0;l=a+j|0;c[d>>2]=e&1|b|2;c[i+4>>2]=k|1;c[l>>2]=k;m=l+4|0;c[m>>2]=c[m>>2]&-2;n=i;o=k}else{c[d>>2]=e&1|j|2;k=a+j+4|0;c[k>>2]=c[k>>2]|1;n=0;o=0}c[798951]=o;c[798954]=n;h=a;return h|0}n=c[g+4>>2]|0;if(n&2|0){h=0;return h|0}o=(n&-8)+f|0;if(o>>>0<b>>>0){h=0;return h|0}f=o-b|0;k=n>>>3;do if(n>>>0<256){j=c[g+8>>2]|0;i=c[g+12>>2]|0;if((i|0)==(j|0)){c[798949]=c[798949]&~(1<<k);break}else{c[j+12>>2]=i;c[i+8>>2]=j;break}}else{j=c[g+24>>2]|0;i=c[g+12>>2]|0;do if((i|0)==(g|0)){m=g+16|0;l=m+4|0;p=c[l>>2]|0;if(!p){q=c[m>>2]|0;if(!q){r=0;break}else{s=q;t=m}}else{s=p;t=l}l=s;p=t;while(1){m=l+20|0;q=c[m>>2]|0;if(!q){u=l+16|0;v=c[u>>2]|0;if(!v)break;else{w=v;x=u}}else{w=q;x=m}l=w;p=x}c[p>>2]=0;r=l}else{m=c[g+8>>2]|0;c[m+12>>2]=i;c[i+8>>2]=m;r=i}while(0);if(j|0){i=c[g+28>>2]|0;m=3196100+(i<<2)|0;if((c[m>>2]|0)==(g|0)){c[m>>2]=r;if(!r){c[798950]=c[798950]&~(1<<i);break}}else{i=j+16|0;c[((c[i>>2]|0)==(g|0)?i:j+20|0)>>2]=r;if(!r)break}c[r+24>>2]=j;i=g+16|0;m=c[i>>2]|0;if(m|0){c[r+16>>2]=m;c[m+24>>2]=r}m=c[i+4>>2]|0;if(m|0){c[r+20>>2]=m;c[m+24>>2]=r}}}while(0);if(f>>>0<16){c[d>>2]=e&1|o|2;r=a+o+4|0;c[r>>2]=c[r>>2]|1;h=a;return h|0}else{r=a+b|0;c[d>>2]=e&1|b|2;c[r+4>>2]=f|3;b=a+o+4|0;c[b>>2]=c[b>>2]|1;bt(r,f);h=a;return h|0}return 0}function bt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=a+b|0;e=c[a+4>>2]|0;do if(!(e&1)){f=c[a>>2]|0;if(!(e&3))return;g=a+(0-f)|0;h=f+b|0;if((c[798954]|0)==(g|0)){i=d+4|0;j=c[i>>2]|0;if((j&3|0)!=3){k=g;l=h;break}c[798951]=h;c[i>>2]=j&-2;c[g+4>>2]=h|1;c[d>>2]=h;return}j=f>>>3;if(f>>>0<256){f=c[g+8>>2]|0;i=c[g+12>>2]|0;if((i|0)==(f|0)){c[798949]=c[798949]&~(1<<j);k=g;l=h;break}else{c[f+12>>2]=i;c[i+8>>2]=f;k=g;l=h;break}}f=c[g+24>>2]|0;i=c[g+12>>2]|0;do if((i|0)==(g|0)){j=g+16|0;m=j+4|0;n=c[m>>2]|0;if(!n){o=c[j>>2]|0;if(!o){p=0;break}else{q=o;r=j}}else{q=n;r=m}m=q;n=r;while(1){j=m+20|0;o=c[j>>2]|0;if(!o){s=m+16|0;t=c[s>>2]|0;if(!t)break;else{u=t;v=s}}else{u=o;v=j}m=u;n=v}c[n>>2]=0;p=m}else{j=c[g+8>>2]|0;c[j+12>>2]=i;c[i+8>>2]=j;p=i}while(0);if(f){i=c[g+28>>2]|0;j=3196100+(i<<2)|0;if((c[j>>2]|0)==(g|0)){c[j>>2]=p;if(!p){c[798950]=c[798950]&~(1<<i);k=g;l=h;break}}else{i=f+16|0;c[((c[i>>2]|0)==(g|0)?i:f+20|0)>>2]=p;if(!p){k=g;l=h;break}}c[p+24>>2]=f;i=g+16|0;j=c[i>>2]|0;if(j|0){c[p+16>>2]=j;c[j+24>>2]=p}j=c[i+4>>2]|0;if(j){c[p+20>>2]=j;c[j+24>>2]=p;k=g;l=h}else{k=g;l=h}}else{k=g;l=h}}else{k=a;l=b}while(0);b=d+4|0;a=c[b>>2]|0;if(!(a&2)){if((c[798955]|0)==(d|0)){p=(c[798952]|0)+l|0;c[798952]=p;c[798955]=k;c[k+4>>2]=p|1;if((k|0)!=(c[798954]|0))return;c[798954]=0;c[798951]=0;return}if((c[798954]|0)==(d|0)){p=(c[798951]|0)+l|0;c[798951]=p;c[798954]=k;c[k+4>>2]=p|1;c[k+p>>2]=p;return}p=(a&-8)+l|0;v=a>>>3;do if(a>>>0<256){u=c[d+8>>2]|0;r=c[d+12>>2]|0;if((r|0)==(u|0)){c[798949]=c[798949]&~(1<<v);break}else{c[u+12>>2]=r;c[r+8>>2]=u;break}}else{u=c[d+24>>2]|0;r=c[d+12>>2]|0;do if((r|0)==(d|0)){q=d+16|0;e=q+4|0;j=c[e>>2]|0;if(!j){i=c[q>>2]|0;if(!i){w=0;break}else{x=i;y=q}}else{x=j;y=e}e=x;j=y;while(1){q=e+20|0;i=c[q>>2]|0;if(!i){o=e+16|0;s=c[o>>2]|0;if(!s)break;else{z=s;A=o}}else{z=i;A=q}e=z;j=A}c[j>>2]=0;w=e}else{m=c[d+8>>2]|0;c[m+12>>2]=r;c[r+8>>2]=m;w=r}while(0);if(u|0){r=c[d+28>>2]|0;h=3196100+(r<<2)|0;if((c[h>>2]|0)==(d|0)){c[h>>2]=w;if(!w){c[798950]=c[798950]&~(1<<r);break}}else{r=u+16|0;c[((c[r>>2]|0)==(d|0)?r:u+20|0)>>2]=w;if(!w)break}c[w+24>>2]=u;r=d+16|0;h=c[r>>2]|0;if(h|0){c[w+16>>2]=h;c[h+24>>2]=w}h=c[r+4>>2]|0;if(h|0){c[w+20>>2]=h;c[h+24>>2]=w}}}while(0);c[k+4>>2]=p|1;c[k+p>>2]=p;if((k|0)==(c[798954]|0)){c[798951]=p;return}else B=p}else{c[b>>2]=a&-2;c[k+4>>2]=l|1;c[k+l>>2]=l;B=l}l=B>>>3;if(B>>>0<256){a=3195836+(l<<1<<2)|0;b=c[798949]|0;p=1<<l;if(!(b&p)){c[798949]=b|p;C=a+8|0;D=a}else{p=a+8|0;C=p;D=c[p>>2]|0}c[C>>2]=k;c[D+12>>2]=k;c[k+8>>2]=D;c[k+12>>2]=a;return}a=B>>>8;if(a)if(B>>>0>16777215)E=31;else{D=(a+1048320|0)>>>16&8;C=a<<D;a=(C+520192|0)>>>16&4;p=C<<a;C=(p+245760|0)>>>16&2;b=14-(a|D|C)+(p<<C>>>15)|0;E=B>>>(b+7|0)&1|b<<1}else E=0;b=3196100+(E<<2)|0;c[k+28>>2]=E;c[k+20>>2]=0;c[k+16>>2]=0;C=c[798950]|0;p=1<<E;if(!(C&p)){c[798950]=C|p;c[b>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;return}p=c[b>>2]|0;a:do if((c[p+4>>2]&-8|0)==(B|0))F=p;else{b=B<<((E|0)==31?0:25-(E>>>1)|0);C=p;while(1){G=C+16+(b>>>31<<2)|0;D=c[G>>2]|0;if(!D)break;if((c[D+4>>2]&-8|0)==(B|0)){F=D;break a}else{b=b<<1;C=D}}c[G>>2]=k;c[k+24>>2]=C;c[k+12>>2]=k;c[k+8>>2]=k;return}while(0);G=F+8|0;B=c[G>>2]|0;c[B+12>>2]=k;c[G>>2]=k;c[k+8>>2]=B;c[k+12>>2]=F;c[k+24>>2]=0;return}function ct(a){a=a|0;var b=0,d=0;b=Ia;Ia=Ia+16|0;d=b;c[d>>2]=ht(c[a+60>>2]|0)|0;a=ft(ea(6,d|0)|0)|0;Ia=b;return a|0}function dt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=Ia;Ia=Ia+32|0;g=f+16|0;h=f;c[h>>2]=d;i=h+4|0;j=b+48|0;k=c[j>>2]|0;c[i>>2]=e-((k|0)!=0&1);l=b+44|0;c[h+8>>2]=c[l>>2];c[h+12>>2]=k;c[g>>2]=c[b+60>>2];c[g+4>>2]=h;c[g+8>>2]=2;h=ft(Z(145,g|0)|0)|0;if((h|0)>=1){g=c[i>>2]|0;if(h>>>0>g>>>0){i=c[l>>2]|0;l=b+4|0;c[l>>2]=i;k=i;c[b+8>>2]=k+(h-g);if(!(c[j>>2]|0))m=e;else{c[l>>2]=k+1;a[d+(e+-1)>>0]=a[k>>0]|0;m=e}}else m=h}else{c[b>>2]=c[b>>2]|h&48^16;m=h}Ia=f;return m|0}function et(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=Ia;Ia=Ia+32|0;g=f+8|0;h=f;c[g>>2]=c[a+60>>2];c[g+4>>2]=d;c[g+8>>2]=b;c[g+12>>2]=h;c[g+16>>2]=e;if((ft(Y(140,g|0)|0)|0)<0){g=h;c[g>>2]=-1;c[g+4>>2]=-1;i=-1;j=-1}else{g=h;i=c[g+4>>2]|0;j=c[g>>2]|0}F(i|0);Ia=f;return j|0}function ft(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(gt()|0)>>2]=0-a;b=-1}else b=a;return b|0}function gt(){return 3196292}function ht(a){a=a|0;return a|0}function it(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+32|0;g=f;c[b+36>>2]=4;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21523,c[g+8>>2]=f+16,da(54,g|0)|0):0)a[b+75>>0]=-1;g=jt(b,d,e)|0;Ia=f;return g|0}function jt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=Ia;Ia=Ia+48|0;f=e+32|0;g=e+16|0;h=e;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;k=a+20|0;l=(c[k>>2]|0)-j|0;c[h+4>>2]=l;c[h+8>>2]=b;c[h+12>>2]=d;b=l+d|0;l=a+60|0;c[g>>2]=c[l>>2];c[g+4>>2]=h;c[g+8>>2]=2;j=ft(_(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=j;m=h;n=2;o=b;while(1){if((g|0)<0)break;o=o-g|0;p=c[m+4>>2]|0;q=g>>>0>p>>>0;r=q?m+8|0:m;s=n+(q<<31>>31)|0;t=g-(q?p:0)|0;c[r>>2]=(c[r>>2]|0)+t;p=r+4|0;c[p>>2]=(c[p>>2]|0)-t;c[f>>2]=c[l>>2];c[f+4>>2]=r;c[f+8>>2]=s;g=ft(_(146,f|0)|0)|0;if((o|0)==(g|0)){u=3;break a}else{m=r;n=s}}c[a+16>>2]=0;c[i>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((n|0)==2)v=0;else v=d-(c[m+4>>2]|0)|0}else u=3;while(0);if((u|0)==3){u=c[a+44>>2]|0;c[a+16>>2]=u+(c[a+48>>2]|0);a=u;c[i>>2]=a;c[k>>2]=a;v=d}Ia=e;return v|0}function kt(a,b){a=+a;b=b|0;return +(+lt(a,b))}function lt(a,b){a=+a;b=b|0;var d=0.0,e=0,f=0,i=0,j=0.0;if((b|0)<=1023)if((b|0)<-1022){d=a*2.2250738585072014e-308;e=(b|0)<-2044;f=b+2044|0;i=e?((f|0)>-1022?f:-1022):b+1022|0;j=e?d*2.2250738585072014e-308:d}else{i=b;j=a}else{d=a*8988465674311579538646525.0e283;e=(b|0)>2046;f=b+-2046|0;i=e?((f|0)<1023?f:1023):b+-1023|0;j=e?d*8988465674311579538646525.0e283:d}e=Rv(i+1023|0,0,52)|0;i=G()|0;c[h>>2]=e;c[h+4>>2]=i;return +(j*+g[h>>3])}function mt(a,b){a=+a;b=b|0;var d=0,e=0,f=0,i=0.0,j=0,k=0.0,l=0.0;g[h>>3]=a;d=c[h>>2]|0;e=c[h+4>>2]|0;f=Qv(d|0,e|0,52)|0;G()|0;switch(f&2047){case 0:{if(a!=0.0){i=+mt(a*18446744073709551616.0,b);j=(c[b>>2]|0)+-64|0;k=i}else{j=0;k=a}c[b>>2]=j;l=k;break}case 2047:{l=a;break}default:{c[b>>2]=(f&2047)+-1022;c[h>>2]=d;c[h+4>>2]=e&-2146435073|1071644672;l=+g[h>>3]}}return +l}function nt(a,b){a=+a;b=+b;return +(+ot(a,b))}function ot(a,b){a=+a;b=+b;var d=0,e=0,f=0;g[h>>3]=a;d=c[h>>2]|0;e=c[h+4>>2]|0;g[h>>3]=b;f=c[h+4>>2]&-2147483648|e&2147483647;c[h>>2]=d;c[h+4>>2]=f;return +(+g[h>>3])}function pt(a,b){a=+a;b=+b;var d=0,e=0,f=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0;g[h>>3]=a;d=c[h>>2]|0;e=c[h+4>>2]|0;g[h>>3]=b;f=c[h>>2]|0;i=c[h+4>>2]|0;j=Qv(d|0,e|0,52)|0;G()|0;k=j&2047;j=Qv(f|0,i|0,52)|0;G()|0;l=j&2047;j=e&-2147483648;m=Rv(f|0,i|0,1)|0;n=G()|0;a:do if(!((m|0)==0&(n|0)==0)?(o=qt(b)|0,p=(G()|0)&2147483647,!((k|0)==2047|(p>>>0>2146435072|(p|0)==2146435072&o>>>0>0))):0){o=Rv(d|0,e|0,1)|0;p=G()|0;if(!(p>>>0>n>>>0|(p|0)==(n|0)&o>>>0>m>>>0))return +((o|0)==(m|0)&(p|0)==(n|0)?a*0.0:a);if(!k){p=Rv(d|0,e|0,12)|0;o=G()|0;if((o|0)>-1|(o|0)==-1&p>>>0>4294967295){q=p;p=o;o=0;while(1){r=o+-1|0;q=Rv(q|0,p|0,1)|0;p=G()|0;if(!((p|0)>-1|(p|0)==-1&q>>>0>4294967295)){s=r;break}else o=r}}else s=0;o=Rv(d|0,e|0,1-s|0)|0;t=o;u=G()|0;v=s}else{t=d;u=e&1048575|1048576;v=k}if(!l){o=Rv(f|0,i|0,12)|0;q=G()|0;if((q|0)>-1|(q|0)==-1&o>>>0>4294967295){p=o;o=q;q=0;while(1){r=q+-1|0;p=Rv(p|0,o|0,1)|0;o=G()|0;if(!((o|0)>-1|(o|0)==-1&p>>>0>4294967295)){w=r;break}else q=r}}else w=0;q=Rv(f|0,i|0,1-w|0)|0;x=q;y=G()|0;z=w}else{x=f;y=i&1048575|1048576;z=l}q=Iv(t|0,u|0,x|0,y|0)|0;p=G()|0;o=(p|0)>-1|(p|0)==-1&q>>>0>4294967295;b:do if((v|0)>(z|0)){r=t;A=u;B=q;C=p;D=o;E=v;while(1){if(D)if((B|0)==0&(C|0)==0)break;else{F=B;H=C}else{F=r;H=A}I=Rv(F|0,H|0,1)|0;J=G()|0;K=E+-1|0;L=Iv(I|0,J|0,x|0,y|0)|0;M=G()|0;N=(M|0)>-1|(M|0)==-1&L>>>0>4294967295;if((K|0)>(z|0)){r=I;A=J;B=L;C=M;D=N;E=K}else{O=L;P=M;Q=I;R=J;S=N;T=K;break b}}U=a*0.0;break a}else{O=q;P=p;Q=t;R=u;S=o;T=v}while(0);if(S)if((O|0)==0&(P|0)==0){U=a*0.0;break}else{V=P;W=O}else{V=R;W=Q}if(V>>>0<1048576|(V|0)==1048576&W>>>0<0){o=W;p=V;q=T;while(1){E=Rv(o|0,p|0,1)|0;D=G()|0;C=q+-1|0;if(D>>>0<1048576|(D|0)==1048576&E>>>0<0){o=E;p=D;q=C}else{X=E;Y=D;Z=C;break}}}else{X=W;Y=V;Z=T}if((Z|0)>0){q=Hv(X|0,Y|0,0,-1048576)|0;p=G()|0;o=Rv(Z|0,0,52)|0;_=p|(G()|0);$=q|o}else{o=Qv(X|0,Y|0,1-Z|0)|0;_=G()|0;$=o}c[h>>2]=$;c[h+4>>2]=_|j;U=+g[h>>3]}else aa=3;while(0);if((aa|0)==3){ba=a*b;U=ba/ba}return +U}function qt(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;F(c[h+4>>2]|0);return b|0}function rt(a,b){a=+a;b=+b;return +(+pt(a,b))}function st(a,b){a=+a;b=b|0;return +(+lt(a,b))}function tt(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do if(!d)e=0;else{f=b;g=d;h=c;while(1){i=a[f>>0]|0;j=a[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a}else{f=f+1|0;h=h+1|0}}e=(i&255)-(j&255)|0}while(0);return e|0}function ut(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!e)f=0;else{g=a[b>>0]|0;a:do if(!(g<<24>>24)){h=0;i=c}else{j=g;k=b;l=e;m=c;while(1){l=l+-1|0;n=a[m>>0]|0;if(!(j<<24>>24==n<<24>>24&((l|0)!=0&n<<24>>24!=0))){h=j;i=m;break a}k=k+1|0;n=m+1|0;j=a[k>>0]|0;if(!(j<<24>>24)){h=0;i=n;break}else m=n}}while(0);f=(h&255)-(d[i>>0]|0)|0}return f|0}function vt(a){a=a|0;return (a+-48|0)>>>0<10|0}function wt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=d;d=xt(a,b,f)|0;Ia=e;return d|0}function xt(a,b,c){a=a|0;b=b|0;c=c|0;return yt(a,2147483647,b,c)|0}function yt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=Ia;Ia=Ia+160|0;h=g+144|0;i=g;Vv(i|0,34720,144)|0;if((d+-1|0)>>>0>2147483646)if(!d){j=1;k=h;l=4}else{c[(gt()|0)>>2]=75;m=-1}else{j=d;k=b;l=4}if((l|0)==4){l=-2-k|0;b=j>>>0>l>>>0?l:j;c[i+48>>2]=b;j=i+20|0;c[j>>2]=k;c[i+44>>2]=k;l=k+b|0;k=i+16|0;c[k>>2]=l;c[i+28>>2]=l;l=zt(i,e,f)|0;if(!b)m=l;else{b=c[j>>2]|0;a[b+(((b|0)==(c[k>>2]|0))<<31>>31)>>0]=0;m=l}}Ia=g;return m|0}function zt(a,b,c){a=a|0;b=b|0;c=c|0;return Ct(a,b,c,1,8)|0}function At(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,C=0,D=0,E=0.0,F=0,H=0,I=0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0.0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0.0,ia=0.0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0;j=Ia;Ia=Ia+560|0;k=j+32|0;l=j+536|0;m=j;n=m;o=j+540|0;c[l>>2]=0;p=o+12|0;q=Ut(e)|0;r=G()|0;if((r|0)<0){s=-e;t=Ut(s)|0;u=G()|0;v=t;w=1;x=104829;y=s}else{u=r;v=q;w=(h&2049|0)!=0&1;x=(h&2048|0)==0?((h&1|0)==0?104830:104835):104832;y=e}do if(0==0&(u&2146435072|0)==2146435072){q=(i&32|0)!=0;v=w+3|0;Nt(b,32,f,v,h&-65537);Gt(b,x,w);Gt(b,y!=y|0.0!=0.0?(q?104878:104856):q?104848:104852,3);Nt(b,32,f,v,h^8192);z=v}else{e=+mt(y,l)*2.0;v=e!=0.0;if(v)c[l>>2]=(c[l>>2]|0)+-1;q=i|32;if((q|0)==97){r=i&32;t=(r|0)==0?x:x+9|0;A=w|2;C=12-g|0;do if(!(g>>>0>11|(C|0)==0)){D=C;s=8.0;do{D=D+-1|0;s=s*16.0}while((D|0)!=0);if((a[t>>0]|0)==45){E=-(s+(-e-s));break}else{E=e+s-s;break}}else E=e;while(0);C=c[l>>2]|0;D=(C|0)<0?0-C|0:C;F=Lt(D,((D|0)<0)<<31>>31,p)|0;if((F|0)==(p|0)){D=o+11|0;a[D>>0]=48;H=D}else H=F;a[H+-1>>0]=(C>>31&2)+43;C=H+-2|0;a[C>>0]=i+15;F=(g|0)<1;D=(h&8|0)==0;I=m;J=E;while(1){K=~~J;L=I+1|0;a[I>>0]=r|d[34256+K>>0];J=(J-+(K|0))*16.0;if((L-n|0)==1?!(D&(F&J==0.0)):0){a[L>>0]=46;M=I+2|0}else M=L;if(!(J!=0.0))break;else I=M}I=M;if((g|0)!=0?(-2-n+I|0)<(g|0):0){F=p;D=C;N=g+2+F-D|0;O=F;P=D}else{D=p;F=C;N=D-n-F+I|0;O=D;P=F}F=N+A|0;Nt(b,32,f,F,h);Gt(b,t,A);Nt(b,48,f,F,h^65536);D=I-n|0;Gt(b,m,D);I=O-P|0;Nt(b,48,N-(D+I)|0,0,0);Gt(b,C,I);Nt(b,32,f,F,h^8192);z=F;break}F=(g|0)<0?6:g;if(v){I=(c[l>>2]|0)+-28|0;c[l>>2]=I;Q=I;R=e*268435456.0}else{Q=c[l>>2]|0;R=e}I=(Q|0)<0?k:k+288|0;J=R;D=I;do{r=~~J>>>0;c[D>>2]=r;D=D+4|0;J=(J-+(r>>>0))*1.0e9}while(J!=0.0);v=I;if((Q|0)>0){C=Q;A=I;t=D;while(1){r=(C|0)<29?C:29;L=t+-4|0;if(L>>>0>=A>>>0){K=0;S=L;do{L=Rv(c[S>>2]|0,0,r|0)|0;T=Hv(L|0,G()|0,K|0,0)|0;L=G()|0;K=Ov(T|0,L|0,1e9,0)|0;U=Nv(K|0,G()|0,1e9,0)|0;V=Iv(T|0,L|0,U|0,G()|0)|0;G()|0;c[S>>2]=V;S=S+-4|0}while(S>>>0>=A>>>0);if(K){S=A+-4|0;c[S>>2]=K;W=S}else W=A}else W=A;a:do if(t>>>0>W>>>0){S=t;while(1){V=S+-4|0;if(c[V>>2]|0){X=S;break a}if(V>>>0>W>>>0)S=V;else{X=V;break}}}else X=t;while(0);K=(c[l>>2]|0)-r|0;c[l>>2]=K;if((K|0)>0){C=K;A=W;t=X}else{Y=K;Z=W;_=X;break}}}else{Y=Q;Z=I;_=D}if((Y|0)<0){t=((F+25|0)/9|0)+1|0;A=(q|0)==102;C=Y;K=Z;S=_;while(1){V=0-C|0;U=(V|0)<9?V:9;if(K>>>0<S>>>0){V=(1<<U)+-1|0;L=1e9>>>U;T=0;$=K;do{aa=c[$>>2]|0;c[$>>2]=(aa>>>U)+T;T=B(aa&V,L)|0;$=$+4|0}while($>>>0<S>>>0);$=(c[K>>2]|0)==0?K+4|0:K;if(!T){ba=$;ca=S}else{c[S>>2]=T;ba=$;ca=S+4|0}}else{ba=(c[K>>2]|0)==0?K+4|0:K;ca=S}$=A?I:ba;L=(ca-$>>2|0)>(t|0)?$+(t<<2)|0:ca;C=(c[l>>2]|0)+U|0;c[l>>2]=C;if((C|0)>=0){da=ba;ea=L;break}else{K=ba;S=L}}}else{da=Z;ea=_}if(da>>>0<ea>>>0){S=(v-da>>2)*9|0;K=c[da>>2]|0;if(K>>>0<10)fa=S;else{C=S;S=10;while(1){S=S*10|0;t=C+1|0;if(K>>>0<S>>>0){fa=t;break}else C=t}}}else fa=0;C=(q|0)==103;S=(F|0)!=0;K=F-((q|0)==102?0:fa)+((S&C)<<31>>31)|0;if((K|0)<(((ea-v>>2)*9|0)+-9|0)){t=K+9216|0;K=(t|0)/9|0;A=I+4+(K+-1024<<2)|0;D=t-(K*9|0)|0;if((D|0)<8){K=10;t=D;while(1){D=K*10|0;if((t|0)<7){K=D;t=t+1|0}else{ga=D;break}}}else ga=10;t=c[A>>2]|0;K=(t>>>0)/(ga>>>0)|0;q=t-(B(K,ga)|0)|0;D=(A+4|0)==(ea|0);if(!(D&(q|0)==0)){s=(K&1|0)==0?9007199254740992.0:9007199254740994.0;K=ga>>>1;J=q>>>0<K>>>0?.5:D&(q|0)==(K|0)?1.0:1.5;if(!w){ha=s;ia=J}else{K=(a[x>>0]|0)==45;ha=K?-s:s;ia=K?-J:J}K=t-q|0;c[A>>2]=K;if(ha+ia!=ha){q=K+ga|0;c[A>>2]=q;if(q>>>0>999999999){q=da;K=A;while(1){t=K+-4|0;c[K>>2]=0;if(t>>>0<q>>>0){D=q+-4|0;c[D>>2]=0;ja=D}else ja=q;D=(c[t>>2]|0)+1|0;c[t>>2]=D;if(D>>>0>999999999){q=ja;K=t}else{ka=ja;la=t;break}}}else{ka=da;la=A}K=(v-ka>>2)*9|0;q=c[ka>>2]|0;if(q>>>0<10){ma=ka;na=la;oa=K}else{t=K;K=10;while(1){K=K*10|0;D=t+1|0;if(q>>>0<K>>>0){ma=ka;na=la;oa=D;break}else t=D}}}else{ma=da;na=A;oa=fa}}else{ma=da;na=A;oa=fa}t=na+4|0;pa=ma;qa=oa;ra=ea>>>0>t>>>0?t:ea}else{pa=da;qa=fa;ra=ea}t=0-qa|0;b:do if(ra>>>0>pa>>>0){K=ra;while(1){q=K+-4|0;if(c[q>>2]|0){sa=1;ta=K;break b}if(q>>>0>pa>>>0)K=q;else{sa=0;ta=q;break}}}else{sa=0;ta=ra}while(0);do if(C){A=F+((S^1)&1)|0;if((A|0)>(qa|0)&(qa|0)>-5){ua=A+-1-qa|0;va=i+-1|0}else{ua=A+-1|0;va=i+-2|0}if(!(h&8)){if(sa?(A=c[ta+-4>>2]|0,(A|0)!=0):0)if(!((A>>>0)%10|0)){K=10;U=0;while(1){K=K*10|0;T=U+1|0;if((A>>>0)%(K>>>0)|0|0){wa=T;break}else U=T}}else wa=0;else wa=9;U=((ta-v>>2)*9|0)+-9|0;if((va|32|0)==102){K=U-wa|0;A=(K|0)>0?K:0;xa=(ua|0)<(A|0)?ua:A;ya=va;break}else{A=U+qa-wa|0;U=(A|0)>0?A:0;xa=(ua|0)<(U|0)?ua:U;ya=va;break}}else{xa=ua;ya=va}}else{xa=F;ya=i}while(0);F=(xa|0)!=0;v=F?1:h>>>3&1;S=(ya|32|0)==102;if(S){za=0;Aa=(qa|0)>0?qa:0}else{C=(qa|0)<0?t:qa;U=Lt(C,((C|0)<0)<<31>>31,p)|0;C=p;if((C-U|0)<2){A=U;while(1){K=A+-1|0;a[K>>0]=48;if((C-K|0)<2)A=K;else{Ba=K;break}}}else Ba=U;a[Ba+-1>>0]=(qa>>31&2)+43;A=Ba+-2|0;a[A>>0]=ya;za=A;Aa=C-A|0}A=w+1+xa+v+Aa|0;Nt(b,32,f,A,h);Gt(b,x,w);Nt(b,48,f,A,h^65536);if(S){t=pa>>>0>I>>>0?I:pa;K=m+9|0;T=K;q=m+8|0;D=t;do{L=Lt(c[D>>2]|0,0,K)|0;if((D|0)==(t|0))if((L|0)==(K|0)){a[q>>0]=48;Ca=q}else Ca=L;else if(L>>>0>m>>>0){Wv(m|0,48,L-n|0)|0;$=L;while(1){V=$+-1|0;if(V>>>0>m>>>0)$=V;else{Ca=V;break}}}else Ca=L;Gt(b,Ca,T-Ca|0);D=D+4|0}while(D>>>0<=I>>>0);if(!((h&8|0)==0&(F^1)))Gt(b,104886,1);if(D>>>0<ta>>>0&(xa|0)>0){I=D;T=xa;while(1){q=Lt(c[I>>2]|0,0,K)|0;if(q>>>0>m>>>0){Wv(m|0,48,q-n|0)|0;t=q;while(1){S=t+-1|0;if(S>>>0>m>>>0)t=S;else{Da=S;break}}}else Da=q;Gt(b,Da,(T|0)<9?T:9);I=I+4|0;t=T+-9|0;if(!(I>>>0<ta>>>0&(T|0)>9)){Ea=t;break}else T=t}}else Ea=xa;Nt(b,48,Ea+9|0,9,0)}else{T=sa?ta:pa+4|0;if(pa>>>0<T>>>0&(xa|0)>-1){I=m+9|0;K=(h&8|0)==0;D=I;F=0-n|0;t=m+8|0;L=pa;S=xa;while(1){v=Lt(c[L>>2]|0,0,I)|0;if((v|0)==(I|0)){a[t>>0]=48;Fa=t}else Fa=v;do if((L|0)==(pa|0)){v=Fa+1|0;Gt(b,Fa,1);if(K&(S|0)<1){Ga=v;break}Gt(b,104886,1);Ga=v}else{if(Fa>>>0<=m>>>0){Ga=Fa;break}Wv(m|0,48,Fa+F|0)|0;v=Fa;while(1){C=v+-1|0;if(C>>>0>m>>>0)v=C;else{Ga=C;break}}}while(0);q=D-Ga|0;Gt(b,Ga,(S|0)>(q|0)?q:S);v=S-q|0;L=L+4|0;if(!(L>>>0<T>>>0&(v|0)>-1)){Ha=v;break}else S=v}}else Ha=xa;Nt(b,48,Ha+18|0,18,0);Gt(b,za,p-za|0)}Nt(b,32,f,A,h^8192);z=A}while(0);Ia=j;return ((z|0)<(f|0)?f:z)|0}function Bt(a,b){a=a|0;b=b|0;var d=0,e=0.0;d=(c[b>>2]|0)+(8-1)&~(8-1);e=+g[d>>3];c[b>>2]=d+8;g[a>>3]=e;return}function Ct(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;h=Ia;Ia=Ia+224|0;i=h+208|0;j=h+160|0;k=h+80|0;l=h;m=j;n=m+40|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(n|0));c[i>>2]=c[e>>2];if((Dt(0,d,i,k,j,f,g)|0)<0)o=-1;else{if((c[b+76>>2]|0)>-1)p=Et(b)|0;else p=0;e=c[b>>2]|0;m=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){n=b+44|0;q=c[n>>2]|0;c[n>>2]=l;r=b+28|0;c[r>>2]=l;s=b+20|0;c[s>>2]=l;c[e>>2]=80;t=b+16|0;c[t>>2]=l+80;l=Dt(b,d,i,k,j,f,g)|0;if(!q)u=l;else{Oa[c[b+36>>2]&7](b,0,0)|0;v=(c[s>>2]|0)==0?-1:l;c[n>>2]=q;c[e>>2]=0;c[t>>2]=0;c[r>>2]=0;c[s>>2]=0;u=v}}else u=Dt(b,d,i,k,j,f,g)|0;g=c[b>>2]|0;c[b>>2]=g|m;if(p|0)Ft(b);o=(g&32|0)==0?u:-1}Ia=h;return o|0}function Dt(d,e,f,h,i,j,k){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0;l=Ia;Ia=Ia+64|0;m=l+56|0;n=l+40|0;o=l;p=l+48|0;q=l+60|0;c[m>>2]=e;e=(d|0)!=0;r=o+40|0;s=r;t=o+39|0;o=p+4|0;u=0;v=0;w=0;a:while(1){x=u;y=v;while(1){do if((x|0)>-1)if((y|0)>(2147483647-x|0)){c[(gt()|0)>>2]=75;z=-1;break}else{z=y+x|0;break}else z=x;while(0);A=c[m>>2]|0;B=a[A>>0]|0;if(!(B<<24>>24)){C=92;break a}D=B;B=A;b:while(1){switch(D<<24>>24){case 37:{C=10;break b;break}case 0:{E=B;break b;break}default:{}}F=B+1|0;c[m>>2]=F;D=a[F>>0]|0;B=F}c:do if((C|0)==10){C=0;D=B;F=B;while(1){if((a[D+1>>0]|0)!=37){E=F;break c}H=F+1|0;D=D+2|0;c[m>>2]=D;if((a[D>>0]|0)!=37){E=H;break}else F=H}}while(0);y=E-A|0;if(e)Gt(d,A,y);if(!y)break;else x=z}x=(vt(a[(c[m>>2]|0)+1>>0]|0)|0)==0;y=c[m>>2]|0;if(!x?(a[y+2>>0]|0)==36:0){I=3;J=(a[y+1>>0]|0)+-48|0;K=1}else{I=1;J=-1;K=w}x=y+I|0;c[m>>2]=x;y=a[x>>0]|0;B=(y<<24>>24)+-32|0;if(B>>>0>31|(1<<B&75913|0)==0){L=y;M=0;N=x}else{y=0;F=x;x=B;while(1){B=1<<x|y;D=F+1|0;c[m>>2]=D;H=a[D>>0]|0;x=(H<<24>>24)+-32|0;if(x>>>0>31|(1<<x&75913|0)==0){L=H;M=B;N=D;break}else{y=B;F=D}}}if(L<<24>>24==42){if((vt(a[N+1>>0]|0)|0)!=0?(F=c[m>>2]|0,(a[F+2>>0]|0)==36):0){y=F+1|0;c[i+((a[y>>0]|0)+-48<<2)>>2]=10;O=1;P=F+3|0;Q=c[h+((a[y>>0]|0)+-48<<3)>>2]|0}else{if(K|0){R=-1;break}if(e){y=(c[f>>2]|0)+(4-1)&~(4-1);F=c[y>>2]|0;c[f>>2]=y+4;S=F}else S=0;O=0;P=(c[m>>2]|0)+1|0;Q=S}c[m>>2]=P;F=(Q|0)<0;T=P;U=F?M|8192:M;V=O;W=F?0-Q|0:Q}else{F=Ht(m)|0;if((F|0)<0){R=-1;break}T=c[m>>2]|0;U=M;V=K;W=F}do if((a[T>>0]|0)==46){F=T+1|0;if((a[F>>0]|0)!=42){c[m>>2]=F;F=Ht(m)|0;X=c[m>>2]|0;Y=F;break}if(vt(a[T+2>>0]|0)|0?(F=c[m>>2]|0,(a[F+3>>0]|0)==36):0){y=F+2|0;c[i+((a[y>>0]|0)+-48<<2)>>2]=10;x=c[h+((a[y>>0]|0)+-48<<3)>>2]|0;y=F+4|0;c[m>>2]=y;X=y;Y=x;break}if(V|0){R=-1;break a}if(e){x=(c[f>>2]|0)+(4-1)&~(4-1);y=c[x>>2]|0;c[f>>2]=x+4;Z=y}else Z=0;y=(c[m>>2]|0)+2|0;c[m>>2]=y;X=y;Y=Z}else{X=T;Y=-1}while(0);y=X;x=0;while(1){if(((a[y>>0]|0)+-65|0)>>>0>57){R=-1;break a}F=y;y=y+1|0;c[m>>2]=y;_=a[(a[F>>0]|0)+-65+(33792+(x*58|0))>>0]|0;$=_&255;if(($+-1|0)>>>0>=8)break;else x=$}if(!(_<<24>>24)){R=-1;break}F=(J|0)>-1;do if(_<<24>>24==19)if(F){R=-1;break a}else C=54;else{if(F){c[i+(J<<2)>>2]=$;D=h+(J<<3)|0;B=c[D+4>>2]|0;H=n;c[H>>2]=c[D>>2];c[H+4>>2]=B;C=54;break}if(!e){R=0;break a}It(n,$,f,k);aa=c[m>>2]|0;C=55}while(0);if((C|0)==54){C=0;if(e){aa=y;C=55}else ba=0}d:do if((C|0)==55){C=0;F=a[aa+-1>>0]|0;B=(x|0)!=0&(F&15|0)==3?F&-33:F;F=U&-65537;H=(U&8192|0)==0?U:F;e:do switch(B|0){case 110:{switch((x&255)<<24>>24){case 0:{c[c[n>>2]>>2]=z;ba=0;break d;break}case 1:{c[c[n>>2]>>2]=z;ba=0;break d;break}case 2:{D=c[n>>2]|0;c[D>>2]=z;c[D+4>>2]=((z|0)<0)<<31>>31;ba=0;break d;break}case 3:{b[c[n>>2]>>1]=z;ba=0;break d;break}case 4:{a[c[n>>2]>>0]=z;ba=0;break d;break}case 6:{c[c[n>>2]>>2]=z;ba=0;break d;break}case 7:{D=c[n>>2]|0;c[D>>2]=z;c[D+4>>2]=((z|0)<0)<<31>>31;ba=0;break d;break}default:{ba=0;break d}}break}case 112:{ca=H|8;da=Y>>>0>8?Y:8;ea=120;C=67;break}case 88:case 120:{ca=H;da=Y;ea=B;C=67;break}case 111:{D=n;fa=Kt(c[D>>2]|0,c[D+4>>2]|0,r)|0;D=s-fa|0;ga=fa;ha=H;ia=(H&8|0)==0|(Y|0)>(D|0)?Y:D+1|0;ja=0;ka=104812;C=73;break}case 105:case 100:{D=n;fa=c[D>>2]|0;la=c[D+4>>2]|0;if((la|0)<0){D=Iv(0,0,fa|0,la|0)|0;ma=G()|0;na=n;c[na>>2]=D;c[na+4>>2]=ma;oa=D;pa=ma;qa=1;ra=104812;C=72;break e}else{oa=fa;pa=la;qa=(H&2049|0)!=0&1;ra=(H&2048|0)==0?((H&1|0)==0?104812:104814):104813;C=72;break e}break}case 117:{la=n;oa=c[la>>2]|0;pa=c[la+4>>2]|0;qa=0;ra=104812;C=72;break}case 99:{a[t>>0]=c[n>>2];sa=t;ta=F;ua=1;va=0;wa=104812;xa=s;break}case 115:{la=c[n>>2]|0;fa=(la|0)==0?104822:la;la=Mt(fa,0,Y)|0;ma=(la|0)==0;sa=fa;ta=F;ua=ma?Y:la-fa|0;va=0;wa=104812;xa=ma?fa+Y|0:la;break}case 67:{c[p>>2]=c[n>>2];c[o>>2]=0;c[n>>2]=p;ya=-1;C=79;break}case 83:{if(!Y){Nt(d,32,W,0,H);za=0;C=89}else{ya=Y;C=79}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{ba=Ma[j&1](d,+g[n>>3],W,Y,H,B)|0;break d;break}default:{sa=A;ta=H;ua=Y;va=0;wa=104812;xa=s}}while(0);f:do if((C|0)==67){C=0;B=n;F=Jt(c[B>>2]|0,c[B+4>>2]|0,r,ea&32)|0;B=n;la=(ca&8|0)==0|(c[B>>2]|0)==0&(c[B+4>>2]|0)==0;ga=F;ha=ca;ia=da;ja=la?0:2;ka=la?104812:104812+(ea>>>4)|0;C=73}else if((C|0)==72){C=0;ga=Lt(oa,pa,r)|0;ha=H;ia=Y;ja=qa;ka=ra;C=73}else if((C|0)==79){C=0;la=0;F=c[n>>2]|0;while(1){B=c[F>>2]|0;if(!B){Aa=la;break}fa=Ot(q,B)|0;Ba=(fa|0)<0;if(Ba|fa>>>0>(ya-la|0)>>>0){C=83;break}B=fa+la|0;if(ya>>>0>B>>>0){la=B;F=F+4|0}else{Aa=B;break}}if((C|0)==83){C=0;if(Ba){R=-1;break a}else Aa=la}Nt(d,32,W,Aa,H);if(!Aa){za=0;C=89}else{F=0;B=c[n>>2]|0;while(1){fa=c[B>>2]|0;if(!fa){za=Aa;C=89;break f}ma=Ot(q,fa)|0;F=ma+F|0;if((F|0)>(Aa|0)){za=Aa;C=89;break f}Gt(d,q,ma);if(F>>>0>=Aa>>>0){za=Aa;C=89;break}else B=B+4|0}}}while(0);if((C|0)==73){C=0;B=n;F=(c[B>>2]|0)!=0|(c[B+4>>2]|0)!=0;B=(ia|0)!=0|F;la=s-ga+((F^1)&1)|0;sa=B?ga:r;ta=(ia|0)>-1?ha&-65537:ha;ua=B?((ia|0)>(la|0)?ia:la):0;va=ja;wa=ka;xa=s}else if((C|0)==89){C=0;Nt(d,32,W,za,H^8192);ba=(W|0)>(za|0)?W:za;break}la=xa-sa|0;B=(ua|0)<(la|0)?la:ua;F=B+va|0;ma=(W|0)<(F|0)?F:W;Nt(d,32,ma,F,ta);Gt(d,wa,va);Nt(d,48,ma,F,ta^65536);Nt(d,48,B,la,0);Gt(d,sa,la);Nt(d,32,ma,F,ta^8192);ba=ma}while(0);u=z;v=ba;w=V}g:do if((C|0)==92)if(!d)if(!w)R=0;else{V=1;while(1){ba=c[i+(V<<2)>>2]|0;if(!ba)break;It(h+(V<<3)|0,ba,f,k);ba=V+1|0;if(ba>>>0<10)V=ba;else{R=1;break g}}ba=V;while(1){if(c[i+(ba<<2)>>2]|0){R=-1;break g}ba=ba+1|0;if(ba>>>0>=10){R=1;break}}}else R=z;while(0);Ia=l;return R|0}function Et(a){a=a|0;return 1}function Ft(a){a=a|0;return}function Gt(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))St(b,d,a)|0;return}function Ht(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;if(!(vt(a[c[b>>2]>>0]|0)|0))d=0;else{e=0;while(1){f=c[b>>2]|0;g=(e*10|0)+-48+(a[f>>0]|0)|0;h=f+1|0;c[b>>2]=h;if(!(vt(a[h>>0]|0)|0)){d=g;break}else e=g}}return d|0}function It(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{f=(c[d>>2]|0)+(4-1)&~(4-1);h=c[f>>2]|0;c[d>>2]=f+4;c[a>>2]=h;break a;break}case 10:{h=(c[d>>2]|0)+(4-1)&~(4-1);f=c[h>>2]|0;c[d>>2]=h+4;h=a;c[h>>2]=f;c[h+4>>2]=((f|0)<0)<<31>>31;break a;break}case 11:{f=(c[d>>2]|0)+(4-1)&~(4-1);h=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=h;c[f+4>>2]=0;break a;break}case 12:{f=(c[d>>2]|0)+(8-1)&~(8-1);h=f;i=c[h>>2]|0;j=c[h+4>>2]|0;c[d>>2]=f+8;f=a;c[f>>2]=i;c[f+4>>2]=j;break a;break}case 13:{j=(c[d>>2]|0)+(4-1)&~(4-1);f=c[j>>2]|0;c[d>>2]=j+4;j=(f&65535)<<16>>16;f=a;c[f>>2]=j;c[f+4>>2]=((j|0)<0)<<31>>31;break a;break}case 14:{j=(c[d>>2]|0)+(4-1)&~(4-1);f=c[j>>2]|0;c[d>>2]=j+4;j=a;c[j>>2]=f&65535;c[j+4>>2]=0;break a;break}case 15:{j=(c[d>>2]|0)+(4-1)&~(4-1);f=c[j>>2]|0;c[d>>2]=j+4;j=(f&255)<<24>>24;f=a;c[f>>2]=j;c[f+4>>2]=((j|0)<0)<<31>>31;break a;break}case 16:{j=(c[d>>2]|0)+(4-1)&~(4-1);f=c[j>>2]|0;c[d>>2]=j+4;j=a;c[j>>2]=f&255;c[j+4>>2]=0;break a;break}case 17:{j=(c[d>>2]|0)+(8-1)&~(8-1);k=+g[j>>3];c[d>>2]=j+8;g[a>>3]=k;break a;break}case 18:{Ta[e&15](a,d);break a;break}default:break a}while(0);while(0);return}function Jt(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0;if((b|0)==0&(c|0)==0)g=e;else{h=b;b=c;c=e;while(1){e=c+-1|0;a[e>>0]=d[34256+(h&15)>>0]|0|f;h=Qv(h|0,b|0,4)|0;b=G()|0;if((h|0)==0&(b|0)==0){g=e;break}else c=e}}return g|0}function Kt(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((b|0)==0&(c|0)==0)e=d;else{f=b;b=c;c=d;while(1){d=c+-1|0;a[d>>0]=f&7|48;f=Qv(f|0,b|0,3)|0;b=G()|0;if((f|0)==0&(b|0)==0){e=d;break}else c=d}}return e|0}function Lt(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=b;f=c;c=d;do{g=e;e=Ov(e|0,f|0,10,0)|0;h=f;f=G()|0;i=Nv(e|0,f|0,10,0)|0;j=Iv(g|0,h|0,i|0,G()|0)|0;G()|0;c=c+-1|0;a[c>>0]=j&255|48}while(h>>>0>9|(h|0)==9&g>>>0>4294967295);k=c;l=e}else{k=d;l=b}if(!l)m=k;else{b=k;k=l;while(1){l=k;k=(k>>>0)/10|0;d=b+-1|0;a[d>>0]=l-(k*10|0)|48;if(l>>>0<10){m=d;break}else b=d}}return m|0}function Mt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=e;j=b;while(1){if((a[j>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=j+1|0;o=i+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=o;j=n}else{q=o;r=n;s=p;m=5;break}}}else{q=e;r=b;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else m=16;b:do if((m|0)==6){r=d&255;if((a[l>>0]|0)==r<<24>>24)if(!k){m=16;break}else{t=l;break}q=B(f,16843009)|0;c:do if(k>>>0>3){s=k;g=l;while(1){b=c[g>>2]^q;if((b&-2139062144^-2139062144)&b+-16843009|0){u=g;v=s;break c}b=g+4|0;e=s+-4|0;if(e>>>0>3){s=e;g=b}else{w=e;x=b;m=11;break}}}else{w=k;x=l;m=11}while(0);if((m|0)==11)if(!w){m=16;break}else{u=x;v=w}q=v;g=u;while(1){if((a[g>>0]|0)==r<<24>>24){t=g;break b}q=q+-1|0;if(!q){m=16;break}else g=g+1|0}}while(0);if((m|0)==16)t=0;return t|0}function Nt(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;f=Ia;Ia=Ia+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;Wv(g|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{Gt(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;Gt(a,g,h)}Ia=f;return}function Ot(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=Pt(a,b,0)|0;return c|0}function Pt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(!(c[c[(Qt()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;f=1;break}else{c[(gt()|0)>>2]=84;f=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(gt()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function Qt(){return Rt()|0}function Rt(){return 34988}function St(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Tt(e)|0)){h=c[f>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=e+20|0;f=c[g>>2]|0;k=f;if((h-f|0)>>>0<d>>>0){j=Oa[c[e+36>>2]&7](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0){l=k;m=0;n=d;o=b}else{f=d;while(1){p=f+-1|0;if((a[b+p>>0]|0)==10)break;if(!p){l=k;m=0;n=d;o=b;break b}else f=p}p=Oa[c[e+36>>2]&7](e,b,f)|0;if(p>>>0<f>>>0){j=p;break a}l=c[g>>2]|0;m=f;n=d-f|0;o=b+f|0}while(0);Vv(l|0,o|0,n|0)|0;c[g>>2]=(c[g>>2]|0)+n;j=m+n|0}while(0);return j|0}function Tt(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function Ut(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;F(c[h+4>>2]|0);return b|0}function Vt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+20|0;f=c[e>>2]|0;g=(c[a+16>>2]|0)-f|0;a=g>>>0>d>>>0?d:g;Vv(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function Wt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+112|0;c[e>>2]=b;c[e+4>>2]=d;e=c[a+8>>2]|0;f=c[a+4>>2]|0;g=e-f|0;h=((g|0)<0)<<31>>31;i=a+120|0;c[i>>2]=g;c[i+4>>2]=h;if(((b|0)!=0|(d|0)!=0)&((h|0)>(d|0)|(h|0)==(d|0)&g>>>0>b>>>0))c[a+104>>2]=f+b;else c[a+104>>2]=e;return}function Xt(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0;a:do if(e>>>0>36){c[(gt()|0)>>2]=22;i=0;j=0}else{k=b+4|0;l=b+104|0;do{m=c[k>>2]|0;if(m>>>0<(c[l>>2]|0)>>>0){c[k>>2]=m+1;n=d[m>>0]|0}else n=Yt(b)|0}while((Zt(n)|0)!=0);b:do switch(n|0){case 43:case 45:{m=((n|0)==45)<<31>>31;o=c[k>>2]|0;if(o>>>0<(c[l>>2]|0)>>>0){c[k>>2]=o+1;p=d[o>>0]|0;q=m;break b}else{p=Yt(b)|0;q=m;break b}break}default:{p=n;q=0}}while(0);m=(e|0)==0;do if((e|16|0)==16&(p|0)==48){o=c[k>>2]|0;if(o>>>0<(c[l>>2]|0)>>>0){c[k>>2]=o+1;r=d[o>>0]|0}else r=Yt(b)|0;if((r|32|0)!=120)if(m){s=8;t=r;u=47;break}else{v=e;w=r;u=32;break}o=c[k>>2]|0;if(o>>>0<(c[l>>2]|0)>>>0){c[k>>2]=o+1;x=d[o>>0]|0}else x=Yt(b)|0;if((d[34273+x>>0]|0)>15){o=(c[l>>2]|0)==0;if(!o)c[k>>2]=(c[k>>2]|0)+-1;if(!f){Wt(b,0,0);i=0;j=0;break a}if(o){i=0;j=0;break a}c[k>>2]=(c[k>>2]|0)+-1;i=0;j=0;break a}else{s=16;t=x;u=47}}else{o=m?10:e;if(o>>>0>(d[34273+p>>0]|0)>>>0){v=o;w=p;u=32}else{if(c[l>>2]|0)c[k>>2]=(c[k>>2]|0)+-1;Wt(b,0,0);c[(gt()|0)>>2]=22;i=0;j=0;break a}}while(0);c:do if((u|0)==32)if((v|0)==10){m=w+-48|0;if(m>>>0<10){o=m;m=0;do{m=(m*10|0)+o|0;y=c[k>>2]|0;if(y>>>0<(c[l>>2]|0)>>>0){c[k>>2]=y+1;z=d[y>>0]|0}else z=Yt(b)|0;o=z+-48|0}while(o>>>0<10&m>>>0<429496729);if(o>>>0<10){y=m;A=0;C=z;D=o;while(1){E=Nv(y|0,A|0,10,0)|0;H=G()|0;I=((D|0)<0)<<31>>31;J=~I;if(H>>>0>J>>>0|(H|0)==(J|0)&E>>>0>~D>>>0){K=y;L=A;M=10;N=C;u=76;break c}y=Hv(E|0,H|0,D|0,I|0)|0;A=G()|0;I=c[k>>2]|0;if(I>>>0<(c[l>>2]|0)>>>0){c[k>>2]=I+1;O=d[I>>0]|0}else O=Yt(b)|0;D=O+-48|0;if(!(D>>>0<10&(A>>>0<429496729|(A|0)==429496729&y>>>0<2576980378)))break;else C=O}if(D>>>0>9){P=A;Q=y;R=q}else{K=y;L=A;M=10;N=O;u=76}}else{P=0;Q=m;R=q}}else{P=0;Q=0;R=q}}else{s=v;t=w;u=47}while(0);d:do if((u|0)==47){if(!(s+-1&s)){C=a[104860+((s*23|0)>>>5&7)>>0]|0;o=a[34273+t>>0]|0;I=o&255;if(s>>>0>I>>>0){H=I;E=0;do{E=H|E<<C;J=c[k>>2]|0;if(J>>>0<(c[l>>2]|0)>>>0){c[k>>2]=J+1;S=d[J>>0]|0}else S=Yt(b)|0;T=a[34273+S>>0]|0;H=T&255}while(E>>>0<134217728&s>>>0>H>>>0);U=T;V=0;W=E;X=S;Y=H}else{U=o;V=0;W=0;X=t;Y=I}m=Qv(-1,-1,C|0)|0;A=G()|0;if(s>>>0<=Y>>>0|(A>>>0<V>>>0|(A|0)==(V|0)&m>>>0<W>>>0)){K=W;L=V;M=s;N=X;u=76;break}y=W;D=V;J=U;while(1){Z=Rv(y|0,D|0,C|0)|0;_=G()|0;$=Z|J&255;Z=c[k>>2]|0;if(Z>>>0<(c[l>>2]|0)>>>0){c[k>>2]=Z+1;aa=d[Z>>0]|0}else aa=Yt(b)|0;J=a[34273+aa>>0]|0;if(s>>>0<=(J&255)>>>0|(_>>>0>A>>>0|(_|0)==(A|0)&$>>>0>m>>>0)){K=$;L=_;M=s;N=aa;u=76;break d}else{y=$;D=_}}}D=a[34273+t>>0]|0;y=D&255;if(s>>>0>y>>>0){m=y;A=0;do{A=m+(B(A,s)|0)|0;J=c[k>>2]|0;if(J>>>0<(c[l>>2]|0)>>>0){c[k>>2]=J+1;ba=d[J>>0]|0}else ba=Yt(b)|0;ca=a[34273+ba>>0]|0;m=ca&255}while(A>>>0<119304647&s>>>0>m>>>0);da=ca;ea=A;fa=0;ga=ba;ha=m}else{da=D;ea=0;fa=0;ga=t;ha=y}if(s>>>0>ha>>>0){J=Ov(-1,-1,s|0,0)|0;C=G()|0;I=da;o=fa;H=ea;E=ga;while(1){if(o>>>0>C>>>0|(o|0)==(C|0)&H>>>0>J>>>0){K=H;L=o;M=s;N=E;u=76;break d}_=Nv(H|0,o|0,s|0,0)|0;$=G()|0;Z=I&255;if($>>>0>4294967295|($|0)==-1&_>>>0>~Z>>>0){K=H;L=o;M=s;N=E;u=76;break d}ia=Hv(_|0,$|0,Z|0,0)|0;Z=G()|0;$=c[k>>2]|0;if($>>>0<(c[l>>2]|0)>>>0){c[k>>2]=$+1;ja=d[$>>0]|0}else ja=Yt(b)|0;I=a[34273+ja>>0]|0;if(s>>>0<=(I&255)>>>0){K=ia;L=Z;M=s;N=ja;u=76;break}else{o=Z;H=ia;E=ja}}}else{K=ea;L=fa;M=s;N=ga;u=76}}while(0);if((u|0)==76)if(M>>>0>(d[34273+N>>0]|0)>>>0){do{E=c[k>>2]|0;if(E>>>0<(c[l>>2]|0)>>>0){c[k>>2]=E+1;ka=d[E>>0]|0}else ka=Yt(b)|0}while(M>>>0>(d[34273+ka>>0]|0)>>>0);c[(gt()|0)>>2]=34;P=h;Q=g;R=(g&1|0)==0&0==0?q:0}else{P=L;Q=K;R=q}if(c[l>>2]|0)c[k>>2]=(c[k>>2]|0)+-1;if(!(P>>>0<h>>>0|(P|0)==(h|0)&Q>>>0<g>>>0)){if(!((g&1|0)!=0|0!=0|(R|0)!=0)){c[(gt()|0)>>2]=34;E=Hv(g|0,h|0,-1,-1)|0;i=G()|0;j=E;break}if(P>>>0>h>>>0|(P|0)==(h|0)&Q>>>0>g>>>0){c[(gt()|0)>>2]=34;i=h;j=g;break}}E=((R|0)<0)<<31>>31;H=Iv(Q^R|0,P^E|0,R|0,E|0)|0;i=G()|0;j=H}while(0);F(i|0);return j|0}function Yt(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=b+112|0;f=e;g=c[f>>2]|0;h=c[f+4>>2]|0;if(!((g|0)==0&(h|0)==0)?(f=b+120|0,i=c[f+4>>2]|0,!((i|0)<(h|0)|((i|0)==(h|0)?(c[f>>2]|0)>>>0<g>>>0:0))):0)j=4;else{g=_t(b)|0;if((g|0)>=0){f=e;e=c[f>>2]|0;h=c[f+4>>2]|0;f=c[b+8>>2]|0;if(!((e|0)==0&(h|0)==0)){i=c[b+4>>2]|0;k=f-i|0;l=((k|0)<0)<<31>>31;m=b+120|0;n=Iv(e|0,h|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=G()|0;h=f;if((m|0)>(l|0)|(m|0)==(l|0)&n>>>0>k>>>0){o=h;j=9}else{c[b+104>>2]=i+(n+-1);p=h}}else{o=f;j=9}if((j|0)==9){c[b+104>>2]=f;p=o}o=b+4|0;if(!p)q=c[o>>2]|0;else{f=c[o>>2]|0;o=p+1-f|0;p=b+120|0;h=p;n=Hv(c[h>>2]|0,c[h+4>>2]|0,o|0,((o|0)<0)<<31>>31|0)|0;o=G()|0;h=p;c[h>>2]=n;c[h+4>>2]=o;q=f}f=q+-1|0;if((g|0)==(d[f>>0]|0|0))r=g;else{a[f>>0]=g;r=g}}else j=4}if((j|0)==4){c[b+104>>2]=0;r=-1}return r|0}function Zt(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function _t(a){a=a|0;var b=0,e=0,f=0;b=Ia;Ia=Ia+16|0;e=b;if(($t(a)|0)==0?(Oa[c[a+32>>2]&7](a,e,1)|0)==1:0)f=d[e>>0]|0;else f=-1;Ia=b;return f|0}function $t(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=b+20|0;d=b+28|0;if((c[e>>2]|0)>>>0>(c[d>>2]|0)>>>0)Oa[c[b+36>>2]&7](b,0,0)|0;c[b+16>>2]=0;c[d>>2]=0;c[e>>2]=0;e=c[b>>2]|0;if(!(e&4)){d=(c[b+44>>2]|0)+(c[b+48>>2]|0)|0;c[b+8>>2]=d;c[b+4>>2]=d;f=e<<27>>31}else{c[b>>2]=e|32;f=-1}return f|0}function au(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=b;b=c;do{d=d+1|0;b=b+1|0;c=a[d>>0]|0;e=a[b>>0]|0}while(!(c<<24>>24==0?1:c<<24>>24!=e<<24>>24));f=e;g=c}return (g&255)-(f&255)|0}function bu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b;a:do if(!(d&3)){e=b;f=5}else{g=d;h=b;while(1){if(!(a[h>>0]|0)){i=g;break a}j=h+1|0;g=j;if(!(g&3)){e=j;f=5;break}else h=j}}while(0);if((f|0)==5){f=e;while(1){k=c[f>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))f=f+4|0;else break}if(!((k&255)<<24>>24))l=f;else{k=f;while(1){f=k+1|0;if(!(a[f>>0]|0)){l=f;break}else k=f}}i=l}return i-d|0}function cu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=Ia;Ia=Ia+208|0;g=f;h=f+192|0;i=B(d,b)|0;b=h;c[b>>2]=1;c[b+4>>2]=0;a:do if(i|0){b=0-d|0;c[g+4>>2]=d;c[g>>2]=d;j=d;k=d;l=2;while(1){m=j+d+k|0;c[g+(l<<2)>>2]=m;if(m>>>0<i>>>0){n=k;k=m;l=l+1|0;j=n}else break}j=a+i+b|0;if(j>>>0>a>>>0){l=j;k=1;n=a;m=1;while(1){do if((k&3|0)!=3){o=m+-1|0;if((c[g+(o<<2)>>2]|0)>>>0<(l-n|0)>>>0)du(n,d,e,m,g);else fu(n,d,e,h,m,0,g);if((m|0)==1){gu(h,1);p=0;break}else{gu(h,o);p=1;break}}else{du(n,d,e,m,g);eu(h,2);p=m+2|0}while(0);o=c[h>>2]|1;c[h>>2]=o;q=n+d|0;if(q>>>0<j>>>0){k=o;n=q;m=p}else{r=o;s=q;t=p;break}}}else{r=1;s=a;t=1}fu(s,d,e,h,t,0,g);m=h+4|0;n=r;k=s;j=t;while(1){if((j|0)==1&(n|0)==1)if(!(c[m>>2]|0))break a;else u=19;else if((j|0)<2)u=19;else{gu(h,2);l=j+-2|0;c[h>>2]=c[h>>2]^7;eu(h,1);fu(k+(0-(c[g+(l<<2)>>2]|0))+b|0,d,e,h,j+-1|0,1,g);gu(h,1);q=c[h>>2]|1;c[h>>2]=q;o=k+b|0;fu(o,d,e,h,l,1,g);v=q;w=o;x=l}if((u|0)==19){u=0;l=hu(h)|0;eu(h,l);v=c[h>>2]|0;w=k+b|0;x=l+j|0}n=v;k=w;j=x}}while(0);Ia=f;return}function du(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=Ia;Ia=Ia+240|0;h=g;c[h>>2]=a;a:do if((e|0)>1){i=0-b|0;j=a;k=a;l=1;m=e;while(1){n=k+i|0;o=m+-2|0;p=n+(0-(c[f+(o<<2)>>2]|0))|0;if((Na[d&3](j,p)|0)>-1?(Na[d&3](j,n)|0)>-1:0){q=l;break a}r=h+(l<<2)|0;if((Na[d&3](p,n)|0)>-1){c[r>>2]=p;s=p;t=m+-1|0}else{c[r>>2]=n;s=n;t=o}o=l+1|0;if((t|0)<=1){q=o;break a}j=c[h>>2]|0;k=s;l=o;m=t}}else q=1;while(0);ju(b,h,q);Ia=g;return}function eu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+4|0;if(b>>>0>31){e=c[d>>2]|0;c[a>>2]=e;c[d>>2]=0;f=e;g=0;h=b+-32|0}else{f=c[a>>2]|0;g=c[d>>2]|0;h=b}c[a>>2]=g<<32-h|f>>>h;c[d>>2]=g>>>h;return}function fu(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;i=Ia;Ia=Ia+240|0;j=i+232|0;k=i;l=c[e>>2]|0;c[j>>2]=l;m=c[e+4>>2]|0;e=j+4|0;c[e>>2]=m;c[k>>2]=a;a:do if((l|0)!=1|(m|0)!=0?(n=0-b|0,o=a+(0-(c[h+(f<<2)>>2]|0))|0,(Na[d&3](o,a)|0)>=1):0){p=o;o=a;q=1;r=f;s=(g|0)==0;while(1){if(s&(r|0)>1){t=o+n|0;u=c[h+(r+-2<<2)>>2]|0;if((Na[d&3](t,p)|0)>-1){v=o;w=q;x=r;y=10;break a}if((Na[d&3](t+(0-u)|0,p)|0)>-1){v=o;w=q;x=r;y=10;break a}}u=q+1|0;c[k+(q<<2)>>2]=p;t=hu(j)|0;eu(j,t);z=t+r|0;if(!((c[j>>2]|0)!=1|(c[e>>2]|0)!=0)){v=p;w=u;x=z;y=10;break a}t=p+(0-(c[h+(z<<2)>>2]|0))|0;if((Na[d&3](t,c[k>>2]|0)|0)<1){A=p;B=u;C=z;D=0;y=9;break}else{E=p;p=t;q=u;r=z;s=1;o=E}}}else{A=a;B=1;C=f;D=g;y=9}while(0);if((y|0)==9?(D|0)==0:0){v=A;w=B;x=C;y=10}if((y|0)==10){ju(b,k,w);du(v,b,d,x,h)}Ia=i;return}function gu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+4|0;if(b>>>0>31){e=c[a>>2]|0;c[d>>2]=e;c[a>>2]=0;f=e;g=0;h=b+-32|0}else{f=c[d>>2]|0;g=c[a>>2]|0;h=b}c[d>>2]=g>>>(32-h|0)|f<<h;c[a>>2]=g<<h;return}function hu(a){a=a|0;var b=0,d=0;b=iu((c[a>>2]|0)+-1|0)|0;if(!b){d=iu(c[a+4>>2]|0)|0;return ((d|0)==0?0:d+32|0)|0}else return b|0;return 0}function iu(a){a=a|0;var b=0,c=0,d=0;if(a)if(!(a&1)){b=0;c=a;while(1){a=b+1|0;if(!(c&2)){b=a;c=c>>>1}else{d=a;break}}}else d=0;else d=32;return d|0}function ju(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=Ia;Ia=Ia+256|0;f=e;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=f,a|0):0){h=f;i=a;while(1){j=i>>>0<256?i:256;Vv(h|0,c[b>>2]|0,j|0)|0;k=0;do{l=b+(k<<2)|0;k=k+1|0;Vv(c[l>>2]|0,c[b+(k<<2)>>2]|0,j|0)|0;c[l>>2]=(c[l>>2]|0)+j}while((k|0)!=(d|0));k=i-j|0;if(!k)break a;h=c[g>>2]|0;i=k}}while(0);Ia=e;return}function ku(a,b){a=a|0;b=b|0;mu(a,b)|0;return a|0}function lu(a,b){a=a|0;b=b|0;ku(a+(bu(a)|0)|0,b)|0;return a|0}function mu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=d;a:do if(!((e^b)&3)){if(!(e&3)){f=b;g=d}else{h=b;i=d;while(1){j=a[i>>0]|0;a[h>>0]=j;if(!(j<<24>>24)){k=h;break a}j=i+1|0;l=h+1|0;if(!(j&3)){f=l;g=j;break}else{h=l;i=j}}}i=c[g>>2]|0;if(!((i&-2139062144^-2139062144)&i+-16843009)){h=i;i=f;j=g;while(1){l=j+4|0;m=i+4|0;c[i>>2]=h;h=c[l>>2]|0;if((h&-2139062144^-2139062144)&h+-16843009|0){n=m;o=l;break}else{i=m;j=l}}}else{n=f;o=g}p=n;q=o;r=10}else{p=b;q=d;r=10}while(0);if((r|0)==10){r=a[q>>0]|0;a[p>>0]=r;if(!(r<<24>>24))k=p;else{r=p;p=q;while(1){p=p+1|0;q=r+1|0;d=a[p>>0]|0;a[q>>0]=d;if(!(d<<24>>24)){k=q;break}else r=q}}}return k|0}function nu(b,c){b=b|0;c=c|0;var d=0;d=uu(b,c)|0;return ((a[d>>0]|0)==(c&255)<<24>>24?d:0)|0}function ou(a){a=a|0;var b=0,d=0,e=0,f=0;b=Ia;Ia=Ia+16|0;d=b+8|0;e=tu(a,589824,b)|0;do if((e|0)>=0){a=_s(1,2080)|0;if(!a){c[d>>2]=e;ea(6,d|0)|0;f=0;break}else{c[a>>2]=e;f=a;break}}else f=0;while(0);Ia=b;return f|0}function pu(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;b=ft($(195,e|0)|0)|0;Ia=d;return b|0}function qu(a){a=a|0;var b=0;b=su(c[a>>2]|0)|0;Zs(a);return b|0}function ru(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=Ia;Ia=Ia+16|0;d=b;f=a+16|0;g=c[f>>2]|0;h=a+20|0;a:do if((g|0)<(c[h>>2]|0)){i=g;j=a+32+g|0;k=7}else{l=a+32|0;c[d>>2]=c[a>>2];c[d+4>>2]=l;c[d+8>>2]=2048;m=aa(220,d|0)|0;if((m|0)>=1){c[h>>2]=m;c[f>>2]=0;i=0;j=l;k=7;break}switch(m|0){case 0:case -2:{n=0;break a;break}default:{}}c[(gt()|0)>>2]=0-m;n=0}while(0);if((k|0)==7){c[f>>2]=i+(e[j+16>>1]|0);i=j+8|0;f=c[i+4>>2]|0;k=a+8|0;c[k>>2]=c[i>>2];c[k+4>>2]=f;n=j}Ia=b;return n|0}function su(a){a=a|0;var b=0,d=0;b=Ia;Ia=Ia+16|0;d=b;c[d>>2]=ht(a)|0;a=ea(6,d|0)|0;d=ft((a|0)==-4?0:a)|0;Ia=b;return d|0}function tu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=Ia;Ia=Ia+48|0;f=e+32|0;g=e+16|0;h=e;if(!(b&4194368))i=0;else{c[h>>2]=d;d=(c[h>>2]|0)+(4-1)&~(4-1);j=c[d>>2]|0;c[h>>2]=d+4;i=j}c[g>>2]=a;c[g+4>>2]=b|32768;c[g+8>>2]=i;i=ca(5,g|0)|0;if(!((b&524288|0)==0|(i|0)<0)){c[f>>2]=i;c[f+4>>2]=2;c[f+8>>2]=1;ba(221,f|0)|0}f=ft(i)|0;Ia=e;return f|0}function uu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=d&255;a:do if(!e)f=b+(bu(b)|0)|0;else{if(!(b&3))g=b;else{h=d&255;i=b;while(1){j=a[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){f=i;break a}j=i+1|0;if(!(j&3)){g=j;break}else i=j}}i=B(e,16843009)|0;h=c[g>>2]|0;b:do if(!((h&-2139062144^-2139062144)&h+-16843009)){j=h;k=g;while(1){l=j^i;if((l&-2139062144^-2139062144)&l+-16843009|0){m=k;break b}l=k+4|0;j=c[l>>2]|0;if((j&-2139062144^-2139062144)&j+-16843009|0){m=l;break}else k=l}}else m=g;while(0);i=d&255;h=m;while(1){k=a[h>>0]|0;if(k<<24>>24==0?1:k<<24>>24==i<<24>>24){f=h;break}else h=h+1|0}}while(0);return f|0}function vu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0.0;e=Ia;Ia=Ia+144|0;f=e;Wv(f|0,0,144)|0;g=f+4|0;c[g>>2]=a;h=f+8|0;c[h>>2]=-1;c[f+44>>2]=a;c[f+76>>2]=-1;Wt(f,0,0);i=+wu(f,d,1);d=f+120|0;f=(c[g>>2]|0)-(c[h>>2]|0)|0;h=Hv(c[d>>2]|0,c[d+4>>2]|0,f|0,((f|0)<0)<<31>>31|0)|0;f=G()|0;if(b|0)c[b>>2]=(h|0)==0&(f|0)==0?a:a+h|0;Ia=e;return +i}function wu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;switch(e|0){case 0:{g=24;h=-149;i=4;break}case 1:{g=53;h=-1074;i=4;break}case 2:{g=53;h=-1074;i=4;break}default:j=0.0}a:do if((i|0)==4){e=b+4|0;k=b+104|0;do{l=c[e>>2]|0;if(l>>>0<(c[k>>2]|0)>>>0){c[e>>2]=l+1;m=d[l>>0]|0}else m=Yt(b)|0}while((Zt(m)|0)!=0);b:do switch(m|0){case 43:case 45:{l=1-(((m|0)==45&1)<<1)|0;n=c[e>>2]|0;if(n>>>0<(c[k>>2]|0)>>>0){c[e>>2]=n+1;o=d[n>>0]|0;p=l;break b}else{o=Yt(b)|0;p=l;break b}break}default:{o=m;p=1}}while(0);l=o;n=0;while(1){if((l|32|0)!=(a[104869+n>>0]|0)){q=l;t=n;break}do if(n>>>0<7){u=c[e>>2]|0;if(u>>>0<(c[k>>2]|0)>>>0){c[e>>2]=u+1;v=d[u>>0]|0;break}else{v=Yt(b)|0;break}}else v=l;while(0);n=n+1|0;if(n>>>0>=8){q=v;t=8;break}else l=v}c:do switch(t&2147483647|0){case 8:break;case 3:{i=23;break}default:{l=(f|0)!=0;if(l&t>>>0>3)if((t|0)==8)break c;else{i=23;break c}d:do if(!t){n=q;u=0;while(1){if((n|32|0)!=(a[104878+u>>0]|0)){w=n;x=u;break d}do if(u>>>0<2){y=c[e>>2]|0;if(y>>>0<(c[k>>2]|0)>>>0){c[e>>2]=y+1;z=d[y>>0]|0;break}else{z=Yt(b)|0;break}}else z=n;while(0);u=u+1|0;if(u>>>0>=3){w=z;x=3;break}else n=z}}else{w=q;x=t}while(0);switch(x|0){case 3:{n=c[e>>2]|0;if(n>>>0<(c[k>>2]|0)>>>0){c[e>>2]=n+1;A=d[n>>0]|0}else A=Yt(b)|0;if((A|0)!=40){if(!(c[k>>2]|0)){j=r;break a}c[e>>2]=(c[e>>2]|0)+-1;j=r;break a}n=1;while(1){u=c[e>>2]|0;if(u>>>0<(c[k>>2]|0)>>>0){c[e>>2]=u+1;B=d[u>>0]|0}else B=Yt(b)|0;if(!((B+-48|0)>>>0<10|(B+-65|0)>>>0<26)?!((B|0)==95|(B+-97|0)>>>0<26):0)break;n=n+1|0}if((B|0)==41){j=r;break a}u=(c[k>>2]|0)==0;if(!u)c[e>>2]=(c[e>>2]|0)+-1;if(!l){c[(gt()|0)>>2]=22;Wt(b,0,0);j=0.0;break a}if(!n){j=r;break a}y=n;while(1){y=y+-1|0;if(!u)c[e>>2]=(c[e>>2]|0)+-1;if(!y){j=r;break a}}break}case 0:{if((w|0)==48){y=c[e>>2]|0;if(y>>>0<(c[k>>2]|0)>>>0){c[e>>2]=y+1;C=d[y>>0]|0}else C=Yt(b)|0;if((C|32|0)==120){j=+xu(b,g,h,p,f);break a}if(!(c[k>>2]|0))D=48;else{c[e>>2]=(c[e>>2]|0)+-1;D=48}}else D=w;j=+yu(b,D,g,h,p,f);break a;break}default:{if(c[k>>2]|0)c[e>>2]=(c[e>>2]|0)+-1;c[(gt()|0)>>2]=22;Wt(b,0,0);j=0.0;break a}}}}while(0);if((i|0)==23){y=(c[k>>2]|0)==0;if(!y)c[e>>2]=(c[e>>2]|0)+-1;if((f|0)!=0&t>>>0>3){u=t;do{if(!y)c[e>>2]=(c[e>>2]|0)+-1;u=u+-1|0}while(u>>>0>3)}}j=+(p|0)*s}while(0);return +j}function xu(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0.0,I=0,J=0.0,K=0.0,L=0,M=0.0,N=0,O=0.0,P=0,Q=0.0,R=0,S=0,T=0,U=0,V=0,W=0,X=0.0,Y=0,Z=0,_=0,$=0.0,aa=0,ba=0.0;h=a+4|0;i=c[h>>2]|0;j=a+104|0;if(i>>>0<(c[j>>2]|0)>>>0){c[h>>2]=i+1;k=d[i>>0]|0}else k=Yt(a)|0;i=k;k=0;a:while(1){switch(i|0){case 46:{l=10;break a;break}case 48:break;default:{m=0;n=0;o=i;p=k;q=0;break a}}r=c[h>>2]|0;if(r>>>0<(c[j>>2]|0)>>>0){c[h>>2]=r+1;s=d[r>>0]|0}else s=Yt(a)|0;i=s;k=1}if((l|0)==10){s=c[h>>2]|0;if(s>>>0<(c[j>>2]|0)>>>0){c[h>>2]=s+1;t=d[s>>0]|0}else t=Yt(a)|0;if((t|0)==48){s=0;i=0;while(1){r=c[h>>2]|0;if(r>>>0<(c[j>>2]|0)>>>0){c[h>>2]=r+1;u=d[r>>0]|0}else u=Yt(a)|0;r=Hv(s|0,i|0,-1,-1)|0;v=G()|0;if((u|0)==48){s=r;i=v}else{m=r;n=v;o=u;p=1;q=1;break}}}else{m=0;n=0;o=t;p=k;q=1}}k=0;t=0;u=m;m=n;n=o;o=p;p=q;q=0;w=1.0;i=0;x=0.0;while(1){s=n+-48|0;v=n|32;if(s>>>0>=10){r=(n|0)==46;if(!(r|(v+-97|0)>>>0<6)){y=n;break}if(r)if(!p){z=t;A=k;B=t;C=k;D=o;E=1;F=q;H=w;I=i;J=x}else{y=46;break}else l=24}else l=24;if((l|0)==24){l=0;r=(n|0)>57?v+-87|0:s;do if(!((k|0)<0|(k|0)==0&t>>>0<8))if((k|0)<0|(k|0)==0&t>>>0<14){K=w*.0625;L=q;M=K;N=i;O=x+K*+(r|0);break}else{s=(q|0)!=0|(r|0)==0;L=s?q:1;M=w;N=i;O=s?x:x+w*.5;break}else{L=q;M=w;N=r+(i<<4)|0;O=x}while(0);r=Hv(t|0,k|0,1,0)|0;z=u;A=m;B=r;C=G()|0;D=1;E=p;F=L;H=M;I=N;J=O}r=c[h>>2]|0;if(r>>>0<(c[j>>2]|0)>>>0){c[h>>2]=r+1;P=d[r>>0]|0}else P=Yt(a)|0;k=C;t=B;u=z;m=A;n=P;o=D;p=E;q=F;w=H;i=I;x=J}do if(!o){I=(c[j>>2]|0)==0;if(!I)c[h>>2]=(c[h>>2]|0)+-1;if(g){if(!I?(c[h>>2]=(c[h>>2]|0)+-1,!((p|0)==0|I)):0)c[h>>2]=(c[h>>2]|0)+-1}else Wt(a,0,0);Q=+(f|0)*0.0}else{I=(p|0)==0;F=I?t:u;q=I?k:m;if((k|0)<0|(k|0)==0&t>>>0<8){I=t;E=k;D=i;while(1){P=D<<4;n=I;I=Hv(I|0,E|0,1,0)|0;A=E;E=G()|0;if(!((A|0)<0|(A|0)==0&n>>>0<7)){R=P;break}else D=P}}else R=i;if((y|32|0)==112){D=zu(a,g)|0;E=G()|0;if((D|0)==0&(E|0)==-2147483648){if(!g){Wt(a,0,0);Q=0.0;break}if(!(c[j>>2]|0)){S=0;T=0}else{c[h>>2]=(c[h>>2]|0)+-1;S=0;T=0}}else{S=D;T=E}}else if(!(c[j>>2]|0)){S=0;T=0}else{c[h>>2]=(c[h>>2]|0)+-1;S=0;T=0}E=Rv(F|0,q|0,2)|0;D=Hv(E|0,G()|0,-32,-1)|0;E=Hv(D|0,G()|0,S|0,T|0)|0;D=G()|0;if(!R){Q=+(f|0)*0.0;break}I=0-e|0;P=((I|0)<0)<<31>>31;if((D|0)>(P|0)|(D|0)==(P|0)&E>>>0>I>>>0){c[(gt()|0)>>2]=34;Q=+(f|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}I=e+-106|0;P=((I|0)<0)<<31>>31;if((D|0)<(P|0)|(D|0)==(P|0)&E>>>0<I>>>0){c[(gt()|0)>>2]=34;Q=+(f|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((R|0)>-1){I=E;P=D;n=R;J=x;while(1){A=!(J>=.5);z=n<<1|(A^1)&1;H=J+(A?J:J+-1.0);A=Hv(I|0,P|0,-1,-1)|0;B=G()|0;if((z|0)>-1){I=A;P=B;n=z;J=H}else{U=A;V=B;W=z;X=H;break}}}else{U=E;V=D;W=R;X=x}n=((b|0)<0)<<31>>31;P=Iv(32,0,e|0,((e|0)<0)<<31>>31|0)|0;I=Hv(P|0,G()|0,U|0,V|0)|0;P=G()|0;if((P|0)<(n|0)|(P|0)==(n|0)&I>>>0<b>>>0)if((I|0)>0){Y=I;l=65}else{Z=0;_=84;l=67}else{Y=b;l=65}if((l|0)==65)if((Y|0)<53){Z=Y;_=84-Y|0;l=67}else{$=0.0;aa=Y;ba=+(f|0)}if((l|0)==67){J=+(f|0);$=+nt(+lt(1.0,_),J);aa=Z;ba=J}I=(W&1|0)==0&(X!=0.0&(aa|0)<32);J=(I?0.0:X)*ba+($+ba*+((W+(I&1)|0)>>>0))-$;if(!(J!=0.0))c[(gt()|0)>>2]=34;Q=+st(J,U)}while(0);return +Q} +function be(e,f,g,h,i,j){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;k=Ia;Ia=Ia+16|0;l=k;m=k+8|0;if(!h)n=0;else{o=c[e+16>>2]|0;do if((h|0)<=0){if((h|0)>=-1000999){p=(c[e+8>>2]|0)+(h<<3)|0;break}if((h|0)==-1001e3){p=(c[e+12>>2]|0)+36|0;break}q=-1001e3-h|0;r=c[o>>2]|0;if((c[r+4>>2]|32|0)==54)p=2217396;else{s=c[r>>2]|0;p=(q|0)>(d[s+6>>0]|0)?2217396:s+16+(q+-1<<3)|0}}else{q=(c[o>>2]|0)+(h<<3)|0;p=q>>>0<(c[e+8>>2]|0)>>>0?q:2217396}while(0);n=p-(c[e+28>>2]|0)|0}p=e+8|0;h=(c[p>>2]|0)+(~f<<3)|0;c[m>>2]=h;f=h;if((j|0)!=0?(b[e+36>>1]|0)==0:0){o=c[e+16>>2]|0;c[o+28>>2]=j;c[o+24>>2]=i;c[o+20>>2]=f-(c[e+28>>2]|0);a[o+36>>0]=a[e+41>>0]|0;i=e+68|0;j=o+32|0;c[j>>2]=c[i>>2];c[i>>2]=n;q=o+18|0;a[q>>0]=a[q>>0]|16;o=e+38|0;s=(b[o>>1]|0)+1<<16>>16;b[o>>1]=s;if((s&65535)>199){if(s<<16>>16==200)Ac(e,47199,l);if((s&65535)>224)yc(e,6)}if(!(Ec(e,h,g)|0))Fc(e);b[o>>1]=(b[o>>1]|0)+-1<<16>>16;a[q>>0]=a[q>>0]&-17;c[i>>2]=c[j>>2];t=0}else{c[m+4>>2]=g;t=de(e,3,m,f-(c[e+28>>2]|0)|0,n)|0}if((g|0)!=-1){Ia=k;return t|0}g=(c[e+16>>2]|0)+4|0;e=c[p>>2]|0;if((c[g>>2]|0)>>>0>=e>>>0){Ia=k;return t|0}c[g>>2]=e;Ia=k;return t|0}function ce(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e;g=c[d>>2]|0;h=c[d+4>>2]|0;d=a+38|0;i=(b[d>>1]|0)+1<<16>>16;b[d>>1]=i;if((i&65535)>199){if(i<<16>>16==200)Ac(a,47199,f);if((i&65535)>224)yc(a,6)}i=a+36|0;b[i>>1]=(b[i>>1]|0)+1<<16>>16;if(!(Ec(a,g,h)|0))Fc(a);b[i>>1]=(b[i>>1]|0)+-1<<16>>16;b[d>>1]=(b[d>>1]|0)+-1<<16>>16;Ia=e;return}function de(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=d+16|0;j=c[i>>2]|0;k=d+41|0;l=a[k>>0]|0;m=d+36|0;n=b[m>>1]|0;o=d+68|0;p=c[o>>2]|0;c[o>>2]=h;h=xc(d,e,f)|0;if(!h){c[o>>2]=p;return h|0}f=d+28|0;e=(c[f>>2]|0)+g|0;Sc(d,e);switch(h|0){case 4:{g=c[(c[d+12>>2]|0)+152>>2]|0;c[e>>2]=g;q=(a[g+4>>0]|64)&255;break}case 6:{g=bd(d,47901,23)|0;c[e>>2]=g;q=(a[g+4>>0]|64)&255;break}default:{g=c[d+8>>2]|0;c[e>>2]=c[g+-8>>2];q=c[g+-4>>2]|0}}c[e+4>>2]=q;q=e+8|0;c[d+8>>2]=q;c[i>>2]=j;a[k>>0]=l;b[m>>1]=n;if(!j)r=q;else{n=j;j=q;while(1){q=c[n+4>>2]|0;m=j>>>0<q>>>0?q:j;n=c[n+8>>2]|0;if(!n){r=m;break}else j=m}}j=r-(c[f>>2]|0)|0;f=j>>3;r=f+11+((f+1|0)/8|0)|0;f=(r|0)<1e6?r:1e6;if((j|0)>7999992){c[o>>2]=p;return h|0}if((f|0)>=(c[d+32>>2]|0)){c[o>>2]=p;return h|0}zc(d,f);c[o>>2]=p;return h|0}function ee(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;i=Ia;Ia=Ia+32|0;j=i;c[j+16>>2]=b;c[j+8>>2]=e;c[j+12>>2]=f;c[j>>2]=0;c[j+4>>2]=0;f=fe(b,j,(g|0)==0?80062:g,h)|0;if(f|0){Ia=i;return f|0}h=c[(c[b+8>>2]|0)+-8>>2]|0;if((a[h+6>>0]|0)!=1){Ia=i;return f|0}g=b+12|0;b=c[(c[g>>2]|0)+36>>2]|0;a:do if((c[b+28>>2]|0)>>>0>1)k=(c[b+12>>2]|0)+8|0;else{j=(c[b+16>>2]|0)+((131072%((1<<d[b+7>>0])+-1|1|0)|0)*20|0)|0;while(1){if((c[j+12>>2]|0)==3?(c[j+8>>2]|0)==131072:0)break;e=c[j+16>>2]|0;if(!e){k=2217396;break a}else j=e}k=j}while(0);b=h+16|0;h=c[(c[b>>2]|0)+8>>2]|0;c[h>>2]=c[k>>2];e=k+4|0;c[h+4>>2]=c[e>>2];if(!(c[e>>2]&64)){Ia=i;return f|0}e=c[k>>2]|0;if(!(a[e+5>>0]&3)){Ia=i;return f|0}k=(c[b>>2]|0)+5|0;b=a[k>>0]|0;if(!(b&4)){Ia=i;return f|0}h=c[g>>2]|0;if((d[h+49>>0]|0)<2){Jc(h,e);Ia=i;return f|0}else{a[k>>0]=a[h+48>>0]&3|b&-72;Ia=i;return f|0}return 0}function fe(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=Ia;Ia=Ia+64|0;h=g;i=a+36|0;b[i>>1]=(b[i>>1]|0)+1<<16>>16;c[h>>2]=d;c[h+56>>2]=e;c[h+52>>2]=f;f=h+16|0;c[f>>2]=0;e=h+24|0;c[e>>2]=0;d=h+28|0;c[d>>2]=0;j=h+36|0;c[j>>2]=0;k=h+40|0;c[k>>2]=0;l=h+48|0;c[l>>2]=0;m=h+4|0;c[m>>2]=0;n=h+12|0;c[n>>2]=0;o=de(a,4,h,(c[a+8>>2]|0)-(c[a+28>>2]|0)|0,c[a+68>>2]|0)|0;h=c[m>>2]|0;p=c[n>>2]|0;q=a+12|0;a=c[q>>2]|0;r=Pa[c[a>>2]&3](c[a+4>>2]|0,h,p,0)|0;s=a+12|0;c[s>>2]=(c[s>>2]|0)+((h|0)==0?0:0-p|0);c[m>>2]=r;c[n>>2]=0;n=c[f>>2]|0;f=c[e>>2]<<1;e=c[q>>2]|0;Pa[c[e>>2]&3](c[e+4>>2]|0,n,f,0)|0;r=e+12|0;c[r>>2]=(c[r>>2]|0)+((n|0)==0?0:0-f|0);f=c[d>>2]|0;d=c[j>>2]<<4;j=c[q>>2]|0;Pa[c[j>>2]&3](c[j+4>>2]|0,f,d,0)|0;n=j+12|0;c[n>>2]=(c[n>>2]|0)+((f|0)==0?0:0-d|0);d=c[k>>2]|0;k=c[l>>2]<<4;l=c[q>>2]|0;Pa[c[l>>2]&3](c[l+4>>2]|0,d,k,0)|0;q=l+12|0;c[q>>2]=(c[q>>2]|0)+((d|0)==0?0:0-k|0);b[i>>1]=(b[i>>1]|0)+-1<<16>>16;Ia=g;return o|0}function ge(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=Ia;Ia=Ia+32|0;g=f+8|0;h=f;i=f+16|0;j=c[e>>2]|0;k=c[j>>2]|0;c[j>>2]=k+-1;if(!k){k=Oa[c[j+8>>2]&7](c[j+16>>2]|0,c[j+12>>2]|0,i)|0;l=c[i>>2]|0;if((k|0)==0|(l|0)==0)m=-1;else{c[j>>2]=l+-1;c[j+4>>2]=k+1;m=d[k>>0]|0}n=m}else{m=j+4|0;j=c[m>>2]|0;c[m>>2]=j+1;n=d[j>>0]|0}j=c[e+52>>2]|0;m=(j|0)==0;if((n|0)==27){if(!m?(nu(j,98)|0)==0:0){c[h>>2]=71880;c[h+4>>2]=j;wd(b,47925,h)|0;yc(b,3)}o=he(b,c[e>>2]|0,e+4|0,c[e+56>>2]|0)|0}else{if(!m?(nu(j,116)|0)==0:0){c[g>>2]=47967;c[g+4>>2]=j;wd(b,47925,g)|0;yc(b,3)}o=ie(b,c[e>>2]|0,e+4|0,e+16|0,c[e+56>>2]|0,n)|0}n=o+6|0;if(!(a[n>>0]|0)){Ia=f;return}e=b+12|0;g=o+16|0;j=o+5|0;o=0;while(1){m=c[e>>2]|0;h=m+4|0;k=Pa[c[m>>2]&3](c[h>>2]|0,0,10,20)|0;if(!k){if(!(a[m+51>>0]|0)){p=20;break}Kc(b,1);l=Pa[c[m>>2]&3](c[h>>2]|0,0,10,20)|0;if(!l){p=20;break}else q=l}else q=k;k=m+12|0;c[k>>2]=(c[k>>2]|0)+20;k=m+56|0;l=q+5|0;a[l>>0]=a[m+48>>0]&3;a[q+4>>0]=10;c[q>>2]=c[k>>2];c[k>>2]=q;c[q+8>>2]=q+12;c[q+16>>2]=0;c[g+(o<<2)>>2]=q;do if(a[l>>0]&3?(k=a[j>>0]|0,k&4):0){m=c[e>>2]|0;if((d[m+49>>0]|0)<2){Jc(m,q);break}else{a[j>>0]=a[m+48>>0]&3|k&-72;break}}while(0);o=o+1|0;if(o>>>0>=(d[n>>0]|0)>>>0){p=27;break}}if((p|0)==20)yc(b,4);else if((p|0)==27){Ia=f;return}}function he(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;h=Ia;Ia=Ia+96|0;i=h+56|0;j=h+80|0;k=h+32|0;l=h;m=h+64|0;switch(a[g>>0]|0){case 61:case 64:{n=g+1|0;break}case 27:{n=49038;break}default:n=g}c[m+12>>2]=n;c[m>>2]=d;c[m+4>>2]=e;c[m+8>>2]=f;c[k>>2]=1635077147;a[k+4>>0]=82;a[k+5>>0]=0;f=k+7|0;a[k+6>>0]=1;n=k+12|0;a[f>>0]=4;a[f+1>>0]=4;a[f+2>>0]=4;a[f+3>>0]=4;a[k+11>>0]=1;c[n>>2]=c[8724];b[n+4>>1]=b[17450]|0;a[l>>0]=27;n=e+16|0;f=e+8|0;g=e+12|0;o=e+4|0;p=c[e>>2]|0;q=l+1|0;r=17;while(1){if(!p){s=Oa[c[f>>2]&7](c[n>>2]|0,c[g>>2]|0,j)|0;t=c[j>>2]|0;if((s|0)==0|(t|0)==0){u=10;break}c[e>>2]=t;c[o>>2]=s;v=t;w=s}else{v=p;w=c[o>>2]|0}s=r>>>0>v>>>0?v:r;Vv(q|0,w|0,s|0)|0;p=(c[e>>2]|0)-s|0;c[e>>2]=p;c[o>>2]=(c[o>>2]|0)+s;r=r-s|0;if(!r)break;else q=q+s|0}if((u|0)==10)of(m,49052);if(tt(k,l,18)|0){if((c[k>>2]|0)!=(c[l>>2]|0))of(m,49062);if(tt(k,l,6)|0)of(m,49068);if(!(tt(k,l,12)|0))of(m,49101);else of(m,49088)}l=d+12|0;k=c[l>>2]|0;u=k+4|0;q=Pa[c[k>>2]&3](c[u>>2]|0,0,6,20)|0;if(!q){if(!(a[k+51>>0]|0))yc(d,4);Kc(d,1);r=Pa[c[k>>2]&3](c[u>>2]|0,0,6,20)|0;if(!r)yc(d,4);else x=r}else x=q;q=k+12|0;c[q>>2]=(c[q>>2]|0)+20;q=k+56|0;a[x+5>>0]=a[k+48>>0]&3;a[x+4>>0]=6;c[x>>2]=c[q>>2];c[q>>2]=x;q=x+12|0;c[q>>2]=0;a[x+6>>0]=1;c[x+16>>2]=0;k=d+8|0;r=c[k>>2]|0;c[r>>2]=x;c[r+4>>2]=70;r=(c[k>>2]|0)+8|0;c[k>>2]=r;u=r;do if(((c[d+24>>2]|0)-u|0)<8){r=c[d+32>>2]|0;if((r|0)>1e6)yc(d,6);o=(u-(c[d+28>>2]|0)>>3)+5|0;p=r<<1;r=(p|0)<1e6?p:1e6;p=(r|0)<(o|0)?o:r;if((p|0)>1e6){zc(d,1000200);Ac(d,47184,i)}else{zc(d,p);break}}while(0);i=c[l>>2]|0;l=i+4|0;u=Pa[c[i>>2]&3](c[l>>2]|0,0,9,80)|0;if(!u){if(!(a[i+51>>0]|0))yc(d,4);Kc(d,1);p=Pa[c[i>>2]&3](c[l>>2]|0,0,9,80)|0;if(!p)yc(d,4);else y=p}else y=u;u=i+12|0;c[u>>2]=(c[u>>2]|0)+80;u=i+56|0;a[y+5>>0]=a[i+48>>0]&3;a[y+4>>0]=9;c[y>>2]=c[u>>2];c[u>>2]=y;a[y+76>>0]=0;a[y+77>>0]=0;a[y+78>>0]=0;u=y+8|0;i=u+64|0;do{c[u>>2]=0;u=u+4|0}while((u|0)<(i|0));c[q>>2]=y;pf(m,y);y=c[q>>2]|0;q=c[y+40>>2]|0;if((q|0)==1){z=x;Ia=h;return z|0}x=Yc(d,q)|0;c[x+12>>2]=y;y=c[k>>2]|0;c[y+-8>>2]=x;c[y+-4>>2]=70;z=x;Ia=h;return z|0}function ie(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;j=Ia;Ia=Ia+176|0;k=j+8|0;l=j;m=j+152|0;n=j+136|0;o=j+64|0;p=j+12|0;q=d+12|0;r=c[q>>2]|0;s=r+4|0;t=Pa[c[r>>2]&3](c[s>>2]|0,0,6,20)|0;if(!t){if(!(a[r+51>>0]|0))yc(d,4);Kc(d,1);u=Pa[c[r>>2]&3](c[s>>2]|0,0,6,20)|0;if(!u)yc(d,4);else v=u}else v=t;t=r+12|0;c[t>>2]=(c[t>>2]|0)+20;t=r+56|0;a[v+5>>0]=a[r+48>>0]&3;a[v+4>>0]=6;c[v>>2]=c[t>>2];c[t>>2]=v;t=v+12|0;c[t>>2]=0;a[v+6>>0]=1;c[v+16>>2]=0;r=d+8|0;u=c[r>>2]|0;c[u>>2]=v;c[u+4>>2]=70;u=(c[r>>2]|0)+8|0;c[r>>2]=u;r=u;do if(((c[d+24>>2]|0)-r|0)<8){u=c[d+32>>2]|0;if((u|0)>1e6)yc(d,6);s=(r-(c[d+28>>2]|0)>>3)+5|0;w=u<<1;u=(w|0)<1e6?w:1e6;w=(u|0)<(s|0)?s:u;if((w|0)>1e6){zc(d,1000200);Ac(d,47184,l)}else{zc(d,w);break}}while(0);l=c[q>>2]|0;q=l+4|0;r=Pa[c[l>>2]&3](c[q>>2]|0,0,9,80)|0;if(!r){if(!(a[l+51>>0]|0))yc(d,4);Kc(d,1);w=Pa[c[l>>2]&3](c[q>>2]|0,0,9,80)|0;if(!w)yc(d,4);else x=w}else x=r;r=l+12|0;c[r>>2]=(c[r>>2]|0)+80;r=l+56|0;a[x+5>>0]=a[l+48>>0]&3;a[x+4>>0]=9;c[x>>2]=c[r>>2];c[r>>2]=x;a[x+76>>0]=0;a[x+77>>0]=0;a[x+78>>0]=0;r=x+8|0;l=r+64|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(l|0));c[t>>2]=x;c[p>>2]=x;t=xd(d,h,bu(h)|0)|0;c[x+36>>2]=t;h=o+52|0;c[h>>2]=f;f=o+56|0;c[f>>2]=g;c[g+28>>2]=0;c[g+16>>2]=0;c[g+4>>2]=0;a[o+68>>0]=46;g=o+44|0;c[g>>2]=d;c[o>>2]=i;c[o+32>>2]=287;c[o+48>>2]=e;e=o+40|0;c[e>>2]=0;i=o+4|0;c[i>>2]=1;c[o+8>>2]=1;c[o+12>>2]=0;r=o+16|0;c[r>>2]=1;c[o+20>>2]=-1;l=o+60|0;c[l>>2]=t;t=bd(d,47556,4)|0;d=o+64|0;c[d>>2]=t;w=t+5|0;a[w>>0]=a[w>>0]|32;w=c[g>>2]|0;g=c[h>>2]|0;h=c[g>>2]|0;t=g+8|0;q=c[t>>2]|0;u=w+12|0;s=c[u>>2]|0;y=(h|0)==0;z=s+4|0;A=Pa[c[s>>2]&3](c[z>>2]|0,h,q,32)|0;if(!A){if(!(a[s+51>>0]|0))yc(w,4);Kc(w,1);B=Pa[c[s>>2]&3](c[z>>2]|0,h,q,32)|0;if(!B)yc(w,4);else C=B}else C=A;A=s+12|0;c[A>>2]=(c[A>>2]|0)+(y?32:32-q|0);c[g>>2]=C;c[t>>2]=32;c[p+8>>2]=c[e>>2];t=p+12|0;c[t>>2]=o;c[e>>2]=p;c[p+20>>2]=0;c[p+24>>2]=0;c[p+28>>2]=-1;c[p+32>>2]=0;c[p+36>>2]=0;e=p+44|0;c[e>>2]=0;a[e+4>>0]=0;c[p+40>>2]=c[(c[f>>2]|0)+4>>2];f=p+16|0;c[f>>2]=0;c[x+36>>2]=c[l>>2];a[x+78>>0]=2;x=c[u>>2]|0;u=x+4|0;l=Pa[c[x>>2]&3](c[u>>2]|0,0,5,32)|0;if(!l){if(!(a[x+51>>0]|0))yc(w,4);Kc(w,1);e=Pa[c[x>>2]&3](c[u>>2]|0,0,5,32)|0;if(!e)yc(w,4);else D=e}else D=l;l=x+12|0;c[l>>2]=(c[l>>2]|0)+32;l=x+56|0;a[D+5>>0]=a[x+48>>0]&3;a[D+4>>0]=5;c[D>>2]=c[l>>2];c[l>>2]=D;c[D+8>>2]=0;a[D+6>>0]=-1;c[D+12>>2]=0;c[D+28>>2]=0;c[D+16>>2]=2217420;a[D+7>>0]=0;c[D+20>>2]=2217420;c[p+4>>2]=D;l=w+8|0;x=c[l>>2]|0;c[x>>2]=D;c[x+4>>2]=69;x=(c[l>>2]|0)+8|0;c[l>>2]=x;l=x;do if(((c[w+24>>2]|0)-l|0)<8){x=c[w+32>>2]|0;if((x|0)>1e6)yc(w,6);D=(l-(c[w+28>>2]|0)>>3)+5|0;e=x<<1;x=(e|0)<1e6?e:1e6;e=(x|0)<(D|0)?D:x;if((e|0)>1e6){zc(w,1000200);Ac(w,47184,k)}else{zc(w,e);break}}while(0);a[m+10>>0]=0;a[m+8>>0]=a[p+46>>0]|0;w=c[(c[t>>2]|0)+56>>2]|0;b[m+4>>1]=c[w+28>>2];b[m+6>>1]=c[w+16>>2];a[m+9>>0]=0;c[m>>2]=c[f>>2];c[f>>2]=m;a[(c[p>>2]|0)+77>>0]=1;c[n+8>>2]=-1;c[n+12>>2]=-1;c[n>>2]=7;c[n+4>>2]=0;je(p,c[d>>2]|0,n)|0;c[r>>2]=c[i>>2];i=o+32|0;if((c[i>>2]|0)==287){r=ke(o,o+28|0)|0;n=o+24|0;c[n>>2]=r;E=r;F=n}else{n=i;r=c[n>>2]|0;d=c[n+4>>2]|0;n=o+24|0;c[n>>2]=r;c[n+4>>2]=d;c[i>>2]=287;E=r;F=o+24|0}r=E;a:while(1){switch(r|0){case 277:case 292:case 287:case 262:case 261:case 260:{G=r;break a;break}default:{}}le(o);E=c[F>>2]|0;if((r|0)==274){G=E;break}else r=E}if((G|0)==287){ne(o);Ia=j;return v|0}else me(o,287);return 0}function je(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=c[b>>2]|0;h=g+40|0;i=c[h>>2]|0;j=b+47|0;k=a[j>>0]|0;if(k<<24>>24==-1)Ce(b,255,49029);if((i|0)>(k&255|0))l=i;else{k=g+28|0;c[k>>2]=se(c[(c[b+12>>2]|0)+44>>2]|0,c[k>>2]|0,h,8,255,49029)|0;l=c[h>>2]|0}h=c[g+28>>2]|0;if((i|0)<(l|0)){k=i;do{c[h+(k<<3)>>2]=0;k=k+1|0}while((k|0)<(l|0))}l=d[j>>0]|0;a[h+(l<<3)+4>>0]=(c[f>>2]|0)==7&1;a[h+(l<<3)+5>>0]=c[f+4>>2];c[h+(l<<3)>>2]=e;if(!(a[e+5>>0]&3)){m=a[j>>0]|0;n=m+1<<24>>24;a[j>>0]=n;o=m&255;return o|0}l=g+5|0;g=a[l>>0]|0;if(!(g&4)){m=a[j>>0]|0;n=m+1<<24>>24;a[j>>0]=n;o=m&255;return o|0}h=c[(c[(c[b+12>>2]|0)+44>>2]|0)+12>>2]|0;if((d[h+49>>0]|0)<2){Jc(h,e);m=a[j>>0]|0;n=m+1<<24>>24;a[j>>0]=n;o=m&255;return o|0}else{a[l>>0]=a[h+48>>0]&3|g&-72;m=a[j>>0]|0;n=m+1<<24>>24;a[j>>0]=n;o=m&255;return o|0}return 0}function ke(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0;f=Ia;Ia=Ia+16|0;g=f+12|0;h=f;i=b+12|0;j=c[i>>2]|0;a:do if((j|0)>1){switch(c[b>>2]|0){case 13:case 10:break;default:break a}c[i>>2]=j+-1;k=292;Ia=f;return k|0}while(0);j=b+52|0;c[(c[j>>2]|0)+4>>2]=0;l=b+8|0;m=b+48|0;b:while(1){n=c[l>>2]|0;c[l>>2]=0;o=c[b>>2]|0;c:do switch(o|0){case 63:{p=14;break b;break}case 92:case 33:case 126:case 124:case 38:case 37:case 42:case 43:{p=75;break b;break}case 91:{p=94;break b;break}case 61:{p=98;break b;break}case 60:{p=110;break b;break}case 94:{p=146;break b;break}case 62:{p=170;break b;break}case 58:{p=218;break b;break}case 39:case 34:{p=230;break b;break}case 46:{p=377;break b;break}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{q=o;break b;break}case -1:{k=287;p=587;break b;break}case 13:case 10:{hf(b);r=c[i>>2]|0;if(r|0){p=7;break b}break}case 11:case 9:case 12:case 32:{s=c[m>>2]|0;t=c[s>>2]|0;c[s>>2]=t+-1;if(!t){t=Oa[c[s+8>>2]&7](c[s+16>>2]|0,c[s+12>>2]|0,g)|0;u=c[g>>2]|0;if((t|0)==0|(u|0)==0)v=-1;else{c[s>>2]=u+-1;c[s+4>>2]=t+1;v=d[t>>0]|0}w=v}else{t=s+4|0;s=c[t>>2]|0;c[t>>2]=s+1;w=d[s>>0]|0}c[b>>2]=w;c[l>>2]=n;break}case 45:{s=c[m>>2]|0;t=c[s>>2]|0;c[s>>2]=t+-1;if(!t){t=Oa[c[s+8>>2]&7](c[s+16>>2]|0,c[s+12>>2]|0,g)|0;u=c[g>>2]|0;if((t|0)==0|(u|0)==0)x=-1;else{c[s>>2]=u+-1;c[s+4>>2]=t+1;x=d[t>>0]|0}y=x}else{t=s+4|0;s=c[t>>2]|0;c[t>>2]=s+1;y=d[s>>0]|0}c[b>>2]=y;switch(y|0){case 61:{p=26;break b;break}case 45:break;default:{k=45;p=587;break b}}s=c[m>>2]|0;t=c[s>>2]|0;c[s>>2]=t+-1;if(!t){t=Oa[c[s+8>>2]&7](c[s+16>>2]|0,c[s+12>>2]|0,g)|0;u=c[g>>2]|0;if((t|0)==0|(u|0)==0)z=-1;else{c[s>>2]=u+-1;c[s+4>>2]=t+1;z=d[t>>0]|0}A=z}else{t=s+4|0;s=c[t>>2]|0;c[t>>2]=s+1;A=d[s>>0]|0}c[b>>2]=A;do if((A|0)==91){s=jf(b)|0;c[(c[j>>2]|0)+4>>2]=0;if((s|0)>-1){kf(b,0,s);c[(c[j>>2]|0)+4>>2]=0;break c}else{B=c[b>>2]|0;break}}else B=A;while(0);s=B;while(1){switch(s|0){case -1:case 13:case 10:{break c;break}default:{}}t=c[m>>2]|0;u=c[t>>2]|0;c[t>>2]=u+-1;if(!u){u=Oa[c[t+8>>2]&7](c[t+16>>2]|0,c[t+12>>2]|0,g)|0;C=c[g>>2]|0;if((u|0)==0|(C|0)==0)D=-1;else{c[t>>2]=C+-1;c[t+4>>2]=u+1;D=d[u>>0]|0}E=D}else{u=t+4|0;t=c[u>>2]|0;c[u>>2]=t+1;E=d[t>>0]|0}c[b>>2]=E;s=E}break}case 47:{s=c[m>>2]|0;t=c[s>>2]|0;c[s>>2]=t+-1;if(!t){t=Oa[c[s+8>>2]&7](c[s+16>>2]|0,c[s+12>>2]|0,g)|0;u=c[g>>2]|0;if((t|0)==0|(u|0)==0)F=-1;else{c[s>>2]=u+-1;c[s+4>>2]=t+1;F=d[t>>0]|0}G=F}else{t=s+4|0;s=c[t>>2]|0;c[t>>2]=s+1;G=d[s>>0]|0}c[b>>2]=G;switch(G|0){case 61:{p=56;break b;break}case 47:break;default:{k=47;p=587;break b}}s=c[m>>2]|0;t=c[s>>2]|0;c[s>>2]=t+-1;if(!t){t=Oa[c[s+8>>2]&7](c[s+16>>2]|0,c[s+12>>2]|0,g)|0;u=c[g>>2]|0;if((t|0)==0|(u|0)==0)H=-1;else{c[s>>2]=u+-1;c[s+4>>2]=t+1;H=d[t>>0]|0}I=H}else{t=s+4|0;s=c[t>>2]|0;c[t>>2]=s+1;I=d[s>>0]|0}s=I;while(1){c[b>>2]=s;switch(s|0){case -1:case 13:case 10:{break c;break}default:{}}t=c[m>>2]|0;u=c[t>>2]|0;c[t>>2]=u+-1;if(!u){u=Oa[c[t+8>>2]&7](c[t+16>>2]|0,c[t+12>>2]|0,g)|0;C=c[g>>2]|0;if((u|0)==0|(C|0)==0)J=-1;else{c[t>>2]=C+-1;c[t+4>>2]=u+1;J=d[u>>0]|0}K=J}else{u=t+4|0;t=c[u>>2]|0;c[u>>2]=t+1;K=d[t>>0]|0}s=K}break}default:{p=556;break b}}while(0)}switch(p|0){case 7:{c[i>>2]=r+-1;k=292;Ia=f;return k|0}case 14:{r=c[m>>2]|0;K=c[r>>2]|0;c[r>>2]=K+-1;if(!K){K=Oa[c[r+8>>2]&7](c[r+16>>2]|0,c[r+12>>2]|0,g)|0;J=c[g>>2]|0;if((K|0)==0|(J|0)==0)L=-1;else{c[r>>2]=J+-1;c[r+4>>2]=K+1;L=d[K>>0]|0}M=L}else{L=r+4|0;r=c[L>>2]|0;c[L>>2]=r+1;M=d[r>>0]|0}c[b>>2]=M;c[i>>2]=(c[i>>2]|0)+1;k=291;Ia=f;return k|0}case 26:{i=c[m>>2]|0;M=c[i>>2]|0;c[i>>2]=M+-1;if(!M){M=Oa[c[i+8>>2]&7](c[i+16>>2]|0,c[i+12>>2]|0,g)|0;r=c[g>>2]|0;if((M|0)==0|(r|0)==0)N=-1;else{c[i>>2]=r+-1;c[i+4>>2]=M+1;N=d[M>>0]|0}O=N}else{N=i+4|0;i=c[N>>2]|0;c[N>>2]=i+1;O=d[i>>0]|0}c[b>>2]=O;k=300;Ia=f;return k|0}case 56:{O=c[m>>2]|0;i=c[O>>2]|0;c[O>>2]=i+-1;if(!i){i=Oa[c[O+8>>2]&7](c[O+16>>2]|0,c[O+12>>2]|0,g)|0;N=c[g>>2]|0;if((i|0)==0|(N|0)==0)P=-1;else{c[O>>2]=N+-1;c[O+4>>2]=i+1;P=d[i>>0]|0}Q=P}else{P=O+4|0;O=c[P>>2]|0;c[P>>2]=O+1;Q=d[O>>0]|0}c[b>>2]=Q;k=302;Ia=f;return k|0}case 75:{Q=c[m>>2]|0;O=c[Q>>2]|0;c[Q>>2]=O+-1;if(!O){O=Oa[c[Q+8>>2]&7](c[Q+16>>2]|0,c[Q+12>>2]|0,g)|0;P=c[g>>2]|0;if((O|0)==0|(P|0)==0)R=-1;else{c[Q>>2]=P+-1;c[Q+4>>2]=O+1;R=d[O>>0]|0}S=R}else{R=Q+4|0;Q=c[R>>2]|0;c[R>>2]=Q+1;S=d[Q>>0]|0}c[b>>2]=S;if((S|0)!=61){k=o;Ia=f;return k|0}S=c[m>>2]|0;Q=c[S>>2]|0;c[S>>2]=Q+-1;if(!Q){Q=Oa[c[S+8>>2]&7](c[S+16>>2]|0,c[S+12>>2]|0,g)|0;R=c[g>>2]|0;if((Q|0)==0|(R|0)==0)T=-1;else{c[S>>2]=R+-1;c[S+4>>2]=Q+1;T=d[Q>>0]|0}U=T}else{T=S+4|0;S=c[T>>2]|0;c[T>>2]=S+1;U=d[S>>0]|0}c[b>>2]=U;switch(o|0){case 42:{k=301;Ia=f;return k|0}case 37:{k=303;Ia=f;return k|0}case 38:{k=306;Ia=f;return k|0}case 124:{k=307;Ia=f;return k|0}case 126:{k=284;Ia=f;return k|0}case 33:{k=285;Ia=f;return k|0}case 43:{k=299;Ia=f;return k|0}default:{k=305;Ia=f;return k|0}}break}case 94:{U=jf(b)|0;if((U|0)>-1){kf(b,e,U);k=290;Ia=f;return k|0}if((U|0)==-1){k=91;Ia=f;return k|0}else Ae(b,48810,290);break}case 98:{U=c[m>>2]|0;S=c[U>>2]|0;c[U>>2]=S+-1;if(!S){S=Oa[c[U+8>>2]&7](c[U+16>>2]|0,c[U+12>>2]|0,g)|0;T=c[g>>2]|0;if((S|0)==0|(T|0)==0)V=-1;else{c[U>>2]=T+-1;c[U+4>>2]=S+1;V=d[S>>0]|0}W=V}else{V=U+4|0;U=c[V>>2]|0;c[V>>2]=U+1;W=d[U>>0]|0}c[b>>2]=W;if((W|0)!=61){k=61;Ia=f;return k|0}W=c[m>>2]|0;U=c[W>>2]|0;c[W>>2]=U+-1;if(!U){U=Oa[c[W+8>>2]&7](c[W+16>>2]|0,c[W+12>>2]|0,g)|0;V=c[g>>2]|0;if((U|0)==0|(V|0)==0)X=-1;else{c[W>>2]=V+-1;c[W+4>>2]=U+1;X=d[U>>0]|0}Y=X}else{X=W+4|0;W=c[X>>2]|0;c[X>>2]=W+1;Y=d[W>>0]|0}c[b>>2]=Y;k=281;Ia=f;return k|0}case 110:{Y=c[m>>2]|0;W=c[Y>>2]|0;c[Y>>2]=W+-1;if(!W){W=Oa[c[Y+8>>2]&7](c[Y+16>>2]|0,c[Y+12>>2]|0,g)|0;X=c[g>>2]|0;if((W|0)==0|(X|0)==0)Z=-1;else{c[Y>>2]=X+-1;c[Y+4>>2]=W+1;Z=d[W>>0]|0}_=Z}else{Z=Y+4|0;Y=c[Z>>2]|0;c[Z>>2]=Y+1;_=d[Y>>0]|0}c[b>>2]=_;switch(_|0){case 61:{_=c[m>>2]|0;Y=c[_>>2]|0;c[_>>2]=Y+-1;if(!Y){Y=Oa[c[_+8>>2]&7](c[_+16>>2]|0,c[_+12>>2]|0,g)|0;Z=c[g>>2]|0;if((Y|0)==0|(Z|0)==0)$=-1;else{c[_>>2]=Z+-1;c[_+4>>2]=Y+1;$=d[Y>>0]|0}aa=$}else{$=_+4|0;_=c[$>>2]|0;c[$>>2]=_+1;aa=d[_>>0]|0}c[b>>2]=aa;k=283;Ia=f;return k|0}case 60:{aa=c[m>>2]|0;_=c[aa>>2]|0;c[aa>>2]=_+-1;if(!_){_=Oa[c[aa+8>>2]&7](c[aa+16>>2]|0,c[aa+12>>2]|0,g)|0;$=c[g>>2]|0;if((_|0)==0|($|0)==0)ba=-1;else{c[aa>>2]=$+-1;c[aa+4>>2]=_+1;ba=d[_>>0]|0}ca=ba}else{ba=aa+4|0;aa=c[ba>>2]|0;c[ba>>2]=aa+1;ca=d[aa>>0]|0}c[b>>2]=ca;switch(ca|0){case 61:{ca=c[m>>2]|0;aa=c[ca>>2]|0;c[ca>>2]=aa+-1;if(!aa){aa=Oa[c[ca+8>>2]&7](c[ca+16>>2]|0,c[ca+12>>2]|0,g)|0;ba=c[g>>2]|0;if((aa|0)==0|(ba|0)==0)da=-1;else{c[ca>>2]=ba+-1;c[ca+4>>2]=aa+1;da=d[aa>>0]|0}ea=da}else{da=ca+4|0;ca=c[da>>2]|0;c[da>>2]=ca+1;ea=d[ca>>0]|0}c[b>>2]=ea;k=309;Ia=f;return k|0}case 62:{ea=c[m>>2]|0;ca=c[ea>>2]|0;c[ea>>2]=ca+-1;if(!ca){ca=Oa[c[ea+8>>2]&7](c[ea+16>>2]|0,c[ea+12>>2]|0,g)|0;da=c[g>>2]|0;if((ca|0)==0|(da|0)==0)fa=-1;else{c[ea>>2]=da+-1;c[ea+4>>2]=ca+1;fa=d[ca>>0]|0}ga=fa}else{fa=ea+4|0;ea=c[fa>>2]|0;c[fa>>2]=ea+1;ga=d[ea>>0]|0}c[b>>2]=ga;if((ga|0)!=61){k=297;Ia=f;return k|0}ga=c[m>>2]|0;ea=c[ga>>2]|0;c[ga>>2]=ea+-1;if(!ea){ea=Oa[c[ga+8>>2]&7](c[ga+16>>2]|0,c[ga+12>>2]|0,g)|0;fa=c[g>>2]|0;if((ea|0)==0|(fa|0)==0)ha=-1;else{c[ga>>2]=fa+-1;c[ga+4>>2]=ea+1;ha=d[ea>>0]|0}ia=ha}else{ha=ga+4|0;ga=c[ha>>2]|0;c[ha>>2]=ga+1;ia=d[ga>>0]|0}c[b>>2]=ia;k=312;Ia=f;return k|0}default:{k=294;Ia=f;return k|0}}break}default:{k=60;Ia=f;return k|0}}break}case 146:{ia=c[m>>2]|0;ga=c[ia>>2]|0;c[ia>>2]=ga+-1;if(!ga){ga=Oa[c[ia+8>>2]&7](c[ia+16>>2]|0,c[ia+12>>2]|0,g)|0;ha=c[g>>2]|0;if((ga|0)==0|(ha|0)==0)ja=-1;else{c[ia>>2]=ha+-1;c[ia+4>>2]=ga+1;ja=d[ga>>0]|0}ka=ja}else{ja=ia+4|0;ia=c[ja>>2]|0;c[ja>>2]=ia+1;ka=d[ia>>0]|0}c[b>>2]=ka;switch(ka|0){case 61:{ka=c[m>>2]|0;ia=c[ka>>2]|0;c[ka>>2]=ia+-1;if(!ia){ia=Oa[c[ka+8>>2]&7](c[ka+16>>2]|0,c[ka+12>>2]|0,g)|0;ja=c[g>>2]|0;if((ia|0)==0|(ja|0)==0)la=-1;else{c[ka>>2]=ja+-1;c[ka+4>>2]=ia+1;la=d[ia>>0]|0}ma=la}else{la=ka+4|0;ka=c[la>>2]|0;c[la>>2]=ka+1;ma=d[ka>>0]|0}c[b>>2]=ma;k=304;Ia=f;return k|0}case 94:{ma=c[m>>2]|0;ka=c[ma>>2]|0;c[ma>>2]=ka+-1;if(!ka){ka=Oa[c[ma+8>>2]&7](c[ma+16>>2]|0,c[ma+12>>2]|0,g)|0;la=c[g>>2]|0;if((ka|0)==0|(la|0)==0)na=-1;else{c[ma>>2]=la+-1;c[ma+4>>2]=ka+1;na=d[ka>>0]|0}oa=na}else{na=ma+4|0;ma=c[na>>2]|0;c[na>>2]=ma+1;oa=d[ma>>0]|0}c[b>>2]=oa;if((oa|0)!=61){k=293;Ia=f;return k|0}oa=c[m>>2]|0;ma=c[oa>>2]|0;c[oa>>2]=ma+-1;if(!ma){ma=Oa[c[oa+8>>2]&7](c[oa+16>>2]|0,c[oa+12>>2]|0,g)|0;na=c[g>>2]|0;if((ma|0)==0|(na|0)==0)pa=-1;else{c[oa>>2]=na+-1;c[oa+4>>2]=ma+1;pa=d[ma>>0]|0}qa=pa}else{pa=oa+4|0;oa=c[pa>>2]|0;c[pa>>2]=oa+1;qa=d[oa>>0]|0}c[b>>2]=qa;k=308;Ia=f;return k|0}default:{k=94;Ia=f;return k|0}}break}case 170:{qa=c[m>>2]|0;oa=c[qa>>2]|0;c[qa>>2]=oa+-1;if(!oa){oa=Oa[c[qa+8>>2]&7](c[qa+16>>2]|0,c[qa+12>>2]|0,g)|0;pa=c[g>>2]|0;if((oa|0)==0|(pa|0)==0)ra=-1;else{c[qa>>2]=pa+-1;c[qa+4>>2]=oa+1;ra=d[oa>>0]|0}sa=ra}else{ra=qa+4|0;qa=c[ra>>2]|0;c[ra>>2]=qa+1;sa=d[qa>>0]|0}c[b>>2]=sa;switch(sa|0){case 61:{sa=c[m>>2]|0;qa=c[sa>>2]|0;c[sa>>2]=qa+-1;if(!qa){qa=Oa[c[sa+8>>2]&7](c[sa+16>>2]|0,c[sa+12>>2]|0,g)|0;ra=c[g>>2]|0;if((qa|0)==0|(ra|0)==0)ta=-1;else{c[sa>>2]=ra+-1;c[sa+4>>2]=qa+1;ta=d[qa>>0]|0}ua=ta}else{ta=sa+4|0;sa=c[ta>>2]|0;c[ta>>2]=sa+1;ua=d[sa>>0]|0}c[b>>2]=ua;k=282;Ia=f;return k|0}case 62:{ua=c[m>>2]|0;sa=c[ua>>2]|0;c[ua>>2]=sa+-1;if(!sa){sa=Oa[c[ua+8>>2]&7](c[ua+16>>2]|0,c[ua+12>>2]|0,g)|0;ta=c[g>>2]|0;if((sa|0)==0|(ta|0)==0)va=-1;else{c[ua>>2]=ta+-1;c[ua+4>>2]=sa+1;va=d[sa>>0]|0}wa=va}else{va=ua+4|0;ua=c[va>>2]|0;c[va>>2]=ua+1;wa=d[ua>>0]|0}c[b>>2]=wa;switch(wa|0){case 61:{wa=c[m>>2]|0;ua=c[wa>>2]|0;c[wa>>2]=ua+-1;if(!ua){ua=Oa[c[wa+8>>2]&7](c[wa+16>>2]|0,c[wa+12>>2]|0,g)|0;va=c[g>>2]|0;if((ua|0)==0|(va|0)==0)xa=-1;else{c[wa>>2]=va+-1;c[wa+4>>2]=ua+1;xa=d[ua>>0]|0}ya=xa}else{xa=wa+4|0;wa=c[xa>>2]|0;c[xa>>2]=wa+1;ya=d[wa>>0]|0}c[b>>2]=ya;k=310;Ia=f;return k|0}case 60:{ya=c[m>>2]|0;wa=c[ya>>2]|0;c[ya>>2]=wa+-1;if(!wa){wa=Oa[c[ya+8>>2]&7](c[ya+16>>2]|0,c[ya+12>>2]|0,g)|0;xa=c[g>>2]|0;if((wa|0)==0|(xa|0)==0)za=-1;else{c[ya>>2]=xa+-1;c[ya+4>>2]=wa+1;za=d[wa>>0]|0}Aa=za}else{za=ya+4|0;ya=c[za>>2]|0;c[za>>2]=ya+1;Aa=d[ya>>0]|0}c[b>>2]=Aa;if((Aa|0)!=61){k=298;Ia=f;return k|0}Aa=c[m>>2]|0;ya=c[Aa>>2]|0;c[Aa>>2]=ya+-1;if(!ya){ya=Oa[c[Aa+8>>2]&7](c[Aa+16>>2]|0,c[Aa+12>>2]|0,g)|0;za=c[g>>2]|0;if((ya|0)==0|(za|0)==0)Ba=-1;else{c[Aa>>2]=za+-1;c[Aa+4>>2]=ya+1;Ba=d[ya>>0]|0}Ca=Ba}else{Ba=Aa+4|0;Aa=c[Ba>>2]|0;c[Ba>>2]=Aa+1;Ca=d[Aa>>0]|0}c[b>>2]=Ca;k=313;Ia=f;return k|0}case 62:{Ca=c[m>>2]|0;Aa=c[Ca>>2]|0;c[Ca>>2]=Aa+-1;if(!Aa){Aa=Oa[c[Ca+8>>2]&7](c[Ca+16>>2]|0,c[Ca+12>>2]|0,g)|0;Ba=c[g>>2]|0;if((Aa|0)==0|(Ba|0)==0)Da=-1;else{c[Ca>>2]=Ba+-1;c[Ca+4>>2]=Aa+1;Da=d[Aa>>0]|0}Ea=Da}else{Da=Ca+4|0;Ca=c[Da>>2]|0;c[Da>>2]=Ca+1;Ea=d[Ca>>0]|0}c[b>>2]=Ea;if((Ea|0)!=61){k=296;Ia=f;return k|0}Ea=c[m>>2]|0;Ca=c[Ea>>2]|0;c[Ea>>2]=Ca+-1;if(!Ca){Ca=Oa[c[Ea+8>>2]&7](c[Ea+16>>2]|0,c[Ea+12>>2]|0,g)|0;Da=c[g>>2]|0;if((Ca|0)==0|(Da|0)==0)Fa=-1;else{c[Ea>>2]=Da+-1;c[Ea+4>>2]=Ca+1;Fa=d[Ca>>0]|0}Ga=Fa}else{Fa=Ea+4|0;Ea=c[Fa>>2]|0;c[Fa>>2]=Ea+1;Ga=d[Ea>>0]|0}c[b>>2]=Ga;k=311;Ia=f;return k|0}default:{k=295;Ia=f;return k|0}}break}default:{k=62;Ia=f;return k|0}}break}case 218:{Ga=c[m>>2]|0;Ea=c[Ga>>2]|0;c[Ga>>2]=Ea+-1;if(!Ea){Ea=Oa[c[Ga+8>>2]&7](c[Ga+16>>2]|0,c[Ga+12>>2]|0,g)|0;Fa=c[g>>2]|0;if((Ea|0)==0|(Fa|0)==0)Ha=-1;else{c[Ga>>2]=Fa+-1;c[Ga+4>>2]=Ea+1;Ha=d[Ea>>0]|0}Ja=Ha}else{Ha=Ga+4|0;Ga=c[Ha>>2]|0;c[Ha>>2]=Ga+1;Ja=d[Ga>>0]|0}c[b>>2]=Ja;if((Ja|0)!=58){k=58;Ia=f;return k|0}Ja=c[m>>2]|0;Ga=c[Ja>>2]|0;c[Ja>>2]=Ga+-1;if(!Ga){Ga=Oa[c[Ja+8>>2]&7](c[Ja+16>>2]|0,c[Ja+12>>2]|0,g)|0;Ha=c[g>>2]|0;if((Ga|0)==0|(Ha|0)==0)Ka=-1;else{c[Ja>>2]=Ha+-1;c[Ja+4>>2]=Ga+1;Ka=d[Ga>>0]|0}La=Ka}else{Ka=Ja+4|0;Ja=c[Ka>>2]|0;c[Ka>>2]=Ja+1;La=d[Ja>>0]|0}c[b>>2]=La;k=286;Ia=f;return k|0}case 230:{La=c[j>>2]|0;Ja=La+4|0;Ka=c[Ja>>2]|0;Ga=Ka+1|0;Ha=La+8|0;Ea=c[Ha>>2]|0;if(Ga>>>0>Ea>>>0){if(Ea>>>0>2147483645)Ae(b,48200,0);Fa=Ea<<1;Ca=c[b+44>>2]|0;if((Fa|0)==-2)Lc(Ca);Da=c[La>>2]|0;Aa=c[Ca+12>>2]|0;Ba=(Da|0)==0;ya=Aa+4|0;za=Pa[c[Aa>>2]&3](c[ya>>2]|0,Da,Ea,Fa)|0;if((Fa|0)!=0&(za|0)==0){if(!(a[Aa+51>>0]|0))yc(Ca,4);Kc(Ca,1);wa=Pa[c[Aa>>2]&3](c[ya>>2]|0,Da,Ea,Fa)|0;if(!wa)yc(Ca,4);else Ma=wa}else Ma=za;za=Aa+12|0;c[za>>2]=(Ba?0:0-Ea|0)+Fa+(c[za>>2]|0);c[La>>2]=Ma;c[Ha>>2]=Fa;Fa=c[Ja>>2]|0;Na=Ma;Qa=Fa;Ra=Fa+1|0}else{Na=c[La>>2]|0;Qa=Ka;Ra=Ga}Ga=o&255;c[Ja>>2]=Ra;a[Na+Qa>>0]=Ga;Qa=c[m>>2]|0;Na=c[Qa>>2]|0;c[Qa>>2]=Na+-1;if(!Na){Na=Oa[c[Qa+8>>2]&7](c[Qa+16>>2]|0,c[Qa+12>>2]|0,g)|0;Ra=c[g>>2]|0;if((Na|0)==0|(Ra|0)==0)Sa=-1;else{c[Qa>>2]=Ra+-1;c[Qa+4>>2]=Na+1;Sa=d[Na>>0]|0}Ta=Sa}else{Sa=Qa+4|0;Qa=c[Sa>>2]|0;c[Sa>>2]=Qa+1;Ta=d[Qa>>0]|0}c[b>>2]=Ta;d:do if((Ta|0)!=(o|0)){Qa=b+44|0;Sa=h+4|0;Na=h+8|0;Ra=Ta;e:while(1){f:do switch(Ra|0){case -1:{p=249;break e;break}case 13:case 10:{p=250;break e;break}case 92:{Ja=c[m>>2]|0;Ka=c[Ja>>2]|0;c[Ja>>2]=Ka+-1;if(!Ka){Ka=Oa[c[Ja+8>>2]&7](c[Ja+16>>2]|0,c[Ja+12>>2]|0,g)|0;La=c[g>>2]|0;if((Ka|0)==0|(La|0)==0)Ua=-1;else{c[Ja>>2]=La+-1;c[Ja+4>>2]=Ka+1;Ua=d[Ka>>0]|0}Va=Ua}else{Ka=Ja+4|0;Ja=c[Ka>>2]|0;c[Ka>>2]=Ja+1;Va=d[Ja>>0]|0}c[b>>2]=Va;do switch(Va|0){case -1:{Wa=Va;break f;break}case 97:{Xa=7;p=324;break}case 98:{Xa=8;p=324;break}case 102:{Xa=12;p=324;break}case 110:{Xa=10;p=324;break}case 114:{Xa=13;p=324;break}case 116:{Xa=9;p=324;break}case 118:{Xa=11;p=324;break}case 42:{Xa=1;p=324;break}case 35:{Xa=2;p=324;break}case 45:{Xa=3;p=324;break}case 124:{Xa=4;p=324;break}case 43:{Xa=5;p=324;break}case 94:{Xa=6;p=324;break}case 120:{c[h>>2]=120;Ja=c[m>>2]|0;Ka=c[Ja>>2]|0;c[Ja>>2]=Ka+-1;if(!Ka){Ka=Oa[c[Ja+8>>2]&7](c[Ja+16>>2]|0,c[Ja+12>>2]|0,g)|0;La=c[g>>2]|0;if((Ka|0)==0|(La|0)==0)Ya=-1;else{c[Ja>>2]=La+-1;c[Ja+4>>2]=Ka+1;Ya=d[Ka>>0]|0}Za=Ya}else{Ka=Ja+4|0;Ja=c[Ka>>2]|0;c[Ka>>2]=Ja+1;Za=d[Ja>>0]|0}c[b>>2]=Za;c[Sa>>2]=Za;if(!(a[64+(Za+1)>>0]&16)){_a=2;p=275;break e}Ja=Za+-48|0;Ka=Ja>>>0<10?Ja:(Za|32)+268435369|0;Ja=c[m>>2]|0;La=c[Ja>>2]|0;c[Ja>>2]=La+-1;if(!La){La=Oa[c[Ja+8>>2]&7](c[Ja+16>>2]|0,c[Ja+12>>2]|0,g)|0;Fa=c[g>>2]|0;if((La|0)==0|(Fa|0)==0)$a=-1;else{c[Ja>>2]=Fa+-1;c[Ja+4>>2]=La+1;$a=d[La>>0]|0}ab=$a}else{La=Ja+4|0;Ja=c[La>>2]|0;c[La>>2]=Ja+1;ab=d[Ja>>0]|0}c[b>>2]=ab;c[Na>>2]=ab;if(!(a[64+(ab+1)>>0]&16)){_a=3;p=275;break e}Ja=ab+-48|0;Xa=(Ja>>>0<10?Ja:(ab|32)+-87|0)+(Ka<<4)|0;p=324;break}case 13:case 10:{hf(b);bb=10;break}case 39:case 34:case 92:{Xa=Va;p=324;break}case 122:{Ka=c[m>>2]|0;Ja=c[Ka>>2]|0;c[Ka>>2]=Ja+-1;if(!Ja){Ja=Oa[c[Ka+8>>2]&7](c[Ka+16>>2]|0,c[Ka+12>>2]|0,g)|0;La=c[g>>2]|0;if((Ja|0)==0|(La|0)==0)cb=-1;else{c[Ka>>2]=La+-1;c[Ka+4>>2]=Ja+1;cb=d[Ja>>0]|0}db=cb}else{Ja=Ka+4|0;Ka=c[Ja>>2]|0;c[Ja>>2]=Ka+1;db=d[Ka>>0]|0}c[b>>2]=db;if(!(a[64+(db+1)>>0]&8)){Wa=db;break f}Ka=db;while(1){switch(Ka|0){case 13:case 10:{hf(b);eb=c[b>>2]|0;break}default:{Ja=c[m>>2]|0;La=c[Ja>>2]|0;c[Ja>>2]=La+-1;if(!La){La=Oa[c[Ja+8>>2]&7](c[Ja+16>>2]|0,c[Ja+12>>2]|0,g)|0;Fa=c[g>>2]|0;if((La|0)==0|(Fa|0)==0)fb=-1;else{c[Ja>>2]=Fa+-1;c[Ja+4>>2]=La+1;fb=d[La>>0]|0}gb=fb}else{La=Ja+4|0;Ja=c[La>>2]|0;c[La>>2]=Ja+1;gb=d[Ja>>0]|0}c[b>>2]=gb;eb=gb}}if(!(a[64+(eb+1)>>0]&8)){Wa=eb;break f}else Ka=eb}break}default:{Ka=Va+-48|0;if(Ka>>>0>=10){p=302;break e}c[h>>2]=Va;Ja=c[m>>2]|0;La=c[Ja>>2]|0;c[Ja>>2]=La+-1;if(!La){La=Oa[c[Ja+8>>2]&7](c[Ja+16>>2]|0,c[Ja+12>>2]|0,g)|0;Fa=c[g>>2]|0;if((La|0)==0|(Fa|0)==0)hb=-1;else{c[Ja>>2]=Fa+-1;c[Ja+4>>2]=La+1;hb=d[La>>0]|0}ib=hb}else{La=Ja+4|0;Ja=c[La>>2]|0;c[La>>2]=Ja+1;ib=d[Ja>>0]|0}c[b>>2]=ib;Ja=ib+-48|0;if(Ja>>>0<10){c[Sa>>2]=ib;La=Ja+(Ka*10|0)|0;Ja=c[m>>2]|0;Fa=c[Ja>>2]|0;c[Ja>>2]=Fa+-1;if(!Fa){Fa=Oa[c[Ja+8>>2]&7](c[Ja+16>>2]|0,c[Ja+12>>2]|0,g)|0;Ma=c[g>>2]|0;if((Fa|0)==0|(Ma|0)==0)jb=-1;else{c[Ja>>2]=Ma+-1;c[Ja+4>>2]=Fa+1;jb=d[Fa>>0]|0}kb=jb}else{Fa=Ja+4|0;Ja=c[Fa>>2]|0;c[Fa>>2]=Ja+1;kb=d[Ja>>0]|0}c[b>>2]=kb;Ja=kb+-48|0;if(Ja>>>0<10){c[Na>>2]=kb;Fa=Ja+(La*10|0)|0;Ja=c[m>>2]|0;Ma=c[Ja>>2]|0;c[Ja>>2]=Ma+-1;if(!Ma){Ma=Oa[c[Ja+8>>2]&7](c[Ja+16>>2]|0,c[Ja+12>>2]|0,g)|0;Ha=c[g>>2]|0;if((Ma|0)==0|(Ha|0)==0)lb=-1;else{c[Ja>>2]=Ha+-1;c[Ja+4>>2]=Ma+1;lb=d[Ma>>0]|0}mb=lb}else{Ma=Ja+4|0;Ja=c[Ma>>2]|0;c[Ma>>2]=Ja+1;mb=d[Ja>>0]|0}c[b>>2]=mb;nb=3;ob=Fa}else{nb=2;ob=La}if((ob|0)>255){p=310;break e}else pb=ob}else pb=Ka;bb=pb}}while(0);if((p|0)==324){p=0;Ka=c[m>>2]|0;La=c[Ka>>2]|0;c[Ka>>2]=La+-1;if(!La){La=Oa[c[Ka+8>>2]&7](c[Ka+16>>2]|0,c[Ka+12>>2]|0,g)|0;Fa=c[g>>2]|0;if((La|0)==0|(Fa|0)==0)qb=-1;else{c[Ka>>2]=Fa+-1;c[Ka+4>>2]=La+1;qb=d[La>>0]|0}rb=qb}else{La=Ka+4|0;Ka=c[La>>2]|0;c[La>>2]=Ka+1;rb=d[Ka>>0]|0}c[b>>2]=rb;bb=Xa}Ka=c[j>>2]|0;La=Ka+4|0;Fa=c[La>>2]|0;Ja=Fa+1|0;Ma=Ka+8|0;Ha=c[Ma>>2]|0;if(Ja>>>0>Ha>>>0){if(Ha>>>0>2147483645){p=333;break e}za=Ha<<1;sb=c[Qa>>2]|0;if((za|0)==-2){p=335;break e}Ea=c[Ka>>2]|0;Ba=c[sb+12>>2]|0;Aa=(Ea|0)==0;wa=Ba+4|0;Ca=Pa[c[Ba>>2]&3](c[wa>>2]|0,Ea,Ha,za)|0;if((za|0)!=0&(Ca|0)==0){if(!(a[Ba+51>>0]|0)){p=339;break e}Kc(sb,1);Da=Pa[c[Ba>>2]&3](c[wa>>2]|0,Ea,Ha,za)|0;if(!Da){p=339;break e}else tb=Da}else tb=Ca;Ca=Ba+12|0;c[Ca>>2]=(Aa?0:0-Ha|0)+za+(c[Ca>>2]|0);c[Ka>>2]=tb;c[Ma>>2]=za;za=c[La>>2]|0;ub=tb;vb=za;wb=za+1|0}else{ub=c[Ka>>2]|0;vb=Fa;wb=Ja}c[La>>2]=wb;a[ub+vb>>0]=bb;Wa=c[b>>2]|0;break}default:{La=c[j>>2]|0;Ja=La+4|0;Fa=c[Ja>>2]|0;Ka=Fa+1|0;za=La+8|0;Ma=c[za>>2]|0;if(Ka>>>0>Ma>>>0){if(Ma>>>0>2147483645){p=345;break e}Ca=Ma<<1;xb=c[Qa>>2]|0;if((Ca|0)==-2){p=347;break e}Ha=c[La>>2]|0;Aa=c[xb+12>>2]|0;Ba=(Ha|0)==0;Da=Aa+4|0;Ea=Pa[c[Aa>>2]&3](c[Da>>2]|0,Ha,Ma,Ca)|0;if((Ca|0)!=0&(Ea|0)==0){if(!(a[Aa+51>>0]|0)){p=351;break e}Kc(xb,1);wa=Pa[c[Aa>>2]&3](c[Da>>2]|0,Ha,Ma,Ca)|0;if(!wa){p=351;break e}else yb=wa}else yb=Ea;Ea=Aa+12|0;c[Ea>>2]=(Ba?0:0-Ma|0)+Ca+(c[Ea>>2]|0);c[La>>2]=yb;c[za>>2]=Ca;Ca=c[Ja>>2]|0;zb=yb;Ab=Ca;Bb=Ca+1|0}else{zb=c[La>>2]|0;Ab=Fa;Bb=Ka}c[Ja>>2]=Bb;a[zb+Ab>>0]=Ra;Ja=c[m>>2]|0;Ka=c[Ja>>2]|0;c[Ja>>2]=Ka+-1;if(!Ka){Ka=Oa[c[Ja+8>>2]&7](c[Ja+16>>2]|0,c[Ja+12>>2]|0,g)|0;Fa=c[g>>2]|0;if((Ka|0)==0|(Fa|0)==0)Cb=-1;else{c[Ja>>2]=Fa+-1;c[Ja+4>>2]=Ka+1;Cb=d[Ka>>0]|0}Db=Cb}else{Ka=Ja+4|0;Ja=c[Ka>>2]|0;c[Ka>>2]=Ja+1;Db=d[Ja>>0]|0}c[b>>2]=Db;Wa=Db}}while(0);if((Wa|0)==(o|0))break d;else Ra=Wa}switch(p|0){case 249:{Ae(b,48840,287);break}case 250:{Ae(b,48840,290);break}case 275:{lf(b,h,_a,48858);break}case 302:{lf(b,b,1,48885);break}case 310:{lf(b,h,nb,48909);break}case 333:{Ae(b,48200,0);break}case 335:{Lc(sb);break}case 339:{yc(sb,4);break}case 345:{Ae(b,48200,0);break}case 347:{Lc(xb);break}case 351:{yc(xb,4);break}}}while(0);xb=c[j>>2]|0;sb=xb+4|0;nb=c[sb>>2]|0;h=nb+1|0;_a=xb+8|0;Wa=c[_a>>2]|0;if(h>>>0>Wa>>>0){if(Wa>>>0>2147483645)Ae(b,48200,0);Db=Wa<<1;Cb=c[b+44>>2]|0;if((Db|0)==-2)Lc(Cb);Ab=c[xb>>2]|0;zb=c[Cb+12>>2]|0;Bb=(Ab|0)==0;yb=zb+4|0;bb=Pa[c[zb>>2]&3](c[yb>>2]|0,Ab,Wa,Db)|0;if((Db|0)!=0&(bb|0)==0){if(!(a[zb+51>>0]|0))yc(Cb,4);Kc(Cb,1);vb=Pa[c[zb>>2]&3](c[yb>>2]|0,Ab,Wa,Db)|0;if(!vb)yc(Cb,4);else Eb=vb}else Eb=bb;bb=zb+12|0;c[bb>>2]=(Bb?0:0-Wa|0)+Db+(c[bb>>2]|0);c[xb>>2]=Eb;c[_a>>2]=Db;Db=c[sb>>2]|0;Fb=Eb;Gb=Db;Hb=Db+1|0}else{Fb=c[xb>>2]|0;Gb=nb;Hb=h}c[sb>>2]=Hb;a[Fb+Gb>>0]=Ga;Ga=c[m>>2]|0;Gb=c[Ga>>2]|0;c[Ga>>2]=Gb+-1;if(!Gb){Gb=Oa[c[Ga+8>>2]&7](c[Ga+16>>2]|0,c[Ga+12>>2]|0,g)|0;Fb=c[g>>2]|0;if((Gb|0)==0|(Fb|0)==0)Ib=-1;else{c[Ga>>2]=Fb+-1;c[Ga+4>>2]=Gb+1;Ib=d[Gb>>0]|0}Jb=Ib}else{Ib=Ga+4|0;Ga=c[Ib>>2]|0;c[Ib>>2]=Ga+1;Jb=d[Ga>>0]|0}c[b>>2]=Jb;Jb=c[j>>2]|0;c[e>>2]=qe(b,(c[Jb>>2]|0)+1|0,(c[Jb+4>>2]|0)+-2|0)|0;k=290;Ia=f;return k|0}case 377:{Jb=c[j>>2]|0;Ga=Jb+4|0;Ib=c[Ga>>2]|0;Gb=Ib+1|0;Fb=Jb+8|0;Hb=c[Fb>>2]|0;if(Gb>>>0>Hb>>>0){if(Hb>>>0>2147483645)Ae(b,48200,0);sb=Hb<<1;h=c[b+44>>2]|0;if((sb|0)==-2)Lc(h);nb=c[Jb>>2]|0;xb=c[h+12>>2]|0;Db=(nb|0)==0;Eb=xb+4|0;_a=Pa[c[xb>>2]&3](c[Eb>>2]|0,nb,Hb,sb)|0;if((sb|0)!=0&(_a|0)==0){if(!(a[xb+51>>0]|0))yc(h,4);Kc(h,1);bb=Pa[c[xb>>2]&3](c[Eb>>2]|0,nb,Hb,sb)|0;if(!bb)yc(h,4);else Kb=bb}else Kb=_a;_a=xb+12|0;c[_a>>2]=(Db?0:0-Hb|0)+sb+(c[_a>>2]|0);c[Jb>>2]=Kb;c[Fb>>2]=sb;sb=c[Ga>>2]|0;Lb=Kb;Mb=sb;Nb=sb+1|0}else{Lb=c[Jb>>2]|0;Mb=Ib;Nb=Gb}c[Ga>>2]=Nb;a[Lb+Mb>>0]=46;Mb=c[m>>2]|0;Lb=c[Mb>>2]|0;c[Mb>>2]=Lb+-1;if(!Lb){Lb=Oa[c[Mb+8>>2]&7](c[Mb+16>>2]|0,c[Mb+12>>2]|0,g)|0;Nb=c[g>>2]|0;if((Lb|0)==0|(Nb|0)==0)Ob=-1;else{c[Mb>>2]=Nb+-1;c[Mb+4>>2]=Lb+1;Ob=d[Lb>>0]|0}Pb=Ob}else{Ob=Mb+4|0;Mb=c[Ob>>2]|0;c[Ob>>2]=Mb+1;Pb=d[Mb>>0]|0}c[b>>2]=Pb;if(!Pb){k=46;Ia=f;return k|0}if(!(Mt(104886,Pb,2)|0)){if((Pb+-48|0)>>>0<10){q=Pb;break}else k=46;Ia=f;return k|0}Mb=c[j>>2]|0;Ob=Mb+4|0;Lb=c[Ob>>2]|0;Nb=Lb+1|0;Ga=Mb+8|0;Gb=c[Ga>>2]|0;if(Nb>>>0>Gb>>>0){if(Gb>>>0>2147483645)Ae(b,48200,0);Ib=Gb<<1;Jb=c[b+44>>2]|0;if((Ib|0)==-2)Lc(Jb);sb=c[Mb>>2]|0;Kb=c[Jb+12>>2]|0;Fb=(sb|0)==0;_a=Kb+4|0;Hb=Pa[c[Kb>>2]&3](c[_a>>2]|0,sb,Gb,Ib)|0;if((Ib|0)!=0&(Hb|0)==0){if(!(a[Kb+51>>0]|0))yc(Jb,4);Kc(Jb,1);Db=Pa[c[Kb>>2]&3](c[_a>>2]|0,sb,Gb,Ib)|0;if(!Db)yc(Jb,4);else Qb=Db}else Qb=Hb;Hb=Kb+12|0;c[Hb>>2]=(Fb?0:0-Gb|0)+Ib+(c[Hb>>2]|0);c[Mb>>2]=Qb;c[Ga>>2]=Ib;Ib=c[Ob>>2]|0;Rb=Qb;Sb=Ib;Tb=Ib+1|0}else{Rb=c[Mb>>2]|0;Sb=Lb;Tb=Nb}c[Ob>>2]=Tb;a[Rb+Sb>>0]=Pb;Pb=c[m>>2]|0;Sb=c[Pb>>2]|0;c[Pb>>2]=Sb+-1;if(!Sb){Sb=Oa[c[Pb+8>>2]&7](c[Pb+16>>2]|0,c[Pb+12>>2]|0,g)|0;Rb=c[g>>2]|0;if((Sb|0)==0|(Rb|0)==0)Ub=-1;else{c[Pb>>2]=Rb+-1;c[Pb+4>>2]=Sb+1;Ub=d[Sb>>0]|0}Vb=Ub}else{Ub=Pb+4|0;Pb=c[Ub>>2]|0;c[Ub>>2]=Pb+1;Vb=d[Pb>>0]|0}c[b>>2]=Vb;if(!Vb){k=279;Ia=f;return k|0}if(Mt(104886,Vb,2)|0){Pb=c[j>>2]|0;Ub=Pb+4|0;Sb=c[Ub>>2]|0;Rb=Sb+1|0;Tb=Pb+8|0;Ob=c[Tb>>2]|0;if(Rb>>>0>Ob>>>0){if(Ob>>>0>2147483645)Ae(b,48200,0);Nb=Ob<<1;Lb=c[b+44>>2]|0;if((Nb|0)==-2)Lc(Lb);Mb=c[Pb>>2]|0;Ib=c[Lb+12>>2]|0;Qb=(Mb|0)==0;Ga=Ib+4|0;Hb=Pa[c[Ib>>2]&3](c[Ga>>2]|0,Mb,Ob,Nb)|0;if((Nb|0)!=0&(Hb|0)==0){if(!(a[Ib+51>>0]|0))yc(Lb,4);Kc(Lb,1);Gb=Pa[c[Ib>>2]&3](c[Ga>>2]|0,Mb,Ob,Nb)|0;if(!Gb)yc(Lb,4);else Wb=Gb}else Wb=Hb;Hb=Ib+12|0;c[Hb>>2]=(Qb?0:0-Ob|0)+Nb+(c[Hb>>2]|0);c[Pb>>2]=Wb;c[Tb>>2]=Nb;Nb=c[Ub>>2]|0;Xb=Wb;Yb=Nb;Zb=Nb+1|0}else{Xb=c[Pb>>2]|0;Yb=Sb;Zb=Rb}c[Ub>>2]=Zb;a[Xb+Yb>>0]=Vb;Yb=c[m>>2]|0;Xb=c[Yb>>2]|0;c[Yb>>2]=Xb+-1;if(!Xb){Xb=Oa[c[Yb+8>>2]&7](c[Yb+16>>2]|0,c[Yb+12>>2]|0,g)|0;Zb=c[g>>2]|0;if((Xb|0)==0|(Zb|0)==0)_b=-1;else{c[Yb>>2]=Zb+-1;c[Yb+4>>2]=Xb+1;_b=d[Xb>>0]|0}$b=_b}else{_b=Yb+4|0;Yb=c[_b>>2]|0;c[_b>>2]=Yb+1;$b=d[Yb>>0]|0}c[b>>2]=$b;k=280;Ia=f;return k|0}if(!(Mt(97449,Vb,2)|0)){k=279;Ia=f;return k|0}$b=c[j>>2]|0;Yb=$b+4|0;_b=c[Yb>>2]|0;Xb=_b+1|0;Zb=$b+8|0;Ub=c[Zb>>2]|0;if(Xb>>>0>Ub>>>0){if(Ub>>>0>2147483645)Ae(b,48200,0);Rb=Ub<<1;Sb=c[b+44>>2]|0;if((Rb|0)==-2)Lc(Sb);Pb=c[$b>>2]|0;Nb=c[Sb+12>>2]|0;Wb=(Pb|0)==0;Tb=Nb+4|0;Hb=Pa[c[Nb>>2]&3](c[Tb>>2]|0,Pb,Ub,Rb)|0;if((Rb|0)!=0&(Hb|0)==0){if(!(a[Nb+51>>0]|0))yc(Sb,4);Kc(Sb,1);Ob=Pa[c[Nb>>2]&3](c[Tb>>2]|0,Pb,Ub,Rb)|0;if(!Ob)yc(Sb,4);else ac=Ob}else ac=Hb;Hb=Nb+12|0;c[Hb>>2]=(Wb?0:0-Ub|0)+Rb+(c[Hb>>2]|0);c[$b>>2]=ac;c[Zb>>2]=Rb;Rb=c[Yb>>2]|0;bc=ac;cc=Rb;dc=Rb+1|0}else{bc=c[$b>>2]|0;cc=_b;dc=Xb}c[Yb>>2]=dc;a[bc+cc>>0]=Vb;Vb=c[m>>2]|0;cc=c[Vb>>2]|0;c[Vb>>2]=cc+-1;if(!cc){cc=Oa[c[Vb+8>>2]&7](c[Vb+16>>2]|0,c[Vb+12>>2]|0,g)|0;bc=c[g>>2]|0;if((cc|0)==0|(bc|0)==0)ec=-1;else{c[Vb>>2]=bc+-1;c[Vb+4>>2]=cc+1;ec=d[cc>>0]|0}fc=ec}else{ec=Vb+4|0;Vb=c[ec>>2]|0;c[ec>>2]=Vb+1;fc=d[Vb>>0]|0}c[b>>2]=fc;k=314;Ia=f;return k|0}case 556:{g:do if(!((o|0)==95|(Av(o)|0)!=0)?!((o|0)<0|(o&-128|0)==128):0){switch(o|0){case 30:case 31:{break g;break}case 41:{gc=-1;break}case 40:{gc=(c[b+20>>2]|0)>0?1:-1;break}default:gc=0}fc=b+20|0;c[fc>>2]=(c[fc>>2]|0)+gc;fc=c[m>>2]|0;Vb=c[fc>>2]|0;c[fc>>2]=Vb+-1;if(!Vb){Vb=Oa[c[fc+8>>2]&7](c[fc+16>>2]|0,c[fc+12>>2]|0,g)|0;ec=c[g>>2]|0;if((Vb|0)==0|(ec|0)==0)hc=-1;else{c[fc>>2]=ec+-1;c[fc+4>>2]=Vb+1;hc=d[Vb>>0]|0}ic=hc}else{Vb=fc+4|0;fc=c[Vb>>2]|0;c[Vb>>2]=fc+1;ic=d[fc>>0]|0}c[b>>2]=ic;k=o;Ia=f;return k|0}while(0);ic=b+44|0;hc=o;while(1){o=c[j>>2]|0;gc=o+4|0;fc=c[gc>>2]|0;Vb=fc+1|0;ec=o+8|0;cc=c[ec>>2]|0;if(Vb>>>0>cc>>>0){if(cc>>>0>2147483645){p=563;break}bc=cc<<1;jc=c[ic>>2]|0;if((bc|0)==-2){p=565;break}dc=c[o>>2]|0;Yb=c[jc+12>>2]|0;Xb=(dc|0)==0;_b=Yb+4|0;$b=Pa[c[Yb>>2]&3](c[_b>>2]|0,dc,cc,bc)|0;if((bc|0)!=0&($b|0)==0){if(!(a[Yb+51>>0]|0)){p=569;break}Kc(jc,1);Rb=Pa[c[Yb>>2]&3](c[_b>>2]|0,dc,cc,bc)|0;if(!Rb){p=569;break}else kc=Rb}else kc=$b;$b=Yb+12|0;c[$b>>2]=(Xb?0:0-cc|0)+bc+(c[$b>>2]|0);c[o>>2]=kc;c[ec>>2]=bc;bc=c[gc>>2]|0;lc=kc;mc=bc;nc=bc+1|0}else{lc=c[o>>2]|0;mc=fc;nc=Vb}c[gc>>2]=nc;a[lc+mc>>0]=hc;gc=c[m>>2]|0;Vb=c[gc>>2]|0;c[gc>>2]=Vb+-1;if(!Vb){Vb=Oa[c[gc+8>>2]&7](c[gc+16>>2]|0,c[gc+12>>2]|0,g)|0;fc=c[g>>2]|0;if((Vb|0)==0|(fc|0)==0)oc=-1;else{c[gc>>2]=fc+-1;c[gc+4>>2]=Vb+1;oc=d[Vb>>0]|0}pc=oc}else{Vb=gc+4|0;gc=c[Vb>>2]|0;c[Vb>>2]=gc+1;pc=d[gc>>0]|0}c[b>>2]=pc;if(pc>>>0>127|((zv(pc)|0)!=0|(pc|0)==95)|(pc&-2|0)==30)hc=pc;else{p=577;break}}if((p|0)==563)Ae(b,48200,0);else if((p|0)==565)Lc(jc);else if((p|0)==569)yc(jc,4);else if((p|0)==577){jc=c[j>>2]|0;pc=qe(b,c[jc>>2]|0,c[jc+4>>2]|0)|0;c[e>>2]=pc;if((a[pc+4>>0]|0)==4){jc=a[pc+6>>0]|0;Ia=f;return (jc<<24>>24==0?289:jc&255|256)|0}else{k=289;Ia=f;return k|0}}break}case 587:{Ia=f;return k|0}}jc=c[j>>2]|0;pc=jc+4|0;hc=c[pc>>2]|0;oc=hc+1|0;mc=jc+8|0;lc=c[mc>>2]|0;if(oc>>>0>lc>>>0){if(lc>>>0>2147483645)Ae(b,48200,0);nc=lc<<1;kc=c[b+44>>2]|0;if((nc|0)==-2)Lc(kc);ic=c[jc>>2]|0;gc=c[kc+12>>2]|0;Vb=(ic|0)==0;fc=gc+4|0;o=Pa[c[gc>>2]&3](c[fc>>2]|0,ic,lc,nc)|0;if((nc|0)!=0&(o|0)==0){if(!(a[gc+51>>0]|0))yc(kc,4);Kc(kc,1);bc=Pa[c[gc>>2]&3](c[fc>>2]|0,ic,lc,nc)|0;if(!bc)yc(kc,4);else qc=bc}else qc=o;o=gc+12|0;c[o>>2]=(Vb?0:0-lc|0)+nc+(c[o>>2]|0);c[jc>>2]=qc;c[mc>>2]=nc;nc=c[pc>>2]|0;rc=qc;sc=nc;tc=nc+1|0}else{rc=c[jc>>2]|0;sc=hc;tc=oc}c[pc>>2]=tc;a[rc+sc>>0]=q;sc=c[m>>2]|0;rc=c[sc>>2]|0;c[sc>>2]=rc+-1;if(!rc){rc=Oa[c[sc+8>>2]&7](c[sc+16>>2]|0,c[sc+12>>2]|0,g)|0;tc=c[g>>2]|0;if((rc|0)==0|(tc|0)==0)uc=-1;else{c[sc>>2]=tc+-1;c[sc+4>>2]=rc+1;uc=d[rc>>0]|0}vc=uc}else{uc=sc+4|0;sc=c[uc>>2]|0;c[uc>>2]=sc+1;vc=d[sc>>0]|0}c[b>>2]=vc;if(!((q|0)!=48|(vc|0)==0)){if(!(Mt(48934,vc,3)|0)){wc=vc;xc=0}else{q=c[j>>2]|0;sc=q+4|0;uc=c[sc>>2]|0;rc=uc+1|0;tc=q+8|0;pc=c[tc>>2]|0;if(rc>>>0>pc>>>0){if(pc>>>0>2147483645)Ae(b,48200,0);oc=pc<<1;hc=c[b+44>>2]|0;if((oc|0)==-2)Lc(hc);jc=c[q>>2]|0;nc=c[hc+12>>2]|0;qc=(jc|0)==0;mc=nc+4|0;o=Pa[c[nc>>2]&3](c[mc>>2]|0,jc,pc,oc)|0;if((oc|0)!=0&(o|0)==0){if(!(a[nc+51>>0]|0))yc(hc,4);Kc(hc,1);lc=Pa[c[nc>>2]&3](c[mc>>2]|0,jc,pc,oc)|0;if(!lc)yc(hc,4);else zc=lc}else zc=o;o=nc+12|0;c[o>>2]=(qc?0:0-pc|0)+oc+(c[o>>2]|0);c[q>>2]=zc;c[tc>>2]=oc;oc=c[sc>>2]|0;Ac=zc;Bc=oc;Cc=oc+1|0}else{Ac=c[q>>2]|0;Bc=uc;Cc=rc}c[sc>>2]=Cc;a[Ac+Bc>>0]=vc;Bc=c[m>>2]|0;Ac=c[Bc>>2]|0;c[Bc>>2]=Ac+-1;if(!Ac){Ac=Oa[c[Bc+8>>2]&7](c[Bc+16>>2]|0,c[Bc+12>>2]|0,g)|0;Cc=c[g>>2]|0;if((Ac|0)==0|(Cc|0)==0)Dc=-1;else{c[Bc>>2]=Cc+-1;c[Bc+4>>2]=Ac+1;Dc=d[Ac>>0]|0}Ec=Dc}else{Dc=Bc+4|0;Bc=c[Dc>>2]|0;c[Dc>>2]=Bc+1;Ec=d[Bc>>0]|0}c[b>>2]=Ec;wc=Ec;xc=1}if(wc)if(!(Mt(48937,wc,3)|0)){Fc=wc;Gc=0;Hc=xc}else{Ec=c[j>>2]|0;Bc=Ec+4|0;Dc=c[Bc>>2]|0;Ac=Dc+1|0;Cc=Ec+8|0;sc=c[Cc>>2]|0;if(Ac>>>0>sc>>>0){if(sc>>>0>2147483645)Ae(b,48200,0);rc=sc<<1;uc=c[b+44>>2]|0;if((rc|0)==-2)Lc(uc);q=c[Ec>>2]|0;oc=c[uc+12>>2]|0;zc=(q|0)==0;tc=oc+4|0;o=Pa[c[oc>>2]&3](c[tc>>2]|0,q,sc,rc)|0;if((rc|0)!=0&(o|0)==0){if(!(a[oc+51>>0]|0))yc(uc,4);Kc(uc,1);pc=Pa[c[oc>>2]&3](c[tc>>2]|0,q,sc,rc)|0;if(!pc)yc(uc,4);else Ic=pc}else Ic=o;o=oc+12|0;c[o>>2]=(zc?0:0-sc|0)+rc+(c[o>>2]|0);c[Ec>>2]=Ic;c[Cc>>2]=rc;rc=c[Bc>>2]|0;Jc=Ic;Mc=rc;Nc=rc+1|0}else{Jc=c[Ec>>2]|0;Mc=Dc;Nc=Ac}c[Bc>>2]=Nc;a[Jc+Mc>>0]=wc;wc=c[m>>2]|0;Mc=c[wc>>2]|0;c[wc>>2]=Mc+-1;if(!Mc){Mc=Oa[c[wc+8>>2]&7](c[wc+16>>2]|0,c[wc+12>>2]|0,g)|0;Jc=c[g>>2]|0;if((Mc|0)==0|(Jc|0)==0)Oc=-1;else{c[wc>>2]=Jc+-1;c[wc+4>>2]=Mc+1;Oc=d[Mc>>0]|0}Pc=Oc}else{Oc=wc+4|0;wc=c[Oc>>2]|0;c[Oc>>2]=wc+1;Pc=d[wc>>0]|0}c[b>>2]=Pc;Fc=Pc;Gc=1;Hc=xc}else{Fc=0;Gc=0;Hc=xc}}else{Fc=vc;Gc=0;Hc=0}vc=(Hc|0)!=0;Hc=b+44|0;xc=(Gc|vc)^1;Pc=Fc;h:while(1){do if(!((Pc+-48|0)>>>0<10&xc)){if(vc?a[64+(Pc+1)>>0]&16:0)break;if(!((Pc|0)==46|Gc&(Pc&-2|0)==48)){p=525;break h}}while(0);Fc=c[j>>2]|0;wc=Fc+4|0;Oc=c[wc>>2]|0;Mc=Oc+1|0;Jc=Fc+8|0;Nc=c[Jc>>2]|0;if(Mc>>>0>Nc>>>0){if(Nc>>>0>2147483645){p=511;break}Bc=Nc<<1;Qc=c[Hc>>2]|0;if((Bc|0)==-2){p=513;break}Ac=c[Fc>>2]|0;Dc=c[Qc+12>>2]|0;Ec=(Ac|0)==0;rc=Dc+4|0;Ic=Pa[c[Dc>>2]&3](c[rc>>2]|0,Ac,Nc,Bc)|0;if((Bc|0)!=0&(Ic|0)==0){if(!(a[Dc+51>>0]|0)){p=517;break}Kc(Qc,1);Cc=Pa[c[Dc>>2]&3](c[rc>>2]|0,Ac,Nc,Bc)|0;if(!Cc){p=517;break}else Rc=Cc}else Rc=Ic;Ic=Dc+12|0;c[Ic>>2]=(Ec?0:0-Nc|0)+Bc+(c[Ic>>2]|0);c[Fc>>2]=Rc;c[Jc>>2]=Bc;Bc=c[wc>>2]|0;Sc=Rc;Tc=Bc;Uc=Bc+1|0}else{Sc=c[Fc>>2]|0;Tc=Oc;Uc=Mc}c[wc>>2]=Uc;a[Sc+Tc>>0]=Pc;wc=c[m>>2]|0;Mc=c[wc>>2]|0;c[wc>>2]=Mc+-1;if(!Mc){Mc=Oa[c[wc+8>>2]&7](c[wc+16>>2]|0,c[wc+12>>2]|0,g)|0;Oc=c[g>>2]|0;if((Mc|0)==0|(Oc|0)==0)Vc=-1;else{c[wc>>2]=Oc+-1;c[wc+4>>2]=Mc+1;Vc=d[Mc>>0]|0}Xc=Vc}else{Mc=wc+4|0;wc=c[Mc>>2]|0;c[Mc>>2]=wc+1;Xc=d[wc>>0]|0}c[b>>2]=Xc;Pc=Xc}if((p|0)==511)Ae(b,48200,0);else if((p|0)==513)Lc(Qc);else if((p|0)==517)yc(Qc,4);else if((p|0)==525){p=c[j>>2]|0;Qc=p+4|0;Xc=c[Qc>>2]|0;Pc=Xc+1|0;Vc=p+8|0;g=c[Vc>>2]|0;if(Pc>>>0>g>>>0){if(g>>>0>2147483645)Ae(b,48200,0);m=g<<1;Tc=c[Hc>>2]|0;if((m|0)==-2)Lc(Tc);Hc=c[p>>2]|0;Sc=c[Tc+12>>2]|0;Uc=(Hc|0)==0;Rc=Sc+4|0;Gc=Pa[c[Sc>>2]&3](c[Rc>>2]|0,Hc,g,m)|0;if((m|0)!=0&(Gc|0)==0){if(!(a[Sc+51>>0]|0))yc(Tc,4);Kc(Tc,1);vc=Pa[c[Sc>>2]&3](c[Rc>>2]|0,Hc,g,m)|0;if(!vc)yc(Tc,4);else Yc=vc}else Yc=Gc;Gc=Sc+12|0;c[Gc>>2]=(Uc?0:0-g|0)+m+(c[Gc>>2]|0);c[p>>2]=Yc;c[Vc>>2]=m;m=c[Qc>>2]|0;Zc=Yc;_c=m;$c=m+1|0}else{Zc=c[p>>2]|0;_c=Xc;$c=Pc}c[Qc>>2]=$c;a[Zc+_c>>0]=0;_c=b+68|0;Zc=a[_c>>0]|0;$c=c[j>>2]|0;Qc=c[$c>>2]|0;Pc=c[$c+4>>2]|0;if(!Pc){ad=Qc;bd=-1}else{$c=Pc;do{$c=$c+-1|0;Pc=Qc+$c|0;if((a[Pc>>0]|0)==46)a[Pc>>0]=Zc}while(($c|0)!=0);$c=c[j>>2]|0;ad=c[$c>>2]|0;bd=(c[$c+4>>2]|0)+-1|0}if(Wc(ad,bd,e)|0){k=288;Ia=f;return k|0}bd=a[_c>>0]|0;ad=a[c[(Bv()|0)>>2]>>0]|0;a[_c>>0]=ad;$c=c[j>>2]|0;Zc=c[$c>>2]|0;Qc=c[$c+4>>2]|0;if(!Qc){cd=Zc;dd=-1}else{$c=Qc;do{$c=$c+-1|0;Qc=Zc+$c|0;if((a[Qc>>0]|0)==bd<<24>>24)a[Qc>>0]=ad}while(($c|0)!=0);$c=c[j>>2]|0;cd=c[$c>>2]|0;dd=(c[$c+4>>2]|0)+-1|0}if(Wc(cd,dd,e)|0){k=288;Ia=f;return k|0}k=a[_c>>0]|0;_c=c[j>>2]|0;j=c[_c>>2]|0;f=c[_c+4>>2]|0;if(!f)Ae(b,48940,288);_c=f;do{_c=_c+-1|0;f=j+_c|0;if((a[f>>0]|0)==k<<24>>24)a[f>>0]=46}while((_c|0)!=0);Ae(b,48940,288)}return 0}function le(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0;f=Ia;Ia=Ia+96|0;g=f;h=f+72|0;i=f+56|0;j=f+32|0;k=f+16|0;l=e+4|0;m=c[l>>2]|0;c[8721]=m;n=e+40|0;o=c[n>>2]|0;p=e+44|0;q=(c[p>>2]|0)+38|0;r=(b[q>>1]|0)+1<<16>>16;b[q>>1]=r;if((r&65535)>200)Ce(o,200,48307);r=e+24|0;do switch(c[r>>2]|0){case 59:{c[e+16>>2]=m;q=e+32|0;if((c[q>>2]|0)==287){c[r>>2]=ke(e,e+28|0)|0;s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}else{A=q;B=c[A+4>>2]|0;C=e+24|0;c[C>>2]=c[A>>2];c[C+4>>2]=B;c[q>>2]=287;s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}break}case 291:{De(e);s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 267:{c[i>>2]=-1;q=Ee(e,i)|0;a:while(1){switch(c[r>>2]|0){case 260:{D=11;break a;break}case 261:break;default:break a}Ee(e,i)|0}if((D|0)==11){c[e+16>>2]=c[l>>2];B=e+32|0;if((c[B>>2]|0)==287){C=ke(e,e+28|0)|0;c[r>>2]=C;E=C}else{C=B;A=c[C>>2]|0;F=c[C+4>>2]|0;C=e+24|0;c[C>>2]=A;c[C+4>>2]=F;c[B>>2]=287;E=A}A=c[n>>2]|0;a[h+10>>0]=0;a[h+8>>0]=a[A+46>>0]|0;B=c[(c[A+12>>2]|0)+56>>2]|0;b[h+4>>1]=c[B+28>>2];b[h+6>>1]=c[B+16>>2];a[h+9>>0]=0;B=A+16|0;c[h>>2]=c[B>>2];c[B>>2]=h;B=E;b:while(1){switch(B|0){case 277:case 292:case 287:case 262:case 261:case 260:{break b;break}default:{}}le(e);if((B|0)==274)break;B=c[r>>2]|0}pe(A)}c:do if(!q)Fe(e,262,267,m);else switch(c[r>>2]|0){case 287:case 292:{c[e+16>>2]=c[l>>2];B=e+32|0;if((c[B>>2]|0)==287){c[r>>2]=ke(e,e+28|0)|0;break c}else{F=B;C=c[F+4>>2]|0;G=e+24|0;c[G>>2]=c[F>>2];c[G+4>>2]=C;c[B>>2]=287;break c}break}case 277:case 262:case 261:case 260:{B=e+12|0;c[B>>2]=(c[B>>2]|0)+-1;break c;break}default:{Fe(e,292,267,m);break c}}while(0);q=c[i>>2]|0;c[o+24>>2]=c[o+20>>2];A=o+28|0;do if((q|0)!=-1){B=c[A>>2]|0;if((B|0)==-1){c[A>>2]=q;break}C=c[(c[o>>2]|0)+12>>2]|0;G=B;while(1){H=C+(G<<2)|0;I=c[H>>2]|0;B=(I>>>14)+-131071|0;F=(B|0)==-1?-1:G+1+B|0;if((F|0)==-1)break;else G=F}C=q+~G|0;if((((C|0)>-1?C:0-C|0)|0)>131071)re(c[o+12>>2]|0,47972);else{c[H>>2]=(C<<14)+2147467264|I&16383;break}}while(0);s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 278:{q=e+16|0;c[q>>2]=m;A=e+32|0;if((c[A>>2]|0)==287){C=ke(e,e+28|0)|0;c[r>>2]=C;J=C}else{C=A;F=c[C>>2]|0;B=c[C+4>>2]|0;C=e+24|0;c[C>>2]=F;c[C+4>>2]=B;c[A>>2]=287;J=F}F=e+20|0;c[F>>2]=(J|0)==40?1:-1;B=o+20|0;C=c[B>>2]|0;K=o+24|0;c[K>>2]=C;Ge(e,h,0)|0;if((c[h>>2]|0)==1)c[h>>2]=3;He(c[n>>2]|0,h);L=c[h+12>>2]|0;a[i+10>>0]=1;a[i+8>>0]=a[o+46>>0]|0;M=o+12|0;N=c[(c[M>>2]|0)+56>>2]|0;b[i+4>>1]=c[N+28>>2];b[i+6>>1]=c[N+16>>2];a[i+9>>0]=0;N=o+16|0;c[i>>2]=c[N>>2];c[N>>2]=i;N=c[r>>2]|0;switch(N|0){case 259:{D=47;break}case 287:{me(e,259);break}default:D=42}do if((D|0)==42){if((c[F>>2]|0)==0?(c[l>>2]|0)==(m|0):0){O=e+12|0;c[O>>2]=(c[O>>2]|0)+1;P=1;break}if((N|0)==259)D=47;else me(e,259)}while(0);do if((D|0)==47){c[q>>2]=c[l>>2];if((c[A>>2]|0)==287){c[r>>2]=ke(e,e+28|0)|0;P=0;break}else{N=A;F=c[N+4>>2]|0;O=e+24|0;c[O>>2]=c[N>>2];c[O+4>>2]=F;c[A>>2]=287;P=0;break}}while(0);Ie(e);F=o+28|0;O=c[F>>2]|0;c[F>>2]=-1;N=oe(o,2147450916)|0;do if((O|0)!=-1)if((N|0)!=-1){Q=c[(c[o>>2]|0)+12>>2]|0;R=N;while(1){S=Q+(R<<2)|0;T=c[S>>2]|0;U=(T>>>14)+-131071|0;V=(U|0)==-1?-1:R+1+U|0;if((V|0)==-1)break;else R=V}Q=O+~R|0;if((((Q|0)>-1?Q:0-Q|0)|0)>131071)re(c[M>>2]|0,47972);else{c[S>>2]=(Q<<14)+2147467264|T&16383;W=N;break}}else W=O;else W=N;while(0);ze(o,W,C);d:do if(P)switch(c[r>>2]|0){case 287:case 292:{c[q>>2]=c[l>>2];if((c[A>>2]|0)==287){c[r>>2]=ke(e,e+28|0)|0;break d}else{N=A;O=c[N+4>>2]|0;Q=e+24|0;c[Q>>2]=c[N>>2];c[Q+4>>2]=O;c[A>>2]=287;break d}break}case 277:case 262:case 261:case 260:{O=e+12|0;c[O>>2]=(c[O>>2]|0)+-1;break d;break}default:{Fe(e,292,278,m);break d}}else Fe(e,262,278,m);while(0);pe(o);c[K>>2]=c[B>>2];do if((L|0)!=-1){A=c[F>>2]|0;if((A|0)==-1){c[F>>2]=L;break}q=c[(c[o>>2]|0)+12>>2]|0;C=A;while(1){X=q+(C<<2)|0;Y=c[X>>2]|0;A=(Y>>>14)+-131071|0;O=(A|0)==-1?-1:C+1+A|0;if((O|0)==-1)break;else C=O}q=L+~C|0;if((((q|0)>-1?q:0-q|0)|0)>131071)re(c[M>>2]|0,47972);else{c[X>>2]=(q<<14)+2147467264|Y&16383;break}}while(0);s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 259:{c[e+16>>2]=m;M=e+32|0;if((c[M>>2]|0)==287)c[r>>2]=ke(e,e+28|0)|0;else{L=M;F=c[L+4>>2]|0;B=e+24|0;c[B>>2]=c[L>>2];c[B+4>>2]=F;c[M>>2]=287}Ie(e);Fe(e,262,259,m);s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 264:{a[i+10>>0]=1;a[i+8>>0]=a[o+46>>0]|0;M=c[(c[o+12>>2]|0)+56>>2]|0;b[i+4>>1]=c[M+28>>2];b[i+6>>1]=c[M+16>>2];a[i+9>>0]=0;M=o+16|0;c[i>>2]=c[M>>2];c[M>>2]=i;M=e+16|0;c[M>>2]=m;F=e+32|0;if((c[F>>2]|0)==287){B=ke(e,e+28|0)|0;c[r>>2]=B;Z=B}else{B=F;L=c[B>>2]|0;K=c[B+4>>2]|0;B=e+24|0;c[B>>2]=L;c[B+4>>2]=K;c[F>>2]=287;Z=L}if((Z|0)!=289)me(e,289);L=e+28|0;K=c[L>>2]|0;c[M>>2]=c[l>>2];if((c[F>>2]|0)==287){B=ke(e,L)|0;c[r>>2]=B;_=B}else{B=F;q=c[B>>2]|0;R=c[B+4>>2]|0;B=e+24|0;c[B>>2]=q;c[B+4>>2]=R;c[F>>2]=287;_=q}switch(_|0){case 61:{q=c[n>>2]|0;R=q+48|0;B=d[R>>0]|0;Je(e,qe(e,48316,11)|0);Je(e,qe(e,48328,11)|0);Je(e,qe(e,48340,10)|0);Je(e,K);if((c[r>>2]|0)!=61)me(e,61);c[M>>2]=c[l>>2];if((c[F>>2]|0)==287)c[r>>2]=ke(e,L)|0;else{O=F;A=c[O+4>>2]|0;Q=e+24|0;c[Q>>2]=c[O>>2];c[Q+4>>2]=A;c[F>>2]=287}Ke(e);if((c[r>>2]|0)!=44)me(e,44);c[M>>2]=c[l>>2];if((c[F>>2]|0)==287)c[r>>2]=ke(e,L)|0;else{A=F;Q=c[A+4>>2]|0;O=e+24|0;c[O>>2]=c[A>>2];c[O+4>>2]=Q;c[F>>2]=287}Ke(e);if((c[r>>2]|0)==44){c[M>>2]=c[l>>2];if((c[F>>2]|0)==287)c[r>>2]=ke(e,L)|0;else{Q=F;O=c[Q+4>>2]|0;A=e+24|0;c[A>>2]=c[Q>>2];c[A+4>>2]=O;c[F>>2]=287}Ke(e)}else{O=d[R>>0]|0;A=q+12|0;c[h>>2]=65536;c[h+4>>2]=3;Q=Le(q,h,h)|0;N=O<<6;if((Q|0)<262144)oe(q,N|Q<<14|1)|0;else{oe(q,N|2)|0;oe(q,Q<<6|52)|0}Q=a[R>>0]|0;N=(Q&255)+1|0;O=(c[q>>2]|0)+78|0;do if((Q&255)>=(d[O>>0]|0))if((Q&255)>248)re(c[A>>2]|0,48351);else{q=N&255;a[O>>0]=q;$=q;break}else $=N&255;while(0);a[R>>0]=$}Me(e,B,m,1,1);break}case 268:case 44:{N=c[n>>2]|0;O=N+48|0;A=d[O>>0]|0;Je(e,qe(e,48386,15)|0);Je(e,qe(e,48402,11)|0);Je(e,qe(e,48414,13)|0);Je(e,K);Q=c[r>>2]|0;do if((Q|0)==44){q=e+24|0;G=4;while(1){c[M>>2]=c[l>>2];if((c[F>>2]|0)==287){V=ke(e,L)|0;c[r>>2]=V;aa=V}else{V=F;U=c[V>>2]|0;ba=c[V+4>>2]|0;V=q;c[V>>2]=U;c[V+4>>2]=ba;c[F>>2]=287;aa=U}if((aa|0)!=289){D=118;break}U=c[L>>2]|0;c[M>>2]=c[l>>2];if((c[F>>2]|0)==287)c[r>>2]=ke(e,L)|0;else{ba=F;V=c[ba+4>>2]|0;ca=q;c[ca>>2]=c[ba>>2];c[ca+4>>2]=V;c[F>>2]=287}Je(e,U);da=c[r>>2]|0;if((da|0)==44)G=G+1|0;else{D=123;break}}if((D|0)==118)me(e,289);else if((D|0)==123){ea=da;fa=G+-2|0;break}}else{ea=Q;fa=1}while(0);if((ea|0)!=268)me(e,268);Q=c[l>>2]|0;c[M>>2]=Q;if((c[F>>2]|0)==287){c[r>>2]=ke(e,L)|0;ga=c[l>>2]|0}else{K=F;B=c[K+4>>2]|0;R=e+24|0;c[R>>2]=c[K>>2];c[R+4>>2]=B;c[F>>2]=287;ga=Q}Ge(e,h,0)|0;e:do if((c[r>>2]|0)==44){Q=e+24|0;B=h+4|0;R=1;while(1){c[M>>2]=c[l>>2];if((c[F>>2]|0)==287)c[r>>2]=ke(e,L)|0;else{K=F;q=c[K+4>>2]|0;C=Q;c[C>>2]=c[K>>2];c[C+4>>2]=q;c[F>>2]=287}ha=c[n>>2]|0;Ne(ha,h);if(((c[h>>2]|0)==6?(q=c[B>>2]|0,(q&256|0)==0):0)?(q|0)>=(d[ha+46>>0]|0):0){q=ha+48|0;a[q>>0]=(a[q>>0]|0)+-1<<24>>24}q=ha+48|0;C=a[q>>0]|0;K=(C&255)+1|0;U=(c[ha>>2]|0)+78|0;if((C&255)<(d[U>>0]|0))ia=K&255;else{if((C&255)>248)break;C=K&255;a[U>>0]=C;ia=C}a[q>>0]=ia;Oe(ha,h,(ia&255)+-1|0);Ge(e,h,0)|0;q=R+1|0;if((c[r>>2]|0)==44)R=q;else{ja=q;break e}}re(c[ha+12>>2]|0,48351)}else ja=1;while(0);Pe(c[n>>2]|0,3,ja,h);F=(d[O>>0]|0)+3|0;L=(c[N>>2]|0)+78|0;do if(F>>>0>(d[L>>0]|0)>>>0)if(F>>>0>249)re(c[N+12>>2]|0,48351);else{a[L>>0]=F;break}while(0);Me(e,A,ga,fa,0);break}default:re(e,48428)}Fe(e,262,264,m);pe(o);s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 273:{F=c[o+20>>2]|0;c[o+24>>2]=F;a[i+10>>0]=1;L=a[o+46>>0]|0;a[i+8>>0]=L;N=c[(c[o+12>>2]|0)+56>>2]|0;O=c[N+28>>2]&65535;b[i+4>>1]=O;M=c[N+16>>2]&65535;b[i+6>>1]=M;a[i+9>>0]=0;N=o+16|0;c[i>>2]=c[N>>2];a[j+10>>0]=0;R=j+8|0;a[R>>0]=L;b[j+4>>1]=O;b[j+6>>1]=M;M=j+9|0;a[M>>0]=0;c[j>>2]=i;c[N>>2]=j;c[e+16>>2]=m;N=e+32|0;if((c[N>>2]|0)==287){O=ke(e,e+28|0)|0;c[r>>2]=O;ka=O}else{O=N;L=c[O>>2]|0;B=c[O+4>>2]|0;O=e+24|0;c[O>>2]=L;c[O+4>>2]=B;c[N>>2]=287;ka=L}L=ka;f:while(1){switch(L|0){case 277:case 292:case 287:case 262:case 261:case 260:{break f;break}default:{}}le(e);if((L|0)==274)break;L=c[r>>2]|0}Fe(e,277,273,m);Ge(e,h,0)|0;if((c[h>>2]|0)==1)c[h>>2]=3;He(c[n>>2]|0,h);L=c[h+12>>2]|0;if(!((L|0)==-1|(a[M>>0]|0)==0)){A=c[(c[o>>2]|0)+12>>2]|0;N=(d[R>>0]<<6)+64&16320;B=L;do{O=A+(B<<2)|0;Q=c[O>>2]|0;G=(Q>>>14)+-131071|0;c[O>>2]=Q&-16321|N;B=(G|0)==-1?-1:B+1+G|0}while((B|0)!=-1)}pe(o);ze(o,L,F);pe(o);s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 265:{B=e+16|0;c[B>>2]=m;N=e+32|0;if((c[N>>2]|0)==287){A=e+28|0;c[r>>2]=ke(e,A)|0;la=e+24|0;ma=N;na=A}else{A=e+24|0;R=N;M=c[R+4>>2]|0;G=A;c[G>>2]=c[R>>2];c[G+4>>2]=M;c[N>>2]=287;la=A;ma=N;na=e+28|0}Qe(e,j);A=j+8|0;M=j+12|0;G=h+4|0;R=i+8|0;Q=i+12|0;O=i+4|0;q=j+4|0;C=q+2|0;U=q+3|0;g:while(1){switch(c[r>>2]|0){case 58:{D=181;break g;break}case 46:break;default:{oa=0;break g}}K=c[n>>2]|0;if(!((c[j>>2]|0)==8?(c[A>>2]|0)==(c[M>>2]|0):0))Re(K,j)|0;c[B>>2]=c[l>>2];if((c[N>>2]|0)==287){V=ke(e,na)|0;c[r>>2]=V;pa=V}else{V=ma;ca=c[V>>2]|0;ba=c[V+4>>2]|0;V=la;c[V>>2]=ca;c[V+4>>2]=ba;c[N>>2]=287;pa=ca}if((pa|0)!=289){D=176;break}ca=c[na>>2]|0;c[B>>2]=c[l>>2];if((c[N>>2]|0)==287)c[r>>2]=ke(e,na)|0;else{ba=ma;V=c[ba+4>>2]|0;qa=la;c[qa>>2]=c[ba>>2];c[qa+4>>2]=V;c[N>>2]=287}V=c[n>>2]|0;c[h>>2]=ca;c[G>>2]=(a[ca+4>>0]|64)&255;ca=Le(V,h,h)|0;c[R>>2]=-1;c[Q>>2]=-1;c[i>>2]=4;c[O>>2]=ca;a[C>>0]=c[q>>2];b[q>>1]=Se(K,i)|0;a[U>>0]=(c[j>>2]|0)==8?8:7;c[j>>2]=9}if((D|0)==176)me(e,289);if((D|0)==181){O=c[n>>2]|0;if(!((c[j>>2]|0)==8?(c[A>>2]|0)==(c[M>>2]|0):0))Re(O,j)|0;c[B>>2]=c[l>>2];if((c[N>>2]|0)==287){Q=ke(e,na)|0;c[r>>2]=Q;ra=Q}else{Q=ma;R=c[Q>>2]|0;G=c[Q+4>>2]|0;Q=la;c[Q>>2]=R;c[Q+4>>2]=G;c[N>>2]=287;ra=R}if((ra|0)!=289)me(e,289);R=c[na>>2]|0;c[B>>2]=c[l>>2];if((c[N>>2]|0)==287)c[r>>2]=ke(e,na)|0;else{G=ma;Q=c[G+4>>2]|0;F=la;c[F>>2]=c[G>>2];c[F+4>>2]=Q;c[N>>2]=287}Q=c[n>>2]|0;c[h>>2]=R;c[h+4>>2]=(a[R+4>>0]|64)&255;R=Le(Q,h,h)|0;c[i+8>>2]=-1;c[i+12>>2]=-1;c[i>>2]=4;c[i+4>>2]=R;a[C>>0]=c[q>>2];b[q>>1]=Se(O,i)|0;a[U>>0]=(c[j>>2]|0)==8?8:7;c[j>>2]=9;oa=1}Te(e,k,oa,m);Ue(c[n>>2]|0,j,k);O=c[n>>2]|0;c[(c[(c[O>>2]|0)+20>>2]|0)+((c[O+20>>2]|0)+-1<<2)>>2]=m;s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 269:{O=e+16|0;c[O>>2]=m;R=e+32|0;if((c[R>>2]|0)==287){Q=ke(e,e+28|0)|0;c[r>>2]=Q;sa=Q}else{Q=R;F=c[Q>>2]|0;G=c[Q+4>>2]|0;Q=e+24|0;c[Q>>2]=F;c[Q+4>>2]=G;c[R>>2]=287;sa=F}if((sa|0)==265){c[O>>2]=c[l>>2];if((c[R>>2]|0)==287){F=ke(e,e+28|0)|0;c[r>>2]=F;ta=F}else{F=R;G=c[F>>2]|0;Q=c[F+4>>2]|0;F=e+24|0;c[F>>2]=G;c[F+4>>2]=Q;c[R>>2]=287;ta=G}G=c[n>>2]|0;if((ta|0)!=289)me(e,289);Q=e+28|0;F=c[Q>>2]|0;c[O>>2]=c[l>>2];if((c[R>>2]|0)==287)c[r>>2]=ke(e,Q)|0;else{Q=R;L=c[Q+4>>2]|0;K=e+24|0;c[K>>2]=c[Q>>2];c[K+4>>2]=L;c[R>>2]=287}Je(e,F);F=c[n>>2]|0;L=F+46|0;K=a[L>>0]|0;a[L>>0]=(K&255)+1;c[(c[(c[F>>2]|0)+24>>2]|0)+((b[(c[c[(c[F+12>>2]|0)+56>>2]>>2]|0)+((c[F+40>>2]|0)+(K+1&255)+-1<<1)>>1]|0)*12|0)+4>>2]=c[F+20>>2];Te(e,h,0,c[l>>2]|0);c[(c[(c[G>>2]|0)+24>>2]|0)+((b[(c[c[(c[G+12>>2]|0)+56>>2]>>2]|0)+((c[G+40>>2]|0)+(c[h+4>>2]|0)<<1)>>1]|0)*12|0)+4>>2]=c[G+20>>2];s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}if((sa|0)!=289)me(e,289);G=e+28|0;F=e+24|0;K=0;h:while(1){L=c[G>>2]|0;c[O>>2]=c[l>>2];if((c[R>>2]|0)==287)c[r>>2]=ke(e,G)|0;else{Q=R;ca=c[Q+4>>2]|0;V=F;c[V>>2]=c[Q>>2];c[V+4>>2]=ca;c[R>>2]=287}Je(e,L);K=K+1|0;switch(c[r>>2]|0){case 61:{D=218;break h;break}case 44:break;default:{D=236;break h}}c[O>>2]=c[l>>2];if((c[R>>2]|0)==287){L=ke(e,G)|0;c[r>>2]=L;ua=L}else{L=R;ca=c[L>>2]|0;V=c[L+4>>2]|0;L=F;c[L>>2]=ca;c[L+4>>2]=V;c[R>>2]=287;ua=ca}if((ua|0)!=289){D=209;break}}i:do if((D|0)==209)me(e,289);else if((D|0)==218){c[O>>2]=c[l>>2];if((c[R>>2]|0)==287)c[r>>2]=ke(e,G)|0;else{U=R;q=c[U+4>>2]|0;C=F;c[C>>2]=c[U>>2];c[C+4>>2]=q;c[R>>2]=287}Ge(e,h,0)|0;if((c[r>>2]|0)==44){q=h+4|0;C=1;while(1){c[O>>2]=c[l>>2];if((c[R>>2]|0)==287)c[r>>2]=ke(e,G)|0;else{U=R;N=c[U+4>>2]|0;B=F;c[B>>2]=c[U>>2];c[B+4>>2]=N;c[R>>2]=287}va=c[n>>2]|0;Ne(va,h);if(((c[h>>2]|0)==6?(N=c[q>>2]|0,(N&256|0)==0):0)?(N|0)>=(d[va+46>>0]|0):0){N=va+48|0;a[N>>0]=(a[N>>0]|0)+-1<<24>>24}N=va+48|0;B=a[N>>0]|0;U=(B&255)+1|0;M=(c[va>>2]|0)+78|0;if((B&255)<(d[M>>0]|0))wa=U&255;else{if((B&255)>248)break;B=U&255;a[M>>0]=B;wa=B}a[N>>0]=wa;Oe(va,h,(wa&255)+-1|0);Ge(e,h,0)|0;N=C+1|0;if((c[r>>2]|0)==44)C=N;else{xa=N;break i}}re(c[va+12>>2]|0,48351)}else xa=1}else if((D|0)==236){c[h>>2]=0;xa=0}while(0);Pe(c[n>>2]|0,K,xa,h);R=c[n>>2]|0;F=R+46|0;G=K+(d[F>>0]|0)|0;a[F>>0]=G;F=c[R+20>>2]|0;O=c[(c[R>>2]|0)+24>>2]|0;C=c[c[(c[R+12>>2]|0)+56>>2]>>2]|0;q=(c[R+40>>2]|0)+(G&255)|0;G=K;do{c[O+((b[C+(q-G<<1)>>1]|0)*12|0)+4>>2]=F;G=G+-1|0}while((G|0)!=0);s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 286:{G=e+16|0;c[G>>2]=m;F=e+32|0;if((c[F>>2]|0)==287){q=ke(e,e+28|0)|0;c[r>>2]=q;ya=q}else{q=F;C=c[q>>2]|0;O=c[q+4>>2]|0;q=e+24|0;c[q>>2]=C;c[q+4>>2]=O;c[F>>2]=287;ya=C}if((ya|0)!=289)me(e,289);C=e+28|0;O=c[C>>2]|0;c[G>>2]=c[l>>2];if((c[F>>2]|0)==287){q=ke(e,C)|0;c[r>>2]=q;za=q}else{q=F;K=c[q>>2]|0;R=c[q+4>>2]|0;q=e+24|0;c[q>>2]=K;c[q+4>>2]=R;c[F>>2]=287;za=K}K=c[n>>2]|0;R=e+56|0;q=c[R>>2]|0;N=q+24|0;B=K+16|0;M=b[(c[B>>2]|0)+4>>1]|0;U=q+28|0;A=c[U>>2]|0;j:do if((A|0)>(M|0)){ca=c[N>>2]|0;V=a[O+4>>0]|0;L=O+12|0;Q=O+16|0;if(V<<24>>24==4){qa=M;while(1){ba=c[ca+(qa<<4)>>2]|0;if((ba|0)==(O|0)&(a[ba+4>>0]|0)==4){Aa=qa;break}qa=qa+1|0;if((qa|0)>=(A|0))break j}Ba=K+12|0;Ca=c[Ba>>2]|0;Da=Ca+44|0;Ea=c[Da>>2]|0;Fa=ca+(Aa<<4)+8|0;Ga=c[Fa>>2]|0;Ha=we(Ga)|0;Ja=c[N>>2]|0;Ka=Ja+(Aa<<4)+8|0;La=c[Ka>>2]|0;Ma=xe(La)|0;c[g>>2]=Q;Na=g+4|0;c[Na>>2]=Ha;Oa=g+8|0;c[Oa>>2]=Ma;Pa=wd(Ea,48449,g)|0;Qa=c[Ba>>2]|0;ye(Qa,Pa)}qa=M;while(1){ba=c[ca+(qa<<4)>>2]|0;if(V<<24>>24==(a[ba+4>>0]|0)){Ra=c[L>>2]|0;if((ba|0)==(O|0)){Aa=qa;D=258;break}if((Ra|0)==(c[ba+12>>2]|0)?(tt(Q,ba+16|0,Ra)|0)==0:0){Aa=qa;D=258;break}}qa=qa+1|0;if((qa|0)>=(A|0))break j}if((D|0)==258){Ba=K+12|0;Ca=c[Ba>>2]|0;Da=Ca+44|0;Ea=c[Da>>2]|0;Fa=ca+(Aa<<4)+8|0;Ga=c[Fa>>2]|0;Ha=we(Ga)|0;Ja=c[N>>2]|0;Ka=Ja+(Aa<<4)+8|0;La=c[Ka>>2]|0;Ma=xe(La)|0;c[g>>2]=Q;Na=g+4|0;c[Na>>2]=Ha;Oa=g+8|0;c[Oa>>2]=Ma;Pa=wd(Ea,48449,g)|0;Qa=c[Ba>>2]|0;ye(Qa,Pa)}}while(0);if((za|0)!=286)me(e,286);c[G>>2]=c[l>>2];if((c[F>>2]|0)==287)c[r>>2]=ke(e,C)|0;else{A=F;M=c[A+4>>2]|0;qa=e+24|0;c[qa>>2]=c[A>>2];c[qa+4>>2]=M;c[F>>2]=287}M=c[K+20>>2]|0;qa=c[U>>2]|0;A=q+32|0;if((qa|0)<(c[A>>2]|0)){Sa=c[N>>2]|0;Ta=qa}else{L=se(c[p>>2]|0,c[N>>2]|0,A,16,32767,47999)|0;c[N>>2]=L;Sa=L;Ta=c[U>>2]|0}c[Sa+(qa<<4)>>2]=O;c[Sa+(qa<<4)+8>>2]=m;a[Sa+(qa<<4)+12>>0]=a[(c[n>>2]|0)+46>>0]|0;c[Sa+(qa<<4)+4>>2]=M;c[U>>2]=Ta+1;k:while(1){switch(c[r>>2]|0){case 292:case 287:case 262:case 261:case 260:{D=272;break k;break}case 286:case 59:break;default:{D=271;break k}}le(e)}if((D|0)==271)Ua=c[N>>2]|0;else if((D|0)==272){U=c[N>>2]|0;a[U+(qa<<4)+12>>0]=a[(c[B>>2]|0)+8>>0]|0;Ua=U}U=Ua+(qa<<4)|0;O=c[R>>2]|0;q=b[(c[(c[n>>2]|0)+16>>2]|0)+6>>1]|0;K=O+16|0;F=c[K>>2]|0;if((F|0)<=(q|0)){s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}C=O+12|0;O=F;F=q;while(1){q=c[(c[C>>2]|0)+(F<<4)>>2]|0;G=c[U>>2]|0;M=a[q+4>>0]|0;do if(M<<24>>24==(a[G+4>>0]|0)){if(M<<24>>24==4){if((q|0)!=(G|0)){D=282;break}}else{L=c[q+12>>2]|0;if((q|0)!=(G|0)){if((L|0)!=(c[G+12>>2]|0)){D=282;break}if(tt(q+16|0,G+16|0,L)|0){D=282;break}}}te(e,F,U);Va=c[K>>2]|0;Wa=F}else D=282;while(0);if((D|0)==282){D=0;Va=O;Wa=F+1|0}if((Wa|0)<(Va|0)){O=Va;F=Wa}else break}s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 274:{F=e+16|0;c[F>>2]=m;O=e+32|0;if((c[O>>2]|0)==287){K=ke(e,e+28|0)|0;c[r>>2]=K;Xa=K;Ya=c[n>>2]|0}else{K=O;U=c[K>>2]|0;C=c[K+4>>2]|0;K=e+24|0;c[K>>2]=U;c[K+4>>2]=C;c[O>>2]=287;Xa=U;Ya=o}l:do switch(Xa|0){case 59:case 277:case 292:case 287:case 262:case 261:case 260:{Za=0;_a=0;break}default:{Ge(e,h,0)|0;m:do if((c[r>>2]|0)==44){U=e+28|0;C=e+24|0;K=h+4|0;R=1;while(1){c[F>>2]=c[l>>2];if((c[O>>2]|0)==287)c[r>>2]=ke(e,U)|0;else{qa=O;B=c[qa+4>>2]|0;N=C;c[N>>2]=c[qa>>2];c[N+4>>2]=B;c[O>>2]=287}$a=c[n>>2]|0;Ne($a,h);if(((c[h>>2]|0)==6?(B=c[K>>2]|0,(B&256|0)==0):0)?(B|0)>=(d[$a+46>>0]|0):0){B=$a+48|0;a[B>>0]=(a[B>>0]|0)+-1<<24>>24}B=$a+48|0;N=a[B>>0]|0;qa=(N&255)+1|0;G=(c[$a>>2]|0)+78|0;if((N&255)<(d[G>>0]|0))ab=qa&255;else{if((N&255)>248)break;N=qa&255;a[G>>0]=N;ab=N}a[B>>0]=ab;Oe($a,h,(ab&255)+-1|0);Ge(e,h,0)|0;B=R+1|0;if((c[r>>2]|0)==44)R=B;else{bb=h;cb=B;break m}}re(c[$a+12>>2]|0,48351)}else{bb=h;cb=1}while(0);R=c[bb>>2]|0;if((R&-2|0)==12){switch(R|0){case 12:{R=(c[(c[Ya>>2]|0)+12>>2]|0)+(c[h+4>>2]<<2)|0;c[R>>2]=c[R>>2]&-8372225;if((cb|0)==1){R=(c[(c[Ya>>2]|0)+12>>2]|0)+(c[h+4>>2]<<2)|0;c[R>>2]=c[R>>2]&-64|43}break}case 13:{R=c[Ya>>2]|0;K=c[R+12>>2]|0;C=h+4|0;U=K+(c[C>>2]<<2)|0;c[U>>2]=c[U>>2]&8388607;U=K+(c[C>>2]<<2)|0;C=Ya+48|0;K=a[C>>0]|0;B=K&255;c[U>>2]=B<<6|c[U>>2]&-16321;U=B+1|0;B=R+78|0;do if((K&255)>=(d[B>>0]|0))if((K&255)>248)re(c[Ya+12>>2]|0,48351);else{R=U&255;a[B>>0]=R;db=R;break}else db=U&255;while(0);a[C>>0]=db;break}default:{}}Za=d[Ya+46>>0]|0;_a=-1;break l}if((cb|0)==1){Za=Re(Ya,h)|0;_a=1;break l}Ne(Ya,h);if(((c[bb>>2]|0)==6?(U=c[h+4>>2]|0,(U&256|0)==0):0)?(U|0)>=(d[Ya+46>>0]|0):0){U=Ya+48|0;a[U>>0]=(a[U>>0]|0)+-1<<24>>24}U=Ya+48|0;B=a[U>>0]|0;K=(B&255)+1|0;R=(c[Ya>>2]|0)+78|0;do if((B&255)>=(d[R>>0]|0))if((B&255)>248)re(c[Ya+12>>2]|0,48351);else{N=K&255;a[R>>0]=N;eb=N;break}else eb=K&255;while(0);a[U>>0]=eb;Oe(Ya,h,(eb&255)+-1|0);Za=d[Ya+46>>0]|0;_a=cb}}while(0);oe(Ya,Za<<6|(_a<<23)+8388608|44)|0;do if((c[r>>2]|0)==59){c[F>>2]=c[l>>2];if((c[O>>2]|0)==287){c[r>>2]=ke(e,e+28|0)|0;break}else{K=O;R=c[K+4>>2]|0;B=e+24|0;c[B>>2]=c[K>>2];c[B+4>>2]=R;c[O>>2]=287;break}}while(0);s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}case 266:case 258:{O=o+28|0;F=c[O>>2]|0;c[O>>2]=-1;O=oe(o,2147450916)|0;do if((F|0)!=-1)if((O|0)!=-1){R=c[(c[o>>2]|0)+12>>2]|0;B=O;while(1){fb=R+(B<<2)|0;gb=c[fb>>2]|0;K=(gb>>>14)+-131071|0;C=(K|0)==-1?-1:B+1+K|0;if((C|0)==-1)break;else B=C}R=F+~B|0;if((((R|0)>-1?R:0-R|0)|0)>131071)re(c[o+12>>2]|0,47972);else{c[fb>>2]=(R<<14)+2147467264|gb&16383;hb=O;break}}else hb=F;else hb=O;while(0);O=c[l>>2]|0;F=(c[r>>2]|0)==266;R=e+16|0;c[R>>2]=O;U=e+32|0;C=(c[U>>2]|0)==287;do if(F){if(C){K=ke(e,e+28|0)|0;c[r>>2]=K;ib=K}else{K=U;N=c[K>>2]|0;G=c[K+4>>2]|0;K=e+24|0;c[K>>2]=N;c[K+4>>2]=G;c[U>>2]=287;ib=N}if((ib|0)!=289)me(e,289);N=e+28|0;G=c[N>>2]|0;c[R>>2]=c[l>>2];if((c[U>>2]|0)==287){c[r>>2]=ke(e,N)|0;jb=G;break}else{N=U;K=c[N+4>>2]|0;qa=e+24|0;c[qa>>2]=c[N>>2];c[qa+4>>2]=K;c[U>>2]=287;jb=G;break}}else{if(C)c[r>>2]=ke(e,e+28|0)|0;else{G=U;K=c[G+4>>2]|0;qa=e+24|0;c[qa>>2]=c[G>>2];c[qa+4>>2]=K;c[U>>2]=287}jb=xd(c[p>>2]|0,58797,5)|0}while(0);U=c[e+56>>2]|0;C=U+12|0;R=U+16|0;F=c[R>>2]|0;K=U+20|0;if((F|0)<(c[K>>2]|0)){kb=c[C>>2]|0;lb=F}else{U=se(c[p>>2]|0,c[C>>2]|0,K,16,32767,47999)|0;c[C>>2]=U;kb=U;lb=c[R>>2]|0}c[kb+(F<<4)>>2]=jb;c[kb+(F<<4)+8>>2]=O;a[kb+(F<<4)+12>>0]=a[(c[n>>2]|0)+46>>0]|0;c[kb+(F<<4)+4>>2]=hb;c[R>>2]=lb+1;ue(e,F)|0;s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}default:{F=j+4|0;Ve(e,F);R=c[r>>2]|0;n:do if((R+-299|0)>>>0<16){c[j>>2]=0;U=c[n>>2]|0;c[h>>2]=c[F>>2];c[h+4>>2]=c[F+4>>2];c[h+8>>2]=c[F+8>>2];c[h+12>>2]=c[F+12>>2];do switch(R|0){case 299:{mb=0;break}case 300:{mb=1;break}case 301:{mb=2;break}case 302:{mb=3;break}case 305:{mb=15;break}case 303:{mb=4;break}case 304:{mb=5;break}case 314:{mb=19;break}case 306:{mb=6;break}case 307:{mb=7;break}case 308:{mb=8;break}case 309:{mb=9;break}case 310:{mb=10;break}case 311:{mb=11;break}case 313:{mb=13;break}case 312:{mb=12;break}default:mb=28}while(0);B=U+46|0;C=d[B>>0]|0;K=(d[U+48>>0]|0)-C|0;if((K|0)>0){qa=0;do{Je(e,qe(e,48496,14)|0);qa=qa+1|0}while((qa|0)!=(K|0));qa=c[n>>2]|0;G=qa+46|0;nb=d[G>>0]|0;ob=qa;pb=G}else{nb=C;ob=U;pb=B}G=K+nb|0;a[pb>>0]=G;if(K|0){qa=c[ob+20>>2]|0;N=c[(c[ob>>2]|0)+24>>2]|0;q=c[c[(c[ob+12>>2]|0)+56>>2]>>2]|0;M=(c[ob+40>>2]|0)+(G&255)|0;G=K;do{c[N+((b[q+(M-G<<1)>>1]|0)*12|0)+4>>2]=qa;G=G+-1|0}while((G|0)!=0)}G=c[l>>2]|0;c[e+16>>2]=G;qa=e+32|0;if((c[qa>>2]|0)==287){c[r>>2]=ke(e,e+28|0)|0;qb=c[l>>2]|0;rb=c[n>>2]|0}else{M=qa;q=c[M+4>>2]|0;N=e+24|0;c[N>>2]=c[M>>2];c[N+4>>2]=q;c[qa>>2]=287;qb=G;rb=ob}G=(c[p>>2]|0)+38|0;qa=(b[G>>1]|0)+1<<16>>16;b[G>>1]=qa;if((qa&65535)>200)Ce(rb,200,48307);else{We(U,mb,h);Ge(e,i,0)|0;Xe(U,mb,h,i,qb);qa=(c[p>>2]|0)+38|0;b[qa>>1]=(b[qa>>1]|0)+-1<<16>>16;Ue(c[n>>2]|0,F,h);break}}else{switch(R|0){case 44:case 61:{c[j>>2]=0;Ye(e,j,1);break n;break}default:{}}if((c[F>>2]|0)==12){qa=(c[(c[o>>2]|0)+12>>2]|0)+(c[j+8>>2]<<2)|0;c[qa>>2]=c[qa>>2]&-8372225|16384;break}else re(e,58234)}while(0);s=c[n>>2]|0;t=s+46|0;u=a[t>>0]|0;v=s+48|0;a[v>>0]=u;w=c[p>>2]|0;x=w+38|0;y=b[x>>1]|0;z=y+-1<<16>>16;b[x>>1]=z;Ia=f;return}}while(0)}function me(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=d;d=c[a+44>>2]|0;c[e>>2]=Be(a,b)|0;re(a,wd(d,48295,e)|0)}function ne(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=c[e+44>>2]|0;g=e+40|0;h=c[g>>2]|0;i=c[h>>2]|0;oe(h,8388652)|0;pe(h);j=h+20|0;k=c[j>>2]|0;if((k+1|0)>>>0>1073741823)Lc(f);l=i+12|0;m=c[l>>2]|0;n=i+48|0;o=c[n>>2]<<2;p=k<<2;k=f+12|0;q=c[k>>2]|0;r=(m|0)==0;s=q+4|0;t=Pa[c[q>>2]&3](c[s>>2]|0,m,o,p)|0;if((p|0)!=0&(t|0)==0){if(!(a[q+51>>0]|0))yc(f,4);Kc(f,1);u=Pa[c[q>>2]&3](c[s>>2]|0,m,o,p)|0;if(!u)yc(f,4);else v=u}else v=t;t=q+12|0;c[t>>2]=(r?0:0-o|0)+p+(c[t>>2]|0);c[l>>2]=v;v=c[j>>2]|0;c[n>>2]=v;if((v+1|0)>>>0>1073741823)Lc(f);n=i+20|0;l=c[n>>2]|0;t=i+52|0;p=c[t>>2]<<2;o=v<<2;v=c[k>>2]|0;r=(l|0)==0;q=v+4|0;u=Pa[c[v>>2]&3](c[q>>2]|0,l,p,o)|0;if((o|0)!=0&(u|0)==0){if(!(a[v+51>>0]|0))yc(f,4);Kc(f,1);m=Pa[c[v>>2]&3](c[q>>2]|0,l,p,o)|0;if(!m)yc(f,4);else w=m}else w=u;u=v+12|0;c[u>>2]=(r?0:0-p|0)+o+(c[u>>2]|0);c[n>>2]=w;c[t>>2]=c[j>>2];j=h+32|0;t=c[j>>2]|0;if((t+1|0)>>>0>536870911)Lc(f);w=i+8|0;n=c[w>>2]|0;u=i+44|0;o=c[u>>2]<<3;p=t<<3;t=c[k>>2]|0;r=(n|0)==0;v=t+4|0;m=Pa[c[t>>2]&3](c[v>>2]|0,n,o,p)|0;if((p|0)!=0&(m|0)==0){if(!(a[t+51>>0]|0))yc(f,4);Kc(f,1);l=Pa[c[t>>2]&3](c[v>>2]|0,n,o,p)|0;if(!l)yc(f,4);else x=l}else x=m;m=t+12|0;c[m>>2]=(r?0:0-o|0)+p+(c[m>>2]|0);c[w>>2]=x;c[u>>2]=c[j>>2];j=h+36|0;u=c[j>>2]|0;if((u+1|0)>>>0>1073741823)Lc(f);x=i+16|0;w=c[x>>2]|0;m=i+56|0;p=c[m>>2]<<2;o=u<<2;u=c[k>>2]|0;r=(w|0)==0;t=u+4|0;l=Pa[c[u>>2]&3](c[t>>2]|0,w,p,o)|0;if((o|0)!=0&(l|0)==0){if(!(a[u+51>>0]|0))yc(f,4);Kc(f,1);n=Pa[c[u>>2]&3](c[t>>2]|0,w,p,o)|0;if(!n)yc(f,4);else y=n}else y=l;l=u+12|0;c[l>>2]=(r?0:0-p|0)+o+(c[l>>2]|0);c[x>>2]=y;c[m>>2]=c[j>>2];j=h+44|0;m=b[j>>1]|0;y=m<<16>>16;if((y+1|0)>>>0>357913941)Lc(f);x=i+24|0;l=c[x>>2]|0;o=i+60|0;p=(c[o>>2]|0)*12|0;r=y*12|0;y=c[k>>2]|0;u=(l|0)==0;n=y+4|0;w=Pa[c[y>>2]&3](c[n>>2]|0,l,p,r)|0;if(m<<16>>16!=0&(w|0)==0){if(!(a[y+51>>0]|0))yc(f,4);Kc(f,1);m=Pa[c[y>>2]&3](c[n>>2]|0,l,p,r)|0;if(!m)yc(f,4);else z=m}else z=w;w=y+12|0;c[w>>2]=(u?0:0-p|0)+r+(c[w>>2]|0);c[x>>2]=z;c[o>>2]=b[j>>1];j=h+47|0;o=a[j>>0]|0;z=i+28|0;x=c[z>>2]|0;w=i+40|0;i=c[w>>2]<<3;r=(o&255)<<3;p=c[k>>2]|0;u=(x|0)==0;y=p+4|0;m=Pa[c[p>>2]&3](c[y>>2]|0,x,i,r)|0;if(o<<24>>24!=0&(m|0)==0){if(!(a[p+51>>0]|0))yc(f,4);Kc(f,1);o=Pa[c[p>>2]&3](c[y>>2]|0,x,i,r)|0;if(!o)yc(f,4);else A=o}else A=m;m=p+12|0;c[m>>2]=(u?0:0-i|0)+r+(c[m>>2]|0);c[z>>2]=A;c[w>>2]=d[j>>0];c[g>>2]=c[h+8>>2];if(((c[e+24>>2]|0)+-289|0)>>>0<2){h=c[e+28>>2]|0;qe(e,h+16|0,c[h+12>>2]|0)|0}h=f+8|0;c[h>>2]=(c[h>>2]|0)+-8;h=c[k>>2]|0;k=h+12|0;e=c[k>>2]|0;if((e|0)<=0)return;if(!(a[h+51>>0]|0)){g=h+8|0;c[g>>2]=e+1600+(c[g>>2]|0);c[k>>2]=-1600;return}else{Oc(f);return}}function oe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;d=c[a>>2]|0;e=a+28|0;f=c[e>>2]|0;g=a+20|0;h=c[g>>2]|0;do if((f|0)!=-1){i=c[d+12>>2]|0;j=f;while(1){k=i+(j<<2)|0;l=c[k>>2]|0;m=(l>>>14)+-131071|0;n=j;j=(m|0)==-1?-1:j+1+m|0;if((n|0)>0?(m=k+-4|0,o=c[m>>2]|0,((o&63)+-37|0)>>>0<5):0){p=o;q=m}else{p=l;q=k}if((p&63|0)==41){c[q>>2]=p&8372224|p>>>23<<6|40;m=h+~n|0;if((((m|0)>-1?m:0-m|0)|0)>131071){r=8;break}s=(m<<14)+2147467264|0;t=c[k>>2]&16383}else{m=h+~n|0;if((((m|0)>-1?m:0-m|0)|0)>131071){r=11;break}s=l&16383;t=(m<<14)+2147467264|0}c[k>>2]=t|s;if((j|0)==-1){r=14;break}}if((r|0)==8)re(c[a+12>>2]|0,47972);else if((r|0)==11)re(c[a+12>>2]|0,47972);else if((r|0)==14){u=c[g>>2]|0;break}}else u=h;while(0);c[e>>2]=-1;e=d+48|0;if((u|0)<(c[e>>2]|0)){v=c[d+12>>2]|0;w=u}else{u=d+12|0;h=se(c[(c[a+12>>2]|0)+44>>2]|0,c[u>>2]|0,e,4,2147483645,48287)|0;c[u>>2]=h;v=h;w=c[g>>2]|0}c[v+(w<<2)>>2]=b;b=c[g>>2]|0;w=d+52|0;v=a+12|0;if((b|0)<(c[w>>2]|0)){x=b;y=d+20|0;z=c[v>>2]|0;A=z+16|0;B=c[A>>2]|0;C=c[y>>2]|0;D=C+(x<<2)|0;c[D>>2]=B;E=c[g>>2]|0;F=E+1|0;c[g>>2]=F;return E|0}else{b=d+20|0;c[b>>2]=se(c[(c[v>>2]|0)+44>>2]|0,c[b>>2]|0,w,4,2147483645,48287)|0;x=c[g>>2]|0;y=b;z=c[v>>2]|0;A=z+16|0;B=c[A>>2]|0;C=c[y>>2]|0;D=C+(x<<2)|0;c[D>>2]=B;E=c[g>>2]|0;F=E+1|0;c[g>>2]=F;return E|0}return 0}function pe(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;f=e+16|0;g=c[f>>2]|0;h=e+12|0;i=c[h>>2]|0;do if(c[g>>2]|0?a[g+9>>0]|0:0){j=e+28|0;k=c[j>>2]|0;c[j>>2]=-1;l=oe(e,2147450916)|0;do if((k|0)!=-1){if((l|0)==-1){m=d[g+8>>0]|0;n=k;break}o=c[(c[e>>2]|0)+12>>2]|0;p=l;while(1){q=o+(p<<2)|0;r=c[q>>2]|0;s=(r>>>14)+-131071|0;t=(s|0)==-1?-1:p+1+s|0;if((t|0)==-1)break;else p=t}o=k+~p|0;if((((o|0)>-1?o:0-o|0)|0)>131071)re(c[h>>2]|0,47972);else{c[q>>2]=(o<<14)+2147467264|r&16383;u=11;break}}else u=11;while(0);if((u|0)==11){k=d[g+8>>0]|0;if((l|0)==-1){c[e+24>>2]=c[e+20>>2];break}else{m=k;n=l}}k=c[(c[e>>2]|0)+12>>2]|0;o=(m<<6)+64&16320;t=n;do{s=k+(t<<2)|0;v=c[s>>2]|0;w=(v>>>14)+-131071|0;c[s>>2]=v&-16321|o;t=(w|0)==-1?-1:t+1+w|0}while((t|0)!=-1);c[e+24>>2]=c[e+20>>2];t=c[j>>2]|0;if((t|0)==-1){c[j>>2]=n;break}o=t;while(1){x=k+(o<<2)|0;y=c[x>>2]|0;t=(y>>>14)+-131071|0;l=(t|0)==-1?-1:o+1+t|0;if((l|0)==-1)break;else o=l}k=n+~o|0;if((((k|0)>-1?k:0-k|0)|0)>131071)re(c[h>>2]|0,47972);else{c[x>>2]=(k<<14)+2147467264|y&16383;break}}while(0);if(a[g+10>>0]|0){y=i+44|0;x=bd(c[y>>2]|0,58797,5)|0;n=i+56|0;m=c[n>>2]|0;r=m+24|0;q=i+40|0;k=c[q>>2]|0;j=c[k+20>>2]|0;l=m+28|0;t=c[l>>2]|0;w=m+32|0;if((t|0)<(c[w>>2]|0)){z=c[r>>2]|0;A=k;B=t;C=m}else{m=se(c[y>>2]|0,c[r>>2]|0,w,16,32767,47999)|0;c[r>>2]=m;z=m;A=c[q>>2]|0;B=c[l>>2]|0;C=c[n>>2]|0}c[z+(t<<4)>>2]=x;c[z+(t<<4)+8>>2]=0;a[z+(t<<4)+12>>0]=a[A+46>>0]|0;c[z+(t<<4)+4>>2]=j;c[l>>2]=B+1;B=(c[C+24>>2]|0)+(t<<4)|0;t=b[(c[A+16>>2]|0)+6>>1]|0;A=C+16|0;l=c[A>>2]|0;if((l|0)>(t|0)){j=C+12|0;C=l;l=t;while(1){t=c[(c[j>>2]|0)+(l<<4)>>2]|0;z=c[B>>2]|0;x=a[t+4>>0]|0;do if(x<<24>>24==(a[z+4>>0]|0)){if(x<<24>>24==4){if((t|0)!=(z|0)){u=35;break}}else{n=c[t+12>>2]|0;if((t|0)!=(z|0)){if((n|0)!=(c[z+12>>2]|0)){u=35;break}if(tt(t+16|0,z+16|0,n)|0){u=35;break}}}te(i,l,B);D=c[A>>2]|0;E=l}else u=35;while(0);if((u|0)==35){u=0;D=C;E=l+1|0}if((E|0)<(D|0)){C=D;l=E}else break}}}E=c[g>>2]|0;c[f>>2]=E;f=g+8|0;l=a[f>>0]|0;D=e+46|0;C=a[D>>0]|0;u=C&255;A=c[(c[h>>2]|0)+56>>2]|0;B=A+4|0;c[B>>2]=(l&255)-u+(c[B>>2]|0);if((l&255)<(C&255)){B=c[e+20>>2]|0;j=c[e+40>>2]|0;z=c[(c[e>>2]|0)+24>>2]|0;t=c[A>>2]|0;x=u;while(1){u=(x&255)+-1<<24>>24;c[z+((b[t+(j+(u&255)<<1)>>1]|0)*12|0)+8>>2]=B;if((u&255)>(l&255))x=x+-1|0;else break}a[D>>0]=l;F=l}else F=C;a[e+48>>0]=F;F=c[i+56>>2]|0;c[F+28>>2]=b[g+4>>1];C=b[g+6>>1]|0;if(!E)if((c[F+16>>2]|0)>(C|0))ve(i,(c[F+12>>2]|0)+(C<<4)|0);else return;F=A+16|0;if((c[F>>2]|0)<=(C|0))return;i=A+12|0;A=g+9|0;g=l;l=C;while(1){C=c[i>>2]|0;E=C+(l<<4)+12|0;D=g&255;if((d[E>>0]|0)>(g&255)){if(a[A>>0]|0?(x=c[C+(l<<4)+4>>2]|0,(x|0)!=-1):0){C=c[(c[e>>2]|0)+12>>2]|0;B=(D<<6)+64&16320;D=x;do{x=C+(D<<2)|0;j=c[x>>2]|0;t=(j>>>14)+-131071|0;c[x>>2]=j&-16321|B;D=(t|0)==-1?-1:D+1+t|0}while((D|0)!=-1)}a[E>>0]=g}D=l+((ue(c[h>>2]|0,l)|0)==0&1)|0;if((D|0)>=(c[F>>2]|0))break;g=a[f>>0]|0;l=D}return}function qe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=c[b+44>>2]|0;g=xd(f,d,e)|0;e=f+8|0;d=c[e>>2]|0;c[e>>2]=d+8;c[d>>2]=g;c[d+4>>2]=(a[g+4>>0]|64)&255;d=c[(c[b+40>>2]|0)+4>>2]|0;b=(c[e>>2]|0)+-8|0;h=Mc(d,b)|0;if((h|0)==2217396)i=Nc(f,d,b)|0;else i=h;h=i+4|0;do if(!(c[h>>2]|0)){c[i>>2]=1;c[h>>2]=1;b=c[f+12>>2]|0;d=b+12|0;j=c[d>>2]|0;if((j|0)>0)if(!(a[b+51>>0]|0)){k=b+8|0;c[k>>2]=j+1600+(c[k>>2]|0);c[d>>2]=-1600;l=g;break}else{Oc(f);l=g;break}else l=g}else l=c[i+8>>2]|0;while(0);c[e>>2]=(c[e>>2]|0)+-8;return l|0}function re(a,b){a=a|0;b=b|0;Ae(a,b,c[a+24>>2]|0)}function se(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=Ia;Ia=Ia+16|0;j=i;k=c[e>>2]|0;if((k|0)>=((g|0)/2|0|0))if((k|0)<(g|0))l=g;else{c[j>>2]=h;c[j+4>>2]=g;Ac(b,48164,j)}else{j=k<<1;l=(j|0)>4?j:4}if((l+1|0)>>>0>(4294967293/(f>>>0)|0)>>>0)Lc(b);j=B(k,f)|0;k=B(l,f)|0;f=c[b+12>>2]|0;g=(d|0)==0;h=f+4|0;m=Pa[c[f>>2]&3](c[h>>2]|0,d,j,k)|0;if(!((k|0)!=0&(m|0)==0)){n=m;o=f+12|0;p=c[o>>2]|0;q=0-j|0;r=g?0:q;s=k+r|0;t=s+p|0;c[o>>2]=t;c[e>>2]=l;Ia=i;return n|0}if(!(a[f+51>>0]|0))yc(b,4);Kc(b,1);m=Pa[c[f>>2]&3](c[h>>2]|0,d,j,k)|0;if(!m)yc(b,4);else{n=m;o=f+12|0;p=c[o>>2]|0;q=0-j|0;r=g?0:q;s=k+r|0;t=s+p|0;c[o>>2]=t;c[e>>2]=l;Ia=i;return n|0}return 0}function te(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=Ia;Ia=Ia+16|0;i=h;j=c[e+40>>2]|0;k=c[e+56>>2]|0;l=k+12|0;m=c[l>>2]|0;n=a[m+(f<<4)+12>>0]|0;if((n&255)<(d[g+12>>0]|0)){o=c[(c[(c[j>>2]|0)+24>>2]|0)+((b[(c[c[(c[j+12>>2]|0)+56>>2]>>2]|0)+((c[j+40>>2]|0)+(n&255)<<1)>>1]|0)*12|0)>>2]|0;n=c[e+44>>2]|0;p=(c[m+(f<<4)>>2]|0)+16|0;q=m+(f<<4)+8|0;r=we(c[q>>2]|0)|0;s=xe(c[q>>2]|0)|0;c[i>>2]=p;c[i+4>>2]=r;c[i+8>>2]=s;c[i+12>>2]=o+16;ye(e,wd(n,48099,i)|0)}ze(j,c[m+(f<<4)+4>>2]|0,c[g+4>>2]|0);g=k+16|0;k=(c[g>>2]|0)+-1|0;if((k|0)<=(f|0)){t=k;c[g>>2]=t;Ia=h;return}k=f;do{f=c[l>>2]|0;m=f+(k<<4)|0;k=k+1|0;j=f+(k<<4)|0;c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];c[m+12>>2]=c[j+12>>2];j=(c[g>>2]|0)+-1|0}while((k|0)<(j|0));t=j;c[g>>2]=t;Ia=h;return}function ue(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=c[e+40>>2]|0;h=c[e+56>>2]|0;i=c[h+12>>2]|0;j=b[(c[g+16>>2]|0)+4>>1]|0;k=c[h+28>>2]|0;if((k|0)<=(j|0)){l=0;return l|0}m=c[h+24>>2]|0;h=c[i+(f<<4)>>2]|0;n=a[h+4>>0]|0;o=h+12|0;p=h+16|0;q=n<<24>>24==4;r=j;a:while(1){s=m+(r<<4)|0;j=c[s>>2]|0;do if((a[j+4>>0]|0)==n<<24>>24){if(q)if((j|0)==(h|0))break a;else break;t=c[j+12>>2]|0;if((j|0)==(h|0))break a;if((t|0)==(c[o>>2]|0)?(tt(j+16|0,p,t)|0)==0:0)break a}while(0);j=r+1|0;if((j|0)<(k|0))r=j;else{l=0;u=15;break}}if((u|0)==15)return l|0;u=a[m+(r<<4)+12>>0]|0;if((d[i+(f<<4)+12>>0]|0)>(u&255)?(r=c[i+(f<<4)+4>>2]|0,(r|0)!=-1):0){i=c[(c[g>>2]|0)+12>>2]|0;g=((u&255)<<6)+64&16320;u=r;do{r=i+(u<<2)|0;m=c[r>>2]|0;k=(m>>>14)+-131071|0;c[r>>2]=m&-16321|g;u=(k|0)==-1?-1:u+1+k|0}while((u|0)!=-1)}te(e,f,s);l=1;return l|0}function ve(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=Ia;Ia=Ia+16|0;f=e;e=c[d>>2]|0;if((a[e+4>>0]|0)==4)g=(a[e+6>>0]|0)==0?48012:48065;else g=48012;h=c[b+44>>2]|0;i=d+8|0;d=we(c[i>>2]|0)|0;j=xe(c[i>>2]|0)|0;c[f>>2]=e+16;c[f+4>>2]=d;c[f+8>>2]=j;ye(b,wd(h,g,f)|0)}function we(a){a=a|0;return ($g(a,0)|0)<<16|0}function xe(a){a=a|0;var b=0,d=0;b=Ia;Ia=Ia+16|0;d=b;$g(a,d)|0;Ia=b;return c[d>>2]<<16|0}function ye(a,b){a=a|0;b=b|0;c[a+24>>2]=0;re(a,b)}function ze(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((c[a+20>>2]|0)==(d|0)){c[a+24>>2]=d;e=a+28|0;if((b|0)==-1)return;f=c[e>>2]|0;if((f|0)==-1){c[e>>2]=b;return}e=c[(c[a>>2]|0)+12>>2]|0;g=f;while(1){h=e+(g<<2)|0;i=c[h>>2]|0;f=(i>>>14)+-131071|0;j=(f|0)==-1?-1:g+1+f|0;if((j|0)==-1)break;else g=j}e=~g+b|0;if((((e|0)>-1?e:0-e|0)|0)>131071)re(c[a+12>>2]|0,47972);c[h>>2]=(e<<14)+2147467264|i&16383;return}if((b|0)==-1)return;i=c[(c[a>>2]|0)+12>>2]|0;e=b;while(1){b=i+(e<<2)|0;h=c[b>>2]|0;g=(h>>>14)+-131071|0;j=e;e=(g|0)==-1?-1:e+1+g|0;if((j|0)>0?(g=b+-4|0,f=c[g>>2]|0,((f&63)+-37|0)>>>0<5):0){k=f;l=g}else{k=h;l=b}if((k&63|0)!=41){g=~j+d|0;if((((g|0)>-1?g:0-g|0)|0)>131071){m=20;break}else{n=h;o=g}}else{c[l>>2]=k&8372224|k>>>23<<6|40;g=~j+d|0;if((((g|0)>-1?g:0-g|0)|0)>131071){m=17;break}n=c[b>>2]|0;o=g}c[b>>2]=n&16383|(o<<14)+2147467264;if((e|0)==-1){m=22;break}}if((m|0)==17)re(c[a+12>>2]|0,47972);else if((m|0)==20)re(c[a+12>>2]|0,47972);else if((m|0)==22)return}function Ae(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;f=Ia;Ia=Ia+96|0;g=f+88|0;h=f+80|0;i=f+64|0;j=f;f=(c[b+60>>2]|0)+16|0;k=bu(f)|0;a:do switch(a[f>>0]|0){case 61:{l=f+1|0;if(k>>>0>60){m=j;n=l;o=m+59|0;do{a[m>>0]=a[n>>0]|0;m=m+1|0;n=n+1|0}while((m|0)<(o|0));a[j+59>>0]=0;break a}else{Vv(j|0,l|0,k|0)|0;break a}break}case 64:{if(k>>>0>60){a[j>>0]=a[74024]|0;a[j+1>>0]=a[74025]|0;a[j+2>>0]=a[74026]|0;m=j+3|0;n=f+1+k+-57|0;o=m+57|0;do{a[m>>0]=a[n>>0]|0;m=m+1|0;n=n+1|0}while((m|0)<(o|0));break a}else{Vv(j|0,f+1|0,k|0)|0;break a}break}default:{l=nu(f,10)|0;m=j;n=47837;o=m+9|0;do{a[m>>0]=a[n>>0]|0;m=m+1|0;n=n+1|0}while((m|0)<(o|0));p=j+9|0;q=(l|0)==0;if(k>>>0<45&q){Vv(p|0,f|0,k|0)|0;r=p+k|0}else{s=q?k:l-f|0;q=s>>>0<45?s:45;Vv(p|0,f|0,q|0)|0;s=p+q|0;a[s>>0]=a[74024]|0;a[s+1>>0]=a[74025]|0;a[s+2>>0]=a[74026]|0;r=s+3|0};a[r>>0]=a[47847]|0;a[r+1>>0]=a[47848]|0;a[r+2>>0]=a[47849]|0}}while(0);r=b+44|0;f=c[r>>2]|0;k=c[b+4>>2]|0;c[i>>2]=j;c[i+4>>2]=k;c[i+8>>2]=d;d=wd(f,48190,i)|0;if(!e){t=c[r>>2]|0;yc(t,3)}i=c[r>>2]|0;if((e+-288|0)>>>0<3){f=b+52|0;k=c[f>>2]|0;j=k+4|0;n=c[j>>2]|0;m=n+1|0;o=k+8|0;s=c[o>>2]|0;if(m>>>0>s>>>0){if(s>>>0>2147483645)Ae(b,48200,0);q=s<<1;if((q|0)==-2)Lc(i);p=c[k>>2]|0;u=c[i+12>>2]|0;v=(p|0)==0;w=u+4|0;x=Pa[c[u>>2]&3](c[w>>2]|0,p,s,q)|0;if((q|0)!=0&(x|0)==0){if(!(a[u+51>>0]|0))yc(i,4);Kc(i,1);y=Pa[c[u>>2]&3](c[w>>2]|0,p,s,q)|0;if(!y)yc(i,4);else z=y}else z=x;x=u+12|0;c[x>>2]=(v?0:0-s|0)+q+(c[x>>2]|0);c[k>>2]=z;c[o>>2]=q;q=c[j>>2]|0;A=z;B=q;C=q+1|0}else{A=c[k>>2]|0;B=n;C=m}c[j>>2]=C;a[A+B>>0]=0;B=c[r>>2]|0;c[h>>2]=c[c[f>>2]>>2];D=wd(B,48225,h)|0}else D=Be(b,e)|0;c[g>>2]=d;c[g+4>>2]=D;wd(i,48230,g)|0;t=c[r>>2]|0;yc(t,3)}function Be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=Ia;Ia=Ia+128|0;e=d+112|0;f=d+104|0;g=d+96|0;h=d+88|0;i=d+80|0;j=d+72|0;k=d+64|0;l=d+56|0;m=d+48|0;n=d+40|0;o=d+32|0;p=d+24|0;q=d+16|0;r=d+8|0;s=d;do switch(b|0){case 38:{t=c[a+44>>2]|0;c[s>>2]=69674;u=wd(t,48225,s)|0;Ia=d;return u|0}case 124:{t=c[a+44>>2]|0;c[r>>2]=69940;u=wd(t,48225,r)|0;Ia=d;return u|0}case 295:{t=c[a+44>>2]|0;c[q>>2]=70142;u=wd(t,48225,q)|0;Ia=d;return u|0}case 290:{t=c[a+44>>2]|0;c[p>>2]=70456;u=wd(t,48225,p)|0;Ia=d;return u|0}case 291:{t=c[a+44>>2]|0;c[o>>2]=70580;u=wd(t,48225,o)|0;Ia=d;return u|0}case 292:{t=c[a+44>>2]|0;c[n>>2]=70785;u=wd(t,48225,n)|0;Ia=d;return u|0}case 293:{t=c[a+44>>2]|0;c[m>>2]=70936;u=wd(t,48225,m)|0;Ia=d;return u|0}case 294:{t=c[a+44>>2]|0;c[l>>2]=71044;u=wd(t,48225,l)|0;Ia=d;return u|0}case 126:{t=c[a+44>>2]|0;c[k>>2]=96848;u=wd(t,48225,k)|0;Ia=d;return u|0}case 92:{t=c[a+44>>2]|0;c[j>>2]=73119;u=wd(t,48225,j)|0;Ia=d;return u|0}case 64:{t=c[a+44>>2]|0;c[i>>2]=80871;u=wd(t,48225,i)|0;Ia=d;return u|0}case 296:{t=c[a+44>>2]|0;c[h>>2]=48241;u=wd(t,48225,h)|0;Ia=d;return u|0}case 36:{t=c[a+44>>2]|0;c[g>>2]=80873;u=wd(t,48225,g)|0;Ia=d;return u|0}default:{if((b|0)<257){t=c[a+44>>2]|0;c[f>>2]=b;u=wd(t,48244,f)|0;Ia=d;return u|0}t=c[656+(b+-257<<2)>>2]|0;if((b|0)>=287){u=t;Ia=d;return u|0}v=c[a+44>>2]|0;c[e>>2]=t;u=wd(v,48225,e)|0;Ia=d;return u|0}}while(0);return 0}function Ce(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=Ia;Ia=Ia+32|0;f=e+8|0;g=e;h=e+20|0;e=a+12|0;i=c[(c[e>>2]|0)+44>>2]|0;j=c[(c[a>>2]|0)+64>>2]|0;if(!j)k=48764;else{a=($g(j,0)|0)<<16;$g(j,h)|0;j=c[h>>2]<<16;c[g>>2]=a;c[g+4>>2]=j;k=wd(i,48735,g)|0}c[f>>2]=d;c[f+4>>2]=b<<16;c[f+8>>2]=k;k=wd(i,48778,f)|0;re(c[e>>2]|0,k)}function De(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;e=Ia;Ia=Ia+32|0;f=e+16|0;g=e;h=b+4|0;i=c[h>>2]|0;j=b+40|0;k=c[j>>2]|0;l=b+28|0;c[l>>2]=xd(c[b+44>>2]|0,80056,5)|0;m=b+24|0;c[m>>2]=289;Qe(b,f);Ne(k,f);if(((c[f>>2]|0)==6?(n=c[f+4>>2]|0,(n&256|0)==0):0)?(n|0)>=(d[k+46>>0]|0|0):0){n=k+48|0;a[n>>0]=(a[n>>0]|0)+-1<<24>>24}n=k+48|0;o=a[n>>0]|0;p=(o&255)+1|0;q=(c[k>>2]|0)+78|0;do if((o&255)>=(d[q>>0]|0))if((o&255)>248)re(c[k+12>>2]|0,48351);else{r=p&255;a[q>>0]=r;s=r;break}else s=p&255;while(0);a[n>>0]=s;Oe(k,f,(s&255)+-1|0);a:do switch(c[m>>2]|0){case 287:case 292:{c[g>>2]=0;break}default:{Ge(b,g,0)|0;b:do if((c[m>>2]|0)==44){s=b+16|0;p=b+32|0;q=b+24|0;o=g+4|0;while(1){c[s>>2]=c[h>>2];if((c[p>>2]|0)==287)c[m>>2]=ke(b,l)|0;else{r=p;t=c[r+4>>2]|0;u=q;c[u>>2]=c[r>>2];c[u+4>>2]=t;c[p>>2]=287}v=c[j>>2]|0;Ne(v,g);if(((c[g>>2]|0)==6?(t=c[o>>2]|0,(t&256|0)==0):0)?(t|0)>=(d[v+46>>0]|0|0):0){t=v+48|0;a[t>>0]=(a[t>>0]|0)+-1<<24>>24}t=v+48|0;u=a[t>>0]|0;r=(u&255)+1|0;w=(c[v>>2]|0)+78|0;if((u&255)<(d[w>>0]|0))x=r&255;else{if((u&255)>248)break;u=r&255;a[w>>0]=u;x=u}a[t>>0]=x;Oe(v,g,(x&255)+-1|0);Ge(b,g,0)|0;if((c[m>>2]|0)!=44){y=g;break b}}re(c[v+12>>2]|0,48351)}else y=g;while(0);switch(c[y>>2]|0){case 12:{o=(c[(c[k>>2]|0)+12>>2]|0)+(c[g+4>>2]<<2)|0;c[o>>2]=c[o>>2]&-8372225;break a;break}case 13:break;default:break a}o=c[k>>2]|0;p=c[o+12>>2]|0;q=g+4|0;s=p+(c[q>>2]<<2)|0;c[s>>2]=c[s>>2]&8388607;s=p+(c[q>>2]<<2)|0;q=a[n>>0]|0;p=q&255;c[s>>2]=p<<6|c[s>>2]&-16321;s=p+1|0;p=o+78|0;do if((q&255)>=(d[p>>0]|0))if((q&255)>248)re(c[k+12>>2]|0,48351);else{o=s&255;a[p>>0]=o;z=o;break}else z=s&255;while(0);a[n>>0]=z}}while(0);do if((c[m>>2]|0)==287){c[b+16>>2]=c[h>>2];z=b+32|0;if((c[z>>2]|0)==287){c[m>>2]=ke(b,l)|0;break}else{y=z;v=c[y+4>>2]|0;x=b+24|0;c[x>>2]=c[y>>2];c[x+4>>2]=v;c[z>>2]=287;break}}else Fe(b,292,63,i);while(0);b=c[f+4>>2]|0;switch(c[g>>2]|0){case 0:break;case 13:case 12:{A=0;B=b<<6;C=B|A;D=C|32810;oe(k,D)|0;E=c[k>>2]|0;F=E+20|0;G=c[F>>2]|0;H=k+20|0;I=c[H>>2]|0;J=I+-1|0;K=G+(J<<2)|0;c[K>>2]=i;L=b+1|0;M=L&255;a[n>>0]=M;Ia=e;return}default:N=42}if((N|0)==42){Ne(k,g);if(((c[g>>2]|0)==6?(N=c[g+4>>2]|0,(N&256|0)==0):0)?(N|0)>=(d[k+46>>0]|0|0):0){N=(a[n>>0]|0)+-1<<24>>24;a[n>>0]=N;O=N}else O=a[n>>0]|0;N=(O&255)+1|0;f=(c[k>>2]|0)+78|0;do if((O&255)>=(d[f>>0]|0))if((O&255)>248)re(c[k+12>>2]|0,48351);else{l=N&255;a[f>>0]=l;P=l;break}else P=N&255;while(0);a[n>>0]=P;Oe(k,g,(P&255)+-1|0)}A=((b^511)+(d[n>>0]|0)<<23)+8388608|0;B=b<<6;C=B|A;D=C|32810;oe(k,D)|0;E=c[k>>2]|0;F=E+20|0;G=c[F>>2]|0;H=k+20|0;I=c[H>>2]|0;J=I+-1|0;K=G+(J<<2)|0;c[K>>2]=i;L=b+1|0;M=L&255;a[n>>0]=M;Ia=e;return}function Ee(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;f=Ia;Ia=Ia+32|0;g=f+16|0;h=f;i=d+40|0;j=c[i>>2]|0;k=d+4|0;l=c[k>>2]|0;m=d+24|0;n=(c[m>>2]|0)==267&1;o=d+16|0;c[o>>2]=l;p=d+32|0;if((c[p>>2]|0)==287){q=ke(d,d+28|0)|0;c[m>>2]=q;r=q}else{q=p;s=c[q>>2]|0;t=c[q+4>>2]|0;q=d+24|0;c[q>>2]=s;c[q+4>>2]=t;c[p>>2]=287;r=s}s=d+20|0;c[s>>2]=(r|0)==40?1:-1;Ge(d,h,0)|0;r=c[m>>2]|0;switch(r|0){case 287:case 259:case 275:{u=0;break}default:if(!(c[s>>2]|0))u=(l|0)==(c[k>>2]|0)&1;else u=0}l=u&n;a:do if(!l)switch(r|0){case 259:{c[o>>2]=c[k>>2];if((c[p>>2]|0)==287){n=ke(d,d+28|0)|0;c[m>>2]=n;v=n;break a}else{n=p;u=c[n>>2]|0;s=c[n+4>>2]|0;n=d+24|0;c[n>>2]=u;c[n+4>>2]=s;c[p>>2]=287;v=u;break a}break}case 275:{c[o>>2]=c[k>>2];if((c[p>>2]|0)==287){u=ke(d,d+28|0)|0;c[m>>2]=u;v=u;break a}else{u=p;s=c[u>>2]|0;n=c[u+4>>2]|0;u=d+24|0;c[u>>2]=s;c[u+4>>2]=n;c[p>>2]=287;v=s;break a}break}default:me(d,275)}else{s=d+12|0;c[s>>2]=(c[s>>2]|0)+1;v=r}while(0);b:do switch(v|0){case 258:case 266:{$e(c[i>>2]|0,h);a[g+10>>0]=0;a[g+8>>0]=a[j+46>>0]|0;r=j+12|0;s=c[(c[r>>2]|0)+56>>2]|0;b[g+4>>1]=c[s+28>>2];b[g+6>>1]=c[s+16>>2];a[g+9>>0]=0;s=j+16|0;c[g>>2]=c[s>>2];c[s>>2]=g;s=c[h+8>>2]|0;n=c[k>>2]|0;u=(c[m>>2]|0)==266;c[o>>2]=n;t=(c[p>>2]|0)==287;do if(u){if(t){q=ke(d,d+28|0)|0;c[m>>2]=q;w=q}else{q=p;x=c[q>>2]|0;y=c[q+4>>2]|0;q=d+24|0;c[q>>2]=x;c[q+4>>2]=y;c[p>>2]=287;w=x}if((w|0)!=289)me(d,289);x=d+28|0;y=c[x>>2]|0;c[o>>2]=c[k>>2];if((c[p>>2]|0)==287){c[m>>2]=ke(d,x)|0;z=y;break}else{x=p;q=c[x+4>>2]|0;A=d+24|0;c[A>>2]=c[x>>2];c[A+4>>2]=q;c[p>>2]=287;z=y;break}}else{if(t)c[m>>2]=ke(d,d+28|0)|0;else{y=p;q=c[y+4>>2]|0;A=d+24|0;c[A>>2]=c[y>>2];c[A+4>>2]=q;c[p>>2]=287}z=xd(c[d+44>>2]|0,58797,5)|0}while(0);t=c[d+56>>2]|0;u=t+12|0;q=t+16|0;A=c[q>>2]|0;y=t+20|0;if((A|0)<(c[y>>2]|0)){B=c[u>>2]|0;C=A}else{t=se(c[d+44>>2]|0,c[u>>2]|0,y,16,32767,47999)|0;c[u>>2]=t;B=t;C=c[q>>2]|0}c[B+(A<<4)>>2]=z;c[B+(A<<4)+8>>2]=n;a[B+(A<<4)+12>>0]=a[(c[i>>2]|0)+46>>0]|0;c[B+(A<<4)+4>>2]=s;c[q>>2]=C+1;ue(d,A)|0;c:while(1){switch(c[m>>2]|0){case 292:case 287:case 262:case 261:case 260:{D=37;break c;break}case 286:case 59:break;default:break c}le(d)}if((D|0)==37){pe(j);Ia=f;return l|0}s=j+28|0;n=c[s>>2]|0;c[s>>2]=-1;s=oe(j,2147450916)|0;if((n|0)!=-1)if((s|0)!=-1){A=c[(c[j>>2]|0)+12>>2]|0;q=s;while(1){E=A+(q<<2)|0;F=c[E>>2]|0;t=(F>>>14)+-131071|0;u=(t|0)==-1?-1:q+1+t|0;if((u|0)==-1)break;else q=u}A=n+~q|0;if((((A|0)>-1?A:0-A|0)|0)>131071)re(c[r>>2]|0,47972);else{c[E>>2]=(A<<14)+2147467264|F&16383;G=s;break b}}else G=n;else G=s;break}default:{He(c[i>>2]|0,h);a[g+10>>0]=0;a[g+8>>0]=a[j+46>>0]|0;A=c[(c[j+12>>2]|0)+56>>2]|0;b[g+4>>1]=c[A+28>>2];b[g+6>>1]=c[A+16>>2];a[g+9>>0]=0;A=j+16|0;c[g>>2]=c[A>>2];c[A>>2]=g;G=c[h+12>>2]|0}}while(0);d:do{h=c[m>>2]|0;switch(h|0){case 277:case 292:case 287:case 262:case 261:case 260:{break d;break}default:{}}le(d)}while((h|0)!=274);pe(j);d=j+28|0;do if((c[m>>2]&-2|0)==260){h=c[d>>2]|0;c[d>>2]=-1;g=oe(j,2147450916)|0;do if((h|0)!=-1)if((g|0)!=-1){i=c[(c[j>>2]|0)+12>>2]|0;F=g;while(1){H=i+(F<<2)|0;I=c[H>>2]|0;E=(I>>>14)+-131071|0;C=(E|0)==-1?-1:F+1+E|0;if((C|0)==-1)break;else F=C}i=h+~F|0;if((((i|0)>-1?i:0-i|0)|0)>131071)re(c[j+12>>2]|0,47972);else{c[H>>2]=(i<<14)+2147467264|I&16383;D=57;break}}else J=h;else D=57;while(0);if((D|0)==57)if((g|0)==-1)break;else J=g;h=c[e>>2]|0;if((h|0)==-1){c[e>>2]=J;break}s=c[(c[j>>2]|0)+12>>2]|0;n=h;while(1){K=s+(n<<2)|0;L=c[K>>2]|0;h=(L>>>14)+-131071|0;r=(h|0)==-1?-1:n+1+h|0;if((r|0)==-1)break;else n=r}s=J+~n|0;if((((s|0)>-1?s:0-s|0)|0)>131071)re(c[j+12>>2]|0,47972);else{c[K>>2]=(s<<14)+2147467264|L&16383;break}}while(0);c[j+24>>2]=c[j+20>>2];if((G|0)==-1){Ia=f;return l|0}L=c[d>>2]|0;if((L|0)==-1){c[d>>2]=G;Ia=f;return l|0}d=c[(c[j>>2]|0)+12>>2]|0;K=L;while(1){M=d+(K<<2)|0;N=c[M>>2]|0;L=(N>>>14)+-131071|0;J=(L|0)==-1?-1:K+1+L|0;if((J|0)==-1)break;else K=J}d=G+~K|0;if((((d|0)>-1?d:0-d|0)|0)>131071)re(c[j+12>>2]|0,47972);c[M>>2]=(d<<14)+2147467264|N&16383;Ia=f;return l|0}function Fe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=Ia;Ia=Ia+16|0;g=f;h=a+24|0;i=c[a+4>>2]|0;if((c[h>>2]|0)!=(b|0))if((i|0)==(e|0))me(a,b);else{j=c[a+44>>2]|0;k=Be(a,b)|0;b=Be(a,d)|0;d=we(e)|0;l=xe(e)|0;c[g>>2]=k;c[g+4>>2]=b;c[g+8>>2]=d;c[g+12>>2]=l;re(a,wd(j,48689,g)|0)}c[a+16>>2]=i;i=a+32|0;if((c[i>>2]|0)==287){c[h>>2]=ke(a,a+28|0)|0;Ia=f;return}else{h=i;g=c[h+4>>2]|0;j=a+24|0;c[j>>2]=c[h>>2];c[j+4>>2]=g;c[i>>2]=287;Ia=f;return}}function Ge(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;h=Ia;Ia=Ia+16|0;i=h;j=e+40|0;k=c[j>>2]|0;l=e+44|0;m=(c[l>>2]|0)+38|0;n=(b[m>>1]|0)+1<<16>>16;b[m>>1]=n;if((n&65535)>200)Ce(k,200,48307);n=e+24|0;a:do switch(c[n>>2]|0){case 271:{o=1;p=10;break}case 45:{o=0;p=10;break}case 35:{o=2;p=10;break}case 126:{o=14;p=10;break}case 64:{o=16;p=10;break}case 37:{o=17;p=10;break}case 36:{o=18;p=10;break}case 288:{c[f+8>>2]=-1;c[f+12>>2]=-1;c[f>>2]=5;m=f+4|0;c[m>>2]=0;c[m>>2]=c[e+28>>2];p=29;break}case 290:{m=c[e+28>>2]|0;c[i>>2]=m;c[i+4>>2]=(a[m+4>>0]|64)&255;m=Le(k,i,i)|0;c[f+8>>2]=-1;c[f+12>>2]=-1;c[f>>2]=4;c[f+4>>2]=m;p=29;break}case 270:{c[f+8>>2]=-1;c[f+12>>2]=-1;c[f>>2]=1;c[f+4>>2]=0;p=29;break}case 276:{c[f+8>>2]=-1;c[f+12>>2]=-1;c[f>>2]=2;c[f+4>>2]=0;p=29;break}case 263:{c[f+8>>2]=-1;c[f+12>>2]=-1;c[f>>2]=3;c[f+4>>2]=0;p=29;break}case 280:{if(!(a[(c[k>>2]|0)+77>>0]|0))re(e,48646);else{m=oe(k,8388659)|0;c[f+8>>2]=-1;c[f+12>>2]=-1;c[f>>2]=13;c[f+4>>2]=m;p=29;break a}break}case 123:{df(e,f);p=32;break}case 265:{m=e+4|0;q=c[m>>2]|0;c[e+16>>2]=q;r=e+32|0;if((c[r>>2]|0)==287){c[n>>2]=ke(e,e+28|0)|0;s=c[m>>2]|0}else{m=r;t=c[m+4>>2]|0;u=e+24|0;c[u>>2]=c[m>>2];c[u+4>>2]=t;c[r>>2]=287;s=q}Te(e,f,0,s);p=32;break}case 291:{De(e);q=(d[(c[j>>2]|0)+48>>0]|0)+-1|0;c[f+8>>2]=-1;c[f+12>>2]=-1;c[f>>2]=6;c[f+4>>2]=q;p=32;break}default:{Ve(e,f);p=32}}while(0);do if((p|0)==10){s=c[e+4>>2]|0;c[e+16>>2]=s;k=e+32|0;if((c[k>>2]|0)==287)c[n>>2]=ke(e,e+28|0)|0;else{q=k;r=c[q+4>>2]|0;t=e+24|0;c[t>>2]=c[q>>2];c[t+4>>2]=r;c[k>>2]=287}Ge(e,f,18)|0;gf(c[j>>2]|0,o,f,s);p=32}else if((p|0)==29){c[e+16>>2]=c[e+4>>2];s=e+32|0;if((c[s>>2]|0)==287){k=ke(e,e+28|0)|0;c[n>>2]=k;v=k;break}else{k=s;r=c[k+4>>2]|0;t=e+24|0;c[t>>2]=c[k>>2];c[t+4>>2]=r;c[s>>2]=287;p=32;break}}while(0);if((p|0)==32)v=c[n>>2]|0;do switch(v|0){case 43:{w=0;break}case 45:{w=1;break}case 42:{w=2;break}case 47:{w=3;break}case 37:{w=4;break}case 94:{w=5;break}case 38:{w=6;break}case 124:{w=7;break}case 293:{w=8;break}case 126:{w=8;break}case 294:{w=9;break}case 295:{w=10;break}case 296:{w=11;break}case 297:{w=12;break}case 298:{w=13;break}case 92:{w=15;break}case 279:{w=19;break}case 285:case 284:{w=23;break}case 281:{w=20;break}case 60:{w=21;break}case 283:{w=22;break}case 62:{w=24;break}case 282:{w=25;break}case 257:{w=26;break}case 272:{w=27;break}default:{x=28;y=c[l>>2]|0;z=y+38|0;A=b[z>>1]|0;B=A+-1<<16>>16;b[z>>1]=B;Ia=h;return x|0}}while(0);v=e+4|0;o=e+16|0;s=e+32|0;r=e+28|0;t=e+24|0;k=w;while(1){if((d[896+(k<<1)>>0]|0)<=(g|0)){x=k;p=64;break}w=c[v>>2]|0;c[o>>2]=w;if((c[s>>2]|0)==287)c[n>>2]=ke(e,r)|0;else{q=s;u=c[q+4>>2]|0;m=t;c[m>>2]=c[q>>2];c[m+4>>2]=u;c[s>>2]=287}We(c[j>>2]|0,k,f);u=k;k=Ge(e,i,d[896+(k<<1)+1>>0]|0)|0;Xe(c[j>>2]|0,u,f,i,w);if((k|0)==28){x=28;p=64;break}}if((p|0)==64){y=c[l>>2]|0;z=y+38|0;A=b[z>>1]|0;B=A+-1<<16>>16;b[z>>1]=B;Ia=h;return x|0}return 0}function He(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;Ne(b,e);f=c[e>>2]|0;a:do switch(f|0){case 10:{g=e+4|0;h=c[g>>2]|0;i=(c[(c[b>>2]|0)+12>>2]|0)+(h<<2)|0;if((h|0)>0?(h=i+-4|0,j=c[h>>2]|0,((j&63)+-37|0)>>>0<5):0){k=j;l=h}else{k=c[i>>2]|0;l=i}c[l>>2]=((k&16320|0)==0&1)<<6|k&-16321;m=c[g>>2]|0;n=32;break}case 2:case 5:case 4:break;case 11:{g=c[b>>2]|0;i=e+4|0;h=c[(c[g+12>>2]|0)+(c[i>>2]<<2)>>2]|0;j=b+20|0;if((h&63|0)==33){c[j>>2]=(c[j>>2]|0)+-1;oe(b,h>>>23<<6|16424)|0;h=b+28|0;j=c[h>>2]|0;c[h>>2]=-1;h=oe(b,2147450916)|0;if((j|0)!=-1)if((h|0)!=-1){o=c[(c[b>>2]|0)+12>>2]|0;p=h;while(1){q=o+(p<<2)|0;r=c[q>>2]|0;s=(r>>>14)+-131071|0;t=(s|0)==-1?-1:p+1+s|0;if((t|0)==-1)break;else p=t}o=j+~p|0;if((((o|0)>-1?o:0-o|0)|0)>131071)re(c[b+12>>2]|0,47972);else{c[q>>2]=(o<<14)+2147467264|r&16383;m=h;n=32;break a}}else{u=j;n=33}else{m=h;n=32}}else{v=g;w=i;n=16}break}default:{o=e+4|0;if((f|0)==6){x=o;n=22}else{v=c[b>>2]|0;w=o;n=16}}}while(0);if((n|0)==16){f=b+48|0;r=a[f>>0]|0;q=(r&255)+1|0;k=v+78|0;do if((r&255)>=(d[k>>0]|0))if((r&255)>248)re(c[b+12>>2]|0,48351);else{v=q&255;a[k>>0]=v;y=v;break}else y=q&255;while(0);a[f>>0]=y;af(b,e,(y&255)+-1|0);if((c[e>>2]|0)==6){x=w;n=22}else{z=w;n=25}}if((n|0)==22){w=c[e+4>>2]|0;if((w&256|0)==0?(w|0)>=(d[b+46>>0]|0|0):0){w=b+48|0;a[w>>0]=(a[w>>0]|0)+-1<<24>>24;z=x;n=25}else{z=x;n=25}}do if((n|0)==25){oe(b,c[z>>2]<<23|16361)|0;x=b+28|0;w=c[x>>2]|0;c[x>>2]=-1;x=oe(b,2147450916)|0;if((w|0)!=-1)if((x|0)!=-1){y=c[(c[b>>2]|0)+12>>2]|0;f=x;while(1){A=y+(f<<2)|0;B=c[A>>2]|0;q=(B>>>14)+-131071|0;k=(q|0)==-1?-1:f+1+q|0;if((k|0)==-1)break;else f=k}y=w+~f|0;if((((y|0)>-1?y:0-y|0)|0)>131071)re(c[b+12>>2]|0,47972);else{c[A>>2]=(y<<14)+2147467264|B&16383;m=x;n=32;break}}else{u=w;n=33}else{m=x;n=32}}while(0);if((n|0)==32?(m|0)!=-1:0){u=m;n=33}do if((n|0)==33){m=e+12|0;B=c[m>>2]|0;if((B|0)==-1){c[m>>2]=u;break}m=c[(c[b>>2]|0)+12>>2]|0;A=B;while(1){C=m+(A<<2)|0;D=c[C>>2]|0;B=(D>>>14)+-131071|0;z=(B|0)==-1?-1:A+1+B|0;if((z|0)==-1)break;else A=z}m=u+~A|0;if((((m|0)>-1?m:0-m|0)|0)>131071)re(c[b+12>>2]|0,47972);else{c[C>>2]=(m<<14)+2147467264|D&16383;break}}while(0);D=e+8|0;e=c[D>>2]|0;c[b+24>>2]=c[b+20>>2];C=b+28|0;if((e|0)==-1){c[D>>2]=-1;return}u=c[C>>2]|0;if((u|0)==-1){c[C>>2]=e;c[D>>2]=-1;return}C=c[(c[b>>2]|0)+12>>2]|0;n=u;while(1){E=C+(n<<2)|0;F=c[E>>2]|0;u=(F>>>14)+-131071|0;m=(u|0)==-1?-1:n+1+u|0;if((m|0)==-1)break;else n=m}C=e+~n|0;if((((C|0)>-1?C:0-C|0)|0)>131071)re(c[b+12>>2]|0,47972);c[E>>2]=(C<<14)+2147467264|F&16383;c[D>>2]=-1;return}function Ie(d){d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e;g=c[d+40>>2]|0;a[f+10>>0]=0;a[f+8>>0]=a[g+46>>0]|0;h=c[(c[g+12>>2]|0)+56>>2]|0;b[f+4>>1]=c[h+28>>2];b[f+6>>1]=c[h+16>>2];a[f+9>>0]=0;h=g+16|0;c[f>>2]=c[h>>2];c[h>>2]=f;f=d+24|0;a:while(1){h=c[f>>2]|0;switch(h|0){case 277:case 292:case 287:case 262:case 261:case 260:{i=4;break a;break}default:{}}le(d);if((h|0)==274){i=4;break}}if((i|0)==4){pe(g);Ia=e;return}}function Je(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=c[e+40>>2]|0;h=c[e+56>>2]|0;i=c[g>>2]|0;j=i+60|0;k=c[j>>2]|0;l=g+44|0;if((k|0)>(b[l>>1]|0)){m=k;n=c[i+24>>2]|0}else{o=i+24|0;p=se(c[e+44>>2]|0,c[o>>2]|0,j,12,32767,48630)|0;c[o>>2]=p;m=c[j>>2]|0;n=p}if((k|0)<(m|0)?(p=k+1|0,c[n+(k*12|0)>>2]=0,(p|0)<(m|0)):0){k=p;do{c[n+(k*12|0)>>2]=0;k=k+1|0}while((k|0)!=(m|0))}c[n+((b[l>>1]|0)*12|0)>>2]=f;do if(a[f+5>>0]&3?(n=i+5|0,m=a[n>>0]|0,m&4):0){k=c[(c[e+44>>2]|0)+12>>2]|0;if((d[k+49>>0]|0)<2){Jc(k,f);break}else{a[n>>0]=a[k+48>>0]&3|m&-72;break}}while(0);f=b[l>>1]|0;b[l>>1]=f+1<<16>>16;l=h+4|0;i=c[l>>2]|0;m=i+1|0;if((m-(c[g+40>>2]|0)|0)>200)Ce(g,200,48630);g=h+8|0;if((i+2|0)>(c[g>>2]|0)){k=se(c[e+44>>2]|0,c[h>>2]|0,g,2,2147483645,48630)|0;c[h>>2]=k;g=c[l>>2]|0;q=k;r=g;s=g+1|0;c[l>>2]=s;t=q+(r<<1)|0;b[t>>1]=f;return}else{q=c[h>>2]|0;r=i;s=m;c[l>>2]=s;t=q+(r<<1)|0;b[t>>1]=f;return}}function Ke(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=Ia;Ia=Ia+16|0;f=e;Ge(b,f,0)|0;g=c[b+40>>2]|0;Ne(g,f);if(((c[f>>2]|0)==6?(b=c[f+4>>2]|0,(b&256|0)==0):0)?(b|0)>=(d[g+46>>0]|0|0):0){b=g+48|0;a[b>>0]=(a[b>>0]|0)+-1<<24>>24}b=g+48|0;h=a[b>>0]|0;i=(h&255)+1|0;j=(c[g>>2]|0)+78|0;if((h&255)<(d[j>>0]|0)){k=i&255;a[b>>0]=k;l=k&255;m=l+-1|0;Oe(g,f,m);Ia=e;return}if((h&255)>248)re(c[g+12>>2]|0,48351);h=i&255;a[j>>0]=h;k=h;a[b>>0]=k;l=k&255;m=l+-1|0;Oe(g,f,m);Ia=e;return}function Le(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=c[(c[b+12>>2]|0)+44>>2]|0;h=c[b>>2]|0;i=c[b+4>>2]|0;j=Mc(i,e)|0;if((j|0)==2217396)k=Nc(g,i,e)|0;else k=j;j=k+4|0;if(((c[j>>2]|0)==3?(e=c[k>>2]>>16,i=c[h+8>>2]|0,(c[i+(e<<3)+4>>2]|0)==(c[f+4>>2]|0)):0)?Tc(0,i+(e<<3)|0,f)|0:0){l=e;return l|0}e=h+44|0;i=c[e>>2]|0;m=b+32|0;b=c[m>>2]|0;c[k>>2]=b;c[j>>2]=3;j=c[e>>2]|0;k=h+8|0;if((b|0)<(j|0)){n=j;o=c[k>>2]|0}else{j=se(g,c[k>>2]|0,e,8,67108863,48620)|0;c[k>>2]=j;n=c[e>>2]|0;o=j}if((i|0)<(n|0)?(j=i+1|0,c[o+(i<<3)+4>>2]=0,(j|0)<(n|0)):0){i=j;do{c[o+(i<<3)+4>>2]=0;i=i+1|0}while((i|0)<(n|0))}c[o+(b<<3)>>2]=c[f>>2];n=f+4|0;c[o+(b<<3)+4>>2]=c[n>>2];c[m>>2]=(c[m>>2]|0)+1;if(!(c[n>>2]&64)){l=b;return l|0}n=c[f>>2]|0;if(!(a[n+5>>0]&3)){l=b;return l|0}f=h+5|0;h=a[f>>0]|0;if(!(h&4)){l=b;return l|0}m=c[g+12>>2]|0;if((d[m+49>>0]|0)<2){Jc(m,n);l=b;return l|0}else{a[f>>0]=a[m+48>>0]&3|h&-72;l=b;return l|0}return 0}function Me(e,f,g,h,i){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;j=Ia;Ia=Ia+16|0;k=j;l=e+40|0;m=c[l>>2]|0;n=m+46|0;o=a[n>>0]|0;a[n>>0]=(o&255)+3;p=m+20|0;q=c[p>>2]|0;r=m+12|0;s=c[(c[m>>2]|0)+24>>2]|0;t=c[c[(c[r>>2]|0)+56>>2]>>2]|0;u=(c[m+40>>2]|0)+(o+3&255)|0;c[s+((b[t+(u+-3<<1)>>1]|0)*12|0)+4>>2]=q;c[s+((b[t+(u+-2<<1)>>1]|0)*12|0)+4>>2]=q;c[s+((b[t+(u+-1<<1)>>1]|0)*12|0)+4>>2]=q;q=e+24|0;if((c[q>>2]|0)!=259)me(e,259);c[e+16>>2]=c[e+4>>2];u=e+32|0;if((c[u>>2]|0)==287)c[q>>2]=ke(e,e+28|0)|0;else{q=u;t=c[q+4>>2]|0;s=e+24|0;c[s>>2]=c[q>>2];c[s+4>>2]=t;c[u>>2]=287}u=(i|0)!=0;do if(!u){i=m+28|0;t=c[i>>2]|0;c[i>>2]=-1;i=oe(m,2147450916)|0;if((t|0)!=-1)if((i|0)!=-1){s=c[(c[m>>2]|0)+12>>2]|0;q=i;while(1){v=s+(q<<2)|0;w=c[v>>2]|0;o=(w>>>14)+-131071|0;x=(o|0)==-1?-1:q+1+o|0;if((x|0)==-1)break;else q=x}s=t+~q|0;if((((s|0)>-1?s:0-s|0)|0)>131071)re(c[r>>2]|0,47972);else{c[v>>2]=(s<<14)+2147467264|w&16383;y=i;break}}else y=t;else y=i}else y=oe(m,f<<6|2147450926)|0;while(0);a[k+10>>0]=0;a[k+8>>0]=a[n>>0]|0;n=c[r>>2]|0;w=c[n+56>>2]|0;b[k+4>>1]=c[w+28>>2];b[k+6>>1]=c[w+16>>2];a[k+9>>0]=0;w=m+16|0;c[k>>2]=c[w>>2];c[w>>2]=k;k=c[l>>2]|0;l=k+46|0;w=(d[l>>0]|0)+h|0;a[l>>0]=w;if(h|0){l=c[k+20>>2]|0;v=c[(c[k>>2]|0)+24>>2]|0;s=c[c[(c[k+12>>2]|0)+56>>2]>>2]|0;x=(c[k+40>>2]|0)+(w&255)|0;w=h;do{c[v+((b[s+(x-w<<1)>>1]|0)*12|0)+4>>2]=l;w=w+-1|0}while((w|0)!=0)}w=m+48|0;l=(d[w>>0]|0)+h|0;x=(c[m>>2]|0)+78|0;do if((l|0)>(d[x>>0]|0))if((l|0)>249)re(n,48351);else{s=l&255;a[x>>0]=s;z=s;break}else z=l&255;while(0);a[w>>0]=z;Ie(e);pe(m);c[m+24>>2]=c[p>>2];e=m+28|0;do if((y|0)!=-1){z=c[e>>2]|0;if((z|0)==-1){c[e>>2]=y;break}w=c[(c[m>>2]|0)+12>>2]|0;l=z;while(1){A=w+(l<<2)|0;B=c[A>>2]|0;z=(B>>>14)+-131071|0;x=(z|0)==-1?-1:l+1+z|0;if((x|0)==-1)break;else l=x}w=y+~l|0;if((((w|0)>-1?w:0-w|0)|0)>131071)re(c[r>>2]|0,47972);else{c[A>>2]=(w<<14)+2147467264|B&16383;break}}while(0);B=f<<6;if(u){C=B|2147450925;D=oe(m,C)|0;E=y+1|0;ze(m,D,E);F=c[m>>2]|0;G=F+20|0;H=c[G>>2]|0;I=c[p>>2]|0;J=I+-1|0;K=H+(J<<2)|0;c[K>>2]=g;Ia=j;return}else{oe(m,B|h<<14|47)|0;c[(c[(c[m>>2]|0)+20>>2]|0)+((c[p>>2]|0)+-1<<2)>>2]=g;C=B+128|2147450928;D=oe(m,C)|0;E=y+1|0;ze(m,D,E);F=c[m>>2]|0;G=F+20|0;H=c[G>>2]|0;I=c[p>>2]|0;J=I+-1|0;K=H+(J<<2)|0;c[K>>2]=g;Ia=j;return}}function Ne(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0;switch(c[f>>2]|0){case 7:{c[f>>2]=6;return}case 8:{g=f+4|0;c[g>>2]=oe(e,c[g>>2]<<23|5)|0;c[f>>2]=11;return}case 9:{g=f+4|0;h=b[g>>1]|0;if((h&256|0)==0?(d[e+46>>0]|0)<=(h|0):0){h=e+48|0;a[h>>0]=(a[h>>0]|0)+-1<<24>>24}h=g+2|0;if((a[g+3>>0]|0)==7)if((d[e+46>>0]|0)>(d[h>>0]|0))i=7;else{j=e+48|0;a[j>>0]=(a[j>>0]|0)+-1<<24>>24;i=7}else i=6;c[g>>2]=oe(e,d[h>>0]<<23|i|b[g>>1]<<14)|0;c[f>>2]=11;return}case 12:{c[f>>2]=6;g=f+4|0;c[g>>2]=(c[(c[(c[e>>2]|0)+12>>2]|0)+(c[g>>2]<<2)>>2]|0)>>>6&255;return}case 13:{g=(c[(c[e>>2]|0)+12>>2]|0)+(c[f+4>>2]<<2)|0;c[g>>2]=c[g>>2]&8388607|16777216;c[f>>2]=11;return}default:return}} +function Oe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;af(a,b,d);e=(c[b>>2]|0)==10;f=b+8|0;do if(e?(g=c[b+4>>2]|0,(g|0)!=-1):0){h=c[f>>2]|0;if((h|0)==-1){c[f>>2]=g;i=g;break}j=c[(c[a>>2]|0)+12>>2]|0;k=h;while(1){l=j+(k<<2)|0;m=c[l>>2]|0;h=(m>>>14)+-131071|0;n=(h|0)==-1?-1:k+1+h|0;if((n|0)==-1)break;else k=n}j=g+~k|0;if((((j|0)>-1?j:0-j|0)|0)>131071)re(c[a+12>>2]|0,47972);else{c[l>>2]=(j<<14)+2147467264|m&16383;o=10;break}}else o=10;while(0);if((o|0)==10)i=c[f>>2]|0;m=b+12|0;l=c[m>>2]|0;if((i|0)==(l|0)){c[f>>2]=-1;c[m>>2]=-1;p=b+4|0;c[p>>2]=d;c[b>>2]=6;return}a:do if((i|0)==-1)o=19;else{j=c[(c[a>>2]|0)+12>>2]|0;n=i;while(1){h=j+(n<<2)|0;if((n|0)>0?(q=c[h+-4>>2]|0,((q&63)+-37|0)>>>0<5):0)r=q;else r=c[h>>2]|0;if((r&63|0)!=41){o=26;break a}q=((c[h>>2]|0)>>>14)+-131071|0;n=(q|0)==-1?-1:n+1+q|0;if((n|0)==-1){o=19;break}}}while(0);b:do if((o|0)==19)if((l|0)==-1){s=-1;t=-1}else{r=c[(c[a>>2]|0)+12>>2]|0;i=l;while(1){n=r+(i<<2)|0;if((i|0)>0?(j=c[n+-4>>2]|0,((j&63)+-37|0)>>>0<5):0)u=j;else u=c[n>>2]|0;if((u&63|0)!=41){o=26;break b}j=((c[n>>2]|0)>>>14)+-131071|0;i=(j|0)==-1?-1:i+1+j|0;if((i|0)==-1){s=-1;t=-1;break}}}while(0);do if((o|0)==26){u=a+28|0;do if(!e){l=c[u>>2]|0;c[u>>2]=-1;i=oe(a,2147450916)|0;if((l|0)!=-1)if((i|0)!=-1){r=c[(c[a>>2]|0)+12>>2]|0;j=i;while(1){v=r+(j<<2)|0;w=c[v>>2]|0;n=(w>>>14)+-131071|0;k=(n|0)==-1?-1:j+1+n|0;if((k|0)==-1)break;else j=k}r=l+~j|0;if((((r|0)>-1?r:0-r|0)|0)>131071)re(c[a+12>>2]|0,47972);else{c[v>>2]=(r<<14)+2147467264|w&16383;x=i;break}}else x=l;else x=i}else x=-1;while(0);r=a+20|0;k=a+24|0;c[k>>2]=c[r>>2];n=d<<6;g=oe(a,n|16387)|0;c[k>>2]=c[r>>2];q=oe(a,n|8388611)|0;c[k>>2]=c[r>>2];if((x|0)!=-1){r=c[u>>2]|0;if((r|0)==-1){c[u>>2]=x;s=g;t=q;break}k=c[(c[a>>2]|0)+12>>2]|0;n=r;while(1){y=k+(n<<2)|0;z=c[y>>2]|0;r=(z>>>14)+-131071|0;h=(r|0)==-1?-1:n+1+r|0;if((h|0)==-1)break;else n=h}k=x+~n|0;if((((k|0)>-1?k:0-k|0)|0)>131071)re(c[a+12>>2]|0,47972);else{c[y>>2]=(k<<14)+2147467264|z&16383;s=g;t=q;break}}else{s=g;t=q}}while(0);z=c[a+20>>2]|0;c[a+24>>2]=z;y=c[m>>2]|0;c:do if((y|0)!=-1){x=c[(c[a>>2]|0)+12>>2]|0;w=d<<6;v=w&16320;if((d|0)==255){e=y;while(1){k=x+(e<<2)|0;u=c[k>>2]|0;h=(u>>>14)+-131071|0;r=e;e=(h|0)==-1?-1:e+1+h|0;if((r|0)>0?(h=k+-4|0,A=c[h>>2]|0,((A&63)+-37|0)>>>0<5):0){B=A;C=h}else{B=u;C=k}if((B&63|0)!=41){h=s+~r|0;if((((h|0)>-1?h:0-h|0)|0)>131071){o=65;break}else{D=u;E=h}}else{c[C>>2]=B&8372224|B>>>23<<6|40;h=z+~r|0;if((((h|0)>-1?h:0-h|0)|0)>131071){o=62;break}D=c[k>>2]|0;E=h}c[k>>2]=D&16383|(E<<14)+2147467264;if((e|0)==-1)break c}if((o|0)==62){F=a+12|0;G=c[F>>2]|0;re(G,47972)}else if((o|0)==65){H=a+12|0;I=c[H>>2]|0;re(I,47972)}}e=y;while(1){q=x+(e<<2)|0;g=c[q>>2]|0;n=(g>>>14)+-131071|0;k=e;e=(n|0)==-1?-1:e+1+n|0;if((k|0)>0?(n=q+-4|0,h=c[n>>2]|0,((h&63)+-37|0)>>>0<5):0){J=h;K=n}else{J=g;K=q}if((J&63|0)!=41){n=s+~k|0;if((((n|0)>-1?n:0-n|0)|0)>131071){o=65;break}else{L=g;M=n}}else{if((J>>>23|0)==(d|0))N=J&8372224|w|40;else N=J&-16321|v;c[K>>2]=N;n=z+~k|0;if((((n|0)>-1?n:0-n|0)|0)>131071){o=62;break}L=c[q>>2]|0;M=n}c[q>>2]=L&16383|(M<<14)+2147467264;if((e|0)==-1)break c}if((o|0)==62){F=a+12|0;G=c[F>>2]|0;re(G,47972)}else if((o|0)==65){H=a+12|0;I=c[H>>2]|0;re(I,47972)}}while(0);I=c[f>>2]|0;if((I|0)==-1){c[f>>2]=-1;c[m>>2]=-1;p=b+4|0;c[p>>2]=d;c[b>>2]=6;return}H=c[(c[a>>2]|0)+12>>2]|0;G=d<<6;F=G&16320;if((d|0)==255){M=I;while(1){L=H+(M<<2)|0;N=c[L>>2]|0;K=(N>>>14)+-131071|0;J=M;M=(K|0)==-1?-1:M+1+K|0;if((J|0)>0?(K=L+-4|0,s=c[K>>2]|0,((s&63)+-37|0)>>>0<5):0){O=s;P=K}else{O=N;P=L}if((O&63|0)!=41){K=t+~J|0;if((((K|0)>-1?K:0-K|0)|0)>131071){o=90;break}else{Q=N;R=K}}else{c[P>>2]=O&8372224|O>>>23<<6|40;K=z+~J|0;if((((K|0)>-1?K:0-K|0)|0)>131071){o=87;break}Q=c[L>>2]|0;R=K}c[L>>2]=Q&16383|(R<<14)+2147467264;if((M|0)==-1){o=92;break}}if((o|0)==87){S=a+12|0;T=c[S>>2]|0;re(T,47972)}else if((o|0)==90){U=a+12|0;V=c[U>>2]|0;re(V,47972)}else if((o|0)==92){c[f>>2]=-1;c[m>>2]=-1;p=b+4|0;c[p>>2]=d;c[b>>2]=6;return}}M=I;while(1){I=H+(M<<2)|0;R=c[I>>2]|0;Q=(R>>>14)+-131071|0;O=M;M=(Q|0)==-1?-1:M+1+Q|0;if((O|0)>0?(Q=I+-4|0,P=c[Q>>2]|0,((P&63)+-37|0)>>>0<5):0){W=P;X=Q}else{W=R;X=I}if((W&63|0)!=41){Q=t+~O|0;if((((Q|0)>-1?Q:0-Q|0)|0)>131071){o=90;break}else{Y=R;Z=Q}}else{if((W>>>23|0)==(d|0))_=W&8372224|G|40;else _=W&-16321|F;c[X>>2]=_;Q=z+~O|0;if((((Q|0)>-1?Q:0-Q|0)|0)>131071){o=87;break}Y=c[I>>2]|0;Z=Q}c[I>>2]=Y&16383|(Z<<14)+2147467264;if((M|0)==-1){o=92;break}}if((o|0)==87){S=a+12|0;T=c[S>>2]|0;re(T,47972)}else if((o|0)==90){U=a+12|0;V=c[U>>2]|0;re(V,47972)}else if((o|0)==92){c[f>>2]=-1;c[m>>2]=-1;p=b+4|0;c[p>>2]=d;c[b>>2]=6;return}}function Pe(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=e-f|0;f=c[g>>2]|0;switch(f|0){case 13:case 12:{e=h+1|0;i=(e|0)>0?e:0;switch(f|0){case 12:{f=(c[(c[b>>2]|0)+12>>2]|0)+(c[g+4>>2]<<2)|0;c[f>>2]=c[f>>2]&-8372225|(i<<14)+16384&8372224;break}case 13:{f=c[b>>2]|0;e=c[f+12>>2]|0;j=g+4|0;k=e+(c[j>>2]<<2)|0;c[k>>2]=c[k>>2]&8388607|(i<<23)+8388608;k=e+(c[j>>2]<<2)|0;j=b+48|0;e=a[j>>0]|0;l=e&255;c[k>>2]=l<<6|c[k>>2]&-16321;k=l+1|0;l=f+78|0;do if((e&255)>=(d[l>>0]|0))if((e&255)>248)re(c[b+12>>2]|0,48351);else{f=k&255;a[l>>0]=f;m=f;break}else m=k&255;while(0);a[j>>0]=m;break}default:{}}if((i|0)<=1)return;m=b+48|0;j=i+-1+(d[m>>0]|0)|0;i=(c[b>>2]|0)+78|0;do if((j|0)>(d[i>>0]|0|0))if((j|0)>249)re(c[b+12>>2]|0,48351);else{k=j&255;a[i>>0]=k;n=k;break}else n=j&255;while(0);a[m>>0]=n;return}case 0:break;default:{Ne(b,g);if(((c[g>>2]|0)==6?(n=c[g+4>>2]|0,(n&256|0)==0):0)?(n|0)>=(d[b+46>>0]|0|0):0){n=b+48|0;a[n>>0]=(a[n>>0]|0)+-1<<24>>24}n=b+48|0;m=a[n>>0]|0;j=(m&255)+1|0;i=(c[b>>2]|0)+78|0;do if((m&255)>=(d[i>>0]|0))if((m&255)>248)re(c[b+12>>2]|0,48351);else{k=j&255;a[i>>0]=k;o=k;break}else o=j&255;while(0);a[n>>0]=o;Oe(b,g,(o&255)+-1|0)}}if((h|0)<=0)return;o=b+48|0;g=d[o>>0]|0;n=h+g|0;j=c[b>>2]|0;i=j+78|0;do if((n|0)>(d[i>>0]|0|0))if((n|0)>249)re(c[b+12>>2]|0,48351);else{m=n&255;a[i>>0]=m;p=m;break}else p=n&255;while(0);a[o>>0]=p;p=n+511|0;o=c[b+20>>2]|0;do if((o|0)>(c[b+24>>2]|0)?(i=(c[j+12>>2]|0)+(o+-1<<2)|0,m=c[i>>2]|0,(m&63|0)==4):0){k=m>>>6&255;l=k+(m>>>23)|0;if(k>>>0>g>>>0|(l+1|0)>>>0<g>>>0?k>>>0<g>>>0|(k|0)>(n|0):0)break;e=k>>>0<g>>>0?k:g;c[i>>2]=e<<6|m&8372287|((l|0)<(n|0)?p:l)-e<<23;return}while(0);oe(b,(h<<23)+-8388608|g<<6|4)|0;return}function Qe(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=Ia;Ia=Ia+32|0;g=f+16|0;h=f;i=d+24|0;if((c[i>>2]|0)!=289)me(d,289);j=d+28|0;k=c[j>>2]|0;c[d+16>>2]=c[d+4>>2];l=d+32|0;if((c[l>>2]|0)==287)c[i>>2]=ke(d,j)|0;else{j=l;i=c[j+4>>2]|0;m=d+24|0;c[m>>2]=c[j>>2];c[m+4>>2]=i;c[l>>2]=287}l=d+40|0;i=c[l>>2]|0;if(ff(i,k,e,1)|0){Ia=f;return}ff(i,c[d+64>>2]|0,e,1)|0;d=c[l>>2]|0;c[g>>2]=k;c[g+4>>2]=(a[k+4>>0]|64)&255;k=Le(d,g,g)|0;c[h+8>>2]=-1;c[h+12>>2]=-1;c[h>>2]=4;c[h+4>>2]=k;k=e+4|0;a[k+2>>0]=c[k>>2];b[k>>1]=Se(i,h)|0;a[k+3>>0]=(c[e>>2]|0)==8?8:7;c[e>>2]=9;Ia=f;return}function Re(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;Ne(b,e);if((c[e>>2]|0)==6){f=e+4|0;g=c[f>>2]|0;if((c[e+8>>2]|0)==(c[e+12>>2]|0)){h=g;return h|0}if((g|0)>=(d[b+46>>0]|0|0)){Oe(b,e,g);i=f}else j=5}else j=5;if((j|0)==5){Ne(b,e);if(((c[e>>2]|0)==6?(j=c[e+4>>2]|0,(j&256|0)==0):0)?(j|0)>=(d[b+46>>0]|0|0):0){j=b+48|0;a[j>>0]=(a[j>>0]|0)+-1<<24>>24}j=b+48|0;f=a[j>>0]|0;g=(f&255)+1|0;k=(c[b>>2]|0)+78|0;do if((f&255)>=(d[k>>0]|0))if((f&255)>248)re(c[b+12>>2]|0,48351);else{l=g&255;a[k>>0]=l;m=l;break}else m=g&255;while(0);a[j>>0]=m;Oe(b,e,(m&255)+-1|0);i=e+4|0}h=c[i>>2]|0;return h|0}function Se(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;if((c[d+8>>2]|0)==(c[d+12>>2]|0))Ne(b,d);else Re(b,d)|0;h=c[d>>2]|0;switch(h|0){case 1:case 3:case 2:{if((c[b+32>>2]|0)<256){if((h|0)==1){c[g+4>>2]=0;c[f>>2]=c[b+4>>2];c[f+4>>2]=69;i=Le(b,f,g)|0}else{c[f>>2]=(h|0)==2&1;c[f+4>>2]=1;i=Le(b,f,f)|0}c[d+4>>2]=i;c[d>>2]=4;j=i|256;Ia=e;return j|0}break}case 5:{i=d+4|0;h=c[i>>2]|0;c[f>>2]=h;k=c[(c[b+12>>2]|0)+44>>2]|0;c[g>>2]=h;c[g+4>>2]=3;if(!h){h=k+8|0;l=c[h>>2]|0;c[h>>2]=l+8;m=bd(k,f,4)|0;c[l>>2]=m;c[l+4>>2]=(a[m+4>>0]|64)&255;m=Le(b,(c[h>>2]|0)+-8|0,g)|0;c[h>>2]=(c[h>>2]|0)+-8;n=m}else n=Le(b,g,g)|0;c[i>>2]=n;c[d>>2]=4;o=n;p=15;break}case 4:{o=c[d+4>>2]|0;p=15;break}default:{}}if((p|0)==15?(o|0)<256:0){j=o|256;Ia=e;return j|0}j=Re(b,d)|0;Ia=e;return j|0}function Te(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;i=Ia;Ia=Ia+80|0;j=i;k=i+16|0;l=i+4|0;m=e+40|0;n=c[m>>2]|0;o=e+44|0;p=c[o>>2]|0;q=c[n>>2]|0;r=n+36|0;n=q+56|0;s=c[n>>2]|0;if(((c[r>>2]|0)>=(s|0)?(t=q+16|0,u=se(p,c[t>>2]|0,n,4,262143,48580)|0,c[t>>2]=u,v=c[n>>2]|0,(s|0)<(v|0)):0)?(n=s+1|0,c[u+(s<<2)>>2]=0,(n|0)<(v|0)):0){s=n;do{c[(c[t>>2]|0)+(s<<2)>>2]=0;s=s+1|0}while((s|0)!=(v|0))}v=p+12|0;s=c[v>>2]|0;t=s+4|0;n=Pa[c[s>>2]&3](c[t>>2]|0,0,9,80)|0;if(!n){if(!(a[s+51>>0]|0))yc(p,4);Kc(p,1);u=Pa[c[s>>2]&3](c[t>>2]|0,0,9,80)|0;if(!u)yc(p,4);else w=u}else w=n;n=s+12|0;c[n>>2]=(c[n>>2]|0)+80;n=s+56|0;u=w+5|0;a[u>>0]=a[s+48>>0]&3;a[w+4>>0]=9;c[w>>2]=c[n>>2];c[n>>2]=w;a[w+76>>0]=0;a[w+77>>0]=0;n=w+78|0;a[n>>0]=0;s=w+8|0;p=s+64|0;do{c[s>>2]=0;s=s+4|0}while((s|0)<(p|0));s=c[q+16>>2]|0;p=c[r>>2]|0;c[r>>2]=p+1;c[s+(p<<2)>>2]=w;do if(a[u>>0]&3?(p=q+5|0,s=a[p>>0]|0,s&4):0){r=c[v>>2]|0;if((d[r+49>>0]|0)<2){Jc(r,w);break}else{a[p>>0]=a[r+48>>0]&3|s&-72;break}}while(0);c[k>>2]=w;c[w+64>>2]=h;v=c[o>>2]|0;c[k+8>>2]=c[m>>2];o=k+12|0;c[o>>2]=e;c[m>>2]=k;c[k+20>>2]=0;c[k+24>>2]=0;c[k+28>>2]=-1;c[k+32>>2]=0;c[k+36>>2]=0;q=k+44|0;c[q>>2]=0;a[q+4>>0]=0;c[k+40>>2]=c[(c[e+56>>2]|0)+4>>2];q=k+16|0;c[q>>2]=0;c[w+36>>2]=c[e+60>>2];a[n>>0]=2;n=c[v+12>>2]|0;w=n+4|0;u=Pa[c[n>>2]&3](c[w>>2]|0,0,5,32)|0;if(!u){if(!(a[n+51>>0]|0))yc(v,4);Kc(v,1);s=Pa[c[n>>2]&3](c[w>>2]|0,0,5,32)|0;if(!s)yc(v,4);else x=s}else x=u;u=n+12|0;c[u>>2]=(c[u>>2]|0)+32;u=n+56|0;a[x+5>>0]=a[n+48>>0]&3;a[x+4>>0]=5;c[x>>2]=c[u>>2];c[u>>2]=x;c[x+8>>2]=0;a[x+6>>0]=-1;c[x+12>>2]=0;c[x+28>>2]=0;c[x+16>>2]=2217420;a[x+7>>0]=0;c[x+20>>2]=2217420;c[k+4>>2]=x;u=v+8|0;n=c[u>>2]|0;c[n>>2]=x;c[n+4>>2]=69;n=(c[u>>2]|0)+8|0;c[u>>2]=n;u=n;do if(((c[v+24>>2]|0)-u|0)<8){n=c[v+32>>2]|0;if((n|0)>1e6)yc(v,6);x=(u-(c[v+28>>2]|0)>>3)+5|0;s=n<<1;n=(s|0)<1e6?s:1e6;s=(n|0)<(x|0)?x:n;if((s|0)>1e6){zc(v,1000200);Ac(v,47184,j)}else{zc(v,s);break}}while(0);a[l+10>>0]=0;a[l+8>>0]=a[k+46>>0]|0;v=c[(c[o>>2]|0)+56>>2]|0;b[l+4>>1]=c[v+28>>2];b[l+6>>1]=c[v+16>>2];a[l+9>>0]=0;c[l>>2]=c[q>>2];c[q>>2]=l;l=e+24|0;if((c[l>>2]|0)!=40)me(e,40);q=e+4|0;v=e+16|0;c[v>>2]=c[q>>2];o=e+32|0;if((c[o>>2]|0)==287){j=ke(e,e+28|0)|0;c[l>>2]=j;y=j}else{j=o;u=c[j>>2]|0;s=c[j+4>>2]|0;j=e+24|0;c[j>>2]=u;c[j+4>>2]=s;c[o>>2]=287;y=u}if(!g){g=c[m>>2]|0;z=g;A=c[g>>2]|0;B=y;C=g}else{Je(e,qe(e,48590,4)|0);g=c[m>>2]|0;y=g+46|0;u=a[y>>0]|0;a[y>>0]=(u&255)+1;y=c[g>>2]|0;c[(c[y+24>>2]|0)+((b[(c[c[(c[g+12>>2]|0)+56>>2]>>2]|0)+((c[g+40>>2]|0)+(u+1&255)+-1<<1)>>1]|0)*12|0)+4>>2]=c[g+20>>2];z=g;A=y;B=c[l>>2]|0;C=g}g=A+77|0;a[g>>0]=0;a:do if((B|0)==41)D=0;else{y=e+28|0;u=e+24|0;s=B;j=0;b:while(1){switch(s|0){case 280:{break b;break}case 289:break;default:{E=43;break b}}n=c[y>>2]|0;c[v>>2]=c[q>>2];if((c[o>>2]|0)==287)c[l>>2]=ke(e,y)|0;else{x=o;w=c[x+4>>2]|0;r=u;c[r>>2]=c[x>>2];c[r+4>>2]=w;c[o>>2]=287}Je(e,n);n=j+1|0;if(a[g>>0]|0){D=n;break a}if((c[l>>2]|0)!=44){D=n;break a}c[v>>2]=c[q>>2];if((c[o>>2]|0)==287){w=ke(e,y)|0;c[l>>2]=w;F=w}else{w=o;r=c[w>>2]|0;x=c[w+4>>2]|0;w=u;c[w>>2]=r;c[w+4>>2]=x;c[o>>2]=287;F=r}s=F;j=n}if((E|0)==43)re(e,48595);c[v>>2]=c[q>>2];if((c[o>>2]|0)==287)c[l>>2]=ke(e,y)|0;else{s=o;n=c[s+4>>2]|0;r=u;c[r>>2]=c[s>>2];c[r+4>>2]=n;c[o>>2]=287}a[g>>0]=1;D=j}while(0);g=c[m>>2]|0;E=g+46|0;F=D+(d[E>>0]|0)|0;a[E>>0]=F;if(D|0){E=c[g+20>>2]|0;B=c[(c[g>>2]|0)+24>>2]|0;n=c[c[(c[g+12>>2]|0)+56>>2]>>2]|0;r=(c[g+40>>2]|0)+(F&255)|0;F=D;do{c[B+((b[n+(r-F<<1)>>1]|0)*12|0)+4>>2]=E;F=F+-1|0}while((F|0)!=0)}F=a[z+46>>0]|0;a[A+76>>0]=F;A=z+48|0;E=(d[A>>0]|0)+(F&255)|0;F=(c[C>>2]|0)+78|0;do if(E>>>0>(d[F>>0]|0)>>>0)if(E>>>0>249)re(c[z+12>>2]|0,48351);else{C=E&255;a[F>>0]=C;G=C;break}else G=E&255;while(0);a[A>>0]=G;if((c[l>>2]|0)!=41)me(e,41);c[v>>2]=c[q>>2];if((c[o>>2]|0)==287){v=ke(e,e+28|0)|0;c[l>>2]=v;H=v}else{v=o;G=c[v>>2]|0;A=c[v+4>>2]|0;v=e+24|0;c[v>>2]=G;c[v+4>>2]=A;c[o>>2]=287;H=G}G=H;c:while(1){switch(G|0){case 277:case 292:case 287:case 262:case 261:case 260:{break c;break}default:{}}le(e);if((G|0)==274)break;G=c[l>>2]|0}c[(c[k>>2]|0)+68>>2]=c[q>>2];Fe(e,262,265,h);h=c[(c[m>>2]|0)+8>>2]|0;m=oe(h,(c[h+36>>2]<<14)+-16384|50)|0;c[f+8>>2]=-1;c[f+12>>2]=-1;c[f>>2]=11;q=f+4|0;c[q>>2]=m;Ne(h,f);if(((c[f>>2]|0)==6?(m=c[q>>2]|0,(m&256|0)==0):0)?(m|0)>=(d[h+46>>0]|0):0){m=h+48|0;a[m>>0]=(a[m>>0]|0)+-1<<24>>24}m=h+48|0;q=a[m>>0]|0;k=(q&255)+1|0;l=(c[h>>2]|0)+78|0;if((q&255)<(d[l>>0]|0)){I=k&255;a[m>>0]=I;J=I&255;K=J+-1|0;Oe(h,f,K);ne(e);Ia=i;return}if((q&255)>248)re(c[h+12>>2]|0,48351);q=k&255;a[l>>0]=q;I=q;a[m>>0]=I;J=I&255;K=J+-1|0;Oe(h,f,K);ne(e);Ia=i;return}function Ue(b,f,g){b=b|0;f=f|0;g=g|0;var h=0;switch(c[f>>2]|0){case 7:{if(((c[g>>2]|0)==6?(h=c[g+4>>2]|0,(h&256|0)==0):0)?(h|0)>=(d[b+46>>0]|0):0){h=b+48|0;a[h>>0]=(a[h>>0]|0)+-1<<24>>24}Oe(b,g,c[f+4>>2]|0);return}case 8:{oe(b,(Re(b,g)|0)<<6|c[f+4>>2]<<23|9)|0;break}case 9:{h=f+4|0;f=(a[h+3>>0]|0)==7?10:8;oe(b,(Se(b,g)|0)<<14|f|d[h+2>>0]<<6|e[h>>1]<<23)|0;break}default:{}}if((c[g>>2]|0)!=6)return;h=c[g+4>>2]|0;if(h&256|0)return;if((h|0)<(d[b+46>>0]|0))return;h=b+48|0;a[h>>0]=(a[h>>0]|0)+-1<<24>>24;return}function Ve(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;g=Ia;Ia=Ia+32|0;h=g+16|0;i=g;j=e+40|0;k=c[j>>2]|0;l=e+4|0;m=c[l>>2]|0;n=e+24|0;switch(c[n>>2]|0){case 40:{o=e+16|0;c[o>>2]=m;p=e+32|0;if((c[p>>2]|0)==287)c[n>>2]=ke(e,e+28|0)|0;else{q=p;r=c[q+4>>2]|0;s=e+24|0;c[s>>2]=c[q>>2];c[s+4>>2]=r;c[p>>2]=287}Ge(e,f,0)|0;Fe(e,41,40,m);Ne(c[j>>2]|0,f);t=o;u=p;v=p;break}case 289:{Qe(e,f);p=e+32|0;t=e+16|0;u=p;v=p;break}default:re(e,48511)}p=f+8|0;o=f+12|0;r=e+28|0;s=e+24|0;q=f+4|0;w=k+48|0;x=h+8|0;y=h+12|0;z=k+46|0;A=h+4|0;B=i+8|0;C=i+12|0;D=i+4|0;E=h+4|0;F=i+8|0;G=i+12|0;H=i+4|0;I=f+4|0;J=I+2|0;K=I+3|0;a:while(1)switch(c[n>>2]|0){case 46:{L=c[j>>2]|0;if(!((c[f>>2]|0)==8?(c[p>>2]|0)==(c[o>>2]|0):0))Re(L,f)|0;c[t>>2]=c[l>>2];if((c[v>>2]|0)==287){M=ke(e,r)|0;c[n>>2]=M;N=M}else{M=u;O=c[M>>2]|0;P=c[M+4>>2]|0;M=s;c[M>>2]=O;c[M+4>>2]=P;c[v>>2]=287;N=O}if((N|0)!=289){Q=17;break a}O=c[r>>2]|0;c[t>>2]=c[l>>2];if((c[v>>2]|0)==287)c[n>>2]=ke(e,r)|0;else{P=u;M=c[P+4>>2]|0;R=s;c[R>>2]=c[P>>2];c[R+4>>2]=M;c[v>>2]=287}M=c[j>>2]|0;c[h>>2]=O;c[E>>2]=(a[O+4>>0]|64)&255;O=Le(M,h,h)|0;c[F>>2]=-1;c[G>>2]=-1;c[i>>2]=4;c[H>>2]=O;a[J>>0]=c[I>>2];b[I>>1]=Se(L,i)|0;a[K>>0]=(c[f>>2]|0)==8?8:7;c[f>>2]=9;break}case 91:{if(!((c[f>>2]|0)==8?(c[p>>2]|0)==(c[o>>2]|0):0))Re(k,f)|0;c[t>>2]=c[l>>2];if((c[v>>2]|0)==287)c[n>>2]=ke(e,r)|0;else{L=u;O=c[L+4>>2]|0;M=s;c[M>>2]=c[L>>2];c[M+4>>2]=O;c[v>>2]=287}Ge(e,h,0)|0;O=c[j>>2]|0;if((c[x>>2]|0)==(c[y>>2]|0))Ne(O,h);else Re(O,h)|0;if((c[n>>2]|0)!=93){Q=32;break a}c[t>>2]=c[l>>2];if((c[v>>2]|0)==287)c[n>>2]=ke(e,r)|0;else{O=u;M=c[O+4>>2]|0;L=s;c[L>>2]=c[O>>2];c[L+4>>2]=M;c[v>>2]=287}a[J>>0]=c[I>>2];b[I>>1]=Se(k,h)|0;a[K>>0]=(c[f>>2]|0)==8?8:7;c[f>>2]=9;break}case 58:{c[t>>2]=c[l>>2];if((c[v>>2]|0)==287){M=ke(e,r)|0;c[n>>2]=M;S=M}else{M=u;L=c[M>>2]|0;O=c[M+4>>2]|0;M=s;c[M>>2]=L;c[M+4>>2]=O;c[v>>2]=287;S=L}if((S|0)!=289){Q=41;break a}L=c[r>>2]|0;c[t>>2]=c[l>>2];if((c[v>>2]|0)==287)c[n>>2]=ke(e,r)|0;else{O=u;M=c[O+4>>2]|0;R=s;c[R>>2]=c[O>>2];c[R+4>>2]=M;c[v>>2]=287}M=c[j>>2]|0;c[h>>2]=L;c[A>>2]=(a[L+4>>0]|64)&255;L=Le(M,h,h)|0;c[B>>2]=-1;c[C>>2]=-1;c[i>>2]=4;c[D>>2]=L;bf(k,f,i);cf(e,f,m);break}case 123:case 290:case 40:{Ne(k,f);if(((c[f>>2]|0)==6?(L=c[q>>2]|0,(L&256|0)==0):0)?(L|0)>=(d[z>>0]|0|0):0){L=(a[w>>0]|0)+-1<<24>>24;a[w>>0]=L;T=L}else T=a[w>>0]|0;L=(T&255)+1|0;M=(c[k>>2]|0)+78|0;if((T&255)<(d[M>>0]|0))U=L&255;else{if((T&255)>248){Q=54;break a}R=L&255;a[M>>0]=R;U=R}a[w>>0]=U;Oe(k,f,(U&255)+-1|0);cf(e,f,m);break}default:{Q=58;break a}}if((Q|0)==17)me(e,289);else if((Q|0)==32)me(e,93);else if((Q|0)==41)me(e,289);else if((Q|0)==54)re(c[k+12>>2]|0,48351);else if((Q|0)==58){Ia=g;return}}function We(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;switch(e|0){case 26:{He(b,f);return}case 27:{$e(b,f);return}case 19:{Ne(b,f);if(((c[f>>2]|0)==6?(e=c[f+4>>2]|0,(e&256|0)==0):0)?(e|0)>=(d[b+46>>0]|0|0):0){e=b+48|0;a[e>>0]=(a[e>>0]|0)+-1<<24>>24}e=b+48|0;g=a[e>>0]|0;h=(g&255)+1|0;i=(c[b>>2]|0)+78|0;do if((g&255)>=(d[i>>0]|0))if((g&255)>248)re(c[b+12>>2]|0,48351);else{j=h&255;a[i>>0]=j;k=j;break}else k=h&255;while(0);a[e>>0]=k;Oe(b,f,(k&255)+-1|0);return}case 18:case 17:case 16:case 15:case 14:case 13:case 12:case 11:case 10:case 9:case 8:case 7:case 6:case 5:case 4:case 3:case 2:case 1:case 0:{if(((c[f>>2]|0)==5?(c[f+8>>2]|0)==-1:0)?(c[f+12>>2]|0)==-1:0)return;Se(b,f)|0;return}default:{Se(b,f)|0;return}}}function Xe(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;switch(e|0){case 26:{Ne(b,g);i=g+12|0;j=c[f+12>>2]|0;do if((j|0)!=-1){k=c[i>>2]|0;if((k|0)==-1){c[i>>2]=j;break}l=c[(c[b>>2]|0)+12>>2]|0;m=k;while(1){n=l+(m<<2)|0;o=c[n>>2]|0;k=(o>>>14)+-131071|0;p=(k|0)==-1?-1:m+1+k|0;if((p|0)==-1)break;else m=p}l=j+~m|0;if((((l|0)>-1?l:0-l|0)|0)>131071)re(c[b+12>>2]|0,47972);else{c[n>>2]=(l<<14)+2147467264|o&16383;break}}while(0);c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];return}case 27:{Ne(b,g);o=g+8|0;n=c[f+8>>2]|0;do if((n|0)!=-1){j=c[o>>2]|0;if((j|0)==-1){c[o>>2]=n;break}i=c[(c[b>>2]|0)+12>>2]|0;l=j;while(1){q=i+(l<<2)|0;r=c[q>>2]|0;j=(r>>>14)+-131071|0;p=(j|0)==-1?-1:l+1+j|0;if((p|0)==-1)break;else l=p}i=n+~l|0;if((((i|0)>-1?i:0-i|0)|0)>131071)re(c[b+12>>2]|0,47972);else{c[q>>2]=(i<<14)+2147467264|r&16383;break}}while(0);c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];return}case 19:{if((c[g+8>>2]|0)==(c[g+12>>2]|0))Ne(b,g);else Re(b,g)|0;if((c[g>>2]|0)==11?(r=c[(c[b>>2]|0)+12>>2]|0,q=g+4|0,n=r+(c[q>>2]<<2)|0,o=c[n>>2]|0,(o&63|0)==35):0){i=f+4|0;if(((c[f>>2]|0)==6?(m=c[i>>2]|0,(m&256|0)==0):0)?(m|0)>=(d[b+46>>0]|0|0):0){m=b+48|0;a[m>>0]=(a[m>>0]|0)+-1<<24>>24;m=r+(c[q>>2]<<2)|0;s=c[m>>2]|0;t=m}else{s=o;t=n}c[t>>2]=c[i>>2]<<23|s&8388607;c[f>>2]=11;c[i>>2]=c[q>>2];return}Ne(b,g);if(((c[g>>2]|0)==6?(q=c[g+4>>2]|0,(q&256|0)==0):0)?(q|0)>=(d[b+46>>0]|0|0):0){q=b+48|0;a[q>>0]=(a[q>>0]|0)+-1<<24>>24}q=b+48|0;i=a[q>>0]|0;s=(i&255)+1|0;t=(c[b>>2]|0)+78|0;do if((i&255)>=(d[t>>0]|0))if((i&255)>248)re(c[b+12>>2]|0,48351);else{n=s&255;a[t>>0]=n;u=n;break}else u=s&255;while(0);a[q>>0]=u;Oe(b,g,(u&255)+-1|0);Ze(b,35,f,g,h);return}case 18:case 17:case 16:case 15:case 14:case 13:case 12:case 11:case 10:case 9:case 8:case 7:case 6:case 5:case 4:case 3:case 2:case 1:case 0:{Ze(b,e+13|0,f,g,h);return}case 22:case 21:case 20:{_e(b,e+17|0,1,f,g);return}case 25:case 24:case 23:{_e(b,e+14|0,0,f,g);return}default:return}}function Ye(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;i=Ia;Ia=Ia+48|0;j=i+24|0;k=i;l=g+4|0;if(((c[l>>2]|0)+-7|0)>>>0>=3)re(f,58234);m=f+24|0;a:do switch(c[m>>2]|0){case 44:{c[f+16>>2]=c[f+4>>2];n=f+32|0;if((c[n>>2]|0)==287)c[m>>2]=ke(f,f+28|0)|0;else{o=n;p=c[o+4>>2]|0;q=f+24|0;c[q>>2]=c[o>>2];c[q+4>>2]=p;c[n>>2]=287}c[k>>2]=g;n=k+4|0;Ve(f,n);p=c[n>>2]|0;if((p|0)!=9){n=c[f+40>>2]|0;q=n+48|0;o=a[q>>0]|0;r=k+8|0;s=o&255;t=(p|0)==7;u=0;v=g;while(1){if((c[v+4>>2]|0)==9){w=v+8|0;x=w+3|0;if((p|0)==(d[x>>0]|0)?(y=w+2|0,(c[r>>2]|0)==(d[y>>0]|0)):0){a[x>>0]=7;a[y>>0]=o;z=1}else z=u;if(t?(c[r>>2]|0)==(b[w>>1]|0):0){b[w>>1]=s;A=1}else A=z}else A=u;v=c[v>>2]|0;if(!v)break;else u=A}if(A|0){oe(n,(o&255)<<6|((p|0)==7?0:5)|c[r>>2]<<23)|0;u=a[q>>0]|0;v=(u&255)+1|0;s=(c[n>>2]|0)+78|0;do if((u&255)>=(d[s>>0]|0))if((u&255)>248)re(c[n+12>>2]|0,48351);else{t=v&255;a[s>>0]=t;B=t;break}else B=v&255;while(0);a[q>>0]=B}}if(((e[(c[f+44>>2]|0)+38>>1]|0)+h|0)>200)Ce(c[f+40>>2]|0,200,48307);else{Ye(f,k,h+1|0);C=f+40|0;break a}break}case 61:{v=f+4|0;s=f+16|0;c[s>>2]=c[v>>2];n=f+32|0;if((c[n>>2]|0)==287)c[m>>2]=ke(f,f+28|0)|0;else{u=n;r=c[u+4>>2]|0;p=f+24|0;c[p>>2]=c[u>>2];c[p+4>>2]=r;c[n>>2]=287}Ge(f,j,0)|0;b:do if((c[m>>2]|0)==44){r=f+28|0;p=f+40|0;u=f+24|0;o=j+4|0;t=1;while(1){c[s>>2]=c[v>>2];if((c[n>>2]|0)==287)c[m>>2]=ke(f,r)|0;else{w=n;y=c[w+4>>2]|0;x=u;c[x>>2]=c[w>>2];c[x+4>>2]=y;c[n>>2]=287}D=c[p>>2]|0;Ne(D,j);if(((c[j>>2]|0)==6?(y=c[o>>2]|0,(y&256|0)==0):0)?(y|0)>=(d[D+46>>0]|0):0){y=D+48|0;a[y>>0]=(a[y>>0]|0)+-1<<24>>24}y=D+48|0;x=a[y>>0]|0;w=(x&255)+1|0;E=(c[D>>2]|0)+78|0;if((x&255)<(d[E>>0]|0))F=w&255;else{if((x&255)>248)break;x=w&255;a[E>>0]=x;F=x}a[y>>0]=F;Oe(D,j,(F&255)+-1|0);Ge(f,j,0)|0;y=t+1|0;if((c[m>>2]|0)==44)t=y;else{G=p;H=y;break b}}re(c[D+12>>2]|0,48351)}else{G=f+40|0;H=1}while(0);n=c[G>>2]|0;if((H|0)!=(h|0)){Pe(n,h,H,j);if((H|0)<=(h|0)){C=G;break a}v=(c[G>>2]|0)+48|0;a[v>>0]=h-H+(d[v>>0]|0);C=G;break a}switch(c[j>>2]|0){case 12:{c[j>>2]=6;v=j+4|0;c[v>>2]=(c[(c[(c[n>>2]|0)+12>>2]|0)+(c[v>>2]<<2)>>2]|0)>>>6&255;break}case 13:{v=(c[(c[n>>2]|0)+12>>2]|0)+(c[j+4>>2]<<2)|0;c[v>>2]=c[v>>2]&8388607|16777216;c[j>>2]=11;break}default:{}}Ue(n,l,j);Ia=i;return}default:me(f,61)}while(0);f=c[C>>2]|0;C=(d[f+48>>0]|0)+-1|0;c[j+8>>2]=-1;c[j+12>>2]=-1;c[j>>2]=6;c[j+4>>2]=C;Ue(f,l,j);Ia=i;return}function Ze(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;if(((((((c[f>>2]|0)==5?(c[f+8>>2]|0)==-1:0)?(c[f+12>>2]|0)==-1:0)?(c[g>>2]|0)==5:0)?(c[g+8>>2]|0)==-1:0)?(c[g+12>>2]|0)==-1:0)?(i=c[g+4>>2]|0,j=f+4|0,!((e|1|0)==17&(i|0)==0)):0){c[j>>2]=sd(e+-13|0,c[j>>2]|0,i)|0;return}if((e|2|0)==34)k=0;else k=Se(b,g)|0;i=Se(b,f)|0;if((i|0)>(k|0)){if(((c[f>>2]|0)==6?(j=c[f+4>>2]|0,(j&256|0)==0):0)?(j|0)>=(d[b+46>>0]|0|0):0){j=b+48|0;a[j>>0]=(a[j>>0]|0)+-1<<24>>24}if(((c[g>>2]|0)==6?(j=c[g+4>>2]|0,(j&256|0)==0):0)?(j|0)>=(d[b+46>>0]|0|0):0){j=b+48|0;a[j>>0]=(a[j>>0]|0)+-1<<24>>24}}else{if(((c[g>>2]|0)==6?(j=c[g+4>>2]|0,(j&256|0)==0):0)?(j|0)>=(d[b+46>>0]|0|0):0){j=b+48|0;a[j>>0]=(a[j>>0]|0)+-1<<24>>24}if(((c[f>>2]|0)==6?(j=c[f+4>>2]|0,(j&256|0)==0):0)?(j|0)>=(d[b+46>>0]|0|0):0){j=b+48|0;a[j>>0]=(a[j>>0]|0)+-1<<24>>24}}c[f+4>>2]=oe(b,k<<14|e|i<<23)|0;c[f>>2]=11;c[(c[(c[b>>2]|0)+20>>2]|0)+((c[b+20>>2]|0)+-1<<2)>>2]=h;return}function _e(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=Se(b,g)|0;j=Se(b,h)|0;if(((c[h>>2]|0)==6?(k=c[h+4>>2]|0,(k&256|0)==0):0)?(k|0)>=(d[b+46>>0]|0|0):0){k=b+48|0;a[k>>0]=(a[k>>0]|0)+-1<<24>>24}if(((c[g>>2]|0)==6?(k=c[g+4>>2]|0,(k&256|0)==0):0)?(k|0)>=(d[b+46>>0]|0|0):0){k=b+48|0;a[k>>0]=(a[k>>0]|0)+-1<<24>>24}k=(e|0)!=37&(f|0)==0;oe(b,(k?64:f<<6)|e|(k?j:i)<<23|(k?i:j)<<14)|0;j=b+28|0;i=c[j>>2]|0;c[j>>2]=-1;j=oe(b,2147450916)|0;if((i|0)==-1){l=j;m=g+4|0;c[m>>2]=l;c[g>>2]=10;return}if((j|0)==-1){l=i;m=g+4|0;c[m>>2]=l;c[g>>2]=10;return}k=c[(c[b>>2]|0)+12>>2]|0;e=j;while(1){n=k+(e<<2)|0;o=c[n>>2]|0;f=(o>>>14)+-131071|0;h=(f|0)==-1?-1:e+1+f|0;if((h|0)==-1)break;else e=h}k=i+~e|0;if((((k|0)>-1?k:0-k|0)|0)>131071)re(c[b+12>>2]|0,47972);c[n>>2]=(k<<14)+2147467264|o&16383;l=j;m=g+4|0;c[m>>2]=l;c[g>>2]=10;return}function $e(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;Ne(b,e);f=c[e>>2]|0;a:do switch(f|0){case 10:{g=c[e+4>>2]|0;h=29;break}case 3:case 1:break;case 11:{i=c[b>>2]|0;j=e+4|0;k=c[(c[i+12>>2]|0)+(c[j>>2]<<2)>>2]|0;l=b+20|0;if((k&63|0)==33){c[l>>2]=(c[l>>2]|0)+-1;oe(b,k>>>23<<6|40)|0;k=b+28|0;l=c[k>>2]|0;c[k>>2]=-1;k=oe(b,2147450916)|0;if((l|0)!=-1)if((k|0)!=-1){m=c[(c[b>>2]|0)+12>>2]|0;n=k;while(1){o=m+(n<<2)|0;p=c[o>>2]|0;q=(p>>>14)+-131071|0;r=(q|0)==-1?-1:n+1+q|0;if((r|0)==-1)break;else n=r}m=l+~n|0;if((((m|0)>-1?m:0-m|0)|0)>131071)re(c[b+12>>2]|0,47972);else{c[o>>2]=(m<<14)+2147467264|p&16383;g=k;h=29;break a}}else{s=l;h=30}else{g=k;h=29}}else{t=i;u=j;h=13}break}default:{m=e+4|0;if((f|0)==6){v=m;h=19}else{t=c[b>>2]|0;u=m;h=13}}}while(0);if((h|0)==13){f=b+48|0;p=a[f>>0]|0;o=(p&255)+1|0;m=t+78|0;do if((p&255)>=(d[m>>0]|0))if((p&255)>248)re(c[b+12>>2]|0,48351);else{t=o&255;a[m>>0]=t;w=t;break}else w=o&255;while(0);a[f>>0]=w;af(b,e,(w&255)+-1|0);if((c[e>>2]|0)==6){v=u;h=19}else{x=u;h=22}}if((h|0)==19){u=c[e+4>>2]|0;if((u&256|0)==0?(u|0)>=(d[b+46>>0]|0|0):0){u=b+48|0;a[u>>0]=(a[u>>0]|0)+-1<<24>>24;x=v;h=22}else{x=v;h=22}}do if((h|0)==22){oe(b,c[x>>2]<<23|32745)|0;v=b+28|0;u=c[v>>2]|0;c[v>>2]=-1;v=oe(b,2147450916)|0;if((u|0)!=-1)if((v|0)!=-1){w=c[(c[b>>2]|0)+12>>2]|0;f=v;while(1){y=w+(f<<2)|0;z=c[y>>2]|0;o=(z>>>14)+-131071|0;m=(o|0)==-1?-1:f+1+o|0;if((m|0)==-1)break;else f=m}w=u+~f|0;if((((w|0)>-1?w:0-w|0)|0)>131071)re(c[b+12>>2]|0,47972);else{c[y>>2]=(w<<14)+2147467264|z&16383;g=v;h=29;break}}else{s=u;h=30}else{g=v;h=29}}while(0);if((h|0)==29?(g|0)!=-1:0){s=g;h=30}do if((h|0)==30){g=e+8|0;z=c[g>>2]|0;if((z|0)==-1){c[g>>2]=s;break}g=c[(c[b>>2]|0)+12>>2]|0;y=z;while(1){A=g+(y<<2)|0;B=c[A>>2]|0;z=(B>>>14)+-131071|0;x=(z|0)==-1?-1:y+1+z|0;if((x|0)==-1)break;else y=x}g=s+~y|0;if((((g|0)>-1?g:0-g|0)|0)>131071)re(c[b+12>>2]|0,47972);else{c[A>>2]=(g<<14)+2147467264|B&16383;break}}while(0);B=e+12|0;e=c[B>>2]|0;c[b+24>>2]=c[b+20>>2];A=b+28|0;if((e|0)==-1){c[B>>2]=-1;return}s=c[A>>2]|0;if((s|0)==-1){c[A>>2]=e;c[B>>2]=-1;return}A=c[(c[b>>2]|0)+12>>2]|0;h=s;while(1){C=A+(h<<2)|0;D=c[C>>2]|0;s=(D>>>14)+-131071|0;g=(s|0)==-1?-1:h+1+s|0;if((g|0)==-1)break;else h=g}A=e+~h|0;if((((A|0)>-1?A:0-A|0)|0)>131071)re(c[b+12>>2]|0,47972);c[C>>2]=(A<<14)+2147467264|D&16383;c[B>>2]=-1;return}function af(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=Ia;Ia=Ia+16|0;g=f+8|0;h=f;Ne(b,d);i=c[d>>2]|0;a:do switch(i|0){case 1:{j=e+1|0;k=c[b+20>>2]|0;do if((k|0)>(c[b+24>>2]|0)?(l=(c[(c[b>>2]|0)+12>>2]|0)+(k+-1<<2)|0,m=c[l>>2]|0,(m&63|0)==4):0){n=m>>>6&255;o=n+(m>>>23)|0;if((n|0)>(e|0)|(o+1|0)<(e|0)?(n|0)<(e|0)|(n|0)>(j|0):0)break;p=(n|0)<(e|0)?n:e;c[l>>2]=p<<6&16320|m&8372287|((o|0)>(e|0)?o:e)-p<<23;break a}while(0);oe(b,e<<6|4)|0;break}case 2:case 3:{oe(b,e<<6|((i|0)==2&1)<<23|3)|0;break}case 4:{j=c[d+4>>2]|0;k=e<<6;if((j|0)<262144){oe(b,k|j<<14|1)|0;break a}else{oe(b,k|2)|0;oe(b,j<<6|52)|0;break a}break}case 5:{j=c[d+4>>2]|0;c[g>>2]=j;k=c[(c[b+12>>2]|0)+44>>2]|0;c[h>>2]=j;c[h+4>>2]=3;if(!j){j=k+8|0;p=c[j>>2]|0;c[j>>2]=p+8;o=bd(k,g,4)|0;c[p>>2]=o;c[p+4>>2]=(a[o+4>>0]|64)&255;o=Le(b,(c[j>>2]|0)+-8|0,h)|0;c[j>>2]=(c[j>>2]|0)+-8;q=o}else q=Le(b,h,h)|0;o=e<<6;if((q|0)<262144){oe(b,o|q<<14|1)|0;break a}else{oe(b,o|2)|0;oe(b,q<<6|52)|0;break a}break}case 11:{o=(c[(c[b>>2]|0)+12>>2]|0)+(c[d+4>>2]<<2)|0;c[o>>2]=c[o>>2]&-16321|e<<6&16320;break}case 6:{o=c[d+4>>2]|0;if((o|0)!=(e|0))oe(b,o<<23|e<<6)|0;break}default:{Ia=f;return}}while(0);c[d+4>>2]=e;c[d>>2]=6;Ia=f;return}function bf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;Re(b,e)|0;g=e+4|0;h=c[g>>2]|0;if((c[e>>2]|0)==6&(h&256|0)==0?(h|0)>=(d[b+46>>0]|0|0):0){i=b+48|0;a[i>>0]=(a[i>>0]|0)+-1<<24>>24}i=b+48|0;c[g>>2]=d[i>>0];c[e>>2]=6;e=(d[i>>0]|0)+2|0;j=(c[b>>2]|0)+78|0;do if(e>>>0>(d[j>>0]|0)>>>0)if(e>>>0>249)re(c[b+12>>2]|0,48351);else{k=e&255;a[j>>0]=k;l=k;break}else l=e&255;while(0);a[i>>0]=l;l=c[g>>2]|0;oe(b,h<<23|l<<6|(Se(b,f)|0)<<14|12)|0;if((c[f>>2]|0)!=6)return;l=c[f+4>>2]|0;if(l&256|0)return;if((l|0)<(d[b+46>>0]|0|0))return;a[i>>0]=(a[i>>0]|0)+-1<<24>>24;return}function cf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;g=Ia;Ia=Ia+32|0;h=g+16|0;i=g;j=b+40|0;k=c[j>>2]|0;l=b+24|0;a:do switch(c[l>>2]|0){case 40:{m=b+4|0;n=b+16|0;c[n>>2]=c[m>>2];o=b+32|0;if((c[o>>2]|0)==287){p=ke(b,b+28|0)|0;c[l>>2]=p;q=p}else{p=o;r=c[p>>2]|0;s=c[p+4>>2]|0;p=b+24|0;c[p>>2]=r;c[p+4>>2]=s;c[o>>2]=287;q=r}b:do if((q|0)==41)c[i>>2]=0;else{Ge(b,i,0)|0;c:do if((c[l>>2]|0)==44){r=b+28|0;s=b+24|0;p=i+4|0;while(1){c[n>>2]=c[m>>2];if((c[o>>2]|0)==287)c[l>>2]=ke(b,r)|0;else{t=o;u=c[t+4>>2]|0;v=s;c[v>>2]=c[t>>2];c[v+4>>2]=u;c[o>>2]=287}w=c[j>>2]|0;Ne(w,i);if(((c[i>>2]|0)==6?(u=c[p>>2]|0,(u&256|0)==0):0)?(u|0)>=(d[w+46>>0]|0|0):0){u=w+48|0;a[u>>0]=(a[u>>0]|0)+-1<<24>>24}u=w+48|0;v=a[u>>0]|0;t=(v&255)+1|0;x=(c[w>>2]|0)+78|0;if((v&255)<(d[x>>0]|0))y=t&255;else{if((v&255)>248)break;v=t&255;a[x>>0]=v;y=v}a[u>>0]=y;Oe(w,i,(y&255)+-1|0);Ge(b,i,0)|0;if((c[l>>2]|0)!=44){z=i;break c}}re(c[w+12>>2]|0,48351)}else z=i;while(0);switch(c[z>>2]|0){case 12:{p=(c[(c[k>>2]|0)+12>>2]|0)+(c[i+4>>2]<<2)|0;c[p>>2]=c[p>>2]&-8372225;break b;break}case 13:break;default:break b}p=c[k>>2]|0;s=c[p+12>>2]|0;r=i+4|0;u=s+(c[r>>2]<<2)|0;c[u>>2]=c[u>>2]&8388607;u=s+(c[r>>2]<<2)|0;r=k+48|0;s=a[r>>0]|0;v=s&255;c[u>>2]=v<<6|c[u>>2]&-16321;u=v+1|0;v=p+78|0;do if((s&255)>=(d[v>>0]|0))if((s&255)>248)re(c[k+12>>2]|0,48351);else{p=u&255;a[v>>0]=p;A=p;break}else A=u&255;while(0);a[r>>0]=A}while(0);Fe(b,41,40,f);break}case 123:{df(b,i);break}case 290:{o=b+28|0;m=c[o>>2]|0;c[h>>2]=m;c[h+4>>2]=(a[m+4>>0]|64)&255;m=Le(k,h,h)|0;c[i+8>>2]=-1;c[i+12>>2]=-1;c[i>>2]=4;c[i+4>>2]=m;c[b+16>>2]=c[b+4>>2];m=b+32|0;if((c[m>>2]|0)==287){c[l>>2]=ke(b,o)|0;break a}else{o=m;n=c[o+4>>2]|0;u=b+24|0;c[u>>2]=c[o>>2];c[u+4>>2]=n;c[m>>2]=287;break a}break}default:re(b,48529)}while(0);b=e+4|0;l=c[b>>2]|0;switch(c[i>>2]|0){case 0:{B=k+48|0;break}case 13:case 12:{C=0;D=l<<6;E=D|C;F=E|32810;G=oe(k,F)|0;H=e+8|0;c[H>>2]=-1;I=e+12|0;c[I>>2]=-1;c[e>>2]=12;c[b>>2]=G;J=c[k>>2]|0;K=J+20|0;L=c[K>>2]|0;M=k+20|0;N=c[M>>2]|0;O=N+-1|0;P=L+(O<<2)|0;c[P>>2]=f;Q=l+1|0;R=Q&255;S=k+48|0;a[S>>0]=R;Ia=g;return}default:{Ne(k,i);if(((c[i>>2]|0)==6?(h=c[i+4>>2]|0,(h&256|0)==0):0)?(h|0)>=(d[k+46>>0]|0|0):0){h=k+48|0;a[h>>0]=(a[h>>0]|0)+-1<<24>>24}h=k+48|0;A=a[h>>0]|0;z=(A&255)+1|0;w=(c[k>>2]|0)+78|0;do if((A&255)>=(d[w>>0]|0))if((A&255)>248)re(c[k+12>>2]|0,48351);else{y=z&255;a[w>>0]=y;T=y;break}else T=z&255;while(0);a[h>>0]=T;Oe(k,i,(T&255)+-1|0);B=h}}C=((l^511)+(d[B>>0]|0)<<23)+8388608|0;D=l<<6;E=D|C;F=E|32810;G=oe(k,F)|0;H=e+8|0;c[H>>2]=-1;I=e+12|0;c[I>>2]=-1;c[e>>2]=12;c[b>>2]=G;J=c[k>>2]|0;K=J+20|0;L=c[K>>2]|0;M=k+20|0;N=c[M>>2]|0;O=N+-1|0;P=L+(O<<2)|0;c[P>>2]=f;Q=l+1|0;R=Q&255;S=k+48|0;a[S>>0]=R;Ia=g;return}function df(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;f=Ia;Ia=Ia+32|0;g=f;h=b+40|0;i=c[h>>2]|0;j=b+4|0;k=c[j>>2]|0;l=oe(i,11)|0;m=g+28|0;c[m>>2]=0;n=g+20|0;c[n>>2]=0;o=g+24|0;c[o>>2]=0;p=g+16|0;c[p>>2]=e;c[e+8>>2]=-1;c[e+12>>2]=-1;c[e>>2]=11;q=e+4|0;c[q>>2]=l;c[g+8>>2]=-1;c[g+12>>2]=-1;c[g>>2]=0;r=g+4|0;c[r>>2]=0;s=c[h>>2]|0;Ne(s,e);if(((c[e>>2]|0)==6?(t=c[q>>2]|0,(t&256|0)==0):0)?(t|0)>=(d[s+46>>0]|0|0):0){t=s+48|0;a[t>>0]=(a[t>>0]|0)+-1<<24>>24}t=s+48|0;q=a[t>>0]|0;u=(q&255)+1|0;v=(c[s>>2]|0)+78|0;do if((q&255)>=(d[v>>0]|0))if((q&255)>248)re(c[s+12>>2]|0,48351);else{w=u&255;a[v>>0]=w;x=w;break}else x=u&255;while(0);a[t>>0]=x;Oe(s,e,(x&255)+-1|0);x=b+24|0;if((c[x>>2]|0)!=123)me(b,123);e=b+16|0;c[e>>2]=c[j>>2];s=b+32|0;if((c[s>>2]|0)==287){t=ke(b,b+28|0)|0;c[x>>2]=t;y=t}else{t=s;u=c[t>>2]|0;v=c[t+4>>2]|0;t=b+24|0;c[t>>2]=u;c[t+4>>2]=v;c[s>>2]=287;y=u}a:do if((y|0)!=125){u=b+36|0;v=b+32|0;t=i+48|0;q=i+46|0;w=b+28|0;z=b+24|0;A=0;b:while(1){if(A|0){Ne(i,g);if(((c[g>>2]|0)==6?(B=c[r>>2]|0,(B&256|0)==0):0)?(B|0)>=(d[q>>0]|0|0):0){B=(a[t>>0]|0)+-1<<24>>24;a[t>>0]=B;C=B}else C=a[t>>0]|0;B=(C&255)+1|0;D=(c[i>>2]|0)+78|0;if((C&255)<(d[D>>0]|0))E=B&255;else{if((C&255)>248){F=28;break}G=B&255;a[D>>0]=G;E=G}a[t>>0]=E;Oe(i,g,(E&255)+-1|0);c[g>>2]=0;if((c[m>>2]|0)==50){G=c[(c[p>>2]|0)+4>>2]|0;D=c[o>>2]|0;B=((D+-1|0)/50|0)+1|0;H=G<<6|419430449;if((D|0)<25551)oe(i,B<<14|H)|0;else{oe(i,H)|0;oe(i,B<<6|52)|0}a[t>>0]=G+1;c[m>>2]=0}}c:do switch(c[x>>2]|0){case 289:{G=ke(b,u)|0;c[v>>2]=G;if((G|0)==61){ef(b,g);break c}Ge(b,g,0)|0;G=c[o>>2]|0;if((G|0)>2147483645){F=38;break b}c[o>>2]=G+1;c[m>>2]=(c[m>>2]|0)+1;break}case 91:{ef(b,g);break}default:{Ge(b,g,0)|0;G=c[o>>2]|0;if((G|0)>2147483645){F=43;break b}c[o>>2]=G+1;c[m>>2]=(c[m>>2]|0)+1}}while(0);d:do switch(c[x>>2]|0){case 44:{c[e>>2]=c[j>>2];if((c[s>>2]|0)==287){G=ke(b,w)|0;c[x>>2]=G;I=G;break d}else{G=s;B=c[G>>2]|0;H=c[G+4>>2]|0;G=z;c[G>>2]=B;c[G+4>>2]=H;c[s>>2]=287;I=B;break d}break}case 59:{c[e>>2]=c[j>>2];if((c[s>>2]|0)==287){B=ke(b,w)|0;c[x>>2]=B;I=B;break d}else{B=s;H=c[B>>2]|0;G=c[B+4>>2]|0;B=z;c[B>>2]=H;c[B+4>>2]=G;c[s>>2]=287;I=H;break d}break}default:break a}while(0);if((I|0)==125)break a;A=c[g>>2]|0}if((F|0)==28)re(c[i+12>>2]|0,48351);else if((F|0)==38)Ce(c[h>>2]|0,2147483645,48557);else if((F|0)==43)Ce(c[h>>2]|0,2147483645,48557)}while(0);Fe(b,125,123,k);k=c[m>>2]|0;do if(k|0){switch(c[g>>2]|0){case 0:{J=k;F=75;break}case 12:{b=(c[(c[i>>2]|0)+12>>2]|0)+(c[r>>2]<<2)|0;c[b>>2]=c[b>>2]&-8372225;F=61;break}case 13:{b=c[i>>2]|0;h=c[b+12>>2]|0;I=h+(c[r>>2]<<2)|0;c[I>>2]=c[I>>2]&8388607;I=h+(c[r>>2]<<2)|0;h=i+48|0;s=a[h>>0]|0;x=s&255;c[I>>2]=x<<6|c[I>>2]&-16321;I=x+1|0;x=b+78|0;do if((s&255)>=(d[x>>0]|0))if((s&255)>248)re(c[i+12>>2]|0,48351);else{b=I&255;a[x>>0]=b;K=b;break}else K=I&255;while(0);a[h>>0]=K;F=61;break}default:{Ne(i,g);if(((c[g>>2]|0)==6?(I=c[r>>2]|0,(I&256|0)==0):0)?(I|0)>=(d[i+46>>0]|0|0):0){I=i+48|0;a[I>>0]=(a[I>>0]|0)+-1<<24>>24}I=i+48|0;x=a[I>>0]|0;s=(x&255)+1|0;b=(c[i>>2]|0)+78|0;do if((x&255)>=(d[b>>0]|0))if((x&255)>248)re(c[i+12>>2]|0,48351);else{j=s&255;a[b>>0]=j;L=j;break}else L=s&255;while(0);a[I>>0]=L;Oe(i,g,(L&255)+-1|0);J=c[m>>2]|0;F=75}}if((F|0)==61){s=c[(c[p>>2]|0)+4>>2]|0;b=c[o>>2]|0;x=((b+-1|0)/50|0)+1|0;h=s<<6|49;if((b|0)<25551)oe(i,x<<14|h)|0;else{oe(i,h)|0;oe(i,x<<6|52)|0}a[i+48>>0]=s+1;c[o>>2]=(c[o>>2]|0)+-1;break}else if((F|0)==75){s=c[(c[p>>2]|0)+4>>2]|0;x=c[o>>2]|0;h=((x+-1|0)/50|0)+1|0;b=((J|0)==-1?49:J<<23|49)|s<<6;if((x|0)<25551)oe(i,h<<14|b)|0;else{oe(i,b)|0;oe(i,h<<6|52)|0}a[i+48>>0]=s+1;break}}while(0);J=(c[(c[i>>2]|0)+12>>2]|0)+(l<<2)|0;l=c[J>>2]&8388607;i=c[o>>2]|0;if(i>>>0<8)M=i;else{if(i>>>0>15){o=1;p=i;do{F=p+1|0;p=F>>>1;o=o+1|0}while(F>>>0>31);N=o<<3;O=p}else{N=8;O=i}M=N|O+-8}O=M<<23|l;c[J>>2]=O;l=O&-8372225;O=c[n>>2]|0;if(O>>>0<8){P=O;Q=P<<14;R=Q&8372224;S=R|l;c[J>>2]=S;Ia=f;return}if(O>>>0>15){n=1;M=O;do{N=M+1|0;M=N>>>1;n=n+1|0}while(N>>>0>31);T=n<<3;U=M}else{T=8;U=O}P=T|U+-8;Q=P<<14;R=Q&8372224;S=R|l;c[J>>2]=S;Ia=f;return}function ef(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;e=Ia;Ia=Ia+48|0;f=e+32|0;g=e+16|0;h=e;i=b+40|0;j=c[i>>2]|0;k=j+48|0;l=a[k>>0]|0;m=b+24|0;do if((c[m>>2]|0)!=289){n=b+4|0;o=b+16|0;c[o>>2]=c[n>>2];p=b+32|0;if((c[p>>2]|0)==287)c[m>>2]=ke(b,b+28|0)|0;else{q=p;r=c[q+4>>2]|0;s=b+24|0;c[s>>2]=c[q>>2];c[s+4>>2]=r;c[p>>2]=287}Ge(b,g,0)|0;r=c[i>>2]|0;if((c[g+8>>2]|0)==(c[g+12>>2]|0))Ne(r,g);else Re(r,g)|0;if((c[m>>2]|0)!=93)me(b,93);c[o>>2]=c[n>>2];if((c[p>>2]|0)==287){n=ke(b,b+28|0)|0;c[m>>2]=n;t=n;break}else{n=p;o=c[n>>2]|0;r=c[n+4>>2]|0;n=b+24|0;c[n>>2]=o;c[n+4>>2]=r;c[p>>2]=287;t=o;break}}else{if((c[d+20>>2]|0)>2147483645)Ce(j,2147483645,48557);o=b+28|0;p=c[o>>2]|0;c[b+16>>2]=c[b+4>>2];r=b+32|0;if((c[r>>2]|0)==287){c[m>>2]=ke(b,o)|0;u=c[i>>2]|0}else{o=r;n=c[o+4>>2]|0;s=b+24|0;c[s>>2]=c[o>>2];c[s+4>>2]=n;c[r>>2]=287;u=j}c[f>>2]=p;c[f+4>>2]=(a[p+4>>0]|64)&255;p=Le(u,f,f)|0;c[g+8>>2]=-1;c[g+12>>2]=-1;c[g>>2]=4;c[g+4>>2]=p;t=c[m>>2]|0}while(0);f=d+20|0;c[f>>2]=(c[f>>2]|0)+1;if((t|0)!=61)me(b,61);c[b+16>>2]=c[b+4>>2];t=b+32|0;if((c[t>>2]|0)==287){c[m>>2]=ke(b,b+28|0)|0;v=Se(j,g)|0;Ge(b,h,0)|0;w=d+16|0;x=c[w>>2]|0;y=x+4|0;z=c[y>>2]|0;A=Se(j,h)|0;B=z<<6;C=v<<23;D=A<<14;E=C|B;F=E|D;G=F|10;oe(j,G)|0;a[k>>0]=l;Ia=e;return}else{m=t;f=c[m+4>>2]|0;u=b+24|0;c[u>>2]=c[m>>2];c[u+4>>2]=f;c[t>>2]=287;v=Se(j,g)|0;Ge(b,h,0)|0;w=d+16|0;x=c[w>>2]|0;y=x+4|0;z=c[y>>2]|0;A=Se(j,h)|0;B=z<<6;C=v<<23;D=A<<14;E=C|B;F=E|D;G=F|10;oe(j,G)|0;a[k>>0]=l;Ia=e;return}}function ff(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(!e){i=0;return i|0}j=a[e+46>>0]|0;k=f+12|0;l=(j&255)+-1|0;m=c[e>>2]|0;a:do if(j<<24>>24){n=c[e+40>>2]|0;o=c[m+24>>2]|0;p=c[c[(c[e+12>>2]|0)+56>>2]>>2]|0;q=a[f+4>>0]|0;r=f+16|0;b:do if(q<<24>>24==4){s=l;while(1){t=c[o+((b[p+(s+n<<1)>>1]|0)*12|0)>>2]|0;if((t|0)==(f|0)&(a[t+4>>0]|0)==4){u=s;break b}if((s|0)>0)s=s+-1|0;else break a}}else{s=l;while(1){t=c[o+((b[p+(s+n<<1)>>1]|0)*12|0)>>2]|0;if(q<<24>>24==(a[t+4>>0]|0)){v=c[k>>2]|0;if((t|0)==(f|0)){u=s;break b}if((v|0)==(c[t+12>>2]|0)?(tt(r,t+16|0,v)|0)==0:0){u=s;break b}}if((s|0)>0)s=s+-1|0;else break a}}while(0);if((u|0)>-1){c[g+8>>2]=-1;c[g+12>>2]=-1;c[g>>2]=7;c[g+4>>2]=u;if(h|0){i=7;return i|0}r=e+16|0;do r=c[r>>2]|0;while((u|0)<(d[r+8>>0]|0));a[r+9>>0]=1;i=7;return i|0}}while(0);u=c[m+28>>2]|0;m=a[e+47>>0]|0;c:do if(!(m<<24>>24))w=29;else{h=a[f+4>>0]|0;l=f+16|0;j=m&255;if(h<<24>>24==4){q=0;while(1){n=c[u+(q<<3)>>2]|0;if((a[n+4>>0]|0)==4&(n|0)==(f|0)){x=q;break c}q=q+1|0;if(q>>>0>=j>>>0){w=29;break c}}}q=0;while(1){r=c[u+(q<<3)>>2]|0;if((a[r+4>>0]|0)==h<<24>>24){n=c[r+12>>2]|0;if((r|0)==(f|0)){x=q;break c}if((n|0)==(c[k>>2]|0)?(tt(r+16|0,l,n)|0)==0:0){x=q;break c}}q=q+1|0;if(q>>>0>=j>>>0){w=29;break}}}while(0);do if((w|0)==29)if(!(ff(c[e+8>>2]|0,f,g,0)|0)){i=0;return i|0}else{x=je(e,f,g)|0;break}while(0);c[g+8>>2]=-1;c[g+12>>2]=-1;c[g>>2]=8;c[g+4>>2]=x;i=8;return i|0}function gf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=Ia;Ia=Ia+16|0;i=h;c[i+12>>2]=-1;c[i+8>>2]=-1;c[i>>2]=5;c[i+4>>2]=0;switch(e|0){case 0:{if(((c[f>>2]|0)==5?(c[f+8>>2]|0)==-1:0)?(c[f+12>>2]|0)==-1:0){e=f+4|0;c[e>>2]=0-(c[e>>2]|0);Ia=h;return}Re(b,f)|0;Ze(b,32,f,i,g);Ia=h;return}case 14:{Re(b,f)|0;Ze(b,27,f,i,g);Ia=h;return}case 16:{Re(b,f)|0;Ze(b,29,f,i,g);Ia=h;return}case 17:{Re(b,f)|0;Ze(b,30,f,i,g);Ia=h;return}case 18:{Re(b,f)|0;Ze(b,31,f,i,g);Ia=h;return}case 1:{Ne(b,f);switch(c[f>>2]|0){case 3:case 1:{c[f>>2]=2;break}case 2:case 5:case 4:{c[f>>2]=3;break}case 10:{e=c[f+4>>2]|0;j=(c[(c[b>>2]|0)+12>>2]|0)+(e<<2)|0;if((e|0)>0?(e=j+-4|0,k=c[e>>2]|0,((k&63)+-37|0)>>>0<5):0){l=k;m=e}else{l=c[j>>2]|0;m=j}c[m>>2]=((l&16320|0)==0&1)<<6|l&-16321;break}case 6:{n=25;break}case 11:{l=b+48|0;m=a[l>>0]|0;j=(m&255)+1|0;e=(c[b>>2]|0)+78|0;do if((m&255)>=(d[e>>0]|0))if((m&255)>248)re(c[b+12>>2]|0,48351);else{k=j&255;a[e>>0]=k;o=k;break}else o=j&255;while(0);a[l>>0]=o;af(b,f,(o&255)+-1|0);if((c[f>>2]|0)==6)n=25;else{p=f+4|0;n=28}break}default:{}}if((n|0)==25){o=f+4|0;l=c[o>>2]|0;if((l&256|0)==0?(l|0)>=(d[b+46>>0]|0|0):0){l=b+48|0;a[l>>0]=(a[l>>0]|0)+-1<<24>>24;p=o;n=28}else{p=o;n=28}}if((n|0)==28){c[p>>2]=oe(b,c[p>>2]<<23|33)|0;c[f>>2]=11}p=f+12|0;n=c[p>>2]|0;o=f+8|0;l=c[o>>2]|0;c[p>>2]=l;c[o>>2]=n;if((l|0)==-1)q=n;else{n=c[(c[b>>2]|0)+12>>2]|0;p=l;do{l=n+(p<<2)|0;if((p|0)>0?(j=l+-4|0,e=c[j>>2]|0,((e&63)+-37|0)>>>0<5):0){r=e;s=j}else{r=c[l>>2]|0;s=l}if((r&63|0)==41)c[s>>2]=r&8372224|r>>>23<<6|40;j=((c[l>>2]|0)>>>14)+-131071|0;p=(j|0)==-1?-1:p+1+j|0}while((p|0)!=-1);q=c[o>>2]|0}if((q|0)==-1){Ia=h;return}o=c[(c[b>>2]|0)+12>>2]|0;p=q;do{q=o+(p<<2)|0;if((p|0)>0?(r=q+-4|0,s=c[r>>2]|0,((s&63)+-37|0)>>>0<5):0){t=s;u=r}else{t=c[q>>2]|0;u=q}if((t&63|0)==41)c[u>>2]=t&8372224|t>>>23<<6|40;r=((c[q>>2]|0)>>>14)+-131071|0;p=(r|0)==-1?-1:p+1+r|0}while((p|0)!=-1);Ia=h;return}case 2:{Re(b,f)|0;Ze(b,34,f,i,g);Ia=h;return}default:{Ia=h;return}}}function hf(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=Ia;Ia=Ia+16|0;e=b;f=c[a>>2]|0;g=a+48|0;h=c[g>>2]|0;i=c[h>>2]|0;c[h>>2]=i+-1;if(!i){i=Oa[c[h+8>>2]&7](c[h+16>>2]|0,c[h+12>>2]|0,e)|0;j=c[e>>2]|0;if((i|0)==0|(j|0)==0)k=-1;else{c[h>>2]=j+-1;c[h+4>>2]=i+1;k=d[i>>0]|0}l=k}else{k=h+4|0;h=c[k>>2]|0;c[k>>2]=h+1;l=d[h>>0]|0}c[a>>2]=l;switch(l|0){case 13:case 10:{if((l|0)!=(f|0)){f=c[g>>2]|0;g=c[f>>2]|0;c[f>>2]=g+-1;if(!g){g=Oa[c[f+8>>2]&7](c[f+16>>2]|0,c[f+12>>2]|0,e)|0;l=c[e>>2]|0;if((g|0)==0|(l|0)==0)m=-1;else{c[f>>2]=l+-1;c[f+4>>2]=g+1;m=d[g>>0]|0}n=m}else{m=f+4|0;f=c[m>>2]|0;c[m>>2]=f+1;n=d[f>>0]|0}c[a>>2]=n}break}default:{}}n=a+4|0;f=c[n>>2]|0;c[n>>2]=f+1;if((f|0)>2147483643)re(a,49004);else{c[a+8>>2]=1;Ia=b;return}}function jf(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;e=Ia;Ia=Ia+16|0;f=e;g=c[b>>2]|0;h=b+52|0;i=c[h>>2]|0;j=i+4|0;k=c[j>>2]|0;l=k+1|0;m=i+8|0;n=c[m>>2]|0;if(l>>>0>n>>>0){if(n>>>0>2147483645)Ae(b,48200,0);o=n<<1;p=c[b+44>>2]|0;if((o|0)==-2)Lc(p);q=c[i>>2]|0;r=c[p+12>>2]|0;s=(q|0)==0;t=r+4|0;u=Pa[c[r>>2]&3](c[t>>2]|0,q,n,o)|0;if((o|0)!=0&(u|0)==0){if(!(a[r+51>>0]|0))yc(p,4);Kc(p,1);v=Pa[c[r>>2]&3](c[t>>2]|0,q,n,o)|0;if(!v)yc(p,4);else w=v}else w=u;u=r+12|0;c[u>>2]=(s?0:0-n|0)+o+(c[u>>2]|0);c[i>>2]=w;c[m>>2]=o;o=c[j>>2]|0;x=w;y=o;z=o+1|0}else{x=c[i>>2]|0;y=k;z=l}c[j>>2]=z;a[x+y>>0]=g;y=b+48|0;x=c[y>>2]|0;z=c[x>>2]|0;c[x>>2]=z+-1;if(!z){z=Oa[c[x+8>>2]&7](c[x+16>>2]|0,c[x+12>>2]|0,f)|0;j=c[f>>2]|0;if((z|0)==0|(j|0)==0)A=-1;else{c[x>>2]=j+-1;c[x+4>>2]=z+1;A=d[z>>0]|0}B=A}else{A=x+4|0;x=c[A>>2]|0;c[A>>2]=x+1;B=d[x>>0]|0}c[b>>2]=B;if((B|0)!=61){C=B;D=0;E=(C|0)!=(g|0);F=E<<31>>31;G=D^F;Ia=e;return G|0}B=b+44|0;x=0;while(1){A=c[h>>2]|0;z=A+4|0;j=c[z>>2]|0;l=j+1|0;k=A+8|0;i=c[k>>2]|0;if(l>>>0>i>>>0){if(i>>>0>2147483645){H=22;break}o=i<<1;I=c[B>>2]|0;if((o|0)==-2){H=24;break}w=c[A>>2]|0;m=c[I+12>>2]|0;u=(w|0)==0;n=m+4|0;s=Pa[c[m>>2]&3](c[n>>2]|0,w,i,o)|0;if((o|0)!=0&(s|0)==0){if(!(a[m+51>>0]|0)){H=28;break}Kc(I,1);r=Pa[c[m>>2]&3](c[n>>2]|0,w,i,o)|0;if(!r){H=28;break}else J=r}else J=s;s=m+12|0;c[s>>2]=(u?0:0-i|0)+o+(c[s>>2]|0);c[A>>2]=J;c[k>>2]=o;o=c[z>>2]|0;K=J;L=o;M=o+1|0}else{K=c[A>>2]|0;L=j;M=l}c[z>>2]=M;a[K+L>>0]=61;z=c[y>>2]|0;l=c[z>>2]|0;c[z>>2]=l+-1;if(!l){l=Oa[c[z+8>>2]&7](c[z+16>>2]|0,c[z+12>>2]|0,f)|0;j=c[f>>2]|0;if((l|0)==0|(j|0)==0)N=-1;else{c[z>>2]=j+-1;c[z+4>>2]=l+1;N=d[l>>0]|0}O=N}else{l=z+4|0;z=c[l>>2]|0;c[l>>2]=z+1;O=d[z>>0]|0}c[b>>2]=O;z=x+1|0;if((O|0)==61)x=z;else{C=O;D=z;H=36;break}}if((H|0)==22)Ae(b,48200,0);else if((H|0)==24)Lc(I);else if((H|0)==28)yc(I,4);else if((H|0)==36){E=(C|0)!=(g|0);F=E<<31>>31;G=D^F;Ia=e;return G|0}return 0}function kf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;g=Ia;Ia=Ia+16|0;h=g;i=c[b>>2]|0;j=b+52|0;k=c[j>>2]|0;l=k+4|0;m=c[l>>2]|0;n=m+1|0;o=k+8|0;p=c[o>>2]|0;if(n>>>0>p>>>0){if(p>>>0>2147483645)Ae(b,48200,0);q=p<<1;r=c[b+44>>2]|0;if((q|0)==-2)Lc(r);s=c[k>>2]|0;t=c[r+12>>2]|0;u=(s|0)==0;v=t+4|0;w=Pa[c[t>>2]&3](c[v>>2]|0,s,p,q)|0;if((q|0)!=0&(w|0)==0){if(!(a[t+51>>0]|0))yc(r,4);Kc(r,1);x=Pa[c[t>>2]&3](c[v>>2]|0,s,p,q)|0;if(!x)yc(r,4);else y=x}else y=w;w=t+12|0;c[w>>2]=(u?0:0-p|0)+q+(c[w>>2]|0);c[k>>2]=y;c[o>>2]=q;q=c[l>>2]|0;z=y;A=q;B=q+1|0}else{z=c[k>>2]|0;A=m;B=n}c[l>>2]=B;a[z+A>>0]=i;i=b+48|0;A=c[i>>2]|0;z=c[A>>2]|0;c[A>>2]=z+-1;if(!z){z=Oa[c[A+8>>2]&7](c[A+16>>2]|0,c[A+12>>2]|0,h)|0;B=c[h>>2]|0;if((z|0)==0|(B|0)==0)C=-1;else{c[A>>2]=B+-1;c[A+4>>2]=z+1;C=d[z>>0]|0}D=C}else{C=A+4|0;A=c[C>>2]|0;c[C>>2]=A+1;D=d[A>>0]|0}c[b>>2]=D;switch(D|0){case 13:case 10:{hf(b);break}default:{}}D=(e|0)==0;A=b+44|0;a:while(1){C=c[b>>2]|0;b:do switch(C|0){case -1:{E=21;break a;break}case 93:{if((jf(b)|0)==(f|0)){E=23;break a}break}case 13:case 10:{z=c[j>>2]|0;B=z+4|0;l=c[B>>2]|0;n=l+1|0;m=z+8|0;k=c[m>>2]|0;if(n>>>0>k>>>0){if(k>>>0>2147483645){E=43;break a}q=k<<1;F=c[A>>2]|0;if((q|0)==-2){E=45;break a}y=c[z>>2]|0;o=c[F+12>>2]|0;w=(y|0)==0;p=o+4|0;u=Pa[c[o>>2]&3](c[p>>2]|0,y,k,q)|0;if((q|0)!=0&(u|0)==0){if(!(a[o+51>>0]|0)){E=49;break a}Kc(F,1);t=Pa[c[o>>2]&3](c[p>>2]|0,y,k,q)|0;if(!t){E=49;break a}else G=t}else G=u;u=o+12|0;c[u>>2]=(w?0:0-k|0)+q+(c[u>>2]|0);c[z>>2]=G;c[m>>2]=q;q=c[B>>2]|0;H=G;I=q;J=q+1|0}else{H=c[z>>2]|0;I=l;J=n}c[B>>2]=J;a[H+I>>0]=10;hf(b);if(D)c[(c[j>>2]|0)+4>>2]=0;break}default:{if(D){B=c[i>>2]|0;n=c[B>>2]|0;c[B>>2]=n+-1;if(!n){n=Oa[c[B+8>>2]&7](c[B+16>>2]|0,c[B+12>>2]|0,h)|0;l=c[h>>2]|0;if((n|0)==0|(l|0)==0)K=-1;else{c[B>>2]=l+-1;c[B+4>>2]=n+1;K=d[n>>0]|0}L=K}else{n=B+4|0;B=c[n>>2]|0;c[n>>2]=B+1;L=d[B>>0]|0}c[b>>2]=L;break b}B=c[j>>2]|0;n=B+4|0;l=c[n>>2]|0;z=l+1|0;q=B+8|0;m=c[q>>2]|0;if(z>>>0>m>>>0){if(m>>>0>2147483645){E=58;break a}u=m<<1;M=c[A>>2]|0;if((u|0)==-2){E=60;break a}k=c[B>>2]|0;w=c[M+12>>2]|0;o=(k|0)==0;t=w+4|0;y=Pa[c[w>>2]&3](c[t>>2]|0,k,m,u)|0;if((u|0)!=0&(y|0)==0){if(!(a[w+51>>0]|0)){E=64;break a}Kc(M,1);p=Pa[c[w>>2]&3](c[t>>2]|0,k,m,u)|0;if(!p){E=64;break a}else N=p}else N=y;y=w+12|0;c[y>>2]=(o?0:0-m|0)+u+(c[y>>2]|0);c[B>>2]=N;c[q>>2]=u;u=c[n>>2]|0;O=N;P=u;Q=u+1|0}else{O=c[B>>2]|0;P=l;Q=z}c[n>>2]=Q;a[O+P>>0]=C;n=c[i>>2]|0;z=c[n>>2]|0;c[n>>2]=z+-1;if(!z){z=Oa[c[n+8>>2]&7](c[n+16>>2]|0,c[n+12>>2]|0,h)|0;l=c[h>>2]|0;if((z|0)==0|(l|0)==0)R=-1;else{c[n>>2]=l+-1;c[n+4>>2]=z+1;R=d[z>>0]|0}S=R}else{z=n+4|0;n=c[z>>2]|0;c[z>>2]=n+1;S=d[n>>0]|0}c[b>>2]=S}}while(0)}if((E|0)==21)Ae(b,D?48957:48981,287);else if((E|0)==23){S=c[b>>2]|0;R=c[j>>2]|0;P=R+4|0;O=c[P>>2]|0;Q=O+1|0;N=R+8|0;L=c[N>>2]|0;if(Q>>>0>L>>>0){if(L>>>0>2147483645)Ae(b,48200,0);K=L<<1;I=c[A>>2]|0;if((K|0)==-2)Lc(I);A=c[R>>2]|0;H=c[I+12>>2]|0;J=(A|0)==0;G=H+4|0;C=Pa[c[H>>2]&3](c[G>>2]|0,A,L,K)|0;if((K|0)!=0&(C|0)==0){if(!(a[H+51>>0]|0))yc(I,4);Kc(I,1);n=Pa[c[H>>2]&3](c[G>>2]|0,A,L,K)|0;if(!n)yc(I,4);else T=n}else T=C;C=H+12|0;c[C>>2]=(J?0:0-L|0)+K+(c[C>>2]|0);c[R>>2]=T;c[N>>2]=K;K=c[P>>2]|0;U=T;V=K;W=K+1|0}else{U=c[R>>2]|0;V=O;W=Q}c[P>>2]=W;a[U+V>>0]=S;S=c[i>>2]|0;i=c[S>>2]|0;c[S>>2]=i+-1;if(!i){i=Oa[c[S+8>>2]&7](c[S+16>>2]|0,c[S+12>>2]|0,h)|0;V=c[h>>2]|0;if((i|0)==0|(V|0)==0)X=-1;else{c[S>>2]=V+-1;c[S+4>>2]=i+1;X=d[i>>0]|0}Y=X}else{X=S+4|0;S=c[X>>2]|0;c[X>>2]=S+1;Y=d[S>>0]|0}c[b>>2]=Y;if(D){Ia=g;return}D=c[j>>2]|0;j=f+2|0;c[e>>2]=qe(b,(c[D>>2]|0)+j|0,(c[D+4>>2]|0)-(j<<1)|0)|0;Ia=g;return}else if((E|0)==43)Ae(b,48200,0);else if((E|0)==45)Lc(F);else if((E|0)==49)yc(F,4);else if((E|0)==58)Ae(b,48200,0);else if((E|0)==60)Lc(M);else if((E|0)==64)yc(M,4)}function lf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;c[(c[a+52>>2]|0)+4>>2]=0;mf(a,92);a:do if((d|0)>0){f=0;do{g=c[b+(f<<2)>>2]|0;if((g|0)==-1)break a;mf(a,g);f=f+1|0}while((f|0)<(d|0))}while(0);Ae(a,e,290)}function mf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=c[b+52>>2]|0;f=e+4|0;g=c[f>>2]|0;h=g+1|0;i=e+8|0;j=c[i>>2]|0;if(h>>>0<=j>>>0){k=c[e>>2]|0;l=g;m=h;n=d&255;c[f>>2]=m;o=k+l|0;a[o>>0]=n;return}if(j>>>0>2147483645)Ae(b,48200,0);h=j<<1;g=c[b+44>>2]|0;if((h|0)==-2)Lc(g);b=nf(g,c[e>>2]|0,j,h)|0;c[e>>2]=b;c[i>>2]=h;h=c[f>>2]|0;k=b;l=h;m=h+1|0;n=d&255;c[f>>2]=m;o=k+l|0;a[o>>0]=n;return}function nf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;g=c[b+12>>2]|0;h=(d|0)==0;i=g+4|0;j=Pa[c[g>>2]&3](c[i>>2]|0,d,e,f)|0;if((f|0)!=0&(j|0)==0){if(!(a[g+51>>0]|0))yc(b,4);Kc(b,1);k=Pa[c[g>>2]&3](c[i>>2]|0,d,e,f)|0;if(!k)yc(b,4);else l=k}else l=j;j=g+12|0;c[j>>2]=(h?0:0-e|0)+f+(c[j>>2]|0);return l|0}function of(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=d;d=c[a>>2]|0;c[e>>2]=c[a+12>>2];c[e+4>>2]=b;wd(d,49111,e)|0;yc(c[a>>2]|0,3)}function pf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0;e=Ia;Ia=Ia+16|0;f=e+4|0;g=e;h=b+4|0;i=c[h>>2]|0;j=i+16|0;k=i+8|0;l=i+12|0;m=i+4|0;n=c[i>>2]|0;o=g;p=4;while(1){if(!n){q=Oa[c[k>>2]&7](c[j>>2]|0,c[l>>2]|0,f)|0;r=c[f>>2]|0;if((q|0)==0|(r|0)==0){s=7;break}c[i>>2]=r;c[m>>2]=q;t=r;u=q}else{t=n;u=c[m>>2]|0}q=p>>>0>t>>>0?t:p;Vv(o|0,u|0,q|0)|0;n=(c[i>>2]|0)-q|0;c[i>>2]=n;c[m>>2]=(c[m>>2]|0)+q;p=p-q|0;if(!p)break;else o=o+q|0}if((s|0)==7)of(b,49052);o=c[g>>2]|0;if((o|0)<0)of(b,49101);c[d+64>>2]=o;o=c[h>>2]|0;p=o+16|0;m=o+8|0;n=o+12|0;i=o+4|0;u=c[o>>2]|0;t=g;l=4;while(1){if(!u){j=Oa[c[m>>2]&7](c[p>>2]|0,c[n>>2]|0,f)|0;k=c[f>>2]|0;if((j|0)==0|(k|0)==0){s=16;break}c[o>>2]=k;c[i>>2]=j;v=k;w=j}else{v=u;w=c[i>>2]|0}j=l>>>0>v>>>0?v:l;Vv(t|0,w|0,j|0)|0;u=(c[o>>2]|0)-j|0;c[o>>2]=u;c[i>>2]=(c[i>>2]|0)+j;l=l-j|0;if(!l)break;else t=t+j|0}if((s|0)==16)of(b,49052);t=c[g>>2]|0;if((t|0)<0)of(b,49101);c[d+68>>2]=t;t=c[h>>2]|0;l=t+16|0;i=t+8|0;u=t+12|0;o=t+4|0;w=c[t>>2]|0;v=g;n=1;while(1){if(!w){p=Oa[c[i>>2]&7](c[l>>2]|0,c[u>>2]|0,f)|0;m=c[f>>2]|0;if((p|0)==0|(m|0)==0){s=25;break}c[t>>2]=m;c[o>>2]=p;x=m;y=p}else{x=w;y=c[o>>2]|0}p=n>>>0>x>>>0?x:n;Vv(v|0,y|0,p|0)|0;w=(c[t>>2]|0)-p|0;c[t>>2]=w;c[o>>2]=(c[o>>2]|0)+p;n=n-p|0;if(!n)break;else v=v+p|0}if((s|0)==25)of(b,49052);a[d+76>>0]=a[g>>0]|0;v=c[h>>2]|0;n=v+16|0;o=v+8|0;w=v+12|0;t=v+4|0;y=c[v>>2]|0;x=g;u=1;while(1){if(!y){l=Oa[c[o>>2]&7](c[n>>2]|0,c[w>>2]|0,f)|0;i=c[f>>2]|0;if((l|0)==0|(i|0)==0){s=32;break}c[v>>2]=i;c[t>>2]=l;z=i;A=l}else{z=y;A=c[t>>2]|0}l=u>>>0>z>>>0?z:u;Vv(x|0,A|0,l|0)|0;y=(c[v>>2]|0)-l|0;c[v>>2]=y;c[t>>2]=(c[t>>2]|0)+l;u=u-l|0;if(!u)break;else x=x+l|0}if((s|0)==32)of(b,49052);a[d+77>>0]=a[g>>0]|0;x=c[h>>2]|0;u=x+16|0;t=x+8|0;y=x+12|0;v=x+4|0;A=c[x>>2]|0;z=g;w=1;while(1){if(!A){n=Oa[c[t>>2]&7](c[u>>2]|0,c[y>>2]|0,f)|0;o=c[f>>2]|0;if((n|0)==0|(o|0)==0){s=39;break}c[x>>2]=o;c[v>>2]=n;B=o;C=n}else{B=A;C=c[v>>2]|0}n=w>>>0>B>>>0?B:w;Vv(z|0,C|0,n|0)|0;A=(c[x>>2]|0)-n|0;c[x>>2]=A;c[v>>2]=(c[v>>2]|0)+n;w=w-n|0;if(!w)break;else z=z+n|0}if((s|0)==39)of(b,49052);a[d+78>>0]=a[g>>0]|0;z=c[h>>2]|0;w=z+16|0;v=z+8|0;A=z+12|0;x=z+4|0;C=c[z>>2]|0;B=g;y=4;while(1){if(!C){u=Oa[c[v>>2]&7](c[w>>2]|0,c[A>>2]|0,f)|0;t=c[f>>2]|0;if((u|0)==0|(t|0)==0){s=46;break}c[z>>2]=t;c[x>>2]=u;D=t;E=u}else{D=C;E=c[x>>2]|0}u=y>>>0>D>>>0?D:y;Vv(B|0,E|0,u|0)|0;C=(c[z>>2]|0)-u|0;c[z>>2]=C;c[x>>2]=(c[x>>2]|0)+u;y=y-u|0;if(!y)break;else B=B+u|0}if((s|0)==46)of(b,49052);B=c[g>>2]|0;if((B|0)<0)of(b,49101);y=c[b>>2]|0;if((B+1|0)>>>0>1073741823)Lc(y);x=B<<2;C=c[y+12>>2]|0;z=C+4|0;E=Pa[c[C>>2]&3](c[z>>2]|0,0,0,x)|0;if((x|0)!=0&(E|0)==0){if(!(a[C+51>>0]|0))yc(y,4);Kc(y,1);D=Pa[c[C>>2]&3](c[z>>2]|0,0,0,x)|0;if(!D)yc(y,4);else F=D}else F=E;E=C+12|0;c[E>>2]=(c[E>>2]|0)+x;c[d+12>>2]=F;c[d+48>>2]=B;B=c[h>>2]|0;do if(x){E=B+16|0;C=B+8|0;D=B+12|0;y=B+4|0;z=c[B>>2]|0;A=F;w=x;while(1){if(!z){v=Oa[c[C>>2]&7](c[E>>2]|0,c[D>>2]|0,f)|0;u=c[f>>2]|0;if((v|0)==0|(u|0)==0){s=62;break}c[B>>2]=u;c[y>>2]=v;G=u;H=v}else{G=z;H=c[y>>2]|0}v=w>>>0>G>>>0?G:w;Vv(A|0,H|0,v|0)|0;z=(c[B>>2]|0)-v|0;c[B>>2]=z;c[y>>2]=(c[y>>2]|0)+v;w=w-v|0;if(!w){s=63;break}else A=A+v|0}if((s|0)==62)of(b,49052);else if((s|0)==63){I=c[h>>2]|0;break}}else I=B;while(0);B=I+16|0;H=I+8|0;G=I+12|0;x=I+4|0;F=c[I>>2]|0;A=g;w=4;while(1){if(!F){y=Oa[c[H>>2]&7](c[B>>2]|0,c[G>>2]|0,f)|0;z=c[f>>2]|0;if((y|0)==0|(z|0)==0){s=70;break}c[I>>2]=z;c[x>>2]=y;J=z;K=y}else{J=F;K=c[x>>2]|0}y=w>>>0>J>>>0?J:w;Vv(A|0,K|0,y|0)|0;F=(c[I>>2]|0)-y|0;c[I>>2]=F;c[x>>2]=(c[x>>2]|0)+y;w=w-y|0;if(!w)break;else A=A+y|0}if((s|0)==70)of(b,49052);A=c[g>>2]|0;if((A|0)<0)of(b,49101);w=c[b>>2]|0;if((A+1|0)>>>0>536870911)Lc(w);x=A<<3;F=c[w+12>>2]|0;I=F+4|0;K=Pa[c[F>>2]&3](c[I>>2]|0,0,0,x)|0;if((x|0)!=0&(K|0)==0){if(!(a[F+51>>0]|0))yc(w,4);Kc(w,1);J=Pa[c[F>>2]&3](c[I>>2]|0,0,0,x)|0;if(!J)yc(w,4);else L=J}else L=K;K=F+12|0;c[K>>2]=(c[K>>2]|0)+x;x=d+8|0;c[x>>2]=L;c[d+44>>2]=A;K=(A|0)>0;a:do if(K){F=0;do{c[L+(F<<3)+4>>2]=0;F=F+1|0}while((F|0)!=(A|0));if(K){F=b+8|0;J=L;w=0;b:while(1){I=J+(w<<3)|0;G=c[h>>2]|0;B=G+16|0;H=G+8|0;y=G+12|0;z=G+4|0;D=c[G>>2]|0;E=g;C=1;while(1){if(!D){v=Oa[c[H>>2]&7](c[B>>2]|0,c[y>>2]|0,f)|0;u=c[f>>2]|0;if((v|0)==0|(u|0)==0){s=90;break b}c[G>>2]=u;c[z>>2]=v;M=u;N=v}else{M=D;N=c[z>>2]|0}v=C>>>0>M>>>0?M:C;Vv(E|0,N|0,v|0)|0;D=(c[G>>2]|0)-v|0;c[G>>2]=D;c[z>>2]=(c[z>>2]|0)+v;C=C-v|0;if(!C)break;else E=E+v|0}E=a[g>>0]|0;switch(E|0){case 0:{O=E;s=125;break}case 1:{E=c[h>>2]|0;C=E+16|0;z=E+8|0;D=E+12|0;G=E+4|0;y=c[E>>2]|0;B=g;H=1;while(1){if(!y){v=Oa[c[z>>2]&7](c[C>>2]|0,c[D>>2]|0,f)|0;u=c[f>>2]|0;if((v|0)==0|(u|0)==0){s=98;break b}c[E>>2]=u;c[G>>2]=v;P=u;Q=v}else{P=y;Q=c[G>>2]|0}v=H>>>0>P>>>0?P:H;Vv(B|0,Q|0,v|0)|0;y=(c[E>>2]|0)-v|0;c[E>>2]=y;c[G>>2]=(c[G>>2]|0)+v;H=H-v|0;if(!H)break;else B=B+v|0}c[I>>2]=a[g>>0];O=1;s=125;break}case 3:{B=c[h>>2]|0;H=B+16|0;G=B+8|0;y=B+12|0;E=B+4|0;D=c[B>>2]|0;C=g;z=4;while(1){if(!D){v=Oa[c[G>>2]&7](c[H>>2]|0,c[y>>2]|0,f)|0;u=c[f>>2]|0;if((v|0)==0|(u|0)==0){s=106;break b}c[B>>2]=u;c[E>>2]=v;R=u;S=v}else{R=D;S=c[E>>2]|0}v=z>>>0>R>>>0?R:z;Vv(C|0,S|0,v|0)|0;D=(c[B>>2]|0)-v|0;c[B>>2]=D;c[E>>2]=(c[E>>2]|0)+v;z=z-v|0;if(!z)break;else C=C+v|0}c[I>>2]=c[g>>2];O=3;s=125;break}case 4:{C=c[h>>2]|0;z=C+16|0;E=C+8|0;D=C+12|0;B=C+4|0;y=c[C>>2]|0;H=g;G=4;while(1){if(!y){v=Oa[c[E>>2]&7](c[z>>2]|0,c[D>>2]|0,f)|0;u=c[f>>2]|0;if((v|0)==0|(u|0)==0){s=114;break b}c[C>>2]=u;c[B>>2]=v;T=u;U=v}else{T=y;U=c[B>>2]|0}v=G>>>0>T>>>0?T:G;Vv(H|0,U|0,v|0)|0;y=(c[C>>2]|0)-v|0;c[C>>2]=y;c[B>>2]=(c[B>>2]|0)+v;G=G-v|0;if(!G)break;else H=H+v|0}H=c[g>>2]|0;if(!H)V=0;else{G=qf(c[b>>2]|0,c[F>>2]|0,H)|0;B=c[h>>2]|0;y=B+16|0;C=B+8|0;D=B+12|0;z=B+4|0;E=c[B>>2]|0;v=G;u=H;while(1){if(!E){t=Oa[c[C>>2]&7](c[y>>2]|0,c[D>>2]|0,f)|0;n=c[f>>2]|0;if((t|0)==0|(n|0)==0){s=122;break b}c[B>>2]=n;c[z>>2]=t;W=n;X=t}else{W=E;X=c[z>>2]|0}t=u>>>0>W>>>0?W:u;Vv(v|0,X|0,t|0)|0;E=(c[B>>2]|0)-t|0;c[B>>2]=E;c[z>>2]=(c[z>>2]|0)+t;u=u-t|0;if(!u)break;else v=v+t|0}V=xd(c[b>>2]|0,G,H+-1|0)|0}c[I>>2]=V;O=(a[V+4>>0]|64)&255;s=125;break}default:{}}if((s|0)==125){s=0;c[J+(w<<3)+4>>2]=O}v=w+1|0;if((v|0)>=(A|0))break a;J=c[x>>2]|0;w=v}if((s|0)==90)of(b,49052);else if((s|0)==98)of(b,49052);else if((s|0)==106)of(b,49052);else if((s|0)==114)of(b,49052);else if((s|0)==122)of(b,49052)}}while(0);x=c[h>>2]|0;A=x+16|0;O=x+8|0;V=x+12|0;X=x+4|0;W=c[x>>2]|0;U=g;T=4;while(1){if(!W){S=Oa[c[O>>2]&7](c[A>>2]|0,c[V>>2]|0,f)|0;R=c[f>>2]|0;if((S|0)==0|(R|0)==0){s=134;break}c[x>>2]=R;c[X>>2]=S;Y=R;Z=S}else{Y=W;Z=c[X>>2]|0}S=T>>>0>Y>>>0?Y:T;Vv(U|0,Z|0,S|0)|0;W=(c[x>>2]|0)-S|0;c[x>>2]=W;c[X>>2]=(c[X>>2]|0)+S;T=T-S|0;if(!T)break;else U=U+S|0}if((s|0)==134)of(b,49052);U=c[g>>2]|0;if((U|0)<0)of(b,49101);T=c[b>>2]|0;if((U+1|0)>>>0>1073741823)Lc(T);X=U<<2;W=c[T+12>>2]|0;x=W+4|0;Z=Pa[c[W>>2]&3](c[x>>2]|0,0,0,X)|0;if((X|0)!=0&(Z|0)==0){if(!(a[W+51>>0]|0))yc(T,4);Kc(T,1);Y=Pa[c[W>>2]&3](c[x>>2]|0,0,0,X)|0;if(!Y)yc(T,4);else _=Y}else _=Z;Z=W+12|0;c[Z>>2]=(c[Z>>2]|0)+X;X=d+16|0;c[X>>2]=_;c[d+56>>2]=U;Z=(U|0)>0;c:do if(Z){c[_>>2]=0;if((U|0)!=1){W=1;do{c[(c[X>>2]|0)+(W<<2)>>2]=0;W=W+1|0}while((W|0)!=(U|0))}if(Z){W=0;while(1){$=c[b>>2]|0;Y=c[$+12>>2]|0;T=Y+4|0;x=Pa[c[Y>>2]&3](c[T>>2]|0,0,9,80)|0;if(!x){if(!(a[Y+51>>0]|0)){s=152;break}Kc($,1);V=Pa[c[Y>>2]&3](c[T>>2]|0,0,9,80)|0;if(!V){s=152;break}else aa=V}else aa=x;x=Y+12|0;c[x>>2]=(c[x>>2]|0)+80;x=Y+56|0;a[aa+5>>0]=a[Y+48>>0]&3;a[aa+4>>0]=9;c[aa>>2]=c[x>>2];c[x>>2]=aa;a[aa+76>>0]=0;a[aa+77>>0]=0;a[aa+78>>0]=0;x=aa+8|0;Y=x+64|0;do{c[x>>2]=0;x=x+4|0}while((x|0)<(Y|0));c[(c[X>>2]|0)+(W<<2)>>2]=aa;pf(b,c[(c[X>>2]|0)+(W<<2)>>2]|0);W=W+1|0;if((W|0)>=(U|0))break c}if((s|0)==152)yc($,4)}}while(0);$=c[h>>2]|0;U=$+16|0;X=$+8|0;aa=$+12|0;Z=$+4|0;_=c[$>>2]|0;W=g;x=4;while(1){if(!_){Y=Oa[c[X>>2]&7](c[U>>2]|0,c[aa>>2]|0,f)|0;I=c[f>>2]|0;if((Y|0)==0|(I|0)==0){s=160;break}c[$>>2]=I;c[Z>>2]=Y;ba=I;ca=Y}else{ba=_;ca=c[Z>>2]|0}Y=x>>>0>ba>>>0?ba:x;Vv(W|0,ca|0,Y|0)|0;_=(c[$>>2]|0)-Y|0;c[$>>2]=_;c[Z>>2]=(c[Z>>2]|0)+Y;x=x-Y|0;if(!x)break;else W=W+Y|0}if((s|0)==160)of(b,49052);W=c[g>>2]|0;if((W|0)<0)of(b,49101);x=c[b>>2]|0;if((W+1|0)>>>0>536870911)Lc(x);Z=W<<3;_=c[x+12>>2]|0;$=_+4|0;ca=Pa[c[_>>2]&3](c[$>>2]|0,0,0,Z)|0;if((Z|0)!=0&(ca|0)==0){if(!(a[_+51>>0]|0))yc(x,4);Kc(x,1);ba=Pa[c[_>>2]&3](c[$>>2]|0,0,0,Z)|0;if(!ba)yc(x,4);else da=ba}else da=ca;ca=_+12|0;c[ca>>2]=(c[ca>>2]|0)+Z;Z=d+28|0;c[Z>>2]=da;c[d+40>>2]=W;d:do if((W|0)>0){ca=0;do{c[da+(ca<<3)>>2]=0;ca=ca+1|0}while((ca|0)!=(W|0));ca=0;e:while(1){_=c[h>>2]|0;ba=_+16|0;x=_+8|0;$=_+12|0;aa=_+4|0;U=c[_>>2]|0;X=g;Y=1;while(1){if(!U){I=Oa[c[x>>2]&7](c[ba>>2]|0,c[$>>2]|0,f)|0;H=c[f>>2]|0;if((I|0)==0|(H|0)==0){s=179;break e}c[_>>2]=H;c[aa>>2]=I;ea=H;fa=I}else{ea=U;fa=c[aa>>2]|0}I=Y>>>0>ea>>>0?ea:Y;Vv(X|0,fa|0,I|0)|0;U=(c[_>>2]|0)-I|0;c[_>>2]=U;c[aa>>2]=(c[aa>>2]|0)+I;Y=Y-I|0;if(!Y)break;else X=X+I|0}a[(c[Z>>2]|0)+(ca<<3)+4>>0]=a[g>>0]|0;X=c[h>>2]|0;Y=X+16|0;aa=X+8|0;U=X+12|0;_=X+4|0;$=c[X>>2]|0;ba=g;x=1;while(1){if(!$){I=Oa[c[aa>>2]&7](c[Y>>2]|0,c[U>>2]|0,f)|0;H=c[f>>2]|0;if((I|0)==0|(H|0)==0){s=186;break e}c[X>>2]=H;c[_>>2]=I;ga=H;ha=I}else{ga=$;ha=c[_>>2]|0}I=x>>>0>ga>>>0?ga:x;Vv(ba|0,ha|0,I|0)|0;$=(c[X>>2]|0)-I|0;c[X>>2]=$;c[_>>2]=(c[_>>2]|0)+I;x=x-I|0;if(!x)break;else ba=ba+I|0}a[(c[Z>>2]|0)+(ca<<3)+5>>0]=a[g>>0]|0;ca=ca+1|0;if((ca|0)>=(W|0))break d}if((s|0)==179)of(b,49052);else if((s|0)==186)of(b,49052)}while(0);W=c[h>>2]|0;ha=W+16|0;ga=W+8|0;fa=W+12|0;ea=W+4|0;da=c[W>>2]|0;ca=g;ba=4;while(1){if(!da){x=Oa[c[ga>>2]&7](c[ha>>2]|0,c[fa>>2]|0,f)|0;_=c[f>>2]|0;if((x|0)==0|(_|0)==0){s=194;break}c[W>>2]=_;c[ea>>2]=x;ia=_;ja=x}else{ia=da;ja=c[ea>>2]|0}x=ba>>>0>ia>>>0?ia:ba;Vv(ca|0,ja|0,x|0)|0;da=(c[W>>2]|0)-x|0;c[W>>2]=da;c[ea>>2]=(c[ea>>2]|0)+x;ba=ba-x|0;if(!ba)break;else ca=ca+x|0}if((s|0)==194)of(b,49052);ca=c[g>>2]|0;do if(ca){ba=qf(c[b>>2]|0,c[b+8>>2]|0,ca)|0;ea=c[h>>2]|0;da=ea+16|0;W=ea+8|0;ja=ea+12|0;ia=ea+4|0;fa=c[ea>>2]|0;ha=ba;ga=ca;while(1){if(!fa){x=Oa[c[W>>2]&7](c[da>>2]|0,c[ja>>2]|0,f)|0;_=c[f>>2]|0;if((x|0)==0|(_|0)==0){s=202;break}c[ea>>2]=_;c[ia>>2]=x;ka=_;la=x}else{ka=fa;la=c[ia>>2]|0}x=ga>>>0>ka>>>0?ka:ga;Vv(ha|0,la|0,x|0)|0;fa=(c[ea>>2]|0)-x|0;c[ea>>2]=fa;c[ia>>2]=(c[ia>>2]|0)+x;ga=ga-x|0;if(!ga){s=203;break}else ha=ha+x|0}if((s|0)==202)of(b,49052);else if((s|0)==203){ma=xd(c[b>>2]|0,ba,ca+-1|0)|0;break}}else ma=0;while(0);c[d+36>>2]=ma;ma=c[h>>2]|0;ca=ma+16|0;la=ma+8|0;ka=ma+12|0;ha=ma+4|0;ga=c[ma>>2]|0;ia=g;fa=4;while(1){if(!ga){ea=Oa[c[la>>2]&7](c[ca>>2]|0,c[ka>>2]|0,f)|0;ja=c[f>>2]|0;if((ea|0)==0|(ja|0)==0){s=210;break}c[ma>>2]=ja;c[ha>>2]=ea;na=ja;oa=ea}else{na=ga;oa=c[ha>>2]|0}ea=fa>>>0>na>>>0?na:fa;Vv(ia|0,oa|0,ea|0)|0;ga=(c[ma>>2]|0)-ea|0;c[ma>>2]=ga;c[ha>>2]=(c[ha>>2]|0)+ea;fa=fa-ea|0;if(!fa)break;else ia=ia+ea|0}if((s|0)==210)of(b,49052);ia=c[g>>2]|0;if((ia|0)<0)of(b,49101);fa=c[b>>2]|0;if((ia+1|0)>>>0>1073741823)Lc(fa);ha=ia<<2;ga=c[fa+12>>2]|0;ma=ga+4|0;oa=Pa[c[ga>>2]&3](c[ma>>2]|0,0,0,ha)|0;do if((ha|0)!=0&(oa|0)==0){if(!(a[ga+51>>0]|0))yc(fa,4);Kc(fa,1);na=Pa[c[ga>>2]&3](c[ma>>2]|0,0,0,ha)|0;if(na|0){pa=na;break}yc(fa,4)}else pa=oa;while(0);oa=ga+12|0;c[oa>>2]=(c[oa>>2]|0)+ha;c[d+20>>2]=pa;c[d+52>>2]=ia;ia=c[h>>2]|0;do if(ha){oa=ia+16|0;ga=ia+8|0;fa=ia+12|0;ma=ia+4|0;na=c[ia>>2]|0;ka=pa;ca=ha;while(1){if(!na){la=Oa[c[ga>>2]&7](c[oa>>2]|0,c[fa>>2]|0,f)|0;ea=c[f>>2]|0;if((la|0)==0|(ea|0)==0){s=226;break}c[ia>>2]=ea;c[ma>>2]=la;qa=ea;ra=la}else{qa=na;ra=c[ma>>2]|0}la=ca>>>0>qa>>>0?qa:ca;Vv(ka|0,ra|0,la|0)|0;na=(c[ia>>2]|0)-la|0;c[ia>>2]=na;c[ma>>2]=(c[ma>>2]|0)+la;ca=ca-la|0;if(!ca){s=227;break}else ka=ka+la|0}if((s|0)==226)of(b,49052);else if((s|0)==227){sa=c[h>>2]|0;break}}else sa=ia;while(0);ia=sa+16|0;ra=sa+8|0;qa=sa+12|0;ha=sa+4|0;pa=c[sa>>2]|0;ka=g;ca=4;while(1){if(!pa){ma=Oa[c[ra>>2]&7](c[ia>>2]|0,c[qa>>2]|0,f)|0;na=c[f>>2]|0;if((ma|0)==0|(na|0)==0){s=234;break}c[sa>>2]=na;c[ha>>2]=ma;ta=na;ua=ma}else{ta=pa;ua=c[ha>>2]|0}ma=ca>>>0>ta>>>0?ta:ca;Vv(ka|0,ua|0,ma|0)|0;pa=(c[sa>>2]|0)-ma|0;c[sa>>2]=pa;c[ha>>2]=(c[ha>>2]|0)+ma;ca=ca-ma|0;if(!ca)break;else ka=ka+ma|0}if((s|0)==234)of(b,49052);ka=c[g>>2]|0;if((ka|0)<0)of(b,49101);ca=c[b>>2]|0;if((ka+1|0)>>>0>357913941)Lc(ca);ha=ka*12|0;pa=c[ca+12>>2]|0;sa=pa+4|0;ua=Pa[c[pa>>2]&3](c[sa>>2]|0,0,0,ha)|0;do if((ha|0)!=0&(ua|0)==0){if(!(a[pa+51>>0]|0))yc(ca,4);Kc(ca,1);ta=Pa[c[pa>>2]&3](c[sa>>2]|0,0,0,ha)|0;if(ta|0){va=ta;break}yc(ca,4)}else va=ua;while(0);ua=pa+12|0;c[ua>>2]=(c[ua>>2]|0)+ha;ha=d+24|0;c[ha>>2]=va;c[d+60>>2]=ka;f:do if((ka|0)>0){d=0;do{c[va+(d*12|0)>>2]=0;d=d+1|0}while((d|0)!=(ka|0));d=b+8|0;ua=0;g:while(1){pa=c[h>>2]|0;ca=pa+16|0;sa=pa+8|0;ta=pa+12|0;qa=pa+4|0;ia=c[pa>>2]|0;ra=g;ma=4;while(1){if(!ia){na=Oa[c[sa>>2]&7](c[ca>>2]|0,c[ta>>2]|0,f)|0;fa=c[f>>2]|0;if((na|0)==0|(fa|0)==0){s=253;break g}c[pa>>2]=fa;c[qa>>2]=na;wa=fa;xa=na}else{wa=ia;xa=c[qa>>2]|0}na=ma>>>0>wa>>>0?wa:ma;Vv(ra|0,xa|0,na|0)|0;ia=(c[pa>>2]|0)-na|0;c[pa>>2]=ia;c[qa>>2]=(c[qa>>2]|0)+na;ma=ma-na|0;if(!ma)break;else ra=ra+na|0}ra=c[g>>2]|0;if(!ra)ya=0;else{ma=qf(c[b>>2]|0,c[d>>2]|0,ra)|0;qa=c[h>>2]|0;ia=qa+16|0;pa=qa+8|0;ta=qa+12|0;ca=qa+4|0;sa=c[qa>>2]|0;na=ma;fa=ra;while(1){if(!sa){oa=Oa[c[pa>>2]&7](c[ia>>2]|0,c[ta>>2]|0,f)|0;ga=c[f>>2]|0;if((oa|0)==0|(ga|0)==0){s=261;break g}c[qa>>2]=ga;c[ca>>2]=oa;za=ga;Aa=oa}else{za=sa;Aa=c[ca>>2]|0}oa=fa>>>0>za>>>0?za:fa;Vv(na|0,Aa|0,oa|0)|0;sa=(c[qa>>2]|0)-oa|0;c[qa>>2]=sa;c[ca>>2]=(c[ca>>2]|0)+oa;fa=fa-oa|0;if(!fa)break;else na=na+oa|0}ya=xd(c[b>>2]|0,ma,ra+-1|0)|0}c[(c[ha>>2]|0)+(ua*12|0)>>2]=ya;na=c[h>>2]|0;fa=na+16|0;ca=na+8|0;sa=na+12|0;qa=na+4|0;ta=c[na>>2]|0;ia=g;pa=4;while(1){if(!ta){oa=Oa[c[ca>>2]&7](c[fa>>2]|0,c[sa>>2]|0,f)|0;ga=c[f>>2]|0;if((oa|0)==0|(ga|0)==0){s=269;break g}c[na>>2]=ga;c[qa>>2]=oa;Ba=ga;Ca=oa}else{Ba=ta;Ca=c[qa>>2]|0}oa=pa>>>0>Ba>>>0?Ba:pa;Vv(ia|0,Ca|0,oa|0)|0;ta=(c[na>>2]|0)-oa|0;c[na>>2]=ta;c[qa>>2]=(c[qa>>2]|0)+oa;pa=pa-oa|0;if(!pa)break;else ia=ia+oa|0}ia=c[g>>2]|0;if((ia|0)<0){s=271;break}c[(c[ha>>2]|0)+(ua*12|0)+4>>2]=ia;ia=c[h>>2]|0;pa=ia+16|0;qa=ia+8|0;ta=ia+12|0;na=ia+4|0;sa=c[ia>>2]|0;fa=g;ca=4;while(1){if(!sa){ra=Oa[c[qa>>2]&7](c[pa>>2]|0,c[ta>>2]|0,f)|0;ma=c[f>>2]|0;if((ra|0)==0|(ma|0)==0){s=278;break g}c[ia>>2]=ma;c[na>>2]=ra;Da=ma;Ea=ra}else{Da=sa;Ea=c[na>>2]|0}ra=ca>>>0>Da>>>0?Da:ca;Vv(fa|0,Ea|0,ra|0)|0;sa=(c[ia>>2]|0)-ra|0;c[ia>>2]=sa;c[na>>2]=(c[na>>2]|0)+ra;ca=ca-ra|0;if(!ca)break;else fa=fa+ra|0}fa=c[g>>2]|0;if((fa|0)<0){s=280;break}c[(c[ha>>2]|0)+(ua*12|0)+8>>2]=fa;ua=ua+1|0;if((ua|0)>=(ka|0))break f}if((s|0)==253)of(b,49052);else if((s|0)==261)of(b,49052);else if((s|0)==269)of(b,49052);else if((s|0)==271)of(b,49101);else if((s|0)==278)of(b,49052);else if((s|0)==280)of(b,49101)}while(0);ka=c[h>>2]|0;ha=ka+16|0;Ea=ka+8|0;Da=ka+12|0;Ca=ka+4|0;Ba=c[ka>>2]|0;ya=g;Aa=4;while(1){if(!Ba){za=Oa[c[Ea>>2]&7](c[ha>>2]|0,c[Da>>2]|0,f)|0;xa=c[f>>2]|0;if((za|0)==0|(xa|0)==0){s=288;break}c[ka>>2]=xa;c[Ca>>2]=za;Fa=xa;Ga=za}else{Fa=Ba;Ga=c[Ca>>2]|0}za=Aa>>>0>Fa>>>0?Fa:Aa;Vv(ya|0,Ga|0,za|0)|0;Ba=(c[ka>>2]|0)-za|0;c[ka>>2]=Ba;c[Ca>>2]=(c[Ca>>2]|0)+za;Aa=Aa-za|0;if(!Aa)break;else ya=ya+za|0}if((s|0)==288)of(b,49052);ya=c[g>>2]|0;if((ya|0)<0)of(b,49101);if(!ya){Ia=e;return}Aa=b+8|0;Ca=0;h:while(1){Ba=c[h>>2]|0;ka=Ba+16|0;Ga=Ba+8|0;Fa=Ba+12|0;Da=Ba+4|0;ha=c[Ba>>2]|0;Ea=g;za=4;while(1){if(!ha){xa=Oa[c[Ga>>2]&7](c[ka>>2]|0,c[Fa>>2]|0,f)|0;wa=c[f>>2]|0;if((xa|0)==0|(wa|0)==0){s=299;break h}c[Ba>>2]=wa;c[Da>>2]=xa;Ha=wa;Ja=xa}else{Ha=ha;Ja=c[Da>>2]|0}xa=za>>>0>Ha>>>0?Ha:za;Vv(Ea|0,Ja|0,xa|0)|0;ha=(c[Ba>>2]|0)-xa|0;c[Ba>>2]=ha;c[Da>>2]=(c[Da>>2]|0)+xa;za=za-xa|0;if(!za)break;else Ea=Ea+xa|0}Ea=c[g>>2]|0;if(!Ea)Ka=0;else{za=qf(c[b>>2]|0,c[Aa>>2]|0,Ea)|0;Da=c[h>>2]|0;ha=Da+16|0;Ba=Da+8|0;Fa=Da+12|0;ka=Da+4|0;Ga=c[Da>>2]|0;xa=za;wa=Ea;while(1){if(!Ga){va=Oa[c[Ba>>2]&7](c[ha>>2]|0,c[Fa>>2]|0,f)|0;ua=c[f>>2]|0;if((va|0)==0|(ua|0)==0){s=307;break h}c[Da>>2]=ua;c[ka>>2]=va;La=ua;Ma=va}else{La=Ga;Ma=c[ka>>2]|0}va=wa>>>0>La>>>0?La:wa;Vv(xa|0,Ma|0,va|0)|0;Ga=(c[Da>>2]|0)-va|0;c[Da>>2]=Ga;c[ka>>2]=(c[ka>>2]|0)+va;wa=wa-va|0;if(!wa)break;else xa=xa+va|0}Ka=xd(c[b>>2]|0,za,Ea+-1|0)|0}c[(c[Z>>2]|0)+(Ca<<3)>>2]=Ka;Ca=Ca+1|0;if((Ca|0)>=(ya|0)){s=310;break}}if((s|0)==299)of(b,49052);else if((s|0)==307)of(b,49052);else if((s|0)==310){Ia=e;return}}function qf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=d+8|0;g=c[f>>2]|0;if(g>>>0>=e>>>0){h=c[d>>2]|0;return h|0}i=e>>>0>32?e:32;if((i+1|0)>>>0>4294967293)Lc(b);e=c[d>>2]|0;j=c[b+12>>2]|0;k=(e|0)==0;l=j+4|0;m=Pa[c[j>>2]&3](c[l>>2]|0,e,g,i)|0;if(!m){if(!(a[j+51>>0]|0))yc(b,4);Kc(b,1);n=Pa[c[j>>2]&3](c[l>>2]|0,e,g,i)|0;if(!n)yc(b,4);else o=n}else o=m;m=j+12|0;c[m>>2]=(k?0:0-g|0)+i+(c[m>>2]|0);c[d>>2]=o;c[f>>2]=i;h=o;return h|0}function rf(b){b=b|0;a[b+6>>0]=0;c[b+16>>2]=b+72;return}function sf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=b+12|0;h=c[g>>2]|0;do switch(e|0){case 0:{a[h+51>>0]=0;i=0;return i|0}case 1:{j=h+12|0;k=h+8|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);c[j>>2]=0;a[h+51>>0]=1;i=0;return i|0}case 2:{Kc(b,0);i=0;return i|0}case 3:{i=((c[h+12>>2]|0)+(c[h+8>>2]|0)|0)>>>10;return i|0}case 4:{i=(c[h+12>>2]|0)+(c[h+8>>2]|0)&1023;return i|0}case 5:{if((a[h+50>>0]|0)==2){j=(c[h+20>>2]|0)==0&1;Oc(b);i=j;return i|0}else{j=h+12|0;k=c[j>>2]|0;l=(f<<10)+-1600+((a[h+51>>0]|0)==0?0:k)|0;m=h+8|0;c[m>>2]=k-l+(c[m>>2]|0);c[j>>2]=l;Oc(b);i=(a[h+49>>0]|0)==5&1;return i|0}break}case 6:{l=h+128|0;j=c[l>>2]|0;c[l>>2]=f;i=j;return i|0}case 8:{j=h+132|0;l=c[j>>2]|0;c[j>>2]=f;i=l;return i|0}case 7:{l=h+136|0;j=c[l>>2]|0;c[l>>2]=f;i=j;return i|0}case 9:{i=d[h+51>>0]|0;return i|0}case 10:{j=h+50|0;if((a[j>>0]|0)==2){i=0;return i|0}l=h+49|0;if(a[l>>0]|0)do gd(b)|0;while((a[l>>0]|0)!=0);c[h+20>>2]=(c[h+12>>2]|0)+(c[h+8>>2]|0);a[j>>0]=2;i=0;return i|0}case 11:{l=h+50|0;if(!(a[l>>0]|0)){i=0;return i|0}a[l>>0]=0;ld(b)|0;l=(c[g>>2]|0)+49|0;if(1<<d[l>>0]&-29|0){i=0;return i|0}do gd(b)|0;while(!(1<<d[l>>0]&-29|0));i=0;return i|0}default:{i=-1;return i|0}}while(0);return 0}function tf(a){a=a|0;Dc(a);return 0}function uf(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=c[a+16>>2]|0;do if((b|0)<=0){if((b|0)>=-1000999){f=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){f=(c[a+12>>2]|0)+36|0;break}g=-1001e3-b|0;h=c[e>>2]|0;if((c[h+4>>2]|32|0)==54)f=2217396;else{i=c[h>>2]|0;f=(g|0)>(d[i+6>>0]|0|0)?2217396:i+16+(g+-1<<3)|0}}else{g=(c[e>>2]|0)+(b<<3)|0;f=g>>>0<(c[a+8>>2]|0)>>>0?g:2217396}while(0);b=c[f>>2]|0;f=a+8|0;e=c[f>>2]|0;g=e+-8|0;i=vf(a,b,g)|0;a=i+1|0;h=c[b+28>>2]|0;a:do if((a|0)<(h|0)){j=b+12|0;k=c[j>>2]|0;l=i;m=a;while(1){if(c[k+(m<<3)+4>>2]|0)break;n=m+1|0;if((n|0)<(h|0)){o=m;m=n;l=o}else{p=n;q=14;break a}}c[g>>2]=(l<<16)+131072;c[e+-4>>2]=3;k=c[j>>2]|0;c[e>>2]=c[k+(m<<3)>>2];r=k+(m<<3)+4|0}else{p=a;q=14}while(0);do if((q|0)==14){a=p-h|0;i=1<<(d[b+7>>0]|0);if((a|0)>=(i|0)){s=-1;t=0;u=c[f>>2]|0;v=u+(s<<3)|0;c[f>>2]=v;return t|0}k=b+16|0;n=c[k>>2]|0;o=a;while(1){if(c[n+(o*20|0)+4>>2]|0){q=17;break}a=o+1|0;if((a|0)<(i|0))o=a;else{s=-1;t=0;q=20;break}}if((q|0)==17){c[g>>2]=c[n+(o*20|0)+8>>2];c[e+-4>>2]=c[n+(o*20|0)+12>>2];i=c[k>>2]|0;c[e>>2]=c[i+(o*20|0)>>2];r=i+(o*20|0)+4|0;break}else if((q|0)==20){u=c[f>>2]|0;v=u+(s<<3)|0;c[f>>2]=v;return t|0}}while(0);c[e+4>>2]=c[r>>2];s=1;t=1;u=c[f>>2]|0;v=u+(s<<3)|0;c[f>>2]=v;return t|0}function vf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=Ia;Ia=Ia+16|0;f=e;g=d+4|0;switch(c[g>>2]|0){case 3:{h=2;break}case 0:{i=-1;Ia=e;return i|0}default:{}}if(((h|0)==2?(j=c[d>>2]|0,k=j>>16,(j|0)>65535&((j+-65536|0)>>>0<2147352577&(j&65535|0)==0)):0)?(k|0)<=(c[b+28>>2]|0):0){i=k+-1|0;Ia=e;return i|0}k=vd(b,d)|0;while(1){j=k+8|0;l=k+12|0;m=c[l>>2]|0;if((m|0)==(c[g>>2]|0)){if(Tc(0,j,d)|0)break;n=c[l>>2]|0}else n=m;if(((n|0)==11?c[g>>2]&64|0:0)?(c[j>>2]|0)==(c[d>>2]|0):0)break;j=c[k+16>>2]|0;if(!j){h=14;break}else k=j}if((h|0)==14)Ac(a,49136,f);i=((k-(c[b+16>>2]|0)|0)/20|0)+(c[b+28>>2]|0)|0;Ia=e;return i|0}function wf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if((d|0)<=1){if(d|0)return;e=b+8|0;f=c[e>>2]|0;g=bd(b,3196396,0)|0;c[f>>2]=g;c[f+4>>2]=(a[g+4>>0]|64)&255;c[e>>2]=(c[e>>2]|0)+8;return}e=c[b+12>>2]|0;g=e+12|0;f=c[g>>2]|0;do if((f|0)>0)if(!(a[e+51>>0]|0)){h=e+8|0;c[h>>2]=f+1600+(c[h>>2]|0);c[g>>2]=-1600;break}else{Oc(b);break}while(0);Rc(b,d);return}function xf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;g=Ia;Ia=Ia+160|0;h=g+40|0;i=g+32|0;j=g+24|0;k=g+16|0;l=g+8|0;m=g;n=g+48|0;o=b+8|0;p=b+16|0;q=(c[o>>2]|0)-((c[c[p>>2]>>2]|0)+8)>>3;r=d+16|0;s=c[r>>2]|0;t=d+72|0;if((s|0)==(t|0)){u=0;v=1}else{w=1;x=1;while(1){if(!w){y=s;z=0}else{A=s;B=w;while(1){C=B+-1|0;D=c[A+8>>2]|0;if((B|0)>1&(D|0)!=(t|0)){A=D;B=C}else{y=D;z=C;break}}}if((z|0)!=0|(y|0)==(t|0)){E=w;F=x;break}B=w<<1;if((w|0)<0){E=B;F=w;break}else{A=w;w=B;x=A}}if((F|0)<(E|0)){x=E;w=F;while(1){F=x+w|0;y=(F|0)/2|0;if((F|0)<-1)G=0;else{if((F+1|0)>>>0>2){F=s;z=y;while(1){A=z+-1|0;B=c[F+8>>2]|0;if((z|0)>1&(B|0)!=(t|0)){F=B;z=A}else{H=B;I=A;break}}}else{H=s;I=y}G=(I|0)==0&(H|0)!=(t|0)&1}z=(G|0)==0;F=z?y:x;w=z?w:y+1|0;if((w|0)>=(F|0)){J=F;break}else x=F}}else J=E;u=(J|0)>23?12:0;v=J}if(e|0){c[m>>2]=e;Td(b,61091,m)|0}m=b+12|0;e=c[m>>2]|0;J=e+12|0;E=c[J>>2]|0;do if((E|0)>0)if(!(a[e+51>>0]|0)){x=e+8|0;c[x>>2]=E+1600+(c[x>>2]|0);c[J>>2]=-1600;break}else{Oc(b);break}while(0);J=bd(b,49158,16)|0;E=c[o>>2]|0;c[E>>2]=J;c[E+4>>2]=(a[J+4>>0]|64)&255;J=(c[o>>2]|0)+8|0;c[o>>2]=J;if((f|0)<0){K=J;L=J}else{J=n+96|0;E=n+36|0;e=n+20|0;x=v+-11|0;v=n+8|0;w=n+12|0;G=n+35|0;H=n+4|0;I=n+24|0;s=f;while(1){f=s+1|0;F=c[r>>2]|0;if((s|0)!=0&(F|0)!=(t|0)){z=F;A=s;while(1){B=A+-1|0;C=c[z+8>>2]|0;if((A|0)>1&(C|0)!=(t|0)){z=C;A=B}else{M=C;N=B;break}}}else{M=F;N=s}if((N|0)!=0|(M|0)==(t|0))break;c[J>>2]=M;do if((f|0)==(u|0)){A=c[m>>2]|0;z=A+12|0;y=c[z>>2]|0;do if((y|0)>0)if(!(a[A+51>>0]|0)){B=A+8|0;c[B>>2]=y+1600+(c[B>>2]|0);c[z>>2]=-1600;break}else{Oc(b);break}while(0);z=bd(b,49175,5)|0;y=c[o>>2]|0;c[y>>2]=z;c[y+4>>2]=(a[z+4>>0]|64)&255;c[o>>2]=(c[o>>2]|0)+8;O=x}else{yf(d,49181,n)|0;c[l>>2]=E;Td(b,49186,l)|0;z=c[e>>2]|0;if((z|0)>0){c[k>>2]=z<<16;Td(b,49192,k)|0}z=c[m>>2]|0;y=z+12|0;A=c[y>>2]|0;do if((A|0)>0)if(!(a[z+51>>0]|0)){B=z+8|0;c[B>>2]=A+1600+(c[B>>2]|0);c[y>>2]=-1600;break}else{Oc(b);break}while(0);y=bd(b,49196,4)|0;A=c[o>>2]|0;c[A>>2]=y;c[A+4>>2]=(a[y+4>>0]|64)&255;c[o>>2]=(c[o>>2]|0)+8;a:do if(!(a[c[v>>2]>>0]|0))switch(a[c[w>>2]>>0]|0){case 109:{y=c[m>>2]|0;A=y+12|0;z=c[A>>2]|0;do if((z|0)>0)if(!(a[y+51>>0]|0)){B=y+8|0;c[B>>2]=z+1600+(c[B>>2]|0);c[A>>2]=-1600;break}else{Oc(b);break}while(0);A=bd(b,49215,10)|0;z=c[o>>2]|0;c[z>>2]=A;c[z+4>>2]=(a[A+4>>0]|64)&255;c[o>>2]=(c[o>>2]|0)+8;break a;break}case 67:{if(!(zf(b,n)|0)){A=c[m>>2]|0;z=A+12|0;y=c[z>>2]|0;do if((y|0)>0)if(!(a[A+51>>0]|0)){B=A+8|0;c[B>>2]=y+1600+(c[B>>2]|0);c[z>>2]=-1600;break}else{Oc(b);break}while(0);z=bd(b,80062,1)|0;y=c[o>>2]|0;c[y>>2]=z;c[y+4>>2]=(a[z+4>>0]|64)&255;c[o>>2]=(c[o>>2]|0)+8;break a}z=c[o>>2]|0;y=z+-8|0;if((c[z+-4>>2]&15|0)!=4)if(!(Kd(b,y)|0))P=0;else{z=c[m>>2]|0;A=z+12|0;B=c[A>>2]|0;do if((B|0)>0)if(!(a[z+51>>0]|0)){C=z+8|0;c[C>>2]=B+1600+(c[C>>2]|0);c[A>>2]=-1600;break}else{Oc(b);break}while(0);Q=(c[o>>2]|0)+-8|0;R=57}else{Q=y;R=57}if((R|0)==57){R=0;P=(c[Q>>2]|0)+16|0}c[i>>2]=P;Td(b,49201,i)|0;A=c[o>>2]|0;B=A+-8|0;z=A+-16|0;while(1){c[z>>2]=c[B>>2];c[z+4>>2]=c[z+12>>2];A=B+8|0;S=c[o>>2]|0;if(A>>>0<S>>>0){C=B;B=A;z=C}else break}c[o>>2]=S+-8;break a;break}default:{z=c[I>>2]<<16;c[h>>2]=E;c[h+4>>2]=z;Td(b,49226,h)|0;break a}}else{c[j>>2]=c[H>>2];Td(b,49201,j)|0}while(0);if(!(a[G>>0]|0)){z=c[o>>2]|0;T=z;U=z}else{z=c[m>>2]|0;B=z+12|0;y=c[B>>2]|0;do if((y|0)>0)if(!(a[z+51>>0]|0)){C=z+8|0;c[C>>2]=y+1600+(c[C>>2]|0);c[B>>2]=-1600;break}else{Oc(b);break}while(0);B=bd(b,49243,20)|0;y=c[o>>2]|0;c[y>>2]=B;c[y+4>>2]=(a[B+4>>0]|64)&255;B=(c[o>>2]|0)+8|0;c[o>>2]=B;T=B;U=B}B=(T-((c[c[p>>2]>>2]|0)+8)>>3)-q|0;if((B|0)<=1){if(B|0){O=f;break}y=bd(b,3196396,0)|0;c[U>>2]=y;c[U+4>>2]=(a[y+4>>0]|64)&255;c[o>>2]=(c[o>>2]|0)+8;O=f;break}y=c[m>>2]|0;z=y+12|0;C=c[z>>2]|0;do if((C|0)>0)if(!(a[y+51>>0]|0)){A=y+8|0;c[A>>2]=C+1600+(c[A>>2]|0);c[z>>2]=-1600;break}else{Oc(b);break}while(0);Rc(b,B);O=f}while(0);if((O|0)<0)break;else s=O}O=c[o>>2]|0;K=O;L=O}O=(K-((c[c[p>>2]>>2]|0)+8)>>3)-q|0;if((O|0)<=1){if(O|0){Ia=g;return}q=bd(b,3196396,0)|0;c[L>>2]=q;c[L+4>>2]=(a[q+4>>0]|64)&255;c[o>>2]=(c[o>>2]|0)+8;Ia=g;return}o=c[m>>2]|0;m=o+12|0;q=c[m>>2]|0;do if((q|0)>0)if(!(a[o+51>>0]|0)){L=o+8|0;c[L>>2]=q+1600+(c[L>>2]|0);c[m>>2]=-1600;break}else{Oc(b);break}while(0);Rc(b,O);Ia=g;return}function yf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;g=Ia;Ia=Ia+16|0;h=g;if((a[e>>0]|0)==62){i=b+8|0;j=(c[i>>2]|0)+-8|0;c[i>>2]=j;k=0;l=j;m=e+1|0}else{j=c[f+96>>2]|0;k=j;l=c[j>>2]|0;m=e}e=l+4|0;if((c[e>>2]&31|0)==6)n=c[l>>2]|0;else n=0;j=a[m>>0]|0;a:do if(!(j<<24>>24))o=1;else{i=(n|0)==0;p=(k|0)==0;q=f+16|0;r=f+24|0;s=f+28|0;t=f+12|0;u=f+36|0;v=n+4|0;w=f+20|0;x=k+18|0;y=f+32|0;z=f+34|0;A=f+33|0;B=n+6|0;C=f+35|0;D=f+8|0;E=f+45|0;F=n+12|0;G=f+4|0;H=k+8|0;I=f+95|0;J=f+39|0;K=k+28|0;L=b+12|0;M=j;N=1;O=m;while(1){b:do switch(M<<24>>24|0){case 83:{if(!i?(a[v>>0]|0)!=38:0){P=c[F>>2]|0;Q=c[P+36>>2]|0;R=(Q|0)==0?49269:Q+16|0;c[q>>2]=R;Q=c[P+64>>2]|0;c[r>>2]=Q;c[s>>2]=c[P+68>>2];S=R;T=(Q|0)==0?49272:49277}else{c[q>>2]=49264;c[r>>2]=-1;c[s>>2]=-1;S=49264;T=97345}c[t>>2]=T;Q=bu(S)|0;switch(a[S>>0]|0){case 61:{R=S+1|0;if(Q>>>0>60){U=u;V=R;W=U+59|0;do{a[U>>0]=a[V>>0]|0;U=U+1|0;V=V+1|0}while((U|0)<(W|0));a[I>>0]=0;X=N;break b}else{Vv(u|0,R|0,Q|0)|0;X=N;break b}break}case 64:{if(Q>>>0>60){a[u>>0]=a[74024]|0;a[u+1>>0]=a[74025]|0;a[u+2>>0]=a[74026]|0;U=J;V=S+1+Q+-57|0;W=U+57|0;do{a[U>>0]=a[V>>0]|0;U=U+1|0;V=V+1|0}while((U|0)<(W|0));X=N;break b}else{Vv(u|0,S+1|0,Q|0)|0;X=N;break b}break}default:{R=nu(S,10)|0;U=u;V=47837;W=U+9|0;do{a[U>>0]=a[V>>0]|0;U=U+1|0;V=V+1|0}while((U|0)<(W|0));P=(R|0)==0;if(Q>>>0<45&P){Vv(E|0,S|0,Q|0)|0;Y=E+Q|0}else{Z=P?Q:R-S|0;P=Z>>>0<45?Z:45;Vv(E|0,S|0,P|0)|0;Z=E+P|0;a[Z>>0]=a[74024]|0;a[Z+1>>0]=a[74025]|0;a[Z+2>>0]=a[74026]|0;Y=Z+3|0};a[Y>>0]=a[47847]|0;a[Y+1>>0]=a[47848]|0;a[Y+2>>0]=a[47849]|0;X=N;break b}}break}case 108:{if(!p?(a[x>>0]&1)!=0:0){Z=c[(c[c[k>>2]>>2]|0)+12>>2]|0;P=c[Z+20>>2]|0;if(!P)_=0;else _=c[P+(((c[K>>2]|0)-(c[Z+12>>2]|0)>>2)+-1<<2)>>2]|0}else _=-1;c[w>>2]=_;X=N;break}case 117:{if(!i){a[y>>0]=a[B>>0]|0;if((a[v>>0]|0)!=38){a[z>>0]=a[(c[F>>2]|0)+77>>0]|0;a[A>>0]=a[(c[F>>2]|0)+76>>0]|0;X=N;break b}}else a[y>>0]=0;a[z>>0]=1;a[A>>0]=0;X=N;break}case 116:{if(p)$=0;else $=a[x>>0]&64;a[C>>0]=$;X=N;break}case 110:{c:do if((!p?(a[x>>0]&64)==0:0)?(Z=c[H>>2]|0,(a[Z+18>>0]&1)!=0):0){P=c[(c[c[Z>>2]>>2]|0)+12>>2]|0;aa=c[P+12>>2]|0;ba=((c[Z+28>>2]|0)-aa>>2)+-1|0;Z=c[aa+(ba<<2)>>2]|0;do switch(Z&63){case 43:case 42:{aa=ed(P,ba,Z>>>6&255,G)|0;c[D>>2]=aa;if(!aa)break c;else{X=N;break b}break}case 47:{c[G>>2]=49281;ca=49281;break}case 7:case 6:case 12:{da=0;ea=68;break}case 10:case 8:{da=1;ea=68;break}case 37:{da=5;ea=68;break}case 13:{da=6;ea=68;break}case 14:{da=7;ea=68;break}case 15:{da=8;ea=68;break}case 16:{da=9;ea=68;break}case 17:{da=10;ea=68;break}case 18:{da=11;ea=68;break}case 19:{da=12;ea=68;break}case 20:{da=13;ea=68;break}case 21:{da=14;ea=68;break}case 22:{da=15;ea=68;break}case 23:{da=16;ea=68;break}case 24:{da=17;ea=68;break}case 25:{da=18;ea=68;break}case 26:{da=19;ea=68;break}case 27:{da=20;ea=68;break}case 28:{da=21;ea=68;break}case 29:{da=22;ea=68;break}case 30:{da=23;ea=68;break}case 31:{da=24;ea=68;break}case 32:{da=25;ea=68;break}case 34:{da=4;ea=68;break}case 38:{da=26;ea=68;break}case 39:{da=27;ea=68;break}case 35:{da=28;ea=68;break}default:{ea=69;break c}}while(0);if((ea|0)==68){ea=0;c[G>>2]=(c[(c[L>>2]|0)+156+(da<<2)>>2]|0)+16;ca=49294}c[D>>2]=ca;X=N;break b}else ea=69;while(0);if((ea|0)==69){ea=0;c[D>>2]=0}c[D>>2]=3196396;c[G>>2]=0;X=N;break}case 102:case 76:{X=N;break}default:X=0}while(0);O=O+1|0;M=a[O>>0]|0;if(!(M<<24>>24)){o=X;break a}else N=X}}while(0);if(nu(m,102)|0){X=b+8|0;ca=c[X>>2]|0;c[ca>>2]=c[l>>2];c[ca+4>>2]=c[e>>2];c[X>>2]=(c[X>>2]|0)+8}if(!(nu(m,76)|0)){Ia=g;return o|0}if(n|0?(a[n+4>>0]|0)!=38:0){m=n+12|0;n=c[(c[m>>2]|0)+20>>2]|0;X=c[b+12>>2]|0;e=X+4|0;ca=Pa[c[X>>2]&3](c[e>>2]|0,0,5,32)|0;if(!ca){if(!(a[X+51>>0]|0))yc(b,4);Kc(b,1);l=Pa[c[X>>2]&3](c[e>>2]|0,0,5,32)|0;if(!l)yc(b,4);else fa=l}else fa=ca;ca=X+12|0;c[ca>>2]=(c[ca>>2]|0)+32;ca=X+56|0;a[fa+5>>0]=a[X+48>>0]&3;a[fa+4>>0]=5;c[fa>>2]=c[ca>>2];c[ca>>2]=fa;c[fa+8>>2]=0;a[fa+6>>0]=-1;ca=fa+12|0;c[ca>>2]=0;X=fa+28|0;c[X>>2]=0;l=fa+16|0;c[l>>2]=2217420;e=fa+7|0;a[e>>0]=0;c[fa+20>>2]=2217420;da=b+8|0;$=c[da>>2]|0;c[$>>2]=fa;c[$+4>>2]=69;c[da>>2]=(c[da>>2]|0)+8;if((c[(c[m>>2]|0)+52>>2]|0)<=0){Ia=g;return o|0}da=h+4|0;$=0;do{_=c[n+($<<2)>>2]|0;k=_+-1|0;d:do if(k>>>0<(c[X>>2]|0)>>>0){ga=(c[ca>>2]|0)+(k<<3)|0;ea=94}else{Y=_<<16;S=0-Y|0;V=(c[l>>2]|0)+(((((Y|0)<0?((Y|0)==(S|0)?0:S):Y)|0)%((1<<d[e>>0])+-1|1|0)|0)*20|0)|0;while(1){if((c[V+12>>2]|0)==3?(c[V+8>>2]|0)==(Y|0):0)break;S=c[V+16>>2]|0;if(!S){ha=Y;ea=96;break d}else V=S}ga=V;ea=94}while(0);if((ea|0)==94){ea=0;if((ga|0)==2217396){ha=_<<16;ea=96}else ia=ga}if((ea|0)==96){ea=0;c[h>>2]=ha;c[da>>2]=3;ia=Nc(b,fa,h)|0}c[ia>>2]=1;c[ia+4>>2]=1;$=$+1|0}while(($|0)<(c[(c[m>>2]|0)+52>>2]|0));Ia=g;return o|0}m=b+8|0;b=c[m>>2]|0;c[b+4>>2]=0;c[m>>2]=b+8;Ia=g;return o|0}function zf(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=a+8|0;f=a+16|0;g=(c[e>>2]|0)-((c[c[f>>2]>>2]|0)+8)|0;h=g>>3;yf(a,92377,b)|0;b=c[(c[a+12>>2]|0)+36>>2]|0;a:do if((c[b+28>>2]|0)>>>0>1)i=(c[b+12>>2]|0)+8|0;else{j=(c[b+16>>2]|0)+((131072%((1<<(d[b+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[j+12>>2]|0)==3?(c[j+8>>2]|0)==131072:0)break;k=c[j+16>>2]|0;if(!k){i=2217396;break a}else j=k}i=j}while(0);b=c[e>>2]|0;c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[e>>2]=(c[e>>2]|0)+8;i=h+1|0;if(Af(a,i,2)|0){Ad(a,-1,i);l=(c[e>>2]|0)+-16|0;m=1;c[e>>2]=l;return m|0}if((g|0)<=-8){l=(c[e>>2]|0)+(i<<3)|0;m=0;c[e>>2]=l;return m|0}i=c[c[f>>2]>>2]|0;f=c[e>>2]|0;g=i+8+(h<<3)|0;if(f>>>0>=g>>>0){l=g;m=0;c[e>>2]=l;return m|0}a=(i+(h<<3)+4+(3-f)|0)>>>3;h=f;do{c[h+4>>2]=0;h=h+8|0}while(h>>>0<g>>>0);c[e>>2]=f+(a+1<<3);l=g;m=0;c[e>>2]=l;return m|0}function Af(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if(!f){g=0;return g|0}h=b+16|0;i=b+8|0;j=c[i>>2]|0;if((j+-8|0)==2217396){g=0;return g|0}if((c[j+-4>>2]&15|0)!=5){g=0;return g|0}c[j+4>>2]=0;c[i>>2]=j+8;if(!(uf(b,-2)|0)){g=0;return g|0}j=f+-1|0;f=(e|0)<-1000999;k=(e|0)==-1001e3;l=b+12|0;m=-1001e3-e|0;n=m+-1|0;a:do if((e|0)>0){while(1){o=c[i>>2]|0;if((o+-16|0)!=2217396?(c[o+-12>>2]&15|0)==4:0){p=(c[c[h>>2]>>2]|0)+(e<<3)|0;q=p>>>0<o>>>0?p:2217396;p=o+-8|0;if(((p|0)!=2217396&(q|0)!=2217396?(c[q+4>>2]|0)==(c[o+-4>>2]|0):0)?Tc(0,q,p)|0:0){r=27;break a}if(Af(b,e,j)|0)break a;s=c[i>>2]|0}else s=o;c[i>>2]=s+-8;if(!(uf(b,-2)|0)){g=0;break}}return g|0}else{while(1){o=c[i>>2]|0;if((o+-16|0)!=2217396?(c[o+-12>>2]&15|0)==4:0){p=c[h>>2]|0;do if(f){if(k){t=(c[l>>2]|0)+36|0;r=24;break}q=c[p>>2]|0;if((c[q+4>>2]|32|0)!=54){u=c[q>>2]|0;t=(m|0)>(d[u+6>>0]|0)?2217396:u+16+(n<<3)|0;r=24}}else{t=o+(e<<3)|0;r=24}while(0);if((((r|0)==24?(r=0,p=o+-8|0,(p|0)!=2217396&(t|0)!=2217396):0)?(c[t+4>>2]|0)==(c[o+-4>>2]|0):0)?Tc(0,t,p)|0:0){r=27;break a}if(Af(b,e,j)|0)break a;v=c[i>>2]|0}else v=o;c[i>>2]=v+-8;if(!(uf(b,-2)|0)){g=0;break}}return g|0}while(0);if((r|0)==27){c[i>>2]=(c[i>>2]|0)+-8;g=1;return g|0}r=c[i>>2]|0;v=r+-8|0;j=r+-16|0;while(1){c[j>>2]=c[v>>2];c[j+4>>2]=c[j+12>>2];r=v+8|0;w=c[i>>2]|0;if(r>>>0<w>>>0){e=v;v=r;j=e}else break}c[i>>2]=w+-8;w=c[l>>2]|0;j=w+12|0;v=c[j>>2]|0;do if((v|0)>0)if(!(a[w+51>>0]|0)){e=w+8|0;c[e>>2]=v+1600+(c[e>>2]|0);c[j>>2]=-1600;break}else{Oc(b);break}while(0);j=bd(b,104886,1)|0;v=c[i>>2]|0;c[v>>2]=j;c[v+4>>2]=(a[j+4>>0]|64)&255;j=c[i>>2]|0;v=j+8|0;c[i>>2]=v;w=v;do{v=w;w=w+-8|0;c[v>>2]=c[w>>2];c[v+4>>2]=c[v+-4>>2]}while(v>>>0>j>>>0);w=c[i>>2]|0;c[j+-8>>2]=c[w>>2];c[j+-4>>2]=c[w+4>>2];w=c[l>>2]|0;l=w+12|0;j=c[l>>2]|0;do if((j|0)>0)if(!(a[w+51>>0]|0)){i=w+8|0;c[i>>2]=j+1600+(c[i>>2]|0);c[l>>2]=-1600;break}else{Oc(b);break}while(0);Rc(b,3);g=1;return g|0}function Bf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=Ia;Ia=Ia+128|0;g=f+16|0;h=f+8|0;i=f;j=f+28|0;f=c[b+16>>2]|0;if((f|0)==(b+72|0)){c[i>>2]=d;c[i+4>>2]=e;Cf(b,49305,i)|0}c[j+96>>2]=f;yf(b,49327,j)|0;if(!(au(c[j+8>>2]|0,47574)|0)){f=d+-1|0;if(!f){c[h>>2]=c[j+4>>2];c[h+4>>2]=e;Cf(b,49329,h)|0}else k=f}else k=d;d=j+4|0;f=c[d>>2]|0;if(f|0){l=f;c[g>>2]=k;m=g+4|0;c[m>>2]=l;n=g+8|0;c[n>>2]=e;Cf(b,49359,g)|0}do if(!(zf(b,j)|0))o=80062;else{f=b+8|0;h=c[f>>2]|0;i=h+-8|0;if((c[h+-4>>2]&15|0)==4)p=i;else{if(!(Kd(b,i)|0)){o=0;break}i=c[b+12>>2]|0;h=i+12|0;q=c[h>>2]|0;do if((q|0)>0)if(!(a[i+51>>0]|0)){r=i+8|0;c[r>>2]=q+1600+(c[r>>2]|0);c[h>>2]=-1600;break}else{Oc(b);break}while(0);p=(c[f>>2]|0)+-8|0}o=(c[p>>2]|0)+16|0}while(0);c[d>>2]=o;l=o;c[g>>2]=k;m=g+4|0;c[m>>2]=l;n=g+8|0;c[n>>2]=e;Cf(b,49359,g)|0;return 0}function Cf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=d;Df(a,1);Sd(a,b,f)|0;wf(a,2);tf(a)|0;return 0}function Df(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=Ia;Ia=Ia+112|0;f=e;g=e+8|0;if((d|0)>=0){h=c[b+16>>2]|0;i=b+72|0;if((d|0)!=0&(h|0)!=(i|0)){j=h;k=d;while(1){l=k+-1|0;m=c[j+8>>2]|0;if((k|0)>1&(m|0)!=(i|0)){j=m;k=l}else{n=m;o=l;break}}}else{n=h;o=d}if(!((o|0)!=0|(n|0)==(i|0))?(c[g+96>>2]=n,yf(b,49389,g)|0,n=g+20|0,i=c[n>>2]|0,(i|0)>0):0){c[f>>2]=g+36;c[f+4>>2]=i<<16;Td(b,49392,f)|0;c[554351]=c[n>>2];Ia=e;return}}n=c[b+12>>2]|0;f=n+12|0;i=c[f>>2]|0;do if((i|0)>0)if(!(a[n+51>>0]|0)){g=n+8|0;c[g>>2]=i+1600+(c[g>>2]|0);c[f>>2]=-1600;break}else{Oc(b);break}while(0);f=bd(b,3196396,0)|0;i=b+8|0;b=c[i>>2]|0;c[b>>2]=f;c[b+4>>2]=(a[f+4>>0]|64)&255;c[i>>2]=(c[i>>2]|0)+8;Ia=e;return}function Ef(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Ia;Ia=Ia+16|0;g=f;h=Jd(a,b,e)|0;if(h|0){Ia=f;return h|0}e=c[a+16>>2]|0;do if((b|0)>0){i=(c[e>>2]|0)+(b<<3)|0;if(i>>>0<(c[a+8>>2]|0)>>>0){j=i;k=10}else l=0}else{if((b|0)>=-1000999){j=(c[a+8>>2]|0)+(b<<3)|0;k=10;break}if((b|0)==-1001e3){j=(c[a+12>>2]|0)+36|0;k=10;break}i=-1001e3-b|0;m=c[e>>2]|0;if((c[m+4>>2]|32|0)!=54?(n=c[m>>2]|0,(i|0)<=(d[n+6>>0]|0|0)):0){j=n+16+(i+-1<<3)|0;k=10}else l=0}while(0);if((k|0)==10)if((j|0)==2217396)l=0;else l=(c[j+4>>2]&15)+1|0;j=c[16+(l<<2)>>2]|0;c[g>>2]=62511;c[g+4>>2]=j;Bf(a,b,Td(a,49400,g)|0)|0;Ia=f;return h|0}function Ff(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=c[a+16>>2]|0;do if((b|0)>0){h=(c[g>>2]|0)+(b<<3)|0;if(h>>>0<(c[a+8>>2]|0)>>>0){i=h;j=9}}else{if((b|0)>=-1000999){i=(c[a+8>>2]|0)+(b<<3)|0;j=9;break}if((b|0)==-1001e3){i=(c[a+12>>2]|0)+36|0;j=9;break}h=-1001e3-b|0;k=c[g>>2]|0;if((c[k+4>>2]|32|0)!=54?(l=c[k>>2]|0,(h|0)<=(d[l+6>>0]|0|0)):0){i=l+16+(h+-1<<3)|0;j=9}}while(0);if(((j|0)==9?(i|0)!=2217396:0)?c[i+4>>2]&15|0:0){m=Ef(a,b,f)|0;return m|0}if(!f){m=e;return m|0}if(!e)n=0;else n=bu(e)|0;c[f>>2]=n;m=e;return m|0}function Gf(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=Ia;Ia=Ia+16|0;f=e;g=e+8|0;h=a+16|0;i=c[h>>2]|0;j=(b|0)>0;do if(!j){if((b|0)>=-1000999){k=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){k=(c[a+12>>2]|0)+36|0;break}l=-1001e3-b|0;m=c[i>>2]|0;if((c[m+4>>2]|32|0)==54)k=2217396;else{n=c[m>>2]|0;k=(l|0)>(d[n+6>>0]|0|0)?2217396:n+16+(l+-1<<3)|0}}else{l=(c[i>>2]|0)+(b<<3)|0;k=l>>>0<(c[a+8>>2]|0)>>>0?l:2217396}while(0);l=c[k+4>>2]|0;a:do if((l|0)==3)o=c[k>>2]|0;else{do if((l&15|0)==4){n=c[k>>2]|0;if(!(Wc(n+16|0,c[n+12>>2]|0,g)|0)){p=c[h>>2]|0;break}else{o=c[g>>2]|0;break a}}else p=i;while(0);do if(j){n=(c[p>>2]|0)+(b<<3)|0;if(n>>>0<(c[a+8>>2]|0)>>>0){q=n;r=24}else s=0}else{if((b|0)>=-1000999){q=(c[a+8>>2]|0)+(b<<3)|0;r=24;break}if((b|0)==-1001e3){q=(c[a+12>>2]|0)+36|0;r=24;break}n=-1001e3-b|0;m=c[p>>2]|0;if((c[m+4>>2]|32|0)!=54?(t=c[m>>2]|0,(n|0)<=(d[t+6>>0]|0|0)):0){q=t+16+(n+-1<<3)|0;r=24}else s=0}while(0);if((r|0)==24)if((q|0)==2217396)s=0;else s=(c[q+4>>2]&15)+1|0;n=c[16+(s<<2)>>2]|0;c[f>>2]=47158;c[f+4>>2]=n;Bf(a,b,Td(a,49400,f)|0)|0;u=0;Ia=e;return u|0}while(0);u=o>>16;Ia=e;return u|0}function Hf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a=b+4|0;e=c[a>>2]|0;if(!e){f=0;return f|0}c[d>>2]=e;c[a>>2]=0;f=c[b>>2]|0;return f|0}function If(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d;f=bu(b)|0;c[e>>2]=b;c[e+4>>2]=f;f=ee(a,3,e,b,0)|0;Ia=d;return f|0}function Jf(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=c[a+16>>2]|0;do if((b|0)<=0){if((b|0)>=-1000999){g=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){g=(c[a+12>>2]|0)+36|0;break}h=-1001e3-b|0;i=c[f>>2]|0;if((c[i+4>>2]|32|0)==54)g=2217396;else{j=c[i>>2]|0;g=(h|0)>(d[j+6>>0]|0|0)?2217396:j+16+(h+-1<<3)|0}}else{h=(c[f>>2]|0)+(b<<3)|0;g=h>>>0<(c[a+8>>2]|0)>>>0?h:2217396}while(0);b=c[g+4>>2]|0;switch(b&15){case 5:{k=(c[g>>2]|0)+8|0;break}case 7:{k=(c[g>>2]|0)+8|0;break}default:k=(c[a+12>>2]|0)+276+((b&15)<<2)|0}b=c[k>>2]|0;if(!b){l=0;return l|0}k=a+8|0;g=c[k>>2]|0;c[g>>2]=b;c[g+4>>2]=69;c[k>>2]=(c[k>>2]|0)+8;Qd(a,e)|0;e=c[k>>2]|0;a=Mc(c[e+-16>>2]|0,e+-8|0)|0;e=c[k>>2]|0;c[e+-8>>2]=c[a>>2];c[e+-4>>2]=c[a+4>>2];a=c[k>>2]|0;e=a+-8|0;if((e|0)!=2217396?(c[a+-4>>2]&15|0)==0:0){m=a+-16|0;n=0}else{g=e;e=a+-16|0;while(1){c[e>>2]=c[g>>2];c[e+4>>2]=c[e+12>>2];a=g+8|0;o=c[k>>2]|0;if(a>>>0<o>>>0){b=g;g=a;e=b}else break}m=o+-8|0;n=1}c[k>>2]=m;l=n;return l|0}function Kf(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=Ia;Ia=Ia+16|0;h=g;if((e+1000999|0)>>>0>1000999)i=e;else i=((c[a+8>>2]|0)-(c[c[a+16>>2]>>2]|0)>>3)+e|0;if(!(Jf(a,i,f)|0)){j=0;Ia=g;return j|0}f=c[a+16>>2]|0;do if((i|0)<=0){if((i|0)>=-1000999){k=(c[a+8>>2]|0)+(i<<3)|0;break}if((i|0)==-1001e3){k=(c[a+12>>2]|0)+36|0;break}e=-1001e3-i|0;l=c[f>>2]|0;if((c[l+4>>2]|32|0)==54)k=2217396;else{m=c[l>>2]|0;k=(e|0)>(d[m+6>>0]|0|0)?2217396:m+16+(e+-1<<3)|0}}else{e=(c[f>>2]|0)+(i<<3)|0;k=e>>>0<(c[a+8>>2]|0)>>>0?e:2217396}while(0);i=a+8|0;f=c[i>>2]|0;c[f>>2]=c[k>>2];c[f+4>>2]=c[k+4>>2];k=c[i>>2]|0;c[i>>2]=k+8;i=k+-8|0;k=a+38|0;f=(b[k>>1]|0)+1<<16>>16;b[k>>1]=f;if((f&65535)>199){if(f<<16>>16==200)Ac(a,47199,h);if((f&65535)>224)yc(a,6)}f=a+36|0;b[f>>1]=(b[f>>1]|0)+1<<16>>16;if(!(Ec(a,i,1)|0))Fc(a);b[f>>1]=(b[f>>1]|0)+-1<<16>>16;b[k>>1]=(b[k>>1]|0)+-1<<16>>16;j=1;Ia=g;return j|0}function Lf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=Ia;Ia=Ia+16|0;h=g;a:do if(!(Kf(b,e,49465)|0)){i=c[b+16>>2]|0;j=(e|0)>0;do if(j){k=(c[i>>2]|0)+(e<<3)|0;l=c[b+8>>2]|0;if(k>>>0<l>>>0){m=k;n=10}else{o=l;p=k;n=40}}else{if((e|0)>=-1000999){m=(c[b+8>>2]|0)+(e<<3)|0;n=10;break}if((e|0)==-1001e3){m=(c[b+12>>2]|0)+36|0;n=10;break}k=-1001e3-e|0;l=c[i>>2]|0;q=c[l+4>>2]|32;if((q|0)!=54){r=c[l>>2]|0;if((k|0)>(d[r+6>>0]|0)){s=q;t=l;u=k;n=46}else{m=r+16+(k+-1<<3)|0;n=10}}else v=0}while(0);do if((n|0)==10){b:do if((m|0)!=2217396)switch(c[m+4>>2]&15){case 4:case 3:{do if(!j){if((e|0)>=-1000999){w=(c[b+8>>2]|0)+(e<<3)|0;break}if((e|0)==-1001e3){w=(c[b+12>>2]|0)+36|0;break}k=-1001e3-e|0;r=c[i>>2]|0;if((c[r+4>>2]|32|0)==54)w=2217396;else{l=c[r>>2]|0;w=(k|0)>(d[l+6>>0]|0)?2217396:l+16+(k+-1<<3)|0}}else{k=(c[i>>2]|0)+(e<<3)|0;w=k>>>0<(c[b+8>>2]|0)>>>0?k:2217396}while(0);k=b+8|0;l=c[k>>2]|0;c[l>>2]=c[w>>2];c[l+4>>2]=c[w+4>>2];c[k>>2]=(c[k>>2]|0)+8;break a;break}case 1:{do if(!j){if((e|0)>=-1000999){x=(c[b+8>>2]|0)+(e<<3)|0;break}if((e|0)==-1001e3){x=(c[b+12>>2]|0)+36|0;break}k=-1001e3-e|0;l=c[i>>2]|0;if((c[l+4>>2]|32|0)==54)x=2217396;else{r=c[l>>2]|0;x=(k|0)>(d[r+6>>0]|0)?2217396:r+16+(k+-1<<3)|0}}else{k=(c[i>>2]|0)+(e<<3)|0;x=k>>>0<(c[b+8>>2]|0)>>>0?k:2217396}while(0);switch(c[x+4>>2]|0){case 0:{n=31;break}case 1:{if(!(c[x>>2]|0))n=31;else y=65112;break}default:y=65112}if((n|0)==31)y=65117;Qd(b,y)|0;break a;break}case 0:{k=c[b+12>>2]|0;r=k+12|0;l=c[r>>2]|0;do if((l|0)>0)if(!(a[k+51>>0]|0)){q=k+8|0;c[q>>2]=l+1600+(c[q>>2]|0);c[r>>2]=-1600;break}else{Oc(b);break}while(0);r=bd(b,65123,3)|0;l=b+8|0;k=c[l>>2]|0;c[k>>2]=r;c[k+4>>2]=(a[r+4>>0]|64)&255;c[l>>2]=(c[l>>2]|0)+8;break a;break}default:break b}while(0);if(j){o=c[b+8>>2]|0;p=(c[i>>2]|0)+(e<<3)|0;n=40;break}if((e|0)>=-1000999){z=(c[b+8>>2]|0)+(e<<3)|0;n=48;break}if((e|0)==-1001e3){z=(c[b+12>>2]|0)+36|0;n=48;break}else{l=c[i>>2]|0;s=c[l+4>>2]|32;t=l;u=-1001e3-e|0;n=46;break}}while(0);if((n|0)==40)if(p>>>0<o>>>0){z=p;n=48}else v=0;else if((n|0)==46)if((s|0)!=54?(i=c[t>>2]|0,(u|0)<=(d[i+6>>0]|0)):0){z=i+16+(u+-1<<3)|0;n=48}else v=0;if((n|0)==48)if((z|0)==2217396)v=0;else v=(c[z+4>>2]&15)+1|0;i=c[16+(v<<2)>>2]|0;j=Md(b,e)|0;c[h>>2]=i;c[h+4>>2]=j;Td(b,49476,h)|0}while(0);h=b+8|0;e=c[h>>2]|0;v=e+-8|0;if((c[e+-4>>2]&15|0)==4)A=v;else{if(!(Kd(b,v)|0)){if(!f){B=0;Ia=g;return B|0}c[f>>2]=0;B=0;Ia=g;return B|0}v=c[b+12>>2]|0;e=v+12|0;z=c[e>>2]|0;do if((z|0)>0)if(!(a[v+51>>0]|0)){n=v+8|0;c[n>>2]=z+1600+(c[n>>2]|0);c[e>>2]=-1600;break}else{Oc(b);break}while(0);A=(c[h>>2]|0)+-8|0}if(f|0)c[f>>2]=c[(c[A>>2]|0)+12>>2];B=(c[A>>2]|0)+16|0;Ia=g;return B|0}function Mf(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=Ia;Ia=Ia+16|0;g=Pa[d&3](e,0,8,432)|0;if(!g){h=0;Ia=f;return h|0}i=g+120|0;c[g>>2]=0;a[g+4>>0]=8;a[g+168>>0]=33;a[g+5>>0]=1;a[g+170>>0]=0;c[g+12>>2]=i;c[g+28>>2]=0;c[g+16>>2]=0;c[g+32>>2]=0;c[g+64>>2]=0;b[g+38>>1]=0;c[g+52>>2]=0;a[g+40>>0]=0;c[g+44>>2]=0;a[g+41>>0]=1;c[g+48>>2]=0;c[g+56>>2]=0;b[g+36>>1]=1;a[g+6>>0]=0;c[g+68>>2]=0;c[i>>2]=d;c[g+124>>2]=e;c[g+264>>2]=g;e=g;d=f;i=(Fa(0)|0)^16;j=(i>>>2)+(1>>>24&255)+(i<<5)^i;i=(j>>>2)+(1>>>16&255)+(j<<5)^j;j=(i>>>2)+(1>>>8&255)+(i<<5)^i;i=(j>>>2)+1+(j<<5)^j;j=(i>>>2)+(2217396>>>24&255)+(i<<5)^i;i=(j>>>2)+(2217396>>>16&255)+(j<<5)^j;j=(i>>>2)+(2217396>>>8&255)+(i<<5)^i;i=(j>>>2)+180+(j<<5)^j;j=(i>>>2)+(d>>>24)+(i<<5)^i;i=(j>>>2)+(d>>>16&255)+(j<<5)^j;j=(i>>>2)+(d>>>8&255)+(i<<5)^i;i=(j>>>2)+(d&252)+(j<<5)^j;j=(i>>>2)+(e>>>24)+(i<<5)^i;i=(j>>>2)+(e>>>16&255)+(j<<5)^j;j=(i>>>2)+(e>>>8&255)+(i<<5)^i;c[g+164>>2]=(j>>>2)+(e&255)+(j<<5)^j;j=g+216|0;c[g+228>>2]=j;c[g+232>>2]=j;a[g+171>>0]=0;j=g+140|0;c[g+160>>2]=0;c[g+236>>2]=0;c[g+244>>2]=0;c[g+260>>2]=0;c[g+268>>2]=0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;a[g+169>>0]=5;j=g+128|0;e=g+176|0;i=e+40|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(i|0));c[j>>2]=432;c[g+132>>2]=0;c[g+248>>2]=200;c[g+252>>2]=200;c[g+256>>2]=200;e=g+396|0;i=e+36|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(i|0));if(!(xc(g,5,0)|0)){h=g;Ia=f;return h|0}Of(g);h=0;Ia=f;return h|0}function Nf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=Ia;Ia=Ia+16|0;f=e;g=b+12|0;h=c[g>>2]|0;i=h+4|0;j=Pa[c[h>>2]&3](c[i>>2]|0,0,0,320)|0;if(!j){if(!(a[h+51>>0]|0))yc(b,4);Kc(b,1);k=Pa[c[h>>2]&3](c[i>>2]|0,0,0,320)|0;if(!k)yc(b,4);else l=k}else l=j;j=h+12|0;c[j>>2]=(c[j>>2]|0)+320;c[b+28>>2]=l;c[b+32>>2]=40;j=l+4|0;c[j>>2]=0;c[l+12>>2]=0;c[l+20>>2]=0;c[l+28>>2]=0;c[l+36>>2]=0;c[l+44>>2]=0;c[l+52>>2]=0;c[l+60>>2]=0;c[l+68>>2]=0;c[l+76>>2]=0;c[l+84>>2]=0;c[l+92>>2]=0;c[l+100>>2]=0;c[l+108>>2]=0;c[l+116>>2]=0;c[l+124>>2]=0;c[l+132>>2]=0;c[l+140>>2]=0;c[l+148>>2]=0;c[l+156>>2]=0;c[l+164>>2]=0;c[l+172>>2]=0;c[l+180>>2]=0;c[l+188>>2]=0;c[l+196>>2]=0;c[l+204>>2]=0;c[l+212>>2]=0;c[l+220>>2]=0;c[l+228>>2]=0;c[l+236>>2]=0;c[l+244>>2]=0;c[l+252>>2]=0;c[l+260>>2]=0;c[l+268>>2]=0;c[l+276>>2]=0;c[l+284>>2]=0;c[l+292>>2]=0;c[l+300>>2]=0;c[l+308>>2]=0;c[l+316>>2]=0;c[b+24>>2]=l+280;k=b+72|0;c[b+80>>2]=0;c[b+84>>2]=0;a[b+90>>0]=0;c[k>>2]=l;c[b+8>>2]=l+8;c[j>>2]=0;c[b+76>>2]=l+168;c[b+16>>2]=k;k=c[g>>2]|0;l=k+4|0;j=Pa[c[k>>2]&3](c[l>>2]|0,0,5,32)|0;if(!j){if(!(a[k+51>>0]|0))yc(b,4);Kc(b,1);i=Pa[c[k>>2]&3](c[l>>2]|0,0,5,32)|0;if(!i)yc(b,4);else m=i}else m=j;j=k+12|0;c[j>>2]=(c[j>>2]|0)+32;j=k+56|0;a[m+5>>0]=a[k+48>>0]&3;a[m+4>>0]=5;c[m>>2]=c[j>>2];c[j>>2]=m;c[m+8>>2]=0;a[m+6>>0]=-1;j=m+12|0;c[j>>2]=0;k=m+28|0;c[k>>2]=0;i=m+16|0;c[i>>2]=2217420;l=m+7|0;a[l>>0]=0;c[m+20>>2]=2217420;c[h+36>>2]=m;c[h+40>>2]=69;Xc(b,m,2,0);n=b;a:do if(!(c[k>>2]|0)){o=(c[i>>2]|0)+((65536%((1<<d[l>>0])+-1|1|0)|0)*20|0)|0;while(1){if((c[o+12>>2]|0)==3?(c[o+8>>2]|0)==65536:0)break;p=c[o+16>>2]|0;if(!p){q=17;break a}else o=p}r=o;q=16}else{r=c[j>>2]|0;q=16}while(0);if((q|0)==16)if((r|0)==2217396)q=17;else s=r;if((q|0)==17){c[f>>2]=65536;c[f+4>>2]=3;s=Nc(b,m,f)|0}c[s>>2]=n;c[s+4>>2]=72;s=c[g>>2]|0;n=s+4|0;r=Pa[c[s>>2]&3](c[n>>2]|0,0,5,32)|0;if(!r){if(!(a[s+51>>0]|0))yc(b,4);Kc(b,1);p=Pa[c[s>>2]&3](c[n>>2]|0,0,5,32)|0;if(!p)yc(b,4);else t=p}else t=r;r=s+12|0;c[r>>2]=(c[r>>2]|0)+32;r=s+56|0;a[t+5>>0]=a[s+48>>0]&3;a[t+4>>0]=5;c[t>>2]=c[r>>2];c[r>>2]=t;c[t+8>>2]=0;a[t+6>>0]=-1;c[t+12>>2]=0;c[t+28>>2]=0;c[t+16>>2]=2217420;a[t+7>>0]=0;c[t+20>>2]=2217420;r=t;b:do if((c[k>>2]|0)>>>0>1){u=(c[j>>2]|0)+8|0;q=29}else{t=(c[i>>2]|0)+((131072%((1<<d[l>>0])+-1|1|0)|0)*20|0)|0;while(1){if((c[t+12>>2]|0)==3?(c[t+8>>2]|0)==131072:0)break;s=c[t+16>>2]|0;if(!s){q=30;break b}else t=s}u=t;q=29}while(0);if((q|0)==29)if((u|0)==2217396)q=30;else v=u;if((q|0)==30){c[f>>2]=131072;c[f+4>>2]=3;v=Nc(b,m,f)|0}c[v>>2]=r;c[v+4>>2]=69;fd(b,32);v=0;do{r=c[960+(v<<2)>>2]|0;f=xd(b,r,bu(r)|0)|0;c[(c[g>>2]|0)+156+(v<<2)>>2]=f;f=(c[(c[g>>2]|0)+156+(v<<2)>>2]|0)+5|0;a[f>>0]=a[f>>0]|32;v=v+1|0}while((v|0)!=30);v=0;do{g=c[656+(v<<2)>>2]|0;f=xd(b,g,bu(g)|0)|0;g=f+5|0;a[g>>0]=a[g>>0]|32;v=v+1|0;a[f+6>>0]=v}while((v|0)!=22);v=bd(b,50442,17)|0;c[h+152>>2]=v;b=v+5|0;a[b>>0]=a[b>>0]|32;a[h+51>>0]=1;c[h+148>>2]=34892;Ia=e;return}function Of(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;b=a+12|0;d=c[b>>2]|0;e=a+28|0;Sc(a,c[e>>2]|0);Pf(a);f=c[b>>2]|0;g=c[f+24>>2]|0;h=c[f+32>>2]<<2;Pa[c[f>>2]&3](c[f+4>>2]|0,g,h,0)|0;i=f+12|0;c[i>>2]=(c[i>>2]|0)+((g|0)==0?0:0-h|0);h=d+116|0;g=c[h>>2]|0;i=d+124|0;f=c[i>>2]|0;j=c[b>>2]|0;k=Pa[c[j>>2]&3](c[j+4>>2]|0,g,f,0)|0;l=j+12|0;c[l>>2]=(c[l>>2]|0)+((g|0)==0?0:0-f|0);c[h>>2]=k;c[i>>2]=0;i=c[e>>2]|0;if(!i){m=c[d>>2]|0;n=d+4|0;o=c[n>>2]|0;Pa[m&3](o,a,432,0)|0;return}c[a+16>>2]=a+72;k=a+84|0;h=c[k>>2]|0;c[k>>2]=0;if(!h)p=i;else{i=h;do{h=i;i=c[i+12>>2]|0;k=c[b>>2]|0;Pa[c[k>>2]&3](c[k+4>>2]|0,h,40,0)|0;f=k+12|0;c[f>>2]=(c[f>>2]|0)-((h|0)==0?0:40)}while((i|0)!=0);p=c[e>>2]|0}e=c[a+32>>2]<<3;i=c[b>>2]|0;Pa[c[i>>2]&3](c[i+4>>2]|0,p,e,0)|0;b=i+12|0;c[b>>2]=(c[b>>2]|0)-((p|0)==0?0:e);m=c[d>>2]|0;n=d+4|0;o=c[n>>2]|0;Pa[m&3](o,a,432,0)|0;return}function Pf(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=b+12|0;f=c[e>>2]|0;g=f+60|0;h=f+92|0;i=c[h>>2]|0;if(!i)j=h;else{k=i;while(1){l=c[k>>2]|0;if(!l)break;else k=l}j=k}k=c[g>>2]|0;if(!k){m=i;n=f;o=h}else{h=k;k=j;while(1){j=h+5|0;a[j>>0]=a[j>>0]|8;c[g>>2]=c[h>>2];c[h>>2]=c[k>>2];c[k>>2]=h;j=c[g>>2]|0;if(!j)break;else{i=h;h=j;k=i}}k=c[e>>2]|0;h=k+92|0;m=c[h>>2]|0;n=k;o=h}if(!m){p=n;q=0}else{n=m;do{m=n+5|0;a[m>>0]=a[m>>0]&-65;m=c[e>>2]|0;h=m+92|0;k=c[h>>2]|0;c[h>>2]=c[k>>2];h=m+56|0;c[k>>2]=c[h>>2];c[h>>2]=k;h=k+5|0;k=a[h>>0]|0;a[h>>0]=k&-17;if((d[m+49>>0]|0)>=2)a[h>>0]=a[m+48>>0]&3|k&-88;n=c[o>>2]|0}while((n|0)!=0);p=c[e>>2]|0;q=c[g>>2]|0}a[f+48>>0]=3;a[f+50>>0]=0;n=d[p+48>>0]|0;o=n^3;k=a[p+50>>0]|0;p=k<<24>>24==2;m=n&3;n=p?255:184;h=p?64:m;i=p?64:0;if(!q){r=k;s=m;t=o}else{m=q;q=-3;k=g;while(1){if(!q)break;q=q+-1|0;g=m+5|0;p=d[g>>0]|0;if(!((p^3)&o)){c[k>>2]=c[m>>2];md(b,m);u=k}else{if(i&p|0)break;if((a[m+4>>0]|0)==8)nd(b,m);a[g>>0]=n&p|h;u=m}m=c[u>>2]|0;if(!m)break;else k=u}u=c[e>>2]|0;k=d[u+48>>0]|0;r=a[u+50>>0]|0;s=k&3;t=k^3}k=f+56|0;u=r<<24>>24==2;r=u?255:184;m=u?64:s;s=u?64:0;u=c[k>>2]|0;a:do if(u|0){h=u;n=-3;i=k;while(1){if(!n)break a;n=n+-1|0;o=h+5|0;q=d[o>>0]|0;if(!((q^3)&t)){c[i>>2]=c[h>>2];md(b,h);v=i}else{if(s&q|0)break a;if((a[h+4>>0]|0)==8)nd(b,h);a[o>>0]=r&q|m;v=h}h=c[v>>2]|0;if(!h)break;else i=v}}while(0);v=f+32|0;m=c[v>>2]|0;if((m|0)<=0)return;r=f+24|0;f=m;m=0;while(1){s=(c[r>>2]|0)+(m<<2)|0;t=c[e>>2]|0;k=d[t+48>>0]|0;u=k^3;i=(a[t+50>>0]|0)==2;t=i?255:184;h=i?64:k&3;k=i?64:0;i=c[s>>2]|0;if(!i)w=f;else{n=i;i=-3;q=s;while(1){if(!i)break;i=i+-1|0;s=n+5|0;o=d[s>>0]|0;if(!((o^3)&u)){c[q>>2]=c[n>>2];md(b,n);x=q}else{if(k&o|0)break;if((a[n+4>>0]|0)==8)nd(b,n);a[s>>0]=t&o|h;x=n}n=c[x>>2]|0;if(!n)break;else q=x}w=c[v>>2]|0}m=m+1|0;if((m|0)>=(w|0))break;else f=w}return}function Qf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+16|0;d=(c[c[b>>2]>>2]|0)+8|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0>=f>>>0|(d|0)==2217396){Bf(a,1,49420)|0;g=c[e>>2]|0;h=(c[c[b>>2]>>2]|0)+8|0}else{g=f;h=d}d=h>>>0<g>>>0?h:2217396;h=c[d+4>>2]|0;switch(h&15){case 5:{i=(c[d>>2]|0)+8|0;break}case 7:{i=(c[d>>2]|0)+8|0;break}default:i=(c[a+12>>2]|0)+276+((h&15)<<2)|0}h=c[i>>2]|0;if(!h){c[g+4>>2]=0;c[e>>2]=g+8;return 1}else{c[g>>2]=h;c[g+4>>2]=69;c[e>>2]=(c[e>>2]|0)+8;Jf(a,1,49679)|0;return 1}return 0}function Rf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=Ia;Ia=Ia+16|0;d=b+8|0;e=b;f=a+16|0;g=c[c[f>>2]>>2]|0;h=g+16|0;i=a+8|0;j=c[i>>2]|0;if(h>>>0>=j>>>0|(h|0)==2217396)k=-1;else k=c[g+20>>2]&15;h=g+8|0;if(!(h>>>0>=j>>>0|(h|0)==2217396)){h=c[g+12>>2]&15;if((h|0)!=5){l=h+1|0;m=6}}else{l=0;m=6}if((m|0)==6){m=c[16+(l<<2)>>2]|0;c[e>>2]=63002;c[e+4>>2]=m;Bf(a,1,Td(a,49400,e)|0)|0}switch(k|0){case 0:case 5:break;default:Bf(a,2,49691)|0}if(Jf(a,1,49679)|0)Cf(a,49713,d)|0;d=c[c[f>>2]>>2]|0;f=c[i>>2]|0;k=d+24|0;if(f>>>0>=k>>>0){c[i>>2]=k;$d(a,1)|0;Ia=b;return 1}e=(d+20+(3-f)|0)>>>3;d=f;do{c[d+4>>2]=0;d=d+8|0}while(d>>>0<k>>>0);c[i>>2]=f+(e+1<<3);c[i>>2]=k;$d(a,1)|0;Ia=b;return 1}function Sf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=a+16|0;d=c[c[b>>2]>>2]|0;e=d+8|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0>=g>>>0|(e|0)==2217396){Bf(a,1,49420)|0;h=c[c[b>>2]>>2]|0;i=c[f>>2]|0}else{h=d;i=g}g=h+16|0;if(g>>>0>=i>>>0|(g|0)==2217396){Bf(a,2,49420)|0;a=c[c[b>>2]>>2]|0;j=a;k=c[f>>2]|0;l=a+16|0}else{j=h;k=i;l=g}g=j+8|0;j=g>>>0<k>>>0?g:2217396;g=l>>>0<k>>>0?l:2217396;if((j|0)!=2217396&(g|0)!=2217396?(c[j+4>>2]|0)==(c[g+4>>2]|0):0){l=(Tc(0,j,g)|0)!=0&1;m=c[f>>2]|0;n=l}else{m=k;n=0}c[m>>2]=n;c[m+4>>2]=1;c[f>>2]=(c[f>>2]|0)+8;return 1}function Tf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=a+16|0;d=c[c[b>>2]>>2]|0;e=d+8|0;f=a+8|0;g=c[f>>2]|0;if(!(e>>>0>=g>>>0|(e|0)==2217396)?(c[d+12>>2]&14|1|0)==5:0){h=g;i=e}else{Bf(a,1,49749)|0;h=c[f>>2]|0;i=(c[c[b>>2]>>2]|0)+8|0}b=i>>>0<h>>>0?i:2217396;switch(c[b+4>>2]&15){case 4:{j=c[(c[b>>2]|0)+12>>2]|0;break}case 7:{j=c[(c[b>>2]|0)+16>>2]|0;break}case 5:{j=rd(c[b>>2]|0)|0;break}default:j=0}c[h>>2]=j<<16;c[h+4>>2]=3;c[f>>2]=(c[f>>2]|0)+8;return 1} +function Fc(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0;f=Ia;Ia=Ia+64|0;g=f+40|0;h=f+32|0;i=f+24|0;j=f+16|0;k=f+8|0;l=f;m=f+48|0;n=e+16|0;o=e+36|0;p=e+116|0;q=e+12|0;r=e+8|0;s=e+38|0;t=e+24|0;u=e+32|0;v=e+28|0;w=m+4|0;x=c[n>>2]|0;a:while(1){y=c[c[x>>2]>>2]|0;z=y+12|0;A=c[(c[z>>2]|0)+8>>2]|0;B=x+24|0;C=x+28|0;D=x+4|0;E=x+4|0;F=x+4|0;G=x+4|0;H=x+4|0;I=x+4|0;J=x+4|0;K=c[x+24>>2]|0;b:while(1){L=c[C>>2]|0;c[C>>2]=L+4;M=c[L>>2]|0;L=c[554353]|0;N=c[8722]|0;do if((L|c[554354]|0)>(N|0)){if(!((L|0)>(N|0)|(b[o>>1]|0)==0)){c[554354]=0;O=K;break}c[p>>2]=1;P=c[n>>2]|0;Q=P+18|0;R=d[Q>>0]|0;if(!(R&128)){S=7;break a}a[Q>>0]=R&127;O=c[B>>2]|0}else O=K;while(0);c[554353]=L+2;N=M>>>6&255;T=O+(N<<3)|0;c:do switch(M&63){case 44:{S=231;break b;break}case 0:{c[554353]=L+1;R=M>>>23;c[T>>2]=c[O+(R<<3)>>2];c[O+(N<<3)+4>>2]=c[O+(R<<3)+4>>2];U=O;break}case 1:{c[554353]=L+1;R=M>>>14;c[T>>2]=c[A+(R<<3)>>2];c[O+(N<<3)+4>>2]=c[A+(R<<3)+4>>2];U=O;break}case 2:{R=c[C>>2]|0;c[C>>2]=R+4;V=(c[R>>2]|0)>>>6;c[T>>2]=c[A+(V<<3)>>2];c[O+(N<<3)+4>>2]=c[A+(V<<3)+4>>2];U=O;break}case 3:{c[T>>2]=M>>>23;c[O+(N<<3)+4>>2]=1;if(!(M&8372224))U=O;else{c[C>>2]=(c[C>>2]|0)+4;U=O}break}case 4:{V=M>>>23;R=T;while(1){c[R+4>>2]=0;if(!V){U=O;break}else{V=V+-1|0;R=R+8|0}}break}case 5:{R=c[(c[y+16+(M>>>23<<2)>>2]|0)+8>>2]|0;c[T>>2]=c[R>>2];c[O+(N<<3)+4>>2]=c[R+4>>2];U=O;break}case 6:{R=M>>>14;Hc(e,c[(c[y+16+(M>>>23<<2)>>2]|0)+8>>2]|0,(M&4194304|0)==0?O+((R&511)<<3)|0:A+((R&255)<<3)|0,T);U=c[B>>2]|0;break}case 7:{R=M>>>14;Hc(e,O+(M>>>23<<3)|0,(M&4194304|0)==0?O+((R&511)<<3)|0:A+((R&255)<<3)|0,T);U=c[B>>2]|0;break}case 8:{R=M>>>23;V=M>>>14;Ic(e,c[(c[y+16+(N<<2)>>2]|0)+8>>2]|0,(M|0)<0?A+((R&255)<<3)|0:O+(R<<3)|0,(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0);U=c[B>>2]|0;break}case 9:{V=c[y+16+(M>>>23<<2)>>2]|0;R=c[V+8>>2]|0;c[R>>2]=c[T>>2];W=O+(N<<3)+4|0;c[R+4>>2]=c[W>>2];if(((c[W>>2]&64|0)!=0?(W=c[T>>2]|0,(a[W+5>>0]&3)!=0):0)?(R=V+5|0,V=a[R>>0]|0,(V&4)!=0):0){X=c[q>>2]|0;if((d[X+49>>0]|0)<2){Jc(X,W);U=O;break c}else{a[R>>0]=a[X+48>>0]&3|V&-72;U=O;break c}}else U=O;break}case 10:{V=M>>>23;X=M>>>14;Ic(e,T,(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0,(M&4194304|0)==0?O+((X&511)<<3)|0:A+((X&255)<<3)|0);U=c[B>>2]|0;break}case 11:{X=M>>>23;V=M>>>14;R=V&511;W=c[q>>2]|0;Y=W+4|0;Z=Pa[c[W>>2]&3](c[Y>>2]|0,0,5,32)|0;if(!Z){if(!(a[W+51>>0]|0)){S=31;break a}Kc(e,1);_=Pa[c[W>>2]&3](c[Y>>2]|0,0,5,32)|0;if(!_){S=31;break a}else $=_}else $=Z;Z=W+12|0;c[Z>>2]=(c[Z>>2]|0)+32;Z=W+56|0;a[$+5>>0]=a[W+48>>0]&3;a[$+4>>0]=5;c[$>>2]=c[Z>>2];c[Z>>2]=$;c[$+8>>2]=0;a[$+6>>0]=-1;Z=$+12|0;c[Z>>2]=0;W=$+28|0;c[W>>2]=0;_=$+16|0;c[_>>2]=2217420;Y=$+7|0;a[Y>>0]=0;aa=$+20|0;c[aa>>2]=2217420;c[T>>2]=$;c[O+(N<<3)+4>>2]=69;if(R|X|0){ba=M>>>26&31;ca=(ba|0)==0?X:(X&7|8)<<ba+-1;ba=M>>>17&31;X=(ba|0)==0?R:(V&7|8)<<ba+-1;ba=c[W>>2]|0;V=a[Y>>0]|0;R=V&255;da=c[_>>2]|0;if((ba|0)<(ca|0)){if((ca+1|0)>>>0>536870911){S=35;break a}ea=c[Z>>2]|0;fa=ba<<3;ba=ca<<3;ga=c[q>>2]|0;ha=(ea|0)==0;ia=ga+4|0;ja=Pa[c[ga>>2]&3](c[ia>>2]|0,ea,fa,ba)|0;if((ba|0)!=0&(ja|0)==0){if(!(a[ga+51>>0]|0)){S=39;break a}Kc(e,1);ka=Pa[c[ga>>2]&3](c[ia>>2]|0,ea,fa,ba)|0;if(!ka){S=39;break a}else la=ka}else la=ja;ja=ga+12|0;c[ja>>2]=(ha?0:0-fa|0)+ba+(c[ja>>2]|0);c[Z>>2]=la;Z=c[W>>2]|0;if((Z|0)<(ca|0)){ja=Z;do{c[la+(ja<<3)+4>>2]=0;ja=ja+1|0}while((ja|0)!=(ca|0))}c[W>>2]=ca}if(!X){c[_>>2]=2217420;ma=2217420;na=0;oa=0}else{ja=X+-1|0;if(ja>>>0>255){Z=0;ba=ja;while(1){fa=Z+8|0;ha=ba>>>8;if(ba>>>0>65535){Z=fa;ba=ha}else{pa=fa;qa=ha;break}}}else{pa=0;qa=ja}ba=pa+(d[400+qa>>0]|0)|0;if((ba|0)>30){S=50;break a}Z=1<<ba;if((Z+1|0)>>>0>214748364){S=52;break a}X=20<<ba;ca=c[q>>2]|0;W=ca+4|0;ha=Pa[c[ca>>2]&3](c[W>>2]|0,0,0,X)|0;if(ba>>>0<30&(ha|0)==0){if(!(a[ca+51>>0]|0)){S=56;break a}Kc(e,1);fa=Pa[c[ca>>2]&3](c[W>>2]|0,0,0,X)|0;if(!fa){S=56;break a}else ra=fa}else ra=ha;ha=ca+12|0;c[ha>>2]=(c[ha>>2]|0)+X;c[_>>2]=ra;X=ra;ha=0;do{c[X+(ha*20|0)+16>>2]=0;c[X+(ha*20|0)+12>>2]=0;c[X+(ha*20|0)+4>>2]=0;ha=ha+1|0;X=c[_>>2]|0}while((ha|0)<(Z|0));ma=X;na=ba&255;oa=Z}a[Y>>0]=na;c[aa>>2]=ma+(oa*20|0);if(V<<24>>24!=31){ha=1<<R;do{_=ha;ha=ha+-1|0;ja=da+(ha*20|0)+4|0;if(c[ja>>2]|0){ca=da+(ha*20|0)+8|0;fa=Mc($,ca)|0;if((fa|0)==2217396)sa=Nc(e,$,ca)|0;else sa=fa;c[sa>>2]=c[da+(ha*20|0)>>2];c[sa+4>>2]=c[ja>>2]}}while((_|0)>1)}if((da|0)!=2217420){ha=20<<R;V=c[q>>2]|0;Pa[c[V>>2]&3](c[V+4>>2]|0,da,ha,0)|0;aa=V+12|0;c[aa>>2]=(c[aa>>2]|0)-((da|0)==0?0:ha)}}ha=c[q>>2]|0;aa=ha+12|0;V=c[aa>>2]|0;if((V|0)>0){c[r>>2]=T+8;if(!(a[ha+51>>0]|0)){Y=ha+8|0;c[Y>>2]=V+1600+(c[Y>>2]|0);c[aa>>2]=-1600}else Oc(e);c[r>>2]=c[I>>2]}U=c[B>>2]|0;break}case 12:{aa=M>>>23;Y=O+(aa<<3)|0;V=T+8|0;c[V>>2]=c[Y>>2];c[V+4>>2]=c[O+(aa<<3)+4>>2];aa=M>>>14;Hc(e,Y,(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0,T);U=c[B>>2]|0;break}case 13:{c[554353]=L+1;aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=(c[V>>2]|0)+(c[Y>>2]|0);c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,6);U=c[B>>2]|0;break}case 14:{c[554353]=L+1;V=M>>>23;Y=(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0;V=M>>>14;aa=(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[aa+4>>2]|0)==3:0){c[T>>2]=(c[Y>>2]|0)-(c[aa>>2]|0);c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,aa,7);U=c[B>>2]|0;break}case 15:{aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=rl(c[Y>>2]|0,c[V>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,8);U=c[B>>2]|0;break}case 16:{V=M>>>23;Y=(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0;V=M>>>14;aa=(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[aa+4>>2]|0)==3:0){c[T>>2]=sl(c[Y>>2]|0,c[aa>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,aa,9);U=c[B>>2]|0;break}case 17:{aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=tl(c[Y>>2]|0,c[V>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,10);U=c[B>>2]|0;break}case 18:{V=M>>>23;Y=(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0;V=M>>>14;aa=(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[aa+4>>2]|0)==3:0){c[T>>2]=ul(c[Y>>2]|0,c[aa>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,aa,11);U=c[B>>2]|0;break}case 19:{c[554353]=L+1;aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=c[V>>2]&c[Y>>2];c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,12);U=c[B>>2]|0;break}case 20:{c[554353]=L+1;V=M>>>23;Y=(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0;V=M>>>14;aa=(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[aa+4>>2]|0)==3:0){c[T>>2]=c[aa>>2]|c[Y>>2];c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,aa,13);U=c[B>>2]|0;break}case 21:{c[554353]=L+1;aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=c[V>>2]^c[Y>>2];c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,14);U=c[B>>2]|0;break}case 22:{c[554353]=L+1;V=M>>>23;Y=(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0;V=M>>>14;aa=(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[aa+4>>2]|0)==3:0){c[T>>2]=El(c[Y>>2]|0,c[aa>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,aa,15);U=c[B>>2]|0;break}case 23:{c[554353]=L+1;aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=Fl(c[Y>>2]|0,c[V>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,16);U=c[B>>2]|0;break}case 24:{c[554353]=L+1;V=M>>>23;Y=(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0;V=M>>>14;aa=(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[aa+4>>2]|0)==3:0){c[T>>2]=Dl(c[Y>>2]|0,c[aa>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,aa,17);U=c[B>>2]|0;break}case 25:{c[554353]=L+1;aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=Bl(c[Y>>2]|0,c[V>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,18);U=c[B>>2]|0;break}case 26:{c[554353]=L+1;V=M>>>23;Y=(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0;V=M>>>14;aa=(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[aa+4>>2]|0)==3:0){c[T>>2]=Cl(c[Y>>2]|0,c[aa>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,aa,19);U=c[B>>2]|0;break}case 27:{c[554353]=L+1;aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=~c[Y>>2];c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,20);U=c[B>>2]|0;break}case 28:{V=M>>>23;Y=(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0;V=M>>>14;aa=(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[aa+4>>2]|0)==3:0){c[T>>2]=(sl(c[Y>>2]|0,c[aa>>2]|0)|0)&-65536;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,aa,21);U=c[B>>2]|0;break}case 29:{c[554353]=L+1;aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=hl(c[Y>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,22);U=c[B>>2]|0;break}case 30:{c[554353]=L+1;V=M>>>23;Y=(M|0)<0?A+((V&255)<<3)|0:O+(V<<3)|0;V=M>>>14;aa=(M&4194304|0)==0?O+((V&511)<<3)|0:A+((V&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[aa+4>>2]|0)==3:0){c[T>>2]=gl(c[Y>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,aa,23);U=c[B>>2]|0;break}case 31:{c[554353]=L+1;aa=M>>>23;Y=(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0;aa=M>>>14;V=(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0;if((c[Y+4>>2]|0)==3?(c[V+4>>2]|0)==3:0){c[T>>2]=fl(c[Y>>2]|0)|0;c[O+(N<<3)+4>>2]=3;U=O;break c}Pc(e,T,Y,V,24);U=c[B>>2]|0;break}case 32:{V=M>>>23;Y=O+(V<<3)|0;c[554353]=L+1;if((c[O+(V<<3)+4>>2]|0)==3){c[T>>2]=0-(c[Y>>2]|0);c[O+(N<<3)+4>>2]=3;U=O;break c}else{Pc(e,T,Y,Y,25);U=c[B>>2]|0;break c}break}case 33:{Y=M>>>23;switch(c[O+(Y<<3)+4>>2]|0){case 0:{ta=1;break}case 1:{ta=(c[O+(Y<<3)>>2]|0)==0;break}default:ta=0}c[T>>2]=ta&1;c[O+(N<<3)+4>>2]=1;U=O;break}case 34:{Qc(e,T,O+(M>>>23<<3)|0);U=c[B>>2]|0;break}case 35:{Y=M>>>23;V=M>>>14&511;c[r>>2]=O+(V<<3)+8;Rc(e,1-Y+V|0);V=c[B>>2]|0;aa=V+(N<<3)|0;ha=V+(Y<<3)|0;c[aa>>2]=c[ha>>2];c[V+(N<<3)+4>>2]=c[V+(Y<<3)+4>>2];V=c[q>>2]|0;Z=V+12|0;ba=c[Z>>2]|0;if((ba|0)>0){c[r>>2]=N>>>0<Y>>>0?ha:aa+8|0;if(!(a[V+51>>0]|0)){aa=V+8|0;c[aa>>2]=ba+1600+(c[aa>>2]|0);c[Z>>2]=-1600}else Oc(e);Z=c[E>>2]|0;c[r>>2]=Z;ua=Z}else ua=c[D>>2]|0;Z=c[B>>2]|0;c[r>>2]=ua;U=Z;break}case 36:{if(N|0)Sc(e,(c[B>>2]|0)+(N<<3)+-8|0);c[C>>2]=(c[C>>2]|0)+((M>>>14)+-131071<<2);U=O;break}case 37:{Z=M>>>23;aa=(M|0)<0?A+((Z&255)<<3)|0:O+(Z<<3)|0;Z=M>>>14;ba=(M&4194304|0)==0?O+((Z&511)<<3)|0:A+((Z&255)<<3)|0;if((c[aa+4>>2]|0)==(c[ba+4>>2]|0))va=(Tc(e,aa,ba)|0)!=0;else va=0;ba=c[C>>2]|0;if((N|0)==(va&1|0)){aa=c[ba>>2]|0;Z=aa>>>6&255;if(!Z)wa=ba;else{Sc(e,(c[B>>2]|0)+(Z<<3)+-8|0);wa=c[C>>2]|0}xa=wa+((aa>>>14)+-131070<<2)|0}else xa=ba+4|0;c[C>>2]=xa;U=c[B>>2]|0;break}case 38:{ba=M>>>23;aa=M>>>14;Z=(Uc(e,(M|0)<0?A+((ba&255)<<3)|0:O+(ba<<3)|0,(M&4194304|0)==0?O+((aa&511)<<3)|0:A+((aa&255)<<3)|0)|0)==(N|0);aa=c[C>>2]|0;if(Z){Z=c[aa>>2]|0;ba=Z>>>6&255;if(!ba)ya=aa;else{Sc(e,(c[B>>2]|0)+(ba<<3)+-8|0);ya=c[C>>2]|0}za=ya+((Z>>>14)+-131070<<2)|0}else za=aa+4|0;c[C>>2]=za;U=c[B>>2]|0;break}case 39:{aa=M>>>23;Z=M>>>14;ba=(Vc(e,(M|0)<0?A+((aa&255)<<3)|0:O+(aa<<3)|0,(M&4194304|0)==0?O+((Z&511)<<3)|0:A+((Z&255)<<3)|0)|0)==(N|0);Z=c[C>>2]|0;if(ba){ba=c[Z>>2]|0;aa=ba>>>6&255;if(!aa)Aa=Z;else{Sc(e,(c[B>>2]|0)+(aa<<3)+-8|0);Aa=c[C>>2]|0}Ba=Aa+((ba>>>14)+-131070<<2)|0}else Ba=Z+4|0;c[C>>2]=Ba;U=c[B>>2]|0;break}case 40:{Z=c[O+(N<<3)+4>>2]|0;ba=(Z|0)==0;if(!(M&8372224)){if(!ba)if(!((Z|0)==1?!(c[T>>2]|0):0))S=197}else if(!ba){if((Z|0)==1?(c[T>>2]|0)==0:0)S=197}else S=197;if((S|0)==197){S=0;c[C>>2]=(c[C>>2]|0)+4;U=O;break c}Z=c[C>>2]|0;ba=c[Z>>2]|0;aa=ba>>>6&255;if(!aa)Ca=Z;else{Sc(e,(c[B>>2]|0)+(aa<<3)+-8|0);Ca=c[C>>2]|0}c[C>>2]=Ca+((ba>>>14)+-131070<<2);U=O;break}case 41:{ba=M>>>23;aa=O+(ba<<3)|0;Z=c[O+(ba<<3)+4>>2]|0;ba=(Z|0)==0;if(!(M&8372224))if(!ba)if((Z|0)==1?(c[aa>>2]|0)==0:0)S=209;else S=208;else S=209;else if(!ba)if((Z|0)==1?(c[aa>>2]|0)==0:0)S=208;else S=209;else S=208;if((S|0)==208){S=0;Da=(c[C>>2]|0)+4|0}else if((S|0)==209){S=0;c[T>>2]=c[aa>>2];c[O+(N<<3)+4>>2]=Z;Z=c[C>>2]|0;aa=c[Z>>2]|0;ba=aa>>>6&255;if(!ba)Ea=Z;else{Sc(e,(c[B>>2]|0)+(ba<<3)+-8|0);Ea=c[C>>2]|0}Da=Ea+((aa>>>14)+-131070<<2)|0}c[C>>2]=Da;U=O;break}case 42:{aa=M>>>23;ba=M>>>14&511;if(aa|0)c[r>>2]=T+(aa<<3);if(!(Ec(e,T,ba+-1|0)|0)){S=219;break b}if(ba|0)c[r>>2]=c[G>>2];U=c[B>>2]|0;break}case 43:{ba=M>>>23;if(ba|0)c[r>>2]=T+(ba<<3);if(!(Ec(e,T,-1)|0)){S=224;break b}U=c[B>>2]|0;break}case 45:{ba=T+16|0;aa=c[ba>>2]|0;Z=(c[T>>2]|0)+aa|0;V=c[T+8>>2]|0;if(!((aa|0)<1|(Z|0)>(V|0))){c[C>>2]=(c[C>>2]|0)+((M>>>14)+-131071<<2);c[T>>2]=Z;c[O+(N<<3)+4>>2]=3;ha=T+24|0;c[ha>>2]=Z;c[ha+4>>2]=3;if((Z|0)<0|(aa|0)<(2147483647-Z|0)){U=O;break c}c[ba>>2]=0;c[ba+4>>2]=3;U=O;break c}if(!((aa|0)>-1|(Z|0)<(V|0))?(c[C>>2]=(c[C>>2]|0)+((M>>>14)+-131071<<2),c[T>>2]=Z,c[O+(N<<3)+4>>2]=3,V=T+24|0,c[V>>2]=Z,c[V+4>>2]=3,(Z|0)<0&(aa|0)<(-2147483648-Z|0)):0){c[ba>>2]=0;c[ba+4>>2]=3;U=O}else U=O;break}case 46:{ba=T+8|0;Z=T+16|0;aa=O+(N<<3)+4|0;V=c[aa>>2]|0;if((V|0)!=3){if((V&15|0)!=4){S=255;break a}V=c[T>>2]|0;if(!(Wc(V+16|0,c[V+12>>2]|0,m)|0)){S=255;break a}c[T>>2]=c[m>>2];c[aa>>2]=3}V=ba+4|0;ha=c[V>>2]|0;if((ha|0)!=3){if((ha&15|0)!=4){S=260;break a}ha=c[ba>>2]|0;if(!(Wc(ha+16|0,c[ha+12>>2]|0,m)|0)){S=260;break a}c[ba>>2]=c[m>>2];c[V>>2]=3}V=Z+4|0;ba=c[V>>2]|0;if((ba|0)==3)Fa=Z;else{if((ba&15|0)!=4){S=266;break a}ba=c[Z>>2]|0;if(!(Wc(ba+16|0,c[ba+12>>2]|0,m)|0)){S=266;break a}c[Z>>2]=c[m>>2];c[V>>2]=3;Fa=Z}c[T>>2]=(c[T>>2]|0)-(c[Fa>>2]|0);c[aa>>2]=3;c[C>>2]=(c[C>>2]|0)+((M>>>14)+-131071<<2);U=O;break}case 47:{aa=T+24|0;Z=T+16|0;V=aa+16|0;c[V>>2]=c[Z>>2];c[V+4>>2]=c[Z+4>>2];Z=T+8|0;V=aa+8|0;c[V>>2]=c[Z>>2];c[V+4>>2]=c[Z+4>>2];c[aa>>2]=c[T>>2];c[aa+4>>2]=c[O+(N<<3)+4>>2];c[r>>2]=aa+24;Z=M>>>14&511;V=(b[s>>1]|0)+1<<16>>16;b[s>>1]=V;if((V&65535)>199){if(V<<16>>16==200){S=270;break a}if((V&65535)>224){S=272;break a}}if(!(Ec(e,aa,Z)|0))Fc(e);b[s>>1]=(b[s>>1]|0)+-1<<16>>16;Z=c[B>>2]|0;c[r>>2]=c[F>>2];aa=c[C>>2]|0;c[C>>2]=aa+4;V=c[aa>>2]|0;Ga=Z;Ha=V;Ja=Z+((V>>>6&255)<<3)|0;S=276;break}case 48:{Ga=O;Ha=M;Ja=T;S=276;break}case 49:{V=M>>>23;Z=M>>>14&511;if(!V)Ka=((c[r>>2]|0)-T>>3)+-1|0;else Ka=V;if(!Z){V=c[C>>2]|0;c[C>>2]=V+4;La=(c[V>>2]|0)>>>6}else La=Z;Z=c[T>>2]|0;V=Ka+-50+(La*50|0)|0;aa=Z+28|0;if((V|0)>(c[aa>>2]|0)){if((c[Z+16>>2]|0)==2217420)Ma=0;else Ma=1<<d[Z+7>>0];Xc(e,Z,V,Ma)}if((Ka|0)>0){ba=Z+12|0;ha=Z+16|0;Y=Z+7|0;X=Z+5|0;_=Z+24|0;ja=V;V=Ka;while(1){fa=T+(V<<3)|0;ca=ja;ja=ja+-1|0;d:do if(ja>>>0<(c[aa>>2]|0)>>>0){Na=(c[ba>>2]|0)+(ja<<3)|0;S=295}else{W=ca<<16;ga=0-W|0;ka=(c[ha>>2]|0)+(((((W|0)<0?((W|0)==(ga|0)?0:ga):W)|0)%((1<<d[Y>>0])+-1|1|0)|0)*20|0)|0;while(1){if((c[ka+12>>2]|0)==3?(c[ka+8>>2]|0)==(W|0):0)break;ga=c[ka+16>>2]|0;if(!ga){Oa=W;S=297;break d}else ka=ga}Na=ka;S=295}while(0);if((S|0)==295){S=0;if((Na|0)==2217396){Oa=ca<<16;S=297}else Qa=Na}if((S|0)==297){S=0;c[m>>2]=Oa;c[w>>2]=3;Qa=Nc(e,Z,m)|0}c[Qa>>2]=c[fa>>2];W=fa+4|0;c[Qa+4>>2]=c[W>>2];if((c[W>>2]&64|0?a[(c[fa>>2]|0)+5>>0]&3:0)?(W=a[X>>0]|0,W&4):0){ga=c[q>>2]|0;a[X>>0]=W&-5;W=ga+76|0;c[_>>2]=c[W>>2];c[W>>2]=Z}if((V|0)<=1)break;else V=V+-1|0}}c[r>>2]=c[J>>2];U=O;break}case 50:{V=c[(c[(c[z>>2]|0)+16>>2]|0)+(M>>>14<<2)>>2]|0;Z=V+32|0;_=c[Z>>2]|0;X=c[V+40>>2]|0;Y=c[V+28>>2]|0;e:do if(!_)S=312;else{if((X|0)>0){ha=_+16|0;ja=0;do{ba=d[Y+(ja<<3)+5>>0]|0;if(!(a[Y+(ja<<3)+4>>0]|0))Ra=c[(c[y+16+(ba<<2)>>2]|0)+8>>2]|0;else Ra=O+(ba<<3)|0;if((c[(c[ha+(ja<<2)>>2]|0)+8>>2]|0)!=(Ra|0)){S=312;break e}ja=ja+1|0}while((ja|0)<(X|0))}c[T>>2]=_;c[O+(N<<3)+4>>2]=70}while(0);if((S|0)==312){S=0;_=Yc(e,X)|0;c[_+12>>2]=V;c[T>>2]=_;c[O+(N<<3)+4>>2]=70;if((X|0)>0){ja=_+16|0;ha=0;do{fa=d[Y+(ha<<3)+5>>0]|0;if(!(a[Y+(ha<<3)+4>>0]|0))c[ja+(ha<<2)>>2]=c[y+16+(fa<<2)>>2];else c[ja+(ha<<2)>>2]=Zc(e,O+(fa<<3)|0)|0;ha=ha+1|0}while((ha|0)!=(X|0))}X=V+5|0;ha=a[X>>0]|0;do if(ha&4){if(c[Z>>2]|0){ja=c[q>>2]|0;a[X>>0]=ha&-5;Y=ja+76|0;c[V+72>>2]=c[Y>>2];c[Y>>2]=V;break}if(a[_+5>>0]&3){Y=c[q>>2]|0;if((d[Y+49>>0]|0)<2){Jc(Y,_);break}else{a[X>>0]=a[Y+48>>0]&3|ha&-72;break}}}while(0);c[Z>>2]=_}ha=c[q>>2]|0;X=ha+12|0;V=c[X>>2]|0;if((V|0)>0){c[r>>2]=T+8;if(!(a[ha+51>>0]|0)){Y=ha+8|0;c[Y>>2]=V+1600+(c[Y>>2]|0);c[X>>2]=-1600}else Oc(e);c[r>>2]=c[H>>2]}U=c[B>>2]|0;break}case 51:{X=M>>>23;Y=X+-1|0;V=(O-(c[x>>2]|0)>>3)-(d[(c[z>>2]|0)+76>>0]|0)|0;ha=V+-1|0;if(!X){X=c[r>>2]|0;if(((c[t>>2]|0)-X>>3|0)<(V|0)){ja=c[u>>2]|0;if((ja|0)>1e6){S=336;break a}fa=V+4+(X-(c[v>>2]|0)>>3)|0;X=ja<<1;ja=(X|0)<1e6?X:1e6;X=(ja|0)<(fa|0)?fa:ja;if((X|0)>1e6){S=338;break a}zc(e,X)}X=c[B>>2]|0;ja=X+(N<<3)|0;c[r>>2]=ja+(ha<<3);Sa=ha;Ta=X;Ua=ja}else{Sa=Y;Ta=O;Ua=T}if((Sa|0)>0){Y=Ta+(1-V<<3)|0;V=0;do{if((V|0)<(ha|0)){ja=Y+(V<<3)|0;c[Ua+(V<<3)>>2]=c[ja>>2];Va=c[ja+4>>2]|0}else Va=0;c[Ua+(V<<3)+4>>2]=Va;V=V+1|0}while((V|0)!=(Sa|0));U=Ta}else U=Ta;break}default:U=O}while(0);if((S|0)==276){S=0;N=c[Ja+12>>2]|0;if(!N)U=Ga;else{c[Ja>>2]=c[Ja+8>>2];c[Ja+4>>2]=N;c[C>>2]=(c[C>>2]|0)+((Ha>>>14)+-131071<<2);U=Ga}}K=U}if((S|0)==219){S=0;K=c[n>>2]|0;C=K+18|0;a[C>>0]=a[C>>0]|4;Wa=K}else if((S|0)==224){S=0;K=c[n>>2]|0;C=c[K+8>>2]|0;B=c[K>>2]|0;H=c[C>>2]|0;y=K+24|0;J=(c[y>>2]|0)+(d[(c[(c[B>>2]|0)+12>>2]|0)+76>>0]<<3)|0;if((c[(c[z>>2]|0)+56>>2]|0)>0)Sc(e,c[C+24>>2]|0);if(B>>>0<J>>>0){F=B;G=0;do{c[H+(G<<3)>>2]=c[F>>2];c[H+(G<<3)+4>>2]=c[B+(G<<3)+4>>2];G=G+1|0;F=B+(G<<3)|0}while(F>>>0<J>>>0)}J=B;c[C+24>>2]=H+((c[y>>2]|0)-J>>3<<3);F=H+((c[r>>2]|0)-J>>3<<3)|0;c[r>>2]=F;c[C+4>>2]=F;c[C+28>>2]=c[K+28>>2];F=C+18|0;a[F>>0]=a[F>>0]|64;c[n>>2]=C;Wa=C}else if((S|0)==231){S=0;F=M>>>23;if(F|0)c[r>>2]=T+(F<<3)+-8;if((c[(c[z>>2]|0)+56>>2]|0)>0)Sc(e,O);F=c[n>>2]|0;J=c[F>>2]|0;G=b[F+16>>1]|0;c[n>>2]=c[F+8>>2];f:do if(G<<16>>16){F=T;A=G<<16>>16;D=J;while(1){if(F>>>0>=(c[r>>2]|0)>>>0)break;E=D+8|0;c[D>>2]=c[F>>2];c[D+4>>2]=c[F+4>>2];I=A+-1|0;if(!I){Xa=E;break f}else{F=F+8|0;A=I;D=E}}if((A|0)>0){F=A;E=D;while(1){I=E+8|0;c[E+4>>2]=0;if((F|0)>1){F=F+-1|0;E=I}else{Xa=I;break}}}else Xa=D}else Xa=J;while(0);c[r>>2]=Xa;if(!(a[x+18>>0]&4)){S=347;break}J=c[n>>2]|0;if(G<<16>>16==-1)Wa=J;else{c[r>>2]=c[J+4>>2];Wa=J}}x=Wa}switch(S|0){case 7:{Gc(e,0,0,0)|0;S=P+28|0;c[e+20>>2]=c[S>>2];c[S>>2]=(c[S>>2]|0)+-4;a[Q>>0]=a[Q>>0]|-128;c[P>>2]=(c[r>>2]|0)+-8;yc(e,1);break}case 31:{yc(e,4);break}case 35:{Lc(e);break}case 39:{yc(e,4);break}case 50:{Ac(e,47216,l);break}case 52:{Lc(e);break}case 56:{yc(e,4);break}case 255:{Ac(e,47231,k);break}case 260:{Ac(e,47268,j);break}case 266:{Ac(e,47297,i);break}case 270:{Ac(e,47199,h);break}case 272:{yc(e,6);break}case 336:{yc(e,6);break}case 338:{zc(e,1000200);Ac(e,47184,g);break}case 347:{Ia=f;return}}}function Gc(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=Ia;Ia=Ia+16|0;i=h+8|0;j=h;k=c[d+16>>2]|0;if(b[d+36>>1]|0)if((c[(c[d+12>>2]|0)+144>>2]|0)==(d|0))Ac(d,47790,i);else Ac(d,47748,j);a[d+6>>0]=1;c[k+20>>2]=(c[k>>2]|0)-(c[d+28>>2]|0);if(a[k+18>>0]&1){Ia=h;return 0}c[k+28>>2]=g;if(!g){l=d+8|0;m=c[l>>2]|0;n=0-e|0;o=m+(n<<3)|0;p=o+-8|0;c[k>>2]=p;yc(d,1)}c[k+24>>2]=f;l=d+8|0;m=c[l>>2]|0;n=0-e|0;o=m+(n<<3)|0;p=o+-8|0;c[k>>2]=p;yc(d,1);return 0}function Hc(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;i=Ia;Ia=Ia+16|0;j=i+8|0;k=i;l=i+12|0;m=e+12|0;n=c[f+4>>2]|0;o=0;p=f;while(1){if((n|0)==69){f=c[p>>2]|0;q=Mc(f,g)|0;if(c[q+4>>2]|0)break;r=c[f+8>>2]|0;if(!r)break;s=a[r+6>>0]|0;if(s&1)break;f=c[(c[m>>2]|0)+156>>2]|0;t=(c[r+16>>2]|0)+(((1<<d[r+7>>0])+-1&c[f+8>>2])*20|0)|0;while(1){if((c[t+12>>2]|0)==68?(c[t+8>>2]|0)==(f|0):0){u=10;break}v=c[t+16>>2]|0;if(!v){w=2217396;break}else t=v}if((u|0)==10){u=0;w=t}f=w+4|0;v=c[f>>2]|0;if(!v){u=13;break}if(!w)break;else{x=v;y=w;z=f}}else{f=n&15;if((f|0)==4){u=17;break}switch(n&15){case 5:{A=(c[p>>2]|0)+8|0;break}case 7:{A=(c[p>>2]|0)+8|0;break}default:A=(c[m>>2]|0)+276+(f<<2)|0}f=c[A>>2]|0;a:do if(!f)B=2217396;else{v=c[(c[m>>2]|0)+156>>2]|0;C=(c[f+16>>2]|0)+(((1<<d[f+7>>0])+-1&c[v+8>>2])*20|0)|0;while(1){if((c[C+12>>2]|0)==68?(c[C+8>>2]|0)==(v|0):0)break;D=c[C+16>>2]|0;if(!D){B=2217396;break a}else C=D}B=C}while(0);f=B+4|0;t=c[f>>2]|0;if(!t){u=40;break}else{x=t;y=B;z=f}}o=o+1|0;if((x&15|0)==6){u=42;break}if(o>>>0>=100){u=54;break}else{n=x;p=y}}if((u|0)==13)a[r+6>>0]=s|1;else if((u|0)==17){s=c[p>>2]|0;r=s+16|0;x=c[s+12>>2]|0;s=c[g+4>>2]|0;do if((s|0)!=3){if((s&15|0)==4?(n=c[g>>2]|0,Wc(n+16|0,c[n+12>>2]|0,l)|0):0){E=l;u=22;break}}else{E=g;u=22}while(0);if((u|0)==22?(l=c[E>>2]|0,E=((l|0)<0?x+1|0:0)+(l>>16)|0,l=E+-1|0,(E|0)>0&l>>>0<x>>>0):0){x=c[m>>2]|0;m=x+12|0;E=c[m>>2]|0;do if((E|0)>0)if(!(a[x+51>>0]|0)){s=x+8|0;c[s>>2]=E+1600+(c[s>>2]|0);c[m>>2]=-1600;break}else{Oc(e);break}while(0);m=bd(e,r+l|0,1)|0;c[h>>2]=m;c[h+4>>2]=(a[m+4>>0]|64)&255;Ia=i;return}c[h>>2]=0;c[h+4>>2]=0;Ia=i;return}else if((u|0)==40)dd(e,p,47440);else if((u|0)==42){m=e+28|0;l=h-(c[m>>2]|0)|0;r=e+8|0;E=c[r>>2]|0;c[r>>2]=E+8;c[E>>2]=c[y>>2];c[E+4>>2]=c[z>>2];z=c[r>>2]|0;c[r>>2]=z+8;c[z>>2]=c[p>>2];c[z+4>>2]=c[p+4>>2];p=c[r>>2]|0;c[r>>2]=p+8;c[p>>2]=c[g>>2];c[p+4>>2]=c[g+4>>2];g=(c[r>>2]|0)+-24|0;p=a[(c[e+16>>2]|0)+18>>0]&1;z=e+38|0;E=(b[z>>1]|0)+1<<16>>16;b[z>>1]=E;if((E&65535)>199){if(E<<16>>16==200)Ac(e,47199,k);if((E&65535)>224)yc(e,6)}E=p<<24>>24!=0;if(!E){p=e+36|0;b[p>>1]=(b[p>>1]|0)+1<<16>>16}if(!(Ec(e,g,1)|0))Fc(e);if(!E){E=e+36|0;b[E>>1]=(b[E>>1]|0)+-1<<16>>16}b[z>>1]=(b[z>>1]|0)+-1<<16>>16;z=(c[m>>2]|0)+l|0;l=c[r>>2]|0;m=l+-8|0;c[r>>2]=m;c[z>>2]=c[m>>2];c[z+4>>2]=c[l+-4>>2];Ia=i;return}else if((u|0)==54)Ac(e,47731,j);c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];Ia=i;return}function Ic(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;i=Ia;Ia=Ia+16|0;j=i+8|0;k=i;l=e+12|0;m=c[f+4>>2]|0;n=0;o=f;while(1){if((m|0)==69){p=c[o>>2]|0;q=Mc(p,g)|0;if(c[q+4>>2]|0){r=17;break}s=c[p+8>>2]|0;if(!s){r=15;break}t=a[s+6>>0]|0;if(t&2){r=15;break}f=c[(c[l>>2]|0)+160>>2]|0;u=(c[s+16>>2]|0)+(((1<<(d[s+7>>0]|0))+-1&c[f+8>>2])*20|0)|0;while(1){if((c[u+12>>2]|0)==68?(c[u+8>>2]|0)==(f|0):0){r=10;break}v=c[u+16>>2]|0;if(!v){w=2217396;break}else u=v}if((r|0)==10){r=0;w=u}f=w+4|0;v=c[f>>2]|0;if(!v){r=13;break}if(!w){r=15;break}else{x=v;y=w;z=f}}else{switch(m&15){case 5:{A=(c[o>>2]|0)+8|0;break}case 7:{A=(c[o>>2]|0)+8|0;break}default:A=(c[l>>2]|0)+276+((m&15)<<2)|0}f=c[A>>2]|0;a:do if(!f)B=2217396;else{v=c[(c[l>>2]|0)+160>>2]|0;C=(c[f+16>>2]|0)+(((1<<(d[f+7>>0]|0))+-1&c[v+8>>2])*20|0)|0;while(1){if((c[C+12>>2]|0)==68?(c[C+8>>2]|0)==(v|0):0)break;D=c[C+16>>2]|0;if(!D){B=2217396;break a}else C=D}B=C}while(0);f=B+4|0;u=c[f>>2]|0;if(!u){r=33;break}else{x=u;y=B;z=f}}n=n+1|0;if((x&15|0)==6){r=35;break}if(n>>>0>=100){r=47;break}else{m=x;o=y}}if((r|0)==13){a[s+6>>0]=t|2;r=15}else if((r|0)==17){E=q;F=p}else if((r|0)==33)dd(e,o,47440);else if((r|0)==35){t=e+8|0;s=c[t>>2]|0;c[t>>2]=s+8;c[s>>2]=c[y>>2];c[s+4>>2]=c[z>>2];z=c[t>>2]|0;c[t>>2]=z+8;c[z>>2]=c[o>>2];c[z+4>>2]=c[o+4>>2];o=c[t>>2]|0;c[t>>2]=o+8;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];o=c[t>>2]|0;c[t>>2]=o+8;c[o>>2]=c[h>>2];c[o+4>>2]=c[h+4>>2];o=(c[t>>2]|0)+-32|0;t=a[(c[e+16>>2]|0)+18>>0]&1;z=e+38|0;s=(b[z>>1]|0)+1<<16>>16;b[z>>1]=s;if((s&65535)>199){if(s<<16>>16==200)Ac(e,47199,k);if((s&65535)>224)yc(e,6)}s=t<<24>>24!=0;if(!s){t=e+36|0;b[t>>1]=(b[t>>1]|0)+1<<16>>16}if(!(Ec(e,o,0)|0))Fc(e);if(!s){s=e+36|0;b[s>>1]=(b[s>>1]|0)+-1<<16>>16}b[z>>1]=(b[z>>1]|0)+-1<<16>>16;Ia=i;return}else if((r|0)==47)Ac(e,47714,j);if((r|0)==15)if((q|0)==2217396){E=Nc(e,p,g)|0;F=p}else{E=q;F=p}c[E>>2]=c[h>>2];q=h+4|0;c[E+4>>2]=c[q>>2];a[F+6>>0]=0;if(!(c[q>>2]&64)){Ia=i;return}if(!(a[(c[h>>2]|0)+5>>0]&3)){Ia=i;return}h=p+5|0;q=a[h>>0]|0;if(!(q&4)){Ia=i;return}F=c[l>>2]|0;a[h>>0]=q&-5;q=F+76|0;c[p+24>>2]=c[q>>2];c[q>>2]=p;Ia=i;return}function Jc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=d+5|0;a[e>>0]=a[e>>0]&-4;switch(a[d+4>>0]|0){case 20:case 4:{f=(c[d+12>>2]|0)+17|0;break}case 7:{g=c[d+8>>2]|0;if(g|0?a[g+5>>0]&3:0)Jc(b,g);g=c[d+12>>2]|0;if(g|0?a[g+5>>0]&3:0)Jc(b,g);f=(c[d+16>>2]|0)+24|0;break}case 10:{g=d+8|0;h=c[g>>2]|0;if((c[h+4>>2]&64|0)!=0?(i=c[h>>2]|0,(a[i+5>>0]&3)!=0):0){Jc(b,i);j=c[g>>2]|0}else j=h;if((j|0)==(d+12|0))f=20;else return;break}case 6:{j=b+72|0;c[d+8>>2]=c[j>>2];c[j>>2]=d;return}case 38:{j=b+72|0;c[d+8>>2]=c[j>>2];c[j>>2]=d;return}case 5:{j=b+72|0;c[d+24>>2]=c[j>>2];c[j>>2]=d;return}case 8:{j=b+72|0;c[d+60>>2]=c[j>>2];c[j>>2]=d;return}case 9:{j=b+72|0;c[d+72>>2]=c[j>>2];c[j>>2]=d;return}default:return}a[e>>0]=a[e>>0]|4;e=b+16|0;c[e>>2]=(c[e>>2]|0)+f;return}function Kc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0;f=b+12|0;g=c[f>>2]|0;h=g+50|0;i=a[h>>0]|0;j=(e|0)!=0;if(!j){a[h>>0]=0;e=g+92|0;k=c[e>>2]|0;if(k){l=k;do{k=l+5|0;a[k>>0]=a[k>>0]&-65;k=c[f>>2]|0;m=k+92|0;n=c[m>>2]|0;c[m>>2]=c[n>>2];m=k+56|0;c[n>>2]=c[m>>2];c[m>>2]=n;m=n+5|0;n=a[m>>0]|0;a[m>>0]=n&-17;if((d[k+49>>0]|0)>=2)a[m>>0]=a[k+48>>0]&3|n&-88;l=c[e>>2]|0}while((l|0)!=0);if((a[h>>0]|0)==2)o=10;else o=9}else o=9}else{a[h>>0]=1;o=9}if((o|0)==9?(d[g+49>>0]|0)<2:0)o=10;if((o|0)==10){o=c[f>>2]|0;a[o+49>>0]=2;c[o+52>>2]=0;l=o+60|0;e=d[o+48>>0]|0;n=(a[o+50>>0]|0)==2;k=c[l>>2]|0;a:do if(!k)p=0;else{m=k;q=n?255:184;r=n?64:e&3;s=n?64:0;t=e;while(1){u=t^3;v=m;w=1;x=l;while(1){if(!w)break;w=w+-1|0;y=v+5|0;z=d[y>>0]|0;if(!((z^3)&u)){c[x>>2]=c[v>>2];md(b,v);A=x}else{if(s&z|0){p=0;break a}if((a[v+4>>0]|0)==8)nd(b,v);a[y>>0]=q&z|r;A=v}v=c[A>>2]|0;if(!v){p=0;break a}else x=A}if((x|0)!=(l|0)){p=x;break a}v=c[f>>2]|0;u=d[v+48>>0]|0;w=(a[v+50>>0]|0)==2;m=c[l>>2]|0;if(!m){p=0;break}else{q=w?255:184;r=w?64:u&3;s=w?64:0;t=u}}}while(0);c[o+68>>2]=p;p=o+56|0;b:while(1){l=c[f>>2]|0;A=d[l+48>>0]|0;e=A^3;n=(a[l+50>>0]|0)==2;l=n?255:184;k=n?64:A&3;A=n?64:0;n=c[p>>2]|0;if(!n){C=0;break}t=n;n=1;s=p;while(1){if(!n)break;n=n+-1|0;r=t+5|0;q=d[r>>0]|0;if(!((q^3)&e)){c[s>>2]=c[t>>2];md(b,t);D=s}else{if(A&q|0){C=0;break b}if((a[t+4>>0]|0)==8)nd(b,t);a[r>>0]=l&q|k;D=t}t=c[D>>2]|0;if(!t){C=0;break b}else s=D}if((s|0)!=(p|0)){C=s;break}}c[o+64>>2]=C}C=(c[f>>2]|0)+49|0;if((a[C>>0]|0)==5){E=5;F=C}else{do gd(b)|0;while((a[C>>0]|0)!=5);C=(c[f>>2]|0)+49|0;E=a[C>>0]|0;F=C}if(!(1<<(E&255)&-33)){do gd(b)|0;while(!(1<<d[F>>0]&-33|0));C=(c[f>>2]|0)+49|0;G=a[C>>0]|0;H=C}else{G=E;H=F}if(G<<24>>24!=5)do gd(b)|0;while((a[H>>0]|0)!=5);if(i<<24>>24==2?(H=(c[f>>2]|0)+49|0,a[H>>0]|0):0)do gd(b)|0;while((a[H>>0]|0)!=0);a[h>>0]=i;i=g+8|0;h=g+12|0;H=(c[h>>2]|0)+(c[i>>2]|0)|0;b=(H|0)/100|0;G=c[g+128>>2]|0;g=B(b,0-G|0)|0;F=(G|0)<(2147483644/(b|0)|0|0)?g:-2147483644;c[i>>2]=0-F;c[h>>2]=F+H;if(j)return;j=(c[f>>2]|0)+92|0;H=c[j>>2]|0;if(!H)return;F=H;do{H=F+5|0;a[H>>0]=a[H>>0]&-65;H=c[f>>2]|0;h=H+92|0;i=c[h>>2]|0;c[h>>2]=c[i>>2];h=H+56|0;c[i>>2]=c[h>>2];c[h>>2]=i;h=i+5|0;i=a[h>>0]|0;a[h>>0]=i&-17;if((d[H+49>>0]|0)>=2)a[h>>0]=a[H+48>>0]&3|i&-88;F=c[j>>2]|0}while((F|0)!=0);return}function Lc(a){a=a|0;var b=0;b=Ia;Ia=Ia+16|0;Ac(a,47675,b)}function Mc(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=b+4|0;f=c[e>>2]|0;switch(f&63){case 4:{g=c[b>>2]|0;h=(c[a+16>>2]|0)+(((1<<(d[a+7>>0]|0))+-1&c[g+8>>2])*20|0)|0;while(1){if((c[h+12>>2]|0)==68?(c[h+8>>2]|0)==(g|0):0)break;i=c[h+16>>2]|0;if(!i){j=2217396;k=21;break}else h=i}if((k|0)==21)return j|0;j=h;return j|0}case 3:{h=c[b>>2]|0;if((f|0)==3?!(h>>>0>4294901759|((h&65535|0)!=0|(h+-65536|0)>>>0>2147352576)):0){f=(h>>>16)+-1|0;if(f>>>0<(c[a+28>>2]|0)>>>0){j=(c[a+12>>2]|0)+(f<<3)|0;return j|0}f=h&-65536;h=0-f|0;g=(c[a+16>>2]|0)+(((((f|0)<0?((f|0)==(h|0)?0:h):f)|0)%((1<<(d[a+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[g+12>>2]|0)==3?(c[g+8>>2]|0)==(f|0):0)break;h=c[g+16>>2]|0;if(!h){j=2217396;k=21;break}else g=h}if((k|0)==21)return j|0;j=g;return j|0}break}case 0:{j=2217396;return j|0}default:{}}g=vd(a,b)|0;while(1){if((c[g+12>>2]|0)==(c[e>>2]|0)?Tc(0,g+8|0,b)|0:0)break;a=c[g+16>>2]|0;if(!a){j=2217396;k=21;break}else g=a}if((k|0)==21)return j|0;j=g;return j|0}function Nc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;g=Ia;Ia=Ia+144|0;h=g;i=f+4|0;if(!(c[i>>2]|0))Ac(b,47656,g+128|0);j=vd(e,f)|0;k=j+4|0;a:do if((j|0)==2217420|(c[k>>2]|0)!=0){l=e+20|0;m=c[l>>2]|0;n=c[e+16>>2]|0;b:do if(m>>>0>n>>>0){o=m;while(1){p=o+-20|0;c[l>>2]=p;if(!(c[o+-8>>2]|0))break;if(p>>>0>n>>>0)o=p;else break b}q=vd(e,j+8|0)|0;if((q|0)==(j|0)){r=j+16|0;c[o+-4>>2]=c[r>>2];c[r>>2]=p;s=p;break a}r=q;while(1){q=c[r+16>>2]|0;if((q|0)==(j|0))break;else r=q}c[r+16>>2]=p;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[p+12>>2]=c[j+12>>2];c[p+16>>2]=c[j+16>>2];c[j+16>>2]=0;c[k>>2]=0;s=j;break a}while(0);l=h;m=l+124|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));l=e+12|0;m=c[e+28>>2]|0;o=0;q=1;t=0;u=1;while(1){if((u|0)>(m|0))if((q|0)>(m|0)){v=o;break}else w=m;else w=u;if((q|0)>(w|0)){x=q;y=0}else{z=c[l>>2]|0;A=q;B=0;while(1){C=B+((c[z+(A+-1<<3)+4>>2]|0)!=0&1)|0;D=A+1|0;if((A|0)<(w|0)){A=D;B=C}else{x=D;y=C;break}}}B=h+(t<<2)|0;c[B>>2]=(c[B>>2]|0)+y;B=y+o|0;t=t+1|0;if(t>>>0>=31){v=B;break}else{o=B;q=x;u=u<<1}}u=0;q=1<<(d[e+7>>0]|0);o=0;while(1){q=q+-1|0;if(!(c[n+(q*20|0)+4>>2]|0)){E=u;F=o}else{if(((c[n+(q*20|0)+12>>2]|0)==3?(t=c[n+(q*20|0)+8>>2]|0,!((t&65535|0)!=0|(t+-65536|0)>>>0>2147352576)):0)?(l=(t>>>16)+-1|0,l>>>0<32767):0){if(l>>>0>255){t=0;m=l;while(1){B=t+8|0;A=m>>>8;if(m>>>0>65535){t=B;m=A}else{G=B;H=A;break}}}else{G=0;H=l}m=h+(G+(d[400+H>>0]|0)<<2)|0;c[m>>2]=(c[m>>2]|0)+1;I=1}else I=0;E=I+u|0;F=o+1|0}if(!q)break;else{u=E;o=F}}o=E+v|0;if(((c[i>>2]|0)==3?(u=c[f>>2]|0,!((u&65535|0)!=0|(u+-65536|0)>>>0>2147352576)):0)?(q=(u>>>16)+-1|0,q>>>0<32767):0){if(q>>>0>255){u=0;n=q;while(1){m=u+8|0;t=n>>>8;if(n>>>0>65535){u=m;n=t}else{J=m;K=t;break}}}else{J=0;K=q}n=h+(J+(d[400+K>>0]|0)<<2)|0;c[n>>2]=(c[n>>2]|0)+1;L=1}else L=0;n=o+L|0;c:do if((n|0)>0){u=0;t=0;m=0;A=0;B=0;z=1;while(1){r=c[h+(m<<2)>>2]|0;C=(r|0)>0;D=r+u|0;u=C?D:u;r=C&(D|0)>(t|0);C=r?D:B;D=r?z:A;if((u|0)==(n|0)){M=D;N=C;break c}t=z&2147483647;if((t|0)>=(n|0)){M=D;N=C;break}else{m=m+1|0;A=D;B=C;z=z<<1}}}else{M=0;N=0}while(0);Xc(b,e,M,v+1+F-N|0);n=Mc(e,f)|0;if((n|0)!=2217396){O=n;Ia=g;return O|0}O=Nc(b,e,f)|0;Ia=g;return O|0}else s=j;while(0);c[s+8>>2]=c[f>>2];c[s+12>>2]=c[i>>2];if((c[i>>2]&64|0?a[(c[f>>2]|0)+5>>0]&3:0)?(f=e+5|0,i=a[f>>0]|0,i&4):0){j=c[b+12>>2]|0;a[f>>0]=i&-5;i=j+76|0;c[e+24>>2]=c[i>>2];c[i>>2]=e}O=s;Ia=g;return O|0}function Oc(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=b+12|0;f=c[e>>2]|0;do if((a[f+50>>0]|0)==2){g=f+20|0;h=c[g>>2]|0;if(!h){Kc(b,0);i=f+8|0;j=f+12|0;k=(c[j>>2]|0)+(c[i>>2]|0)|0;l=f+49|0;m=j;n=k;o=k;p=i}else{i=f+49|0;if((a[i>>0]|0)!=5)do gd(b)|0;while((a[i>>0]|0)!=5);a[i>>0]=0;k=f+8|0;j=f+12|0;q=(c[j>>2]|0)+(c[k>>2]|0)|0;r=q>>>0>(B(c[f+132>>2]|0,(h>>>0)/100|0)|0)>>>0;l=i;m=j;n=q;o=r?0:h;p=k}c[g>>2]=o;k=(n|0)/100|0;r=c[f+128>>2]|0;q=B(k,0-r|0)|0;j=(r|0)<(2147483644/(k|0)|0|0)?q:-2147483644;c[p>>2]=0-j;c[m>>2]=j+n;s=l}else{j=f+12|0;q=c[f+136>>2]|0;k=(q|0)>40?q:40;q=((c[j>>2]|0)/200|0)+1|0;r=B(k,q)|0;t=f+49|0;u=(q|0)<(2147483644/(k>>>0)|0|0)?r:2147483644;do{u=u-(gd(b)|0)|0;v=(a[t>>0]|0)==5;if((u|0)<=-1600){w=12;break}}while(!v);if((w|0)==12?!v:0){g=((u|0)/(k|0)|0)*200|0;h=f+8|0;c[h>>2]=(c[j>>2]|0)-g+(c[h>>2]|0);c[j>>2]=g;s=t;break}g=(c[f+20>>2]|0)/100|0;h=c[f+128>>2]|0;i=f+8|0;r=B(h,0-g|0)|0;q=(h|0)<(2147483644/(g|0)|0|0)?r:-2147483644;r=(c[j>>2]|0)+(c[i>>2]|0)+q|0;c[i>>2]=0-q;c[j>>2]=r;s=t}while(0);v=f+92|0;if(!(c[v>>2]|0))return;f=0;while(1){if(f>>>0>=4?(a[s>>0]|0)!=5:0){w=22;break}b=c[e>>2]|0;l=b+92|0;n=c[l>>2]|0;c[l>>2]=c[n>>2];l=b+56|0;c[n>>2]=c[l>>2];c[l>>2]=n;l=n+5|0;n=a[l>>0]|0;a[l>>0]=n&-17;if((d[b+49>>0]|0)>=2)a[l>>0]=a[b+48>>0]&3|n&-88;if(!(c[v>>2]|0)){w=22;break}else f=f+1|0}if((w|0)==22)return}function Pc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=Ia;Ia=Ia+16|0;h=g+8|0;i=g;j=c[d+4>>2]|0;do if((j|0)!=3){if((j&15|0)==4?(k=c[d>>2]|0,Wc(k+16|0,c[k+12>>2]|0,h)|0):0){c[i>>2]=c[h>>2];c[i+4>>2]=3;l=i;m=6;break}}else{l=d;m=6}while(0);a:do if((m|0)==6){i=c[e+4>>2]|0;do if((i|0)==3)n=e;else{if((i&15|0)==4?(j=c[e>>2]|0,Wc(j+16|0,c[j+12>>2]|0,h)|0):0){n=h;break}break a}while(0);c[b>>2]=sd(f+-6|0,c[l>>2]|0,c[n>>2]|0)|0;c[b+4>>2]=3;Ia=g;return}while(0);if(!(_c(a,d,e,b,f)|0))td(a,d,e);else{Ia=g;return}}function Qc(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=Ia;Ia=Ia+16|0;i=h;j=g+4|0;k=c[j>>2]|0;a:do switch(k&15){case 5:{l=c[g>>2]|0;m=c[l+8>>2]|0;do if(m|0?(n=m+6|0,o=a[n>>0]|0,(o&16)==0):0){p=c[(c[e+12>>2]|0)+172>>2]|0;q=(c[m+16>>2]|0)+(((1<<(d[m+7>>0]|0))+-1&c[p+8>>2])*20|0)|0;while(1){if((c[q+12>>2]|0)==68?(c[q+8>>2]|0)==(p|0):0){r=7;break}s=c[q+16>>2]|0;if(!s){t=2217396;break}else q=s}if((r|0)==7)t=q;p=t+4|0;if(c[p>>2]|0)if(!t)break;else{u=t;v=p;break a}else{a[n>>0]=o|16;break}}while(0);c[f>>2]=(rd(l)|0)<<16;c[f+4>>2]=3;Ia=h;return}case 4:{c[f>>2]=c[(c[g>>2]|0)+12>>2]<<16;c[f+4>>2]=3;Ia=h;return}case 7:{w=(c[g>>2]|0)+8|0;r=16;break}default:{w=(c[e+12>>2]|0)+276+((k&15)<<2)|0;r=16}}while(0);if((r|0)==16){r=c[w>>2]|0;b:do if(!r)x=2217396;else{w=c[(c[e+12>>2]|0)+172>>2]|0;k=(c[r+16>>2]|0)+(((1<<(d[r+7>>0]|0))+-1&c[w+8>>2])*20|0)|0;while(1){if((c[k+12>>2]|0)==68?(c[k+8>>2]|0)==(w|0):0)break;t=c[k+16>>2]|0;if(!t){x=2217396;break b}else k=t}x=k}while(0);r=x+4|0;if(!(c[r>>2]|0))dd(e,g,47620);else{u=x;v=r}}r=e+28|0;x=f-(c[r>>2]|0)|0;f=e+8|0;w=c[f>>2]|0;c[f>>2]=w+8;c[w>>2]=c[u>>2];c[w+4>>2]=c[v>>2];v=c[f>>2]|0;c[f>>2]=v+8;c[v>>2]=c[g>>2];c[v+4>>2]=c[j>>2];v=c[f>>2]|0;c[f>>2]=v+8;c[v>>2]=c[g>>2];c[v+4>>2]=c[j>>2];j=(c[f>>2]|0)+-24|0;v=a[(c[e+16>>2]|0)+18>>0]&1;g=e+38|0;w=(b[g>>1]|0)+1<<16>>16;b[g>>1]=w;if((w&65535)>199){if(w<<16>>16==200)Ac(e,47199,i);if((w&65535)>224)yc(e,6)}w=v<<24>>24!=0;if(!w){v=e+36|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16}if(!(Ec(e,j,1)|0))Fc(e);if(!w){w=e+36|0;b[w>>1]=(b[w>>1]|0)+-1<<16>>16}b[g>>1]=(b[g>>1]|0)+-1<<16>>16;g=(c[r>>2]|0)+x|0;x=c[f>>2]|0;r=x+-8|0;c[f>>2]=r;c[g>>2]=c[r>>2];c[g+4>>2]=c[x+-4>>2];Ia=h;return}function Rc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;e=Ia;Ia=Ia+48|0;f=e+32|0;g=e;h=b+8|0;i=b+12|0;j=c[h>>2]|0;k=d;a:while(1){l=j+-16|0;d=j+-12|0;m=c[d>>2]|0;n=j+-8|0;do if((m|0)==3|(m&15|0)==4){o=j+-4|0;p=c[o>>2]|0;if((p&15|0)==4){q=c[n>>2]|0;r=q;s=m;t=q;u=p}else{if((p|0)!=3){v=16;break}p=ad(g,c[n>>2]|0)|0;if(p>>>0<41)w=bd(b,g,p)|0;else{if((p+1|0)>>>0>4294967277){v=9;break a}q=c[i>>2]|0;x=c[q+44>>2]|0;y=p+17|0;z=q+4|0;A=Pa[c[q>>2]&3](c[z>>2]|0,0,4,y)|0;if((y|0)!=0&(A|0)==0){if(!(a[q+51>>0]|0)){v=13;break a}Kc(b,1);B=Pa[c[q>>2]&3](c[z>>2]|0,0,4,y)|0;if(!B){v=13;break a}else C=B}else C=A;A=q+12|0;c[A>>2]=(c[A>>2]|0)+y;y=q+56|0;a[C+5>>0]=a[q+48>>0]&3;a[C+4>>0]=20;c[C>>2]=c[y>>2];c[y>>2]=C;c[C+12>>2]=p;c[C+8>>2]=x;a[C+6>>0]=0;x=C+16|0;Vv(x|0,g|0,p|0)|0;a[x+p>>0]=0;w=C}c[n>>2]=w;p=(a[w+4>>0]|64)&255;c[o>>2]=p;r=w;s=c[d>>2]|0;t=w;u=p}p=c[r+12>>2]|0;o=(s&15|0)==4;if(!p){if(!((s|0)==3&(o^1))){D=2;break}x=ad(g,c[l>>2]|0)|0;if(x>>>0<41)E=bd(b,g,x)|0;else{if((x+1|0)>>>0>4294967277){v=23;break a}y=c[i>>2]|0;q=c[y+44>>2]|0;A=x+17|0;B=y+4|0;z=Pa[c[y>>2]&3](c[B>>2]|0,0,4,A)|0;if((A|0)!=0&(z|0)==0){if(!(a[y+51>>0]|0)){v=27;break a}Kc(b,1);F=Pa[c[y>>2]&3](c[B>>2]|0,0,4,A)|0;if(!F){v=27;break a}else G=F}else G=z;z=y+12|0;c[z>>2]=(c[z>>2]|0)+A;A=y+56|0;a[G+5>>0]=a[y+48>>0]&3;a[G+4>>0]=20;c[G>>2]=c[A>>2];c[A>>2]=G;c[G+12>>2]=x;c[G+8>>2]=q;a[G+6>>0]=0;q=G+16|0;Vv(q|0,g|0,x|0)|0;a[q+x>>0]=0;E=G}c[l>>2]=E;c[d>>2]=(a[E+4>>0]|64)&255;D=2;break}if(o?(c[(c[l>>2]|0)+12>>2]|0)==0:0){c[l>>2]=t;c[d>>2]=u;D=2;break}b:do if((k|0)>1){o=1;x=p;while(1){q=j+(0-o<<3)+-8|0;A=q+4|0;y=c[A>>2]|0;if((y&15|0)==4)H=c[q>>2]|0;else{if((y|0)!=3){I=o;J=x;break b}y=ad(g,c[q>>2]|0)|0;if(y>>>0<41)K=bd(b,g,y)|0;else{if((y+1|0)>>>0>4294967277){v=41;break a}z=c[i>>2]|0;F=c[z+44>>2]|0;B=y+17|0;L=z+4|0;M=Pa[c[z>>2]&3](c[L>>2]|0,0,4,B)|0;if((B|0)!=0&(M|0)==0){if(!(a[z+51>>0]|0)){v=45;break a}Kc(b,1);N=Pa[c[z>>2]&3](c[L>>2]|0,0,4,B)|0;if(!N){v=45;break a}else O=N}else O=M;M=z+12|0;c[M>>2]=(c[M>>2]|0)+B;B=z+56|0;a[O+5>>0]=a[z+48>>0]&3;a[O+4>>0]=20;c[O>>2]=c[B>>2];c[B>>2]=O;c[O+12>>2]=y;c[O+8>>2]=F;a[O+6>>0]=0;F=O+16|0;Vv(F|0,g|0,y|0)|0;a[F+y>>0]=0;K=O}c[q>>2]=K;c[A>>2]=(a[K+4>>0]|64)&255;H=K}A=c[H+12>>2]|0;if(A>>>0>=(-3-x|0)>>>0){v=49;break a}q=A+x|0;A=o+1|0;if((A|0)<(k|0)){o=A;x=q}else{I=A;J=q;break}}}else{I=1;J=p}while(0);p=c[i>>2]|0;x=p+116|0;o=p+124|0;q=c[o>>2]|0;if(q>>>0<J>>>0){A=J>>>0>32?J:32;if((A+1|0)>>>0>4294967293){v=54;break a}y=c[x>>2]|0;F=(y|0)==0;B=p+4|0;z=Pa[c[p>>2]&3](c[B>>2]|0,y,q,A)|0;if(!z){if(!(a[p+51>>0]|0)){v=58;break a}Kc(b,1);M=Pa[c[p>>2]&3](c[B>>2]|0,y,q,A)|0;if(!M){v=58;break a}else P=M}else P=z;z=p+12|0;c[z>>2]=(F?0:0-q|0)+A+(c[z>>2]|0);c[x>>2]=P;c[o>>2]=A;Q=P}else Q=c[x>>2]|0;x=I;A=0;while(1){o=c[j+(0-x<<3)>>2]|0;z=c[o+12>>2]|0;Vv(Q+A|0,o+16|0,z|0)|0;c[554353]=(c[554353]|0)+(z>>>5);A=z+A|0;if((x|0)<=1)break;else x=x+-1|0}x=0-I|0;z=j+(x<<3)|0;if(A>>>0<41)R=bd(b,Q,A)|0;else{if((A+1|0)>>>0>4294967277){v=65;break a}o=c[i>>2]|0;q=c[o+44>>2]|0;F=A+17|0;p=o+4|0;M=Pa[c[o>>2]&3](c[p>>2]|0,0,4,F)|0;if((F|0)!=0&(M|0)==0){if(!(a[o+51>>0]|0)){v=69;break a}Kc(b,1);y=Pa[c[o>>2]&3](c[p>>2]|0,0,4,F)|0;if(!y){v=69;break a}else S=y}else S=M;M=o+12|0;c[M>>2]=(c[M>>2]|0)+F;F=o+56|0;a[S+5>>0]=a[o+48>>0]&3;a[S+4>>0]=20;c[S>>2]=c[F>>2];c[F>>2]=S;c[S+12>>2]=A;c[S+8>>2]=q;a[S+6>>0]=0;q=S+16|0;Vv(q|0,Q|0,A|0)|0;a[q+A>>0]=0;R=S}c[z>>2]=R;c[j+(x<<3)+4>>2]=(a[R+4>>0]|64)&255;D=I}else v=16;while(0);if((v|0)==16){v=0;if(!(_c(b,l,n,l,28)|0)){v=17;break}else D=2}k=k+1-D|0;j=(c[h>>2]|0)+(1-D<<3)|0;c[h>>2]=j;if((k|0)<=1){v=73;break}}switch(v|0){case 9:{Lc(b);break}case 13:{yc(b,4);break}case 17:{cd(b,l,n);break}case 23:{Lc(b);break}case 27:{yc(b,4);break}case 41:{Lc(b);break}case 45:{yc(b,4);break}case 49:{Ac(b,47397,f);break}case 54:{Lc(b);break}case 58:{yc(b,4);break}case 65:{Lc(b);break}case 69:{yc(b,4);break}case 73:{Ia=e;return}}}function Sc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=b+12|0;g=c[f>>2]|0;h=b+56|0;b=c[h>>2]|0;if(!b)return;i=g+48|0;j=g+56|0;k=g+50|0;l=g+49|0;m=b;while(1){b=m+8|0;n=c[b>>2]|0;if(n>>>0<e>>>0){o=16;break}c[h>>2]=c[m>>2];p=m+12|0;do if(((a[i>>0]^3)&(a[m+5>>0]^3))<<24>>24){q=m+16|0;c[(c[q>>2]|0)+12>>2]=c[p>>2];c[(c[p>>2]|0)+16>>2]=c[q>>2];r=c[b>>2]|0;c[p>>2]=c[r>>2];s=c[r+4>>2]|0;c[q>>2]=s;c[b>>2]=p;c[m>>2]=c[j>>2];c[j>>2]=m;q=m+5|0;r=a[q>>0]|0;t=r&255;if(!(t&7)){if((a[k>>0]|0)!=2?(d[l>>0]|0)>=2:0){a[q>>0]=t&184|a[i>>0]&3;break}a[q>>0]=r&-69|4;if(s&64|0?(s=c[p>>2]|0,a[s+5>>0]&3):0)Jc(g,s)}}else{if((n|0)!=(p|0)){s=m+16|0;c[(c[s>>2]|0)+12>>2]=c[p>>2];c[(c[p>>2]|0)+16>>2]=c[s>>2]}s=c[f>>2]|0;Pa[c[s>>2]&3](c[s+4>>2]|0,m,20,0)|0;r=s+12|0;c[r>>2]=(c[r>>2]|0)+-20}while(0);m=c[h>>2]|0;if(!m){o=16;break}}if((o|0)==16)return}function Tc(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;h=Ia;Ia=Ia+16|0;i=h;j=f+4|0;a:do switch(c[j>>2]&63){case 0:{k=1;break}case 3:{k=(c[f>>2]|0)==(c[g>>2]|0);break}case 1:{k=(c[f>>2]|0)==(c[g>>2]|0);break}case 2:{k=(c[f>>2]|0)==(c[g>>2]|0);break}case 54:case 22:{k=(c[f>>2]|0)==(c[g>>2]|0);break}case 4:{k=(c[f>>2]|0)==(c[g>>2]|0);break}case 20:{l=c[f>>2]|0;m=c[g>>2]|0;n=c[l+12>>2]|0;if((l|0)!=(m|0))if((n|0)==(c[m+12>>2]|0))k=(tt(l+16|0,m+16|0,n)|0)==0;else k=0;else k=1;break}case 7:{n=c[f>>2]|0;m=c[g>>2]|0;if((n|0)!=(m|0))if(((e|0)!=0?(l=c[n+8>>2]|0,n=c[m+8>>2]|0,(l|0)!=0):0)?(m=l+6|0,o=a[m>>0]|0,(o&32)==0):0){p=c[(c[e+12>>2]|0)+176>>2]|0;q=c[p+8>>2]|0;r=(c[l+16>>2]|0)+(((1<<(d[l+7>>0]|0))+-1&q)*20|0)|0;while(1){if((c[r+12>>2]|0)==68?(c[r+8>>2]|0)==(p|0):0){s=17;break}t=c[r+16>>2]|0;if(!t){u=2217396;break}else r=t}if((s|0)==17)u=r;t=u+4|0;v=c[t>>2]|0;if(!v){a[m>>0]=o|32;k=0;break a}if(u)if((l|0)!=(n|0))if((n|0)!=0?(w=n+6|0,x=a[w>>0]|0,(x&32)==0):0){y=(c[n+16>>2]|0)+(((1<<(d[n+7>>0]|0))+-1&q)*20|0)|0;while(1){if((c[y+12>>2]|0)==68?(c[y+8>>2]|0)==(p|0):0){s=28;break}z=c[y+16>>2]|0;if(!z){A=2217396;break}else y=z}if((s|0)==28)A=y;p=c[A+4>>2]|0;if(!p){a[w>>0]=x|32;k=0;break a}if((A|0)!=0&(v|0)==(p|0)?(Tc(0,u,A)|0)!=0:0){B=u;C=t;s=59}else k=0}else k=0;else{B=u;C=t;s=59}else k=0}else k=0;else k=1;break}case 5:{p=c[f>>2]|0;q=c[g>>2]|0;if((p|0)!=(q|0))if(((e|0)!=0?(n=c[p+8>>2]|0,p=c[q+8>>2]|0,(n|0)!=0):0)?(q=n+6|0,l=a[q>>0]|0,(l&32)==0):0){o=c[(c[e+12>>2]|0)+176>>2]|0;m=c[o+8>>2]|0;r=(c[n+16>>2]|0)+(((1<<(d[n+7>>0]|0))+-1&m)*20|0)|0;while(1){if((c[r+12>>2]|0)==68?(c[r+8>>2]|0)==(o|0):0){s=41;break}z=c[r+16>>2]|0;if(!z){D=2217396;break}else r=z}if((s|0)==41)D=r;t=D+4|0;v=c[t>>2]|0;if(!v){a[q>>0]=l|32;k=0;break a}if(D)if((n|0)!=(p|0))if((p|0)!=0?(x=p+6|0,w=a[x>>0]|0,(w&32)==0):0){y=(c[p+16>>2]|0)+(((1<<(d[p+7>>0]|0))+-1&m)*20|0)|0;while(1){if((c[y+12>>2]|0)==68?(c[y+8>>2]|0)==(o|0):0){s=52;break}z=c[y+16>>2]|0;if(!z){E=2217396;break}else y=z}if((s|0)==52)E=y;o=c[E+4>>2]|0;if(!o){a[x>>0]=w|32;k=0;break a}if((E|0)!=0&(v|0)==(o|0)?(Tc(0,D,E)|0)!=0:0){B=D;C=t;s=59}else k=0}else k=0;else{B=D;C=t;s=59}else k=0}else k=0;else k=1;break}default:k=(c[f>>2]|0)==(c[g>>2]|0)}while(0);b:do if((s|0)==59){D=e+8|0;E=c[D>>2]|0;u=e+28|0;A=E-(c[u>>2]|0)|0;c[D>>2]=E+8;c[E>>2]=c[B>>2];c[E+4>>2]=c[C>>2];E=c[D>>2]|0;c[D>>2]=E+8;c[E>>2]=c[f>>2];c[E+4>>2]=c[j>>2];E=c[D>>2]|0;c[D>>2]=E+8;c[E>>2]=c[g>>2];c[E+4>>2]=c[g+4>>2];E=(c[D>>2]|0)+-24|0;o=a[(c[e+16>>2]|0)+18>>0]&1;m=e+38|0;p=(b[m>>1]|0)+1<<16>>16;b[m>>1]=p;if((p&65535)>199){if(p<<16>>16==200)Ac(e,47199,i);if((p&65535)>224)yc(e,6)}p=o<<24>>24!=0;if(!p){o=e+36|0;b[o>>1]=(b[o>>1]|0)+1<<16>>16}if(!(Ec(e,E,1)|0))Fc(e);if(!p){p=e+36|0;b[p>>1]=(b[p>>1]|0)+-1<<16>>16}b[m>>1]=(b[m>>1]|0)+-1<<16>>16;m=(c[u>>2]|0)+A|0;A=c[D>>2]|0;u=A+-8|0;c[D>>2]=u;c[m>>2]=c[u>>2];c[m+4>>2]=c[A+-4>>2];A=c[D>>2]|0;switch(c[A+4>>2]|0){case 0:{k=0;break b;break}case 1:{k=(c[A>>2]|0)!=0;break b;break}default:{k=1;break b}}}while(0);Ia=h;return k&1|0}function Uc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=c[b+4>>2]|0;if((e|0)==3){if((c[d+4>>2]|0)==3){f=(c[b>>2]|0)<(c[d>>2]|0)&1;return f|0}}else if((e&15|0)==4?(c[d+4>>2]&15|0)==4:0){e=c[b>>2]|0;g=c[d>>2]|0;h=e+16|0;i=g+16|0;j=xv(h,i)|0;a:do if(!j){k=h;l=c[e+12>>2]|0;m=c[g+12>>2]|0;n=i;while(1){o=bu(k)|0;if((o|0)==(m|0)){p=0;break a}q=o+1|0;if((o|0)==(l|0)){p=-1;break a}n=n+q|0;k=k+q|0;o=xv(k,n)|0;if(o|0){p=o;break}else{l=l-q|0;m=m-q|0}}}else p=j;while(0);f=p>>>31;return f|0}p=a+8|0;if(!(_c(a,b,d,c[p>>2]|0,26)|0))$c(a,b,d);d=c[p>>2]|0;p=c[d+4>>2]|0;switch(p|0){case 1:{f=(c[d>>2]|0)!=0&1;return f|0}case 0:{f=p;return f|0}default:{f=1;return f|0}}return 0}function Vc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c[b+4>>2]|0;if((e|0)==3)if((c[d+4>>2]|0)==3)f=(c[b>>2]|0)<=(c[d>>2]|0);else g=13;else if((e&15|0)==4?(c[d+4>>2]&15|0)==4:0){e=c[b>>2]|0;h=c[d>>2]|0;i=e+16|0;j=h+16|0;k=xv(i,j)|0;a:do if(!k){l=i;m=c[e+12>>2]|0;n=c[h+12>>2]|0;o=j;while(1){p=bu(l)|0;q=(p|0)==(m|0);if((p|0)==(n|0))break;r=p+1|0;if(q){s=-1;break a}o=o+r|0;l=l+r|0;p=xv(l,o)|0;if(p|0){s=p;break a}else{m=m-r|0;n=n-r|0}}s=(q^1)&1}else s=k;while(0);f=(s|0)<1}else g=13;b:do if((g|0)==13){s=a+8|0;k=(_c(a,b,d,c[s>>2]|0,27)|0)==0;q=c[s>>2]|0;if(!k)switch(c[q+4>>2]|0){case 0:{f=0;break b;break}case 1:{f=(c[q>>2]|0)!=0;break b;break}default:{f=1;break b}}if(!(_c(a,d,b,q,26)|0))$c(a,b,d);q=c[s>>2]|0;switch(c[q+4>>2]|0){case 0:{f=1;break b;break}case 1:{f=(c[q>>2]|0)==0;break b;break}default:{f=0;break b}}}while(0);return f&1|0}function Wc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;g=Ia;Ia=Ia+16|0;h=g;if(lv(b,47325)|0){i=0;Ia=g;return i|0}do if(!(lv(b,47328)|0)){if(!(lv(b,47331)|0)){j=~~(+Au(b,h)*65536.0)>>>0;c[f>>2]=j;k=c[h>>2]|0;break}c[h>>2]=b;j=b;while(1){l=a[j>>0]|0;m=j+1|0;if(!(a[64+((l&255)+1)>>0]&8))break;else j=m}switch(l<<24>>24){case 45:{n=1;o=m;break}case 43:{n=0;o=m;break}default:{n=0;o=j}}a:do if((a[o>>0]|0)==48){switch(a[o+1>>0]|0){case 66:case 98:break;default:{p=b;q=0;break a}}r=o+2|0;s=a[r>>0]|0;if((s&-2)<<24>>24==48){t=s;u=0;v=r;w=0;do{w=w<<1|t<<24>>24==49;u=u+1|0;v=v+1|0;t=a[v>>0]|0}while((t&-2)<<24>>24==48);x=t;y=u;z=w<<16;A=v}else{x=s;y=0;z=0;A=r}B=A;if(x<<24>>24==46){C=A+1|0;D=C;E=a[C>>0]|0;if((E&-2)<<24>>24==48){F=0;G=E;E=C;C=0;do{C=F>>>0<16?C<<1|G<<24>>24==49:C;F=F+1|0;E=E+1|0;G=a[E>>0]|0}while((G&-2)<<24>>24==48);H=F;I=C;J=E}else{H=0;I=0;J=D}G=J-D|0;K=H;L=I<<((G+-1|0)>>>0<15?16-G|0:0);M=J}else{K=0;L=0;M=B}if(K|y){c[h>>2]=M;G=M;switch(a[G>>0]|0){case 80:case 112:{p=G;q=0;break a;break}default:{}}c[h>>2]=G;r=L+z|0;if(!n){p=G;q=~~+kt(+(r|0),0);break}else{p=G;q=~~+kt(+(0-r|0),0);break}}else{p=b;q=0}}else{p=b;q=0}while(0);c[f>>2]=q;k=p}else{c[h>>2]=b;j=b;while(1){N=a[j>>0]|0;O=j+1|0;if(!(a[64+((N&255)+1)>>0]&8))break;else j=O}switch(N<<24>>24){case 45:{P=1;Q=O;break}case 43:{P=0;Q=O;break}default:{P=0;Q=j}}b:do if((a[Q>>0]|0)==48){switch(a[Q+1>>0]|0){case 88:case 120:break;default:{R=b;S=0;break b}}r=Q+2|0;G=a[r>>0]|0;s=G&255;if(!(a[64+(s+1)>>0]&16)){T=G;U=0;V=0;W=r}else{G=0;v=r;r=s;s=0;do{w=r+-48|0;s=(w>>>0<10?w:(r|32)+-87|0)+(s<<4)|0;G=G+1|0;v=v+1|0;X=a[v>>0]|0;r=X&255}while((a[64+(r+1)>>0]&16)!=0);T=X;U=G;V=s<<16;W=v}r=W;if(T<<24>>24==46){B=W+1|0;D=B;E=d[B>>0]|0;if(!(a[64+(E+1)>>0]&16)){Y=0;Z=0;_=D}else{C=0;F=B;B=E;E=0;do{w=B+-48|0;E=C>>>0<4?(w>>>0<10?w:(B|32)+-87|0)+(E<<4)|0:E;C=C+1|0;F=F+1|0;B=d[F>>0]|0}while((a[64+(B+1)>>0]&16)!=0);Y=C;Z=E;_=F}B=_-D|0;$=Y;aa=Z<<((B+-1|0)>>>0<3?16-(B<<2)|0:0);ba=_}else{$=0;aa=0;ba=r}if($|U){c[h>>2]=ba;B=ba;switch(a[B>>0]|0){case 80:case 112:{R=B;S=0;break b;break}default:{}}c[h>>2]=B;v=aa+V|0;if(!P){R=B;S=~~+kt(+(v|0),0);break}else{R=B;S=~~+kt(+(0-v|0),0);break}}else{R=b;S=0}}else{R=b;S=0}while(0);c[f>>2]=S;k=R}while(0);if((k|0)==(b|0)){i=0;Ia=g;return i|0}if(!(a[64+((d[k>>0]|0)+1)>>0]&8))ca=k;else{R=k;do R=R+1|0;while((a[64+((d[R>>0]|0)+1)>>0]&8)!=0);c[h>>2]=R;ca=R}i=(ca|0)==(b+e|0)&1;Ia=g;return i|0}function Xc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;h=Ia;Ia=Ia+16|0;i=h;j=e+28|0;k=c[j>>2]|0;l=e+7|0;m=a[l>>0]|0;n=m&255;o=e+16|0;p=c[o>>2]|0;if((k|0)<(f|0)){if((f+1|0)>>>0>536870911)Lc(b);q=e+12|0;r=c[q>>2]|0;s=k<<3;k=f<<3;t=c[b+12>>2]|0;u=(r|0)==0;v=t+4|0;w=Pa[c[t>>2]&3](c[v>>2]|0,r,s,k)|0;if((k|0)!=0&(w|0)==0){if(!(a[t+51>>0]|0))yc(b,4);Kc(b,1);x=Pa[c[t>>2]&3](c[v>>2]|0,r,s,k)|0;if(!x)yc(b,4);else y=x}else y=w;w=t+12|0;c[w>>2]=(u?0:0-s|0)+k+(c[w>>2]|0);c[q>>2]=y;q=c[j>>2]|0;if((q|0)<(f|0)){w=q;do{c[y+(w<<3)+4>>2]=0;w=w+1|0}while((w|0)!=(f|0))}c[j>>2]=f}if(!g){c[o>>2]=2217420;z=2217420;A=0;B=0}else{f=g+-1|0;if(f>>>0>255){g=0;j=f;while(1){w=g+8|0;y=j>>>8;if(j>>>0>65535){g=w;j=y}else{C=w;D=y;break}}}else{C=0;D=f}f=C+(d[400+D>>0]|0)|0;if((f|0)>30)Ac(b,47216,i);i=1<<f;if((i+1|0)>>>0>214748364)Lc(b);D=20<<f;C=c[b+12>>2]|0;j=C+4|0;g=Pa[c[C>>2]&3](c[j>>2]|0,0,0,D)|0;if(f>>>0<30&(g|0)==0){if(!(a[C+51>>0]|0))yc(b,4);Kc(b,1);y=Pa[c[C>>2]&3](c[j>>2]|0,0,0,D)|0;if(!y)yc(b,4);else E=y}else E=g;g=C+12|0;c[g>>2]=(c[g>>2]|0)+D;c[o>>2]=E;D=E;E=0;do{c[D+(E*20|0)+16>>2]=0;c[D+(E*20|0)+12>>2]=0;c[D+(E*20|0)+4>>2]=0;E=E+1|0;D=c[o>>2]|0}while((E|0)<(i|0));z=D;A=f&255;B=i}a[l>>0]=A;c[e+20>>2]=z+(B*20|0);if(m<<24>>24!=31){m=1<<n;do{B=m;m=m+-1|0;z=p+(m*20|0)+4|0;if(c[z>>2]|0){A=p+(m*20|0)+8|0;l=Mc(e,A)|0;if((l|0)==2217396)F=Nc(b,e,A)|0;else F=l;c[F>>2]=c[p+(m*20|0)>>2];c[F+4>>2]=c[z>>2]}}while((B|0)>1)}if((p|0)==2217420){Ia=h;return}F=20<<n;n=c[b+12>>2]|0;Pa[c[n>>2]&3](c[n+4>>2]|0,p,F,0)|0;b=n+12|0;c[b>>2]=(c[b>>2]|0)-((p|0)==0?0:F);Ia=h;return}function Yc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=d<<2;f=e+16|0;g=c[b+12>>2]|0;h=g+4|0;i=Pa[c[g>>2]&3](c[h>>2]|0,0,6,f)|0;if((f|0)!=0&(i|0)==0){if(!(a[g+51>>0]|0))yc(b,4);Kc(b,1);j=Pa[c[g>>2]&3](c[h>>2]|0,0,6,f)|0;if(!j)yc(b,4);else k=j}else k=i;i=g+12|0;c[i>>2]=(c[i>>2]|0)+f;f=g+56|0;a[k+5>>0]=a[g+48>>0]&3;a[k+4>>0]=6;c[k>>2]=c[f>>2];c[f>>2]=k;c[k+12>>2]=0;a[k+6>>0]=d;if(!d)return k|0;Wv(k+16|0,0,e|0)|0;return k|0}function Zc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=c[b+12>>2]|0;f=b+56|0;g=c[f>>2]|0;a:do if(!g)h=f;else{i=g;j=f;while(1){k=c[i+8>>2]|0;if(k>>>0<d>>>0){h=j;break a}if((k|0)==(d|0))break;k=c[i>>2]|0;if(!k){l=8;break}else{m=i;i=k;j=m}}if((l|0)==8){h=i;break}j=i+5|0;m=a[j>>0]^3;if(((a[e+48>>0]^3)&m)<<24>>24){n=i;return n|0}a[j>>0]=m;n=i;return n|0}while(0);l=e+4|0;f=Pa[c[e>>2]&3](c[l>>2]|0,0,10,20)|0;if(!f){if(!(a[e+51>>0]|0))yc(b,4);Kc(b,1);g=Pa[c[e>>2]&3](c[l>>2]|0,0,10,20)|0;if(!g)yc(b,4);else o=g}else o=f;f=e+12|0;c[f>>2]=(c[f>>2]|0)+20;f=(h|0)==0?e+56|0:h;a[o+5>>0]=a[e+48>>0]&3;a[o+4>>0]=10;c[o>>2]=c[f>>2];c[f>>2]=o;c[o+8>>2]=d;c[o+12>>2]=e+96;d=e+112|0;e=c[d>>2]|0;c[o+16>>2]=e;c[e+12>>2]=o;c[d>>2]=o;n=o;return n|0}function _c(e,f,g,h,i){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=Ia;Ia=Ia+16|0;k=j;l=f+4|0;m=c[l>>2]|0;switch(m&15){case 5:{n=(c[f>>2]|0)+8|0;break}case 7:{n=(c[f>>2]|0)+8|0;break}default:n=(c[e+12>>2]|0)+276+((m&15)<<2)|0}m=c[n>>2]|0;a:do if(!m)o=2217396;else{n=c[(c[e+12>>2]|0)+156+(i<<2)>>2]|0;p=(c[m+16>>2]|0)+(((1<<(d[m+7>>0]|0))+-1&c[n+8>>2])*20|0)|0;while(1){if((c[p+12>>2]|0)==68?(c[p+8>>2]|0)==(n|0):0)break;q=c[p+16>>2]|0;if(!q){o=2217396;break a}else p=q}o=p}while(0);b:do if(!(c[o+4>>2]|0)){m=c[g+4>>2]|0;switch(m&15){case 5:{r=(c[g>>2]|0)+8|0;break}case 7:{r=(c[g>>2]|0)+8|0;break}default:r=(c[e+12>>2]|0)+276+((m&15)<<2)|0}m=c[r>>2]|0;if(!m)s=2217396;else{n=c[(c[e+12>>2]|0)+156+(i<<2)>>2]|0;q=(c[m+16>>2]|0)+(((1<<(d[m+7>>0]|0))+-1&c[n+8>>2])*20|0)|0;while(1){if((c[q+12>>2]|0)==68?(c[q+8>>2]|0)==(n|0):0)break;m=c[q+16>>2]|0;if(!m){s=2217396;break b}else q=m}s=q}}else s=o;while(0);o=s+4|0;if(!(c[o>>2]|0)){t=0;Ia=j;return t|0}i=e+28|0;r=h-(c[i>>2]|0)|0;h=e+8|0;n=c[h>>2]|0;c[h>>2]=n+8;c[n>>2]=c[s>>2];c[n+4>>2]=c[o>>2];o=c[h>>2]|0;c[h>>2]=o+8;c[o>>2]=c[f>>2];c[o+4>>2]=c[l>>2];l=c[h>>2]|0;c[h>>2]=l+8;c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];g=(c[h>>2]|0)+-24|0;l=a[(c[e+16>>2]|0)+18>>0]&1;o=e+38|0;f=(b[o>>1]|0)+1<<16>>16;b[o>>1]=f;if((f&65535)>199){if(f<<16>>16==200)Ac(e,47199,k);if((f&65535)>224)yc(e,6)}f=l<<24>>24!=0;if(!f){l=e+36|0;b[l>>1]=(b[l>>1]|0)+1<<16>>16}if(!(Ec(e,g,1)|0))Fc(e);if(!f){f=e+36|0;b[f>>1]=(b[f>>1]|0)+-1<<16>>16}b[o>>1]=(b[o>>1]|0)+-1<<16>>16;o=(c[i>>2]|0)+r|0;r=c[h>>2]|0;i=r+-8|0;c[h>>2]=i;c[o>>2]=c[i>>2];c[o+4>>2]=c[r+-4>>2];t=1;Ia=j;return t|0}function $c(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;e=c[16+((c[b+4>>2]&15)+1<<2)>>2]|0;b=c[16+((c[d+4>>2]&15)+1<<2)>>2]|0;if((e|0)==(b|0)){c[g>>2]=e;Ac(a,47334,g)}else{c[f>>2]=e;c[f+4>>2]=b;Ac(a,47367,f)}}function ad(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=Ia;Ia=Ia+64|0;e=d+48|0;f=d+40|0;h=d+32|0;i=d;j=+(c|0)*.0000152587890625;g[h>>3]=j;wt(i,47590,h)|0;if((bv(i,47596)|0)==0?(bv(i,47602)|0)==0:0){g[e>>3]=j;wt(i,47614,e)|0}else{g[f>>3]=j;wt(i,47608,f)|0}f=bu(i)|0;e=f+-1|0;h=i+e|0;c=a[h>>0]|0;k=(f|0)>0;if(k&c<<24>>24==48){f=h;l=e;while(1){a[f>>0]=0;e=l;l=l+-1|0;m=i+l|0;n=a[m>>0]|0;o=(e|0)>0;if(!(o&n<<24>>24==48)){p=n;q=m;r=o;break}else f=m}}else{p=c;q=h;r=k}if(!(r&p<<24>>24==46)){s=bu(i)|0;t=s+1|0;Vv(b|0,i|0,t|0)|0;Ia=d;return s|0}a[q>>0]=0;s=bu(i)|0;t=s+1|0;Vv(b|0,i|0,t|0)|0;Ia=d;return s|0}function bd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=b+12|0;h=c[g>>2]|0;i=c[h+44>>2]^f;j=f>>>5;if(j>>>0<f>>>0){k=~j;l=i;m=f;while(1){n=(l<<5)+(l>>>2)+(d[e+(m+-1)>>0]|0)^l;m=m+k|0;if(m>>>0<=j>>>0){o=n;break}else l=n}}else o=i;i=h+24|0;l=h+32|0;j=c[l>>2]|0;m=(c[i>>2]|0)+((j+-1&o)<<2)|0;k=c[m>>2]|0;a:do if(k|0){n=k;while(1){if(((o|0)==(c[n+8>>2]|0)?(c[n+12>>2]|0)==(f|0):0)?(tt(e,n+16|0,f)|0)==0:0)break;p=c[n>>2]|0;if(!p)break a;else n=p}p=n+5|0;q=a[p>>0]^3;if(((a[h+48>>0]^3)&q)<<24>>24){r=n;return r|0}a[p>>0]=q;r=n;return r|0}while(0);k=h+28|0;if((j|0)<1073741823?(c[k>>2]|0)>>>0>=j>>>0:0){fd(b,j<<1);s=c[g>>2]|0;t=(c[i>>2]|0)+(((c[l>>2]|0)+-1&o)<<2)|0}else{s=h;t=m}m=f+17|0;h=s+4|0;l=Pa[c[s>>2]&3](c[h>>2]|0,0,4,m)|0;if((m|0)!=0&(l|0)==0){if(!(a[s+51>>0]|0))yc(b,4);Kc(b,1);i=Pa[c[s>>2]&3](c[h>>2]|0,0,4,m)|0;if(!i)yc(b,4);else u=i}else u=l;l=s+12|0;c[l>>2]=(c[l>>2]|0)+m;m=(t|0)==0?s+56|0:t;a[u+5>>0]=a[s+48>>0]&3;a[u+4>>0]=4;c[u>>2]=c[m>>2];c[m>>2]=u;c[u+12>>2]=f;c[u+8>>2]=o;a[u+6>>0]=0;o=u+16|0;Vv(o|0,e|0,f|0)|0;a[o+f>>0]=0;c[k>>2]=(c[k>>2]|0)+1;r=u;return r|0}function cd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b+4>>2]|0;dd(a,(e|0)==3|(e&15|0)==4?d:b,47420)}function dd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=Ia;Ia=Ia+48|0;g=f+24|0;h=f+8|0;i=f;j=f+32|0;f=c[b+16>>2]|0;c[j>>2]=0;k=c[16+((c[d+4>>2]&15)+1<<2)>>2]|0;if(!(a[f+18>>0]&1)){c[g>>2]=e;l=g+4|0;c[l>>2]=k;Ac(b,47531,g)}m=c[c[f>>2]>>2]|0;n=a[m+6>>0]|0;a:do if(!(n<<24>>24))o=7;else{p=n&255;q=0;while(1){if((c[(c[m+16+(q<<2)>>2]|0)+8>>2]|0)==(d|0))break;r=q+1|0;if(r>>>0<p>>>0)q=r;else{o=7;break a}}p=c[(c[(c[m+12>>2]|0)+28>>2]|0)+(q<<3)>>2]|0;c[j>>2]=(p|0)==0?80062:p+16|0;s=47432}while(0);if((o|0)==7){n=c[f+24>>2]|0;p=c[f+4>>2]|0;r=n;if(n>>>0>=p>>>0){c[g>>2]=e;l=g+4|0;c[l>>2]=k;Ac(b,47531,g)}t=n;while(1){if((t|0)==(d|0))break;t=t+8|0;if(t>>>0>=p>>>0){o=16;break}}if((o|0)==16){c[g>>2]=e;l=g+4|0;c[l>>2]=k;Ac(b,47531,g)}o=c[m+12>>2]|0;m=ed(o,((c[f+28>>2]|0)-(c[o+12>>2]|0)>>2)+-1|0,d-r>>3,j)|0;if(!m){c[g>>2]=e;l=g+4|0;c[l>>2]=k;Ac(b,47531,g)}else s=m}if(au(e,47440)|0){u=c[j>>2]|0;c[h>>2]=e;v=h+4|0;c[v>>2]=s;w=h+8|0;c[w>>2]=u;x=h+12|0;c[x>>2]=k;Ac(b,47496,h)}if(!(au(k,62511)|0)){m=c[j>>2]|0;c[i>>2]=s;c[i+4>>2]=m;Ac(b,47446,i)}else{u=c[j>>2]|0;c[h>>2]=e;v=h+4|0;c[v>>2]=s;w=h+8|0;c[w>>2]=u;x=h+12|0;c[x>>2]=k;Ac(b,47496,h)}}function ed(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=b+24|0;h=b+12|0;i=c[b+60>>2]|0;j=(i|0)>0;k=d;d=e;a:while(1){b:do if(j){l=c[g>>2]|0;m=0;e=d+1|0;while(1){if((c[l+(m*12|0)+4>>2]|0)>(k|0))break b;if((c[l+(m*12|0)+8>>2]|0)>(k|0)){n=e+-1|0;if(!n){o=8;break a}else p=n}else p=e;n=m+1|0;if((n|0)<(i|0)){m=n;e=p}else break}}while(0);c[f>>2]=0;if((k|0)<=0){q=0;o=51;break}r=c[h>>2]|0;e=0;n=0;s=-1;while(1){t=c[r+(n<<2)>>2]|0;u=t>>>6&255;switch(t&63){case 4:{v=e;w=(u|0)>(d|0)|(u+(t>>>23)|0)<(d|0)?s:(n|0)<(e|0)?-1:n;break}case 47:{v=e;w=(u+2|0)>(d|0)?s:(n|0)<(e|0)?-1:n;break}case 43:case 42:{v=e;w=(u|0)>(d|0)?s:(n|0)<(e|0)?-1:n;break}case 36:{x=n+-131070+(t>>>14)|0;v=(x|0)>(e|0)&((x|0)<=(k|0)&(n|0)<(x|0))?x:e;w=s;break}case 40:{v=e;w=(u|0)==(d|0)?((n|0)<(e|0)?-1:n):s;break}default:{v=e;w=((u|0)==(d|0)?(a[336+(t&63)>>0]&64)!=0:0)?((n|0)<(e|0)?-1:n):s}}n=n+1|0;if((n|0)==(k|0))break;else{e=v;s=w}}if((w|0)==-1){q=0;o=51;break}y=c[r+(w<<2)>>2]|0;switch(y&63){case 7:case 6:{o=22;break a;break}case 5:{o=39;break a;break}case 2:case 1:{o=40;break a;break}case 12:{o=45;break a;break}case 0:break;default:{q=0;o=51;break a}}d=y>>>23;if(d>>>0>=(y>>>6&255)>>>0){q=0;o=51;break}else k=w}if((o|0)==8){c[f>>2]=(c[l+(m*12|0)>>2]|0)+16;q=92620;return q|0}else if((o|0)==22){m=y>>>14;l=m&511;k=y>>>23;c:do if((y&63|0)==7)if(j){d=c[g>>2]|0;v=0;h=k+1|0;while(1){if((c[d+(v*12|0)+4>>2]|0)>(w|0)){z=0;break c}if((c[d+(v*12|0)+8>>2]|0)>(w|0)){p=h+-1|0;if(!p)break;else A=p}else A=h;p=v+1|0;if((p|0)<(i|0)){v=p;h=A}else{z=0;break c}}z=(c[d+(v*12|0)>>2]|0)+16|0}else z=0;else{h=c[(c[b+28>>2]|0)+(k<<3)>>2]|0;z=(h|0)==0?80062:h+16|0}while(0);if(!(y&4194304)){k=ed(b,w,l,f)|0;if(!((k|0)!=0?(a[k>>0]|0)==99:0))o=36}else{k=c[b+8>>2]|0;l=m&255;if((c[k+(l<<3)+4>>2]&15|0)==4)c[f>>2]=(c[k+(l<<3)>>2]|0)+16;else o=36}if((o|0)==36)c[f>>2]=80062;if(!z){q=47568;return q|0}l=(au(z,47556)|0)==0;q=l?47561:47568;return q|0}else if((o|0)==39){l=c[(c[b+28>>2]|0)+(y>>>23<<3)>>2]|0;c[f>>2]=(l|0)==0?80062:l+16|0;q=47432;return q|0}else if((o|0)==40){if((y&63|0)==1)B=y>>>14;else B=(c[r+(w+1<<2)>>2]|0)>>>6;r=c[b+8>>2]|0;if((c[r+(B<<3)+4>>2]&15|0)!=4){q=0;return q|0}c[f>>2]=(c[r+(B<<3)>>2]|0)+16;q=47581;return q|0}else if((o|0)==45){B=y>>>14;if(!(y&4194304)){y=ed(b,w,B&511,f)|0;if(y|0?(a[y>>0]|0)==99:0){q=47574;return q|0}}else{y=c[b+8>>2]|0;b=B&255;if((c[y+(b<<3)+4>>2]&15|0)==4){c[f>>2]=(c[y+(b<<3)>>2]|0)+16;q=47574;return q|0}}c[f>>2]=80062;q=47574;return q|0}else if((o|0)==51)return q|0;return 0}function fd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=b+12|0;g=c[f>>2]|0;h=g+24|0;i=g+49|0;if(!(1<<d[i>>0]&-5))do gd(b)|0;while(!(1<<d[i>>0]&-5|0));i=g+32|0;g=c[i>>2]|0;if((g|0)<(e|0)){if((e+1|0)>>>0>1073741823)Lc(b);j=c[h>>2]|0;k=g<<2;l=e<<2;m=c[f>>2]|0;n=(j|0)==0;o=m+4|0;p=Pa[c[m>>2]&3](c[o>>2]|0,j,k,l)|0;if((l|0)!=0&(p|0)==0){if(!(a[m+51>>0]|0))yc(b,4);Kc(b,1);q=Pa[c[m>>2]&3](c[o>>2]|0,j,k,l)|0;if(!q)yc(b,4);else r=q}else r=p;p=m+12|0;c[p>>2]=(n?0:0-k|0)+l+(c[p>>2]|0);c[h>>2]=r;p=c[i>>2]|0;if((p|0)<(e|0)?(c[r+(p<<2)>>2]=0,r=p+1|0,(r|0)!=(e|0)):0){l=r;do{c[(c[h>>2]|0)+(l<<2)>>2]=0;l=l+1|0}while((l|0)!=(e|0));s=p}else s=p}else s=g;if((s|0)>0){g=e+-1|0;p=s;l=0;while(1){r=(c[h>>2]|0)+(l<<2)|0;k=c[r>>2]|0;c[r>>2]=0;if(!k)t=p;else{r=k;do{k=r;r=c[r>>2]|0;n=c[k+8>>2]&g;c[k>>2]=c[(c[h>>2]|0)+(n<<2)>>2];c[(c[h>>2]|0)+(n<<2)>>2]=k;n=k+5|0;a[n>>0]=a[n>>0]&-65}while((r|0)!=0);t=c[i>>2]|0}l=l+1|0;if((l|0)>=(t|0)){u=t;break}else p=t}}else u=s;if((u|0)<=(e|0)){c[i>>2]=e;return}if((e+1|0)>>>0>1073741823)Lc(b);s=c[h>>2]|0;t=u<<2;u=e<<2;p=c[f>>2]|0;f=(s|0)==0;l=p+4|0;g=Pa[c[p>>2]&3](c[l>>2]|0,s,t,u)|0;if((u|0)!=0&(g|0)==0){if(!(a[p+51>>0]|0))yc(b,4);Kc(b,1);r=Pa[c[p>>2]&3](c[l>>2]|0,s,t,u)|0;if(!r)yc(b,4);else v=r}else v=g;g=p+12|0;c[g>>2]=(f?0:0-t|0)+u+(c[g>>2]|0);c[h>>2]=v;c[i>>2]=e;return}function gd(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;e=Ia;Ia=Ia+16|0;f=e;g=b+12|0;h=c[g>>2]|0;i=h+49|0;switch(a[i>>0]|0){case 5:{j=h+16|0;c[j>>2]=c[h+32>>2]<<2;k=h+72|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;k=c[h+144>>2]|0;if(k|0?a[k+5>>0]&3:0)Jc(h,k);if(c[h+40>>2]&64|0?(k=c[h+36>>2]|0,a[k+5>>0]&3):0)Jc(h,k);hd(h);k=c[h+92>>2]|0;if(k|0){l=h+48|0;m=k;do{k=m+5|0;a[k>>0]=a[l>>0]&3|a[k>>0]&-72;Jc(h,m);m=c[m>>2]|0}while((m|0)!=0)}a[i>>0]=0;n=c[j>>2]|0;Ia=e;return n|0}case 0:{j=h+72|0;if(c[j>>2]|0){m=h+16|0;l=c[m>>2]|0;id(h);n=(c[m>>2]|0)-l|0;Ia=e;return n|0}a[i>>0]=1;l=h+16|0;m=c[l>>2]|0;k=h+20|0;c[k>>2]=m;if(a[b+5>>0]&3)Jc(h,b);if(c[h+40>>2]&64|0?(o=c[h+36>>2]|0,a[o+5>>0]&3):0)Jc(h,o);hd(h);o=h+96|0;p=c[h+112>>2]|0;if((p|0)!=(o|0)){q=p;do{if(((a[q+5>>0]&7)==0?(p=c[q+8>>2]|0,c[p+4>>2]&64|0):0)?(r=c[p>>2]|0,a[r+5>>0]&3):0)Jc(h,r);q=c[q+16>>2]|0}while((q|0)!=(o|0))}if(c[j>>2]|0)do id(h);while((c[j>>2]|0)!=0);o=(c[l>>2]|0)-m|0;m=h+80|0;q=c[m>>2]|0;r=h+76|0;p=c[r>>2]|0;s=h+84|0;t=c[s>>2]|0;c[s>>2]=0;c[r>>2]=0;c[m>>2]=0;c[j>>2]=p;if(p|0)do id(h);while((c[j>>2]|0)!=0);c[j>>2]=q;if(q|0)do id(h);while((c[j>>2]|0)!=0);c[j>>2]=t;if(t|0)do id(h);while((c[j>>2]|0)!=0);t=o-(c[l>>2]|0)|0;do{o=c[s>>2]|0;c[s>>2]=0;if(!o)break;q=o;o=0;while(1){p=q;q=c[q+24>>2]|0;if(jd(h,p)|0)if(!(c[j>>2]|0))u=1;else{do id(h);while((c[j>>2]|0)!=0);u=1}else u=o;if(!q)break;else o=u}}while((u|0)!=0);kd(h,c[m>>2]|0,0);u=h+88|0;kd(h,c[u>>2]|0,0);o=c[m>>2]|0;q=c[u>>2]|0;p=t+(c[l>>2]|0)|0;t=c[g>>2]|0;r=t+60|0;v=t+92|0;t=c[v>>2]|0;if(!t)w=v;else{v=t;while(1){t=c[v>>2]|0;if(!t)break;else v=t}w=v}v=c[r>>2]|0;if(v|0){t=v;v=w;w=r;while(1){r=t+5|0;x=d[r>>0]|0;if(!(x&3)){y=v;z=t}else{a[r>>0]=x|8;c[w>>2]=c[t>>2];c[t>>2]=c[v>>2];c[v>>2]=t;y=t;z=w}t=c[z>>2]|0;if(!t)break;else{v=y;w=z}}}z=c[h+92>>2]|0;if(z|0){w=h+48|0;y=z;do{z=y+5|0;a[z>>0]=a[w>>0]&3|a[z>>0]&-72;Jc(h,y);y=c[y>>2]|0}while((y|0)!=0)}if(c[j>>2]|0)do id(h);while((c[j>>2]|0)!=0);y=p-(c[l>>2]|0)|0;while(1){p=c[s>>2]|0;c[s>>2]=0;if(!p)break;w=p;p=0;while(1){z=w;w=c[w+24>>2]|0;if(jd(h,z)|0)if(!(c[j>>2]|0))A=1;else{do id(h);while((c[j>>2]|0)!=0);A=1}else A=p;if(!w)break;else p=A}if(!A){B=72;break}}if((B|0)==72?(A=c[s>>2]|0,A|0):0){s=A;do{A=c[s+16>>2]|0;j=a[s+7>>0]|0;p=A+((1<<(j&255))*20|0)|0;if(j<<24>>24!=31){j=A;do{A=j+4|0;do if(c[A>>2]|0){w=j+12|0;z=c[w>>2]|0;if(!(z&64))break;v=c[j+8>>2]|0;if((z&15|0)==4){if(!v)break;if(!(a[v+5>>0]&3))break;Jc(h,v);break}else{z=v+5|0;if(!(a[z>>0]&3))break;c[A>>2]=0;if(!(a[z>>0]&3))break;c[w>>2]=11;break}}while(0);j=j+20|0}while(j>>>0<p>>>0)}s=c[s+24>>2]|0}while((s|0)!=0)}s=c[u>>2]|0;if(s|0){p=s;do{s=c[p+16>>2]|0;j=a[p+7>>0]|0;A=s+((1<<(j&255))*20|0)|0;if(j<<24>>24!=31){j=s;do{s=j+4|0;do if(c[s>>2]|0){w=j+12|0;z=c[w>>2]|0;if(!(z&64))break;v=c[j+8>>2]|0;if((z&15|0)==4){if(!v)break;if(!(a[v+5>>0]&3))break;Jc(h,v);break}else{z=v+5|0;if(!(a[z>>0]&3))break;c[s>>2]=0;if(!(a[z>>0]&3))break;c[w>>2]=11;break}}while(0);j=j+20|0}while(j>>>0<A>>>0)}p=c[p+24>>2]|0}while((p|0)!=0)}kd(h,c[m>>2]|0,o);kd(h,c[u>>2]|0,q);q=h+48|0;a[q>>0]=a[q>>0]^3;q=y+(c[l>>2]|0)|0;c[k>>2]=(c[k>>2]|0)+q;n=((ld(b)|0)*5|0)+q|0;Ia=e;return n|0}case 2:{q=h+52|0;k=h+32|0;l=h+24|0;y=0;while(1){u=(c[q>>2]|0)+y|0;o=c[k>>2]|0;if((u|0)>=(o|0)){C=o;D=u;E=y;break}o=(c[l>>2]|0)+(u<<2)|0;u=c[g>>2]|0;m=d[u+48>>0]|0;p=m^3;A=(a[u+50>>0]|0)==2;u=A?255:184;j=A?64:m&3;m=A?64:0;A=c[o>>2]|0;a:do if(A|0){s=A;w=-3;z=o;while(1){if(!w)break a;w=w+-1|0;v=s+5|0;t=d[v>>0]|0;if(!((t^3)&p)){c[z>>2]=c[s>>2];md(b,s);F=z}else{if(m&t|0)break a;if((a[s+4>>0]|0)==8)nd(b,s);a[v>>0]=u&t|j;F=s}s=c[F>>2]|0;if(!s)break;else z=F}}while(0);y=y+1|0;if(y>>>0>=80){B=116;break}}if((B|0)==116){C=c[k>>2]|0;D=(c[q>>2]|0)+y|0;E=y}c[q>>2]=D;if((D|0)>=(C|0))a[i>>0]=3;n=E*5|0;Ia=e;return n|0}case 3:{E=h+68|0;C=c[E>>2]|0;if(!C){a[i>>0]=4;n=0;Ia=e;return n|0}D=d[h+48>>0]|0;q=D^3;y=(a[h+50>>0]|0)==2;k=y?255:184;B=y?64:D&3;D=y?64:0;y=c[C>>2]|0;b:do if(!y)G=0;else{F=y;l=80;j=C;while(1){if(!l){G=j;break b}l=l+-1|0;u=F+5|0;m=d[u>>0]|0;if(!((m^3)&q)){c[j>>2]=c[F>>2];md(b,F);H=j}else{if(D&m|0){G=0;break b}if((a[F+4>>0]|0)==8)nd(b,F);a[u>>0]=k&m|B;H=F}F=c[H>>2]|0;if(!F){G=0;break}else j=H}}while(0);c[E>>2]=G;n=400;Ia=e;return n|0}case 4:{G=h+64|0;E=c[G>>2]|0;if(E|0){H=d[h+48>>0]|0;B=H^3;k=(a[h+50>>0]|0)==2;D=k?255:184;q=k?64:H&3;H=k?64:0;k=c[E>>2]|0;c:do if(!k)I=0;else{C=k;y=80;j=E;while(1){if(!y){I=j;break c}y=y+-1|0;F=C+5|0;l=d[F>>0]|0;if(!((l^3)&B)){c[j>>2]=c[C>>2];md(b,C);J=j}else{if(H&l|0){I=0;break c}if((a[C+4>>0]|0)==8)nd(b,C);a[F>>0]=D&l|q;J=C}C=c[J>>2]|0;if(!C){I=0;break}else j=J}}while(0);c[G>>2]=I;n=400;Ia=e;return n|0}I=c[h+144>>2]|0;c[f>>2]=I;G=d[h+48>>0]|0;J=G^3;q=a[h+50>>0]|0;D=q<<24>>24==2;H=D?255:184;B=D?64:G&3;G=D?64:0;if(!I){K=q;L=h}else{h=I;I=1;q=f;while(1){if(!I)break;I=I+-1|0;f=h+5|0;D=d[f>>0]|0;if(!((D^3)&J)){c[q>>2]=c[h>>2];md(b,h);M=q}else{if(G&D|0)break;if((a[h+4>>0]|0)==8)nd(b,h);a[f>>0]=H&D|B;M=h}h=c[M>>2]|0;if(!h)break;else q=M}M=c[g>>2]|0;K=a[M+50>>0]|0;L=M}if(K<<24>>24!=1){K=(c[L+32>>2]|0)/2|0;if((c[L+28>>2]|0)>>>0<K>>>0){fd(b,K);N=c[g>>2]|0}else N=L;g=L+116|0;K=c[g>>2]|0;b=L+124|0;L=c[b>>2]|0;M=Pa[c[N>>2]&3](c[N+4>>2]|0,K,L,0)|0;q=N+12|0;c[q>>2]=(c[q>>2]|0)-((K|0)==0?0:L);c[g>>2]=M;c[b>>2]=0}a[i>>0]=5;n=5;Ia=e;return n|0}default:{n=0;Ia=e;return n|0}}return 0}function hd(b){b=b|0;var d=0;d=c[b+276>>2]|0;if(d|0?a[d+5>>0]&3:0)Jc(b,d);d=c[b+280>>2]|0;if(d|0?a[d+5>>0]&3:0)Jc(b,d);d=c[b+284>>2]|0;if(d|0?a[d+5>>0]&3:0)Jc(b,d);d=c[b+288>>2]|0;if(d|0?a[d+5>>0]&3:0)Jc(b,d);d=c[b+292>>2]|0;if(d|0?a[d+5>>0]&3:0)Jc(b,d);d=c[b+296>>2]|0;if(d|0?a[d+5>>0]&3:0)Jc(b,d);d=c[b+300>>2]|0;if(d|0?a[d+5>>0]&3:0)Jc(b,d);d=c[b+304>>2]|0;if(d|0?a[d+5>>0]&3:0)Jc(b,d);d=c[b+308>>2]|0;if(!d)return;if(!(a[d+5>>0]&3))return;Jc(b,d);return}function id(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;e=b+72|0;f=c[e>>2]|0;g=f+5|0;a[g>>0]=a[g>>0]|4;switch(a[f+4>>0]|0){case 5:{h=f+24|0;c[e>>2]=c[h>>2];i=c[f+8>>2]|0;do if(i){j=i+6|0;k=a[j>>0]|0;if(!(k&8)){l=c[b+168>>2]|0;m=(c[i+16>>2]|0)+(((1<<d[i+7>>0])+-1&c[l+8>>2])*20|0)|0;while(1){if((c[m+12>>2]|0)==68?(c[m+8>>2]|0)==(l|0):0){n=7;break}o=c[m+16>>2]|0;if(!o){p=2217396;break}else m=o}if((n|0)==7)p=m;if(!(c[p+4>>2]|0)){a[j>>0]=k|8;q=0}else q=p}else q=0;if(a[i+5>>0]&3)Jc(b,i);if(((q|0)!=0?(c[q+4>>2]&15|0)==4:0)?(l=(c[q>>2]|0)+16|0,o=nu(l,107)|0,r=(o|0)!=0,o=(nu(l,118)|0)!=0,r|o):0){l=f+5|0;a[l>>0]=a[l>>0]&-5;if(r)if(o){o=b+88|0;c[h>>2]=c[o>>2];c[o>>2]=f;break}else{jd(b,f)|0;break}o=c[f+16>>2]|0;r=a[f+7>>0]|0;l=o+((1<<(r&255))*20|0)|0;s=(c[f+28>>2]|0)>0&1;if(r<<24>>24==31)t=s;else{r=s;s=o;while(1){o=s+4|0;u=s+12|0;v=(c[u>>2]&64|0)==0;a:do if(!(c[o>>2]|0))if(!v?(a[(c[s+8>>2]|0)+5>>0]&3)!=0:0){c[u>>2]=11;w=r}else w=r;else{if(!v?(x=c[s+8>>2]|0,a[x+5>>0]&3):0)Jc(b,x);if(!r){x=c[o>>2]|0;do if(x&64|0){y=c[s>>2]|0;if((x&15|0)!=4)if(!(a[y+5>>0]&3))break;else{w=1;break a}if(y|0){if(!(a[y+5>>0]&3))break;Jc(b,y)}}while(0);w=0}else w=r}while(0);s=s+20|0;if(s>>>0>=l>>>0){t=w;break}else r=w}}if(!t){r=b+76|0;c[h>>2]=c[r>>2];c[r>>2]=f;break}else{r=b+80|0;c[h>>2]=c[r>>2];c[r>>2]=f;break}}else n=41}else n=41;while(0);if((n|0)==41){n=f+16|0;h=c[n>>2]|0;t=h+((1<<d[f+7>>0])*20|0)|0;w=f+28|0;q=c[w>>2]|0;if((q|0)>0){i=f+12|0;p=q;q=0;while(1){r=c[i>>2]|0;if((c[r+(q<<3)+4>>2]&64|0)!=0?(l=c[r+(q<<3)>>2]|0,(a[l+5>>0]&3)!=0):0){Jc(b,l);z=c[w>>2]|0}else z=p;q=q+1|0;if((q|0)>=(z|0))break;else p=z}A=c[n>>2]|0}else A=h;if(A>>>0<t>>>0){h=A;do{A=h+4|0;n=c[A>>2]|0;z=h+12|0;p=(c[z>>2]&64|0)==0;if(!n){if(!p?a[(c[h+8>>2]|0)+5>>0]&3:0)c[z>>2]=11}else{if(!p?(p=c[h+8>>2]|0,(a[p+5>>0]&3)!=0):0){Jc(b,p);B=c[A>>2]|0}else B=n;if(B&64|0?(n=c[h>>2]|0,a[n+5>>0]&3):0)Jc(b,n)}h=h+20|0}while(h>>>0<t>>>0)}}C=(c[f+28>>2]<<3)+32+(20<<d[f+7>>0])|0;break}case 6:{c[e>>2]=c[f+8>>2];t=c[f+12>>2]|0;if(t|0?a[t+5>>0]&3:0)Jc(b,t);t=f+6|0;h=a[t>>0]|0;if(!(h<<24>>24))C=16;else{B=h;h=0;while(1){n=c[f+16+(h<<2)>>2]|0;if((n|0)!=0?(a[n+5>>0]&3)!=0:0){Jc(b,n);D=a[t>>0]|0}else D=B;h=h+1|0;E=D&255;if(h>>>0>=E>>>0)break;else B=D}C=(E<<2)+16|0}break}case 38:{c[e>>2]=c[f+8>>2];E=f+6|0;D=a[E>>0]|0;if(!(D<<24>>24))C=16;else{B=D;D=0;while(1){if((c[f+16+(D<<3)+4>>2]&64|0)!=0?(h=c[f+16+(D<<3)>>2]|0,(a[h+5>>0]&3)!=0):0){Jc(b,h);F=a[E>>0]|0}else F=B;D=D+1|0;G=F&255;if(D>>>0>=G>>>0)break;else B=F}C=(G<<3)+16|0}break}case 8:{G=f+60|0;c[e>>2]=c[G>>2];F=b+76|0;c[G>>2]=c[F>>2];c[F>>2]=f;a[g>>0]=a[g>>0]&-5;g=f+28|0;F=c[g>>2]|0;if(!F)C=1;else{G=f+8|0;B=c[G>>2]|0;if(F>>>0<B>>>0){D=B;B=F;while(1){if((c[B+4>>2]&64|0)!=0?(E=c[B>>2]|0,(a[E+5>>0]&3)!=0):0){Jc(b,E);H=c[G>>2]|0}else H=D;E=B+8|0;if(E>>>0<H>>>0){D=H;B=E}else{I=E;break}}}else I=F;if((a[b+49>>0]|0)==1){F=(c[g>>2]|0)+(c[f+32>>2]<<3)|0;if(I>>>0<F>>>0){g=I;do{c[g+4>>2]=0;g=g+8|0}while(g>>>0<F>>>0);J=120}else J=120}else{F=f+72|0;g=c[f+16>>2]|0;if((g|0)==(F|0))J=120;else{I=F;F=0;do{F=F+1|0;I=c[I+12>>2]|0}while((I|0)!=(g|0));J=(F*40|0)+120|0}}C=(c[f+32>>2]<<3)+J|0}break}case 9:{c[e>>2]=c[f+72>>2];e=f+32|0;J=c[e>>2]|0;if(J|0?a[J+5>>0]&3:0)c[e>>2]=0;e=c[f+36>>2]|0;if(e|0?a[e+5>>0]&3:0)Jc(b,e);e=f+44|0;J=c[e>>2]|0;if((J|0)>0){F=f+8|0;g=J;J=0;while(1){I=c[F>>2]|0;if((c[I+(J<<3)+4>>2]&64|0)!=0?(B=c[I+(J<<3)>>2]|0,(a[B+5>>0]&3)!=0):0){Jc(b,B);K=c[e>>2]|0}else K=g;J=J+1|0;if((J|0)>=(K|0))break;else g=K}}K=f+40|0;g=c[K>>2]|0;if((g|0)>0){J=f+28|0;F=g;g=0;while(1){B=c[(c[J>>2]|0)+(g<<3)>>2]|0;if((B|0)!=0?(a[B+5>>0]&3)!=0:0){Jc(b,B);L=c[K>>2]|0}else L=F;g=g+1|0;if((g|0)>=(L|0))break;else F=L}}L=f+56|0;F=c[L>>2]|0;if((F|0)>0){g=f+16|0;J=F;B=0;while(1){I=c[(c[g>>2]|0)+(B<<2)>>2]|0;if((I|0)!=0?(a[I+5>>0]&3)!=0:0){Jc(b,I);M=c[L>>2]|0}else M=J;B=B+1|0;if((B|0)>=(M|0)){N=M;break}else J=M}}else N=F;F=f+60|0;M=c[F>>2]|0;if((M|0)>0){J=f+24|0;B=M;g=0;while(1){I=c[(c[J>>2]|0)+(g*12|0)>>2]|0;if((I|0)!=0?(a[I+5>>0]&3)!=0:0){Jc(b,I);O=c[F>>2]|0}else O=B;g=g+1|0;if((g|0)>=(O|0))break;else B=O}P=O;Q=c[L>>2]|0}else{P=M;Q=N}C=(P*12|0)+80+((c[f+48>>2]|0)+Q+(c[f+52>>2]|0)<<2)+((c[K>>2]|0)+(c[e>>2]|0)<<3)|0;break}default:return}e=b+16|0;c[e>>2]=(c[e>>2]|0)+C;return}function jd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;f=e+16|0;g=c[f>>2]|0;h=g+((1<<(d[e+7>>0]|0))*20|0)|0;i=e+28|0;j=c[i>>2]|0;if((j|0)>0){k=e+12|0;l=j;j=0;m=0;while(1){n=c[k>>2]|0;if((c[n+(j<<3)+4>>2]&64|0)!=0?(o=c[n+(j<<3)>>2]|0,(a[o+5>>0]&3)!=0):0){Jc(b,o);p=c[i>>2]|0;q=1}else{p=l;q=m}j=j+1|0;if((j|0)>=(p|0))break;else{l=p;m=q}}r=c[f>>2]|0;s=q}else{r=g;s=0}if(r>>>0<h>>>0){g=0;q=s;f=r;r=0;while(1){m=f+4|0;p=c[m>>2]|0;l=f+12|0;j=c[l>>2]|0;i=(j&64|0)==0;a:do if(!p)if(!i?(a[(c[f+8>>2]|0)+5>>0]&3)!=0:0){c[l>>2]=11;t=g;u=q;v=r}else{t=g;u=q;v=r}else{do if(i){w=p;x=19}else{k=c[f+8>>2]|0;if((j&15|0)==4){if(!k){w=p;x=19;break}if(!(a[k+5>>0]&3)){w=p;x=19;break}Jc(b,k);w=c[m>>2]|0;x=19;break}o=(p&64|0)==0;if(!(a[k+5>>0]&3))if(o){t=g;u=q;v=r;break a}else break;if(o){t=1;u=q;v=r;break a}t=1;u=q;v=(a[(c[f>>2]|0)+5>>0]&3)==0?r:1;break a}while(0);if((x|0)==19?(x=0,(w&64|0)==0):0){t=g;u=q;v=r;break}o=c[f>>2]|0;if(!(a[o+5>>0]&3)){t=g;u=q;v=r}else{Jc(b,o);t=g;u=1;v=r}}while(0);f=f+20|0;if(f>>>0>=h>>>0)break;else{g=t;q=u;r=v}}if(v|0){y=b+84|0;z=u;A=c[y>>2]|0;B=e+24|0;c[B>>2]=A;c[y>>2]=e;return z|0}if(!t)C=u;else{y=b+88|0;z=u;A=c[y>>2]|0;B=e+24|0;c[B>>2]=A;c[y>>2]=e;return z|0}}else C=s;y=b+76|0;z=C;A=c[y>>2]|0;B=e+24|0;c[B>>2]=A;c[y>>2]=e;return z|0}function kd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((e|0)==(f|0))return;g=e;do{e=g+16|0;h=c[e>>2]|0;i=h+((1<<(d[g+7>>0]|0))*20|0)|0;j=g+28|0;if((c[j>>2]|0)>0){k=g+12|0;l=0;do{m=c[k>>2]|0;if(qd(b,m+(l<<3)|0)|0)c[m+(l<<3)+4>>2]=0;l=l+1|0}while((l|0)<(c[j>>2]|0));n=c[e>>2]|0}else n=h;if(n>>>0<i>>>0){j=n;do{l=j+4|0;if(((c[l>>2]|0?qd(b,j)|0:0)?(c[l>>2]=0,l=j+12|0,c[l>>2]&64|0):0)?a[(c[j+8>>2]|0)+5>>0]&3:0)c[l>>2]=11;j=j+20|0}while(j>>>0<i>>>0)}g=c[g+24>>2]|0}while((g|0)!=(f|0));return}function ld(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;e=b+12|0;f=c[e>>2]|0;a[f+49>>0]=2;c[f+52>>2]=0;g=f+60|0;h=d[f+48>>0]|0;i=(a[f+50>>0]|0)==2;j=c[g>>2]|0;a:do if(!j){k=1;l=0}else{m=j;n=1;o=i?255:184;p=i?64:h&3;q=i?64:0;r=h;while(1){s=r^3;t=m;u=1;v=g;while(1){if(!u)break;u=u+-1|0;w=t+5|0;x=d[w>>0]|0;if(!((x^3)&s)){c[v>>2]=c[t>>2];md(b,t);y=v}else{if(q&x|0){k=n;l=0;break a}if((a[t+4>>0]|0)==8)nd(b,t);a[w>>0]=o&x|p;y=t}t=c[y>>2]|0;if(!t){k=n;l=0;break a}else v=y}if((v|0)!=(g|0)){k=n;l=v;break a}t=c[e>>2]|0;s=n+1|0;u=d[t+48>>0]|0;x=(a[t+50>>0]|0)==2;m=c[g>>2]|0;if(!m){k=s;l=0;break}else{n=s;o=x?255:184;p=x?64:u&3;q=x?64:0;r=u}}}while(0);c[f+68>>2]=l;l=f+56|0;g=0;b:while(1){g=g+1|0;y=c[e>>2]|0;h=d[y+48>>0]|0;i=h^3;j=(a[y+50>>0]|0)==2;y=j?255:184;r=j?64:h&3;h=j?64:0;j=c[l>>2]|0;if(!j){z=0;A=26;break}q=j;j=1;p=l;while(1){if(!j)break;j=j+-1|0;o=q+5|0;n=d[o>>0]|0;if(!((n^3)&i)){c[p>>2]=c[q>>2];md(b,q);B=p}else{if(h&n|0){z=0;A=26;break b}if((a[q+4>>0]|0)==8)nd(b,q);a[o>>0]=y&n|r;B=q}q=c[B>>2]|0;if(!q){z=0;A=26;break b}else p=B}if((p|0)!=(l|0)){z=p;A=26;break}}if((A|0)==26){c[f+64>>2]=z;return g+k|0}return 0}function md(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;do switch(a[e+4>>0]|0){case 9:{od(b,e);return}case 6:{f=(d[e+6>>0]<<2)+16|0;g=c[b+12>>2]|0;Pa[c[g>>2]&3](c[g+4>>2]|0,e,f,0)|0;h=g+12|0;c[h>>2]=(c[h>>2]|0)-f;return}case 38:{f=(d[e+6>>0]<<3)+16|0;h=c[b+12>>2]|0;Pa[c[h>>2]&3](c[h+4>>2]|0,e,f,0)|0;g=h+12|0;c[g>>2]=(c[g>>2]|0)-f;return}case 10:{f=e+12|0;if((c[e+8>>2]|0)!=(f|0)){g=e+16|0;c[(c[g>>2]|0)+12>>2]=c[f>>2];c[(c[f>>2]|0)+16>>2]=c[g>>2]}g=c[b+12>>2]|0;Pa[c[g>>2]&3](c[g+4>>2]|0,e,20,0)|0;f=g+12|0;c[f>>2]=(c[f>>2]|0)+-20;return}case 5:{f=c[e+16>>2]|0;if((f|0)==2217420)i=b+12|0;else{g=20<<d[e+7>>0];h=b+12|0;j=c[h>>2]|0;Pa[c[j>>2]&3](c[j+4>>2]|0,f,g,0)|0;k=j+12|0;c[k>>2]=(c[k>>2]|0)-((f|0)==0?0:g);i=h}h=c[e+12>>2]|0;g=c[e+28>>2]<<3;f=c[i>>2]|0;Pa[c[f>>2]&3](c[f+4>>2]|0,h,g,0)|0;k=f+12|0;c[k>>2]=(c[k>>2]|0)-((h|0)==0?0:g);g=c[i>>2]|0;Pa[c[g>>2]&3](c[g+4>>2]|0,e,32,0)|0;h=g+12|0;c[h>>2]=(c[h>>2]|0)+-32;return}case 8:{pd(b,e);return}case 7:{h=(c[e+16>>2]|0)+24|0;g=c[b+12>>2]|0;Pa[c[g>>2]&3](c[g+4>>2]|0,e,h,0)|0;k=g+12|0;c[k>>2]=(c[k>>2]|0)-h;return}case 4:{h=c[b+12>>2]|0;k=h+28|0;c[k>>2]=(c[k>>2]|0)+-1;l=h;break}case 20:{l=c[b+12>>2]|0;break}default:return}while(0);b=(c[e+12>>2]|0)+17|0;Pa[c[l>>2]&3](c[l+4>>2]|0,e,b,0)|0;e=l+12|0;c[e>>2]=(c[e>>2]|0)-b;return}function nd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=e+28|0;if(!(c[f>>2]|0))return;g=e+56|0;h=b+12|0;i=c[h>>2]|0;j=d[i+48>>0]|0;k=j^3;l=(a[i+50>>0]|0)==2;i=l?255:184;m=l?64:j&3;j=l?64:0;l=c[g>>2]|0;a:do if(l|0){n=l;o=-3;p=g;while(1){if(!o)break a;o=o+-1|0;q=n+5|0;r=d[q>>0]|0;if(!((r^3)&k)){c[p>>2]=c[n>>2];md(b,n);s=p}else{if(j&r|0)break a;if((a[n+4>>0]|0)==8)nd(b,n);a[q>>0]=i&r|m;s=n}n=c[s>>2]|0;if(!n)break;else p=s}}while(0);s=e+16|0;m=(c[s>>2]|0)+12|0;i=c[m>>2]|0;c[m>>2]=0;if(i|0){m=e+12|0;b=i;do{i=b;b=c[b+12>>2]|0;j=c[m>>2]|0;Pa[c[j>>2]&3](c[j+4>>2]|0,i,40,0)|0;k=j+12|0;c[k>>2]=(c[k>>2]|0)-((i|0)==0?0:40)}while((b|0)!=0)}if((a[(c[h>>2]|0)+50>>0]|0)==1)return;h=c[e+8>>2]|0;b=c[s>>2]|0;if(!b)t=h;else{s=b;b=h;while(1){h=c[s+4>>2]|0;m=b>>>0<h>>>0?h:b;s=c[s+8>>2]|0;if(!s){t=m;break}else b=m}}b=t-(c[f>>2]|0)|0;f=b>>3;t=f+11+((f+1|0)/8|0)|0;f=(t|0)<1e6?t:1e6;if((b|0)>7999992)return;if((f|0)>=(c[e+32>>2]|0))return;zc(e,f);return}function od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[b+12>>2]|0;e=c[b+48>>2]<<2;f=a+12|0;a=c[f>>2]|0;Pa[c[a>>2]&3](c[a+4>>2]|0,d,e,0)|0;g=a+12|0;c[g>>2]=(c[g>>2]|0)-((d|0)==0?0:e);e=c[b+16>>2]|0;d=c[b+56>>2]<<2;g=c[f>>2]|0;Pa[c[g>>2]&3](c[g+4>>2]|0,e,d,0)|0;a=g+12|0;c[a>>2]=(c[a>>2]|0)-((e|0)==0?0:d);d=c[b+8>>2]|0;e=c[b+44>>2]<<3;a=c[f>>2]|0;Pa[c[a>>2]&3](c[a+4>>2]|0,d,e,0)|0;g=a+12|0;c[g>>2]=(c[g>>2]|0)-((d|0)==0?0:e);e=c[b+20>>2]|0;d=c[b+52>>2]<<2;g=c[f>>2]|0;Pa[c[g>>2]&3](c[g+4>>2]|0,e,d,0)|0;a=g+12|0;c[a>>2]=(c[a>>2]|0)-((e|0)==0?0:d);d=c[b+24>>2]|0;e=(c[b+60>>2]|0)*12|0;a=c[f>>2]|0;Pa[c[a>>2]&3](c[a+4>>2]|0,d,e,0)|0;g=a+12|0;c[g>>2]=(c[g>>2]|0)-((d|0)==0?0:e);e=c[b+28>>2]|0;d=c[b+40>>2]<<3;g=c[f>>2]|0;Pa[c[g>>2]&3](c[g+4>>2]|0,e,d,0)|0;a=g+12|0;c[a>>2]=(c[a>>2]|0)-((e|0)==0?0:d);d=c[f>>2]|0;Pa[c[d>>2]&3](c[d+4>>2]|0,b,80,0)|0;f=d+12|0;c[f>>2]=(c[f>>2]|0)-((b|0)==0?0:80);return}function pd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=b+28|0;Sc(b,c[d>>2]|0);e=c[d>>2]|0;if(!e){f=a+12|0;g=c[f>>2]|0;h=c[g>>2]|0;i=g+4|0;j=c[i>>2]|0;Pa[h&3](j,b,120,0)|0;k=g+12|0;l=c[k>>2]|0;m=l+-120|0;c[k>>2]=m;return}c[b+16>>2]=b+72;n=b+84|0;o=c[n>>2]|0;c[n>>2]=0;n=b+12|0;if(!o)p=e;else{e=o;do{o=e;e=c[e+12>>2]|0;q=c[n>>2]|0;Pa[c[q>>2]&3](c[q+4>>2]|0,o,40,0)|0;r=q+12|0;c[r>>2]=(c[r>>2]|0)-((o|0)==0?0:40)}while((e|0)!=0);p=c[d>>2]|0}d=c[b+32>>2]<<3;e=c[n>>2]|0;Pa[c[e>>2]&3](c[e+4>>2]|0,p,d,0)|0;n=e+12|0;c[n>>2]=(c[n>>2]|0)-((p|0)==0?0:d);f=a+12|0;g=c[f>>2]|0;h=c[g>>2]|0;i=g+4|0;j=c[i>>2]|0;Pa[h&3](j,b,120,0)|0;k=g+12|0;l=c[k>>2]|0;m=l+-120|0;c[k>>2]=m;return}function qd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=c[d+4>>2]|0;do if(e&64){f=c[d>>2]|0;if((e&15|0)!=4){g=a[f+5>>0]&3;break}if((f|0)!=0?(a[f+5>>0]&3)!=0:0){Jc(b,f);g=0}else g=0}else g=0;while(0);return g|0}function rd(a){a=a|0;var b=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;b=c[a+28>>2]|0;if(b|0?(e=c[a+12>>2]|0,(c[e+(b+-1<<3)+4>>2]|0)==0):0){if(b>>>0<=1){f=0;return f|0}g=0;h=b;while(1){i=(h+g|0)>>>1;j=(c[e+(i+-1<<3)+4>>2]|0)==0;k=j?g:i;h=j?i:h;if((h-k|0)>>>0<=1){f=k;break}else g=k}return f|0}g=c[a+16>>2]|0;if((g|0)==2217420){f=b;return f|0}h=a+12|0;e=a+7|0;a=b;k=b+1|0;while(1){i=k+-1|0;a:do if(i>>>0<b>>>0)l=(c[h>>2]|0)+(i<<3)|0;else{j=k<<16;m=0-j|0;n=g+(((((j|0)<0?((j|0)==(m|0)?0:m):j)|0)%((1<<(d[e>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[n+12>>2]|0)==3?(c[n+8>>2]|0)==(j|0):0)break;m=c[n+16>>2]|0;if(!m){l=2217396;break a}else n=m}l=n}while(0);if(!(c[l+4>>2]|0))break;i=k<<1;if(i>>>0>2147483645){o=17;break}else{j=k;k=i;a=j}}if((o|0)==17){o=1;while(1){l=o+-1|0;b:do if(l>>>0<b>>>0)p=(c[h>>2]|0)+(l<<3)|0;else{j=o<<16;i=0-j|0;m=g+(((((j|0)<0?((j|0)==(i|0)?0:i):j)|0)%((1<<(d[e>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[m+12>>2]|0)==3?(c[m+8>>2]|0)==(j|0):0)break;i=c[m+16>>2]|0;if(!i){p=2217396;break b}else m=i}p=m}while(0);if(!(c[p+4>>2]|0)){f=l;break}else o=o+1|0}return f|0}if((k-a|0)>>>0<=1){f=a;return f|0}o=a;a=k;while(1){k=(a+o|0)>>>1;p=k+-1|0;c:do if(p>>>0<b>>>0)q=(c[h>>2]|0)+(p<<3)|0;else{j=k<<16;n=0-j|0;i=g+(((((j|0)<0?((j|0)==(n|0)?0:n):j)|0)%((1<<(d[e>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[i+12>>2]|0)==3?(c[i+8>>2]|0)==(j|0):0)break;n=c[i+16>>2]|0;if(!n){q=2217396;break c}else i=n}q=i}while(0);p=(c[q+4>>2]|0)==0;a=p?k:a;l=p?o:k;if((a-l|0)>>>0<=1){f=l;break}else o=l}return f|0}function sd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;do switch(a|0){case 0:{d=c+b|0;break}case 1:{d=b-c|0;break}case 2:{d=rl(b,c)|0;break}case 3:{d=sl(b,c)|0;break}case 4:{d=tl(b,c)|0;break}case 5:{d=ul(b,c)|0;break}case 6:{d=c&b;break}case 7:{d=c|b;break}case 8:{d=c^b;break}case 9:{d=El(b,c)|0;break}case 10:{d=Fl(b,c)|0;break}case 11:{d=Dl(b,c)|0;break}case 12:{d=Bl(b,c)|0;break}case 13:{d=Cl(b,c)|0;break}case 14:{d=~b;break}case 15:{d=(sl(b,c)|0)&-65536;break}case 16:{d=hl(b)|0;break}case 17:{d=gl(b)|0;break}case 18:{d=fl(b)|0;break}case 19:{d=0-b|0;break}default:d=0}while(0);return d|0}function td(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=(ud(b,d)|0)==0;dd(a,e?b:c,47634)}function ud(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Ia;Ia=Ia+16|0;e=d;f=c[a+4>>2]|0;if((f|0)!=3)if((f&15|0)==4?(f=c[a>>2]|0,(Wc(f+16|0,c[f+12>>2]|0,e)|0)!=0):0){c[b>>2]=c[e>>2];c[b+4>>2]=3;g=b}else g=0;else g=a;Ia=d;return g|0}function vd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;switch(c[e+4>>2]&63){case 3:{f=c[e>>2]|0;g=0-f|0;h=(c[b+16>>2]|0)+(((((f|0)<0?((f|0)==(g|0)?0:g):f)|0)%((1<<d[b+7>>0])+-1|1|0)|0)*20|0)|0;return h|0}case 20:{f=c[e>>2]|0;g=f+6|0;if(!(a[g>>0]|0)){i=f+16|0;j=c[f+12>>2]|0;k=f+8|0;l=c[k>>2]^j;m=j>>>5;if(m>>>0<j>>>0){n=~m;o=l;p=j;while(1){j=(o<<5)+(o>>>2)+(d[i+(p+-1)>>0]|0)^o;p=p+n|0;if(p>>>0<=m>>>0){q=j;break}else o=j}}else q=l;c[k>>2]=q;a[g>>0]=1;r=c[e>>2]|0}else r=f;h=(c[b+16>>2]|0)+(((1<<d[b+7>>0])+-1&c[r+8>>2])*20|0)|0;return h|0}case 4:{h=(c[b+16>>2]|0)+(((1<<d[b+7>>0])+-1&c[(c[e>>2]|0)+8>>2])*20|0)|0;return h|0}case 1:{h=(c[b+16>>2]|0)+(((1<<d[b+7>>0])+-1&c[e>>2])*20|0)|0;return h|0}case 2:{h=(c[b+16>>2]|0)+((((c[e>>2]|0)>>>0)%(((1<<d[b+7>>0])+-1|1)>>>0)|0)*20|0)|0;return h|0}case 54:case 22:{h=(c[b+16>>2]|0)+((((c[e>>2]|0)>>>0)%(((1<<d[b+7>>0])+-1|1)>>>0)|0)*20|0)|0;return h|0}default:{h=(c[b+16>>2]|0)+((((c[e>>2]|0)>>>0)%(((1<<d[b+7>>0])+-1|1)>>>0)|0)*20|0)|0;return h|0}}return 0}function wd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=d;d=Bc(a,b,f)|0;Ia=e;return d|0}function xd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(e>>>0<41){f=bd(b,d,e)|0;return f|0}if((e+1|0)>>>0>4294967277)Lc(b);g=c[b+12>>2]|0;h=c[g+44>>2]|0;i=e+17|0;j=g+4|0;k=Pa[c[g>>2]&3](c[j>>2]|0,0,4,i)|0;if((i|0)!=0&(k|0)==0){if(!(a[g+51>>0]|0))yc(b,4);Kc(b,1);l=Pa[c[g>>2]&3](c[j>>2]|0,0,4,i)|0;if(!l)yc(b,4);else m=l}else m=k;k=g+12|0;c[k>>2]=(c[k>>2]|0)+i;i=g+56|0;a[m+5>>0]=a[g+48>>0]&3;a[m+4>>0]=20;c[m>>2]=c[i>>2];c[i>>2]=m;c[m+12>>2]=e;c[m+8>>2]=h;a[m+6>>0]=0;h=m+16|0;Vv(h|0,d|0,e|0)|0;a[h+e>>0]=0;f=m;return f|0}function yd(a){a=a|0;return (c[a+8>>2]|0)-((c[c[a+16>>2]>>2]|0)+8)>>3|0}function zd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if((b|0)<=-1){d=a+8|0;c[d>>2]=(c[d>>2]|0)+(b+1<<3);return}d=c[c[a+16>>2]>>2]|0;e=a+8|0;a=c[e>>2]|0;f=d+8+(b<<3)|0;if(a>>>0<f>>>0){g=((d+(b<<3)+4+(3-a)|0)>>>3)+1|0;b=a;do{c[b+4>>2]=0;b=b+8|0}while(b>>>0<f>>>0);c[e>>2]=a+(g<<3)}c[e>>2]=f;return}function Ad(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=b+16|0;h=c[g>>2]|0;do if((e|0)<=0){if((e|0)>=-1000999){i=(c[b+8>>2]|0)+(e<<3)|0;break}if((e|0)==-1001e3){i=(c[b+12>>2]|0)+36|0;break}j=-1001e3-e|0;k=c[h>>2]|0;if((c[k+4>>2]|32|0)==54)i=2217396;else{l=c[k>>2]|0;i=(j|0)>(d[l+6>>0]|0|0)?2217396:l+16+(j+-1<<3)|0}}else{j=(c[h>>2]|0)+(e<<3)|0;i=j>>>0<(c[b+8>>2]|0)>>>0?j:2217396}while(0);do if((f|0)<=0){if((f|0)>=-1000999){m=(c[b+8>>2]|0)+(f<<3)|0;break}if((f|0)==-1001e3){m=(c[b+12>>2]|0)+36|0;break}e=-1001e3-f|0;j=c[h>>2]|0;if((c[j+4>>2]|32|0)==54)m=2217396;else{l=c[j>>2]|0;m=(e|0)>(d[l+6>>0]|0|0)?2217396:l+16+(e+-1<<3)|0}}else{e=(c[h>>2]|0)+(f<<3)|0;m=e>>>0<(c[b+8>>2]|0)>>>0?e:2217396}while(0);c[m>>2]=c[i>>2];h=i+4|0;c[m+4>>2]=c[h>>2];if((f|0)>=-1001e3)return;if(!(c[h>>2]&64))return;h=c[i>>2]|0;if(!(a[h+5>>0]&3))return;i=(c[c[c[g>>2]>>2]>>2]|0)+5|0;g=a[i>>0]|0;if(!(g&4))return;f=c[b+12>>2]|0;if((d[f+49>>0]|0)<2){Jc(f,h);return}else{a[i>>0]=a[f+48>>0]&3|g&-72;return}}function Bd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;e=c[a+16>>2]|0;do if((b|0)<=0){if((b|0)>=-1000999){f=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){f=(c[a+12>>2]|0)+36|0;break}g=-1001e3-b|0;h=c[e>>2]|0;if((c[h+4>>2]|32|0)==54)f=2217396;else{i=c[h>>2]|0;f=(g|0)>(d[i+6>>0]|0|0)?2217396:i+16+(g+-1<<3)|0}}else{g=(c[e>>2]|0)+(b<<3)|0;f=g>>>0<(c[a+8>>2]|0)>>>0?g:2217396}while(0);b=a+8|0;a=c[b>>2]|0;c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[b>>2]=(c[b>>2]|0)+8;return}function Cd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=c[a+16>>2]|0;do if((b|0)>0){f=(c[e>>2]|0)+(b<<3)|0;if(f>>>0<(c[a+8>>2]|0)>>>0)g=f;else{h=-1;return h|0}}else{if((b|0)>=-1000999){g=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){g=(c[a+12>>2]|0)+36|0;break}f=-1001e3-b|0;i=c[e>>2]|0;if((c[i+4>>2]|32|0)==54){h=-1;return h|0}j=c[i>>2]|0;if((f|0)>(d[j+6>>0]|0|0)){h=-1;return h|0}else g=j+16+(f+-1<<3)|0}while(0);if((g|0)==2217396){h=-1;return h|0}h=c[g+4>>2]&15;return h|0}function Dd(a,b){a=a|0;b=b|0;return c[16+(b+1<<2)>>2]|0}function Ed(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=Ia;Ia=Ia+16|0;f=e;g=c[a+16>>2]|0;do if((b|0)<=0){if((b|0)>=-1000999){h=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){h=(c[a+12>>2]|0)+36|0;break}i=-1001e3-b|0;j=c[g>>2]|0;if((c[j+4>>2]|32|0)==54)h=2217396;else{k=c[j>>2]|0;h=(i|0)>(d[k+6>>0]|0|0)?2217396:k+16+(i+-1<<3)|0}}else{i=(c[g>>2]|0)+(b<<3)|0;h=i>>>0<(c[a+8>>2]|0)>>>0?i:2217396}while(0);a=c[h+4>>2]|0;if((a|0)==3){l=1;Ia=e;return l|0}if((a&15|0)==4){a=c[h>>2]|0;m=(Wc(a+16|0,c[a+12>>2]|0,f)|0)!=0&1}else m=0;l=m;Ia=e;return l|0}function Fd(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=Ia;Ia=Ia+16|0;g=f+8|0;h=f;i=c[a+16>>2]|0;do if((b|0)<=0){if((b|0)>=-1000999){j=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){j=(c[a+12>>2]|0)+36|0;break}k=-1001e3-b|0;l=c[i>>2]|0;if((c[l+4>>2]|32|0)==54)j=2217396;else{m=c[l>>2]|0;j=(k|0)>(d[m+6>>0]|0|0)?2217396:m+16+(k+-1<<3)|0}}else{k=(c[i>>2]|0)+(b<<3)|0;j=k>>>0<(c[a+8>>2]|0)>>>0?k:2217396}while(0);a=c[j+4>>2]|0;do if((a|0)==3)n=j;else{if((a&15|0)==4?(b=c[j>>2]|0,Wc(b+16|0,c[b+12>>2]|0,g)|0):0){c[h>>2]=c[g>>2];c[h+4>>2]=3;n=h;break}if(!e){o=0;Ia=f;return o|0}c[e>>2]=0;o=0;Ia=f;return o|0}while(0);if(e|0)c[e>>2]=1;o=c[n>>2]|0;Ia=f;return o|0}function Gd(a){a=a|0;var b=0,d=0,e=0,f=0;b=Ia;Ia=Ia+16|0;d=b;e=c[a+4>>2]|0;if((e|0)==3){f=c[a>>2]|0;Ia=b;return f|0}if((e&15|0)==4?(e=c[a>>2]|0,Wc(e+16|0,c[e+12>>2]|0,d)|0):0){f=c[d>>2]|0;Ia=b;return f|0}f=0;Ia=b;return f|0}function Hd(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Ia;Ia=Ia+16|0;g=f;h=c[a+16>>2]|0;do if((b|0)<=0){if((b|0)>=-1000999){i=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){i=(c[a+12>>2]|0)+36|0;break}j=-1001e3-b|0;k=c[h>>2]|0;if((c[k+4>>2]|32|0)==54)i=2217396;else{l=c[k>>2]|0;i=(j|0)>(d[l+6>>0]|0|0)?2217396:l+16+(j+-1<<3)|0}}else{j=(c[h>>2]|0)+(b<<3)|0;i=j>>>0<(c[a+8>>2]|0)>>>0?j:2217396}while(0);a=c[i+4>>2]|0;do if((a|0)==3)m=c[i>>2]|0;else{if((a&15|0)==4?(b=c[i>>2]|0,Wc(b+16|0,c[b+12>>2]|0,g)|0):0){m=c[g>>2]|0;break}if(!e){n=0;Ia=f;return n|0}c[e>>2]=0;n=0;Ia=f;return n|0}while(0);g=m>>16;if(!e){n=g;Ia=f;return n|0}c[e>>2]=1;n=g;Ia=f;return n|0}function Id(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=c[a+16>>2]|0;do if((b|0)<=0){if((b|0)>=-1000999){f=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){f=(c[a+12>>2]|0)+36|0;break}g=-1001e3-b|0;h=c[e>>2]|0;if((c[h+4>>2]|32|0)==54)f=2217396;else{i=c[h>>2]|0;f=(g|0)>(d[i+6>>0]|0|0)?2217396:i+16+(g+-1<<3)|0}}else{g=(c[e>>2]|0)+(b<<3)|0;f=g>>>0<(c[a+8>>2]|0)>>>0?g:2217396}while(0);a=c[f+4>>2]|0;switch(a|0){case 1:{j=(c[f>>2]|0)!=0&1;return j|0}case 0:{j=a;return j|0}default:{j=1;return j|0}}return 0}function Jd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=b+16|0;h=c[g>>2]|0;i=(e|0)>0;do if(!i){if((e|0)>=-1000999){j=(c[b+8>>2]|0)+(e<<3)|0;break}if((e|0)==-1001e3){j=(c[b+12>>2]|0)+36|0;break}k=-1001e3-e|0;l=c[h>>2]|0;if((c[l+4>>2]|32|0)==54)j=2217396;else{m=c[l>>2]|0;j=(k|0)>(d[m+6>>0]|0)?2217396:m+16+(k+-1<<3)|0}}else{k=(c[h>>2]|0)+(e<<3)|0;j=k>>>0<(c[b+8>>2]|0)>>>0?k:2217396}while(0);do if((c[j+4>>2]&15|0)!=4){if(!(Kd(b,j)|0)){if(!f){n=0;return n|0}c[f>>2]=0;n=0;return n|0}h=b+12|0;k=c[h>>2]|0;m=k+12|0;l=c[m>>2]|0;do if((l|0)>0)if(!(a[k+51>>0]|0)){o=k+8|0;c[o>>2]=l+1600+(c[o>>2]|0);c[m>>2]=-1600;break}else{Oc(b);break}while(0);m=c[g>>2]|0;if(i){l=(c[m>>2]|0)+(e<<3)|0;p=l>>>0<(c[b+8>>2]|0)>>>0?l:2217396;break}if((e|0)>=-1000999){p=(c[b+8>>2]|0)+(e<<3)|0;break}if((e|0)==-1001e3){p=(c[h>>2]|0)+36|0;break}l=-1001e3-e|0;k=c[m>>2]|0;if((c[k+4>>2]|32|0)==54)p=2217396;else{m=c[k>>2]|0;p=(l|0)>(d[m+6>>0]|0)?2217396:m+16+(l+-1<<3)|0}}else p=j;while(0);if(f|0)c[f>>2]=c[(c[p>>2]|0)+12>>2];n=(c[p>>2]|0)+16|0;return n|0}function Kd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=Ia;Ia=Ia+32|0;f=e;g=d+4|0;if((c[g>>2]|0)!=3){h=0;Ia=e;return h|0}i=ad(f,c[d>>2]|0)|0;if(i>>>0<41)j=bd(b,f,i)|0;else{if((i+1|0)>>>0>4294967277)Lc(b);k=c[b+12>>2]|0;l=c[k+44>>2]|0;m=i+17|0;n=k+4|0;o=Pa[c[k>>2]&3](c[n>>2]|0,0,4,m)|0;if((m|0)!=0&(o|0)==0){if(!(a[k+51>>0]|0))yc(b,4);Kc(b,1);p=Pa[c[k>>2]&3](c[n>>2]|0,0,4,m)|0;if(!p)yc(b,4);else q=p}else q=o;o=k+12|0;c[o>>2]=(c[o>>2]|0)+m;m=k+56|0;a[q+5>>0]=a[k+48>>0]&3;a[q+4>>0]=20;c[q>>2]=c[m>>2];c[m>>2]=q;c[q+12>>2]=i;c[q+8>>2]=l;a[q+6>>0]=0;l=q+16|0;Vv(l|0,f|0,i|0)|0;a[l+i>>0]=0;j=q}c[d>>2]=j;c[g>>2]=(a[j+4>>0]|64)&255;h=1;Ia=e;return h|0}function Ld(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=c[a+16>>2]|0;do if((b|0)<=0){if((b|0)>=-1000999){f=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){f=(c[a+12>>2]|0)+36|0;break}g=-1001e3-b|0;h=c[e>>2]|0;if((c[h+4>>2]|32|0)==54)f=2217396;else{i=c[h>>2]|0;f=(g|0)>(d[i+6>>0]|0|0)?2217396:i+16+(g+-1<<3)|0}}else{g=(c[e>>2]|0)+(b<<3)|0;f=g>>>0<(c[a+8>>2]|0)>>>0?g:2217396}while(0);switch(c[f+4>>2]&15){case 4:{j=c[(c[f>>2]|0)+12>>2]|0;return j|0}case 7:{j=c[(c[f>>2]|0)+16>>2]|0;return j|0}case 5:{j=rd(c[f>>2]|0)|0;return j|0}default:{j=0;return j|0}}return 0}function Md(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[a+16>>2]|0;f=(b|0)>0;do if(!f){if((b|0)>=-1000999){g=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){g=(c[a+12>>2]|0)+36|0;break}h=-1001e3-b|0;i=c[e>>2]|0;if((c[i+4>>2]|32|0)==54)g=2217396;else{j=c[i>>2]|0;g=(h|0)>(d[j+6>>0]|0|0)?2217396:j+16+(h+-1<<3)|0}}else{h=(c[e>>2]|0)+(b<<3)|0;g=h>>>0<(c[a+8>>2]|0)>>>0?h:2217396}while(0);switch(c[g+4>>2]&63){case 5:{k=c[g>>2]|0;return k|0}case 6:{k=c[g>>2]|0;return k|0}case 38:{k=c[g>>2]|0;return k|0}case 54:case 22:{k=c[g>>2]|0;return k|0}case 8:{k=c[g>>2]|0;return k|0}case 2:case 7:{do if(!f){if((b|0)>=-1000999){l=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){l=(c[a+12>>2]|0)+36|0;break}g=-1001e3-b|0;h=c[e>>2]|0;if((c[h+4>>2]|32|0)==54)l=2217396;else{j=c[h>>2]|0;l=(g|0)>(d[j+6>>0]|0|0)?2217396:j+16+(g+-1<<3)|0}}else{g=(c[e>>2]|0)+(b<<3)|0;l=g>>>0<(c[a+8>>2]|0)>>>0?g:2217396}while(0);switch(c[l+4>>2]&15){case 7:{k=(c[l>>2]|0)+24|0;return k|0}case 2:{k=c[l>>2]|0;return k|0}default:{k=0;return k|0}}break}default:{k=0;return k|0}}return 0}function Nd(a){a=a|0;var b=0;b=a+8|0;a=c[b>>2]|0;c[a+4>>2]=0;c[b>>2]=a+8;return}function Od(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[d>>2]|0;c[a>>2]=b;c[a+4>>2]=3;c[d>>2]=(c[d>>2]|0)+8;return}function Pd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=c[b+12>>2]|0;g=f+12|0;h=c[g>>2]|0;do if((h|0)>0)if(!(a[f+51>>0]|0)){i=f+8|0;c[i>>2]=h+1600+(c[i>>2]|0);c[g>>2]=-1600;break}else{Oc(b);break}while(0);g=xd(b,d,e)|0;e=b+8|0;b=c[e>>2]|0;c[b>>2]=g;c[b+4>>2]=(a[g+4>>0]|64)&255;c[e>>2]=(c[e>>2]|0)+8;return g+16|0}function Qd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(!d){e=b+8|0;f=c[e>>2]|0;c[f+4>>2]=0;c[e>>2]=f+8;g=0;return g|0}f=c[b+12>>2]|0;e=f+12|0;h=c[e>>2]|0;do if((h|0)>0)if(!(a[f+51>>0]|0)){i=f+8|0;c[i>>2]=h+1600+(c[i>>2]|0);c[e>>2]=-1600;break}else{Oc(b);break}while(0);e=xd(b,d,bu(d)|0)|0;d=b+8|0;b=c[d>>2]|0;c[b>>2]=e;c[b+4>>2]=(a[e+4>>0]|64)&255;c[d>>2]=(c[d>>2]|0)+8;g=e+16|0;return g|0}function Rd(a,b){a=a|0;b=b|0;return xd(a,b,bu(b)|0)|0}function Sd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=c[b+12>>2]|0;g=f+12|0;h=c[g>>2]|0;do if((h|0)>0)if(!(a[f+51>>0]|0)){i=f+8|0;c[i>>2]=h+1600+(c[i>>2]|0);c[g>>2]=-1600;break}else{Oc(b);break}while(0);return Bc(b,d,e)|0}function Td(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=Ia;Ia=Ia+16|0;g=f;h=c[b+12>>2]|0;i=h+12|0;j=c[i>>2]|0;do if((j|0)>0)if(!(a[h+51>>0]|0)){k=h+8|0;c[k>>2]=j+1600+(c[k>>2]|0);c[i>>2]=-1600;break}else{Oc(b);break}while(0);c[g>>2]=e;e=Bc(b,d,g)|0;Ia=f;return e|0}function Ud(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;a:do if((e|0)<0){switch(e|0){case -3333:break;default:break a}f=b+8|0;g=c[f>>2]|0;c[g>>2]=d;h=54;i=g;j=f;k=i+4|0;c[k>>2]=h;l=c[j>>2]|0;m=l+8|0;c[j>>2]=m;return}else{switch(e|0){case 0:break;default:break a}f=b+8|0;g=c[f>>2]|0;c[g>>2]=d;h=22;i=g;j=f;k=i+4|0;c[k>>2]=h;l=c[j>>2]|0;m=l+8|0;c[j>>2]=m;return}while(0);f=b+12|0;g=c[f>>2]|0;n=g+12|0;o=c[n>>2]|0;if((o|0)<=0){p=(e<<3)+16|0;q=g+4|0;r=Pa[c[g>>2]&3](c[q>>2]|0,0,6,p)|0;if((p|0)!=0&(r|0)==0){if(!(a[g+51>>0]|0))yc(b,4);Kc(b,1);s=Pa[c[g>>2]&3](c[q>>2]|0,0,6,p)|0;if(!s)yc(b,4);else{t=g;u=n;v=p;w=s}}else{t=g;u=n;v=p;w=r}}else{if(!(a[g+51>>0]|0)){r=g+8|0;c[r>>2]=o+1600+(c[r>>2]|0);c[n>>2]=-1600;x=g}else{Oc(b);x=c[f>>2]|0}f=(e<<3)+16|0;g=x+4|0;n=Pa[c[x>>2]&3](c[g>>2]|0,0,6,f)|0;if((f|0)!=0&(n|0)==0){if(!(a[x+51>>0]|0))yc(b,4);Kc(b,1);r=Pa[c[x>>2]&3](c[g>>2]|0,0,6,f)|0;if(!r)yc(b,4);else y=r}else y=n;t=x;u=x+12|0;v=f;w=y}c[u>>2]=(c[u>>2]|0)+v;v=t+56|0;a[w+5>>0]=a[t+48>>0]&3;a[w+4>>0]=38;c[w>>2]=c[v>>2];c[v>>2]=w;a[w+6>>0]=e;c[w+12>>2]=d;d=b+8|0;b=(c[d>>2]|0)+(0-e<<3)|0;c[d>>2]=b;v=b;b=e;do{b=b+-1|0;c[w+16+(b<<3)>>2]=c[v+(b<<3)>>2];c[w+16+(b<<3)+4>>2]=c[v+(b<<3)+4>>2];v=c[d>>2]|0}while((b|0)!=0);c[v>>2]=w;h=102;i=v;j=d;k=i+4|0;c[k>>2]=h;l=c[j>>2]|0;m=l+8|0;c[j>>2]=m;return}function Vd(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[d>>2]|0;c[a>>2]=(b|0)!=0&1;c[a+4>>2]=1;c[d>>2]=(c[d>>2]|0)+8;return}function Wd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=c[(c[b+12>>2]|0)+36>>2]|0;a:do if((c[f+28>>2]|0)>>>0>1)g=(c[f+12>>2]|0)+8|0;else{h=(c[f+16>>2]|0)+((131072%((1<<(d[f+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[h+12>>2]|0)==3?(c[h+8>>2]|0)==131072:0)break;i=c[h+16>>2]|0;if(!i){g=2217396;break a}else h=i}g=h}while(0);f=b+8|0;i=c[f>>2]|0;c[f>>2]=i+8;j=xd(b,e,bu(e)|0)|0;c[i>>2]=j;c[i+4>>2]=(a[j+4>>0]|64)&255;j=(c[f>>2]|0)+-8|0;Hc(b,g,j,j);return}function Xd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;e=c[a+16>>2]|0;do if((b|0)<=0){if((b|0)>=-1000999){f=(c[a+8>>2]|0)+(b<<3)|0;break}if((b|0)==-1001e3){f=(c[a+12>>2]|0)+36|0;break}g=-1001e3-b|0;h=c[e>>2]|0;if((c[h+4>>2]|32|0)==54)f=2217396;else{i=c[h>>2]|0;f=(g|0)>(d[i+6>>0]|0|0)?2217396:i+16+(g+-1<<3)|0}}else{g=(c[e>>2]|0)+(b<<3)|0;f=g>>>0<(c[a+8>>2]|0)>>>0?g:2217396}while(0);b=(c[a+8>>2]|0)+-8|0;Hc(a,f,b,b);return}function Yd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=b+12|0;g=c[f>>2]|0;h=g+12|0;i=c[h>>2]|0;do if((i|0)>0)if(!(a[g+51>>0]|0)){j=g+8|0;c[j>>2]=i+1600+(c[j>>2]|0);c[h>>2]=-1600;k=g;break}else{Oc(b);k=c[f>>2]|0;break}else k=g;while(0);g=k+4|0;f=Pa[c[k>>2]&3](c[g>>2]|0,0,5,32)|0;if(!f){if(!(a[k+51>>0]|0))yc(b,4);Kc(b,1);h=Pa[c[k>>2]&3](c[g>>2]|0,0,5,32)|0;if(!h)yc(b,4);else l=h}else l=f;f=k+12|0;c[f>>2]=(c[f>>2]|0)+32;f=k+56|0;a[l+5>>0]=a[k+48>>0]&3;a[l+4>>0]=5;c[l>>2]=c[f>>2];c[f>>2]=l;c[l+8>>2]=0;a[l+6>>0]=-1;c[l+12>>2]=0;c[l+28>>2]=0;c[l+16>>2]=2217420;a[l+7>>0]=0;c[l+20>>2]=2217420;f=b+8|0;k=c[f>>2]|0;c[k>>2]=l;c[k+4>>2]=69;c[f>>2]=(c[f>>2]|0)+8;if(!((d|0)>0|(e|0)>0))return;Xc(b,l,d,e);return}function Zd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=c[(c[b+12>>2]|0)+36>>2]|0;a:do if((c[f+28>>2]|0)>>>0>1)g=(c[f+12>>2]|0)+8|0;else{h=(c[f+16>>2]|0)+((131072%((1<<(d[f+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[h+12>>2]|0)==3?(c[h+8>>2]|0)==131072:0)break;i=c[h+16>>2]|0;if(!i){g=2217396;break a}else h=i}g=h}while(0);f=b+8|0;i=c[f>>2]|0;c[f>>2]=i+8;j=xd(b,e,bu(e)|0)|0;c[i>>2]=j;c[i+4>>2]=(a[j+4>>0]|64)&255;j=c[f>>2]|0;Ic(b,g,j+-8|0,j+-16|0);c[f>>2]=(c[f>>2]|0)+-16;return}function _d(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=Ia;Ia=Ia+16|0;h=g;i=c[b+16>>2]|0;do if((e|0)<=0){if((e|0)>=-1000999){j=(c[b+8>>2]|0)+(e<<3)|0;break}if((e|0)==-1001e3){j=(c[b+12>>2]|0)+36|0;break}k=-1001e3-e|0;l=c[i>>2]|0;if((c[l+4>>2]|32|0)==54)j=2217396;else{m=c[l>>2]|0;j=(k|0)>(d[m+6>>0]|0|0)?2217396:m+16+(k+-1<<3)|0}}else{k=(c[i>>2]|0)+(e<<3)|0;j=k>>>0<(c[b+8>>2]|0)>>>0?k:2217396}while(0);e=c[j>>2]|0;i=b+8|0;k=c[i>>2]|0;m=k+-8|0;l=f+-1|0;a:do if(l>>>0<(c[e+28>>2]|0)>>>0){n=(c[e+12>>2]|0)+(l<<3)|0;o=16}else{p=f<<16;q=0-p|0;r=(c[e+16>>2]|0)+(((((p|0)<0?((p|0)==(q|0)?0:q):p)|0)%((1<<(d[e+7>>0]|0))+-1|1|0)|0)*20|0)|0;while(1){if((c[r+12>>2]|0)==3?(c[r+8>>2]|0)==(p|0):0)break;q=c[r+16>>2]|0;if(!q){s=p;o=18;break a}else r=q}n=r;o=16}while(0);if((o|0)==16)if((n|0)==2217396){s=f<<16;o=18}else t=n;if((o|0)==18){c[h>>2]=s;c[h+4>>2]=3;t=Nc(b,e,h)|0}c[t>>2]=c[m>>2];c[t+4>>2]=c[k+-4>>2];k=c[i>>2]|0;if(!(c[k+-4>>2]&64)){u=k;v=u+-8|0;c[i>>2]=v;Ia=g;return}if(!(a[(c[k+-8>>2]|0)+5>>0]&3)){u=k;v=u+-8|0;c[i>>2]=v;Ia=g;return}t=c[j>>2]|0;j=t+5|0;m=a[j>>0]|0;if(!(m&4)){u=k;v=u+-8|0;c[i>>2]=v;Ia=g;return}k=c[b+12>>2]|0;a[j>>0]=m&-5;m=k+76|0;c[t+24>>2]=c[m>>2];c[m>>2]=t;u=c[i>>2]|0;v=u+-8|0;c[i>>2]=v;Ia=g;return}function $d(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=c[b+16>>2]|0;do if((e|0)<=0){if((e|0)>=-1000999){g=(c[b+8>>2]|0)+(e<<3)|0;break}if((e|0)==-1001e3){g=(c[b+12>>2]|0)+36|0;break}h=-1001e3-e|0;i=c[f>>2]|0;if((c[i+4>>2]|32|0)==54)g=2217396;else{j=c[i>>2]|0;g=(h|0)>(d[j+6>>0]|0|0)?2217396:j+16+(h+-1<<3)|0}}else{h=(c[f>>2]|0)+(e<<3)|0;g=h>>>0<(c[b+8>>2]|0)>>>0?h:2217396}while(0);e=b+8|0;f=c[e>>2]|0;if(!(c[f+-4>>2]|0)){k=0;l=0}else{h=c[f+-8>>2]|0;k=h;l=h}h=c[g+4>>2]|0;switch(h&15){case 5:{c[(c[g>>2]|0)+8>>2]=k;if(!l){m=c[e>>2]|0;n=m+-8|0;c[e>>2]=n;return 1}if(a[l+5>>0]&3?(f=c[g>>2]|0,j=f+5|0,i=a[j>>0]|0,i&4):0){o=c[b+12>>2]|0;a[j>>0]=i&-5;i=o+76|0;c[f+24>>2]=c[i>>2];c[i>>2]=f}ae(b,c[g>>2]|0,l);m=c[e>>2]|0;n=m+-8|0;c[e>>2]=n;return 1}case 7:{c[(c[g>>2]|0)+8>>2]=l;if(!l){m=c[e>>2]|0;n=m+-8|0;c[e>>2]=n;return 1}do if(a[k+5>>0]&3?(f=(c[g>>2]|0)+5|0,i=a[f>>0]|0,i&4):0){o=c[b+12>>2]|0;if((d[o+49>>0]|0)<2){Jc(o,k);break}else{a[f>>0]=a[o+48>>0]&3|i&-72;break}}while(0);ae(b,c[g>>2]|0,l);m=c[e>>2]|0;n=m+-8|0;c[e>>2]=n;return 1}default:{c[(c[b+12>>2]|0)+276+((h&15)<<2)>>2]=l;m=c[e>>2]|0;n=m+-8|0;c[e>>2]=n;return 1}}return 0}function ae(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;g=b+12|0;h=c[g>>2]|0;i=e+5|0;if((f|0)==0|(a[i>>0]&24)!=0)return;j=f+6|0;k=a[j>>0]|0;if(k&4)return;l=c[h+164>>2]|0;m=(c[f+16>>2]|0)+(((1<<d[f+7>>0])+-1&c[l+8>>2])*20|0)|0;while(1){if((c[m+12>>2]|0)==68?(c[m+8>>2]|0)==(l|0):0){n=6;break}f=c[m+16>>2]|0;if(!f){o=2217396;break}else m=f}if((n|0)==6)o=m;if(!(c[o+4>>2]|0)){a[j>>0]=k|4;return}if(!o)return;o=h+64|0;k=c[o>>2]|0;if((k|0)==(e|0)){j=h;while(1){m=d[j+48>>0]|0;n=m^3;l=(a[j+50>>0]|0)==2;f=l?255:184;p=l?64:m&3;m=l?64:0;l=c[k>>2]|0;a:do if(!l)q=0;else{r=l;s=1;t=k;while(1){if(!s){q=t;break a}s=s+-1|0;u=r+5|0;v=d[u>>0]|0;if(!((v^3)&n)){c[t>>2]=c[r>>2];md(b,r);w=t}else{if(m&v|0){q=0;break a}if((a[r+4>>0]|0)==8)nd(b,r);a[u>>0]=f&v|p;w=r}r=c[w>>2]|0;if(!r){q=0;break}else t=w}}while(0);if((q|0)!=(k|0))break;j=c[g>>2]|0}c[o>>2]=q}q=h+56|0;o=c[q>>2]|0;if((o|0)==(e|0))x=q;else{q=o;while(1){o=c[q>>2]|0;if((o|0)==(e|0))break;else q=o}x=q}c[x>>2]=c[e>>2];x=h+60|0;c[e>>2]=c[x>>2];c[x>>2]=e;e=a[i>>0]|16;a[i>>0]=e;x=e&255;if((d[h+49>>0]|0)<2)y=x&191;else y=x&184|a[h+48>>0]&3;a[i>>0]=y;return} +function oq(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0;j=Ia;Ia=Ia+192|0;k=j+176|0;l=j+20|0;m=j+8|0;n=j+4|0;o=j;c[n>>2]=0;c[o>>2]=0;c[e>>2]=0;c[f>>2]=0;p=b+216|0;c[p>>2]=0;Vv(l|0,b+28|0,156)|0;c[l>>2]=h;c[l+4>>2]=i;a:do if(c[b+12>>2]|0){q=B(i,h)|0;b:do switch(c[b+184>>2]|0){case 6:{r=(q|0)!=0;if((c[b+188>>2]|0)==8){if(!r)break b;s=0;while(1){if((a[g+(s<<2|3)>>0]|0)!=-1)break a;s=s+1|0;if(s>>>0>=q>>>0)break b}}if(r){s=0;do{t=s<<3;if((a[g+(t|6)>>0]|0)!=-1)break a;s=s+1|0;if((a[g+(t|7)>>0]|0)!=-1)break a}while(s>>>0<q>>>0)}break}case 4:{s=(q|0)!=0;if((c[b+188>>2]|0)==8){if(!s)break b;r=0;while(1){if((a[g+(r<<1|1)>>0]|0)!=-1)break a;r=r+1|0;if(r>>>0>=q>>>0)break b}}if(s){r=0;do{t=r<<2;if((a[g+(t|2)>>0]|0)!=-1)break a;r=r+1|0;if((a[g+(t|3)>>0]|0)!=-1)break a}while(r>>>0<q>>>0)}break}case 3:{r=c[b+192>>2]|0;s=c[b+196>>2]|0;if(s|0){t=0;do{if((a[r+(t<<2|3)>>0]|0)!=-1)break a;t=t+1|0}while(t>>>0<s>>>0)}break}default:break a}while(0);q=l+20|0;switch(c[q>>2]|0){case 6:{c[q>>2]=2;break a;break}case 4:{c[q>>2]=0;break a;break}default:break a}}while(0);if((c[b+8>>2]|0)>>>0>32768){c[p>>2]=60;Ia=j;return}if((c[b>>2]|0)>>>0>2){c[p>>2]=61;Ia=j;return}if((c[b+44>>2]|0)>>>0>1){c[p>>2]=71;Ia=j;return}q=l+20|0;s=c[q>>2]|0;t=l+24|0;r=c[t>>2]|0;switch(s|0){case 0:{switch(r|0){case 1:case 2:case 4:case 8:case 16:break;default:{u=37;v=42}}break}case 2:{switch(r|0){case 8:case 16:break;default:{u=37;v=42}}break}case 3:{switch(r|0){case 1:case 2:case 4:case 8:break;default:{u=37;v=42}}break}case 4:{switch(r|0){case 8:case 16:break;default:{u=37;v=42}}break}case 6:{switch(r|0){case 8:case 16:break;default:{u=37;v=42}}break}default:{u=31;v=42}}if((v|0)==42){c[p>>2]=u;Ia=j;return}c[p>>2]=0;u=b+184|0;w=c[u>>2]|0;x=c[b+188>>2]|0;switch(w|0){case 0:{switch(x|0){case 1:case 2:case 4:case 8:case 16:break;default:{y=37;v=49}}break}case 2:{switch(x|0){case 8:case 16:break;default:{y=37;v=49}}break}case 3:{switch(x|0){case 1:case 2:case 4:case 8:break;default:{y=37;v=49}}break}case 4:{switch(x|0){case 8:case 16:break;default:{y=37;v=49}}break}case 6:{switch(x|0){case 8:case 16:break;default:{y=37;v=49}}break}default:{y=31;v=49}}if((v|0)==49){c[p>>2]=y;Ia=j;return}c[p>>2]=0;do if((w|0)==(s|0)&(x|0)==(r|0))pq(n,o,g,l);else{y=B(i,h)|0;switch(s|0){case 3:case 0:{z=-1;v=55;break}case 2:{A=3;v=54;break}case 4:break;case 6:{A=4;v=54;break}default:{z=0;v=55}}if((v|0)==54){C=((B(B(r,y)|0,A)|0)+7|0)>>>3;v=56}else if((v|0)==55)switch(s|0){case 2:case 6:{C=((B(z&r,y)|0)+7|0)>>>3;v=56;break}default:{}}if((v|0)==56?(r|0)==8:0){y=xq(C)|0;if(!((C|0)!=0&(y|0)==0)){if((c[p>>2]|0)==0?(D=hq(y,g,q,u,h,i)|0,c[p>>2]=D,(D|0)==0):0)pq(n,o,y,l)}else c[p>>2]=9955;zq(y);break}c[p>>2]=59;Ia=j;return}while(0);c[m>>2]=0;u=m+8|0;c[u>>2]=0;g=m+4|0;c[g>>2]=0;c:do if(!(c[p>>2]|0)){C=yq(0,2)|0;if(!C){E=0;F=0}else{c[u>>2]=2;c[m>>2]=C;c[g>>2]=1;a[C>>0]=-119;E=c[g>>2]|0;F=c[u>>2]|0}C=E+1|0;if(F>>>0<C>>>0){r=C<<1;z=yq(c[m>>2]|0,r)|0;if(!z){G=F;H=E;I=C}else{c[u>>2]=r;c[m>>2]=z;J=z;v=72}}else{J=c[m>>2]|0;v=72}if((v|0)==72){c[g>>2]=C;a[J+E>>0]=80;C=c[g>>2]|0;G=c[u>>2]|0;H=C;I=C+1|0}if(G>>>0<I>>>0){C=I<<1;z=yq(c[m>>2]|0,C)|0;if(!z){K=G;L=H;M=I}else{c[u>>2]=C;c[m>>2]=z;N=z;v=77}}else{N=c[m>>2]|0;v=77}if((v|0)==77){c[g>>2]=I;a[N+H>>0]=78;z=c[g>>2]|0;K=c[u>>2]|0;L=z;M=z+1|0}if(K>>>0<M>>>0){z=M<<1;C=yq(c[m>>2]|0,z)|0;if(!C){O=K;P=L;Q=M}else{c[u>>2]=z;c[m>>2]=C;R=C;v=82}}else{R=c[m>>2]|0;v=82}if((v|0)==82){c[g>>2]=M;a[R+L>>0]=71;C=c[g>>2]|0;O=c[u>>2]|0;P=C;Q=C+1|0}if(O>>>0<Q>>>0){C=Q<<1;z=yq(c[m>>2]|0,C)|0;if(!z){S=O;T=P;U=Q}else{c[u>>2]=C;c[m>>2]=z;V=z;v=87}}else{V=c[m>>2]|0;v=87}if((v|0)==87){c[g>>2]=Q;a[V+P>>0]=13;z=c[g>>2]|0;S=c[u>>2]|0;T=z;U=z+1|0}if(S>>>0<U>>>0){z=U<<1;C=yq(c[m>>2]|0,z)|0;if(!C){W=S;X=T;Y=U}else{c[u>>2]=z;c[m>>2]=C;Z=C;v=92}}else{Z=c[m>>2]|0;v=92}if((v|0)==92){c[g>>2]=U;a[Z+T>>0]=10;C=c[g>>2]|0;W=c[u>>2]|0;X=C;Y=C+1|0}if(W>>>0<Y>>>0){C=Y<<1;z=yq(c[m>>2]|0,C)|0;if(!z){_=W;$=X;aa=Y}else{c[u>>2]=C;c[m>>2]=z;ba=z;v=97}}else{ba=c[m>>2]|0;v=97}if((v|0)==97){c[g>>2]=Y;a[ba+X>>0]=26;z=c[g>>2]|0;_=c[u>>2]|0;$=z;aa=z+1|0}if(_>>>0<aa>>>0){z=aa<<1;C=yq(c[m>>2]|0,z)|0;if(C|0){c[u>>2]=z;c[m>>2]=C;ca=C;v=102}}else{ca=c[m>>2]|0;v=102}if((v|0)==102){c[g>>2]=aa;a[ca+$>>0]=10}C=c[t>>2]|0;z=c[q>>2]|0;r=c[l+16>>2]|0;s=yq(0,8)|0;A=(s|0)==0;x=A?0:8;w=A?0:4;y=s+(A?-4:0)|0;a[y>>0]=h>>>24;a[y+1>>0]=h>>>16;a[y+2>>0]=h>>>8;a[y+3>>0]=h;y=w+4|0;if(x>>>0<y>>>0){A=y<<1;D=yq(s,A)|0;da=(D|0)==0;ea=da?s:D;fa=da?w:y;ga=da?x:A}else{ea=s;fa=y;ga=x}x=ea+(fa+-4)|0;a[x>>0]=i>>>24;a[x+1>>0]=i>>>16;a[x+2>>0]=i>>>8;a[x+3>>0]=i;x=C&255;C=fa+1|0;if(ga>>>0<C>>>0){y=C<<1;s=yq(ea,y)|0;if(!s){ha=C;ia=ea;ja=fa;ka=ga}else{la=s;ma=y;v=107}}else{la=ea;ma=ga;v=107}if((v|0)==107){a[la+fa>>0]=x;ha=fa+2|0;ia=la;ja=C;ka=ma}C=z&255;if(ka>>>0<ha>>>0){z=ha<<1;x=yq(ia,z)|0;if(!x){na=ha;oa=ia;pa=ja;qa=ka}else{ra=x;sa=z;v=110}}else{ra=ia;sa=ka;v=110}if((v|0)==110){a[ra+ja>>0]=C;na=ha+1|0;oa=ra;pa=ha;qa=sa}if(qa>>>0<na>>>0){C=na<<1;z=yq(oa,C)|0;if(!z){ta=na;ua=oa;va=pa;wa=qa}else{xa=z;ya=C;v=113}}else{xa=oa;ya=qa;v=113}if((v|0)==113){a[xa+pa>>0]=0;ta=na+1|0;ua=xa;va=na;wa=ya}if(wa>>>0<ta>>>0){C=ta<<1;z=yq(ua,C)|0;if(!z){za=ta;Aa=ua;Ba=va;Ca=wa}else{Da=z;Ea=C;v=116}}else{Da=ua;Ea=wa;v=116}if((v|0)==116){a[Da+va>>0]=0;za=ta+1|0;Aa=Da;Ba=ta;Ca=Ea}C=r&255;if(Ca>>>0<za>>>0){r=yq(Aa,za<<1)|0;if(!r){Fa=Aa;Ga=Ba}else{Ha=r;v=119}}else{Ha=Aa;v=119}if((v|0)==119){a[Ha+Ba>>0]=C;Fa=Ha;Ga=za}if(!(cq(m,g,Ga,97e3,Fa)|0))c[u>>2]=c[g>>2];zq(Fa);C=c[l+132>>2]|0;if(C|0){r=c[l+144>>2]|0;z=C;d:do if(r|0){x=c[g>>2]|0;y=C;while(1){s=y+1|0;A=y+2|0;da=y+3|0;w=(d[s>>0]<<16|d[y>>0]<<24|d[A>>0]<<8|d[da>>0])+12|0;D=w+x|0;if(D>>>0<w>>>0|D>>>0<x>>>0){Ja=77;break}Ka=yq(c[m>>2]|0,D)|0;if(!Ka){Ja=9929;break}c[m>>2]=Ka;c[g>>2]=D;La=Ka+x|0;if(!w)Ma=D;else{D=0;do{a[La+D>>0]=a[y+D>>0]|0;D=D+1|0}while((D|0)!=(w|0));Ma=c[g>>2]|0}c[u>>2]=Ma;y=y+((d[s>>0]<<16|d[y>>0]<<24|d[A>>0]<<8|d[da>>0])+12)|0;if((y-z|0)>>>0>=r>>>0)break d;else x=Ma}c[p>>2]=Ja;break c}while(0);c[p>>2]=0}if((c[q>>2]|0)==3){r=l+32|0;z=c[r>>2]|0;if((z+-1|0)>>>0>255){c[p>>2]=68;break}if(!(z&1073741823)){Na=0;Oa=0}else{C=l+28|0;x=z;z=0;y=0;w=0;D=0;while(1){do if((D&3|0)==3){Pa=x;Qa=z;Ra=y;Sa=w}else{La=a[(c[C>>2]|0)+D>>0]|0;Ka=w+1|0;if(y>>>0<Ka>>>0){Ta=Ka<<1;Ua=yq(z,Ta)|0;if(!Ua){Pa=x;Qa=z;Ra=y;Sa=w;break}else{Va=Ua;Wa=Ta}}else{Va=z;Wa=y}a[Va+w>>0]=La;Pa=c[r>>2]|0;Qa=Va;Ra=Wa;Sa=Ka}while(0);D=D+1|0;if(D>>>0>=Pa<<2>>>0){Na=Qa;Oa=Sa;break}else{x=Pa;z=Qa;y=Ra;w=Sa}}}if(!(cq(m,g,Oa,97005,Na)|0))c[u>>2]=c[g>>2];zq(Na)}e:do if(!(c[b+16>>2]|0))v=161;else{w=c[q>>2]|0;switch(w|0){case 6:case 2:break;default:{Xa=w;break e}}w=l+32|0;y=c[w>>2]|0;if((y+-1|0)>>>0>255){c[p>>2]=68;break c}if(!(y&1073741823)){Ya=0;Za=0}else{z=l+28|0;x=y;y=0;D=0;r=0;C=0;while(1){do if((C&3|0)==3){_a=x;$a=y;ab=D;bb=r}else{Ka=a[(c[z>>2]|0)+C>>0]|0;La=r+1|0;if(D>>>0<La>>>0){Ta=La<<1;Ua=yq(y,Ta)|0;if(!Ua){_a=x;$a=y;ab=D;bb=r;break}else{cb=Ua;db=Ta}}else{cb=y;db=D}a[cb+r>>0]=Ka;_a=c[w>>2]|0;$a=cb;ab=db;bb=La}while(0);C=C+1|0;if(C>>>0>=_a<<2>>>0){Ya=$a;Za=bb;break}else{x=_a;y=$a;D=ab;r=bb}}}if(!(cq(m,g,Za,97005,Ya)|0))c[u>>2]=c[g>>2];zq(Ya);v=161}while(0);if((v|0)==161)Xa=c[q>>2]|0;f:do if((Xa|0)==3){r=c[l+28>>2]|0;D=c[l+32>>2]|0;if(!D)break;y=0;while(1){if((a[r+(y<<2|3)>>0]|0)!=-1)break;y=y+1|0;if(y>>>0>=D>>>0)break f}qq(m,q);eb=c[q>>2]|0;v=168}else{eb=Xa;v=168}while(0);g:do if((v|0)==168){switch(eb|0){case 2:case 0:break;default:break g}if(!(c[l+36>>2]|0))break;qq(m,q)}while(0);if(c[l+52>>2]|0){h:do switch(c[l+20>>2]|0){case 4:case 0:{D=l+56|0;y=c[D>>2]|0;r=yq(0,2)|0;if(!r){x=yq(0,2)|0;if(!x){fb=0;gb=0;break h}else{hb=1;ib=x;jb=0;kb=y}}else{a[r>>0]=y>>>8;hb=2;ib=r;jb=1;kb=c[D>>2]|0}a[ib+jb>>0]=kb;fb=ib;gb=hb;break}case 6:case 2:{D=l+56|0;r=c[D>>2]|0;y=yq(0,2)|0;if(!y){x=yq(0,2)|0;if(!x){lb=0;mb=0;nb=0}else{ob=1;pb=x;qb=0;rb=r;v=180}}else{a[y>>0]=r>>>8;ob=2;pb=y;qb=1;rb=c[D>>2]|0;v=180}if((v|0)==180){a[pb+qb>>0]=rb;lb=pb;mb=ob;nb=2}D=l+60|0;y=c[D>>2]|0;r=y>>>8&255;x=mb+1|0;if(nb>>>0<x>>>0){C=x<<1;w=yq(lb,C)|0;if(!w){sb=y;tb=x;ub=lb;vb=mb;wb=nb}else{xb=w;yb=C;v=183}}else{xb=lb;yb=nb;v=183}if((v|0)==183){a[xb+mb>>0]=r;sb=c[D>>2]|0;tb=mb+2|0;ub=xb;vb=x;wb=yb}x=sb&255;if(wb>>>0<tb>>>0){D=tb<<1;r=yq(ub,D)|0;if(!r){zb=tb;Ab=ub;Bb=vb;Cb=wb}else{Db=r;Eb=D;v=186}}else{Db=ub;Eb=wb;v=186}if((v|0)==186){a[Db+vb>>0]=x;zb=tb+1|0;Ab=Db;Bb=tb;Cb=Eb}x=l+64|0;D=c[x>>2]|0;r=D>>>8&255;if(Cb>>>0<zb>>>0){C=zb<<1;w=yq(Ab,C)|0;if(!w){Fb=D;Gb=zb;Hb=Ab;Ib=Bb;Jb=Cb}else{Kb=w;Lb=C;v=189}}else{Kb=Ab;Lb=Cb;v=189}if((v|0)==189){a[Kb+Bb>>0]=r;Fb=c[x>>2]|0;Gb=zb+1|0;Hb=Kb;Ib=zb;Jb=Lb}x=Fb&255;if(Jb>>>0<Gb>>>0){r=yq(Hb,Gb<<1)|0;if(!r){fb=Hb;gb=Ib;break h}else Mb=r}else Mb=Hb;a[Mb+Ib>>0]=x;fb=Mb;gb=Gb;break}case 3:{x=c[l+56>>2]|0;r=yq(0,2)|0;if(!r){fb=0;gb=0;break h}a[r>>0]=x;fb=r;gb=1;break}default:{fb=0;gb=0}}while(0);if(!(cq(m,g,gb,97010,fb)|0))c[u>>2]=c[g>>2];zq(fb)}if(c[l+116>>2]|0){r=c[l+120>>2]|0;x=yq(0,8)|0;C=(x|0)==0;w=C?0:8;D=C?0:4;y=x+(C?-4:0)|0;a[y>>0]=r>>>24;a[y+1>>0]=r>>>16;a[y+2>>0]=r>>>8;a[y+3>>0]=r;r=c[l+124>>2]|0;y=D+4|0;if(w>>>0<y>>>0){C=y<<1;z=yq(x,C)|0;da=(z|0)==0;Nb=da?x:z;Ob=da?D:y;Pb=da?w:C}else{Nb=x;Ob=y;Pb=w}w=Nb+(Ob+-4)|0;a[w>>0]=r>>>24;a[w+1>>0]=r>>>16;a[w+2>>0]=r>>>8;a[w+3>>0]=r;r=a[l+128>>0]|0;w=Ob+1|0;if(Pb>>>0<w>>>0){y=yq(Nb,w<<1)|0;if(!y){Qb=Nb;Rb=Ob}else{Sb=y;v=203}}else{Sb=Nb;v=203}if((v|0)==203){a[Sb+Ob>>0]=r;Qb=Sb;Rb=w}if(!(cq(m,g,Rb,97015,Qb)|0))c[u>>2]=c[g>>2];zq(Qb)}w=c[l+136>>2]|0;if(w|0){r=c[l+148>>2]|0;y=w;i:do if(r|0){x=c[g>>2]|0;C=w;while(1){da=C+1|0;D=C+2|0;z=C+3|0;A=(d[da>>0]<<16|d[C>>0]<<24|d[D>>0]<<8|d[z>>0])+12|0;s=A+x|0;if(s>>>0<A>>>0|s>>>0<x>>>0){Tb=77;break}La=yq(c[m>>2]|0,s)|0;if(!La){Tb=9929;break}c[m>>2]=La;c[g>>2]=s;Ka=La+x|0;if(!A)Ub=s;else{s=0;do{a[Ka+s>>0]=a[C+s>>0]|0;s=s+1|0}while((s|0)!=(A|0));Ub=c[g>>2]|0}c[u>>2]=Ub;C=C+((d[da>>0]<<16|d[C>>0]<<24|d[D>>0]<<8|d[z>>0])+12)|0;if((C-y|0)>>>0>=r>>>0)break i;else x=Ub}c[p>>2]=Tb;break c}while(0);c[p>>2]=0}r=c[n>>2]|0;y=c[o>>2]|0;c[k>>2]=0;c[k+8>>2]=0;w=k+4|0;c[w>>2]=0;x=aq(k,w,r,y,b)|0;y=c[k>>2]|0;do if(!x){r=cq(m,g,c[w>>2]|0,97020,y)|0;if(r|0){Vb=r;break}c[u>>2]=c[g>>2];Vb=0}else Vb=x;while(0);zq(y);c[p>>2]=Vb;if(Vb|0)break;do if(a[l+100>>0]|0){x=xq(7)|0;if(!x)break;w=l+104|0;a[x>>0]=(c[w>>2]|0)>>>8;a[x+1>>0]=c[w>>2];a[x+2>>0]=a[l+108>>0]|0;a[x+3>>0]=a[l+109>>0]|0;a[x+4>>0]=a[l+110>>0]|0;a[x+5>>0]=a[l+111>>0]|0;a[x+6>>0]=a[l+112>>0]|0;if(!(cq(m,g,7,97025,x)|0))c[u>>2]=c[g>>2];zq(x)}while(0);y=l+68|0;x=c[y>>2]|0;j:do if(x){w=l+72|0;r=b+24|0;C=l+76|0;A=k+8|0;s=k+4|0;Ka=x;La=0;while(1){Ta=c[(c[w>>2]|0)+(La<<2)>>2]|0;if((bu(Ta)|0)>>>0>79){v=231;break}Ua=a[Ta>>0]|0;if(!(Ua<<24>>24)){v=233;break}Wb=c[(c[C>>2]|0)+(La<<2)>>2]|0;if(!(c[r>>2]|0))rq(m,Ta,Wb);else{Xb=bu(Wb)|0;c[k>>2]=0;c[A>>2]=0;c[s>>2]=0;Yb=Ua;Ua=1;Zb=1;_b=0;$b=0;ac=0;bc=0;while(1){if(Zb){cc=Ua<<1;dc=yq(_b,cc)|0;if(!dc){ec=_b;fc=$b;gc=ac}else{hc=dc;ic=cc;v=238}}else{hc=_b;ic=ac;v=238}if((v|0)==238){v=0;a[hc+$b>>0]=Yb;ec=hc;fc=Ua;gc=ic}bc=bc+1|0;Yb=a[Ta+bc>>0]|0;Ua=fc+1|0;Zb=gc>>>0<Ua>>>0;if(!(Yb<<24>>24))break;else{_b=ec;$b=fc;ac=gc}}if(Zb){ac=Ua<<1;$b=yq(ec,ac)|0;if(!$b){jc=Ua;kc=ec;lc=fc;mc=gc}else{nc=$b;oc=ac;v=242}}else{nc=ec;oc=gc;v=242}if((v|0)==242){v=0;a[nc+fc>>0]=0;jc=fc+2|0;kc=nc;lc=Ua;mc=oc}if(mc>>>0<jc>>>0){ac=jc<<1;$b=yq(kc,ac)|0;if(!$b){pc=kc;qc=lc;rc=mc}else{sc=$b;tc=ac;v=245}}else{sc=kc;tc=mc;v=245}if((v|0)==245){v=0;a[sc+lc>>0]=0;pc=sc;qc=jc;rc=tc}do if(!(aq(k,s,Wb,Xb,b)|0)){ac=c[s>>2]|0;if(!ac){uc=pc;vc=qc}else{$b=ac;ac=pc;_b=qc;Yb=rc;bc=0;while(1){Ta=a[(c[k>>2]|0)+bc>>0]|0;z=_b+1|0;if(Yb>>>0<z>>>0){D=z<<1;da=yq(ac,D)|0;if(!da){wc=$b;xc=ac;yc=_b;zc=Yb}else{Ac=da;Bc=D;v=251}}else{Ac=ac;Bc=Yb;v=251}if((v|0)==251){v=0;a[Ac+_b>>0]=Ta;wc=c[s>>2]|0;xc=Ac;yc=z;zc=Bc}bc=bc+1|0;if(bc>>>0>=wc>>>0){uc=xc;vc=yc;break}else{$b=wc;ac=xc;_b=yc;Yb=zc}}}if(cq(m,g,vc,97030,uc)|0){Cc=uc;break}c[u>>2]=c[g>>2];Cc=uc}else Cc=pc;while(0);c[A>>2]=0;c[s>>2]=0;zq(c[k>>2]|0);zq(Cc)}La=La+1|0;Xb=c[y>>2]|0;if(La>>>0>=Xb>>>0){Dc=Xb;break j}else Ka=Xb}if((v|0)==231){c[p>>2]=66;Dc=Ka;break}else if((v|0)==233){c[p>>2]=67;Dc=Ka;break}}else Dc=0;while(0);k:do if(c[b+20>>2]|0){if(Dc|0){y=c[l+72>>2]|0;x=0;do{if(!(au(c[y+(x<<2)>>2]|0,97035)|0))break k;x=x+1|0}while(x>>>0<Dc>>>0)}rq(m,97035,97043)}while(0);x=l+80|0;l:do if(c[x>>2]|0){y=l+84|0;Ka=b+24|0;La=l+88|0;s=l+92|0;A=l+96|0;r=k+8|0;C=k+4|0;w=0;while(1){Xb=c[(c[y>>2]|0)+(w<<2)>>2]|0;if((bu(Xb)|0)>>>0>79){v=267;break}Wb=a[Xb>>0]|0;if(!(Wb<<24>>24)){v=269;break}Ua=c[Ka>>2]|0;Zb=c[(c[La>>2]|0)+(w<<2)>>2]|0;Yb=c[(c[s>>2]|0)+(w<<2)>>2]|0;_b=c[(c[A>>2]|0)+(w<<2)>>2]|0;ac=bu(_b)|0;$b=Wb;Wb=1;bc=1;z=0;Ta=0;D=0;da=0;while(1){if(bc){cc=Wb<<1;dc=yq(z,cc)|0;if(!dc){Ec=z;Fc=Ta;Gc=D}else{Hc=dc;Ic=cc;v=273}}else{Hc=z;Ic=D;v=273}if((v|0)==273){v=0;a[Hc+Ta>>0]=$b;Ec=Hc;Fc=Wb;Gc=Ic}da=da+1|0;$b=a[Xb+da>>0]|0;Wb=Fc+1|0;bc=Gc>>>0<Wb>>>0;if(!($b<<24>>24))break;else{z=Ec;Ta=Fc;D=Gc}}if(bc){D=Wb<<1;Ta=yq(Ec,D)|0;if(!Ta){Jc=Wb;Kc=Ec;Lc=Fc;Mc=Gc}else{Nc=Ta;Oc=D;v=277}}else{Nc=Ec;Oc=Gc;v=277}if((v|0)==277){v=0;a[Nc+Fc>>0]=0;Jc=Fc+2|0;Kc=Nc;Lc=Wb;Mc=Oc}D=(Ua|0)!=0;Ta=D&1;if(Mc>>>0<Jc>>>0){z=Jc<<1;$b=yq(Kc,z)|0;if(!$b){Pc=Jc;Qc=Kc;Rc=Lc;Sc=Mc}else{Tc=$b;Uc=z;v=280}}else{Tc=Kc;Uc=Mc;v=280}if((v|0)==280){v=0;a[Tc+Lc>>0]=Ta;Pc=Lc+2|0;Qc=Tc;Rc=Jc;Sc=Uc}if(Sc>>>0<Pc>>>0){Ta=Pc<<1;z=yq(Qc,Ta)|0;if(!z){Vc=Pc;Wc=Qc;Xc=Rc;Yc=Sc}else{Zc=z;_c=Ta;v=283}}else{Zc=Qc;_c=Sc;v=283}if((v|0)==283){v=0;a[Zc+Rc>>0]=0;Vc=Pc+1|0;Wc=Zc;Xc=Pc;Yc=_c}Ta=a[Zb>>0]|0;z=Yc>>>0<Vc>>>0;if(!(Ta<<24>>24)){$c=Vc;ad=z;bd=Wc;cd=Xc;dd=Yc}else{$b=Ta;Ta=Vc;da=z;z=Wc;Xb=Xc;cc=Yc;dc=0;while(1){if(da){ed=Ta<<1;fd=yq(z,ed)|0;if(!fd){gd=z;hd=Xb;id=cc}else{jd=fd;kd=ed;v=288}}else{jd=z;kd=cc;v=288}if((v|0)==288){v=0;a[jd+Xb>>0]=$b;gd=jd;hd=Ta;id=kd}dc=dc+1|0;$b=a[Zb+dc>>0]|0;ed=hd+1|0;fd=id>>>0<ed>>>0;if(!($b<<24>>24)){$c=ed;ad=fd;bd=gd;cd=hd;dd=id;break}else{Ta=ed;da=fd;z=gd;Xb=hd;cc=id}}}if(ad){cc=$c<<1;Xb=yq(bd,cc)|0;if(!Xb){ld=bd;md=cd;nd=dd}else{od=Xb;pd=cc;v=292}}else{od=bd;pd=dd;v=292}if((v|0)==292){v=0;a[od+cd>>0]=0;ld=od;md=$c;nd=pd}cc=a[Yb>>0]|0;Xb=md+1|0;z=nd>>>0<Xb>>>0;if(!(cc<<24>>24)){qd=Xb;rd=z;sd=ld;td=md;ud=nd}else{da=cc;cc=Xb;Xb=z;z=ld;Ta=md;$b=nd;dc=0;while(1){if(Xb){Zb=cc<<1;Ua=yq(z,Zb)|0;if(!Ua){vd=z;wd=Ta;xd=$b}else{yd=Ua;zd=Zb;v=297}}else{yd=z;zd=$b;v=297}if((v|0)==297){v=0;a[yd+Ta>>0]=da;vd=yd;wd=cc;xd=zd}dc=dc+1|0;da=a[Yb+dc>>0]|0;Zb=wd+1|0;Ua=xd>>>0<Zb>>>0;if(!(da<<24>>24)){qd=Zb;rd=Ua;sd=vd;td=wd;ud=xd;break}else{cc=Zb;Xb=Ua;z=vd;Ta=wd;$b=xd}}}if(rd){$b=qd<<1;Ta=yq(sd,$b)|0;if(!Ta){Ad=sd;Bd=td;Cd=ud}else{Dd=Ta;Ed=$b;v=301}}else{Dd=sd;Ed=ud;v=301}if((v|0)==301){v=0;a[Dd+td>>0]=0;Ad=Dd;Bd=qd;Cd=Ed}do if(D){c[k>>2]=0;c[r>>2]=0;c[C>>2]=0;if(aq(k,C,_b,ac,b)|0){Fd=Ad;break}$b=c[C>>2]|0;if(!$b){Gd=Ad;Hd=Bd;Id=Cd}else{Ta=$b;$b=Ad;z=Bd;Xb=Cd;cc=0;while(1){da=a[(c[k>>2]|0)+cc>>0]|0;dc=z+1|0;if(Xb>>>0<dc>>>0){Yb=dc<<1;Ua=yq($b,Yb)|0;if(!Ua){Jd=Ta;Kd=$b;Ld=z;Md=Xb}else{Nd=Ua;Od=Yb;v=308}}else{Nd=$b;Od=Xb;v=308}if((v|0)==308){v=0;a[Nd+z>>0]=da;Jd=c[C>>2]|0;Kd=Nd;Ld=dc;Md=Od}cc=cc+1|0;if(cc>>>0>=Jd>>>0){Gd=Kd;Hd=Ld;Id=Md;break}else{Ta=Jd;$b=Kd;z=Ld;Xb=Md}}}Xb=a[_b>>0]|0;if(!(Xb<<24>>24)){Pd=Gd;Qd=Hd;v=322;break}z=Xb;Xb=Gd;$b=Hd;Ta=Id;cc=0;while(1){dc=$b+1|0;if(Ta>>>0<dc>>>0){da=dc<<1;Yb=yq(Xb,da)|0;if(!Yb){Rd=Xb;Sd=$b;Td=Ta}else{Ud=Yb;Vd=da;v=314}}else{Ud=Xb;Vd=Ta;v=314}if((v|0)==314){v=0;a[Ud+$b>>0]=z;Rd=Ud;Sd=dc;Td=Vd}cc=cc+1|0;z=a[_b+cc>>0]|0;if(!(z<<24>>24)){Pd=Rd;Qd=Sd;v=322;break}else{Xb=Rd;$b=Sd;Ta=Td}}}else{Ta=a[_b>>0]|0;if(!(Ta<<24>>24)){Pd=Ad;Qd=Bd;v=322;break}$b=Ta;Ta=Ad;Xb=Bd;z=Cd;cc=0;while(1){dc=Xb+1|0;if(z>>>0<dc>>>0){da=dc<<1;Yb=yq(Ta,da)|0;if(!Yb){Wd=Ta;Xd=Xb;Yd=z}else{Zd=Yb;_d=da;v=320}}else{Zd=Ta;_d=z;v=320}if((v|0)==320){v=0;a[Zd+Xb>>0]=$b;Wd=Zd;Xd=dc;Yd=_d}cc=cc+1|0;$b=a[_b+cc>>0]|0;if(!($b<<24>>24)){Pd=Wd;Qd=Xd;v=322;break}else{Ta=Wd;Xb=Xd;z=Yd}}}while(0);do if((v|0)==322){v=0;if(cq(m,g,Qd,97052,Pd)|0){Fd=Pd;break}c[u>>2]=c[g>>2];Fd=Pd}while(0);zq(Fd);w=w+1|0;if(w>>>0>=(c[x>>2]|0)>>>0)break l}if((v|0)==267){c[p>>2]=66;break}else if((v|0)==269){c[p>>2]=67;break}}while(0);x=c[l+140>>2]|0;if(x|0){w=c[l+152>>2]|0;C=x;m:do if(w|0){r=c[g>>2]|0;A=x;while(1){s=A+1|0;La=A+2|0;Ka=A+3|0;y=(d[s>>0]<<16|d[A>>0]<<24|d[La>>0]<<8|d[Ka>>0])+12|0;_b=y+r|0;if(_b>>>0<y>>>0|_b>>>0<r>>>0){$d=77;break}ac=yq(c[m>>2]|0,_b)|0;if(!ac){$d=9929;break}c[m>>2]=ac;c[g>>2]=_b;D=ac+r|0;if(!y)ae=_b;else{_b=0;do{a[D+_b>>0]=a[A+_b>>0]|0;_b=_b+1|0}while((_b|0)!=(y|0));ae=c[g>>2]|0}c[u>>2]=ae;A=A+((d[s>>0]<<16|d[A>>0]<<24|d[La>>0]<<8|d[Ka>>0])+12)|0;if((A-C|0)>>>0>=w>>>0)break m;else r=ae}c[p>>2]=$d;break c}while(0);c[p>>2]=0}w=c[g>>2]|0;C=w+12|0;if(w>>>0>4294967283)break;x=yq(c[m>>2]|0,C)|0;if(!x)break;c[m>>2]=x;c[g>>2]=C;C=x+w|0;a[C>>0]=0;a[C+1>>0]=0;a[C+2>>0]=0;a[C+3>>0]=0;w=C+4|0;a[w>>0]=73;a[C+5>>0]=69;a[C+6>>0]=78;a[C+7>>0]=68;x=bq(w,4)|0;w=C+8|0;a[w>>0]=x>>>24;a[w+1>>0]=x>>>16;a[w+2>>0]=x>>>8;a[w+3>>0]=x;c[u>>2]=c[g>>2]}while(0);zq(c[n>>2]|0);c[e>>2]=c[m>>2];c[f>>2]=c[g>>2];Ia=j;return}function pq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;h=Ia;Ia=Ia+320|0;i=h+288|0;j=h+256|0;k=h+224|0;l=h+192|0;m=h+160|0;n=h+128|0;o=h+96|0;p=h+64|0;q=h+32|0;r=h;s=g+20|0;t=g+24|0;u=c[t>>2]|0;switch(c[s>>2]|0){case 3:case 0:{v=1;break}case 2:{v=3;break}case 4:{v=2;break}case 6:{v=4;break}default:v=0}w=B(v,u)|0;u=c[g>>2]|0;v=c[g+4>>2]|0;if(!(c[g+16>>2]|0)){g=B(u,w)|0;x=g+7|0;y=B(x>>>3,v)|0;z=y+v|0;c[e>>2]=z;A=xq(z)|0;c[b>>2]=A;if((A|0)==0?c[e>>2]|0:0){Ia=h;return}if(w>>>0<8?(z=x&-8,(g|0)!=(z|0)):0){if(y){x=yq(0,y<<1)|0;if(!x)C=0;else{D=x;E=13}}else{D=0;E=13}if((E|0)==13){sq(D,f,z,g,v);tq(c[b>>2]|0,D,u,v,c[s>>2]|0,c[t>>2]|0)|0;C=D}zq(C);Ia=h;return}tq(A,f,u,v,c[s>>2]|0,c[t>>2]|0)|0;Ia=h;return}A=B(w,u)|0;C=((B(A,v)|0)+7|0)>>>3;D=xq(C)|0;g=(C|0)==0|(D|0)!=0;C=g?0:9952;if(g){lq(n,o,p,q,r,u,v,w);z=c[p+28>>2]|0;c[e>>2]=z;x=xq(z)|0;c[b>>2]=x;if(!((x|0)==0?(c[e>>2]|0)!=0:0))E=19;do if((E|0)==19){lq(i,j,k,l,m,u,v,w);if(w>>>0>7){e=w>>>3;if(e|0){x=0;do{z=c[j+(x<<2)>>2]|0;if(z|0?(y=c[i+(x<<2)>>2]|0,y|0):0){F=c[30048+(x<<2)>>2]|0;G=c[30016+(x<<2)>>2]|0;H=c[29984+(x<<2)>>2]|0;I=c[29952+(x<<2)>>2]|0;J=c[m+(x<<2)>>2]|0;K=0;do{L=(B((B(K,G)|0)+F|0,u)|0)+H|0;M=B(K,y)|0;N=0;do{O=B(L+(B(N,I)|0)|0,e)|0;P=(B(N+M|0,e)|0)+J|0;Q=0;do{a[D+(P+Q)>>0]=a[f+(Q+O)>>0]|0;Q=Q+1|0}while((Q|0)!=(e|0));N=N+1|0}while((N|0)!=(y|0));K=K+1|0}while((K|0)!=(z|0))}x=x+1|0}while((x|0)!=7)}}else{x=(w|0)==0;e=0;do{z=c[i+(e<<2)>>2]|0;K=c[j+(e<<2)>>2]|0;if(K|0?(y=30048+(e<<2)|0,J=30016+(e<<2)|0,I=29984+(e<<2)|0,z|0):0){H=c[29952+(e<<2)>>2]|0;F=c[m+(e<<2)>>2]<<3;G=0;do{N=B(G,z)|0;if(!x){M=B(c[J>>2]|0,G)|0;L=(B(M+(c[y>>2]|0)|0,u)|0)+(c[I>>2]|0)|0;M=0;do{Q=0;O=B(L+(B(M,H)|0)|0,w)|0;P=(B(M+N|0,w)|0)+F|0;while(1){R=1<<(P&7^7);if(!(1<<(O&7^7)&(d[f+(O>>>3)>>0]|0))){S=D+(P>>>3)|0;T=(R^255)&(d[S>>0]|0);U=S}else{S=D+(P>>>3)|0;T=R|(d[S>>0]|0);U=S}a[U>>0]=T;Q=Q+1|0;if((Q|0)==(w|0))break;else{O=O+1|0;P=P+1|0}}M=M+1|0}while((M|0)!=(z|0))}G=G+1|0}while((G|0)!=(K|0))}e=e+1|0}while((e|0)!=7)}e=B((A+7|0)>>>3,v)|0;x=(e|0)==0;K=e<<1;if(w>>>0>=8){tq((c[b>>2]|0)+(c[p>>2]|0)|0,D+(c[q>>2]|0)|0,c[n>>2]|0,c[o>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;tq((c[b>>2]|0)+(c[p+4>>2]|0)|0,D+(c[q+4>>2]|0)|0,c[n+4>>2]|0,c[o+4>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;tq((c[b>>2]|0)+(c[p+8>>2]|0)|0,D+(c[q+8>>2]|0)|0,c[n+8>>2]|0,c[o+8>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;tq((c[b>>2]|0)+(c[p+12>>2]|0)|0,D+(c[q+12>>2]|0)|0,c[n+12>>2]|0,c[o+12>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;tq((c[b>>2]|0)+(c[p+16>>2]|0)|0,D+(c[q+16>>2]|0)|0,c[n+16>>2]|0,c[o+16>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;tq((c[b>>2]|0)+(c[p+20>>2]|0)|0,D+(c[q+20>>2]|0)|0,c[n+20>>2]|0,c[o+20>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;tq((c[b>>2]|0)+(c[p+24>>2]|0)|0,D+(c[q+24>>2]|0)|0,c[n+24>>2]|0,c[o+24>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;break}if(!x){e=yq(0,K)|0;if(!e){V=9954;W=0}else{X=e;E=48}}else{X=0;E=48}if((E|0)==48)if(g){e=X+(c[q>>2]|0)|0;G=c[n>>2]|0;z=B(G,w)|0;F=c[o>>2]|0;sq(e,D+(c[r>>2]|0)|0,z+7&-8,z,F);V=tq((c[b>>2]|0)+(c[p>>2]|0)|0,e,G,F,c[s>>2]|0,c[t>>2]|0)|0;W=X}else{V=C;W=X}zq(W);if(!x){F=yq(0,K)|0;if(!F){Y=9954;Z=0}else{_=F;E=56}}else{_=0;E=56}if((E|0)==56)if(!V){F=_+(c[q+4>>2]|0)|0;G=c[n+4>>2]|0;e=B(G,w)|0;z=c[o+4>>2]|0;sq(F,D+(c[r+4>>2]|0)|0,e+7&-8,e,z);Y=tq((c[b>>2]|0)+(c[p+4>>2]|0)|0,F,G,z,c[s>>2]|0,c[t>>2]|0)|0;Z=_}else{Y=V;Z=_}zq(Z);if(!x){z=yq(0,K)|0;if(!z){$=9954;aa=0}else{ba=z;E=60}}else{ba=0;E=60}if((E|0)==60)if(!Y){z=ba+(c[q+8>>2]|0)|0;G=c[n+8>>2]|0;F=B(G,w)|0;e=c[o+8>>2]|0;sq(z,D+(c[r+8>>2]|0)|0,F+7&-8,F,e);$=tq((c[b>>2]|0)+(c[p+8>>2]|0)|0,z,G,e,c[s>>2]|0,c[t>>2]|0)|0;aa=ba}else{$=Y;aa=ba}zq(aa);if(!x){e=yq(0,K)|0;if(!e){ca=9954;da=0}else{ea=e;E=64}}else{ea=0;E=64}if((E|0)==64)if(!$){e=ea+(c[q+12>>2]|0)|0;G=c[n+12>>2]|0;z=B(G,w)|0;F=c[o+12>>2]|0;sq(e,D+(c[r+12>>2]|0)|0,z+7&-8,z,F);ca=tq((c[b>>2]|0)+(c[p+12>>2]|0)|0,e,G,F,c[s>>2]|0,c[t>>2]|0)|0;da=ea}else{ca=$;da=ea}zq(da);if(!x){F=yq(0,K)|0;if(!F){fa=9954;ga=0}else{ha=F;E=68}}else{ha=0;E=68}if((E|0)==68)if(!ca){F=ha+(c[q+16>>2]|0)|0;G=c[n+16>>2]|0;e=B(G,w)|0;z=c[o+16>>2]|0;sq(F,D+(c[r+16>>2]|0)|0,e+7&-8,e,z);fa=tq((c[b>>2]|0)+(c[p+16>>2]|0)|0,F,G,z,c[s>>2]|0,c[t>>2]|0)|0;ga=ha}else{fa=ca;ga=ha}zq(ga);if(!x){z=yq(0,K)|0;if(!z){ia=9954;ja=0}else{ka=z;E=72}}else{ka=0;E=72}if((E|0)==72)if(!fa){z=ka+(c[q+20>>2]|0)|0;G=c[n+20>>2]|0;F=B(G,w)|0;e=c[o+20>>2]|0;sq(z,D+(c[r+20>>2]|0)|0,F+7&-8,F,e);ia=tq((c[b>>2]|0)+(c[p+20>>2]|0)|0,z,G,e,c[s>>2]|0,c[t>>2]|0)|0;ja=ka}else{ia=fa;ja=ka}zq(ja);if(!x){x=yq(0,K)|0;if(!x)la=0;else{ma=x;E=76}}else{ma=0;E=76}if((E|0)==76)if(!ia){x=ma+(c[q+24>>2]|0)|0;K=c[n+24>>2]|0;e=B(K,w)|0;G=c[o+24>>2]|0;sq(x,D+(c[r+24>>2]|0)|0,e+7&-8,e,G);tq((c[b>>2]|0)+(c[p+24>>2]|0)|0,x,K,G,c[s>>2]|0,c[t>>2]|0)|0;la=ma}else la=ma;zq(la)}while(0)}zq(D);Ia=h;return}function qq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;a:do switch(c[d>>2]|0){case 3:{e=d+12|0;if(!(c[e>>2]|0)){f=0;g=0}else{h=d+8|0;i=0;j=0;k=0;l=0;while(1){m=a[(c[h>>2]|0)+(i<<2|3)>>0]|0;n=k+1|0;if(l>>>0<n>>>0){o=n<<1;p=yq(j,o)|0;if(!p){q=j;r=k;s=l}else{t=p;u=o;v=6}}else{t=j;u=l;v=6}if((v|0)==6){v=0;a[t+k>>0]=m;q=t;r=n;s=u}i=i+1|0;if(i>>>0>=(c[e>>2]|0)>>>0){f=q;g=r;break}else{j=q;k=r;l=s}}}break}case 0:{if(!(c[d+16>>2]|0)){f=0;g=0}else{l=d+20|0;k=c[l>>2]|0;j=yq(0,2)|0;if(!j){e=c[l>>2]|0;i=yq(0,2)|0;if(!i){f=0;g=0;break a}else{w=1;x=e;y=i;z=0}}else{a[j>>0]=k>>>8;w=2;x=c[l>>2]|0;y=j;z=1}a[y+z>>0]=x;f=y;g=w}break}case 2:{if(!(c[d+16>>2]|0)){f=0;g=0}else{j=d+20|0;l=c[j>>2]|0;k=yq(0,2)|0;if(!k){i=c[j>>2]|0;e=yq(0,2)|0;if(!e){A=0;B=0;C=0}else{D=1;E=i;F=e;G=0;v=17}}else{a[k>>0]=l>>>8;D=2;E=c[j>>2]|0;F=k;G=1;v=17}if((v|0)==17){a[F+G>>0]=E;A=F;B=D;C=2}k=d+24|0;j=(c[k>>2]|0)>>>8&255;l=B+1|0;if(C>>>0<l>>>0){e=l<<1;i=yq(A,e)|0;if(!i){H=l;I=A;J=B;K=C}else{L=i;M=e;v=20}}else{L=A;M=C;v=20}if((v|0)==20){a[L+B>>0]=j;H=B+2|0;I=L;J=l;K=M}l=c[k>>2]&255;if(K>>>0<H>>>0){k=H<<1;j=yq(I,k)|0;if(!j){N=H;O=I;P=J;Q=K}else{R=j;S=k;v=23}}else{R=I;S=K;v=23}if((v|0)==23){a[R+J>>0]=l;N=H+1|0;O=R;P=H;Q=S}l=d+28|0;k=(c[l>>2]|0)>>>8&255;if(Q>>>0<N>>>0){j=N<<1;e=yq(O,j)|0;if(!e){T=N;U=O;V=P;W=Q}else{X=e;Y=j;v=26}}else{X=O;Y=Q;v=26}if((v|0)==26){a[X+P>>0]=k;T=N+1|0;U=X;V=N;W=Y}k=c[l>>2]&255;if(W>>>0<T>>>0){l=yq(U,T<<1)|0;if(!l){f=U;g=V;break a}else Z=l}else Z=U;a[Z+V>>0]=k;f=Z;g=T}break}default:{f=0;g=0}}while(0);T=b+4|0;if(cq(b,T,g,97062,f)|0){zq(f);return}c[b+8>>2]=c[T>>2];zq(f);return}function rq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;f=a[d>>0]|0;if(f<<24>>24){g=f;f=1;h=1;i=0;j=0;k=0;l=0;while(1){if(h){m=f<<1;n=yq(j,m)|0;if(!n){o=j;p=k;q=l}else{r=n;s=m;t=5}}else{r=j;s=l;t=5}if((t|0)==5){t=0;a[r+k>>0]=g;o=r;p=f;q=s}i=i+1|0;g=a[d+i>>0]|0;f=p+1|0;h=q>>>0<f>>>0;if(!(g<<24>>24))break;else{j=o;k=p;l=q}}if(h){u=f;v=o;w=p;x=q;t=8}else{y=f;z=o;A=p;B=q;t=9}}else{u=1;v=0;w=0;x=0;t=8}if((t|0)==8){q=u<<1;p=yq(v,q)|0;if(!p){C=v;D=w;E=x}else{y=u;z=p;A=w;B=q;t=9}}if((t|0)==9){a[z+A>>0]=0;C=z;D=y;E=B}B=a[e>>0]|0;if(!(B<<24>>24)){F=C;G=D}else{y=B;B=0;z=C;C=D;D=E;while(1){E=C+1|0;if(D>>>0<E>>>0){A=E<<1;q=yq(z,A)|0;if(!q){H=z;I=C;J=D}else{K=q;L=A;t=14}}else{K=z;L=D;t=14}if((t|0)==14){t=0;a[K+C>>0]=y;H=K;I=E;J=L}B=B+1|0;y=a[e+B>>0]|0;if(!(y<<24>>24)){F=H;G=I;break}else{z=H;C=I;D=J}}}J=b+4|0;if(cq(b,J,G,97057,F)|0){zq(F);return}c[b+8>>2]=c[J>>2];zq(F);return}function sq(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=e-f|0;if(!g)return;i=(h|0)!=0;if(!f){j=0;k=0;while(1){if(i){l=j;m=0;while(1){n=b+(l>>>3)|0;a[n>>0]=(1<<(l&7^7)^255)&(d[n>>0]|0);m=m+1|0;if((m|0)==(h|0))break;else l=l+1|0}o=j+e|0}else o=j;k=k+1|0;if((k|0)==(g|0))break;else j=o}return}o=0;j=0;k=0;while(1){l=j+f|0;m=o;n=j;p=0;while(1){q=1<<(n&7^7);if(!(1<<(m&7^7)&(d[c+(m>>>3)>>0]|0))){r=b+(n>>>3)|0;s=(q^255)&(d[r>>0]|0);t=r}else{r=b+(n>>>3)|0;s=q|(d[r>>0]|0);t=r}a[t>>0]=s;p=p+1|0;if((p|0)==(f|0))break;else{m=m+1|0;n=n+1|0}}o=o+f|0;if(i){n=l;m=0;while(1){p=b+(n>>>3)|0;a[p>>0]=(1<<(n&7^7)^255)&(d[p>>0]|0);m=m+1|0;if((m|0)==(h|0))break;else n=n+1|0}u=j+e|0}else u=l;k=k+1|0;if((k|0)==(g|0))break;else j=u}return}function tq(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;j=Ia;Ia=Ia+64|0;k=j;switch(h|0){case 3:case 0:{l=1;break}case 2:{l=3;break}case 4:{l=2;break}case 6:{l=4;break}default:l=0}m=B(l,i)|0;l=((B(m,f)|0)+7|0)>>>3;f=(m+7|0)>>>3;if(!m){n=31;Ia=j;return n|0}if((h|0)==3|i>>>0<8){if(!g){n=0;Ia=j;return n|0}i=l+1|0;if(!l){h=0;do{a[b+(B(h,i)|0)>>0]=0;h=h+1|0}while((h|0)!=(g|0));n=0;Ia=j;return n|0}h=0;do{m=B(h,i)|0;o=B(h,l)|0;a[b+m>>0]=0;p=b+(m+1)|0;m=e+o|0;o=0;do{a[p+o>>0]=a[m+o>>0]|0;o=o+1|0}while((o|0)!=(l|0));h=h+1|0}while((h|0)!=(g|0));n=0;Ia=j;return n|0}h=k;i=h+60|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));h=l<<1;i=k+8|0;do if(!l){c[k+4>>2]=l;c[k+16>>2]=l;c[k+28>>2]=l;c[k+40>>2]=l;q=0;r=0;s=0;t=0;u=0;v=k+20|0;w=k+32|0;x=k+44|0;y=k+56|0;z=89}else{o=yq(0,h)|0;if(o){c[i>>2]=h;c[k>>2]=o;c[k+4>>2]=l;m=k+20|0;p=yq(0,h)|0;if(p){c[m>>2]=h;c[k+12>>2]=p;c[k+16>>2]=l;A=k+32|0;C=yq(0,h)|0;if(C){c[A>>2]=h;c[k+24>>2]=C;c[k+28>>2]=l;D=k+44|0;E=yq(0,h)|0;if(E){c[D>>2]=h;c[k+36>>2]=E;c[k+40>>2]=l;F=k+56|0;G=yq(0,h)|0;if(!G){H=m;I=E;J=C;K=p;L=o}else{c[F>>2]=h;c[k+48>>2]=G;q=E;r=p;s=o;t=C;u=G;v=m;w=A;x=D;y=F;z=89;break}}else{H=m;I=0;J=C;K=p;L=o}}else{H=m;I=0;J=0;K=p;L=o}}else{H=m;I=0;J=0;K=0;L=o}}else{H=k+20|0;I=0;J=0;K=0;L=0}M=L;N=K;O=J;P=I;Q=0;R=H;S=k+32|0;T=k+44|0;U=k+56|0;V=9949}while(0);if((z|0)==89){c[k+52>>2]=l;if(!g){M=s;N=r;O=t;P=q;Q=u;R=v;S=w;T=x;U=y;V=0}else{u=(l|0)==0;q=(f|0)!=0;t=(l|0)!=0;r=f>>>0<l>>>0;s=l+1|0;z=0;H=0;I=0;J=0;while(1){K=H;H=e+(B(J,l)|0)|0;L=(K|0)==0;h=z;i=I;o=0;do{m=c[k+(o*12|0)>>2]|0;a:do switch((o&255)<<24>>24){case 0:{if(!u){p=0;do{a[m+p>>0]=a[H+p>>0]|0;p=p+1|0}while((p|0)!=(l|0))}break}case 1:{if(L){if(q){p=0;do{a[m+p>>0]=a[H+p>>0]|0;p=p+1|0}while((p|0)!=(f|0))}if(!r)break a;p=f;do{a[m+p>>0]=(d[H+p>>0]|0)-(d[H+(p-f)>>0]|0);p=p+1|0}while((p|0)!=(l|0))}else{if(q){p=0;do{a[m+p>>0]=a[H+p>>0]|0;p=p+1|0}while((p|0)!=(f|0))}if(!r)break a;p=f;do{a[m+p>>0]=(d[H+p>>0]|0)-(d[H+(p-f)>>0]|0);p=p+1|0}while((p|0)!=(l|0))}break}case 2:{if(L){if(!t)break a;p=0;do{a[m+p>>0]=a[H+p>>0]|0;p=p+1|0}while((p|0)!=(l|0))}else{if(!t)break a;p=0;do{a[m+p>>0]=(d[H+p>>0]|0)-(d[K+p>>0]|0);p=p+1|0}while((p|0)!=(l|0))}break}case 3:{if(L){if(q){p=0;do{a[m+p>>0]=a[H+p>>0]|0;p=p+1|0}while((p|0)!=(f|0))}if(!r)break a;p=f;do{a[m+p>>0]=(d[H+p>>0]|0)-((d[H+(p-f)>>0]|0)>>>1&255);p=p+1|0}while((p|0)!=(l|0))}else{if(q){p=0;do{a[m+p>>0]=(d[H+p>>0]|0)-((d[K+p>>0]|0)>>>1&255);p=p+1|0}while((p|0)!=(f|0))}if(!r)break a;p=f;do{a[m+p>>0]=(d[H+p>>0]|0)-(((d[K+p>>0]|0)+(d[H+(p-f)>>0]|0)|0)>>>1);p=p+1|0}while((p|0)!=(l|0))}break}case 4:{if(L){if(q){p=0;do{a[m+p>>0]=a[H+p>>0]|0;p=p+1|0}while((p|0)!=(f|0))}if(!r)break a;p=f;do{a[m+p>>0]=(d[H+p>>0]|0)-(d[H+(p-f)>>0]|0);p=p+1|0}while((p|0)!=(l|0))}else{if(q){p=0;do{a[m+p>>0]=(d[H+p>>0]|0)-(d[K+p>>0]|0);p=p+1|0}while((p|0)!=(f|0))}if(!r)break a;p=f;do{C=p-f|0;F=a[H+C>>0]|0;D=a[K+p>>0]|0;A=a[K+C>>0]|0;C=D&255;G=A&255;E=C-G|0;W=(E|0)>-1?E:0-E|0;E=F&255;X=E-G|0;Y=(X|0)>-1?X:0-X|0;X=C+E+(B(G,-2)|0)|0;G=(X|0)>-1?X:0-X|0;a[m+p>>0]=(d[H+p>>0]|0)-(((W|0)>(Y|0)|(W|0)>(G|0)?((Y|0)>(G|0)?A:D):F)&255);p=p+1|0}while((p|0)!=(l|0))}break}default:{}}while(0);p=c[k+(o*12|0)+4>>2]|0;if(!p)Z=0;else{F=0;D=0;while(1){A=F+(d[m+D>>0]|0)|0;D=D+3|0;if(D>>>0>=p>>>0){Z=A;break}else F=A}}F=(o|0)==0|Z>>>0<i>>>0;i=F?Z:i;h=F?o:h;o=o+1|0}while((o|0)!=5);o=B(J,s)|0;a[b+o>>0]=h;if(!u){K=c[k+(h*12|0)>>2]|0;L=0;do{F=L;L=L+1|0;a[b+(L+o)>>0]=a[K+F>>0]|0}while((L|0)!=(l|0))}J=J+1|0;if((J|0)==(g|0))break;else{z=h;I=i}}M=c[k>>2]|0;N=c[k+12>>2]|0;O=c[k+24>>2]|0;P=c[k+36>>2]|0;Q=c[k+48>>2]|0;R=v;S=w;T=x;U=y;V=0}}zq(M);c[R>>2]=0;zq(N);c[S>>2]=0;zq(O);c[T>>2]=0;zq(P);c[U>>2]=0;zq(Q);n=V;Ia=j;return n|0}function uq(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=Ia;Ia=Ia+240|0;j=i+8|0;k=i+4|0;l=i;c[j>>2]=2;c[j+4>>2]=1;c[j+8>>2]=2048;c[j+12>>2]=1;c[j+16>>2]=0;c[j+20>>2]=1;c[j+24>>2]=0;c[j+32>>2]=0;c[j+28>>2]=0;m=j+64|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[j+48>>2]=6;c[j+52>>2]=8;c[j+56>>2]=0;c[j+60>>2]=0;c[j+44>>2]=0;c[j+36>>2]=0;c[j+40>>2]=0;m=j+80|0;c[j+144>>2]=0;n=j+160|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;n=m;o=n+48|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));a[m+48>>0]=0;m=j+192|0;n=j+216|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;c[n>>2]=1;c[j+184>>2]=g;c[j+188>>2]=h;oq(j,k,l,d,e,f);f=c[n>>2]|0;gq(j+28|0);j=c[m>>2]|0;if(j|0)zq(j);j=c[k>>2]|0;k=c[l>>2]|0;l=Fu(b,104706)|0;if(!l){zq(j);Ia=i;return f|0}hv(j,1,k,l)|0;Lu(l)|0;zq(j);Ia=i;return f|0}function vq(a){a=a|0;var b=0,d=0;if(a>>>0<=1073741824?(c[557120]=(c[557120]|0)+1,(a|0)!=0):0){b=Ys(a+8|0)|0;c[b>>2]=-1060065012;c[b+4>>2]=a;c[557122]=(c[557122]|0)+a;d=b+8|0}else d=0;Wv(d|0,0,a|0)|0;return d|0}function wq(a,b,c){a=a|0;b=b|0;c=c|0;Wv(a|0,b&255|0,c|0)|0;return}function xq(a){a=a|0;var b=0,d=0,e=0;b=a+16|0;if(b>>>0<=1073741824?(c[557120]=(c[557120]|0)+1,(b|0)!=0):0){d=Ys(a+24|0)|0;c[d>>2]=-1060065012;c[d+4>>2]=b;c[557122]=(c[557122]|0)+b;e=d+8|0}else e=0;Wv(e|0,0,b|0)|0;return e|0}function yq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(a|0){c[557122]=b-(c[a+-4>>2]|0)+(c[557122]|0);d=$s(a+-8|0,b+8|0)|0;c[d+4>>2]=b;e=d+8|0;return e|0}d=b+16|0;if(d>>>0<=1073741824?(c[557120]=(c[557120]|0)+1,(d|0)!=0):0){a=Ys(b+24|0)|0;c[a>>2]=-1060065012;c[a+4>>2]=d;c[557122]=(c[557122]|0)+d;f=a+8|0}else f=0;Wv(f|0,0,d|0)|0;e=f;return e|0}function zq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=Ia;Ia=Ia+16|0;d=b+8|0;e=b;if(c[555799]|0){Ia=b;return}if(!a){Ia=b;return}c[557121]=(c[557121]|0)+1;f=a+-8|0;g=c[f>>2]|0;h=a+-4|0;i=c[h>>2]|0;if((g|0)!=-1060065012){c[e>>2]=g;c[e+4>>2]=i;vv(97067,e)|0;Nu(c[8745]|0)|0;e=c[h>>2]|0;c[d>>2]=c[f>>2];c[d+4>>2]=e;wt(1715360,97067,d)|0;Cn(1715360);Ia=b;return}if(i>>>0>3){d=i>>>2;e=0;do{c[a+(e<<2)>>2]=-559038737;e=e+1|0}while(e>>>0<d>>>0)}c[557122]=(c[557122]|0)-i;c[f>>2]=11254272;c[h>>2]=13491200;Zs(f);Ia=b;return}function Aq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[557120]|0;c[557120]=d+1;e=Ys(100)|0;c[e>>2]=-1060065012;c[e+4>>2]=92;f=(c[557122]|0)+92|0;c[557122]=f;g=e+8|0;h=e+12|0;i=h+84|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(i|0));c[g>>2]=1;h=e+20|0;c[h>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;i=(b|0)>4?b:4;c[e+96>>2]=i;if(i>>>0>1073741824){j=0;Wv(j|0,0,i|0)|0;c[h>>2]=j;return g|0}c[557120]=d+2;if(!i){j=0;Wv(j|0,0,i|0)|0;c[h>>2]=j;return g|0}d=Ys(i+8|0)|0;c[d>>2]=-1060065012;c[d+4>>2]=i;c[557122]=f+i;j=d+8|0;Wv(j|0,0,i|0)|0;c[h>>2]=j;return g|0}function Bq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a+88|0;e=c[d>>2]|0;if((e|0)>=(b|0))return 0;f=b<<1;c[d>>2]=f;b=a+12|0;a=c[b>>2]|0;if(!a){g=f+16|0;if(g>>>0<=1073741824?(c[557120]=(c[557120]|0)+1,(g|0)!=0):0){h=Ys(f+24|0)|0;c[h>>2]=-1060065012;c[h+4>>2]=g;c[557122]=(c[557122]|0)+g;i=h+8|0}else i=0;Wv(i|0,0,g|0)|0;j=f;k=i}else{c[557122]=f-(c[a+-4>>2]|0)+(c[557122]|0);i=$s(a+-8|0,f+8|0)|0;c[i+4>>2]=f;j=c[d>>2]|0;k=i+8|0}c[b>>2]=k;Wv(k+e|0,0,j-e|0)|0;return 0}function Cq(a){a=a|0;Ro(a);return}function Dq(a){a=a|0;if(!a)return;c[a+16>>2]=0;c[a+20>>2]=0;return}function Eq(b){b=b|0;var d=0,e=0,f=0,g=0;d=b+92|0;e=c[d>>2]|0;c[d>>2]=e+1;a[b+28+e>>0]=-128;f=c[d>>2]|0;if((e|0)>55){if((f|0)<64){e=f;do{c[d>>2]=e+1;a[b+28+e>>0]=0;e=c[d>>2]|0}while((e|0)<64)}Fq(b);e=c[d>>2]|0;if((e|0)<56){g=e;do{c[d>>2]=g+1;a[b+28+g>>0]=0;g=c[d>>2]|0}while((g|0)<56)}}else if((f|0)<56){g=f;do{c[d>>2]=g+1;a[b+28+g>>0]=0;g=c[d>>2]|0}while((g|0)<56)}g=c[b+24>>2]|0;a[b+84>>0]=g>>>24;a[b+85>>0]=g>>>16;a[b+86>>0]=g>>>8;a[b+87>>0]=g;g=c[b+20>>2]|0;a[b+88>>0]=g>>>24;a[b+89>>0]=g>>>16;a[b+90>>0]=g>>>8;a[b+91>>0]=g;Fq(b);return}function Fq(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;b=Ia;Ia=Ia+320|0;e=b;f=0;do{g=f<<2;c[e+(f<<2)>>2]=(d[(g|2)+(a+28)>>0]|0)<<8|((d[(g|1)+(a+28)>>0]|0)<<16|(d[a+28+g>>0]|0)<<24)|(d[(g|3)+(a+28)>>0]|0);f=f+1|0}while((f|0)!=16);f=16;do{g=c[e+(f+-8<<2)>>2]^c[e+(f+-3<<2)>>2]^c[e+(f+-14<<2)>>2]^c[e+(f+-16<<2)>>2];c[e+(f<<2)>>2]=g<<1|g>>>31;f=f+1|0}while((f|0)!=80);f=c[a>>2]|0;g=a+4|0;h=c[g>>2]|0;i=a+8|0;j=c[i>>2]|0;k=a+12|0;l=c[k>>2]|0;m=a+16|0;n=c[m>>2]|0;o=f;p=h;q=j;r=l;s=n;t=0;while(1){u=(o<<5|o>>>27)+1518500249+s+(r&~p|q&p)+(c[e+(t<<2)>>2]|0)|0;v=p<<30|p>>>2;t=t+1|0;if((t|0)==20)break;else{w=q;x=o;o=u;q=v;s=r;r=w;p=x}}p=u;u=o;o=v;v=q;q=r;r=20;while(1){y=(p<<5|p>>>27)+1859775393+(o^u^v)+q+(c[e+(r<<2)>>2]|0)|0;z=u<<30|u>>>2;r=r+1|0;if((r|0)==40)break;else{s=o;t=p;p=y;o=z;q=v;v=s;u=t}}u=y;y=p;p=z;z=o;o=v;v=40;while(1){A=(u<<5|u>>>27)+-1894007588+o+((z|p)&y|z&p)+(c[e+(v<<2)>>2]|0)|0;B=y<<30|y>>>2;v=v+1|0;if((v|0)==60)break;else{q=p;r=u;u=A;p=B;o=z;z=q;y=r}}y=A;A=u;u=B;B=p;p=z;z=60;while(1){C=(y<<5|y>>>27)+-899497514+(u^A^B)+p+(c[e+(z<<2)>>2]|0)|0;D=A<<30|A>>>2;z=z+1|0;if((z|0)==80)break;else{o=u;v=y;y=C;u=D;p=B;B=o;A=v}}c[a>>2]=C+f;c[g>>2]=y+h;c[i>>2]=D+j;c[k>>2]=u+l;c[m>>2]=B+n;c[a+92>>2]=0;Ia=b;return}function Gq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;f=Ia;Ia=Ia+128|0;g=f;h=f+24|0;i=h+20|0;c[i>>2]=0;j=h+24|0;c[j>>2]=0;k=h+92|0;c[k>>2]=0;c[h>>2]=1732584193;l=h+4|0;c[l>>2]=-271733879;m=h+8|0;c[m>>2]=-1732584194;n=h+12|0;c[n>>2]=271733878;o=h+16|0;c[o>>2]=-1009589776;p=h+96|0;c[p>>2]=0;q=h+100|0;c[q>>2]=0;a:do if(d){r=0;s=0;t=d;u=b;while(1){v=t+-1|0;w=a[u>>0]|0;c[k>>2]=r+1;a[h+28+r>>0]=w;w=s+8|0;c[i>>2]=w;if((w|0)==0?(w=(c[j>>2]|0)+1|0,c[j>>2]=w,(w|0)==0):0)c[q>>2]=1;if((c[k>>2]|0)==64)Fq(h);x=(c[q>>2]|0)==0;if(!v)break;if(!x){y=0;break a}r=c[k>>2]|0;s=c[i>>2]|0;t=v;u=u+1|0}if(x)if(!(c[p>>2]|0))z=13;else y=1;else y=0}else z=13;while(0);if((z|0)==13){Eq(h);c[p>>2]=1;y=1}p=c[l>>2]|0;l=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=p;c[g+8>>2]=l;c[g+12>>2]=m;c[g+16>>2]=n;wt(e,97089,g)|0;Ia=f;return y|0}function Hq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;h=b+f|0;i=e+g|0;j=i+-12|0;if(!g){if((f|0)!=1){k=-1;return k|0}k=((a[b>>0]|0)!=0)<<31>>31;return k|0}f=i+-8|0;g=h+-8|0;l=h+-6|0;m=i+-5|0;n=b;o=e;while(1){p=o;q=n+1|0;r=d[n>>0]|0;s=r>>>4;if((s|0)==15)if(q>>>0<h>>>0){t=q;u=15;while(1){v=t+1|0;w=a[t>>0]|0;x=u+(w&255)|0;if(w<<24>>24==-1&v>>>0<h>>>0){t=v;u=x}else{y=v;z=x;break}}}else{y=q;z=15}else{y=q;z=s}A=o+z|0;B=y+z|0;if(A>>>0>j>>>0|B>>>0>g>>>0){C=10;break}u=o+8|0;t=(A>>>0>u>>>0?A:u)+-1+(0-p)&-8;x=y;v=o;while(1){w=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;a[v>>0]=w;a[v+1>>0]=w>>8;a[v+2>>0]=w>>16;a[v+3>>0]=w>>24;w=v+4|0;D=x+4|0;E=d[D>>0]|d[D+1>>0]<<8|d[D+2>>0]<<16|d[D+3>>0]<<24;a[w>>0]=E;a[w+1>>0]=E>>8;a[w+2>>0]=E>>16;a[w+3>>0]=E>>24;v=v+8|0;if(v>>>0>=A>>>0)break;else x=x+8|0}x=y+8+t+(A-(u+t))|0;v=d[x>>0]|d[x+1>>0]<<8;p=A+(0-(v&65535))|0;s=x+2|0;if(p>>>0<e>>>0){F=s;break}x=r&15;a:do if((x|0)==15){q=s;E=15;while(1){if(q>>>0>=l>>>0){G=q;H=E;break a}w=q+1|0;D=a[q>>0]|0;I=E+(D&255)|0;if(D<<24>>24==-1){q=w;E=I}else{G=w;H=I;break}}}else{G=s;H=x}while(0);if((v&65535)<4){a[A>>0]=a[p>>0]|0;a[A+1>>0]=a[p+1>>0]|0;a[A+2>>0]=a[p+2>>0]|0;a[A+3>>0]=a[p+3>>0]|0;x=A+4|0;s=p+4|0;r=x;t=s+(0-(c[30080+(r-s<<2)>>2]|0))|0;s=d[t>>0]|d[t+1>>0]<<8|d[t+2>>0]<<16|d[t+3>>0]<<24;a[x>>0]=s;a[x+1>>0]=s>>8;a[x+2>>0]=s>>16;a[x+3>>0]=s>>24;J=x;K=r;L=t}else{t=d[p>>0]|d[p+1>>0]<<8|d[p+2>>0]<<16|d[p+3>>0]<<24;a[A>>0]=t;a[A+1>>0]=t>>8;a[A+2>>0]=t>>16;a[A+3>>0]=t>>24;t=A+4|0;J=t;K=t;L=p+4|0}t=A+4+H|0;if(t>>>0>f>>>0){if(t>>>0>m>>>0){F=G;break}r=A+12|0;x=(f>>>0>r>>>0?f:r)+-1+(0-K)&-8;s=J;u=L;while(1){E=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;a[s>>0]=E;a[s+1>>0]=E>>8;a[s+2>>0]=E>>16;a[s+3>>0]=E>>24;E=s+4|0;q=u+4|0;I=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;a[E>>0]=I;a[E+1>>0]=I>>8;a[E+2>>0]=I>>16;a[E+3>>0]=I>>24;s=s+8|0;if(s>>>0>=f>>>0)break;else u=u+8|0}u=r+x|0;if(u>>>0<t>>>0){s=u;u=L+8+x|0;while(1){a[s>>0]=a[u>>0]|0;s=s+1|0;if((s|0)==(t|0))break;else u=u+1|0}}}else{u=J;s=L;while(1){x=d[s>>0]|d[s+1>>0]<<8|d[s+2>>0]<<16|d[s+3>>0]<<24;a[u>>0]=x;a[u+1>>0]=x>>8;a[u+2>>0]=x>>16;a[u+3>>0]=x>>24;x=u+4|0;r=s+4|0;p=d[r>>0]|d[r+1>>0]<<8|d[r+2>>0]<<16|d[r+3>>0]<<24;a[x>>0]=p;a[x+1>>0]=p>>8;a[x+2>>0]=p>>16;a[x+3>>0]=p>>24;u=u+8|0;if(u>>>0>=t>>>0)break;else s=s+8|0}}n=G;o=t}if((C|0)==10)if(A>>>0>i>>>0|(B|0)!=(h|0))F=y;else{Vv(o|0,y|0,z|0)|0;k=A-e|0;return k|0}k=b+-1-F|0;return k|0}function Iq(a,b,d){a=a|0;b=b|0;d=d|0;if(!d)return;if(c[554964]|c[554962]|0){Wv(b|0,0,d|0)|0;return}if((c[554977]|0)==(c[554975]|0)?(c[554978]|0)==(c[554976]|0):0){Jq(0,b,d);return}if((d|0)<=0)return;Wv(b|0,0,d|0)|0;return}function Jq(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c[8738]=e;if(ka(28)|0){Wv(d|0,0,e|0)|0;return}a=c[554963]|0;c[554963]=a+1;if(!((a|0)<3|(c[554964]|0)!=0)){Wv(d|0,0,e|0)|0;return}c[742739]=1;a=c[554976]|0;f=(e|0)/(((a|0)==0?1:a<<1)|0)|0;a=(c[554975]|0)==44100?(f|0)/2|0:f;f=(c[8737]|0)==-1;g=Xr()|0;if(!f){f=(g-(c[8737]|0)|0)>500;c[8737]=Xr()|0;if(f){if((a|0)<=0)return;Wv(d|0,0,a<<1|0)|0;return}}else c[8737]=g;c[557128]=0;Kq(2754124,a);Kq(2767676,a);Kq(2781228,a);Kq(2794780,a);Kq(2808332,a);Kq(2821884,a);Kq(2835436,a);Kq(2848988,a);Kq(2862540,a);Kq(2876092,a);Kq(2889644,a);Kq(2903196,a);Kq(2916748,a);Kq(2930300,a);Kq(2943852,a);Kq(2957404,a);if(c[557128]|0)c[554970]=(c[554970]|0)+1;g=(c[555267]|0)==0;if(!g){if(c[690587]|0)Wv(2808332,0,e|0)|0;if(c[693975]|0)Wv(2821884,0,e|0)|0;if(c[697363]|0)Wv(2835436,0,e|0)|0;if(c[700751]|0)Wv(2848988,0,e|0)|0}f=g?16:8;g=(a|0)>0;if(g){h=2;do{i=(h|0)/2|0;j=0;do{k=j+i|0;l=0;do{m=2754124+(j*13552|0)+(l<<1)|0;n=(b[2754124+(k*13552|0)+(l<<1)>>1]|0)+(b[m>>1]|0)|0;if((n|0)<=24575)if((n|0)<-24575)o=((n+24576|0)/5|0)+-24576|0;else o=n;else o=((n+-24576|0)/5|0)+24576|0;b[m>>1]=o;l=l+1|0}while((l|0)!=(a|0));j=j+h|0}while(j>>>0<f>>>0);h=h<<1}while(h>>>0<=f>>>0)}else{h=2;do{o=0;do o=o+h|0;while(o>>>0<f>>>0);h=h<<1}while(h>>>0<=f>>>0)}f=c[555247]|0;if((f|0)!=256&g){h=0;do{o=2754124+(h<<1)|0;b[o>>1]=(B(f,b[o>>1]|0)|0)>>>8;h=h+1|0}while((h|0)!=(a|0))}if(!((c[688530]|0)==0|(c[557129]|0)==0)?(h=c[557127]|0,h|0):0){f=(B(c[555248]|0,h)|0)>>16;if(0)Xs(2228516,1727776,a);if(g){h=0;do{o=1727776+(h<<1)|0;b[o>>1]=(B(f,b[o>>1]|0)|0)>>>8;h=h+1|0}while((h|0)!=(a|0));h=0;do{f=2754124+(h<<1)|0;o=(b[1727776+(h<<1)>>1]|0)+(b[f>>1]|0)|0;if((o|0)<=24575)if((o|0)<-24575)p=((o+24576|0)/5|0)+-24576|0;else p=o;else p=((o+-24576|0)/5|0)+24576|0;b[f>>1]=p;h=h+1|0}while((h|0)!=(a|0))}}h=c[554975]|0;p=c[554976]|0;if((h|0)==22050&(p|0)==1){if(g){f=0;do{b[d+(f<<1)>>1]=b[2754124+(f<<1)>>1]|0;f=f+1|0}while((f|0)!=(a|0))}}else if((h|0)==44100&(p|0)==2?(p=a<<2,g):0){g=0;do{b[d+(g<<1)>>1]=b[2754124+(g>>>2<<1)>>1]|0;g=g+1|0}while((g|0)<(p|0))}p=c[742746]|0;if(!p)q=h;else{Ta[p&15](d,(e|0)/2|0);q=c[554975]|0}if(((q|0)==22050&(c[554976]|0)==1&(c[554969]|0)!=0?(q=c[742747]|0,e=10584e3-((c[q+16>>2]|0)/2|0)|0,p=(a|0)<(e|0)?a:e,(p|0)>0):0)?(Ko(b[d>>1]|0,q),(p|0)!=1):0){q=1;do{Ko(b[d+(q<<1)>>1]|0,c[742747]|0);q=q+1|0}while((q|0)<(p|0))}c[742739]=0;return}function Kq(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;wq(a,0,8192);if(1<<c[a+8240>>2]&c[781382]){Lq(a,((d|0)/2|0)+1|0);if((d|0)>0){e=d;do{f=e;e=e+-1|0;b[a+(e<<1)>>1]=b[a+(((e|0)/2|0)<<1)>>1]|0}while((f|0)>1)}}else Lq(a,d);e=a+8208|0;f=c[e>>2]|0;if(!((f|0)!=0&(d|0)>0))return;g=c[f>>2]|0;h=a+8216|0;i=f+28|0;j=f+20|0;f=~d;k=~g;l=c[h>>2]|0;m=0;while(1){n=d-m|0;o=g-l|0;p=(n|0)<(o|0)?n:o;if((p|0)<1)break;o=c[j>>2]|0;n=m+f|0;q=l+k|0;r=(n|0)>(q|0)?n:q;q=m+-1|0;n=0;s=l;t=m;while(1){b[a+(t<<1)>>1]=b[o+(s<<1)>>1]|0;n=n+1|0;if((n|0)>=(p|0))break;else{s=s+1|0;t=t+1|0}}t=l+-1-r|0;m=q-r|0;c[h>>2]=t;s=(c[i>>2]|0)==0|(t|0)<(g|0);c[h>>2]=s?t:0;if((m|0)>=(d|0)){u=14;break}else l=s?t:0}if((u|0)==14)return;if((g|0)>(l|0))return;c[a+11548>>2]=0;c[e>>2]=0;c[a+8236>>2]=0;c[a+8232>>2]=0;e=a+8220|0;c[e>>2]=0;c[e+4>>2]=0;return}function Lq(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;f=a+12012|0;c[a+12008>>2]=c[f>>2];g=c[554976]|0;h=(((d<<1|0)/(((g|0)==0?1:g<<1)|0)|0)*1e3|0)/(c[554975]|0)|0;g=Xr()|0;i=((((c[f>>2]|0)+h|0)*6|0)+(g<<1)|0)/8|0;h=g+-200|0;c[f>>2]=(i|0)>(h|0)?i:h;h=a+12004|0;c[h>>2]=0;Wv(a+12016|0,0,1536)|0;if((d|0)>0){i=a+11544|0;f=a+8228|0;g=a+8232|0;j=a+8224|0;k=a+11552|0;l=a+8244|0;m=a+8608|0;n=a+11628|0;o=a+8240|0;p=a+11992|0;q=a+11996|0;r=a+11540|0;s=d;d=a;while(1){t=b[i>>1]|0;u=t<<16>>16;if(t<<16>>16<183){t=183-u|0;v=(t|0)<(s|0)?t:s;Vv(d|0,a+8244+(u<<1)|0,v<<1|0)|0;b[i>>1]=v+(e[i>>1]|0);w=s-v|0;x=d+(v<<1)|0}else{w=s;x=d}v=c[h>>2]|0;if((v|0)<64){u=c[f>>2]|0;c[a+12016+(v*24|0)>>2]=u;c[a+12016+(v*24|0)+4>>2]=c[g>>2];t=c[j>>2]|0;c[a+12016+(v*24|0)+8>>2]=t;y=a+12016+(v*24|0)+12|0;c[y>>2]=0;if(t|0){z=c[t+8>>2]|0;c[y>>2]=(u|0)/(((z|0)>1?z:1)|0)|0}c[a+12016+(v*24|0)+16>>2]=c[k>>2];c[a+12016+(v*24|0)+20>>2]=c[554970];c[h>>2]=v+1}v=(w|0)>0;if(!v)break;z=b[m>>1]|0;u=c[j>>2]|0;y=(u|0)==0;if(y)A=0;else A=((c[u>>2]>>3|0)/3|0|0)%3|0;t=c[n>>2]>>3;C=((t|0)/3|0|0)%3|0;D=(A|0)>(C|0)?A:C;C=c[781383]|0;E=c[o>>2]|0;F=1<<E+4;G=1<<E;c[p>>2]=(G&C|0)==0?((F&C|0)==0|(D|0)>1?D:1):2;if(y)H=0;else H=((c[u>>2]>>3|0)/9|0|0)%3|0;u=((t|0)/9|0|0)%3|0;t=(H|0)>(u|0)?H:u;u=(t|0)==2?12:t;t=(u|0)==1?8:u;c[q>>2]=t;u=c[781385]|0;if(!(u&F))I=t;else{F=(t|0)>8?t:8;c[q>>2]=F;I=F}if(!(u&G))J=I;else{G=(I|0)>12?I:12;c[q>>2]=G;J=G}G=17<<E;if((u&G|0)==(G|0))c[q>>2]=(J|0)>15?J:15;Mq(a,l);G=c[781384]|0;u=c[o>>2]|0;if(!(1<<u&G)){if(1<<u+4&G|0){G=0;do{u=a+8244+(G<<1)|0;b[u>>1]=b[u>>1]&-4089;G=G+1|0}while((G|0)!=183)}}else{G=0;do{u=a+8244+(G<<1)|0;E=b[u>>1]|0;F=E<<16>>16;if(E<<16>>16>-1)K=F&-4096;else K=0-((0-(F<<16)|0)>>>16&61440)|0;b[u>>1]=K;G=G+1|0}while((G|0)!=183)}G=c[q>>2]|0;if((G|0)>0){u=16-G|0;F=((B(u,b[l>>1]|0)|0)+(B(G,z<<16>>16)|0)|0)/16|0;b[l>>1]=F;E=F;F=1;do{t=a+8244+(F<<1)|0;E=((B(G,E<<16>>16)|0)+(B(u,b[t>>1]|0)|0)|0)/16|0;b[t>>1]=E;F=F+1|0}while((F|0)!=183)}b[i>>1]=0;Vv(a+8610+(((c[r>>2]|0)%8|0)*366|0)|0,l|0,366)|0;c[r>>2]=((c[r>>2]|0)+1|0)%8|0;if(v){s=w;d=x}else break}x=c[h>>2]|0;if((x|0)<64)L=x;else return}else L=0;x=c[a+8228>>2]|0;c[a+12016+(L*24|0)>>2]=x;c[a+12016+(L*24|0)+4>>2]=c[a+8232>>2];d=c[a+8224>>2]|0;c[a+12016+(L*24|0)+8>>2]=d;w=a+12016+(L*24|0)+12|0;c[w>>2]=0;if(d|0){s=c[d+8>>2]|0;c[w>>2]=(x|0)/(((s|0)>1?s:1)|0)|0}c[a+12016+(L*24|0)+16>>2]=c[a+11552>>2];c[a+12016+(L*24|0)+20>>2]=c[554970];c[h>>2]=L+1;return}function Mq(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=Ia;Ia=Ia+352|0;f=e;Wv(d|0,0,366)|0;g=a+8224|0;h=c[g>>2]|0;i=(h|0)!=0;if(i){j=c[h+8>>2]|0;k=(j|0)>1?j:1;j=a+8228|0;l=c[j>>2]|0;m=(l+1|0)/(k|0)|0;n=a+11556|0;Vv(f|0,n|0,352)|0;if(!((l|0)%(k|0)|0)){c[a+11912>>2]=c[a+11620>>2];c[a+11908>>2]=c[a+11616>>2];c[a+11916>>2]=c[a+11612>>2]}Oq(a,n);Nq(n,d,183,a);n=1735968;l=n+128|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(l|0));Nq(f,1735968,64,a);f=0;do{n=d+(f<<1)|0;l=B(f,b[n>>1]|0)|0;b[n>>1]=((B(64-f|0,b[1735968+(f<<1)>>1]|0)|0)+l|0)/64|0;f=f+1|0}while((f|0)!=64);f=a+11988|0;o=c[f>>2]|0;p=m;q=k;r=f;s=j}else{j=a+8228|0;f=c[j>>2]|0;Wv(d|0,0,366)|0;k=f+1|0;f=a+11556|0;m=a+11584|0;if(c[a+11564>>2]|0?c[m>>2]|0:0){Nq(f,d,64,a);f=0;do{l=d+(f<<1)|0;b[l>>1]=(B(64-f|0,b[l>>1]|0)|0)/64|0;f=f+1|0}while((f|0)!=64)}c[m>>2]=0;m=a+11988|0;c[m>>2]=0;o=0;p=k;q=1;r=m;s=j}j=(c[s>>2]|0)+1|0;c[s>>2]=j;m=a+12e3|0;k=(c[m>>2]|0)+-1|0;c[m>>2]=k;c[r>>2]=o+1;o=a+8232|0;c[o>>2]=(c[o>>2]|0)+1;if(((i?(c[a+8236>>2]|0)!=0:0)?(i=c[h+12>>2]|0,(i&128|0)==0):0)?(r=c[h+16>>2]|0,!((r|0)<=(i|0)|(j|0)<(B(r,q)|0))):0){r=B(i,q)|0;c[s>>2]=r;t=r}else t=j;a:do if(c[g>>2]|0?(c[a+11548>>2]|0)==0:0){if(!k){c[g>>2]=0;break}j=c[h+12>>2]|0;if(!(j&128)){r=c[h+16>>2]|0;if((r|0)>(j|0))break;u=(j|0)>0&(r|0)==0?j:32}else u=0;do if((p|0)<(u|0)){if((p|0)<32){j=0;r=p;while(1){j=(c[h+20+(r*20|0)+8>>2]|0)>0?1:j;if((r|0)>=31)break;else r=r+1|0}if((p|0)<31)v=(c[h+20+(p*20|0)+12>>2]|0)==1?1:j;else v=j}else v=0;if(!(c[a+11992>>2]|0))if(!v)break;else break a;else{r=c[h+8>>2]|0;if((v|0)==0?(t|0)>=((((r|0)>1?r:1)<<5)+128|0):0)break;else break a}}while(0);c[g>>2]=0}while(0);t=a+8220|0;v=c[t>>2]|0;if(!v){Ia=e;return}h=a+11548|0;if(!((k|0)==0&(c[h>>2]|0)!=0)){Ia=e;return}k=a+11552|0;p=c[k>>2]|0;if(p>>>0>=64){Ia=e;return}c[557128]=1;u=c[v+44560+(p<<2)>>2]|0;do if(!(u&4)){b:do if(u&2){if((p|0)<=0){c[554971]=p;w=0;break}if(!(u&1)){r=p;while(1){q=r+-1|0;c[k>>2]=q;if((r|0)<=1){x=q;y=47;break b}if(!(c[v+44560+(q<<2)>>2]&1))r=q;else{x=q;y=47;break}}}else{x=p;y=47}}else{r=p+1|0;c[k>>2]=r;x=r;y=47}while(0);if((y|0)==47){c[554971]=x;if(x>>>0>63)break;else w=x}r=v+43536+(w<<4)|0;if((((c[r>>2]|0)>63?(c[v+43536+(w<<4)+4>>2]|0)>63:0)?(c[v+43536+(w<<4)+8>>2]|0)>63:0)?(c[v+43536+(w<<4)+12>>2]|0)>63:0){c[h>>2]=0;c[a+8208>>2]=0;c[a+8236>>2]=0;c[o>>2]=0;j=t;c[j>>2]=0;c[j+4>>2]=0;Ia=e;return}j=c[v+43536+(w<<4)+(c[a+8240>>2]<<2)>>2]|0;if((j|0)>63)z=0;else z=v+16+(((j|0)>0?j:0)*680|0)|0;c[g>>2]=z;c[s>>2]=0;c[o>>2]=0;b[a+11544>>1]=183;c[m>>2]=Pq(v,r)|0;Ia=e;return}else{c[k>>2]=-1;c[554971]=-1}while(0);c[h>>2]=0;c[a+8208>>2]=0;c[a+8236>>2]=0;c[o>>2]=0;o=t;c[o>>2]=0;c[o+4>>2]=0;Ia=e;return}function Nq(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;g=(c[a+84>>2]|0)!=0;h=c[a+80>>2]|0;i=c[a+28>>2]|0;if((i|0)==0?(c[f+11992>>2]|0)==0:0){c[a+4>>2]=0;Wv(d|0,0,e<<1|0)|0;return}j=a+4|0;k=c[j>>2]|0;l=a+12|0;m=c[a+8>>2]|0;n=c[a+16>>2]|0;o=(m|0)==(n|0)?k:c[l>>2]|0;p=(i*3|0)/2|0;i=c[a>>2]|0;q=(e|0)>0;if((i|0)==8&q){r=(h|0)==2&1;s=0;t=k;u=o;while(1){v=c[a+96+((t>>>10&63)<<2)>>2]|0;w=(B((c[a+96+(((t+1024|0)>>>10&63)<<2)>>2]|0)-v|0,t&1023)|0)+(v<<10)>>10;v=u<<r;x=c[a+96+((v>>>10&63)<<2)>>2]|0;y=t+m&65535;z=u+n&131071;b[d+(s<<1)>>1]=(B((((B((c[a+96+(((v+1024|0)>>>10&63)<<2)>>2]|0)-x|0,v&1023)|0)+(x<<10)>>10|0)/2|0)+w|0,p)|0)/3072|0;s=s+1|0;if((s|0)==(e|0)){A=y;C=z;break}else{t=y;u=z}}}else{A=k;C=o}switch(i|0){case 7:case 0:{if(q){o=0;k=A;u=C;while(1){t=(k&32768|0)==0?(k*3|0)+-49152|0:(49152-k|0)*3|0;if(g){s=(k|0)>57343;r=u&65535;if(r>>>0>57343)D=((r^65535)*24572|0)>>>13;else D=((r*24572|0)>>>0)/57344|0;E=(((t|0)/4|0)*3|0)+-12286+(((s?65535-k|0:k)*24572|0)/((s?8192:57344)|0)|0)|0;F=(((((u&32768|0)==0?(r*3|0)+-49152|0:(49152-r|0)*3|0)|0)/4|0)*3|0)+-12286+D|0}else{r=u&65535;E=t;F=(u&32768|0)==0?(r*3|0)+-49152|0:(49152-r|0)*3|0}r=k+m&65535;t=u+n&131071;b[d+(o<<1)>>1]=(B(((E|0)/4|0)+((F|0)/8|0)|0,p)|0)/3072|0;o=o+1|0;if((o|0)==(e|0)){G=r;H=t;I=17;break}else{k=r;u=t}}}else{J=A;K=C}break}default:{G=A;H=C;I=17}}if((I|0)==17){if((i|0)==1&q){C=(h|0)==2&1;A=0;u=G;k=H;while(1){o=k<<C;do if(g){F=(u|0)>61439;E=((F?65535-u|0:u)*24572|0)/((F?4096:61440)|0)|0;F=o&65535;if(F>>>0>61439){L=E;M=((F^65535)*24572|0)>>>12;break}else{L=E;M=((F*24572|0)>>>0)/61440|0;break}}else{F=(u|0)>57343;E=((F?65535-u|0:u)*24572|0)/((F?8192:57344)|0)|0;F=o&65535;if(F>>>0>57343){L=E;M=((F^65535)*24572|0)>>>13;break}else{L=E;M=((F*24572|0)>>>0)/57344|0;break}}while(0);o=u+m&65535;F=k+n&131071;b[d+(A<<1)>>1]=(B(L+-12286+((M+-12286|0)/2|0)|0,p)|0)/3072|0;A=A+1|0;if((A|0)==(e|0)){N=o;O=F;break}else{u=o;k=F}}}else{N=G;O=H}if((i|0)==2&q){H=(h|0)==2&1;G=0;k=N;u=O;while(1){A=u<<H;if(g){P=2;Q=((((A|0)/2|0)+-32768|0)/4|0)+(((A&65535)+-32768|0)/4|0)|0;R=(((((k|0)/2|0)+-32768|0)/4|0)+(((k&65535)+-32768|0)/4|0)|0)/2|0}else{P=4;Q=(A&65535)+-32768|0;R=(k+-32768|0)/4|0}A=k+m&65535;M=u+n&131071;b[d+(G<<1)>>1]=(B((((Q|0)/(P|0)|0|0)/2|0)+R|0,p)|0)/3072|0;G=G+1|0;if((G|0)==(e|0)){J=A;K=M;break}else{k=A;u=M}}}else{J=N;K=O}}if((i+-3|0)>>>0<2){O=(i|0)==3?32768:45056;N=g?O+6144|0:O;if(q)if((h|0)==2){O=0;u=J;k=K;while(1){G=u+m&65535;R=k+n&131071;b[d+(O<<1)>>1]=(B(((k<<1&65534)>>>0<N>>>0?-3071:3071)+((u|0)<(N|0)?-6143:6143)|0,p)|0)/3072|0;O=O+1|0;if((O|0)==(e|0)){S=G;T=R;I=40;break}else{u=G;k=R}}}else{k=0;u=J;O=K;while(1){R=u+m&65535;G=O+n&131071;b[d+(k<<1)>>1]=(B(((O&65535)>>>0<N>>>0?-3071:3071)+((u|0)<(N|0)?-6143:6143)|0,p)|0)/3072|0;k=k+1|0;if((k|0)==(e|0)){S=R;T=G;I=40;break}else{u=R;O=G}}}else{U=J;V=K}}else{S=J;T=K;I=40}a:do if((I|0)==40){b:do if((i|0)==5&q){K=(h|0)==2&1;if(g){J=32768>>>K;O=0;u=S;k=T;while(1){N=(u&16384|0)!=0;if(!(u&32768))W=N?32768-u|0:u;else W=((N?65536-u|0:u+-32768|0)<<1|0)/3|0;N=u+m&65535;G=k+n&131071;b[d+(O<<1)>>1]=(B(W+-8192+((k&J|0)==0?-1535:1535)|0,p)|0)/3072|0;O=O+1|0;if((O|0)==(e|0)){X=N;Y=G;break b}else{u=N;k=G}}}k=0;u=S;O=T;while(1){J=(u&16384|0)!=0;if(!(u&32768))Z=J?32768-u|0:u;else Z=((J?65536-u|0:u+-32768|0)<<1|0)/3|0;J=O<<K;G=J&65535;N=(J&16384|0)!=0;if(!(J&32768))_=N?32768-G|0:G;else _=((N?65536-G|0:G+-32768|0)<<1|0)/3|0;G=u+m&65535;N=O+n&131071;b[d+(k<<1)>>1]=(B(Z+-8192+((_+-8192|0)/2|0)|0,p)|0)/3072|0;k=k+1|0;if((k|0)==(e|0)){X=G;Y=N;break}else{u=G;O=N}}}else{X=S;Y=T}while(0);if((i|0)==6){O=a+88|0;if(c[O>>2]|0?(u=64-(c[a+32>>2]>>16)|0,k=(u|0)>1?u:1,u=(k|0)>63?(k<<2)+-192|0:k,q):0){k=a+44|0;K=a+52|0;N=a+48|0;G=c[k>>2]|0;J=0;do{do if(G)if((c[O>>2]|0)>1){R=(B(u-G|0,p)|0)/(u|0)|0;P=(B(G,p)|0)/(u|0)|0;Q=B(c[N>>2]|0,R)|0;b[d+(J<<1)>>1]=((B(c[K>>2]|0,P)|0)+Q|0)/2048|0;$=G;break}else{b[d+(J<<1)>>1]=(B(c[N>>2]|0,p)|0)/2048|0;$=G;break}else{c[N>>2]=c[K>>2];c[K>>2]=(tp(12286)|0)+-6143;b[d+(J<<1)>>1]=(B(c[N>>2]|0,p)|0)/2048|0;$=c[k>>2]|0}while(0);G=($+1|0)%(u|0)|0;c[k>>2]=G;J=J+1|0}while((J|0)!=(e|0));if((c[a>>2]|0)!=6){U=X;V=Y;break}}if(!(c[a+88>>2]|0)){if((m|0)>78)aa=(m<<3)+1120|0;else aa=(B(79-m|0,-60)|0)+1752|0;J=(aa|0)>0?aa:0;G=g?0:c[a+40>>2]|0;if(q){k=a+24|0;u=J>>>1;N=a+20|0;K=a+36|0;O=(m+500|0)/3|0;if(!G){Q=0;P=X;while(1){R=c[k>>2]&1^1;c[k>>2]=R;if(!R)ba=c[N>>2]|0;else{R=(tp(J)|0)-u|0;H=R+(c[N>>2]|0)|0;c[N>>2]=H;ba=H}H=c[K>>2]|0;R=(2048/(((H|0)<48?64:H+16|0)|0)|0)+48|0;H=(ba|0)<6143?ba:6143;c[N>>2]=(H|0)>-6143?H:-6143;b[d+(Q<<1)>>1]=(B(B(ba>>6,p)|0,(R|0)>64?R:64)|0)/2048|0;R=P+m&65535;Q=Q+1|0;if((Q|0)==(e|0)){U=R;V=Y;break a}else P=R}}P=0;Q=X;while(1){R=c[k>>2]&1^1;c[k>>2]=R;if(R|0){R=(tp(J)|0)-u|0;c[N>>2]=R+(c[N>>2]|0)}if(((B(Q+101|0,Q+317|0)|0)&8191|0)<(O|0)){R=(B((tp(12286)|0)+-6143|0,G)|0)/1792|0;H=R+(c[N>>2]|0)|0;c[N>>2]=H;ca=H}else ca=c[N>>2]|0;H=c[K>>2]|0;R=(2048/(((H|0)<48?64:H+16|0)|0)|0)+48|0;H=(ca|0)<6143?ca:6143;c[N>>2]=(H|0)>-6143?H:-6143;b[d+(P<<1)>>1]=(B(B(ca>>6,p)|0,(R|0)>64?R:64)|0)/2048|0;R=Q+m&65535;P=P+1|0;if((P|0)==(e|0)){U=R;V=Y;break}else Q=R}}else{U=X;V=Y}}else{U=X;V=Y}}else{U=X;V=Y}}while(0);c[j>>2]=U;c[l>>2]=V;V=c[a+92>>2]|0;if((V|0)<=0)return;a=(c[f+11540>>2]|0)-((V|0)==1?2:4)|0;if((a|0)>-1)da=a;else da=8-((0-a|0)%8|0)|0;a=(da|0)%8|0;if(!q)return;q=0;do{da=d+(q<<1)|0;b[da>>1]=((b[f+8610+(a*366|0)+(q<<1)>>1]<<1)+(b[da>>1]<<2)|0)/4|0;q=q+1|0}while((q|0)!=(e|0));return}function Oq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,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;d=a+8224|0;e=c[d>>2]|0;f=(e|0)==0;if(!f?(g=c[e+8>>2]|0,h=(g|0)>1?g:1,g=a+8228|0,i=c[g>>2]|0,j=(i|0)/(h|0)|0,k=i-(B(j,h)|0)|0,!(f|j>>>0>31)):0){f=(c[e+8>>2]|0)<9;l=e+20+(j*20|0)|0;m=e+20+(j*20|0)+4|0;n=c[m>>2]|0;c[b>>2]=n;o=c[e+20+(j*20|0)+8>>2]|0;p=o<<8;q=b+28|0;c[q>>2]=p;r=c[l>>2]|0;s=r<<16;t=b+32|0;c[t>>2]=s;c[b+60>>2]=r;c[b+64>>2]=n;c[b+56>>2]=o;o=e+20+(j*20|0)+12|0;u=c[o>>2]|0;switch(u|0){case 1:{if((j|0)>0){v=c[a+11908>>2]|0;w=c[a+11916>>2]<<8}else{v=24;w=p}x=h-k|0;y=((B(x<<16,v)|0)+(B(s,k)|0)|0)/(h|0)|0;c[t>>2]=y;v=((B(w,x)|0)+(B(p,k)|0)|0)/(h|0)|0;c[q>>2]=v;z=y;A=v;C=0;break}case 4:{v=(B(p,k)|0)/(h|0)|0;c[q>>2]=v;z=s;A=v;C=1;break}case 5:{v=(B(p,h-k|0)|0)/(h|0)|0;c[q>>2]=v;z=s;A=v;C=0;break}case 6:{v=c[e+20+(((((i|0)/((f?2:4)|0)|0|0)%4|0)+(j&28)|0)*20|0)>>2]<<16;c[t>>2]=v;z=v;A=p;C=0;break}case 7:{v=c[e+20+(((((i|0)/((f?4:8)|0)|0|0)%4|0)+(j&28)|0)*20|0)>>2]<<16;c[t>>2]=v;z=v;A=p;C=0;break}default:{z=s;A=p;C=0}}c[b+36>>2]=r;c[b+40>>2]=A;A=b+68|0;c[A>>2]=0;p=b+72|0;c[p>>2]=0;s=e+20+(j*20|0)+16|0;if(!(c[s>>2]|0)){c[a+11988>>2]=0;D=z}else{do if(!k){z=(u|0)!=1&((j|0)==0?1:(r|0)!=(c[a+11908>>2]|0));v=a+11988|0;f=c[v>>2]|0;i=c[a+8220>>2]|0;y=(n|0)<7?n:7;x=(y|0)>0?y:0;y=c[i+16+(x*680|0)+12>>2]|0;if(!(y&128)){w=c[i+16+(x*680|0)+16>>2]|0;if((w|0)>(y|0))E=16777216;else{F=(y|0)>0&(w|0)==0?y:32;G=17}}else{F=0;G=17}if((G|0)==17){y=c[i+16+(x*680|0)+8>>2]|0;E=B((y|0)>1?y:1,F)|0}y=(u|0)==3;if(z|(f|0)>=(E|0)){if(!(C|y^1))G=21}else if(!(y|C))G=21;if((G|0)==21?(n|0)==(c[a+11912>>2]|0):0)break;c[v>>2]=0}while(0);Qq(a,l,b);D=c[t>>2]|0}l=c[a+8240>>2]|0;n=1<<l+4;if(!(n&c[781382]))H=D;else{C=D+-786432|0;c[t>>2]=C;H=C}C=H&65535;t=H>>16;D=((t+48|0)/12|0)+-4|0;if((H|0)>-1)I=t;else I=12-((0-t|0)%12|0)|0;t=(I|0)%12|0;I=B(c[30112+(t<<2)>>2]|0,65536-C|0)|0;E=((B(c[30112+(t+1<<2)>>2]|0,C)|0)+I|0)/22050|0;if((H|0)<2359296){H=E;I=D;while(1){C=I+1|0;t=(H|0)/2|0;if((I|0)<2){H=t;I=C}else{J=t;K=C;break}}}else{J=E;K=D}if((K|0)>3){D=J;E=K;while(1){K=D<<1;if((E|0)>4){D=K;E=E+-1|0}else{L=K;break}}}else L=J;J=(L|0)<32768?L:32768;L=(J|0)>8?J:8;J=b+8|0;c[J>>2]=L;E=c[o>>2]|0;o=c[A>>2]|0;A=(o|0)==2;a:do if((E|0)==2)if(A)switch((c[g>>2]|0)>>>1&7){case 1:{D=(L*130|0)>>>7;c[J>>2]=D;M=D;break a;break}case 2:{D=(L*132|0)>>>7;c[J>>2]=D;M=D;break a;break}case 3:{D=(L*130|0)>>>7;c[J>>2]=D;M=D;break a;break}case 5:{D=(L*126|0)>>>7;c[J>>2]=D;M=D;break a;break}case 6:{D=(L*124|0)>>>7;c[J>>2]=D;M=D;break a;break}case 7:{D=(L*126|0)>>>7;c[J>>2]=D;M=D;break a;break}default:{M=L;break a}}else G=45;else if(A)G=45;else M=L;while(0);b:do if((G|0)==45)switch((c[g>>2]|0)>>>1&7){case 1:{A=(L*129|0)>>>7;c[J>>2]=A;M=A;break b;break}case 2:{A=(L*130|0)>>>7;c[J>>2]=A;M=A;break b;break}case 3:{A=(L*129|0)>>>7;c[J>>2]=A;M=A;break b;break}case 5:{A=(L*127|0)>>>7;c[J>>2]=A;M=A;break b;break}case 6:{A=(L*126|0)>>>7;c[J>>2]=A;M=A;break b;break}case 7:{A=(L*127|0)>>>7;c[J>>2]=A;M=A;break b;break}default:{M=L;break b}}while(0);L=c[a+8220>>2]|0;g=c[m>>2]|0;m=(g|0)<7?g:7;g=(m|0)>0?m:0;do if((E|0)==3){if(c[s>>2]|0?(c[L+16+(g*680|0)+12>>2]&128|0)==0:0){N=M;break}m=(B(M,h-k|0)|0)/(h|0)|0;c[J>>2]=m;N=m}else N=M;while(0);if((o|0)==3){o=(B(c[b+76>>2]|0,N)|0)/256|0;c[J>>2]=o;O=o}else O=N;if(c[a+11548>>2]|0){N=(B(c[557127]>>8,c[q>>2]|0)|0)/256|0;c[q>>2]=(B(N,c[555248]|0)|0)/256|0}N=c[e>>2]|0;e=(N>>3|0)%3|0;o=N>>>2&1;J=c[p>>2]|0;p=(J>>3|0)%3|0;M=(e|0)>(p|0)?e:p;c[b+80>>2]=M;p=J>>>2&1;c[b+84>>2]=o>>>0>p>>>0?o:p;p=N>>>1&1;N=b+88|0;o=J>>>1&1;J=p>>>0>o>>>0?p:o;c[N>>2]=J;o=c[b>>2]|0;c:do if((o|0)!=6|(J|0)==0){p=(M|0)==0;e=b+16|0;c[e>>2]=(B(O,p?256:255)|0)/256|0;d:do switch(o|0){case 0:{switch(M|0){case 1:{c[e>>2]=(O*193|0)/256|0;break d;break}case 2:{c[e>>2]=(O*384|0)/256|0;break d;break}default:break d}break}case 7:{if(p){c[e>>2]=(O*254|0)/256|0;break c}switch(M|0){case 1:{c[e>>2]=(O*250|0)/256|0;break c;break}case 2:{c[e>>2]=(O*508|0)/256|0;break c;break}default:break c}break}default:{}}while(0);if(o>>>0<6&(M|0)>0)c[q>>2]=((c[q>>2]|0)*5|0)/4|0}else{e=a+11996|0;if((c[e>>2]|0)>11){c[N>>2]=2;c[e>>2]=0}c[b+16>>2]=(B(O,(M|0)==0?256:255)|0)/256|0}while(0);M=c[d>>2]|0;if(!M)P=0;else P=((c[M>>2]>>3|0)/3|0|0)%3|0;M=b+92|0;d=((c[a+11628>>2]>>3|0)/3|0|0)%3|0;a=(P|0)>(d|0)?P:d;c[M>>2]=a;d=c[781383]|0;if(!(d&n))Q=a;else{n=(a|0)>1?a:1;c[M>>2]=n;Q=n}if(!(d&1<<l))return;c[M>>2]=(Q|0)>2?Q:2;return}c[b+28>>2]=0;c[b>>2]=0;c[b+8>>2]=0;return}function Pq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0;d=c[b>>2]|0;e=d>>>0<64;if((e?(f=c[a+16+(d*680|0)+12>>2]|0,(f&128|0)==0):0)?(g=c[a+16+(d*680|0)+16>>2]|0,(g|0)<=(f|0)):0){h=d;i=f;j=g}else k=7;do if((k|0)==7){g=c[b+4>>2]|0;f=g>>>0<64;if((f?(l=c[a+16+(g*680|0)+12>>2]|0,(l&128|0)==0):0)?(m=c[a+16+(g*680|0)+16>>2]|0,(m|0)<=(l|0)):0){h=g;i=l;j=m;break}m=c[b+8>>2]|0;l=m>>>0<64;if((l?(n=c[a+16+(m*680|0)+12>>2]|0,(n&128|0)==0):0)?(o=c[a+16+(m*680|0)+16>>2]|0,(o|0)<=(n|0)):0){h=m;i=n;j=o;break}o=c[b+12>>2]|0;n=o>>>0<64;if((n?(p=c[a+16+(o*680|0)+12>>2]|0,(p&128|0)==0):0)?(q=c[a+16+(o*680|0)+16>>2]|0,(q|0)<=(p|0)):0){h=o;i=p;j=q;break}if(e){q=c[a+16+(d*680|0)+8>>2]|0;p=(q|0)>1?q:1;q=c[a+16+(d*680|0)+12>>2]|0;r=(q&128|0)==0;if(r)s=((q|0)>0?(c[a+16+(d*680|0)+16>>2]|0)==0:0)?q:32;else s=0;if((B(s,p)|0)>=0){if(r)t=((q|0)>0?(c[a+16+(d*680|0)+16>>2]|0)==0:0)?q:32;else t=0;u=B(t,p)|0}else u=0}else u=0;if(f){f=c[a+16+(g*680|0)+8>>2]|0;p=(f|0)>1?f:1;f=c[a+16+(g*680|0)+12>>2]|0;q=(f&128|0)==0;if(q)v=((f|0)>0?(c[a+16+(g*680|0)+16>>2]|0)==0:0)?f:32;else v=0;if((u|0)<=(B(v,p)|0)){if(q)w=((f|0)>0?(c[a+16+(g*680|0)+16>>2]|0)==0:0)?f:32;else w=0;x=B(w,p)|0}else x=u}else x=u;if(l){l=c[a+16+(m*680|0)+8>>2]|0;p=(l|0)>1?l:1;l=c[a+16+(m*680|0)+12>>2]|0;f=(l&128|0)==0;if(f)y=((l|0)>0?(c[a+16+(m*680|0)+16>>2]|0)==0:0)?l:32;else y=0;if((x|0)<=(B(y,p)|0)){if(f)z=((l|0)>0?(c[a+16+(m*680|0)+16>>2]|0)==0:0)?l:32;else z=0;A=B(z,p)|0}else A=x}else A=x;if(!n){C=A;return C|0}n=c[a+16+(o*680|0)+8>>2]|0;p=(n|0)>1?n:1;n=c[a+16+(o*680|0)+12>>2]|0;l=(n&128|0)==0;if(l)D=((n|0)>0?(c[a+16+(o*680|0)+16>>2]|0)==0:0)?n:32;else D=0;if((A|0)>(B(D,p)|0)){C=A;return C|0}if(l)E=((n|0)>0?(c[a+16+(o*680|0)+16>>2]|0)==0:0)?n:32;else E=0;C=B(E,p)|0;return C|0}while(0);E=c[a+16+(h*680|0)+8>>2]|0;if(!(i&128))F=(i|0)>0&(j|0)==0?i:32;else F=0;C=B(F,(E|0)>1?E:1)|0;return C|0}function Qq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=c[a+8220>>2]|0;if(!e)return;f=c[b+4>>2]|0;b=(f|0)<7?f:7;f=(b|0)>0?b:0;b=d+72|0;c[b>>2]=c[e+16+(f*680|0)>>2];g=c[e+16+(f*680|0)+12>>2]|0;if(g&128|0){c[d>>2]=8;if(c[e+16+(f*680|0)+8>>2]&1|0){h=d+32|0;c[h>>2]=(c[h>>2]|0)+-786432}h=0;do{i=c[e+16+(f*680|0)+20+(h*20|0)+4>>2]|0;j=i<<6&192|c[e+16+(f*680|0)+20+(h*20|0)>>2];k=c[e+16+(f*680|0)+20+(h*20|0)+16>>2]|0;l=(c[e+16+(f*680|0)+20+(h*20|0)+8>>2]<<1&14|i>>>2&1|c[e+16+(f*680|0)+20+(h*20|0)+12>>2]<<4&112|k&128)-(k<<1&256)|0;k=h<<1;c[d+96+(k<<2)>>2]=j-(j<<1&256)<<7;c[d+96+((k|1)<<2)>>2]=l<<7;h=h+1|0}while((h|0)!=32);c[d+68>>2]=0;return}h=c[e+16+(f*680|0)+8>>2]|0;l=(h|0)>1?h:1;k=(h|0)<9;h=k?4:8;j=k?2:4;k=c[e+16+(f*680|0)+16>>2]|0;i=a+11988|0;m=c[i>>2]|0;if((k|0)<=(g|0)|(m|0)<(B(l,k)|0))n=m;else{m=B(l,g)|0;c[i>>2]=m;n=m}m=(n|0)/(l|0)|0;i=n-(B(m,l)|0)|0;if((m|0)<=31?(m|0)<(((g|0)>0&(k|0)==0?g:32)|0):0){g=(m|0)<31?m:31;k=(g|0)>0?g:0;g=e+16+(f*680|0)+20+(k*20|0)|0;o=c[g>>2]|0;p=o<<16;q=e+16+(f*680|0)+20+(k*20|0)+8|0;r=c[q>>2]|0;s=r<<8;if((i|0)==(l+-1|0)){c[a+11928>>2]=o;c[a+11936>>2]=r;c[a+11932>>2]=c[e+16+(f*680|0)+20+(k*20|0)+4>>2]}r=e+16+(f*680|0)+20+(k*20|0)+12|0;o=c[r>>2]|0;switch(o|0){case 1:{if((m|0)>0){t=c[a+11928>>2]<<16;u=c[a+11936>>2]<<8}else{t=1572864;u=s}a=l-i|0;v=((B(t,a)|0)+(B(i<<16,c[g>>2]|0)|0)|0)/(l|0)|0;w=((B(u,a)|0)+(B(s,i)|0)|0)/(l|0)|0;break}case 3:{c[d+76>>2]=(l-i<<8|0)/(l|0)|0;v=p;w=s;break}case 4:{v=p;w=(B(s,i)|0)/(l|0)|0;break}case 5:{v=p;w=(B(s,l-i|0)|0)/(l|0)|0;break}case 6:{v=c[e+16+(f*680|0)+20+(((((n|0)/(j|0)|0|0)%4|0)+(m&28)|0)*20|0)>>2]<<16;w=s;break}case 7:{v=c[e+16+(f*680|0)+20+(((((n|0)/(h|0)|0|0)%4|0)+(m&28)|0)*20|0)>>2]<<16;w=s;break}default:{v=p;w=s}}s=c[e+16+(f*680|0)+20+(k*20|0)+4>>2]|0;c[d>>2]=s;if((c[e+16+(f*680|0)+20+(k*20|0)+16>>2]|0)!=0?(k=(s|0)<7?s:7,s=(k|0)>0?k:0,(c[e+16+(s*680|0)+12>>2]&128|0)!=0):0){c[b>>2]=c[e+16+(s*680|0)>>2];c[d>>2]=8;if(c[e+16+(s*680|0)+8>>2]&1|0){b=d+32|0;c[b>>2]=(c[b>>2]|0)+-786432}b=0;do{k=c[e+16+(s*680|0)+20+(b*20|0)+4>>2]|0;f=k<<6&192|c[e+16+(s*680|0)+20+(b*20|0)>>2];p=c[e+16+(s*680|0)+20+(b*20|0)+16>>2]|0;m=(c[e+16+(s*680|0)+20+(b*20|0)+8>>2]<<1&14|k>>>2&1|c[e+16+(s*680|0)+20+(b*20|0)+12>>2]<<4&112|p&128)-(p<<1&256)|0;p=b<<1;c[d+96+(p<<2)>>2]=f-(f<<1&256)<<7;c[d+96+((p|1)<<2)>>2]=m<<7;b=b+1|0}while((b|0)!=32);x=c[r>>2]|0}else x=o;o=d+32|0;c[o>>2]=v+-1572864+(c[o>>2]|0);o=d+36|0;c[o>>2]=(c[g>>2]|0)+-24+(c[o>>2]|0);o=c[q>>2]|0;c[d+40>>2]=(w*7|0)/(((o|0)>1?o:1)|0)|0;o=d+28|0;c[o>>2]=(B(c[o>>2]|0,w)|0)/1792|0;c[d+68>>2]=x;return}c[d+28>>2]=0;c[d>>2]=0;return}function Rq(){Rr();return}function Sq(){Sr();return}function Tq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d;wq(1727776,0,8192);c[557129]=0;wq(2754124,0,216832);c[e>>2]=c[555260];wt(1715360,97146,e)|0;Cn(1715360);if(c[555284]|0){f=0;Ia=d;return f|0}c[554975]=a;c[554976]=b;e=Pr(a,b)|0;if(!e){f=0;Ia=d;return f|0}c[554975]=0;c[554976]=0;f=e;Ia=d;return f|0}function Uq(){return Qr()|0}function Vq(a){a=a|0;c[742746]=a;return}function Wq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=xq(40)|0;if(!d){e=0;return e|0}c[d>>2]=a;c[d+8>>2]=22050;c[d+4>>2]=b;c[d+12>>2]=1;c[d+28>>2]=0;c[d+32>>2]=256;f=xq(B((b|0)/8|0,a)|0)|0;c[d+16>>2]=f;c[d+20>>2]=f;c[d+36>>2]=-1;c[554810]=(c[554810]|0)+1;e=d;return e|0}function Xq(a){a=a|0;var b=0,d=0,e=0;if(!a)return;Rr();if(0){Rr();b=a+36|0;d=c[b>>2]|0;if(d>>>0<16?(e=2754124+(d*13552|0)+8208|0,(c[e>>2]|0)==(a|0)):0){c[2754124+(d*13552|0)+11548>>2]=0;c[e>>2]=0;c[2754124+(d*13552|0)+8236>>2]=0;c[2754124+(d*13552|0)+8232>>2]=0;e=2754124+(d*13552|0)+8220|0;c[e>>2]=0;c[e+4>>2]=0;c[b>>2]=-1}Sr()}zq(c[a+16>>2]|0);zq(a);c[554810]=(c[554810]|0)+-1;Sr();return}function Yq(a){a=a|0;var b=0,d=0,e=0;if(!((a|0)!=0&0!=0))return;Rr();b=a+36|0;d=c[b>>2]|0;if(d>>>0<16?(e=2754124+(d*13552|0)+8208|0,(c[e>>2]|0)==(a|0)):0){c[2754124+(d*13552|0)+11548>>2]=0;c[e>>2]=0;c[2754124+(d*13552|0)+8236>>2]=0;c[2754124+(d*13552|0)+8232>>2]=0;e=2754124+(d*13552|0)+8220|0;c[e>>2]=0;c[e+4>>2]=0;c[b>>2]=-1}Sr();return}function Zq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;Rr();g=(d|0)==0?-1:d;a:do if((f+1|0)>>>0<=16){if(!a){if((f|0)!=-1){c[2754124+(f*13552|0)+11548>>2]=0;c[2754124+(f*13552|0)+8208>>2]=0;c[2754124+(f*13552|0)+8236>>2]=0;c[2754124+(f*13552|0)+8232>>2]=0;d=2754124+(f*13552|0)+8220|0;c[d>>2]=0;c[d+4>>2]=0;break}d=(c[555267]|0)==0?16:4;h=0;while(1){c[2754124+(h*13552|0)+11548>>2]=0;c[2754124+(h*13552|0)+8208>>2]=0;c[2754124+(h*13552|0)+8236>>2]=0;c[2754124+(h*13552|0)+8232>>2]=0;i=2754124+(h*13552|0)+8220|0;c[i>>2]=0;c[i+4>>2]=0;h=h+1|0;if(h>>>0>=d>>>0)break a}}d=(f|0)==-1;do if(!(c[555267]|0))if(d)if(!((c[717687]|0)==0&(c[717691]|0)==0&(c[718522]|0)==0))if(!((c[721075]|0)==0&(c[721079]|0)==0&(c[721910]|0)==0))if(!((c[724463]|0)==0&(c[724467]|0)==0&(c[725298]|0)==0))if(!((c[727851]|0)==0&(c[727855]|0)==0&(c[728686]|0)==0))if(!((c[731239]|0)==0&(c[731243]|0)==0&(c[732074]|0)==0))if(!((c[734627]|0)==0&(c[734631]|0)==0&(c[735462]|0)==0))if(!((c[738015]|0)==0&(c[738019]|0)==0&(c[738850]|0)==0))if((c[741403]|0)==0&(c[741407]|0)==0&(c[742238]|0)==0)j=15;else{h=c[717691]|0;if((h|0)!=0&(c[718522]|0)==0){k=8;l=c[h+8>>2]|0}else{k=-1;l=256}h=c[721079]|0;if((h|0)!=0&(c[721910]|0)==0){i=c[h+8>>2]|0;h=(k|0)==-1|(i|0)<(l|0);m=h?9:k;n=h?i:l}else{m=k;n=l}i=c[724467]|0;if((i|0)!=0&(c[725298]|0)==0){h=c[i+8>>2]|0;i=(m|0)==-1|(h|0)<(n|0);o=i?10:m;p=i?h:n}else{o=m;p=n}h=c[727855]|0;if((h|0)!=0&(c[728686]|0)==0){i=c[h+8>>2]|0;h=(o|0)==-1|(i|0)<(p|0);q=h?11:o;r=h?i:p}else{q=o;r=p}i=c[731243]|0;if((i|0)!=0&(c[732074]|0)==0){h=c[i+8>>2]|0;i=(q|0)==-1|(h|0)<(r|0);s=i?12:q;t=i?h:r}else{s=q;t=r}h=c[734631]|0;if((h|0)!=0&(c[735462]|0)==0){i=c[h+8>>2]|0;h=(s|0)==-1|(i|0)<(t|0);u=h?13:s;v=h?i:t}else{u=s;v=t}i=c[738019]|0;if((i|0)!=0&(c[738850]|0)==0){h=c[i+8>>2]|0;i=(u|0)==-1|(h|0)<(v|0);w=i?14:u;x=i?h:v}else{w=u;x=v}h=c[741407]|0;if(!((h|0)!=0&(c[742238]|0)==0)){y=w;z=26;break}if((w|0)!=-1?(c[h+8>>2]|0)>=(x|0):0){j=w;break}j=15}else j=14;else j=13;else j=12;else j=11;else j=10;else j=9;else j=8;else j=f;else if(d){h=(c[690583]|0)==0;if(!(h&(c[690587]|0)==0&(c[691418]|0)==0&(c[704135]|0)==0&(c[704139]|0)==0&(c[704970]|0)==0)){i=(c[693971]|0)==0;if(!(i&(c[693975]|0)==0&(c[694806]|0)==0&(c[707523]|0)==0&(c[707527]|0)==0&(c[708358]|0)==0)){A=(c[697359]|0)==0;if(!(A&(c[697363]|0)==0&(c[698194]|0)==0&(c[710911]|0)==0&(c[710915]|0)==0&(c[711746]|0)==0)){C=(c[700747]|0)==0;if(!(C&(c[700751]|0)==0&(c[701582]|0)==0&(c[714299]|0)==0&(c[714303]|0)==0&(c[715134]|0)==0)){D=c[781381]|0;if(!(h&(c[690587]|0)==0&(c[691418]|0)==0&(c[704135]|0)==0&(c[704139]|0)==0&(D&1|0)==0))if(!(i&(c[693975]|0)==0&(c[694806]|0)==0&(c[707523]|0)==0&(c[707527]|0)==0&(D&2|0)==0))if(!(A&(c[697363]|0)==0&(c[698194]|0)==0&(c[710911]|0)==0&(c[710915]|0)==0&(D&4|0)==0))if(!(C&(c[700751]|0)==0&(c[701582]|0)==0&(c[714299]|0)==0&(c[714303]|0)==0&(D&8|0)==0))if(!((c[691418]|D&1|0)==0&(h&(c[690587]|0)==0)))if(!((c[694806]|D&2|0)==0&(i&(c[693975]|0)==0)))if(!((c[698194]|D&4|0)==0&(A&(c[697363]|0)==0)))if((c[701582]|D&8|0)==0&(C&(c[700751]|0)==0))j=3;else{if((D&1|0)!=0?!((c[704135]|0)==0&(c[704139]|0)==0&(c[704970]|0)==0):0){E=-1;F=256}else z=17;do if((z|0)==17){C=c[690587]|0;if(!C){E=-1;F=256;break}E=0;F=c[C+8>>2]|0}while(0);if((D&2|0)!=0?!((c[707523]|0)==0&(c[707527]|0)==0&(c[708358]|0)==0):0){G=E;H=F}else z=52;do if((z|0)==52){C=c[693975]|0;if(!C){G=E;H=F;break}A=(E|0)!=-1;i=c[C+8>>2]|0;C=(i|0)>(F|0);G=(A&C^1)&1;H=A&C?F:i}while(0);if((D&4|0)!=0?!((c[710911]|0)==0&(c[710915]|0)==0&(c[711746]|0)==0):0){I=G;J=H}else z=56;do if((z|0)==56){i=c[697363]|0;if(!i){I=G;J=H;break}C=c[i+8>>2]|0;i=(G|0)!=-1&(C|0)>(H|0);I=i?G:2;J=i?H:C}while(0);if(D&8|0?!((c[714299]|0)==0&(c[714303]|0)==0&(c[715134]|0)==0):0){y=I;z=26;break}C=c[700751]|0;if(!C){y=I;z=26;break}if((I|0)!=-1?(c[C+8>>2]|0)>(J|0):0){j=I;break}j=3}else j=2;else j=1;else j=0;else j=3;else j=2;else j=1;else j=0}else j=3}else j=2}else j=1}else j=0}else j=f;while(0);if((z|0)==26)if(y>>>0>15)break;else j=y;d=c[a+8>>2]|0;C=(d|0)>1?d:1;c[2754124+(j*13552|0)+8224>>2]=a;c[2754124+(j*13552|0)+8240>>2]=j&3;c[2754124+(j*13552|0)+8228>>2]=B(C,b)|0;c[2754124+(j*13552|0)+8232>>2]=0;c[2754124+(j*13552|0)+12e3>>2]=B(C,g)|0;c[2754124+(j*13552|0)+8220>>2]=e;c[2754124+(j*13552|0)+11548>>2]=0;c[2754124+(j*13552|0)+8236>>2]=1;Sr();K=j;return K|0}while(0);Sr();K=-1;return K|0}function _q(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;$q(a);d=c[a+12>>2]|0;if(d&128|0){e=0;Zq(a,0,e,b,-1)|0;return}f=c[a+16>>2]|0;e=(f|0)>(d|0)?-1:(d|0)>0&(f|0)==0?d:32;Zq(a,0,e,b,-1)|0;return}function $q(a){a=a|0;var b=0;Rr();if(!a){if(!(c[691418]|0)){c[691418]=0;c[690583]=0;c[690590]=0;c[690589]=0;b=2762344;c[b>>2]=0;c[b+4>>2]=0}if(!(c[694806]|0)){c[694806]=0;c[693971]=0;c[693978]=0;c[693977]=0;b=2775896;c[b>>2]=0;c[b+4>>2]=0}if(!(c[698194]|0)){c[698194]=0;c[697359]=0;c[697366]=0;c[697365]=0;b=2789448;c[b>>2]=0;c[b+4>>2]=0}if(!(c[701582]|0)){c[701582]=0;c[700747]=0;c[700754]=0;c[700753]=0;b=2803e3;c[b>>2]=0;c[b+4>>2]=0}if(!(c[704970]|0)){c[704970]=0;c[704135]=0;c[704142]=0;c[704141]=0;b=2816552;c[b>>2]=0;c[b+4>>2]=0}if(!(c[708358]|0)){c[708358]=0;c[707523]=0;c[707530]=0;c[707529]=0;b=2830104;c[b>>2]=0;c[b+4>>2]=0}if(!(c[711746]|0)){c[711746]=0;c[710911]=0;c[710918]=0;c[710917]=0;b=2843656;c[b>>2]=0;c[b+4>>2]=0}if(!(c[715134]|0)){c[715134]=0;c[714299]=0;c[714306]=0;c[714305]=0;b=2857208;c[b>>2]=0;c[b+4>>2]=0}if(!(c[718522]|0)){c[718522]=0;c[717687]=0;c[717694]=0;c[717693]=0;b=2870760;c[b>>2]=0;c[b+4>>2]=0}if(!(c[721910]|0)){c[721910]=0;c[721075]=0;c[721082]=0;c[721081]=0;b=2884312;c[b>>2]=0;c[b+4>>2]=0}if(!(c[725298]|0)){c[725298]=0;c[724463]=0;c[724470]=0;c[724469]=0;b=2897864;c[b>>2]=0;c[b+4>>2]=0}if(!(c[728686]|0)){c[728686]=0;c[727851]=0;c[727858]=0;c[727857]=0;b=2911416;c[b>>2]=0;c[b+4>>2]=0}if(!(c[732074]|0)){c[732074]=0;c[731239]=0;c[731246]=0;c[731245]=0;b=2924968;c[b>>2]=0;c[b+4>>2]=0}if(!(c[735462]|0)){c[735462]=0;c[734627]=0;c[734634]=0;c[734633]=0;b=2938520;c[b>>2]=0;c[b+4>>2]=0}if(!(c[738850]|0)){c[738850]=0;c[738015]=0;c[738022]=0;c[738021]=0;b=2952072;c[b>>2]=0;c[b+4>>2]=0}if(c[742238]|0){Sr();return}c[742238]=0;c[741403]=0;c[741410]=0;c[741409]=0;b=2965624;c[b>>2]=0;c[b+4>>2]=0;Sr();return}else{if((c[690587]|0)==(a|0)){c[691418]=0;c[690583]=0;c[690590]=0;c[690589]=0;b=2762344;c[b>>2]=0;c[b+4>>2]=0}if((c[693975]|0)==(a|0)){c[694806]=0;c[693971]=0;c[693978]=0;c[693977]=0;b=2775896;c[b>>2]=0;c[b+4>>2]=0}if((c[697363]|0)==(a|0)){c[698194]=0;c[697359]=0;c[697366]=0;c[697365]=0;b=2789448;c[b>>2]=0;c[b+4>>2]=0}if((c[700751]|0)==(a|0)){c[701582]=0;c[700747]=0;c[700754]=0;c[700753]=0;b=2803e3;c[b>>2]=0;c[b+4>>2]=0}if((c[704139]|0)==(a|0)){c[704970]=0;c[704135]=0;c[704142]=0;c[704141]=0;b=2816552;c[b>>2]=0;c[b+4>>2]=0}if((c[707527]|0)==(a|0)){c[708358]=0;c[707523]=0;c[707530]=0;c[707529]=0;b=2830104;c[b>>2]=0;c[b+4>>2]=0}if((c[710915]|0)==(a|0)){c[711746]=0;c[710911]=0;c[710918]=0;c[710917]=0;b=2843656;c[b>>2]=0;c[b+4>>2]=0}if((c[714303]|0)==(a|0)){c[715134]=0;c[714299]=0;c[714306]=0;c[714305]=0;b=2857208;c[b>>2]=0;c[b+4>>2]=0}if((c[717691]|0)==(a|0)){c[718522]=0;c[717687]=0;c[717694]=0;c[717693]=0;b=2870760;c[b>>2]=0;c[b+4>>2]=0}if((c[721079]|0)==(a|0)){c[721910]=0;c[721075]=0;c[721082]=0;c[721081]=0;b=2884312;c[b>>2]=0;c[b+4>>2]=0}if((c[724467]|0)==(a|0)){c[725298]=0;c[724463]=0;c[724470]=0;c[724469]=0;b=2897864;c[b>>2]=0;c[b+4>>2]=0}if((c[727855]|0)==(a|0)){c[728686]=0;c[727851]=0;c[727858]=0;c[727857]=0;b=2911416;c[b>>2]=0;c[b+4>>2]=0}if((c[731243]|0)==(a|0)){c[732074]=0;c[731239]=0;c[731246]=0;c[731245]=0;b=2924968;c[b>>2]=0;c[b+4>>2]=0}if((c[734631]|0)==(a|0)){c[735462]=0;c[734627]=0;c[734634]=0;c[734633]=0;b=2938520;c[b>>2]=0;c[b+4>>2]=0}if((c[738019]|0)==(a|0)){c[738850]=0;c[738015]=0;c[738022]=0;c[738021]=0;b=2952072;c[b>>2]=0;c[b+4>>2]=0}if((c[741407]|0)!=(a|0)){Sr();return}c[742238]=0;c[741403]=0;c[741410]=0;c[741409]=0;a=2965624;c[a>>2]=0;c[a+4>>2]=0;Sr();return}}function ar(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;Rr();b=(c[691418]|0)==0;do if(!a)if(b|(c[690586]|0)==0)if((c[694806]|0)==0|(c[693974]|0)==0)if((c[698194]|0)==0|(c[697362]|0)==0)if((c[701582]|0)==0|(c[700750]|0)==0)if((c[704970]|0)==0|(c[704138]|0)==0)if((c[708358]|0)==0|(c[707526]|0)==0)if((c[711746]|0)==0|(c[710914]|0)==0)if((c[715134]|0)==0|(c[714302]|0)==0)if((c[718522]|0)==0|(c[717690]|0)==0)if((c[721910]|0)==0|(c[721078]|0)==0)if((c[725298]|0)==0|(c[724466]|0)==0)if((c[728686]|0)==0|(c[727854]|0)==0)if((c[732074]|0)==0|(c[731242]|0)==0)if((c[735462]|0)==0|(c[734630]|0)==0)if((c[738850]|0)==0|(c[738018]|0)==0)if((c[742238]|0)==0|(c[741406]|0)==0)d=8;else{e=15;d=6}else{e=14;d=6}else{e=13;d=6}else{e=12;d=6}else{e=11;d=6}else{e=10;d=6}else{e=9;d=6}else{e=8;d=6}else{e=7;d=6}else{e=6;d=6}else{e=5;d=6}else{e=4;d=6}else{e=3;d=6}else{e=2;d=6}else{e=1;d=6}else{e=0;d=6}else{if(!b?(f=c[690586]|0,(f|0)!=0&(f|0)==(a|0)):0){e=0;d=6;break}if(c[694806]|0?(f=c[693974]|0,(f|0)!=0&(f|0)==(a|0)):0){e=1;d=6;break}if(c[698194]|0?(f=c[697362]|0,(f|0)!=0&(f|0)==(a|0)):0){e=2;d=6;break}if(c[701582]|0?(f=c[700750]|0,(f|0)!=0&(f|0)==(a|0)):0){e=3;d=6;break}if(c[704970]|0?(f=c[704138]|0,(f|0)!=0&(f|0)==(a|0)):0){e=4;d=6;break}if(c[708358]|0?(f=c[707526]|0,(f|0)!=0&(f|0)==(a|0)):0){e=5;d=6;break}if(c[711746]|0?(f=c[710914]|0,(f|0)!=0&(f|0)==(a|0)):0){e=6;d=6;break}if(c[715134]|0?(f=c[714302]|0,(f|0)!=0&(f|0)==(a|0)):0){e=7;d=6;break}if(c[718522]|0?(f=c[717690]|0,(f|0)!=0&(f|0)==(a|0)):0){e=8;d=6;break}if(c[721910]|0?(f=c[721078]|0,(f|0)!=0&(f|0)==(a|0)):0){e=9;d=6;break}if(c[725298]|0?(f=c[724466]|0,(f|0)!=0&(f|0)==(a|0)):0){e=10;d=6;break}if(c[728686]|0?(f=c[727854]|0,(f|0)!=0&(f|0)==(a|0)):0){e=11;d=6;break}if(c[732074]|0?(f=c[731242]|0,(f|0)!=0&(f|0)==(a|0)):0){e=12;d=6;break}if(c[735462]|0?(f=c[734630]|0,(f|0)!=0&(f|0)==(a|0)):0){e=13;d=6;break}if(c[738850]|0?(f=c[738018]|0,(f|0)!=0&(f|0)==(a|0)):0){e=14;d=6;break}if((c[742238]|0)!=0?(f=c[741406]|0,(f|0)!=0&(f|0)==(a|0)):0){e=15;d=6}else d=8}while(0);if((d|0)==6){Sr();g=c[2754124+(e*13552|0)+11552>>2]|0;return g|0}else if((d|0)==8){Sr();g=-1;return g|0}return 0}function br(a){a=a|0;var b=0,d=0,e=0;Rr();if((c[690587]|0)!=(a|0))if((c[693975]|0)!=(a|0))if((c[697363]|0)!=(a|0))if((c[700751]|0)!=(a|0))if((c[704139]|0)!=(a|0))if((c[707527]|0)!=(a|0))if((c[710915]|0)!=(a|0))if((c[714303]|0)!=(a|0))if((c[717691]|0)!=(a|0))if((c[721079]|0)!=(a|0))if((c[724467]|0)!=(a|0))if((c[727855]|0)!=(a|0))if((c[731243]|0)!=(a|0))if((c[734631]|0)!=(a|0))if((c[738019]|0)!=(a|0))if((c[741407]|0)==(a|0))b=15;else{Sr();d=-1;return d|0}else b=14;else b=13;else b=12;else b=11;else b=10;else b=9;else b=8;else b=7;else b=6;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;e=c[a+8>>2]|0;a=(c[2754124+(b*13552|0)+8228>>2]|0)/(((e|0)>1?e:1)|0)|0;Sr();d=a;return d|0}function cr(a){a=a|0;var b=0;Rr();b=c[2754124+(a*13552|0)+8224>>2]|0;Sr();return b|0}function dr(a){a=a|0;var b=0;if((a+1|0)>>>0>16)return;Rr();if((a|0)==-1){c[690590]=0;c[693978]=0;c[697366]=0;c[700754]=0;c[704142]=0;c[707530]=0;c[710918]=0;c[714306]=0;c[717694]=0;c[721082]=0;c[724470]=0;c[727858]=0;c[731246]=0;c[734634]=0;c[738022]=0;b=2965640}else b=2754124+(a*13552|0)+8236|0;c[b>>2]=0;Sr();return}function er(a){a=a|0;var b=0,d=0,e=0,f=0;Rr();if(a|0){b=0;do{d=2754124+(b*13552|0)+11548|0;if(c[d>>2]|0?(e=2754124+(b*13552|0)+8220|0,f=c[e>>2]|0,(f|0)!=0&(f|0)==(a|0)):0){c[d>>2]=0;c[2754124+(b*13552|0)+8208>>2]=0;c[2754124+(b*13552|0)+8236>>2]=0;c[2754124+(b*13552|0)+8232>>2]=0;d=e;c[d>>2]=0;c[d+4>>2]=0}b=b+1|0}while((b|0)!=16);Sr();return}if(c[691418]|0){c[691418]=0;c[690583]=0;c[690590]=0;c[690589]=0;b=2762344;c[b>>2]=0;c[b+4>>2]=0}if(c[694806]|0){c[694806]=0;c[693971]=0;c[693978]=0;c[693977]=0;b=2775896;c[b>>2]=0;c[b+4>>2]=0}if(c[698194]|0){c[698194]=0;c[697359]=0;c[697366]=0;c[697365]=0;b=2789448;c[b>>2]=0;c[b+4>>2]=0}if(c[701582]|0){c[701582]=0;c[700747]=0;c[700754]=0;c[700753]=0;b=2803e3;c[b>>2]=0;c[b+4>>2]=0}if(c[704970]|0){c[704970]=0;c[704135]=0;c[704142]=0;c[704141]=0;b=2816552;c[b>>2]=0;c[b+4>>2]=0}if(c[708358]|0){c[708358]=0;c[707523]=0;c[707530]=0;c[707529]=0;b=2830104;c[b>>2]=0;c[b+4>>2]=0}if(c[711746]|0){c[711746]=0;c[710911]=0;c[710918]=0;c[710917]=0;b=2843656;c[b>>2]=0;c[b+4>>2]=0}if(c[715134]|0){c[715134]=0;c[714299]=0;c[714306]=0;c[714305]=0;b=2857208;c[b>>2]=0;c[b+4>>2]=0}if(c[718522]|0){c[718522]=0;c[717687]=0;c[717694]=0;c[717693]=0;b=2870760;c[b>>2]=0;c[b+4>>2]=0}if(c[721910]|0){c[721910]=0;c[721075]=0;c[721082]=0;c[721081]=0;b=2884312;c[b>>2]=0;c[b+4>>2]=0}if(c[725298]|0){c[725298]=0;c[724463]=0;c[724470]=0;c[724469]=0;b=2897864;c[b>>2]=0;c[b+4>>2]=0}if(c[728686]|0){c[728686]=0;c[727851]=0;c[727858]=0;c[727857]=0;b=2911416;c[b>>2]=0;c[b+4>>2]=0}if(c[732074]|0){c[732074]=0;c[731239]=0;c[731246]=0;c[731245]=0;b=2924968;c[b>>2]=0;c[b+4>>2]=0}if(c[735462]|0){c[735462]=0;c[734627]=0;c[734634]=0;c[734633]=0;b=2938520;c[b>>2]=0;c[b+4>>2]=0}if(c[738850]|0){c[738850]=0;c[738015]=0;c[738022]=0;c[738021]=0;b=2952072;c[b>>2]=0;c[b+4>>2]=0}if(!(c[742238]|0)){Sr();return}c[742238]=0;c[741403]=0;c[741410]=0;c[741409]=0;b=2965624;c[b>>2]=0;c[b+4>>2]=0;Sr();return}function fr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;Rr();er(a);if(!((a|0)!=0&b>>>0<64)){Sr();return}e=a+43536+(b<<4)|0;if(!(Pq(a,e)|0)){Sr();return}c[554970]=0;c[554971]=b;f=c[e>>2]|0;g=(f|0)<63?f:63;f=Zq(a+16+(((g|0)>0?g:0)*680|0)|0,0,32,a,4)|0;if((f|0)!=-1){if((c[e>>2]|0)>63)c[2754124+(f*13552|0)+8224>>2]=0;c[2754124+(f*13552|0)+11548>>2]=1;c[2754124+(f*13552|0)+8220>>2]=a;c[2754124+(f*13552|0)+11552>>2]=b;c[2754124+(f*13552|0)+8240>>2]=0;c[2754124+(f*13552|0)+12e3>>2]=Pq(a,e)|0;c[2754124+(f*13552|0)+12004>>2]=0}f=a+43536+(b<<4)+4|0;g=c[f>>2]|0;h=(g|0)<63?g:63;g=Zq(a+16+(((h|0)>0?h:0)*680|0)|0,0,32,a,5)|0;if((g|0)!=-1){if((c[f>>2]|0)>63)c[2754124+(g*13552|0)+8224>>2]=0;c[2754124+(g*13552|0)+11548>>2]=1;c[2754124+(g*13552|0)+8220>>2]=a;c[2754124+(g*13552|0)+11552>>2]=b;c[2754124+(g*13552|0)+8240>>2]=1;c[2754124+(g*13552|0)+12e3>>2]=Pq(a,e)|0;c[2754124+(g*13552|0)+12004>>2]=0}g=a+43536+(b<<4)+8|0;f=c[g>>2]|0;h=(f|0)<63?f:63;f=Zq(a+16+(((h|0)>0?h:0)*680|0)|0,0,32,a,6)|0;if((f|0)!=-1){if((c[g>>2]|0)>63)c[2754124+(f*13552|0)+8224>>2]=0;c[2754124+(f*13552|0)+11548>>2]=1;c[2754124+(f*13552|0)+8220>>2]=a;c[2754124+(f*13552|0)+11552>>2]=b;c[2754124+(f*13552|0)+8240>>2]=2;c[2754124+(f*13552|0)+12e3>>2]=Pq(a,e)|0;c[2754124+(f*13552|0)+12004>>2]=0}f=a+43536+(b<<4)+12|0;g=c[f>>2]|0;h=(g|0)<63?g:63;g=Zq(a+16+(((h|0)>0?h:0)*680|0)|0,0,32,a,7)|0;if((g|0)!=-1){if((c[f>>2]|0)>63)c[2754124+(g*13552|0)+8224>>2]=0;c[2754124+(g*13552|0)+11548>>2]=1;c[2754124+(g*13552|0)+8220>>2]=a;c[2754124+(g*13552|0)+11552>>2]=b;c[2754124+(g*13552|0)+8240>>2]=3;c[2754124+(g*13552|0)+12e3>>2]=Pq(a,e)|0;c[2754124+(g*13552|0)+12004>>2]=0}c[557124]=d;c[557123]=Xr()|0;c[557125]=0;c[557126]=65536;gr();Sr();return}function gr(){var a=0,b=0,d=0,e=0;Rr();a=c[557127]|0;b=c[557126]|0;if((a|0)==(b|0)){if(!a){Rr();c[688530]=0;er(0);Sr()}Sr();return}if(!(c[557124]|0)){c[557127]=b;if(!b){Rr();c[688530]=0;er(0);Sr()}Sr();return}b=Xr()|0;a=b-(c[557123]|0)|0;b=c[557124]|0;if((b|0)>(a|0)){d=B(c[557125]|0,b-a|0)|0;e=((B(c[557126]|0,a)|0)+d|0)/(b|0)|0;b=(e|0)<65536?e:65536;c[557127]=(b|0)>0?b:0;Sr();return}b=c[557126]|0;c[557127]=b;if(!b){Rr();c[688530]=0;er(0);Sr()}Sr();return}function hr(a){a=a|0;return c[a+16>>2]|0}function ir(a){a=a|0;return}function jr(a,b){a=a|0;b=b|0;if(!a)return;c[a+8>>2]=b;return}function kr(a){a=a|0;if(!0)return;c[555247]=a;return}function lr(a,b){a=a|0;b=b|0;c[557125]=c[557127];c[557126]=0;c[557123]=Xr()|0;c[557124]=b;gr();return}function mr(a){a=a|0;c[555248]=a;return}function nr(){var a=0;if((ar(0)|0)!=-1){a=1;return a|0}if(0==0|(c[557129]|0)==0){a=0;return a|0}if(!(c[557127]|c[557126])){a=0;return a|0}a=(c[688530]|0)!=0&1;return a|0}function or(){var a=0;Rr();c[691418]=0;c[690583]=0;c[690590]=0;c[690589]=0;a=2762344;c[a>>2]=0;c[a+4>>2]=0;c[694806]=0;c[693971]=0;c[693978]=0;c[693977]=0;a=2775896;c[a>>2]=0;c[a+4>>2]=0;c[698194]=0;c[697359]=0;c[697366]=0;c[697365]=0;a=2789448;c[a>>2]=0;c[a+4>>2]=0;c[701582]=0;c[700747]=0;c[700754]=0;c[700753]=0;a=2803e3;c[a>>2]=0;c[a+4>>2]=0;c[704970]=0;c[704135]=0;c[704142]=0;c[704141]=0;a=2816552;c[a>>2]=0;c[a+4>>2]=0;c[708358]=0;c[707523]=0;c[707530]=0;c[707529]=0;a=2830104;c[a>>2]=0;c[a+4>>2]=0;c[711746]=0;c[710911]=0;c[710918]=0;c[710917]=0;a=2843656;c[a>>2]=0;c[a+4>>2]=0;c[715134]=0;c[714299]=0;c[714306]=0;c[714305]=0;a=2857208;c[a>>2]=0;c[a+4>>2]=0;c[718522]=0;c[717687]=0;c[717694]=0;c[717693]=0;a=2870760;c[a>>2]=0;c[a+4>>2]=0;c[721910]=0;c[721075]=0;c[721082]=0;c[721081]=0;a=2884312;c[a>>2]=0;c[a+4>>2]=0;c[725298]=0;c[724463]=0;c[724470]=0;c[724469]=0;a=2897864;c[a>>2]=0;c[a+4>>2]=0;c[728686]=0;c[727851]=0;c[727858]=0;c[727857]=0;a=2911416;c[a>>2]=0;c[a+4>>2]=0;c[732074]=0;c[731239]=0;c[731246]=0;c[731245]=0;a=2924968;c[a>>2]=0;c[a+4>>2]=0;c[735462]=0;c[734627]=0;c[734634]=0;c[734633]=0;a=2938520;c[a>>2]=0;c[a+4>>2]=0;c[738850]=0;c[738015]=0;c[738022]=0;c[738021]=0;a=2952072;c[a>>2]=0;c[a+4>>2]=0;c[742238]=0;c[741403]=0;c[741410]=0;c[741409]=0;a=2965624;c[a>>2]=0;c[a+4>>2]=0;Sr();return}function pr(){var a=0,b=0,d=0;a=c[742747]|0;if(!a){b=Aq(352e3)|0;c[742747]=b;d=b}else d=a;c[d+20>>2]=0;c[d+16>>2]=0;c[554969]=1;return}function qr(){var a=0;if(!(c[554969]|0)){a=0;return a|0}c[554969]=0;a=c[742747]|0;return a|0}function rr(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;Rr();if((c[690587]|0)==0|(c[691418]|0)==0)a=0;else{b=c[690588]|0;a=(b|0)>0?b:0}if((c[693975]|0)==0|(c[694806]|0)==0)d=a;else{b=c[693976]|0;d=(a|0)>(b|0)?a:b}if((c[697363]|0)==0|(c[698194]|0)==0)e=d;else{b=c[697364]|0;e=(d|0)>(b|0)?d:b}if((c[700751]|0)==0|(c[701582]|0)==0)f=e;else{b=c[700752]|0;f=(e|0)>(b|0)?e:b}if((c[704139]|0)==0|(c[704970]|0)==0)g=f;else{b=c[704140]|0;g=(f|0)>(b|0)?f:b}if((c[707527]|0)==0|(c[708358]|0)==0)h=g;else{b=c[707528]|0;h=(g|0)>(b|0)?g:b}if((c[710915]|0)==0|(c[711746]|0)==0)i=h;else{b=c[710916]|0;i=(h|0)>(b|0)?h:b}if((c[714303]|0)==0|(c[715134]|0)==0)j=i;else{b=c[714304]|0;j=(i|0)>(b|0)?i:b}if((c[717691]|0)==0|(c[718522]|0)==0)k=j;else{b=c[717692]|0;k=(j|0)>(b|0)?j:b}if((c[721079]|0)==0|(c[721910]|0)==0)l=k;else{b=c[721080]|0;l=(k|0)>(b|0)?k:b}if((c[724467]|0)==0|(c[725298]|0)==0)m=l;else{b=c[724468]|0;m=(l|0)>(b|0)?l:b}if((c[727855]|0)==0|(c[728686]|0)==0)n=m;else{b=c[727856]|0;n=(m|0)>(b|0)?m:b}if((c[731243]|0)==0|(c[732074]|0)==0)o=n;else{b=c[731244]|0;o=(n|0)>(b|0)?n:b}if((c[734631]|0)==0|(c[735462]|0)==0)p=o;else{b=c[734632]|0;p=(o|0)>(b|0)?o:b}if((c[738019]|0)==0|(c[738850]|0)==0)q=p;else{b=c[738020]|0;q=(p|0)>(b|0)?p:b}if((c[741407]|0)==0|(c[742238]|0)==0){r=q;Sr();return r|0}b=c[741408]|0;r=(q|0)>(b|0)?q:b;Sr();return r|0}function sr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;Rr();c[742740]=0;c[742741]=0;c[742742]=0;c[742743]=0;c[742744]=0;c[742745]=0;if((a|0)==-1){if((c[690587]|0)==0|(c[691418]|0)==0){d=-1;e=-1}else{f=c[690589]|0;g=(f|0)<-1;d=g?-1:f;e=g<<31>>31}if((c[693975]|0)==0|(c[694806]|0)==0){h=d;i=e}else{g=c[693977]|0;f=(g|0)<(d|0);h=f?d:g;i=f?e:1}if((c[697363]|0)==0|(c[698194]|0)==0){j=h;k=i}else{e=c[697365]|0;f=(e|0)<(h|0);j=f?h:e;k=f?i:2}if((c[700751]|0)==0|(c[701582]|0)==0){l=j;m=k}else{i=c[700753]|0;f=(i|0)<(j|0);l=f?j:i;m=f?k:3}if((c[704139]|0)==0|(c[704970]|0)==0){n=l;o=m}else{k=c[704141]|0;f=(k|0)<(l|0);n=f?l:k;o=f?m:4}if((c[707527]|0)==0|(c[708358]|0)==0){p=n;q=o}else{m=c[707529]|0;f=(m|0)<(n|0);p=f?n:m;q=f?o:5}if((c[710915]|0)==0|(c[711746]|0)==0){r=p;s=q}else{o=c[710917]|0;f=(o|0)<(p|0);r=f?p:o;s=f?q:6}if((c[714303]|0)==0|(c[715134]|0)==0){t=r;u=s}else{q=c[714305]|0;f=(q|0)<(r|0);t=f?r:q;u=f?s:7}if((c[717691]|0)==0|(c[718522]|0)==0){v=t;w=u}else{s=c[717693]|0;f=(s|0)<(t|0);v=f?t:s;w=f?u:8}if((c[721079]|0)==0|(c[721910]|0)==0){x=v;y=w}else{u=c[721081]|0;f=(u|0)<(v|0);x=f?v:u;y=f?w:9}if((c[724467]|0)==0|(c[725298]|0)==0){z=x;A=y}else{w=c[724469]|0;f=(w|0)<(x|0);z=f?x:w;A=f?y:10}if((c[727855]|0)==0|(c[728686]|0)==0){C=z;D=A}else{y=c[727857]|0;f=(y|0)<(z|0);C=f?z:y;D=f?A:11}if((c[731243]|0)==0|(c[732074]|0)==0){E=C;F=D}else{A=c[731245]|0;f=(A|0)<(C|0);E=f?C:A;F=f?D:12}if((c[734631]|0)==0|(c[735462]|0)==0){G=E;H=F}else{D=c[734633]|0;f=(D|0)<(E|0);G=f?E:D;H=f?F:13}if((c[738019]|0)==0|(c[738850]|0)==0){I=G;J=H}else{F=c[738021]|0;f=(F|0)<(G|0);I=f?G:F;J=f?H:14}if((c[741407]|0)==0|(c[742238]|0)==0|(c[741409]|0)<(I|0)){K=J;L=5}else{M=15;L=6}}else{K=a;L=5}if((L|0)==5?K>>>0<16:0){M=K;L=6}if((L|0)==6?(L=c[2754124+(M*13552|0)+12004>>2]|0,(L|0)>0):0){K=c[554976]|0;a=b-(c[2754124+(M*13552|0)+12012>>2]|0)|0;b=L+-1|0;L=(B((a|0)>0?a:0,b)|0)/((((c[8738]|0)/(((K|0)==0?1:K<<1)|0)|0)*1e3|0)/(c[554975]|0)|0|0)|0;K=(L|0)<(b|0)?L:b;b=2754124+(M*13552|0)+12016+(((K|0)>0?K:0)*24|0)|0;c[742740]=c[b>>2];c[742741]=c[b+4>>2];c[742742]=c[b+8>>2];c[742743]=c[b+12>>2];c[742744]=c[b+16>>2];c[742745]=c[b+20>>2];Sr();return 2970960}Sr();return 2970960}function tr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=Ia;Ia=Ia+48|0;g=f+32|0;h=f+24|0;i=f+16|0;j=f;c[j>>2]=a;c[j+4>>2]=b;c[j+8>>2]=d;c[j+12>>2]=e;wt(1715360,97183,j)|0;Cn(1715360);if((a|0)==0|(b|0)==0){c[i>>2]=0;c[i+4>>2]=0;wt(1715360,97212,i)|0;Cn(1715360);k=0;l=0}else{k=b;l=a}if((c[554968]|0)==1){a=c[555244]|0;b=c[555245]|0;if((a|0)<32|(b|0)<32){c[555244]=640;c[555245]=540;m=640;n=540}else{m=a;n=b}c[h>>2]=m;c[h+4>>2]=n;wt(1715360,97250,h)|0;Cn(1715360);o=n;p=m}else{c[555244]=l;c[555245]=k;o=k;p=l}if(!(e&256)){if(e&4|0)c[8739]=0;if(e&8|0)c[8739]=1}else if(c[555246]|0)c[8739]=0;m=((k|0)==0|(l|0)==0)&((o|0)==0|(p|0)==0);n=m?216:o;o=m?384:p;p=m?384:l;l=m?216:k;k=c[742765]|0;do if(!k)q=20;else{if(((c[k>>2]|0)==(p|0)?(c[k+4>>2]|0)==(l|0):0)?(c[k+8>>2]|0)==(d|0):0)break;Tn(k)|0;c[742765]=0;q=20}while(0);if((q|0)==20)c[742765]=Sn(p,l,d)|0;if((c[555284]|c[555285]|0)==0?(q=Vr(o,n,p,l,d,e)|0,q|0):0){r=q;Ia=f;return r|0}c[742748]=o;c[742749]=n;c[742750]=d;c[742755]=0;c[742757]=0;c[742756]=o;c[742758]=n;c[g>>2]=0;c[g+4>>2]=0;wt(1715360,97271,g)|0;Cn(1715360);Cn(97293);r=0;Ia=f;return r|0}function ur(a){a=a|0;var b=0;b=c[742761]|0;if((b|0)==(a|0))return;Vv(b|0,a|0,768)|0;return}function vr(){var b=0,d=0,e=0;if(c[742763]|0){b=0;return b|0}c[742763]=1;c[742761]=Kn()|0;c[742762]=Kn()|0;d=0;do{e=d&255;a[(c[742761]|0)+(d*3|0)>>0]=e;a[(c[742761]|0)+(d*3|0)+1>>0]=e;a[(c[742761]|0)+(d*3|0)+2>>0]=e;d=d+1|0}while((d|0)!=256);if(c[555284]|0){b=0;return b|0}b=Tr()|0;return b|0}function wr(){var a=0,b=0;if(!(c[742763]|0)){a=0;return a|0}c[742763]=0;b=c[742765]|0;if(b|0)Tn(b)|0;b=c[557100]|0;if(b|0)Tn(b)|0;c[557100]=0;c[742765]=0;Ln(c[742761]|0);Ln(c[742762]|0);if(c[555284]|0){a=0;return a|0}a=Ur()|0;return a|0}function xr(){return (c[8739]|0)==0|0}function yr(){var a=0;if(c[555285]|c[555284]|0)return;c[8739]=(c[8739]|0)==0&1;a=c[742765]|0;Vr(c[555244]|0,c[555245]|0,c[a>>2]|0,c[a+4>>2]|0,c[742750]|0,0)|0;return}function zr(){c[742764]=Xr()|0;return}function Ar(){var a=0,b=0;a=Xr()|0;b=a-(c[742764]|0)|0;c[742764]=Xr()|0;a=(b|0)<1e3?b:1e3;c[8740]=(1e3/(((a|0)>1?a:1)>>>0)|0)<<16;return}function Br(){var a=0;a=c[742765]|0;if(!a)return;Gp(a,2970992,0,0,0,0,c[742748]|0,c[742749]|0);return}function Cr(){return c[8740]>>16|0}function Dr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;Rs(e,b)|0;g=e+548|0;if((a[d>>0]|0)==42){Rs(g,d+1|0)|0;h=bu(g)|0}else{a[g>>0]=0;h=0}c[e+804>>2]=h;c[e+812>>2]=ou(b)|0;c[e+808>>2]=f;return Er(e)|0}function Er(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;b=Ia;Ia=Ia+608|0;d=b+600|0;e=b+512|0;f=b;g=a+812|0;h=c[g>>2]|0;if(!h){i=1;Ia=b;return i|0}j=ru(h)|0;h=a+808|0;if(!j){i=1;Ia=b;return i|0}k=a+256|0;l=a+520|0;m=e+64|0;n=e+40|0;o=a+516|0;p=e+12|0;q=a+512|0;r=a+804|0;s=j;while(1){j=s+19|0;Rs(k,j)|0;c[d>>2]=a;c[d+4>>2]=j;wt(f,97315,d)|0;wq(e,0,1);pu(f,e)|0;c[l>>2]=c[m>>2];c[o>>2]=c[n>>2];t=c[p>>2]|0;c[q>>2]=t;u=bu(j)|0;if((u|0)>=(c[r>>2]|0)?c[h>>2]&t|0:0){i=0;v=7;break}s=ru(c[g>>2]|0)|0;if(!s){i=1;v=7;break}}if((v|0)==7){Ia=b;return i|0}return 0}function Fr(a){a=a|0;var b=0;if(!a)return 0;b=c[a+812>>2]|0;if(!b)return 0;qu(b)|0;return 0}function Gr(a){a=a|0;var b=0,c=0;b=Po(a,104528)|0;if(!b){c=0;return c|0}Ro(b);c=1;return c|0}function Hr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=Ia;Ia=Ia+816|0;d=b;Rs(d,a)|0;e=d+548|0;Rs(e,97322)|0;c[d+804>>2]=bu(e)|0;e=d+812|0;c[e>>2]=ou(a)|0;c[d+808>>2]=16384;a=Er(d)|0;d=c[e>>2]|0;if(!d){f=(a|0)==0;g=f&1;Ia=b;return g|0}qu(d)|0;f=(a|0)==0;g=f&1;Ia=b;return g|0}function Ir(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+96|0;e=d+64|0;f=d+88|0;g=d;Fa(f|0)|0;if(!b)h=za(f|0)|0;else h=Ba(f|0)|0;Ea(g|0,64,97297,h|0)|0;h=a+4|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[e>>2]=h;c[e+4>>2]=a+8;c[e+8>>2]=a+12;c[e+12>>2]=a+16;c[e+16>>2]=a+20;c[e+20>>2]=a+24;Su(g,97323,e)|0;Ia=d;return}function Jr(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;Iq(0,1736096,a<<1);if((c|0)<=0)return 1768864;d=a<<4;e=a+-1|0;a=0;do{f=(B(d,a)|0)/(c|0)|0;g=f&15;h=(f|0)/16|0;f=h+1|0;i=B(16-g|0,b[1736096+(h<<1)>>1]|0)|0;b[1768864+(a<<1)>>1]=((B(g,b[1736096+(((f|0)<(e|0)?f:e)<<1)>>1]|0)|0)+i|0)/16|0;a=a+1|0}while((a|0)!=(c|0));return 1768864}function Kr(){if((O(65535)|0)<0)Lr(98975);else{ka(29)|0;ka(30)|0;ka(31)|0;return 0}return 0}function Lr(a){a=a|0;var b=0,d=0,e=0;b=Ia;Ia=Ia+16|0;d=b+8|0;e=b;Mr();c[e>>2]=a;vv(100055,e)|0;Nu(c[8745]|0)|0;c[d>>2]=a;wt(1715360,100055,d)|0;Cn(1715360);Dn()|0;ya(0)}function Mr(){var b=0,d=0,e=0;b=Ia;Ia=Ia+16|0;d=b;e=J()|0;if(!(a[e>>0]|0)){Ia=b;return}c[d>>2]=e;vv(100078,d)|0;Nu(c[8745]|0)|0;I();Ia=b;return}function Nr(){return 0}function Or(b){b=b|0;var d=0,e=0;a[1801632]=63;a[1801633]=0;if(b>>>0>511)return 1801632;ku(1801632,c[30176+(b<<2)>>2]|0)|0;if(!(bu(1801632)|0))return 1801632;b=0;do{d=1801632+b|0;e=a[d>>0]|0;if((e+-97&255)<26)a[d>>0]=(e&255)+224;b=b+1|0}while(b>>>0<(bu(1801632)|0)>>>0);return 1801632}function Pr(a,b){a=a|0;b=b|0;la(32,c[555260]|0)|0;c[554977]=a;c[554978]=b;c[554975]=a;c[554976]=b;kr(c[555247]|0);mr(c[555248]|0);return 0}function Qr(){return 0}function Rr(){P();c[742766]=(c[742766]|0)+1;return}function Sr(){c[742766]=(c[742766]|0)+-1;T();return}function Tr(){return 0}function Ur(){return 0}function Vr(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=Fp()|0;c[742770]=S(B(g,d)|0,B(g,e)|0,32,0)|0;return 0}function Wr(a,b,e,f,g,h,i,j,k){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(f|e|g|h|0)return;if((c[a+8>>2]|0)==8){h=c[742771]|0;do if(!h){l=a;m=8}else{g=c[h>>2]|0;if((g|0)==(c[a>>2]|0)?(e=c[h+4>>2]|0,(e|0)==(c[a+4>>2]|0)):0){n=h;o=g;p=e;q=g;break}Tn(h)|0;l=a;m=8}while(0);if((m|0)==8){m=a+4|0;h=Sn(c[l>>2]|0,c[m>>2]|0,32)|0;c[742771]=h;n=h;o=c[h>>2]|0;p=c[m>>2]|0;q=c[l>>2]|0}l=c[n+12>>2]|0;m=c[742761]|0;h=0;do{c[1801888+(h<<2)>>2]=(d[m+(h*3|0)>>0]|0)<<16|(d[m+(h*3|0)+1>>0]|0)<<8|(d[m+(h*3|0)+2>>0]|0)|-16777216;h=h+1|0}while((h|0)!=256);h=o<<2;o=0;do{m=1801888+(o<<2)|0;g=c[m>>2]|0;c[m>>2]=g<<16&16711680|g&-16711936|g>>>16&255;o=o+1|0}while((o|0)!=256);if((p|0)<1|(q|0)==0)r=n;else{o=c[a+16>>2]|0;g=l;l=0;while(1){m=g;e=c[o+(l<<2)>>2]|0;f=q;while(1){c[m>>2]=c[1801888+((d[e>>0]|0)<<2)>>2];f=f+-1|0;if(!f)break;else{m=m+4|0;e=e+1|0}}l=l+1|0;if((l|0)==(p|0)){r=n;break}else g=g+h|0}}}else r=a;Q(c[742770]|0)|0;a=c[742770]|0;if((j|0)>0?(h=r+16|0,r=i<<2,g=a+20|0,Vv(c[g>>2]|0,c[c[h>>2]>>2]|0,r|0)|0,(j|0)!=1):0){n=1;do{p=(c[g>>2]|0)+((B(n,i)|0)<<2)|0;Vv(p|0,c[(c[h>>2]|0)+(n<<2)>>2]|0,r|0)|0;n=n+1|0}while((n|0)!=(j|0))}U(a|0);return}function Xr(){return M()|0}function Yr(){return}function Zr(){return}function _r(){return 0}function $r(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(b|0)c[b>>2]=0;if(d|0)c[d>>2]=0;if(!e)return;c[e>>2]=0;return}function as(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;b=Ia;Ia=Ia+64|0;d=b+52|0;e=b+48|0;f=b;g=0;do{h=1724192+g|0;i=a[h>>0]|0;a[1725216+g>>0]=i;if(i<<24>>24==3)a[h>>0]=1;g=g+1|0}while((g|0)!=512);g=0;do{if(!(a[1724192+g>>0]|0))a[1724704+g>>0]=0;g=g+1|0}while((g|0)!=512);g=K()|0;a[1724416]=g&64;a[1724420]=g&128;a[1724418]=0;a[1724422]=0;a[1724417]=g&1;a[1724421]=g&2;a:do if(R(f|0)|0){g=f+12|0;h=f+28|0;i=f+32|0;while(1){j=c[f>>2]|0;b:do switch(j|0){case 768:case 769:{k=c[g>>2]|0;l=(k|0)==1104?80:k;k=(l|0)==1103?79:l;l=(k|0)==1106?82:k;k=(l|0)==1105?81:l;l=(k|0)==1099?75:k;k=(l|0)==1102?78:l;l=(k|0)==1248?224:k;k=(l|0)<512;m=1724192+l|0;if((j|0)==768){if(!k)break b;a[m>>0]=3;a[1725216+l>>0]=0;a[1724704+l>>0]=0;break b}else{if(!k)break b;a[m>>0]=0;a[1725216]=0;break b}break}case 1024:{do if(c[554961]|0){if(ka(33)|0){m=c[h>>2]|0;c[554955]=(c[554955]|0)+m;k=c[i>>2]|0;c[554956]=(c[554956]|0)+k;l=(c[742768]|0)+m|0;m=c[742765]|0;n=(c[m>>2]<<2)+-1|0;o=(l|0)<(n|0)?l:n;c[742768]=(o|0)>0?o:0;o=(c[742769]|0)+k|0;k=(c[m+4>>2]<<2)+-1|0;m=(o|0)<(k|0)?o:k;c[742769]=(m|0)>0?m:0;break}if(c[554961]|0){L(d|0,e|0)|0;if(!(ka(34)|0))p=c[e>>2]|0;else{c[d>>2]=ka(35)|0;m=ka(36)|0;c[e>>2]=m;p=m}c[742768]=c[d>>2]<<2;c[742769]=p<<2}}while(0);m=c[554955]|0;if((m|0)>=0){if(m|0){k=~m;o=(k|0)>-2?k:-2;q=-2-o|0;r=m+2+(c[554957]|0)+o|0;s=24}}else{q=0;r=m+(c[554957]|0)|0;s=24}if((s|0)==24){s=0;c[554957]=r;c[554955]=q}m=c[554956]|0;if((m|0)<0){c[554958]=m+(c[554958]|0);c[554956]=0;break b}if(m|0){o=~m;k=(o|0)>-2?o:-2;c[554958]=m+2+(c[554958]|0)+k;c[554956]=-2-k}break}default:{}}while(0);if(!(R(f|0)|0))break a}}while(0);f=(ka(37)|0)!=0;if(f&(c[557102]|0)<32){do{f=ka(38)|0;q=(f|0)>-1?f:-1;f=c[557102]|0;c[1724064+(f<<2)>>2]=q;c[557102]=f+1;if((q|0)>0?(qo(-5)|0)==0:0)c[8742]=1;if(a[1724422]|0){a[1724416]=0;a[1724420]=0}q=(ka(37)|0)!=0}while(q&(c[557102]|0)<32);t=1}else t=0;q=ka(39)|0;c[554951]=(c[554951]|0)+q;c[554953]=(c[554953]|0)+q;q=ka(40)|0;c[554952]=(c[554952]|0)+q;c[554954]=(c[554954]|0)+q;bs();if(!((c[554962]|0)==0?(ka(41)|0)!=0:0)){c[557102]=0;Wv(1724192,0,512)|0;Wv(1725216,0,512)|0;Wv(1724704,0,512)|0;c[554951]=0;c[554952]=0;c[554953]=0;c[554954]=0}if(t|0){Ia=b;return 0}t=0;q=0;do{f=(qo(q)|0)==3;t=f?1:t;q=q+1|0}while((q|0)!=512);q=c[557102]|0;if(!((t|0)!=0&(q|0)<32)){Ia=b;return 0}c[1724064+(q<<2)>>2]=-1;c[557102]=q+1;Ia=b;return 0}function bs(){var a=0,b=0,d=0,e=0,f=0;a=Ia;Ia=Ia+16|0;b=a+8|0;d=a+4|0;e=a;cs(b,d,e);if(c[8741]|0){c[e>>2]=1;c[d>>2]=1;c[b>>2]=1;c[8741]=0}if(ka(42)|0)c[8742]=0;f=c[b>>2]|0;b=c[d>>2]|0;if(((c[e>>2]|0)>0&(b|f|0)>-1?(f|0)<(c[742748]|0):0)?(b|0)<(c[742749]|0):0){c[8742]=1;ka(43)|0}b=(qo(-5)|0)!=0;if(!(b&(c[8742]|0)!=0)){Ia=a;return}ka(44)|0;Ia=a;return} +function Bo(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;if((d|0)==0|(e|0)==0){j=g;return j|0}k=c[e+16>>2]|0;l=(k&255|0)==0;m=l?0:32;n=l?256:96;if(h&8){o=a[d>>0]|0;if(!(o<<24>>24)){p=1;q=0}else{r=o;o=0;s=d;while(1){t=r<<24>>24;if((m|0)>(t|0))u=o;else u=o+1+(c[c[(c[e>>2]|0)+(t-m<<2)>>2]>>2]|0)|0;s=s+1|0;r=a[s>>0]|0;if(!(r<<24>>24)){p=1;q=u;break}else o=u}}u=q-p|0;p=c[b+32>>2]|0;q=b+28|0;if((u|0)>(p-f|0)){c[q>>2]=(c[q>>2]|0)+15;v=1;w=p-u|0}else{v=0;w=f}}else{v=0;w=f}if(!(h&2))x=w;else{u=a[d>>0]|0;if(!(u<<24>>24)){y=1;z=0}else{p=u;u=0;q=d;while(1){o=p<<24>>24;if((m|0)>(o|0))A=u;else A=u+1+(c[c[(c[e>>2]|0)+(o-m<<2)>>2]>>2]|0)|0;q=q+1|0;p=a[q>>0]|0;if(!(p<<24>>24)){y=1;z=A;break}else u=A}}x=w-((z-y|0)/2|0)|0}if(!(h&4))B=x;else{y=a[d>>0]|0;if(!(y<<24>>24)){C=1;D=0}else{z=y;y=0;w=d;while(1){A=z<<24>>24;if((m|0)>(A|0))E=y;else E=y+1+(c[c[(c[e>>2]|0)+(A-m<<2)>>2]>>2]|0)|0;w=w+1|0;z=a[w>>0]|0;if(!(z<<24>>24)){C=1;D=E;break}else y=E}}B=C+x-D|0}a:do if(!(h&1)){D=c[e>>2]|0;x=c[b+8>>2]|0;C=h;E=0;while(1){if((c[(c[D+(E<<2)>>2]|0)+8>>2]|0)==(x|0)){F=C;G=E;H=0;break a}y=E+n|0;z=(y|0)<(k|0);w=C|(z^1)&1;A=z?y:E;if(!(w&1)){C=w;E=A}else{F=w;G=A;H=1;break}}}else{F=h;G=0;H=1}while(0);h=a[d>>0]|0;if(h<<24>>24){k=l?256:128;l=G-m|0;G=(F&16|0)==0;F=b+32|0;if(H){H=h;n=0;E=d;C=B;x=g;while(1){D=H&255;if(m>>>0<=D>>>0&k>>>0>D>>>0){A=c[(c[e>>2]|0)+(l+D<<2)>>2]|0;D=A+4|0;co(A,b,0,0,C,x,c[A>>2]|0,c[D>>2]|0,i,0);w=1+(c[A>>2]|0)|0;A=c[D>>2]|0;I=a[E>>0]|0;J=w;K=(n|0)>(A|0)?n:A;L=w+C|0}else{I=H;J=0;K=n;L=C}if(I<<24>>24!=10)if(!G?(L|0)>((c[F>>2]|0)-J|0):0)M=37;else{N=K;O=L;P=x}else M=37;if((M|0)==37){M=0;N=0;O=f;P=K+x+1|0}E=E+1|0;H=a[E>>0]|0;if(!(H<<24>>24)){Q=P;break}else{n=N;C=O;x=P}}}else{P=h;h=0;x=d;d=B;B=g;while(1){O=P&255;if(m>>>0<=O>>>0&k>>>0>O>>>0){C=c[(c[e>>2]|0)+(l+O<<2)>>2]|0;O=C+4|0;Rn(C,b,0,0,d,B,c[C>>2]|0,c[O>>2]|0);N=1+(c[C>>2]|0)|0;C=c[O>>2]|0;R=a[x>>0]|0;S=N;T=(h|0)>(C|0)?h:C;U=N+d|0}else{R=P;S=0;T=h;U=d}if(R<<24>>24!=10)if(!G?(U|0)>((c[F>>2]|0)-S|0):0)M=44;else{V=T;W=U;X=B}else M=44;if((M|0)==44){M=0;V=0;W=f;X=T+B+1|0}x=x+1|0;P=a[x>>0]|0;if(!(P<<24>>24)){Q=X;break}else{h=V;d=W;B=X}}}}else Q=g;if(!v){j=Q;return j|0}else{j=b+28|0;v=(c[j>>2]|0)+-15|0;c[j>>2]=v;Bo(b,96845,c[557113]|0,v,Q,0,0)|0;return Q|0}return 0}function Co(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Bo(a,b,c,d,e,0,0)|0;return}function Do(a){a=a|0;c[557115]=a;return}function Eo(a){a=a|0;c[557116]=a;return}function Fo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;switch(c[e>>2]|0){case 0:{f=tv(a,b,d,c[e+8>>2]|0)|0;return f|0}case 1:{g=B(d,b)|0;b=e+20|0;d=c[b>>2]|0;h=(c[e+16>>2]|0)-d|0;i=(g|0)<(h|0)?g:h;h=(i|0)>0?i:0;Vv(a|0,(c[e+12>>2]|0)+d|0,h|0)|0;c[b>>2]=h+(c[b>>2]|0);f=h;return f|0}default:{f=0;return f|0}}return 0}function Go(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=b;switch(c[d>>2]|0){case 0:{g=d+20|0;c[g>>2]=(c[g>>2]|0)+1;g=d+16|0;c[g>>2]=(c[g>>2]|0)+1;hv(f,4,1,c[d+8>>2]|0)|0;Ia=e;return}case 1:{f=d+20|0;if(c[d+88>>2]|0)Bq(d,(c[f>>2]|0)+4|0)|0;g=(c[d+12>>2]|0)+(c[f>>2]|0)|0;a[g>>0]=b;a[g+1>>0]=b>>8;a[g+2>>0]=b>>16;a[g+3>>0]=b>>24;b=(c[f>>2]|0)+4|0;c[f>>2]=b;f=d+16|0;d=c[f>>2]|0;c[f>>2]=(d|0)>(b|0)?d:b;Ia=e;return}default:{Ia=e;return}}}function Ho(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;switch(c[e>>2]|0){case 0:{f=e+20|0;c[f>>2]=(c[f>>2]|0)+d;f=e+16|0;c[f>>2]=(c[f>>2]|0)+d;g=hv(a,b,d,c[e+8>>2]|0)|0;return g|0}case 1:{f=B(d,b)|0;do if(c[e+88>>2]|0){b=e+20|0;Bq(e,(c[b>>2]|0)+f|0)|0;d=(c[e+12>>2]|0)+(c[b>>2]|0)|0;if(!a){wq(d,0,f);h=b;break}else{Vv(d|0,a|0,f|0)|0;h=b;break}}else{b=e+20|0;Vv((c[e+12>>2]|0)+(c[b>>2]|0)|0,a|0,f|0)|0;h=b}while(0);a=(c[h>>2]|0)+f|0;c[h>>2]=a;h=e+16|0;e=c[h>>2]|0;c[h>>2]=(e|0)>(a|0)?e:a;g=f;return g|0}default:{g=0;return g|0}}return 0}function Io(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=b;switch(c[d>>2]|0){case 0:{g=d+20|0;c[g>>2]=(c[g>>2]|0)+1;g=d+16|0;c[g>>2]=(c[g>>2]|0)+1;hv(f,4,1,c[d+8>>2]|0)|0;Ia=e;return}case 1:{f=d+20|0;if(c[d+88>>2]|0)Bq(d,(c[f>>2]|0)+4|0)|0;g=(c[d+12>>2]|0)+(c[f>>2]|0)|0;a[g>>0]=b;a[g+1>>0]=b>>8;a[g+2>>0]=b>>16;a[g+3>>0]=b>>24;b=(c[f>>2]|0)+4|0;c[f>>2]=b;f=d+16|0;d=c[f>>2]|0;c[f>>2]=(d|0)>(b|0)?d:b;Ia=e;return}default:{Ia=e;return}}}function Jo(b,d){b=b|0;d=d|0;var e=0;switch(c[d>>2]|0){case 0:{e=d+20|0;c[e>>2]=(c[e>>2]|0)+1;e=d+16|0;c[e>>2]=(c[e>>2]|0)+1;nv(b<<24>>24,c[d+8>>2]|0)|0;return}case 1:{e=d+20|0;if(c[d+88>>2]|0)Bq(d,(c[e>>2]|0)+1|0)|0;a[(c[d+12>>2]|0)+(c[e>>2]|0)>>0]=b;b=(c[e>>2]|0)+1|0;c[e>>2]=b;e=d+16|0;d=c[e>>2]|0;c[e>>2]=(d|0)>(b|0)?d:b;return}default:return}}function Ko(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=Ia;Ia=Ia+16|0;g=f;b[g>>1]=d;switch(c[e>>2]|0){case 0:{h=e+20|0;c[h>>2]=(c[h>>2]|0)+1;h=e+16|0;c[h>>2]=(c[h>>2]|0)+1;hv(g,2,1,c[e+8>>2]|0)|0;Ia=f;return}case 1:{g=e+20|0;if(c[e+88>>2]|0)Bq(e,(c[g>>2]|0)+2|0)|0;h=(c[e+12>>2]|0)+(c[g>>2]|0)|0;a[h>>0]=d;a[h+1>>0]=d>>8;d=(c[g>>2]|0)+2|0;c[g>>2]=d;g=e+16|0;e=c[g>>2]|0;c[g>>2]=(e|0)>(d|0)?e:d;Ia=f;return}default:{Ia=f;return}}}function Lo(d,e){d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0;d=Ia;Ia=Ia+16|0;g=d;if(!e){h=0;Ia=d;return h|0}i=go(0)|0;a:do if(i|0){switch(c[e>>2]|0){case 0:{j=Ru(c[e+8>>2]|0)|0;k=6;break}case 1:{j=(c[e+20>>2]|0)>=(c[e+16>>2]|0)&1;k=6;break}default:k=7}if((k|0)==6?(j|0)==0:0)k=7;b:do if((k|0)==7){l=e+8|0;m=e+16|0;n=e+20|0;o=e+12|0;p=i+32|0;q=0;c:while(1){c[g>>2]=0;switch(c[e>>2]|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{r=c[n>>2]|0;s=(c[m>>2]|0)-r|0;t=(s|0)<4?s:4;s=(t|0)>0?t:0;Vv(g|0,(c[o>>2]|0)+r|0,s|0)|0;c[n>>2]=s+r;break}default:{k=9;break c}}r=c[g>>2]|0;if(!r)break b;c[g>>2]=0;switch(c[e>>2]|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{s=c[n>>2]|0;t=(c[m>>2]|0)-s|0;u=(t|0)<4?t:4;t=(u|0)>0?u:0;Vv(g|0,(c[o>>2]|0)+s|0,t|0)|0;c[n>>2]=t+s;break}default:{}}s=c[g>>2]|0;t=(q|0)==0;if(t&(r|0)!=1146048579)break a;d:do if(t)if((r|0)==1146048579){c[g>>2]=0;u=c[e>>2]|0;switch(u|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;v=c[e>>2]|0;k=26;break}case 1:{w=c[n>>2]|0;x=(c[m>>2]|0)-w|0;y=(x|0)<4?x:4;x=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+w|0,x|0)|0;c[n>>2]=x+w;k=28;break}default:{v=u;k=26}}e:do if((k|0)==26){k=0;switch(v|0){case 1:{k=28;break e;break}case 0:break;default:break e}tv(p,1,32,c[l>>2]|0)|0}while(0);if((k|0)==28){k=0;u=c[n>>2]|0;w=(c[m>>2]|0)-u|0;x=(w|0)<32?w:32;w=(x|0)>0?x:0;Vv(p|0,(c[o>>2]|0)+u|0,w|0)|0;c[n>>2]=w+(c[n>>2]|0)}c[g>>2]=0;w=c[e>>2]|0;switch(w|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;z=c[e>>2]|0;k=32;break}case 1:{u=c[n>>2]|0;x=(c[m>>2]|0)-u|0;y=(x|0)<4?x:4;x=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+u|0,x|0)|0;c[n>>2]=x+u;break}default:{z=w;k=32}}f:do if((k|0)==32){k=0;switch(z|0){case 1:{break f;break}case 0:break;default:{k=396;break d}}Zu(c[l>>2]|0,28,1)|0;k=396;break d}while(0);c[n>>2]=(c[n>>2]|0)+28;k=396}else k=35;else if((r|0)<1347374659)switch(r|0){case 1146048579:{break c;break}default:{k=35;break d}}else switch(r|0){case 1347374659:{break c;break}default:{k=35;break d}}while(0);g:do if((k|0)==35){k=0;t=r|32;h:do if((t|0)<1347245667){switch(t|0){case 1347240547:break;default:break h}w=(r|0)==1347240547;c[g>>2]=0;u=c[e>>2]|0;switch(u|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;A=c[e>>2]|0;k=39;break}case 1:{x=c[n>>2]|0;y=(c[m>>2]|0)-x|0;C=(y|0)<4?y:4;y=(C|0)>0?C:0;Vv(g|0,(c[o>>2]|0)+x|0,y|0)|0;c[n>>2]=y+x;A=1;k=39;break}default:{D=u;E=0}}if((k|0)==39){k=0;D=A;E=c[g>>2]|0}c[g>>2]=0;switch(D|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;F=c[e>>2]|0;k=43;break}case 1:{u=c[n>>2]|0;x=(c[m>>2]|0)-u|0;y=(x|0)<4?x:4;x=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+u|0,x|0)|0;c[n>>2]=x+u;u=c[g>>2]|0;c[g>>2]=0;G=u;k=45;break}default:{F=D;k=43}}i:do if((k|0)==43){k=0;u=c[g>>2]|0;c[g>>2]=0;switch(F|0){case 1:{G=u;k=45;break i;break}case 0:break;default:{H=u;break i}}tv(g,4,1,c[l>>2]|0)|0;H=u}while(0);if((k|0)==45){k=0;u=c[n>>2]|0;x=(c[m>>2]|0)-u|0;y=(x|0)<4?x:4;x=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+u|0,x|0)|0;c[n>>2]=x+u;H=G}u=c[g>>2]|0;x=Sn(E,H,u)|0;c[g>>2]=0;y=c[e>>2]|0;switch(y|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;I=c[e>>2]|0;k=49;break}case 1:{C=c[n>>2]|0;J=(c[m>>2]|0)-C|0;K=(J|0)<4?J:4;J=(K|0)>0?K:0;Vv(g|0,(c[o>>2]|0)+C|0,J|0)|0;c[n>>2]=J+C;c[x+20>>2]=c[g>>2];c[g>>2]=0;k=51;break}default:{I=y;k=49}}j:do if((k|0)==49){k=0;c[x+20>>2]=c[g>>2];c[g>>2]=0;switch(I|0){case 1:{k=51;break j;break}case 0:break;default:break j}tv(g,4,1,c[l>>2]|0)|0}while(0);if((k|0)==51){k=0;y=c[n>>2]|0;C=(c[m>>2]|0)-y|0;J=(C|0)<4?C:4;C=(J|0)>0?J:0;Vv(g|0,(c[o>>2]|0)+y|0,C|0)|0;c[n>>2]=C+y}y=c[x+12>>2]|0;C=B(B(H,E)|0,u>>3)|0;k:do if(w)Mo(y,C,e)|0;else switch(c[e>>2]|0){case 0:{tv(y,1,C,c[l>>2]|0)|0;break k;break}case 1:{J=c[n>>2]|0;K=(c[m>>2]|0)-J|0;L=(C|0)<(K|0)?C:K;K=(L|0)>0?L:0;Vv(y|0,(c[o>>2]|0)+J|0,K|0)|0;c[n>>2]=K+(c[n>>2]|0);break k;break}default:break k}while(0);ko(i,4,x)|0;k=396;break g}else{switch(t|0){case 1347245667:break;default:break h}y=(r|0)==1347245667;c[g>>2]=0;C=c[e>>2]|0;switch(C|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;M=c[e>>2]|0;k=61;break}case 1:{w=c[n>>2]|0;u=(c[m>>2]|0)-w|0;K=(u|0)<4?u:4;u=(K|0)>0?K:0;Vv(g|0,(c[o>>2]|0)+w|0,u|0)|0;c[n>>2]=u+w;M=1;k=61;break}default:{N=C;O=0}}if((k|0)==61){k=0;N=M;O=c[g>>2]|0}c[g>>2]=0;switch(N|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;P=c[e>>2]|0;k=65;break}case 1:{C=c[n>>2]|0;w=(c[m>>2]|0)-C|0;u=(w|0)<4?w:4;w=(u|0)>0?u:0;Vv(g|0,(c[o>>2]|0)+C|0,w|0)|0;c[n>>2]=w+C;C=c[g>>2]|0;c[g>>2]=0;Q=C;k=67;break}default:{P=N;k=65}}l:do if((k|0)==65){k=0;C=c[g>>2]|0;c[g>>2]=0;switch(P|0){case 1:{Q=C;k=67;break l;break}case 0:break;default:{R=C;break l}}tv(g,4,1,c[l>>2]|0)|0;R=C}while(0);if((k|0)==67){k=0;x=c[n>>2]|0;C=(c[m>>2]|0)-x|0;w=(C|0)<4?C:4;C=(w|0)>0?w:0;Vv(g|0,(c[o>>2]|0)+x|0,C|0)|0;c[n>>2]=C+x;R=Q}x=c[g>>2]|0;C=Mn(O,R,x)|0;c[g>>2]=0;w=c[e>>2]|0;switch(w|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;S=c[e>>2]|0;k=71;break}case 1:{u=c[n>>2]|0;K=(c[m>>2]|0)-u|0;J=(K|0)<4?K:4;K=(J|0)>0?J:0;Vv(g|0,(c[o>>2]|0)+u|0,K|0)|0;c[n>>2]=K+u;c[C+20>>2]=c[g>>2];c[g>>2]=0;k=73;break}default:{S=w;k=71}}m:do if((k|0)==71){k=0;c[C+20>>2]=c[g>>2];c[g>>2]=0;switch(S|0){case 1:{k=73;break m;break}case 0:break;default:break m}tv(g,4,1,c[l>>2]|0)|0}while(0);if((k|0)==73){k=0;w=c[n>>2]|0;u=(c[m>>2]|0)-w|0;K=(u|0)<4?u:4;u=(K|0)>0?K:0;Vv(g|0,(c[o>>2]|0)+w|0,u|0)|0;c[n>>2]=u+w}w=c[C+12>>2]|0;u=B(B(R,O)|0,x)|0;n:do if(y)Mo(w,u,e)|0;else switch(c[e>>2]|0){case 0:{tv(w,1,u,c[l>>2]|0)|0;break n;break}case 1:{K=c[n>>2]|0;J=(c[m>>2]|0)-K|0;L=(u|0)<(J|0)?u:J;J=(L|0)>0?L:0;Vv(w|0,(c[o>>2]|0)+K|0,J|0)|0;c[n>>2]=J+(c[n>>2]|0);break n;break}default:break n}while(0);ko(i,10,C)|0;k=396;break g}while(0);o:do if((r|0)<1279348803){if((r|0)<1146047811){switch(r|0){case 1145983811:break;default:break o}c[g>>2]=0;w=c[e>>2]|0;switch(w|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;T=c[e>>2]|0;k=299;break}case 1:{u=c[n>>2]|0;y=(c[m>>2]|0)-u|0;x=(y|0)<4?y:4;y=(x|0)>0?x:0;Vv(g|0,(c[o>>2]|0)+u|0,y|0)|0;c[n>>2]=y+u;T=1;k=299;break}default:{U=w;V=0}}if((k|0)==299){k=0;U=T;V=c[g>>2]|0}c[g>>2]=0;switch(U|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{w=c[n>>2]|0;u=(c[m>>2]|0)-w|0;y=(u|0)<4?u:4;u=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+w|0,u|0)|0;c[n>>2]=u+w;break}default:{}}w=Wq(V,c[g>>2]|0)|0;if(!w){u=s+-8|0;y=c[e>>2]|0;switch(y|0){case 0:{Zu(c[l>>2]|0,u,1)|0;k=396;break g;break}case 1:{c[n>>2]=(c[n>>2]|0)+u;k=396;break g;break}default:{W=y;break g}}}c[g>>2]=0;y=c[e>>2]|0;switch(y|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;X=c[e>>2]|0;k=307;break}case 1:{u=c[n>>2]|0;x=(c[m>>2]|0)-u|0;J=(x|0)<4?x:4;x=(J|0)>0?J:0;Vv(g|0,(c[o>>2]|0)+u|0,x|0)|0;c[n>>2]=x+u;u=w+8|0;c[u>>2]=c[g>>2];c[g>>2]=0;Y=u;k=309;break}default:{X=y;k=307}}p:do if((k|0)==307){k=0;y=w+8|0;c[y>>2]=c[g>>2];c[g>>2]=0;switch(X|0){case 1:{Y=y;k=309;break p;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;Z=c[e>>2]|0;break}default:Z=X}c[w+12>>2]=c[g>>2];c[g>>2]=0;switch(Z|0){case 1:{_=y;k=312;break p;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;$=c[e>>2]|0;break}default:$=Z}c[g>>2]=0;switch($|0){case 1:{aa=y;k=315;break p;break}case 0:break;default:{ba=y;break p}}tv(g,4,1,c[l>>2]|0)|0;ba=y}while(0);if((k|0)==309){k=0;C=c[n>>2]|0;y=(c[m>>2]|0)-C|0;u=(y|0)<4?y:4;y=(u|0)>0?u:0;Vv(g|0,(c[o>>2]|0)+C|0,y|0)|0;c[n>>2]=y+C;c[w+12>>2]=c[g>>2];c[g>>2]=0;_=Y;k=312}if((k|0)==312){k=0;C=c[n>>2]|0;y=(c[m>>2]|0)-C|0;u=(y|0)<4?y:4;y=(u|0)>0?u:0;Vv(g|0,(c[o>>2]|0)+C|0,y|0)|0;c[n>>2]=y+C;c[g>>2]=0;aa=_;k=315}if((k|0)==315){k=0;C=c[n>>2]|0;y=(c[m>>2]|0)-C|0;u=(y|0)<4?y:4;y=(u|0)>0?u:0;Vv(g|0,(c[o>>2]|0)+C|0,y|0)|0;c[n>>2]=y+C;ba=aa}C=hr(w)|0;y=(B(c[w+4>>2]|0,c[w>>2]|0)|0)/8|0;switch(c[e>>2]|0){case 0:{tv(C,y,1,c[l>>2]|0)|0;break}case 1:{u=c[n>>2]|0;x=(c[m>>2]|0)-u|0;J=(y|0)<(x|0)?y:x;x=(J|0)>0?J:0;Vv(C|0,(c[o>>2]|0)+u|0,x|0)|0;c[n>>2]=x+(c[n>>2]|0);break}default:{}}jr(w,c[ba>>2]|0);ko(i,9,w)|0;k=396;break g}if((r|0)<1229865283){switch(r|0){case 1146047811:break;default:break o}x=ip()|0;c[g>>2]=0;u=c[e>>2]|0;switch(u|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;ca=c[e>>2]|0;k=88;break}case 1:{C=c[n>>2]|0;J=(c[m>>2]|0)-C|0;y=(J|0)<4?J:4;J=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+C|0,J|0)|0;c[n>>2]=J+C;C=x+4|0;c[C>>2]=c[g>>2];c[g>>2]=0;da=C;k=90;break}default:{ca=u;k=88}}q:do if((k|0)==88){k=0;u=x+4|0;c[u>>2]=c[g>>2];c[g>>2]=0;switch(ca|0){case 1:{da=u;k=90;break q;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;ea=c[e>>2]|0;break}default:ea=ca}C=x+16|0;c[C>>2]=c[g>>2];c[g>>2]=0;switch(ea|0){case 1:{fa=C;ga=u;k=93;break q;break}case 0:break;default:{ha=C;ia=u;break q}}tv(g,4,1,c[l>>2]|0)|0;ha=C;ia=u}while(0);if((k|0)==90){k=0;w=c[n>>2]|0;u=(c[m>>2]|0)-w|0;C=(u|0)<4?u:4;u=(C|0)>0?C:0;Vv(g|0,(c[o>>2]|0)+w|0,u|0)|0;c[n>>2]=u+w;w=x+16|0;c[w>>2]=c[g>>2];c[g>>2]=0;fa=w;ga=da;k=93}if((k|0)==93){k=0;w=c[n>>2]|0;u=(c[m>>2]|0)-w|0;C=(u|0)<4?u:4;u=(C|0)>0?C:0;Vv(g|0,(c[o>>2]|0)+w|0,u|0)|0;c[n>>2]=u+w;ha=fa;ia=ga}w=x+24|0;c[w>>2]=c[g>>2];fp(x,c[ia>>2]|0);gp(x,c[ha>>2]|0);r:do if((c[ia>>2]|0)>0){u=0;while(1){f[g>>2]=0.0;C=c[e>>2]|0;switch(C|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;ja=c[e>>2]|0;k=99;break}case 1:{J=c[n>>2]|0;y=(c[m>>2]|0)-J|0;K=(y|0)<4?y:4;y=(K|0)>0?K:0;Vv(g|0,(c[o>>2]|0)+J|0,y|0)|0;c[n>>2]=y+J;J=c[x>>2]|0;c[J+(u*12|0)>>2]=c[g>>2];f[g>>2]=0.0;ka=J;k=405;break}default:{ja=C;k=99}}s:do if((k|0)==99){k=0;C=c[x>>2]|0;c[C+(u*12|0)>>2]=c[g>>2];f[g>>2]=0.0;switch(ja|0){case 1:{ka=C;k=405;break s;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;la=c[x>>2]|0;ma=c[e>>2]|0;break}default:{la=C;ma=ja}}c[la+(u*12|0)+4>>2]=c[g>>2];f[g>>2]=0.0;switch(ma|0){case 1:{na=la;k=408;break s;break}case 0:break;default:{oa=la;break s}}tv(g,4,1,c[l>>2]|0)|0;oa=c[x>>2]|0}while(0);if((k|0)==405){k=0;C=c[n>>2]|0;J=(c[m>>2]|0)-C|0;y=(J|0)<4?J:4;J=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+C|0,J|0)|0;c[n>>2]=J+C;c[ka+(u*12|0)+4>>2]=c[g>>2];f[g>>2]=0.0;na=ka;k=408}if((k|0)==408){k=0;C=c[n>>2]|0;J=(c[m>>2]|0)-C|0;y=(J|0)<4?J:4;J=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+C|0,J|0)|0;c[n>>2]=J+C;oa=na}c[oa+(u*12|0)+8>>2]=c[g>>2];u=u+1|0;if((u|0)>=(c[ia>>2]|0))break r}}while(0);t:do if((c[ha>>2]|0)>0){u=x+12|0;C=0;while(1){J=c[u>>2]|0;y=J+(C*80|0)|0;b[g>>1]=0;switch(c[e>>2]|0){case 0:{tv(g,2,1,c[l>>2]|0)|0;break}case 1:{K=c[n>>2]|0;L=(c[m>>2]|0)-K|0;pa=(L|0)<2?L:2;L=(pa|0)>0?pa:0;Vv(g|0,(c[o>>2]|0)+K|0,L|0)|0;c[n>>2]=L+K;break}default:{}}K=b[g>>1]|0;L=J+(C*80|0)+56|0;b[L>>1]=K;hp(y,K<<16>>16);b[g>>1]=0;K=c[e>>2]|0;switch(K|0){case 0:{tv(g,2,1,c[l>>2]|0)|0;qa=c[e>>2]|0;k=108;break}case 1:{y=c[n>>2]|0;pa=(c[m>>2]|0)-y|0;ra=(pa|0)<2?pa:2;pa=(ra|0)>0?ra:0;Vv(g|0,(c[o>>2]|0)+y|0,pa|0)|0;c[n>>2]=pa+y;b[J+(C*80|0)+72>>1]=b[g>>1]|0;b[g>>1]=0;k=110;break}default:{qa=K;k=108}}u:do if((k|0)==108){k=0;b[J+(C*80|0)+72>>1]=b[g>>1]|0;b[g>>1]=0;switch(qa|0){case 1:{k=110;break u;break}case 0:break;default:break u}tv(g,2,1,c[l>>2]|0)|0}while(0);if((k|0)==110){k=0;K=c[n>>2]|0;y=(c[m>>2]|0)-K|0;pa=(y|0)<2?y:2;y=(pa|0)>0?pa:0;Vv(g|0,(c[o>>2]|0)+K|0,y|0)|0;c[n>>2]=y+K}b[J+(C*80|0)+74>>1]=b[g>>1]|0;v:do if((b[L>>1]|0)>0){K=J+(C*80|0)+48|0;y=J+(C*80|0)+52|0;pa=0;while(1){c[g>>2]=0;switch(c[e>>2]|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{ra=c[n>>2]|0;sa=(c[m>>2]|0)-ra|0;ta=(sa|0)<4?sa:4;sa=(ta|0)>0?ta:0;Vv(g|0,(c[o>>2]|0)+ra|0,sa|0)|0;c[n>>2]=sa+ra;break}default:{}}c[(c[K>>2]|0)+(pa<<2)>>2]=c[g>>2];f[g>>2]=0.0;ra=c[e>>2]|0;switch(ra|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;ua=c[e>>2]|0;k=119;break}case 1:{sa=c[n>>2]|0;ta=(c[m>>2]|0)-sa|0;va=(ta|0)<4?ta:4;ta=(va|0)>0?va:0;Vv(g|0,(c[o>>2]|0)+sa|0,ta|0)|0;c[n>>2]=ta+sa;sa=c[y>>2]|0;c[sa+(pa<<3)>>2]=c[g>>2];f[g>>2]=0.0;wa=sa;k=121;break}default:{ua=ra;k=119}}w:do if((k|0)==119){k=0;ra=c[y>>2]|0;c[ra+(pa<<3)>>2]=c[g>>2];f[g>>2]=0.0;switch(ua|0){case 1:{wa=ra;k=121;break w;break}case 0:break;default:{xa=ra;break w}}tv(g,4,1,c[l>>2]|0)|0;xa=c[y>>2]|0}while(0);if((k|0)==121){k=0;ra=c[n>>2]|0;sa=(c[m>>2]|0)-ra|0;ta=(sa|0)<4?sa:4;sa=(ta|0)>0?ta:0;Vv(g|0,(c[o>>2]|0)+ra|0,sa|0)|0;c[n>>2]=sa+ra;xa=wa}c[xa+(pa<<3)+4>>2]=c[g>>2];pa=pa+1|0;if((pa|0)>=(b[L>>1]|0))break v}}while(0);C=C+1|0;if((C|0)>=(c[ha>>2]|0))break t}}while(0);x:do if((c[w>>2]|0)>0?(c[ia>>2]|0)>0:0){C=x+28|0;u=0;while(1){b[g>>1]=0;L=c[e>>2]|0;switch(L|0){case 0:{tv(g,2,1,c[l>>2]|0)|0;ya=c[e>>2]|0;k=130;break}case 1:{J=c[n>>2]|0;pa=(c[m>>2]|0)-J|0;y=(pa|0)<2?pa:2;pa=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+J|0,pa|0)|0;c[n>>2]=pa+J;J=b[g>>1]|0;pa=c[C>>2]|0;y=pa+(u<<5)|0;b[y>>1]=J;b[g>>1]=0;za=pa;Aa=J;Ba=y;k=132;break}default:{ya=L;k=130}}y:do if((k|0)==130){k=0;L=b[g>>1]|0;y=c[C>>2]|0;J=y+(u<<5)|0;b[J>>1]=L;b[g>>1]=0;switch(ya|0){case 1:{za=y;Aa=L;Ba=J;k=132;break y;break}case 0:break;default:{Ca=y;Da=L;Ea=ya;Fa=J;break y}}tv(g,2,1,c[l>>2]|0)|0;J=c[C>>2]|0;L=J+(u<<5)|0;Ca=J;Da=b[L>>1]|0;Ea=c[e>>2]|0;Fa=L}while(0);if((k|0)==132){k=0;L=c[n>>2]|0;J=(c[m>>2]|0)-L|0;y=(J|0)<2?J:2;J=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+L|0,J|0)|0;c[n>>2]=J+L;Ca=za;Da=Aa;Ea=1;Fa=Ba}L=b[g>>1]|0;J=Da&65535;y=(c[w>>2]|0)+-1|0;pa=(y|0)>(J|0)?J:y;b[Fa>>1]=(pa|0)>0?pa:0;pa=L&65535;L=(y|0)>(pa|0)?pa:y;b[Ca+(u<<5)+2>>1]=(L|0)>0?L:0;f[g>>2]=0.0;switch(Ea|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Ga=c[C>>2]|0;break}case 1:{L=c[n>>2]|0;y=(c[m>>2]|0)-L|0;pa=(y|0)<4?y:4;y=(pa|0)>0?pa:0;Vv(g|0,(c[o>>2]|0)+L|0,y|0)|0;c[n>>2]=y+L;Ga=Ca;break}default:Ga=Ca}c[Ga+(u<<5)+4>>2]=c[g>>2];u=u+1|0;if((u|0)>=(c[ia>>2]|0))break x}}while(0);op(x);ko(i,6,x)|0;k=396;break g}switch(r|0){case 1229865283:break;default:break o}w=xp()|0;c[g>>2]=0;u=c[e>>2]|0;switch(u|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Ha=c[e>>2]|0;k=145;break}case 1:{C=c[n>>2]|0;L=(c[m>>2]|0)-C|0;y=(L|0)<4?L:4;L=(y|0)>0?y:0;Vv(g|0,(c[o>>2]|0)+C|0,L|0)|0;c[n>>2]=L+C;Ha=1;k=145;break}default:{Ja=u;Ka=0}}if((k|0)==145){k=0;Ja=Ha;Ka=c[g>>2]|0}c[g>>2]=0;switch(Ja|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;La=c[g>>2]|0;Ma=c[e>>2]|0;k=149;break}case 1:{u=c[m>>2]|0;C=c[n>>2]|0;L=u-C|0;y=(L|0)<4?L:4;L=(y|0)>0?y:0;y=c[o>>2]|0;Vv(g|0,y+C|0,L|0)|0;pa=L+C|0;c[n>>2]=pa;c[w+8>>2]=c[g>>2];c[g>>2]=0;Na=u;Oa=pa;Pa=y;k=152;break}default:{La=0;Ma=Ja;k=149}}z:do if((k|0)==149){k=0;c[w+8>>2]=La;c[g>>2]=0;switch(Ma|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Qa=c[g>>2]|0;Ra=c[e>>2]|0;break}case 1:{Na=c[m>>2]|0;Oa=c[n>>2]|0;Pa=c[o>>2]|0;k=152;break z;break}default:{Qa=0;Ra=Ma}}c[w+12>>2]=Qa;c[g>>2]=0;switch(Ra|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Sa=c[e>>2]|0;break}case 1:{Ta=c[m>>2]|0;Ua=c[n>>2]|0;Va=c[o>>2]|0;k=156;break z;break}default:Sa=Ra}c[g>>2]=0;switch(Sa|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Wa=c[e>>2]|0;break}case 1:{Xa=c[m>>2]|0;Ya=c[n>>2]|0;Za=c[o>>2]|0;k=280;break z;break}default:Wa=Sa}c[g>>2]=0;switch(Wa|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;_a=c[e>>2]|0;break}case 1:{$a=c[m>>2]|0;ab=c[n>>2]|0;bb=c[o>>2]|0;k=284;break z;break}default:_a=Wa}c[g>>2]=0;switch(_a|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;cb=c[e>>2]|0;break}case 1:{db=c[m>>2]|0;eb=c[n>>2]|0;fb=c[o>>2]|0;k=288;break z;break}default:cb=_a}c[g>>2]=0;switch(cb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break z;break}case 1:{gb=c[m>>2]|0;hb=c[n>>2]|0;ib=c[o>>2]|0;k=292;break z;break}default:break z}}while(0);if((k|0)==152){k=0;x=Na-Oa|0;y=(x|0)<4?x:4;x=(y|0)>0?y:0;Vv(g|0,Pa+Oa|0,x|0)|0;y=x+Oa|0;c[n>>2]=y;c[w+12>>2]=c[g>>2];c[g>>2]=0;Ta=Na;Ua=y;Va=Pa;k=156}if((k|0)==156){k=0;y=Ta-Ua|0;x=(y|0)<4?y:4;y=(x|0)>0?x:0;Vv(g|0,Va+Ua|0,y|0)|0;x=y+Ua|0;c[n>>2]=x;c[g>>2]=0;Xa=Ta;Ya=x;Za=Va;k=280}if((k|0)==280){k=0;x=Xa-Ya|0;y=(x|0)<4?x:4;x=(y|0)>0?y:0;Vv(g|0,Za+Ya|0,x|0)|0;y=x+Ya|0;c[n>>2]=y;c[g>>2]=0;$a=Xa;ab=y;bb=Za;k=284}if((k|0)==284){k=0;y=$a-ab|0;x=(y|0)<4?y:4;y=(x|0)>0?x:0;Vv(g|0,bb+ab|0,y|0)|0;x=y+ab|0;c[n>>2]=x;c[g>>2]=0;db=$a;eb=x;fb=bb;k=288}if((k|0)==288){k=0;x=db-eb|0;y=(x|0)<4?x:4;x=(y|0)>0?y:0;Vv(g|0,fb+eb|0,x|0)|0;y=x+eb|0;c[n>>2]=y;c[g>>2]=0;gb=db;hb=y;ib=fb;k=292}if((k|0)==292){k=0;y=gb-hb|0;x=(y|0)<4?y:4;y=(x|0)>0?x:0;Vv(g|0,ib+hb|0,y|0)|0;c[n>>2]=y+hb}A:do if((Ka|0)>0){y=w+4|0;x=0;while(1){Ap(w)|0;pa=c[y>>2]|0;u=pa+(x*112|0)|0;C=c[e>>2]|0;switch(C|0){case 0:{tv(u,1,32,c[l>>2]|0)|0;k=163;break}case 1:{L=c[n>>2]|0;J=(c[m>>2]|0)-L|0;K=(J|0)<32?J:32;J=(K|0)>0?K:0;Vv(u|0,(c[o>>2]|0)+L|0,J|0)|0;c[n>>2]=J+(c[n>>2]|0);k=163;break}default:jb=C}if((k|0)==163){k=0;jb=c[e>>2]|0}C=pa+(x*112|0)+32|0;switch(jb|0){case 0:{tv(C,1,32,c[l>>2]|0)|0;break}case 1:{J=c[n>>2]|0;L=(c[m>>2]|0)-J|0;u=(L|0)<32?L:32;L=(u|0)>0?u:0;Vv(C|0,(c[o>>2]|0)+J|0,L|0)|0;c[n>>2]=L+(c[n>>2]|0);break}default:{}}c[g>>2]=0;L=c[e>>2]|0;switch(L|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;kb=c[g>>2]|0;lb=c[e>>2]|0;k=170;break}case 1:{J=c[m>>2]|0;C=c[n>>2]|0;u=J-C|0;K=(u|0)<4?u:4;u=(K|0)>0?K:0;K=c[o>>2]|0;Vv(g|0,K+C|0,u|0)|0;ra=u+C|0;c[n>>2]=ra;c[pa+(x*112|0)+68>>2]=c[g>>2];c[g>>2]=0;mb=J;nb=ra;ob=K;k=173;break}default:{kb=0;lb=L;k=170}}B:do if((k|0)==170){k=0;c[pa+(x*112|0)+68>>2]=kb;c[g>>2]=0;switch(lb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;pb=c[g>>2]|0;qb=c[e>>2]|0;break}case 1:{mb=c[m>>2]|0;nb=c[n>>2]|0;ob=c[o>>2]|0;k=173;break B;break}default:{pb=0;qb=lb}}c[pa+(x*112|0)+72>>2]=pb;c[g>>2]=0;switch(qb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;rb=c[g>>2]|0;sb=c[e>>2]|0;break}case 1:{tb=c[m>>2]|0;ub=c[n>>2]|0;vb=c[o>>2]|0;k=177;break B;break}default:{rb=0;sb=qb}}c[pa+(x*112|0)+76>>2]=rb;c[g>>2]=0;switch(sb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;wb=c[g>>2]|0;xb=c[e>>2]|0;break}case 1:{yb=c[m>>2]|0;zb=c[n>>2]|0;Ab=c[o>>2]|0;k=181;break B;break}default:{wb=0;xb=sb}}c[pa+(x*112|0)+100>>2]=wb;c[g>>2]=0;switch(xb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Bb=c[g>>2]|0;Cb=c[e>>2]|0;break}case 1:{Db=c[m>>2]|0;Eb=c[n>>2]|0;Fb=c[o>>2]|0;k=185;break B;break}default:{Bb=0;Cb=xb}}L=pa+(x*112|0)+104|0;c[L>>2]=Bb;c[g>>2]=0;switch(Cb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Gb=c[g>>2]|0;Hb=c[e>>2]|0;break}case 1:{Ib=c[m>>2]|0;Jb=c[n>>2]|0;Kb=c[o>>2]|0;Lb=L;k=189;break B;break}default:{Gb=0;Hb=Cb}}c[pa+(x*112|0)+108>>2]=Gb;c[g>>2]=0;switch(Hb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Mb=c[e>>2]|0;break}case 1:{Nb=c[m>>2]|0;Ob=c[n>>2]|0;Pb=c[o>>2]|0;Qb=L;k=193;break B;break}default:Mb=Hb}c[g>>2]=0;switch(Mb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Rb=c[e>>2]|0;break}case 1:{Sb=c[m>>2]|0;Tb=c[n>>2]|0;Ub=c[o>>2]|0;Vb=L;k=272;break B;break}default:Rb=Mb}c[g>>2]=0;switch(Rb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Wb=c[e>>2]|0;break}case 1:{Xb=c[m>>2]|0;Yb=c[n>>2]|0;Zb=c[o>>2]|0;_b=L;k=276;break B;break}default:Wb=Rb}K=c[pa+(x*112|0)+80>>2]|0;c[g>>2]=0;switch(Wb|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;$b=K;ac=L;break B;break}case 1:{bc=c[m>>2]|0;cc=c[n>>2]|0;dc=c[o>>2]|0;ec=K;fc=L;k=197;break B;break}default:{$b=K;ac=L;break B}}}while(0);if((k|0)==173){k=0;L=mb-nb|0;K=(L|0)<4?L:4;L=(K|0)>0?K:0;Vv(g|0,ob+nb|0,L|0)|0;K=L+nb|0;c[n>>2]=K;c[pa+(x*112|0)+72>>2]=c[g>>2];c[g>>2]=0;tb=mb;ub=K;vb=ob;k=177}if((k|0)==177){k=0;K=tb-ub|0;L=(K|0)<4?K:4;K=(L|0)>0?L:0;Vv(g|0,vb+ub|0,K|0)|0;L=K+ub|0;c[n>>2]=L;c[pa+(x*112|0)+76>>2]=c[g>>2];c[g>>2]=0;yb=tb;zb=L;Ab=vb;k=181}if((k|0)==181){k=0;L=yb-zb|0;K=(L|0)<4?L:4;L=(K|0)>0?K:0;Vv(g|0,Ab+zb|0,L|0)|0;K=L+zb|0;c[n>>2]=K;c[pa+(x*112|0)+100>>2]=c[g>>2];c[g>>2]=0;Db=yb;Eb=K;Fb=Ab;k=185}if((k|0)==185){k=0;K=Db-Eb|0;L=(K|0)<4?K:4;K=(L|0)>0?L:0;Vv(g|0,Fb+Eb|0,K|0)|0;L=K+Eb|0;c[n>>2]=L;K=pa+(x*112|0)+104|0;c[K>>2]=c[g>>2];c[g>>2]=0;Ib=Db;Jb=L;Kb=Fb;Lb=K;k=189}if((k|0)==189){k=0;K=Ib-Jb|0;L=(K|0)<4?K:4;K=(L|0)>0?L:0;Vv(g|0,Kb+Jb|0,K|0)|0;L=K+Jb|0;c[n>>2]=L;c[pa+(x*112|0)+108>>2]=c[g>>2];c[g>>2]=0;Nb=Ib;Ob=L;Pb=Kb;Qb=Lb;k=193}if((k|0)==193){k=0;L=Nb-Ob|0;K=(L|0)<4?L:4;L=(K|0)>0?K:0;Vv(g|0,Pb+Ob|0,L|0)|0;K=L+Ob|0;c[n>>2]=K;c[g>>2]=0;Sb=Nb;Tb=K;Ub=Pb;Vb=Qb;k=272}if((k|0)==272){k=0;K=Sb-Tb|0;L=(K|0)<4?K:4;K=(L|0)>0?L:0;Vv(g|0,Ub+Tb|0,K|0)|0;L=K+Tb|0;c[n>>2]=L;c[g>>2]=0;Xb=Sb;Yb=L;Zb=Ub;_b=Vb;k=276}if((k|0)==276){k=0;L=Xb-Yb|0;K=(L|0)<4?L:4;L=(K|0)>0?K:0;Vv(g|0,Zb+Yb|0,L|0)|0;K=L+Yb|0;c[n>>2]=K;L=c[pa+(x*112|0)+80>>2]|0;c[g>>2]=0;bc=Xb;cc=K;dc=Zb;ec=L;fc=_b;k=197}if((k|0)==197){k=0;L=bc-cc|0;K=(L|0)<4?L:4;L=(K|0)>0?K:0;Vv(g|0,dc+cc|0,L|0)|0;c[n>>2]=L+cc;$b=ec;ac=fc}L=c[g>>2]|0;c[$b>>2]=L;Cp($b,L);L=c[$b>>2]|0;C:do if(!L)k=209;else{K=c[$b+12>>2]|0;ra=c[$b+8>>2]|0;J=c[e>>2]|0;switch(J|0){case 0:{tv(K,ra,L,c[l>>2]|0)|0;k=202;break}case 1:{C=B(ra,L)|0;ra=c[n>>2]|0;u=(c[m>>2]|0)-ra|0;sa=(C|0)<(u|0)?C:u;u=(sa|0)>0?sa:0;Vv(K|0,(c[o>>2]|0)+ra|0,u|0)|0;c[n>>2]=u+(c[n>>2]|0);k=202;break}default:{gc=J;hc=L}}if((k|0)==202){k=0;gc=c[e>>2]|0;hc=c[$b>>2]|0}J=c[$b+16>>2]|0;switch(gc|0){case 0:{tv(J,4,hc,c[l>>2]|0)|0;break}case 1:{u=hc<<2;ra=c[n>>2]|0;K=(c[m>>2]|0)-ra|0;sa=(u|0)<(K|0)?u:K;K=(sa|0)>0?sa:0;Vv(J|0,(c[o>>2]|0)+ra|0,K|0)|0;c[n>>2]=K+(c[n>>2]|0);break}default:{}}K=c[$b+20>>2]|0;ra=c[$b>>2]|0;J=c[e>>2]|0;switch(J|0){case 0:{tv(K,4,ra,c[l>>2]|0)|0;k=209;break C;break}case 1:{sa=ra<<2;ra=c[n>>2]|0;u=(c[m>>2]|0)-ra|0;C=(sa|0)<(u|0)?sa:u;u=(C|0)>0?C:0;Vv(K|0,(c[o>>2]|0)+ra|0,u|0)|0;c[n>>2]=u+(c[n>>2]|0);k=209;break C;break}default:{ic=J;break C}}}while(0);if((k|0)==209){k=0;ic=c[e>>2]|0}L=c[pa+(x*112|0)+84>>2]|0;c[g>>2]=0;switch(ic|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{J=c[n>>2]|0;u=(c[m>>2]|0)-J|0;ra=(u|0)<4?u:4;u=(ra|0)>0?ra:0;Vv(g|0,(c[o>>2]|0)+J|0,u|0)|0;c[n>>2]=u+J;break}default:{}}J=c[g>>2]|0;c[L>>2]=J;Cp(L,J);J=c[L>>2]|0;D:do if(!J)k=224;else{u=c[L+12>>2]|0;ra=c[L+8>>2]|0;K=c[e>>2]|0;switch(K|0){case 0:{tv(u,ra,J,c[l>>2]|0)|0;k=217;break}case 1:{C=B(ra,J)|0;ra=c[n>>2]|0;sa=(c[m>>2]|0)-ra|0;ta=(C|0)<(sa|0)?C:sa;sa=(ta|0)>0?ta:0;Vv(u|0,(c[o>>2]|0)+ra|0,sa|0)|0;c[n>>2]=sa+(c[n>>2]|0);k=217;break}default:{jc=K;kc=J}}if((k|0)==217){k=0;jc=c[e>>2]|0;kc=c[L>>2]|0}K=c[L+16>>2]|0;switch(jc|0){case 0:{tv(K,4,kc,c[l>>2]|0)|0;break}case 1:{sa=kc<<2;ra=c[n>>2]|0;u=(c[m>>2]|0)-ra|0;ta=(sa|0)<(u|0)?sa:u;u=(ta|0)>0?ta:0;Vv(K|0,(c[o>>2]|0)+ra|0,u|0)|0;c[n>>2]=u+(c[n>>2]|0);break}default:{}}u=c[L+20>>2]|0;ra=c[L>>2]|0;K=c[e>>2]|0;switch(K|0){case 0:{tv(u,4,ra,c[l>>2]|0)|0;k=224;break D;break}case 1:{ta=ra<<2;ra=c[n>>2]|0;sa=(c[m>>2]|0)-ra|0;C=(ta|0)<(sa|0)?ta:sa;sa=(C|0)>0?C:0;Vv(u|0,(c[o>>2]|0)+ra|0,sa|0)|0;c[n>>2]=sa+(c[n>>2]|0);k=224;break D;break}default:{lc=K;break D}}}while(0);if((k|0)==224){k=0;lc=c[e>>2]|0}L=c[pa+(x*112|0)+88>>2]|0;c[g>>2]=0;switch(lc|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{J=c[n>>2]|0;K=(c[m>>2]|0)-J|0;sa=(K|0)<4?K:4;K=(sa|0)>0?sa:0;Vv(g|0,(c[o>>2]|0)+J|0,K|0)|0;c[n>>2]=K+J;break}default:{}}J=c[g>>2]|0;c[L>>2]=J;Cp(L,J);J=c[L>>2]|0;E:do if(J|0){K=c[L+12>>2]|0;sa=c[L+8>>2]|0;ra=c[e>>2]|0;switch(ra|0){case 0:{tv(K,sa,J,c[l>>2]|0)|0;k=232;break}case 1:{u=B(sa,J)|0;sa=c[n>>2]|0;C=(c[m>>2]|0)-sa|0;ta=(u|0)<(C|0)?u:C;C=(ta|0)>0?ta:0;Vv(K|0,(c[o>>2]|0)+sa|0,C|0)|0;c[n>>2]=C+(c[n>>2]|0);k=232;break}default:{mc=ra;nc=J}}if((k|0)==232){k=0;mc=c[e>>2]|0;nc=c[L>>2]|0}ra=c[L+16>>2]|0;switch(mc|0){case 0:{tv(ra,4,nc,c[l>>2]|0)|0;break}case 1:{C=nc<<2;sa=c[n>>2]|0;K=(c[m>>2]|0)-sa|0;ta=(C|0)<(K|0)?C:K;K=(ta|0)>0?ta:0;Vv(ra|0,(c[o>>2]|0)+sa|0,K|0)|0;c[n>>2]=K+(c[n>>2]|0);break}default:{}}K=c[L+20>>2]|0;sa=c[L>>2]|0;switch(c[e>>2]|0){case 0:{tv(K,4,sa,c[l>>2]|0)|0;break E;break}case 1:{ra=sa<<2;sa=c[n>>2]|0;ta=(c[m>>2]|0)-sa|0;C=(ra|0)<(ta|0)?ra:ta;ta=(C|0)>0?C:0;Vv(K|0,(c[o>>2]|0)+sa|0,ta|0)|0;c[n>>2]=ta+(c[n>>2]|0);break E;break}default:break E}}while(0);L=c[ac>>2]|0;F:do if(L|0){J=pa+(x*112|0)+92|0;c[J>>2]=xq(L<<2)|0;if((c[ac>>2]|0)<=0)break;ta=0;while(1){sa=Bp(16)|0;c[(c[J>>2]|0)+(ta<<2)>>2]=sa;sa=c[(c[J>>2]|0)+(ta<<2)>>2]|0;c[g>>2]=0;switch(c[e>>2]|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{K=c[n>>2]|0;C=(c[m>>2]|0)-K|0;ra=(C|0)<4?C:4;C=(ra|0)>0?ra:0;Vv(g|0,(c[o>>2]|0)+K|0,C|0)|0;c[n>>2]=C+K;break}default:{}}K=c[g>>2]|0;c[sa>>2]=K;Cp(sa,K);K=c[sa>>2]|0;G:do if(K|0){C=c[sa+12>>2]|0;ra=c[sa+8>>2]|0;u=c[e>>2]|0;switch(u|0){case 0:{tv(C,ra,K,c[l>>2]|0)|0;k=249;break}case 1:{va=B(ra,K)|0;ra=c[n>>2]|0;oc=(c[m>>2]|0)-ra|0;pc=(va|0)<(oc|0)?va:oc;oc=(pc|0)>0?pc:0;Vv(C|0,(c[o>>2]|0)+ra|0,oc|0)|0;c[n>>2]=oc+(c[n>>2]|0);k=249;break}default:{qc=u;rc=K}}if((k|0)==249){k=0;qc=c[e>>2]|0;rc=c[sa>>2]|0}u=c[sa+16>>2]|0;switch(qc|0){case 0:{tv(u,4,rc,c[l>>2]|0)|0;break}case 1:{oc=rc<<2;ra=c[n>>2]|0;C=(c[m>>2]|0)-ra|0;pc=(oc|0)<(C|0)?oc:C;C=(pc|0)>0?pc:0;Vv(u|0,(c[o>>2]|0)+ra|0,C|0)|0;c[n>>2]=C+(c[n>>2]|0);break}default:{}}C=c[sa+20>>2]|0;ra=c[sa>>2]|0;switch(c[e>>2]|0){case 0:{tv(C,4,ra,c[l>>2]|0)|0;break G;break}case 1:{u=ra<<2;ra=c[n>>2]|0;pc=(c[m>>2]|0)-ra|0;oc=(u|0)<(pc|0)?u:pc;pc=(oc|0)>0?oc:0;Vv(C|0,(c[o>>2]|0)+ra|0,pc|0)|0;c[n>>2]=pc+(c[n>>2]|0);break G;break}default:break G}}while(0);ta=ta+1|0;if((ta|0)>=(c[ac>>2]|0))break F}}while(0);L=c[pa+(x*112|0)+96>>2]|0;c[g>>2]=0;switch(c[e>>2]|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{ta=c[n>>2]|0;J=(c[m>>2]|0)-ta|0;sa=(J|0)<4?J:4;J=(sa|0)>0?sa:0;Vv(g|0,(c[o>>2]|0)+ta|0,J|0)|0;c[n>>2]=J+ta;break}default:{}}ta=c[g>>2]|0;c[L>>2]=ta;Cp(L,ta);ta=c[L>>2]|0;H:do if(ta|0){J=c[L+12>>2]|0;sa=c[L+8>>2]|0;K=c[e>>2]|0;switch(K|0){case 0:{tv(J,sa,ta,c[l>>2]|0)|0;k=264;break}case 1:{pc=B(sa,ta)|0;sa=c[n>>2]|0;ra=(c[m>>2]|0)-sa|0;C=(pc|0)<(ra|0)?pc:ra;ra=(C|0)>0?C:0;Vv(J|0,(c[o>>2]|0)+sa|0,ra|0)|0;c[n>>2]=ra+(c[n>>2]|0);k=264;break}default:{sc=K;tc=ta}}if((k|0)==264){k=0;sc=c[e>>2]|0;tc=c[L>>2]|0}K=c[L+16>>2]|0;switch(sc|0){case 0:{tv(K,4,tc,c[l>>2]|0)|0;break}case 1:{ra=tc<<2;sa=c[n>>2]|0;J=(c[m>>2]|0)-sa|0;C=(ra|0)<(J|0)?ra:J;J=(C|0)>0?C:0;Vv(K|0,(c[o>>2]|0)+sa|0,J|0)|0;c[n>>2]=J+(c[n>>2]|0);break}default:{}}J=c[L+20>>2]|0;sa=c[L>>2]|0;switch(c[e>>2]|0){case 0:{tv(J,4,sa,c[l>>2]|0)|0;break H;break}case 1:{K=sa<<2;sa=c[n>>2]|0;C=(c[m>>2]|0)-sa|0;ra=(K|0)<(C|0)?K:C;C=(ra|0)>0?ra:0;Vv(J|0,(c[o>>2]|0)+sa|0,C|0)|0;c[n>>2]=C+(c[n>>2]|0);break H;break}default:break H}}while(0);x=x+1|0;if((x|0)==(Ka|0))break A}}while(0);ko(i,8,w)|0;k=396;break g}else{if((r|0)<1314476867){switch(r|0){case 1279348803:break;default:break o}x=Kn()|0;switch(c[e>>2]|0){case 0:{tv(x,1,768,c[l>>2]|0)|0;break}case 1:{y=c[n>>2]|0;L=(c[m>>2]|0)-y|0;ta=(L|0)<768?L:768;L=(ta|0)>0?ta:0;Vv(x|0,(c[o>>2]|0)+y|0,L|0)|0;c[n>>2]=L+(c[n>>2]|0);break}default:{}}ko(i,5,x)|0;k=396;break g}if((r|0)>=1413565763){switch(r|0){case 1413565763:break;default:break o}x=lp()|0;switch(c[e>>2]|0){case 0:{tv(x,96,1,c[l>>2]|0)|0;break}case 1:{L=c[n>>2]|0;y=(c[m>>2]|0)-L|0;ta=(y|0)<96?y:96;y=(ta|0)>0?ta:0;Vv(x|0,(c[o>>2]|0)+L|0,y|0)|0;c[n>>2]=y+(c[n>>2]|0);break}default:{}}ko(i,7,x)|0;k=396;break g}switch(r|0){case 1314476867:break;default:break o}x=Np(0)|0;ko(i,11,x)|0;wq(x,0,11032);c[g>>2]=0;y=c[e>>2]|0;switch(y|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;uc=c[e>>2]|0;k=326;break}case 1:{L=c[n>>2]|0;ta=(c[m>>2]|0)-L|0;pa=(ta|0)<4?ta:4;ta=(pa|0)>0?pa:0;Vv(g|0,(c[o>>2]|0)+L|0,ta|0)|0;c[n>>2]=ta+L;c[x>>2]=c[g>>2];c[g>>2]=0;vc=x;k=328;break}default:{uc=y;k=326}}I:do if((k|0)==326){k=0;c[x>>2]=c[g>>2];c[g>>2]=0;switch(uc|0){case 1:{vc=x;k=328;break I;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;wc=c[e>>2]|0;break}default:wc=uc}c[x+4>>2]=c[g>>2];c[g>>2]=0;switch(wc|0){case 1:{xc=x;k=331;break I;break}case 0:break;default:{yc=wc;zc=0;Ac=x;break I}}tv(g,4,1,c[l>>2]|0)|0;Bc=c[e>>2]|0;Cc=x;k=332}while(0);if((k|0)==328){k=0;w=c[n>>2]|0;y=(c[m>>2]|0)-w|0;L=(y|0)<4?y:4;y=(L|0)>0?L:0;Vv(g|0,(c[o>>2]|0)+w|0,y|0)|0;c[n>>2]=y+w;c[x+4>>2]=c[g>>2];c[g>>2]=0;xc=vc;k=331}if((k|0)==331){k=0;w=c[n>>2]|0;y=(c[m>>2]|0)-w|0;L=(y|0)<4?y:4;y=(L|0)>0?L:0;Vv(g|0,(c[o>>2]|0)+w|0,y|0)|0;c[n>>2]=y+w;Bc=1;Cc=xc;k=332}if((k|0)==332){k=0;yc=Bc;zc=c[g>>2]|0;Ac=Cc}c[g>>2]=0;switch(yc|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{w=c[n>>2]|0;y=(c[m>>2]|0)-w|0;L=(y|0)<4?y:4;y=(L|0)>0?L:0;Vv(g|0,(c[o>>2]|0)+w|0,y|0)|0;c[n>>2]=y+w;break}default:{}}if(!zc)c[Ac>>2]=(c[Ac>>2]|0)/2|0;c[g>>2]=0;switch(c[e>>2]|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{w=c[n>>2]|0;y=(c[m>>2]|0)-w|0;L=(y|0)<4?y:4;y=(L|0)>0?L:0;Vv(g|0,(c[o>>2]|0)+w|0,y|0)|0;c[n>>2]=y+w;break}default:{k=396;break g}}w=c[g>>2]|0;if((w|0)<=0){k=396;break g}y=0;while(1){c[g>>2]=0;L=c[e>>2]|0;switch(L|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Dc=c[e>>2]|0;k=347;break}case 1:{ta=c[n>>2]|0;pa=(c[m>>2]|0)-ta|0;C=(pa|0)<4?pa:4;pa=(C|0)>0?C:0;Vv(g|0,(c[o>>2]|0)+ta|0,pa|0)|0;c[n>>2]=pa+ta;c[x+8+(y*344|0)>>2]=c[g>>2];c[g>>2]=0;k=349;break}default:{Dc=L;k=347}}J:do if((k|0)==347){k=0;c[x+8+(y*344|0)>>2]=c[g>>2];c[g>>2]=0;switch(Dc|0){case 1:{k=349;break J;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;Ec=c[e>>2]|0;break}default:Ec=Dc}c[x+8+(y*344|0)+4>>2]=c[g>>2];c[g>>2]=0;switch(Ec|0){case 1:{k=352;break J;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;Fc=c[e>>2]|0;break}default:Fc=Ec}c[x+8+(y*344|0)+8>>2]=c[g>>2];c[g>>2]=0;switch(Fc|0){case 1:{k=355;break J;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;Gc=c[e>>2]|0;break}default:Gc=Fc}c[x+8+(y*344|0)+340>>2]=c[g>>2];c[g>>2]=0;switch(Gc|0){case 1:{k=358;break J;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;Hc=c[e>>2]|0;break}default:Hc=Gc}L=c[g>>2]|0;c[x+8+(y*344|0)+332>>2]=L;ta=x+8+(y*344|0)+268|0;switch(Hc|0){case 1:{Ic=L;Jc=ta;k=361;break J;break}case 0:break;default:{Kc=Hc;break J}}tv(ta,1,L,c[l>>2]|0)|0;k=362}while(0);if((k|0)==349){k=0;L=c[n>>2]|0;ta=(c[m>>2]|0)-L|0;pa=(ta|0)<4?ta:4;ta=(pa|0)>0?pa:0;Vv(g|0,(c[o>>2]|0)+L|0,ta|0)|0;c[n>>2]=ta+L;c[x+8+(y*344|0)+4>>2]=c[g>>2];c[g>>2]=0;k=352}if((k|0)==352){k=0;L=c[n>>2]|0;ta=(c[m>>2]|0)-L|0;pa=(ta|0)<4?ta:4;ta=(pa|0)>0?pa:0;Vv(g|0,(c[o>>2]|0)+L|0,ta|0)|0;c[n>>2]=ta+L;c[x+8+(y*344|0)+8>>2]=c[g>>2];c[g>>2]=0;k=355}if((k|0)==355){k=0;L=c[n>>2]|0;ta=(c[m>>2]|0)-L|0;pa=(ta|0)<4?ta:4;ta=(pa|0)>0?pa:0;Vv(g|0,(c[o>>2]|0)+L|0,ta|0)|0;c[n>>2]=ta+L;c[x+8+(y*344|0)+340>>2]=c[g>>2];c[g>>2]=0;k=358}if((k|0)==358){k=0;L=c[n>>2]|0;ta=(c[m>>2]|0)-L|0;pa=(ta|0)<4?ta:4;ta=(pa|0)>0?pa:0;Vv(g|0,(c[o>>2]|0)+L|0,ta|0)|0;c[n>>2]=ta+L;L=c[g>>2]|0;c[x+8+(y*344|0)+332>>2]=L;Ic=L;Jc=x+8+(y*344|0)+268|0;k=361}if((k|0)==361){k=0;L=c[n>>2]|0;ta=(c[m>>2]|0)-L|0;pa=(Ic|0)<(ta|0)?Ic:ta;ta=(pa|0)>0?pa:0;Vv(Jc|0,(c[o>>2]|0)+L|0,ta|0)|0;c[n>>2]=ta+(c[n>>2]|0);k=362}if((k|0)==362){k=0;Kc=c[e>>2]|0}c[g>>2]=0;switch(Kc|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;k=367;break}case 1:{ta=c[n>>2]|0;L=(c[m>>2]|0)-ta|0;pa=(L|0)<4?L:4;L=(pa|0)>0?pa:0;Vv(g|0,(c[o>>2]|0)+ta|0,L|0)|0;c[n>>2]=L+ta;k=367;break}default:{}}K:do if((k|0)==367?(k=0,ta=c[g>>2]|0,(ta|0)>0):0){L=0;while(1){c[g>>2]=0;pa=c[e>>2]|0;switch(pa|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;Lc=c[e>>2]|0;k=372;break}case 1:{C=c[n>>2]|0;sa=(c[m>>2]|0)-C|0;J=(sa|0)<4?sa:4;sa=(J|0)>0?J:0;Vv(g|0,(c[o>>2]|0)+C|0,sa|0)|0;c[n>>2]=sa+C;c[x+8+(y*344|0)+12+(L<<4)>>2]=c[g>>2];c[g>>2]=0;k=374;break}default:{Lc=pa;k=372}}L:do if((k|0)==372){k=0;c[x+8+(y*344|0)+12+(L<<4)>>2]=c[g>>2];c[g>>2]=0;switch(Lc|0){case 1:{k=374;break L;break}case 0:{tv(g,4,1,c[l>>2]|0)|0;Mc=c[e>>2]|0;break}default:Mc=Lc}c[x+8+(y*344|0)+12+(L<<4)+8>>2]=c[g>>2];c[g>>2]=0;switch(Mc|0){case 1:{k=377;break L;break}case 0:break;default:break L}tv(g,4,1,c[l>>2]|0)|0}while(0);if((k|0)==374){k=0;pa=c[n>>2]|0;C=(c[m>>2]|0)-pa|0;sa=(C|0)<4?C:4;C=(sa|0)>0?sa:0;Vv(g|0,(c[o>>2]|0)+pa|0,C|0)|0;c[n>>2]=C+pa;c[x+8+(y*344|0)+12+(L<<4)+8>>2]=c[g>>2];c[g>>2]=0;k=377}if((k|0)==377){k=0;pa=c[n>>2]|0;C=(c[m>>2]|0)-pa|0;sa=(C|0)<4?C:4;C=(sa|0)>0?sa:0;Vv(g|0,(c[o>>2]|0)+pa|0,C|0)|0;c[n>>2]=C+pa}c[x+8+(y*344|0)+12+(L<<4)+12>>2]=c[g>>2];L=L+1|0;if((L|0)==(ta|0))break K}}while(0);y=y+1|0;if((y|0)==(w|0)){k=396;break g}}}while(0);if((t|0)!=1279870563){Cn(96038);w=c[e>>2]|0;switch(w|0){case 0:{Zu(c[l>>2]|0,s,1)|0;k=396;break g;break}case 1:{c[n>>2]=(c[n>>2]|0)+s;k=396;break g;break}default:{W=w;break g}}}w=(r|0)==1279870563;c[g>>2]=0;switch(c[e>>2]|0){case 0:{tv(g,4,1,c[l>>2]|0)|0;break}case 1:{y=c[n>>2]|0;x=(c[m>>2]|0)-y|0;ta=(x|0)<4?x:4;x=(ta|0)>0?ta:0;Vv(g|0,(c[o>>2]|0)+y|0,x|0)|0;c[n>>2]=x+y;break}default:{}}y=c[g>>2]|0;x=Aq(y)|0;ko(i,12,x)|0;ta=x+24|0;switch(c[e>>2]|0){case 0:{tv(ta,1,64,c[l>>2]|0)|0;break}case 1:{L=c[n>>2]|0;pa=(c[m>>2]|0)-L|0;C=(pa|0)<64?pa:64;pa=(C|0)>0?C:0;Vv(ta|0,(c[o>>2]|0)+L|0,pa|0)|0;c[n>>2]=pa+(c[n>>2]|0);break}default:{}}a[x+87>>0]=0;pa=c[x+12>>2]|0;M:do if(w)Mo(pa,y,e)|0;else switch(c[e>>2]|0){case 0:{tv(pa,1,y,c[l>>2]|0)|0;break M;break}case 1:{L=c[n>>2]|0;ta=(c[m>>2]|0)-L|0;C=(y|0)<(ta|0)?y:ta;ta=(C|0)>0?C:0;Vv(pa|0,(c[o>>2]|0)+L|0,ta|0)|0;c[n>>2]=ta+(c[n>>2]|0);break M;break}default:break M}while(0);c[x+16>>2]=y;k=396}while(0);if((k|0)==396){k=0;W=c[e>>2]|0}q=q+1|0;switch(W|0){case 0:{Nc=Ru(c[l>>2]|0)|0;break}case 1:{Nc=(c[n>>2]|0)>=(c[m>>2]|0)&1;break}default:Nc=0}if(Nc|0)break b}if((k|0)==9)break;switch(c[e>>2]|0){case 0:{Zu(c[l>>2]|0,-8,1)|0;break b;break}case 1:{c[n>>2]=(c[n>>2]|0)+-8;break b;break}default:break b}}while(0);if(c[i+16>>2]|0){h=i;Ia=d;return h|0}jo(i);h=0;Ia=d;return h|0}while(0);jo(i);h=0;Ia=d;return h|0}function Mo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=0;switch(c[d>>2]|0){case 0:{tv(f,4,1,c[d+8>>2]|0)|0;break}case 1:{g=d+20|0;h=c[g>>2]|0;i=(c[d+16>>2]|0)-h|0;j=(i|0)<4?i:4;i=(j|0)>0?j:0;Vv(f|0,(c[d+12>>2]|0)+h|0,i|0)|0;c[g>>2]=i+h;break}default:{}}h=c[f>>2]|0;f=xq(h)|0;switch(c[d>>2]|0){case 0:{tv(f,1,h,c[d+8>>2]|0)|0;k=Hq(f,a,h,b)|0;Ia=e;return k|0}case 1:{i=d+20|0;g=c[i>>2]|0;j=(c[d+16>>2]|0)-g|0;l=(h|0)<(j|0)?h:j;j=(l|0)>0?l:0;Vv(f|0,(c[d+12>>2]|0)+g|0,j|0)|0;c[i>>2]=j+(c[i>>2]|0);k=Hq(f,a,h,b)|0;Ia=e;return k|0}default:{k=Hq(f,a,h,b)|0;Ia=e;return k|0}}return 0}function No(a){a=a|0;var b=0;switch(c[a>>2]|0){case 0:{b=Ru(c[a+8>>2]|0)|0;return b|0}case 1:{b=(c[a+20>>2]|0)>=(c[a+16>>2]|0)&1;return b|0}default:{b=0;return b|0}}return 0}function Oo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=Ia;Ia=Ia+16|0;d=b;e=Po(a,96074)|0;if(e){f=Lo(0,e)|0;if(!(us(e)|0)){if(!(c[e>>2]|0))Lu(c[e+8>>2]|0)|0;if(c[e+88>>2]|0)zq(c[e+12>>2]|0);zq(e);if(!(c[554979]|0)){c[554979]=(Xr()|0)+1e3;g=f}else g=f}else g=f}else g=0;c[d>>2]=a;c[d+4>>2]=(g|0)==0?96077:96084;wt(1715360,96087,d)|0;Cn(1715360);Ia=b;return g|0}function Po(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=Ia;Ia=Ia+1040|0;f=e+1032|0;g=e+1024|0;h=e;Qo(b,0,h,0,1);a:do if(95922){i=95922;j=4640;while(1){k=bu(i)|0;if((k|0)==(bu(h)|0)?Ts(i,h)|0:0)break;j=j+4|0;i=c[j>>2]|0;if(!i)break a}l=0;Ia=e;return l|0}while(0);if((ka(26)|0)!=1){h=ts(b,d)|0;i=(h|0)!=0;if(i){c[g>>2]=b;c[g+4>>2]=d;vv(96110,g)|0}g=a[d>>0]|0;if(g<<24>>24==119|i&g<<24>>24==114){l=h;Ia=e;return l|0}}h=xq(92)|0;wq(h,0,92);c[h>>2]=0;g=Fu(b,d)|0;c[h+8>>2]=g;if(g){if(h|0){l=h;Ia=e;return l|0}}else zq(h);h=ts(b,d)|0;if(!h){l=0;Ia=e;return l|0}c[f>>2]=b;c[f+4>>2]=d;vv(96173,f)|0;l=h;Ia=e;return l|0}function Qo(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=Ia;Ia=Ia+1024|0;h=g;i=(c|0)!=0;if(i)a[c>>0]=0;j=(d|0)!=0;if(j)a[d>>0]=0;k=(e|0)!=0;if(k)a[e>>0]=0;if((bu(b)|0)>>>0>1023){Cn(96208);Ia=g;return}Rs(h,b)|0;l=bu(b)|0;b=h+l|0;a:do if((l|0)>0){m=b;while(1){if((a[m>>0]&-2)<<24>>24==46){n=m;break a}o=m+-1|0;if(o>>>0>h>>>0)m=o;else{n=o;break}}}else n=b;while(0);if(f){f=a[n>>0]|0;if(f<<24>>24==46){b=n+-1|0;b:do if(b>>>0>h>>>0){l=b;while(1){if((a[l>>0]|1)<<24>>24==47){p=l;break b}m=l+-1|0;if(m>>>0>h>>>0)l=m;else{p=m;break}}}else p=b;while(0);q=(a[p>>0]|0)==46?p:n;r=20}else{s=f;t=n;r=27}}else{q=n;r=20}c:do if((r|0)==20){n=a[q>>0]|0;if(n<<24>>24==46){if(k)Rs(e,q)|0;a[q>>0]=0;if(q>>>0>h>>>0){f=q;while(1){p=f+-1|0;b=a[p>>0]|0;if(p>>>0<=h>>>0){s=b;t=p;r=27;break c}if(b<<24>>24==47){u=p;r=28;break}else f=p}}else v=q}else{s=n;t=q;r=27}}while(0);if((r|0)==27)if(s<<24>>24==47){u=t;r=28}else v=t;if((r|0)==28)v=u+1|0;if(j)Rs(d,v)|0;if((v|0)==(h|0)){Ia=g;return}a[v>>0]=0;if(!i){Ia=g;return}Rs(c,h)|0;Ia=g;return}function Ro(a){a=a|0;if(!a)return;if(us(a)|0)return;if(!(c[a>>2]|0))Lu(c[a+8>>2]|0)|0;if(c[a+88>>2]|0)zq(c[a+12>>2]|0);zq(a);if(c[554979]|0)return;c[554979]=(Xr()|0)+1e3;return}function So(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;a[b>>0]=0;if(!f){g=0;return g|0}switch(c[f>>2]|0){case 0:{h=Ru(c[f+8>>2]|0)|0;i=5;break}case 1:{h=(c[f+20>>2]|0)>=(c[f+16>>2]|0)&1;i=5;break}default:{}}if((i|0)==5?h|0:0){g=0;return g|0}a[b>>0]=0;switch(c[f>>2]|0){case 0:{j=rv(c[f+8>>2]|0)|0;i=10;break}case 1:{h=f+20|0;k=c[h>>2]|0;if((k|0)<(c[f+16>>2]|0)){c[h>>2]=k+1;j=d[(c[f+12>>2]|0)+k>>0]|0;i=10}else{l=0;i=11}break}default:{l=0;i=11}}if((i|0)==10){k=(j+256|0)%256|0;switch(k|0){case 10:case 13:case 255:{m=k;n=0;break}default:{l=k;i=11}}}a:do if((i|0)==11){a[b>>0]=l;switch(c[f>>2]|0){case 0:{o=Ru(c[f+8>>2]|0)|0;break}case 1:{o=(c[f+20>>2]|0)>=(c[f+16>>2]|0)&1;break}default:o=0}k=e+-1|0;if((e|0)>2&(o|0)==0){j=f+8|0;h=f+20|0;p=f+16|0;q=f+12|0;r=1;while(1){switch(c[f>>2]|0){case 0:{s=rv(c[j>>2]|0)|0;i=20;break}case 1:{t=c[h>>2]|0;if((t|0)<(c[p>>2]|0)){c[h>>2]=t+1;s=d[(c[q>>2]|0)+t>>0]|0;i=20}else u=0;break}default:u=0}if((i|0)==20){i=0;switch(s|0){case 10:case 13:{m=s;n=r;break a;break}default:u=s}}a[b+r>>0]=u;t=r+1|0;switch(c[f>>2]|0){case 0:{v=Ru(c[j>>2]|0)|0;break}case 1:{v=(c[h>>2]|0)>=(c[p>>2]|0)&1;break}default:v=0}if((t|0)<(k|0)&(v|0)==0)r=t;else{m=u;n=t;break a}}}else{m=l;n=1}}while(0);a[b+n>>0]=0;if((m|0)!=13){g=b;return g|0}switch(c[f>>2]|0){case 0:{w=rv(c[f+8>>2]|0)|0;i=30;break}case 1:{m=f+20|0;n=c[m>>2]|0;if((n|0)<(c[f+16>>2]|0)){c[m>>2]=n+1;w=d[(c[f+12>>2]|0)+n>>0]|0;i=30}break}default:{g=b;return g|0}}if((i|0)==30){if((w|0)==10){g=b;return g|0}if((c[f>>2]|0)!=1){g=b;return g|0}}w=f+20|0;c[w>>2]=(c[w>>2]|0)+-1;g=b;return g|0}function To(){wq(2220960,0,7424);c[555241]=0;c[555242]=0;c[555243]=32;c[555248]=256;c[555247]=(c[555801]|0)==0?192:64;c[555260]=1024;if(ka(27)|0){qv(96339)|0;c[555260]=2048}c[555261]=-1;c[555254]=0;c[555262]=0;c[555263]=0;c[555264]=0;c[555265]=0;c[555255]=-1;c[555256]=-1;c[555257]=-1;c[555275]=-1;c[555276]=1;c[555282]=0;c[555249]=2;c[555250]=10;c[555252]=0;if(!(c[555801]|0)){c[555270]=1;c[555283]=30;return}c[555249]=5;c[555270]=1;c[555283]=30;return}function Uo(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;b=Ia;Ia=Ia+1488|0;d=b+1464|0;e=b+1456|0;f=b+1448|0;g=b+1440|0;h=b+1432|0;i=b+1424|0;j=b+1416|0;k=b+1408|0;l=b+1400|0;m=b+1392|0;n=b+1384|0;o=b+1376|0;p=b+1368|0;q=b+1360|0;r=b+1352|0;s=b+1344|0;t=b+1336|0;u=b+1328|0;v=b+1320|0;w=b+1312|0;x=b+1304|0;y=b+1296|0;z=b+1288|0;A=b+1280|0;B=b+1024|0;C=b;D=b+1472|0;E=b+1468|0;if(c[557117]|0){Ia=b;return}a[2223216]=0;a[2224240]=0;ds(96392,C);F=Po(C,104528)|0;if(!F){es(96392,C);G=Po(C,104528)|0;if(!G){Ia=b;return}else H=G}else H=F;c[557117]=1;kv(2223216,C,1023)|0;Cn(96403);Cn(96421);switch(c[H>>2]|0){case 0:{I=Ru(c[H+8>>2]|0)|0;J=7;break}case 1:{I=(c[H+20>>2]|0)>=(c[H+16>>2]|0)&1;J=7;break}default:J=8}if((J|0)==7?(I|0)==0:0)J=8;a:do if((J|0)==8){I=H+8|0;C=B+10|0;F=H+20|0;G=H+16|0;K=B+11|0;L=B+8|0;M=B+19|0;N=B+12|0;O=B+15|0;P=B+6|0;Q=B+9|0;R=B+13|0;S=B+17|0;T=B+30|0;U=B+255|0;V=1;while(1){a[B>>0]=0;switch(c[H>>2]|0){case 0:{Qu(B,255,c[I>>2]|0)|0;break}case 1:{So(B,255,H)|0;break}default:{}}W=bu(B)|0;b:do if((W|0)>0){X=W;while(1){Y=X;X=X+-1|0;Z=B+X|0;switch(a[Z>>0]|0){case 13:case 10:break;default:break b}a[Z>>0]=0;if((Y|0)<=1)break b}}while(0);switch(a[B>>0]|0){case 47:case 0:{_=V;break}default:{c[A>>2]=V;c[A+4>>2]=B;wt(1715360,96424,A)|0;Cn(1715360);_=V+1|0}}c:do if(!(ut(B,96433,10)|0)){c[z>>2]=2220976;c[z+4>>2]=2220980;Su(C,96444,z)|0;c[555241]=c[555244];c[555242]=c[555245]}else{if(!(ut(B,96451,11)|0)){c[y>>2]=2220976;c[y+4>>2]=2220980;Su(K,96444,y)|0;break}if(!(ut(B,96463,11)|0)){c[x>>2]=2220964;c[x+4>>2]=2220968;Su(K,96444,x)|0;break}if(!(ut(B,96475,8)|0)){c[w>>2]=2220984;Su(L,96484,w)|0;break}if(!(ut(B,96488,19)|0)){c[v>>2]=2220996;Su(M,96484,v)|0;break}if(!(ut(B,96508,19)|0)){c[u>>2]=2221e3;Su(M,96484,u)|0;break}if(!(ut(B,96528,12)|0)){c[t>>2]=2220988;Su(N,96484,t)|0;break}if(!(ut(B,96541,12)|0)){c[s>>2]=2220992;Su(N,96484,s)|0;break}if(!(ut(B,96554,15)|0)){c[r>>2]=2221040;Su(O,96484,r)|0;break}if(!(ut(B,96570,6)|0)){c[q>>2]=2221044;Su(P,96484,q)|0;break}if(!(ut(B,96577,11)|0)){c[p>>2]=2221048;Su(K,96484,p)|0;break}if(!(ut(B,96589,8)|0)){c[o>>2]=2221052;Su(L,96484,o)|0;break}if(!(ut(B,96598,12)|0)){c[n>>2]=2221060;Su(N,96484,n)|0;break}if(!(ut(B,96611,9)|0)){c[m>>2]=2221016;Su(Q,96484,m)|0;break}if(!(ut(B,96621,15)|0)){c[l>>2]=2221020;c[l+4>>2]=2221024;Su(O,96444,l)|0;W=c[555256]|0;c[k>>2]=c[555255];c[k+4>>2]=W;wt(1715360,96637,k)|0;Cn(1715360);break}if(!(ut(B,96666,8)|0)){c[j>>2]=2221128;Su(Q,96484,j)|0;break}if(!(ut(B,96675,7)|0)){c[i>>2]=2221076;Su(L,96484,i)|0;break}if(!(ut(B,96683,12)|0)){a[2222172]=0;W=R;d:while(1){$=a[W>>0]|0;switch($<<24>>24){case 0:{break c;break}case 32:{W=W+1|0;break}default:break d}}X=$;Y=W;Z=0;aa=0;while(1){ba=2222172+aa|0;do if(X<<24>>24>31){ca=X<<24>>24==92?47:X<<24>>24;if(!((Z|0)!=47|(ca|0)!=47)){da=47;ea=aa;break}a[ba>>0]=ca;fa=aa+1|0;a[2222172+fa>>0]=0;da=ca;ea=fa}else{da=Z;ea=aa}while(0);Y=Y+1|0;X=a[Y>>0]|0;if(!(X<<24>>24))break;else{Z=da;aa=ea}}if((ea|0)<=0)break;aa=2222172+ea|0;e:while(1){Z=aa+-1|0;switch(a[Z>>0]|0){case 47:{break c;break}case 32:break;default:break e}a[Z>>0]=0;if(Z>>>0>2222172>>>0)aa=Z;else break c}a[aa>>0]=47;a[aa+1>>0]=0;break}if(!(ut(B,96696,17)|0)){c[h>>2]=2221080;Su(S,96484,h)|0;break}if(!(ut(B,96714,11)|0)){c[g>>2]=2221084;Su(K,96484,g)|0;switch(c[555271]|0){case 1:{c[555272]=1;break c;break}case 2:{c[555272]=0;break c;break}default:break c}}if(!(ut(B,96726,30)|0)){c[f>>2]=2221012;Su(T,96484,f)|0;break}if(ut(B,96757,13)|0){if(!(ut(B,96777,8)|0)){c[d>>2]=2228380;Su(L,96484,d)|0;break}Z=c[557115]|0;if(!Z)break;a[U>>0]=0;La[Z&255](B)|0;break}Z=R;while(1){ga=a[Z>>0]|0;if(ga<<24>>24==32)Z=Z+1|0;else break}if((ga+-48&255)<10){aa=Z;do{c[D>>2]=0;c[E>>2]=0;c[e>>2]=D;c[e+4>>2]=E;Su(aa,96771,e)|0;X=c[D>>2]|0;Y=c[E>>2]|0;if(X>>>0<512&(Y+-1|0)>>>0<511)c[2224284+(X<<2)>>2]=Y;Y=aa;while(1){X=a[Y>>0]|0;ha=X<<24>>24==44;ia=Y+1|0;if(ha^X<<24>>24!=0)Y=ia;else break}aa=ha?ia:Y}while(((a[aa>>0]|0)+-48&255)<10)}aa=0;do{Z=c[2224284+(aa<<2)>>2]|0;if((Z|0)>0)c[2226332+(Z<<2)>>2]=aa;aa=aa+1|0}while((aa|0)!=512)}while(0);switch(c[H>>2]|0){case 0:{ja=Ru(c[I>>2]|0)|0;break}case 1:{ja=(c[F>>2]|0)>=(c[G>>2]|0)&1;break}default:ja=0}if(!ja)V=_;else break a}}while(0);Cn(96786);_=c[555249]|0;ja=(_|0)<200?_:200;c[555249]=(ja|0)>0?ja:0;ja=c[555250]|0;_=(ja|0)<200?ja:200;c[555250]=(_|0)>0?_:0;_=c[555247]|0;ja=(_|0)<256?_:256;c[555247]=(ja|0)>0?ja:0;ja=c[555248]|0;_=(ja|0)<256?ja:256;c[555248]=(_|0)>0?_:0;if(((c[555260]|0)+-512|0)>>>0>7680)c[555260]=1024;if(!(us(H)|0)){if(!(c[H>>2]|0))Lu(c[H+8>>2]|0)|0;if(c[H+88>>2]|0)zq(c[H+12>>2]|0);zq(H);if(!(c[554979]|0))c[554979]=(Xr()|0)+1e3}c[555240]=1;H=Vo(2223216)|0;if(H|0)Gq(c[H+12>>2]|0,c[H+16>>2]|0,2224240)|0;Cq(H);Ia=b;return}function Vo(a){a=a|0;var b=0,c=0,d=0,e=0;b=Fu(a,96074)|0;if(!b){c=0;return c|0}a=Aq(1024)|0;d=xq(65536)|0;if(!(Ru(b)|0))do{e=tv(d,1,65536,b)|0;Ho(d,1,e,a)|0}while((e|0)!=0&(Ru(b)|0)==0);zq(d);Lu(b)|0;c=a;return c|0}function Wo(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=(c|0)==0?1725728:c;a[d>>0]=0;c=b;a:while(1){e=a[c>>0]|0;switch(e<<24>>24){case 32:{c=c+1|0;break}case 0:{f=13;break a;break}default:break a}}if((f|0)==13)return d|0;b=e;e=c;c=0;g=d;while(1){if(b<<24>>24>31){h=b<<24>>24==92?47:b<<24>>24;if((c|0)!=47|(h|0)!=47){a[g>>0]=h;i=g+1|0;a[i>>0]=0;j=h;k=i}else{j=47;k=g}}else{j=c;k=g}e=e+1|0;b=a[e>>0]|0;if(!(b<<24>>24))break;else{c=j;g=k}}if(k>>>0<=d>>>0)return d|0;g=k;b:while(1){k=g+-1|0;switch(a[k>>0]|0){case 47:{f=13;break b;break}case 32:break;default:{f=12;break b}}a[k>>0]=0;if(k>>>0>d>>>0)g=k;else{f=13;break}}if((f|0)==12){a[g>>0]=47;a[g+1>>0]=0;return d|0}else if((f|0)==13)return d|0;return 0}function Xo(){var b=0,d=0,e=0,f=0;b=Ia;Ia=Ia+1072|0;d=b+48|0;e=b;ds(96392,d);wq(e,0,41);f=Vo(d)|0;if(f|0)Gq(c[f+12>>2]|0,c[f+16>>2]|0,e)|0;Cq(f);if(!((a[e>>0]|0)==0|(a[2224240]|0)==0)?tt(e,2224240,40)|0:0){Ia=b;return}e=Po(d,96789)|0;if(!e){Ia=b;return}d=e+8|0;if(!(c[d>>2]|0)){Ia=b;return}c[555246]=xr()|0;Yo(e,96791,c[555247]|0)|0;Yo(e,96818,c[555248]|0)|0;f=c[557116]|0;if(!f){if(us(e)|0){Ia=b;return}if(!(c[e>>2]|0))Lu(c[d>>2]|0)|0;if(c[e+88>>2]|0)zq(c[e+12>>2]|0);zq(e);if(c[554979]|0){Ia=b;return}c[554979]=(Xr()|0)+1e3;Ia=b;return}else{La[f&255](e)|0;if(us(e)|0){Ia=b;return}if(!(c[e>>2]|0))Lu(c[d>>2]|0)|0;if(c[e+88>>2]|0)zq(c[e+12>>2]|0);zq(e);if(c[554979]|0){Ia=b;return}c[554979]=(Xr()|0)+1e3;Ia=b;return}}function Yo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=Ia;Ia=Ia+1040|0;f=e+1024|0;g=e;wq(g,0,1024);c[f>>2]=d;wt(g,b,f)|0;f=bu(g)|0;switch(c[a>>2]|0){case 0:{b=a+20|0;c[b>>2]=(c[b>>2]|0)+f;b=a+16|0;c[b>>2]=(c[b>>2]|0)+f;hv(g,1,f,c[a+8>>2]|0)|0;Ia=e;return 0}case 1:{if(!(c[a+88>>2]|0)){b=a+20|0;Vv((c[a+12>>2]|0)+(c[b>>2]|0)|0,g|0,f|0)|0;h=b}else{b=a+20|0;Bq(a,(c[b>>2]|0)+f|0)|0;Vv((c[a+12>>2]|0)+(c[b>>2]|0)|0,g|0,f|0)|0;h=b}b=(c[h>>2]|0)+f|0;c[h>>2]=b;h=a+16|0;a=c[h>>2]|0;c[h>>2]=(a|0)>(b|0)?a:b;Ia=e;return 0}default:{Ia=e;return 0}}return 0}function Zo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Qo(a,b,c,d,0);return}function _o(b,c){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,n=0,o=0,p=0;d=Ia;Ia=Ia+1024|0;e=d;switch(a[b>>0]|0){case 92:case 47:{f=3;break}default:if((a[b+1>>0]|0)==58)f=3;else gs(b,e)}if((f|0)==3)ku(e,b)|0;a[c>>0]=0;b=0;g=1;a:while(1){h=e+b|0;i=b;b:while(1){j=a[e+i>>0]|0;switch(j<<24>>24){case 0:case 92:case 47:{break b;break}default:{}}i=i+1|0}k=e+i|0;l=j<<24>>24==0;if((b|0)==(i|0)&l){f=10;break}a[k>>0]=0;c:do if(au(h,104886)|0){if(!((b|0)==0|(au(h,96845)|0)!=0)){m=(bu(c)|0)+-1|0;if((m|0)<=0){n=g;f=24;break}a[c+m>>0]=0;o=m;while(1){m=c+o|0;switch(a[m>>0]|0){case 58:case 92:case 47:{n=g;f=24;break c;break}default:{}}a[m>>0]=0;if((o|0)>1)o=o+-1|0;else{n=g;f=24;break c}}}if(au(h,96848)|0){if((g|0)==0?(a[h>>0]|0)==0:0){n=0;f=24;break}lu(c,h)|0;if(l){f=22;break a}o=c+(bu(c)|0)|0;a[o>>0]=47;a[o+1>>0]=0;a[k>>0]=j;p=0}else{n=g;f=24}}else{n=g;f=24}while(0);if((f|0)==24){f=0;a[k>>0]=j;if(l){f=26;break}else p=n}b=i+1|0;g=p}if((f|0)==10){if(b|0){Ia=d;return}a[c>>0]=0;Ia=d;return}else if((f|0)==22){a[k>>0]=0;Ia=d;return}else if((f|0)==26){Ia=d;return}}function $o(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=0;c[g>>2]=0;if(!b){h=0;Ia=d;return h|0}if(nq(e,f,g,b)|0){h=0;Ia=d;return h|0}b=c[f>>2]|0;i=c[g>>2]|0;if((i+-1|b+-1)>>>0>16383){h=0;Ia=d;return h|0}j=Sn(b,i,32)|0;i=j+12|0;Vv(c[i>>2]|0,c[e>>2]|0,B(c[f>>2]<<2,c[g>>2]|0)|0)|0;b=B(c[g>>2]|0,c[f>>2]|0)|0;if(b|0){f=b;b=c[i>>2]|0;while(1){i=a[b>>0]|0;g=b+2|0;a[b>>0]=a[g>>0]|0;a[g>>0]=i;f=f+-1|0;if(!f)break;else b=b+4|0}}zq(c[e>>2]|0);h=j;Ia=d;return h|0}function ap(a){a=a|0;var b=0,d=0;b=Po(a,96074)|0;if(!b){d=0;return d|0}a=$o(b)|0;if(us(b)|0){d=a;return d|0}if(!(c[b>>2]|0))Lu(c[b+8>>2]|0)|0;if(c[b+88>>2]|0)zq(c[b+12>>2]|0);zq(b);if(c[554979]|0){d=a;return d|0}c[554979]=(Xr()|0)+1e3;d=a;return d|0}function bp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=Ia;Ia=Ia+16|0;f=e;g=d+4|0;h=Sn(c[d>>2]|0,c[g>>2]|0,32)|0;i=d+8|0;j=c[i>>2]|0;if((j|0)==32){Gp(d,h,0,0,0,0,c[d>>2]|0,c[g>>2]|0);k=c[i>>2]|0}else k=j;if((k|0)==8)eo(d,h,c[742761]|0);k=h+12|0;j=c[d>>2]|0;i=c[g>>2]|0;l=B(i,j)|0;if(!l){m=j;n=i}else{i=l;l=c[k>>2]|0;while(1){j=a[l>>0]|0;o=l+2|0;a[l>>0]=a[o>>0]|0;a[o>>0]=j;i=i+-1|0;if(!i)break;else l=l+4|0}m=c[d>>2]|0;n=c[g>>2]|0}c[f>>2]=uq(b,c[k>>2]|0,m,n,6,8)|0;c[f+4>>2]=b;wt(1715360,96850,f)|0;Cn(1715360);Tn(h)|0;Ia=e;return 0}function cp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=Ia;Ia=Ia+1024|0;d=b;Qo(a,0,d,0,1);if(!95922){e=1;Ia=b;return e|0}a=95922;f=4640;while(1){g=bu(a)|0;if((g|0)==(bu(d)|0)?Ts(a,d)|0:0){e=0;h=6;break}f=f+4|0;a=c[f>>2]|0;if(!a){e=1;h=6;break}}if((h|0)==6){Ia=b;return e|0}return 0}function dp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;h=Ia;Ia=Ia+1040|0;i=h+1024|0;j=h;wq(j,0,1024);c[i>>2]=d;c[i+4>>2]=e;c[i+8>>2]=f;c[i+12>>2]=g;wt(j,b,i)|0;i=bu(j)|0;switch(c[a>>2]|0){case 0:{b=a+20|0;c[b>>2]=(c[b>>2]|0)+i;b=a+16|0;c[b>>2]=(c[b>>2]|0)+i;hv(j,1,i,c[a+8>>2]|0)|0;Ia=h;return 0}case 1:{if(!(c[a+88>>2]|0)){b=a+20|0;Vv((c[a+12>>2]|0)+(c[b>>2]|0)|0,j|0,i|0)|0;k=b}else{b=a+20|0;Bq(a,(c[b>>2]|0)+i|0)|0;Vv((c[a+12>>2]|0)+(c[b>>2]|0)|0,j|0,i|0)|0;k=b}b=(c[k>>2]|0)+i|0;c[k>>2]=b;k=a+16|0;a=c[k>>2]|0;c[k>>2]=(a|0)>(b|0)?a:b;Ia=h;return 0}default:{Ia=h;return 0}}return 0}function ep(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=Fu(a,96074)|0;if(!c){d=1;return d|0}a=Fu(b,104706)|0;if(!a){Lu(c)|0;d=2;return d|0}b=xq(65536)|0;if(!(Ru(c)|0))do{e=tv(b,1,65536,c)|0;hv(b,1,e,a)|0}while((e|0)!=0&(Ru(c)|0)==0);zq(b);Lu(c)|0;Lu(a)|0;d=0;return d|0}function fp(a,d){a=a|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;e=Ia;Ia=Ia+16|0;g=e+8|0;h=e;i=a+24|0;if(((c[i>>2]|0)>0?(j=a+28|0,(c[j>>2]|0)==0):0)?(k=a+8|0,l=xq(c[k>>2]<<5)|0,c[j>>2]=l,j=c[k>>2]|0,(j|0)>0):0){k=0;do{b[l+(k<<5)>>1]=0;b[l+(k<<5)+2>>1]=0;f[l+(k<<5)+4>>2]=1.0;k=k+1|0}while((k|0)<(j|0))}j=a+8|0;k=c[j>>2]|0;if((k|0)>=(d|0)){Ia=e;return}l=(k+1|0)==(d|0)?(d*5|0)/4|0:d;d=yq(c[a>>2]|0,l*12|0)|0;c[a>>2]=d;if(!d){c[h>>2]=96909;wt(1715360,96886,h)|0;Cn(1715360)}if((c[i>>2]|0)>0){i=a+28|0;a=yq(c[i>>2]|0,l<<5)|0;c[i>>2]=a;if(!a){c[g>>2]=96935;wt(1715360,96886,g)|0;Cn(1715360)}g=c[j>>2]|0;if((g|0)<(l|0)){a=c[i>>2]|0;i=g;do{b[a+(i<<5)>>1]=0;b[a+(i<<5)+2>>1]=0;f[a+(i<<5)+4>>2]=1.0;i=i+1|0}while((i|0)!=(l|0))}}c[j>>2]=l;Ia=e;return}function gp(a,d){a=a|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=Ia;Ia=Ia+16|0;g=e;h=a+20|0;i=c[h>>2]|0;if((i|0)>=(d|0)){Ia=e;return}j=(i+1|0)==(d|0)?(d*5|0)/4|0:d;d=a+12|0;i=yq(c[d>>2]|0,j*80|0)|0;c[d>>2]=i;if(!i){c[g>>2]=96966;wt(1715360,96886,g)|0;Cn(1715360)}g=c[a+16>>2]|0;if((g|0)>0){a=c[d>>2]|0;i=0;do{if((b[a+(i*80|0)+56>>1]|0)<5){c[a+(i*80|0)+48>>2]=a+(i*80|0);c[a+(i*80|0)+52>>2]=a+(i*80|0)+16}i=i+1|0}while((i|0)<(g|0))}g=c[h>>2]|0;if((g|0)<(j|0)){i=c[d>>2]|0;d=g;do{f[i+(d*80|0)+64>>2]=0.0;f[i+(d*80|0)+60>>2]=0.0;f[i+(d*80|0)+68>>2]=1.0;b[i+(d*80|0)+72>>1]=0;b[i+(d*80|0)+74>>1]=0;g=i+(d*80|0)+56|0;a=i+(d*80|0)|0;c[i+(d*80|0)+48>>2]=a;c[i+(d*80|0)+52>>2]=i+(d*80|0)+16;b[i+(d*80|0)+58>>1]=4;k=a;a=k+48|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(a|0));b[g>>1]=4;d=d+1|0}while((d|0)!=(j|0))}c[h>>2]=j;Ia=e;return}function hp(a,d){a=a|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=(d&1)+d|0;g=a+58|0;h=b[g>>1]|0;if((e|0)>4&(e|0)>(h<<16>>16|0)){i=a+48|0;if(h<<16>>16<5){c[i>>2]=0;h=a+52|0;c[h>>2]=0;j=i;k=0;l=h}else{j=i;k=c[i>>2]|0;l=a+52|0}c[j>>2]=yq(k,e<<2)|0;c[l>>2]=yq(c[l>>2]|0,e<<3)|0;if((b[g>>1]|0)<5){k=a+56|0;Vv(c[j>>2]|0,a|0,b[k>>1]<<2|0)|0;Vv(c[l>>2]|0,a+16|0,b[k>>1]<<3|0)|0}b[g>>1]=e}e=a+56|0;g=b[e>>1]|0;if((g|0)>=(d|0)){m=d&65535;b[e>>1]=m;return}k=c[a+48>>2]|0;l=c[a+52>>2]|0;a=g;do{c[k+(a<<2)>>2]=0;f[l+(a<<3)+4>>2]=0.0;f[l+(a<<3)>>2]=0.0;a=a+1|0}while((a|0)!=(d|0));m=d&65535;b[e>>1]=m;return}function ip(){var a=0,b=0,d=0;a=xq(52)|0;b=a;d=b+52|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));c[554810]=(c[554810]|0)+1;return a|0}function jp(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;if(!a)return;d=a+16|0;e=c[d>>2]|0;if((e|0)>0){f=a+12|0;g=e;e=0;while(1){h=c[f>>2]|0;if((b[h+(e*80|0)+58>>1]|0)>4){zq(c[h+(e*80|0)+48>>2]|0);zq(c[(c[f>>2]|0)+(e*80|0)+52>>2]|0);i=c[d>>2]|0}else i=g;e=e+1|0;if((e|0)>=(i|0))break;else g=i}}i=c[a>>2]|0;if(i|0)zq(i);i=c[a+32>>2]|0;if(i|0)zq(i);i=c[a+12>>2]|0;if(i|0)zq(i);i=c[a+28>>2]|0;if(i|0)zq(i);i=c[a+48>>2]|0;if(i|0)zq(i);i=c[a+36>>2]|0;if(i|0)zq(i);i=c[a+40>>2]|0;if(i|0)zq(i);zq(a);c[554810]=(c[554810]|0)+-1;return}function kp(a){a=a|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=Ia;Ia=Ia+32|0;e=d+12|0;g=d;h=a+16|0;i=c[h>>2]|0;if((i|0)<=0){Ia=d;return}j=a+12|0;k=e+4|0;l=e+8|0;m=g+4|0;n=g+8|0;o=i;i=0;while(1){p=c[j>>2]|0;if((b[p+(i*80|0)+56>>1]|0)>2){q=c[a>>2]|0;r=c[p+(i*80|0)+48>>2]|0;s=c[r+4>>2]|0;t=q+(s*12|0)|0;u=c[r>>2]|0;f[e>>2]=+f[t>>2]-+f[q+(u*12|0)>>2];v=q+(s*12|0)+4|0;f[k>>2]=+f[v>>2]-+f[q+(u*12|0)+4>>2];w=q+(s*12|0)+8|0;f[l>>2]=+f[w>>2]-+f[q+(u*12|0)+8>>2];u=c[r+8>>2]|0;f[g>>2]=+f[t>>2]-+f[q+(u*12|0)>>2];f[m>>2]=+f[v>>2]-+f[q+(u*12|0)+4>>2];f[n>>2]=+f[w>>2]-+f[q+(u*12|0)+8>>2];u=p+(i*80|0)+60|0;qp(e,g,u);pp(u);x=c[h>>2]|0}else{f[p+(i*80|0)+60>>2]=0.0;f[p+(i*80|0)+64>>2]=1.0;f[p+(i*80|0)+68>>2]=0.0;x=o}i=i+1|0;if((i|0)>=(x|0))break;else o=x}Ia=d;return}function lp(){var a=0,b=0,d=0,e=0,f=0;a=xq(96)|0;if(!a){b=0;return b|0}d=a+32|0;e=a;f=e+96|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));c[d>>2]=-13408615;c[a+36>>2]=-10461088;c[554810]=(c[554810]|0)+1;b=a;return b|0}function mp(a){a=a|0;if(!a)return;zq(a);c[554810]=(c[554810]|0)+-1;return}function np(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;b=a+44|0;c[b>>2]=0;d=a+24|0;e=c[d>>2]|0;f=a+36|0;g=c[f>>2]|0;if(!e){zq(g);c[f>>2]=0;h=a+40|0;zq(c[h>>2]|0);c[h>>2]=0;return}c[f>>2]=yq(g,e<<2)|0;e=a+40|0;g=yq(c[e>>2]|0,c[d>>2]<<2)|0;c[e>>2]=g;e=c[d>>2]|0;if((e|0)>0){h=c[f>>2]|0;i=a+12|0;a=0;do{j=h+(a<<2)|0;c[j>>2]=-1;k=c[d>>2]|0;if((k|0)>0){l=c[i>>2]|0;m=c[l+(a*80|0)+48>>2]|0;n=k;o=0;while(1){if((c[m>>2]|0)==(c[(c[l+(o*80|0)+48>>2]|0)+4>>2]|0)){c[j>>2]=o;p=c[d>>2]|0}else p=n;o=o+1|0;if((o|0)>=(p|0)){q=p;break}else n=p}}else q=k;a=a+1|0}while((a|0)<(q|0));c[b>>2]=(q<<4)+16;if((q|0)>0){a=0;do{c[g+(a<<2)>>2]=32768;a=a+1|0;p=c[d>>2]|0}while((a|0)<(p|0));r=p}else r=q}else{c[b>>2]=(e<<4)+16;r=e}e=r;r=0;while(1){if((e|0)<=0){s=24;break}b=e;q=0;a=0;p=r;while(1){i=g+(a<<2)|0;do if(!(c[i>>2]&32768)){t=b;u=q;v=p}else{h=c[(c[f>>2]|0)+(a<<2)>>2]|0;if((h|0)!=-1?c[g+(h<<2)>>2]&32768|0:0){t=b;u=q;v=p;break}h=g+(p<<2)|0;c[h>>2]=c[h>>2]|a;c[i>>2]=c[i>>2]&32767;t=c[d>>2]|0;u=1;v=p+1|0}while(0);a=a+1|0;if((a|0)>=(t|0))break;else{b=t;q=u;p=v}}if(!u){s=24;break}else{e=t;r=v}}if((s|0)==24)return}function op(a){a=a|0;kp(a);np(a);Ep(a,0);return}function pp(a){a=a|0;var b=0.0,c=0,d=0.0,e=0,g=0.0,h=0.0,i=0.0,j=0.0;b=+f[a>>2];c=a+4|0;d=+f[c>>2];e=a+8|0;g=+f[e>>2];h=+v(+(b*b+d*d+g*g));if(h==0.0){f[a>>2]=0.0;f[c>>2]=1.0;i=0.0;f[e>>2]=i;return}else{j=1.0/h;f[a>>2]=b*j;f[c>>2]=d*j;i=g*j;f[e>>2]=i;return}}function qp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=a+4|0;e=b+8|0;g=a+8|0;h=b+4|0;f[c>>2]=+f[d>>2]*+f[e>>2]-+f[g>>2]*+f[h>>2];f[c+4>>2]=+f[g>>2]*+f[b>>2]-+f[a>>2]*+f[e>>2];f[c+8>>2]=+f[a>>2]*+f[h>>2]-+f[d>>2]*+f[b>>2];return}function rp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;d=+f[a>>2];e=+f[a+12>>2];g=+f[a+24>>2];h=1.0/(d*d+e*e+g*g);i=+f[a+4>>2]*h;j=+f[a+8>>2]*h;k=+f[a+16>>2]*h;l=+f[a+20>>2]*h;m=+f[a+28>>2]*h;n=+f[a+32>>2]*h;o=+f[b>>2]-+f[a+36>>2];p=+f[b+4>>2]-+f[a+40>>2];q=+f[b+8>>2]-+f[a+44>>2];f[c>>2]=d*h*o+e*h*p+g*h*q;f[c+4>>2]=i*o+k*p+m*q;f[c+8>>2]=j*o+l*p+n*q;return}function sp(a){a=a|0;var b=0;b=(a|0)==0?-559038737:a;c[8735]=b;c[8734]=b^-1095947846;return}function tp(a){a=a|0;var b=0,d=0,e=0,f=0;if(!a){b=0;return b|0}d=c[8734]|0;e=c[8735]|0;f=(d<<16|d>>>16)+e|0;c[8734]=f;c[8735]=f+e;b=(f>>>0)%(a>>>0)|0;return b|0}function up(a){a=a|0;var b=0,d=0;b=(a+2|0)>>>2&16383;a=b>>>0>8191?16384-b|0:b;if(a>>>0>4095){d=0-(c[4752+(8192-a<<2)>>2]|0)|0;return d|0}else{d=c[4752+(a<<2)>>2]|0;return d|0}return 0}function vp(a){a=a|0;var b=0,d=0;b=(a+16386|0)>>>2&16383;a=b>>>0>8191?16384-b|0:b;if(a>>>0>4095){d=0-(c[4752+(8192-a<<2)>>2]|0)|0;return d|0}else{d=c[4752+(a<<2)>>2]|0;return d|0}return 0}function wp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(b|0)==-2147483648?2147483647:0-b|0;if(!a)e=B(d>>31|1,2147483647)|0;else{b=Rv(d|0,((d|0)<0)<<31>>31|0,16)|0;d=Lv(b|0,G()|0,a|0,((a|0)<0)<<31>>31|0)|0;b=G()|0;f=(b|0)>-1|(b|0)==-1&d>>>0>2147483649;g=f?d:-2147483647;d=f?b:-1;b=(d|0)<0|(d|0)==0&g>>>0<2147483647;d=b?g:2147483647;e=d}d=(e|0)<0?0-e|0:e;if((d|0)>65536){g=Lv(0,1,d|0,((d|0)<0)<<31>>31|0)|0;b=G()|0;f=(b|0)>-1|(b|0)==-1&g>>>0>2147483649;h=f?g:-2147483647;g=f?b:-1;b=(g|0)<0|(g|0)==0&h>>>0<2147483647;g=b?h:2147483647;i=0;j=g}else{i=1;j=d}d=j>>5;j=(d|0)<2048?d:2048;d=c[21152+(((j|0)>0?j:0)<<2)>>2]|0;j=B(i?d:16384-d|0,e>>31|1)|0;return ((a|0)<0?j+32768|0:j)&65535|0}function xp(){var a=0;a=xq(16)|0;c[a>>2]=0;c[a+4>>2]=0;c[554810]=(c[554810]|0)+1;return a|0}function yp(a){a=a|0;var b=0;if(!a)return;if((c[a>>2]|0)>0){b=0;do{zp(a,b);b=b+1|0}while((b|0)<(c[a>>2]|0))}zq(c[a+4>>2]|0);c[554810]=(c[554810]|0)+-1;return}function zp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((a|0)==0|(b|0)<0)return;if((c[a>>2]|0)<=(b|0))return;d=a+4|0;a=c[d>>2]|0;e=c[a+(b*112|0)+80>>2]|0;if(!e)f=a;else{zq(c[e+12>>2]|0);zq(c[e+16>>2]|0);zq(c[e+20>>2]|0);zq(e);f=c[d>>2]|0}e=c[f+(b*112|0)+84>>2]|0;if(!e)g=f;else{zq(c[e+12>>2]|0);zq(c[e+16>>2]|0);zq(c[e+20>>2]|0);zq(e);g=c[d>>2]|0}e=c[g+(b*112|0)+88>>2]|0;if(!e)h=g;else{zq(c[e+12>>2]|0);zq(c[e+16>>2]|0);zq(c[e+20>>2]|0);zq(e);h=c[d>>2]|0}e=c[h+(b*112|0)+96>>2]|0;if(!e)i=h;else{zq(c[e+12>>2]|0);zq(c[e+16>>2]|0);zq(c[e+20>>2]|0);zq(e);i=c[d>>2]|0}e=c[i+(b*112|0)+92>>2]|0;if((c[i+(b*112|0)+104>>2]|0)>0){h=e;g=i;i=0;while(1){f=c[h+(i<<2)>>2]|0;if(!f)j=g;else{zq(c[f+12>>2]|0);zq(c[f+16>>2]|0);zq(c[f+20>>2]|0);zq(f);j=c[d>>2]|0}i=i+1|0;f=c[j+(b*112|0)+92>>2]|0;if((i|0)>=(c[j+(b*112|0)+104>>2]|0)){k=f;break}else{h=f;g=j}}}else k=e;zq(k);return}function Ap(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d;f=(c[b>>2]|0)+1|0;c[b>>2]=f;g=b+4|0;h=yq(c[g>>2]|0,f*112|0)|0;c[g>>2]=h;g=(c[b>>2]|0)+-1|0;c[e>>2]=g;wt(h+(g*112|0)|0,96990,e)|0;a[h+(g*112|0)+32>>0]=0;e=h+(g*112|0)+64|0;c[e>>2]=-1;c[e+4>>2]=-1;c[e+8>>2]=-1;c[e+12>>2]=-1;c[h+(g*112|0)+104>>2]=0;c[h+(g*112|0)+100>>2]=0;c[h+(g*112|0)+108>>2]=0;e=xq(24)|0;c[e+4>>2]=0;c[e>>2]=0;c[e+8>>2]=12;c[e+16>>2]=0;c[e+20>>2]=0;c[e+12>>2]=0;c[h+(g*112|0)+80>>2]=e;e=xq(24)|0;c[e+4>>2]=0;c[e>>2]=0;c[e+8>>2]=12;c[e+16>>2]=0;c[e+20>>2]=0;c[e+12>>2]=0;c[h+(g*112|0)+84>>2]=e;e=xq(24)|0;c[e+4>>2]=0;c[e>>2]=0;c[e+8>>2]=12;c[e+16>>2]=0;c[e+20>>2]=0;c[e+12>>2]=0;c[h+(g*112|0)+88>>2]=e;e=xq(24)|0;c[e+4>>2]=0;c[e>>2]=0;c[e+8>>2]=24;c[e+16>>2]=0;c[e+20>>2]=0;c[e+12>>2]=0;c[h+(g*112|0)+96>>2]=e;c[h+(g*112|0)+92>>2]=0;Ia=d;return (c[b>>2]|0)+-1|0}function Bp(a){a=a|0;var b=0;b=xq(24)|0;c[b+4>>2]=0;c[b>>2]=0;c[b+8>>2]=a;c[b+16>>2]=0;c[b+20>>2]=0;c[b+12>>2]=0;return b|0}function Cp(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;if((c[d>>2]|0)>=(b|0)){c[a>>2]=b;return}c[d>>2]=b;d=a+12|0;c[d>>2]=yq(c[d>>2]|0,B(c[a+8>>2]|0,b)|0)|0;d=a+16|0;e=b<<2;c[d>>2]=yq(c[d>>2]|0,e)|0;d=a+20|0;c[d>>2]=yq(c[d>>2]|0,e)|0;c[a>>2]=b;return}function Dp(a,b){a=a|0;b=b|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0.0;d=a+24|0;e=c[d>>2]|0;g=e<<2;h=b+(g<<2)|0;i=b+((g|3)<<2)|0;if(!e)return;g=a+48|0;j=yq(c[g>>2]|0,e*48|0)|0;c[g>>2]=j;e=c[d>>2]|0;if((e|0)>0){k=a+36|0;l=j;m=b;b=0;while(1){n=+f[m>>2];o=+x(+n);p=+f[m+4>>2];q=+x(+p);r=+f[m+8>>2];s=+x(+r);t=+w(+n);n=+w(+p);p=+w(+r);u=l+(b*48|0)|0;f[l+(b*48|0)+4>>2]=q;f[u>>2]=t*n;f[l+(b*48|0)+8>>2]=o*n;v=l+(b*48|0)+12|0;r=n*0.0-q*s;f[l+(b*48|0)+16>>2]=q*0.0+n*s;f[v>>2]=r*t-o*p;f[l+(b*48|0)+20>>2]=t*p+r*o;qp(u,v,l+(b*48|0)+24|0);v=m+12|0;l=c[g>>2]|0;u=l+(b*48|0)|0;f[u>>2]=+f[v>>2]*+f[u>>2];u=l+(b*48|0)+4|0;f[u>>2]=+f[v>>2]*+f[u>>2];u=l+(b*48|0)+8|0;f[u>>2]=+f[v>>2]*+f[u>>2];u=l+(b*48|0)+12|0;f[u>>2]=+f[v>>2]*+f[u>>2];u=l+(b*48|0)+16|0;f[u>>2]=+f[v>>2]*+f[u>>2];u=l+(b*48|0)+20|0;f[u>>2]=+f[v>>2]*+f[u>>2];u=l+(b*48|0)+24|0;f[u>>2]=+f[v>>2]*+f[u>>2];u=l+(b*48|0)+28|0;f[u>>2]=+f[v>>2]*+f[u>>2];u=l+(b*48|0)+32|0;f[u>>2]=+f[v>>2]*+f[u>>2];u=l+(b*48|0)+12|0;v=c[u>>2]|0;y=l+(b*48|0)+4|0;c[u>>2]=c[y>>2];c[y>>2]=v;v=l+(b*48|0)+24|0;y=c[v>>2]|0;u=l+(b*48|0)+8|0;c[v>>2]=c[u>>2];c[u>>2]=y;y=l+(b*48|0)+28|0;u=c[y>>2]|0;v=l+(b*48|0)+20|0;c[y>>2]=c[v>>2];c[v>>2]=u;if((c[(c[k>>2]|0)+(b<<2)>>2]|0)==-1){f[l+(b*48|0)+36>>2]=0.0;f[l+(b*48|0)+40>>2]=0.0;f[l+(b*48|0)+44>>2]=0.0}b=b+1|0;z=c[d>>2]|0;if((b|0)>=(z|0))break;else m=m+16|0}m=(z|0)>0;if(m){b=c[a+40>>2]|0;d=c[a+36>>2]|0;a=0;do{k=c[b+(a<<2)>>2]|0;g=c[d+(k<<2)>>2]|0;if((g|0)!=-1){f[l+(k*48|0)+36>>2]=+f[l+(g*48|0)+36>>2]+ +f[l+(g*48|0)>>2];f[l+(k*48|0)+40>>2]=+f[l+(g*48|0)+40>>2]+ +f[l+(g*48|0)+12>>2];f[l+(k*48|0)+44>>2]=+f[l+(g*48|0)+44>>2]+ +f[l+(g*48|0)+24>>2]}a=a+1|0}while((a|0)!=(z|0));A=z;B=l;C=m}else{A=z;B=l;C=0}}else{A=e;B=j;C=0}j=c[i>>2]|0;i=(j|0)<0;e=i?0-j|0:j;o=+f[B+(e*48|0)+36>>2];r=+f[B+(e*48|0)+40>>2];p=+f[B+(e*48|0)+44>>2];if(i){D=o+ +f[B+(e*48|0)>>2];E=r+ +f[B+(e*48|0)+12>>2];F=p+ +f[B+(e*48|0)+24>>2]}else{D=o;E=r;F=p}p=+f[h>>2]-D;D=+f[h+4>>2]-E;E=+f[h+8>>2]-F;if(!C)return;C=0;do{h=B+(C*48|0)+36|0;f[h>>2]=p+ +f[h>>2];h=B+(C*48|0)+40|0;f[h>>2]=D+ +f[h>>2];h=B+(C*48|0)+44|0;f[h>>2]=E+ +f[h>>2];C=C+1|0}while((C|0)!=(A|0));return}function Ep(a,b){a=a|0;b=b|0;var d=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0.0,A=0.0,B=0.0,C=0.0,D=0.0;d=Ia;Ia=Ia+16|0;g=d;if(!a){Ia=d;return}h=a+24|0;i=a+28|0;j=c[i>>2]|0;if(!(c[h>>2]|0)){zq(j);c[i>>2]=0;Ia=d;return}k=a+4|0;c[i>>2]=yq(j,c[k>>2]<<5)|0;j=a+44|0;l=xq(c[j>>2]|0)|0;if((c[h>>2]|0)>0){m=a+12|0;n=g+4|0;o=g+8|0;p=a+36|0;q=0;r=0;while(1){s=c[a>>2]|0;t=c[(c[m>>2]|0)+(q*80|0)+48>>2]|0;u=c[t+4>>2]|0;w=c[t>>2]|0;x=+f[s+(u*12|0)>>2]-+f[s+(w*12|0)>>2];f[g>>2]=x;A=+f[s+(u*12|0)+4>>2]-+f[s+(w*12|0)+4>>2];f[n>>2]=A;B=+f[s+(u*12|0)+8>>2]-+f[s+(w*12|0)+8>>2];f[o>>2]=B;f[l+((r|3)<<2)>>2]=+v(+(x*x+A*A+B*B));pp(g);B=+f[g>>2];A=+f[o>>2];x=+v(+(B*B+A*A));C=+z(+A,+B);w=l+(r<<2)|0;f[w>>2]=C;B=+f[n>>2];if(x==0.0)D=B>=0.0?1.5707963267948966:-1.5707963267948966;else D=+y(+(B/x));x=D;s=l+((r|1)<<2)|0;f[s>>2]=x;f[l+((r|2)<<2)>>2]=0.0;if(+f[o>>2]<0.0){f[w>>2]=C+3.141592653589793;f[s>>2]=(1.5707963267948966-(x<0.0?-x:x))*2.0*(+f[n>>2]>=0.0?1.0:-1.0)+x}if((c[(c[p>>2]|0)+(q<<2)>>2]|0)==-1){s=c[h>>2]<<2;w=l+(s<<2)|0;u=c[a>>2]|0;t=c[c[(c[m>>2]|0)+(q*80|0)+48>>2]>>2]|0;c[w>>2]=c[u+(t*12|0)>>2];c[w+4>>2]=c[u+(t*12|0)+4>>2];c[w+8>>2]=c[u+(t*12|0)+8>>2];c[l+((s|3)<<2)>>2]=q}q=q+1|0;if((q|0)>=(c[h>>2]|0))break;else r=r+4|0}}if(b|0){Vv(b|0,l|0,c[j>>2]|0)|0;zq(l);Ia=d;return}Dp(a,l);if((c[k>>2]|0)>0){j=a+48|0;b=0;do{r=c[i>>2]|0;rp((c[j>>2]|0)+((e[r+(b<<5)>>1]|0)*48|0)|0,(c[a>>2]|0)+(b*12|0)|0,r+(b<<5)+8|0);r=c[i>>2]|0;rp((c[j>>2]|0)+((e[r+(b<<5)+2>>1]|0)*48|0)|0,(c[a>>2]|0)+(b*12|0)|0,r+(b<<5)+20|0);b=b+1|0}while((b|0)<(c[k>>2]|0))}zq(l);Ia=d;return}function Fp(){var a=0,b=0,d=0;a=c[555273]|0;b=c[555275]|0;if(!(c[555285]|c[555272]))if((b|0)==-1)d=(c[742748]|0)<720&1;else d=b;else d=1;b=(a|0)<8?a:8;return ((d|0)==0?((b|0)<1?1:(b|0)>0?b:0):1)|0}function Gp(a,b,e,f,g,h,i,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;k=Ia;Ia=Ia+32|0;l=k+20|0;m=k+16|0;n=k+12|0;o=k+8|0;p=k+4|0;q=k;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[q>>2]=j;if(!((a|0)!=0&(b|0)!=0)){Ia=k;return}j=b+8|0;i=a+8|0;if(2970992==(a|0)?1:(c[j>>2]|0)<(c[i>>2]|0)){Ia=k;return}Vn(a,b,l,m,n,o,p,q);h=c[p>>2]|0;if((h|0)<1){Ia=k;return}g=c[j>>2]|0;j=g>>3;if(2970992==(b|0)){f=c[555273]|0;e=c[555275]|0;if(!(c[555285]|c[555272]))if((e|0)==-1)r=(c[b>>2]|0)<720&1;else r=e;else r=1;e=(f|0)<8?f:8;f=(e|0)<1?1:(e|0)>0?e:0;if(!((f|0)>1&(r|0)==0)){Wr(a,b,c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,h,c[q>>2]|0,0);Ia=k;return}r=c[557118]|0;if(((r|0)!=0?(e=c[r>>2]|0,(e|0)==(B(c[a>>2]|0,f)|0)):0)?(s=c[r+4>>2]|0,(s|0)==(B(c[a+4>>2]|0,f)|0)):0){t=r;u=e;v=s}else{w=a;x=13}if((x|0)==13){Tn(r)|0;r=B(c[w>>2]|0,f)|0;w=B(c[a+4>>2]|0,f)|0;f=Sn(r,w,c[i>>2]|0)|0;c[557118]=f;t=f;u=c[f>>2]|0;v=c[f+4>>2]|0}_n(a,t,0,0,u,v,0);v=c[557118]|0;Wr(v,b,0,0,0,0,c[v>>2]|0,c[v+4>>2]|0,0);Ia=k;return}v=c[i>>2]|0;if((g|0)==(v|0)){if((c[q>>2]|0)<=0){Ia=k;return}i=b+16|0;u=a+16|0;t=h;f=0;while(1){w=(c[(c[i>>2]|0)+((c[o>>2]|0)+f<<2)>>2]|0)+(B(c[n>>2]|0,j)|0)|0;Vv(w|0,(c[(c[u>>2]|0)+((c[m>>2]|0)+f<<2)>>2]|0)+(B(c[l>>2]|0,j)|0)|0,B(t,j)|0)|0;w=f+1|0;if((w|0)>=(c[q>>2]|0))break;t=c[p>>2]|0;f=w}Ia=k;return}if(!((g|0)==32&(v|0)==8)){Ia=k;return}v=c[742761]|0;g=c[q>>2]|0;if((g|0)<=0){Ia=k;return}f=a+16|0;a=b+16|0;b=h;h=g;g=0;while(1){if((b|0)>0){t=c[f>>2]|0;j=c[a>>2]|0;u=0;do{i=d[(c[t+((c[m>>2]|0)+g<<2)>>2]|0)+((c[l>>2]|0)+u)>>0]|0;c[(c[j+((c[o>>2]|0)+g<<2)>>2]|0)+((c[n>>2]|0)+u<<2)>>2]=(d[v+(i*3|0)>>0]|0)<<16|(d[v+(i*3|0)+1>>0]|0)<<8|(d[v+(i*3|0)+2>>0]|0)|-16777216;u=u+1|0;y=c[p>>2]|0}while((u|0)<(y|0));z=c[q>>2]|0;A=y}else{z=h;A=b}g=g+1|0;if((g|0)>=(z|0))break;else{b=A;h=z}}Ia=k;return}function Hp(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;if((j|0)<=0)return;k=b+16|0;b=d+16|0;if(!i)return;d=0;do{l=(c[(c[b>>2]|0)+(d+h<<2)>>2]|0)+g|0;m=(c[(c[k>>2]|0)+(d+f<<2)>>2]|0)+e|0;n=i;while(1){o=a[m>>0]|0;if(o<<24>>24)a[l>>0]=o;n=n+-1|0;if(!n)break;else{l=l+1|0;m=m+1|0}}d=d+1|0}while((d|0)!=(j|0));return}function Ip(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0;if((i|0)<=0)return;j=a+16|0;a=b+16|0;if((h|0)<=0)return;b=0;do{k=(c[(c[a>>2]|0)+(b+g<<2)>>2]|0)+(f<<2)|0;l=(c[(c[j>>2]|0)+(b+e<<2)>>2]|0)+(d<<2)|0;m=0;while(1){n=c[l>>2]|0;o=$n(c[k>>2]|0,n,n>>>24)|0;c[k>>2]=c[k>>2]&-16777216|o;m=m+1|0;if((m|0)==(h|0))break;else{k=k+4|0;l=l+4|0}}b=b+1|0}while((b|0)!=(i|0));return}function Jp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a>>2]|0;e=a+8|0;do if((d|0)>0){f=c[e>>2]|0;if(!(au(b,c[f+(d+-1<<2)>>2]|0)|0))return;else{g=e;h=f;break}}else{g=e;h=c[e>>2]|0}while(0);c[g>>2]=yq(h,(d<<2)+4|0)|0;d=xq((bu(b)|0)+1|0)|0;h=c[a>>2]|0;c[(c[e>>2]|0)+(h<<2)>>2]=d;Rs(c[(c[e>>2]|0)+(h<<2)>>2]|0,b)|0;b=a+16|0;h=yq(c[b>>2]|0,(c[a>>2]<<2)+4|0)|0;c[b>>2]=h;c[h+(c[a>>2]<<2)>>2]=c[a+4>>2];c[a>>2]=(c[a>>2]|0)+1;return}function Kp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=a+8|0;d=c[b>>2]|0;if((c[a>>2]|0)>0){e=d;f=0;while(1){zq(c[e+(f<<2)>>2]|0);f=f+1|0;g=c[b>>2]|0;if((f|0)>=(c[a>>2]|0)){h=g;break}else e=g}}else h=d;zq(h);zq(c[a+16>>2]|0);h=a+4|0;d=a+12|0;a=c[d>>2]|0;if((c[h>>2]|0)<=0){i=a;zq(i);j=c[554810]|0;k=j+-1|0;c[554810]=k;return}e=a;a=0;while(1){zq(c[e+(a<<2)>>2]|0);a=a+1|0;f=c[d>>2]|0;if((a|0)>=(c[h>>2]|0)){i=f;break}else e=f}zq(i);j=c[554810]|0;k=j+-1|0;c[554810]=k;return}function Lp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=c[a>>2]|0;a:do if((e|0)>0){f=c[a+8>>2]|0;g=0;while(1){if(!(au(b,c[f+(g<<2)>>2]|0)|0)){h=g;break a}i=g+1|0;if((i|0)<(e|0))g=i;else{h=i;break}}}else h=0;while(0);do if((h|0)!=(e|0)?(b=c[a+16>>2]|0,g=(c[b+(h<<2)>>2]|0)+d|0,(g|0)<(c[a+4>>2]|0)):0){if((h|0)<(e+-1|0)?(g|0)>=(c[b+(h+1<<2)>>2]|0):0){j=34944;break}j=(c[a+12>>2]|0)+(g<<2)|0}else j=34944;while(0);return c[j>>2]|0}function Mp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=Ia;Ia=Ia+2048|0;e=d+1024|0;f=d;g=Po(b,104528)|0;if(!g){h=0;Ia=d;return h|0}b=xq(24)|0;wq(b,0,24);a:do if(!(No(g)|0)){i=b+12|0;j=b+4|0;while(1){a[e>>0]=0;So(e,1023,g)|0;k=a[e>>0]|0;b:do switch(k<<24>>24){case 0:case 47:break;default:{l=k;m=e;while(1){n=l<<24>>24;switch(l<<24>>24){case 47:case 0:{break b;break}default:{}}if(l<<24>>24==95|((n+-48|0)>>>0<10|((n&-33)+-65|0)>>>0<26))break;n=m+1|0;l=a[n>>0]|0;m=n}if(l<<24>>24){a[f>>0]=0;n=l;o=m;p=0;while(1){a[f+p>>0]=n;p=p+1|0;a[f+p>>0]=0;q=o+1|0;n=a[q>>0]|0;r=n<<24>>24;if(!(n<<24>>24==95|((r+-48|0)>>>0<10|((r&-33)+-65|0)>>>0<26)))break;else o=q}if(a[f>>0]|0){Jp(b,f);n=a[q>>0]|0;if(n<<24>>24==58)s=(a[o+2>>0]|0)==58;else s=0;p=n;n=q;c:while(1){switch(p<<24>>24){case 58:case 32:break;default:break c}m=n+1|0;p=a[m>>0]|0;n=m}o=p<<24>>24==0;if(!s){if(o)break b;c[i>>2]=yq(c[i>>2]|0,(c[j>>2]<<2)+4|0)|0;m=xq((bu(n)|0)+1|0)|0;l=c[j>>2]|0;c[(c[i>>2]|0)+(l<<2)>>2]=m;Rs(c[(c[i>>2]|0)+(l<<2)>>2]|0,n)|0;c[j>>2]=(c[j>>2]|0)+1;break b}if(!o){o=n;while(1){a[f>>0]=0;l=o;while(1){t=a[l>>0]|0;if(t<<24>>24==32)l=l+1|0;else break}m=t;r=l;u=0;d:while(1){switch(m<<24>>24){case 32:case 0:{break d;break}default:{}}a[f+u>>0]=m;v=u+1|0;a[f+v>>0]=0;w=r+1|0;m=a[w>>0]|0;r=w;u=v}if(!(a[f>>0]|0))x=m;else{c[i>>2]=yq(c[i>>2]|0,(c[j>>2]<<2)+4|0)|0;u=xq((bu(f)|0)+1|0)|0;l=c[j>>2]|0;c[(c[i>>2]|0)+(l<<2)>>2]=u;Rs(c[(c[i>>2]|0)+(l<<2)>>2]|0,f)|0;c[j>>2]=(c[j>>2]|0)+1;x=a[r>>0]|0}if(!(x<<24>>24))break;else o=r}}}}}}while(0);if(No(g)|0)break a}}while(0);Ro(g);c[554810]=(c[554810]|0)+1;h=b;Ia=d;return h|0}function Np(a){a=a|0;var b=0;b=vq(11032)|0;c[b>>2]=a<<2;c[554810]=(c[554810]|0)+1;return b|0}function Op(a){a=a|0;if(!a)return;Pp(a);zq(a);c[554810]=(c[554810]|0)+-1;return}function Pp(a){a=a|0;var b=0;b=a+11016|0;Yq(c[b>>2]|0);Xq(c[b>>2]|0);c[b>>2]=0;b=a+344|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+688|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+1032|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+1376|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+1720|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+2064|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+2408|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+2752|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+3096|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+3440|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+3784|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+4128|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+4472|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+4816|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+5160|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+5504|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+5848|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+6192|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+6536|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+6880|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+7224|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+7568|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+7912|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+8256|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+8600|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+8944|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+9288|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+9632|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+9976|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+10320|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+10664|0;zq(c[b>>2]|0);c[b>>2]=0;b=a+11008|0;zq(c[b>>2]|0);c[b>>2]=0;return}function Qp(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0;h=Ia;Ia=Ia+144|0;i=h+88|0;j=h+44|0;k=h;l=f<<3;m=e+g|0;g=f+-2|0;e=f+-4|0;n=i+8|0;o=i+4|0;p=i+12|0;q=i+20|0;r=i+16|0;s=i+24|0;t=i+32|0;u=i+28|0;v=j+8|0;w=j+4|0;x=j+12|0;y=j+20|0;z=j+16|0;A=j+24|0;B=j+32|0;C=j+28|0;D=i+40|0;E=b+4|0;F=b+8|0;G=j+40|0;H=k+8|0;I=k+4|0;J=k+12|0;K=k+20|0;L=k+16|0;M=k+24|0;N=k+32|0;O=k+28|0;P=k+40|0;Q=k+36|0;R=i+36|0;S=j+36|0;T=0;U=0;a:while(1){V=T+2|0;if(V>>>0>=l>>>0){W=52;X=125;break}Y=d[m+(T>>>3)>>0]|0;Z=T&7;_=T+1|0;$=T+3|0;aa=((d[m+(V>>>3)>>0]|0)>>>(V&7)<<1|(d[m+(_>>>3)>>0]|0)>>>(_&7)&1)&255;switch(aa&3){case 3:{W=20;X=125;break a;break}case 0:{if(!($&7))ba=$;else{_=$;while(1){V=_+1|0;if(!(V&7)){ba=V;break}else _=V}}_=ba>>>3;if(_>>>0>=e>>>0){W=52;X=125;break a}V=(d[m+(_+1)>>0]|0)<<8|(d[m+_>>0]|0);ca=_+4|0;if((((d[m+(_+3)>>0]|0)<<8|(d[m+(_+2)>>0]|0))+V|0)!=65535){W=21;X=125;break a}_=V+U|0;if(_>>>0>=(c[E>>2]|0)>>>0){if((c[F>>2]|0)>>>0<_>>>0){da=_<<1;ea=yq(c[b>>2]|0,da)|0;if(!ea){W=9915;X=125;break a}c[F>>2]=da;c[b>>2]=ea}c[E>>2]=_}ea=V+ca|0;if(ea>>>0>f>>>0){W=23;X=125;break a}if(!V){fa=ca;ga=U}else{da=0;ha=ca;ca=U;while(1){a[(c[b>>2]|0)+ca>>0]=a[m+ha>>0]|0;da=da+1|0;if((da|0)==(V|0)){fa=ea;ga=_;break}else{ha=ha+1|0;ca=ca+1|0}}}ia=fa<<3;ja=ga;break}default:{ca=i;ha=ca+36|0;do{c[ca>>2]=0;ca=ca+4|0}while((ca|0)<(ha|0));ca=j;ha=ca+36|0;do{c[ca>>2]=0;ca=ca+4|0}while((ca|0)<(ha|0));switch(aa&3){case 1:{Rp(i);Sp(j);ka=$;la=0;break}case 2:{ca=k;ha=ca+36|0;do{c[ca>>2]=0;ca=ca+4|0}while((ca|0)<(ha|0));aa=$>>>3;b:do if(aa>>>0<g>>>0){_=T+4|0;ea=T+5|0;V=T+6|0;da=T+7|0;ma=(d[m+(_>>>3)>>0]|0)>>>(_&7)<<1&2|(d[m+aa>>0]|0)>>>($&7)&1|(d[m+(ea>>>3)>>0]|0)>>>(ea&7)<<2&4|(d[m+(V>>>3)>>0]|0)>>>(V&7)<<3&8|(d[m+(da>>>3)>>0]|0)>>>(da&7)<<4&16;da=T+8|0;V=ma+257|0;ea=T+9|0;_=T+10|0;na=T+11|0;oa=T+12|0;pa=(d[m+(ea>>>3)>>0]|0)>>>(ea&7)<<1&2|(d[m+(da>>>3)>>0]|0)>>>(da&7)&1|(d[m+(_>>>3)>>0]|0)>>>(_&7)<<2&4|(d[m+(na>>>3)>>0]|0)>>>(na&7)<<3&8|(d[m+(oa>>>3)>>0]|0)>>>(oa&7)<<4&16;oa=T+13|0;na=T+14|0;_=T+15|0;da=T+16|0;ea=T+17|0;qa=((d[m+(na>>>3)>>0]|0)>>>(na&7)<<1&2|(d[m+(oa>>>3)>>0]|0)>>>(oa&7)&1|(d[m+(_>>>3)>>0]|0)>>>(_&7)<<2&4|(d[m+(da>>>3)>>0]|0)>>>(da&7)<<3&8)+4|0;da=yq(0,152)|0;do if(!da){ra=0;sa=ea;ta=9911}else{_=ea;oa=0;while(1){if(oa>>>0<qa>>>0){na=_+1|0;ua=_+2|0;va=(d[m+(na>>>3)>>0]|0)>>>(na&7)<<1&2|(d[m+(_>>>3)>>0]|0)>>>(_&7)&1|(d[m+(ua>>>3)>>0]|0)>>>(ua&7)<<2&4;wa=_+3|0}else{va=0;wa=_}c[da+(c[29360+(oa<<2)>>2]<<2)>>2]=va;oa=oa+1|0;if((oa|0)==19)break;else _=wa}if((c[N>>2]|0)>>>0<76){_=yq(c[M>>2]|0,152)|0;if(!_){ra=da;sa=wa;ta=9903;break}c[N>>2]=152;c[M>>2]=_;c[O>>2]=19;xa=_}else{c[O>>2]=19;xa=c[M>>2]|0}c[xa>>2]=c[da>>2];c[xa+4>>2]=c[da+4>>2];c[xa+8>>2]=c[da+8>>2];c[xa+12>>2]=c[da+12>>2];c[xa+16>>2]=c[da+16>>2];c[xa+20>>2]=c[da+20>>2];c[xa+24>>2]=c[da+24>>2];c[xa+28>>2]=c[da+28>>2];c[xa+32>>2]=c[da+32>>2];c[xa+36>>2]=c[da+36>>2];c[xa+40>>2]=c[da+40>>2];c[xa+44>>2]=c[da+44>>2];c[xa+48>>2]=c[da+48>>2];c[xa+52>>2]=c[da+52>>2];c[xa+56>>2]=c[da+56>>2];c[xa+60>>2]=c[da+60>>2];c[xa+64>>2]=c[da+64>>2];c[xa+68>>2]=c[da+68>>2];c[xa+72>>2]=c[da+72>>2];c[P>>2]=19;c[Q>>2]=7;_=Tp(k)|0;zq(da);if(_|0){ya=wa;za=_;break b}_=yq(0,2304)|0;if(!_){Aa=0;Ba=0;Ca=0}else{Wv(_|0,0,1152)|0;Aa=_;Ba=_;Ca=288}_=yq(0,256)|0;c:do if(_){ca=_;ha=ca+128|0;do{c[ca>>2]=0;ca=ca+4|0}while((ca|0)<(ha|0));if(Ba){oa=ma+258+pa|0;do if(oa){ua=c[k>>2]|0;na=c[P>>2]|0;Da=-258-ma|0;Ea=wa;Fa=0;Ga=0;d:while(1){if(Ea>>>0>l>>>0){Ha=Ea;X=59;break}Ja=Ea;Ka=0;while(1){La=c[ua+(((d[m+(Ja>>>3)>>0]|0)>>>(Ja&7)&1|Ka<<1)<<2)>>2]|0;Ma=Ja+1|0;if(La>>>0<na>>>0)break;Ka=La-na|0;if(Ja>>>0>=l>>>0|Ka>>>0>=na>>>0){Ha=Ma;X=59;break d}else Ja=Ma}e:do if(La>>>0<16){c[(Ga>>>0<V>>>0?Ba+(Ga<<2)|0:_+(Ga-V<<2)|0)>>2]=La;Na=Ma;Oa=Fa;Pa=Ga+1|0}else switch(La|0){case 16:{Ka=Ma>>>3;if(Ka>>>0>=f>>>0){Qa=_;Ra=Ma;Sa=50;break c}Ta=Ja+2|0;Ua=Ja+3|0;Va=((d[m+(Ta>>>3)>>0]|0)>>>(Ta&7)<<1&2|(d[m+Ka>>0]|0)>>>(Ma&7)&1)+3|0;Ka=Ga+-1|0;Ta=c[(Ka>>>0<V>>>0?Ba+(Ka<<2)|0:_+(Da+Ga<<2)|0)>>2]|0;Ka=Ga;Wa=0;while(1){if(Ka>>>0>=oa>>>0){Na=Ua;Oa=13;Pa=Ka;break e}c[(Ka>>>0<V>>>0?Ba+(Ka<<2)|0:_+(Ka-V<<2)|0)>>2]=Ta;Xa=Ka+1|0;Wa=Wa+1|0;if(Wa>>>0>=Va>>>0){Na=Ua;Oa=Fa;Pa=Xa;break}else Ka=Xa}break}case 17:{Ka=Ma>>>3;if(Ka>>>0>=f>>>0){Qa=_;Ra=Ma;Sa=50;break c}Ua=Ja+2|0;Va=Ja+3|0;Wa=Ja+4|0;Ta=((d[m+(Ua>>>3)>>0]|0)>>>(Ua&7)<<1&2|(d[m+Ka>>0]|0)>>>(Ma&7)&1|(d[m+(Va>>>3)>>0]|0)>>>(Va&7)<<2&4)+3|0;Va=Ga;Ka=0;while(1){if(Va>>>0>=oa>>>0){Na=Wa;Oa=14;Pa=Va;break e}c[(Va>>>0<V>>>0?Ba+(Va<<2)|0:_+(Va-V<<2)|0)>>2]=0;Ua=Va+1|0;Ka=Ka+1|0;if(Ka>>>0>=Ta>>>0){Na=Wa;Oa=Fa;Pa=Ua;break}else Va=Ua}break}case 18:{Va=Ma>>>3;if(Va>>>0>=f>>>0){Qa=_;Ra=Ma;Sa=50;break c}Wa=Ja+2|0;Ta=Ja+3|0;Ka=Ja+4|0;Ua=Ja+5|0;Xa=Ja+6|0;Ya=Ja+7|0;Za=Ja+8|0;_a=((d[m+(Wa>>>3)>>0]|0)>>>(Wa&7)<<1&2|(d[m+Va>>0]|0)>>>(Ma&7)&1|(d[m+(Ta>>>3)>>0]|0)>>>(Ta&7)<<2&4|(d[m+(Ka>>>3)>>0]|0)>>>(Ka&7)<<3&8|(d[m+(Ua>>>3)>>0]|0)>>>(Ua&7)<<4&16|(d[m+(Xa>>>3)>>0]|0)>>>(Xa&7)<<5&32|(d[m+(Ya>>>3)>>0]|0)>>>(Ya&7)<<6&64)+11|0;if(!_a){Na=Za;Oa=Fa;Pa=Ga;break e}Ya=Ga;Xa=0;while(1){if(Ya>>>0>=oa>>>0){Na=Za;Oa=15;Pa=Ya;break e}c[(Ya>>>0<V>>>0?Ba+(Ya<<2)|0:_+(Ya-V<<2)|0)>>2]=0;Ua=Ya+1|0;Xa=Xa+1|0;if(Xa>>>0>=_a>>>0){Na=Za;Oa=Fa;Pa=Ua;break}else Ya=Ua}break}default:{Qa=_;Ra=Ma;Sa=16;break c}}while(0);if(Pa>>>0<oa>>>0){Ea=Na;Fa=Oa;Ga=Pa}else{X=61;break}}if((X|0)==59){X=0;Qa=_;Ra=Ha;Sa=Ha>>>0>l>>>0?10:11;break c}else if((X|0)==61){X=0;if(!Oa){$a=Na;break}else{Qa=_;Ra=Na;Sa=Oa;break c}}}else $a=wa;while(0);if(c[Ba+1024>>2]|0){if(Ca<<2>>>0>(c[t>>2]|0)>>>0){oa=Ca<<3;Ga=yq(c[s>>2]|0,oa)|0;if(!Ga){Qa=_;Ra=$a;Sa=9903;break}c[t>>2]=oa;c[s>>2]=Ga}c[u>>2]=Ca;if(Ca|0){Ga=c[s>>2]|0;oa=0;do{c[Ga+(oa<<2)>>2]=c[Ba+(oa<<2)>>2];oa=oa+1|0}while((oa|0)!=(Ca|0))}c[D>>2]=Ca;c[R>>2]=15;oa=Tp(i)|0;if(!oa){if((c[B>>2]|0)>>>0<128){Ga=yq(c[A>>2]|0,256)|0;if(!Ga){Qa=_;Ra=$a;Sa=9903;break}c[B>>2]=256;c[A>>2]=Ga;c[C>>2]=32;ab=Ga}else{c[C>>2]=32;ab=c[A>>2]|0}c[ab>>2]=c[_>>2];c[ab+4>>2]=c[_+4>>2];c[ab+8>>2]=c[_+8>>2];c[ab+12>>2]=c[_+12>>2];c[ab+16>>2]=c[_+16>>2];c[ab+20>>2]=c[_+20>>2];c[ab+24>>2]=c[_+24>>2];c[ab+28>>2]=c[_+28>>2];c[ab+32>>2]=c[_+32>>2];c[ab+36>>2]=c[_+36>>2];c[ab+40>>2]=c[_+40>>2];c[ab+44>>2]=c[_+44>>2];c[ab+48>>2]=c[_+48>>2];c[ab+52>>2]=c[_+52>>2];c[ab+56>>2]=c[_+56>>2];c[ab+60>>2]=c[_+60>>2];c[ab+64>>2]=c[_+64>>2];c[ab+68>>2]=c[_+68>>2];c[ab+72>>2]=c[_+72>>2];c[ab+76>>2]=c[_+76>>2];c[ab+80>>2]=c[_+80>>2];c[ab+84>>2]=c[_+84>>2];c[ab+88>>2]=c[_+88>>2];c[ab+92>>2]=c[_+92>>2];c[ab+96>>2]=c[_+96>>2];c[ab+100>>2]=c[_+100>>2];c[ab+104>>2]=c[_+104>>2];c[ab+108>>2]=c[_+108>>2];c[ab+112>>2]=c[_+112>>2];c[ab+116>>2]=c[_+116>>2];c[ab+120>>2]=c[_+120>>2];c[ab+124>>2]=c[_+124>>2];c[G>>2]=32;c[S>>2]=15;Qa=_;Ra=$a;Sa=Tp(j)|0}else{Qa=_;Ra=$a;Sa=oa}}else{Qa=_;Ra=$a;Sa=64}}else{Qa=_;Ra=wa;Sa=9912}}else{Qa=0;Ra=wa;Sa=9912}while(0);zq(Aa);zq(Qa);ya=Ra;za=Sa;break b}while(0);zq(ra);ya=sa;za=ta}else{ya=$;za=49}while(0);c[H>>2]=0;c[I>>2]=0;zq(c[k>>2]|0);c[k>>2]=0;c[K>>2]=0;c[L>>2]=0;zq(c[J>>2]|0);c[J>>2]=0;c[N>>2]=0;c[O>>2]=0;zq(c[M>>2]|0);ka=ya;la=za;break}default:{ka=$;la=0}}f:do if(ka>>>0<=l>>>0){ca=c[i>>2]|0;ha=c[D>>2]|0;aa=c[j>>2]|0;V=c[G>>2]|0;ma=ka;pa=U;g:while(1){da=ma;qa=0;while(1){bb=c[ca+(((d[m+(da>>>3)>>0]|0)>>>(da&7)&1|qa<<1)<<2)>>2]|0;cb=da+1|0;if(bb>>>0<ha>>>0)break;qa=bb-ha|0;if(cb>>>0>l>>>0|qa>>>0>=ha>>>0){db=cb;eb=pa;X=115;break f}else da=cb}if(bb>>>0>=256){if(!((bb|0)!=256&bb>>>0<286)){X=114;break}da=bb+-257|0;if(cb>>>3>>>0>=f>>>0){fb=cb;gb=51;X=118;break}qa=c[29440+(da<<2)>>2]|0;ea=c[29568+(da<<2)>>2]|0;if((bb+-265|0)>>>0>19){hb=cb;ib=0}else{da=cb;_=0;oa=0;while(1){oa=(((d[m+(da>>>3)>>0]|0)>>>(da&7)&1)<<_)+oa|0;_=_+1|0;if((_|0)==(qa|0))break;else da=da+1|0}hb=cb+qa|0;ib=oa}da=ib+ea|0;if(hb>>>0>l>>>0){jb=hb;X=100;break}_=hb;Ga=0;while(1){kb=c[aa+(((d[m+(_>>>3)>>0]|0)>>>(_&7)&1|Ga<<1)<<2)>>2]|0;lb=_+1|0;if(kb>>>0<V>>>0)break;Ga=kb-V|0;if(_>>>0>=l>>>0|Ga>>>0>=V>>>0){jb=lb;X=100;break g}else _=lb}if(kb>>>0>29){jb=lb;X=100;break}if(lb>>>3>>>0>=f>>>0){fb=lb;gb=51;X=118;break}_=c[29696+(kb<<2)>>2]|0;Ga=c[29824+(kb<<2)>>2]|0;if(kb>>>0<4){mb=lb;nb=0}else{oa=lb;qa=0;Fa=0;while(1){Fa=(((d[m+(oa>>>3)>>0]|0)>>>(oa&7)&1)<<qa)+Fa|0;qa=qa+1|0;if((qa|0)==(_|0))break;else oa=oa+1|0}mb=lb+_|0;nb=Fa}oa=pa-Ga-nb|0;qa=da+pa|0;if(qa>>>0>=(c[E>>2]|0)>>>0){Ea=qa<<1;if((c[F>>2]|0)>>>0<Ea>>>0){Da=qa<<2;qa=yq(c[b>>2]|0,Da)|0;if(!qa){fb=mb;gb=9914;X=118;break}c[F>>2]=Da;c[b>>2]=qa}c[E>>2]=Ea}if(!da){ob=mb;pb=pa}else{Ea=pa+ib|0;qa=oa;Da=0;na=pa;while(1){ua=c[b>>2]|0;a[ua+na>>0]=a[ua+qa>>0]|0;ua=qa+1|0;Da=Da+1|0;if((Da|0)==(da|0))break;else{qa=ua>>>0<pa>>>0?ua:oa;na=na+1|0}}ob=mb;pb=Ea+ea|0}}else{if(pa>>>0>=(c[E>>2]|0)>>>0){na=(pa<<1)+2|0;if((c[F>>2]|0)>>>0<na>>>0){oa=na<<1;qa=yq(c[b>>2]|0,oa)|0;if(!qa){fb=cb;gb=9913;X=118;break}c[F>>2]=oa;c[b>>2]=qa}c[E>>2]=na}a[(c[b>>2]|0)+pa>>0]=bb;ob=cb;pb=pa+1|0}if(ob>>>0>l>>>0){db=ob;eb=pb;X=115;break f}else{ma=ob;pa=pb}}if((X|0)==100){X=0;qb=ca;rb=jb;sb=(bb|0)==-1?(jb>>>0>l>>>0?10:11):18;tb=pa;break}else if((X|0)==114){X=0;if((bb|0)==256){qb=ca;rb=cb;sb=la;tb=pa;break}else{db=cb;eb=pa;X=115;break}}else if((X|0)==118){X=0;qb=ca;rb=fb;sb=gb;tb=pa;break}}else{db=ka;eb=U;X=115}while(0);if((X|0)==115){X=0;qb=c[i>>2]|0;rb=db;sb=db>>>0>l>>>0?10:11;tb=eb}c[n>>2]=0;c[o>>2]=0;zq(qb);c[i>>2]=0;c[q>>2]=0;c[r>>2]=0;zq(c[p>>2]|0);c[p>>2]=0;c[t>>2]=0;c[u>>2]=0;zq(c[s>>2]|0);c[v>>2]=0;c[w>>2]=0;zq(c[j>>2]|0);c[j>>2]=0;c[y>>2]=0;c[z>>2]=0;zq(c[x>>2]|0);c[x>>2]=0;c[B>>2]=0;c[C>>2]=0;zq(c[A>>2]|0);if(!sb){ia=rb;ja=tb}else{W=sb;X=125;break a}}}if(!(1<<Z&Y)){T=ia;U=ja}else{X=121;break}}if((X|0)==121){if((c[F>>2]|0)>>>0>=ja>>>0){c[E>>2]=ja;W=0;Ia=h;return W|0}U=ja<<1;ia=yq(c[b>>2]|0,U)|0;if(!ia){W=9916;Ia=h;return W|0}c[F>>2]=U;c[b>>2]=ia;c[E>>2]=ja;W=0;Ia=h;return W|0}else if((X|0)==125){Ia=h;return W|0}return 0}function Rp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=yq(0,2304)|0;if(!b){d=0;zq(d);return}e=0;do{c[b+(e<<2)>>2]=8;e=e+1|0}while((e|0)!=144);e=144;do{c[b+(e<<2)>>2]=9;e=e+1|0}while((e|0)!=256);c[b+1024>>2]=7;c[b+1028>>2]=7;c[b+1032>>2]=7;c[b+1036>>2]=7;c[b+1040>>2]=7;c[b+1044>>2]=7;c[b+1048>>2]=7;c[b+1052>>2]=7;c[b+1056>>2]=7;c[b+1060>>2]=7;c[b+1064>>2]=7;c[b+1068>>2]=7;c[b+1072>>2]=7;c[b+1076>>2]=7;c[b+1080>>2]=7;c[b+1084>>2]=7;c[b+1088>>2]=7;c[b+1092>>2]=7;c[b+1096>>2]=7;c[b+1100>>2]=7;c[b+1104>>2]=7;c[b+1108>>2]=7;c[b+1112>>2]=7;c[b+1116>>2]=7;c[b+1120>>2]=8;c[b+1124>>2]=8;c[b+1128>>2]=8;c[b+1132>>2]=8;c[b+1136>>2]=8;c[b+1140>>2]=8;c[b+1144>>2]=8;c[b+1148>>2]=8;e=a+24|0;f=a+32|0;do if((c[f>>2]|0)>>>0<1152){g=yq(c[e>>2]|0,2304)|0;if(!g){d=b;zq(d);return}else{c[f>>2]=2304;c[e>>2]=g;c[a+28>>2]=288;h=g;break}}else{c[a+28>>2]=288;h=c[e>>2]|0}while(0);e=0;do{c[h+(e<<2)>>2]=c[b+(e<<2)>>2];e=e+1|0}while((e|0)!=288);c[a+40>>2]=288;c[a+36>>2]=15;Tp(a)|0;d=b;zq(d);return}function Sp(a){a=a|0;var b=0,d=0;b=yq(0,256)|0;if(!b){d=0;zq(d);return}c[b>>2]=5;c[b+4>>2]=5;c[b+8>>2]=5;c[b+12>>2]=5;c[b+16>>2]=5;c[b+20>>2]=5;c[b+24>>2]=5;c[b+28>>2]=5;c[b+32>>2]=5;c[b+36>>2]=5;c[b+40>>2]=5;c[b+44>>2]=5;c[b+48>>2]=5;c[b+52>>2]=5;c[b+56>>2]=5;c[b+60>>2]=5;c[b+64>>2]=5;c[b+68>>2]=5;c[b+72>>2]=5;c[b+76>>2]=5;c[b+80>>2]=5;c[b+84>>2]=5;c[b+88>>2]=5;c[b+92>>2]=5;c[b+96>>2]=5;c[b+100>>2]=5;c[b+104>>2]=5;c[b+108>>2]=5;c[b+112>>2]=5;c[b+116>>2]=5;c[b+120>>2]=5;c[b+124>>2]=5;Up(a,b,32,15)|0;d=b;zq(d);return}function Tp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;b=a+12|0;d=a+40|0;e=c[d>>2]|0;f=a+20|0;if(e<<2>>>0>(c[f>>2]|0)>>>0){g=e<<3;h=yq(c[b>>2]|0,g)|0;if(!h)i=0;else{c[f>>2]=g;c[b>>2]=h;j=4}}else j=4;do if((j|0)==4){c[a+16>>2]=e;h=a+36|0;g=(c[h>>2]|0)+1|0;f=g<<2;if(!f){k=0;l=0}else{m=yq(0,g<<3)|0;if(!m){i=0;break}k=m;l=m}if(g|0)Wv(k|0,0,f|0)|0;f=(c[h>>2]|0)+1|0;g=f<<2;if(!g){n=0;o=0}else{m=yq(0,f<<3)|0;if(!m){i=k;break}n=m;o=m}if(f|0)Wv(n|0,0,g|0)|0;if(!(c[d>>2]|0))p=0;else{g=c[a+24>>2]|0;f=0;do{m=l+(c[g+(f<<2)>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+1;f=f+1|0;m=c[d>>2]|0}while(f>>>0<m>>>0);p=m}if(!(c[h>>2]|0))q=p;else{f=c[o>>2]|0;g=1;do{f=(c[l+(g+-1<<2)>>2]|0)+f<<1;c[o+(g<<2)>>2]=f;g=g+1|0}while(g>>>0<=(c[h>>2]|0)>>>0);q=c[d>>2]|0}if(q|0){h=c[a+24>>2]|0;g=q;f=0;while(1){m=c[h+(f<<2)>>2]|0;if(!m)r=g;else{s=o+(m<<2)|0;m=c[s>>2]|0;c[s>>2]=m+1;c[(c[b>>2]|0)+(f<<2)>>2]=m;r=c[d>>2]|0}f=f+1|0;if(f>>>0>=r>>>0)break;else g=r}}zq(k);zq(n);g=c[d>>2]|0;f=g<<1;h=a+8|0;do if(g<<3>>>0>(c[h>>2]|0)>>>0){m=g<<4;s=yq(c[a>>2]|0,m)|0;if(!s){t=9901;return t|0}else{c[h>>2]=m;c[a>>2]=s;c[a+4>>2]=f;u=c[d>>2]|0;break}}else{c[a+4>>2]=f;u=g}while(0);if(!(u&2147483647))v=u;else{g=c[a>>2]|0;f=0;do{c[g+(f<<2)>>2]=32767;f=f+1|0;h=c[d>>2]|0}while(f>>>0<h<<1>>>0);v=h}if(!v){t=0;return t|0}f=c[a+24>>2]|0;g=a+12|0;h=v;s=0;m=0;w=0;a:while(1){x=f+(s<<2)|0;y=c[x>>2]|0;b:do if(!y){z=h;A=m;B=w}else{if(w>>>0>(h+-2|0)>>>0){t=55;j=52;break a}C=(c[g>>2]|0)+(s<<2)|0;D=c[a>>2]|0;E=y;F=h;G=0;H=m;I=w;while(1){J=D+(((c[C>>2]|0)>>>(E+~G|0)&1|I<<1)<<2)|0;K=c[J>>2]|0;do if((K|0)==32767){L=G+1|0;if((L|0)==(E|0)){c[J>>2]=s;M=E;N=H;O=0;break}else{P=H+1|0;c[J>>2]=P+F;M=L;N=P;O=P;break}}else{M=G+1|0;N=H;O=K-F|0}while(0);E=c[x>>2]|0;F=c[d>>2]|0;if(E>>>0<=M>>>0){z=F;A=N;B=O;break b}if(O>>>0>(F+-2|0)>>>0){t=55;j=52;break a}else{G=M;H=N;I=O}}}while(0);s=s+1|0;if(s>>>0>=z>>>0){j=46;break}else{h=z;m=A;w=B}}if((j|0)==46){if(!(z&2147483647)){t=0;return t|0}w=c[a>>2]|0;m=z;h=0;while(1){s=w+(h<<2)|0;if((c[s>>2]|0)==32767){c[s>>2]=0;Q=c[d>>2]|0}else Q=m;h=h+1|0;if(h>>>0>=Q<<1>>>0){t=0;break}else m=Q}return t|0}else if((j|0)==52)return t|0}while(0);zq(i);zq(0);t=9902;return t|0}function Up(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=a+24|0;g=a+32|0;do if(d<<2>>>0>(c[g>>2]|0)>>>0){h=d<<3;i=yq(c[f>>2]|0,h)|0;if(!i){j=9903;return j|0}else{c[g>>2]=h;c[f>>2]=i;break}}while(0);c[a+28>>2]=d;if(d|0){g=c[f>>2]|0;f=0;do{c[g+(f<<2)>>2]=c[b+(f<<2)>>2];f=f+1|0}while((f|0)!=(d|0))}c[a+40>>2]=d;c[a+36>>2]=e;j=Tp(a)|0;return j|0} +function Vp(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0;h=Ia;Ia=Ia+192|0;i=h+136|0;j=h+92|0;k=h+48|0;l=h+4|0;m=h;switch(c[g>>2]|0){case 0:{n=f>>>16;o=b+4|0;p=b+8|0;q=0;r=0;while(1){s=(r|0)==(n|0);t=s&1;u=c[o>>2]|0;v=u+1|0;if((c[p>>2]|0)>>>0<v>>>0){w=v<<1;x=yq(c[b>>2]|0,w)|0;if(x|0){c[p>>2]=w;c[b>>2]=x;y=x;z=7}}else{y=c[b>>2]|0;z=7}if((z|0)==7){z=0;c[o>>2]=v;a[y+u>>0]=t}t=f-q|0;u=t>>>0<65535?t:65535;t=u^65535;v=u&255;x=c[o>>2]|0;w=x+1|0;if((c[p>>2]|0)>>>0<w>>>0){A=w<<1;B=yq(c[b>>2]|0,A)|0;if(B|0){c[p>>2]=A;c[b>>2]=B;C=B;z=12}}else{C=c[b>>2]|0;z=12}if((z|0)==12){z=0;c[o>>2]=w;a[C+x>>0]=v}v=u>>>8&255;u=c[o>>2]|0;x=u+1|0;if((c[p>>2]|0)>>>0<x>>>0){w=x<<1;B=yq(c[b>>2]|0,w)|0;if(B|0){c[p>>2]=w;c[b>>2]=B;D=B;z=17}}else{D=c[b>>2]|0;z=17}if((z|0)==17){z=0;c[o>>2]=x;a[D+u>>0]=v}v=t&255;u=c[o>>2]|0;x=u+1|0;if((c[p>>2]|0)>>>0<x>>>0){B=x<<1;w=yq(c[b>>2]|0,B)|0;if(w|0){c[p>>2]=B;c[b>>2]=w;E=w;z=22}}else{E=c[b>>2]|0;z=22}if((z|0)==22){z=0;c[o>>2]=x;a[E+u>>0]=v}v=t>>>8&255;t=c[o>>2]|0;u=t+1|0;if((c[p>>2]|0)>>>0<u>>>0){x=u<<1;w=yq(c[b>>2]|0,x)|0;if(w|0){c[p>>2]=x;c[b>>2]=w;F=w;z=27}}else{F=c[b>>2]|0;z=27}if((z|0)==27){z=0;c[o>>2]=u;a[F+t>>0]=v}if(q>>>0<f>>>0){v=q;t=0;while(1){u=v+1|0;w=a[e+v>>0]|0;x=c[o>>2]|0;B=x+1|0;if((c[p>>2]|0)>>>0<B>>>0){A=B<<1;G=yq(c[b>>2]|0,A)|0;if(G|0){c[p>>2]=A;c[b>>2]=G;H=G;z=34}}else{H=c[b>>2]|0;z=34}if((z|0)==34){z=0;c[o>>2]=B;a[H+x>>0]=w}t=t+1|0;if(!(t>>>0<65535&u>>>0<f>>>0)){I=u;break}else v=u}}else I=q;if(s){J=0;break}else{q=I;r=r+1|0}}Ia=h;return J|0}case 1:{c[k>>2]=0;K=i;L=K+36|0;do{c[K>>2]=0;K=K+4|0}while((K|0)<(L|0));K=j;L=K+36|0;do{c[K>>2]=0;K=K+4|0}while((K|0)<(L|0));Rp(i);Sp(j);r=b+4|0;I=c[r>>2]|0;q=I+1|0;H=b+8|0;if((c[H>>2]|0)>>>0<q>>>0){o=q<<1;p=yq(c[b>>2]|0,o)|0;if(!p)M=b;else{c[H>>2]=o;c[b>>2]=p;N=b;O=p;z=41}}else{N=b;O=c[b>>2]|0;z=41}if((z|0)==41){c[r>>2]=q;a[O+I>>0]=0;M=N}N=(c[M>>2]|0)+((c[r>>2]|0)+-1)|0;a[N>>0]=a[N>>0]|1;N=(c[M>>2]|0)+((c[r>>2]|0)+-1)|0;a[N>>0]=a[N>>0]|2;N=(c[g+4>>2]|0)==0;c[k>>2]=3;do if(N)if(!f)z=60;else{I=c[i+12>>2]|0;O=c[i+24>>2]|0;q=0;p=3;while(1){o=d[e+q>>0]|0;F=c[I+(o<<2)>>2]|0;E=c[O+(o<<2)>>2]|0;if(!E)P=p;else{o=E+-1|0;D=0;C=p;while(1){y=F>>>(o-D|0)&1;n=C&7;do if(!n){v=c[r>>2]|0;t=v+1|0;if((c[H>>2]|0)>>>0<t>>>0){u=t<<1;w=yq(c[M>>2]|0,u)|0;if(!w)break;c[H>>2]=u;c[M>>2]=w;Q=w}else Q=c[M>>2]|0;c[r>>2]=t;a[Q+v>>0]=0}while(0);v=(c[M>>2]|0)+((c[r>>2]|0)+-1)|0;a[v>>0]=y<<n|(d[v>>0]|0);D=D+1|0;if((D|0)==(E|0))break;else C=C+1|0}P=E+p|0}q=q+1|0;if((q|0)==(f|0))break;else p=P}c[k>>2]=P;z=60}else{c[l>>2]=0;p=l+8|0;c[p>>2]=0;q=l+4|0;c[q>>2]=0;O=Wp(l,e,f,c[g+8>>2]|0)|0;if(!O){Xp(k,b,l,i,j);c[p>>2]=0;c[q>>2]=0;zq(c[l>>2]|0);z=60;break}else{c[p>>2]=0;c[q>>2]=0;zq(c[l>>2]|0);R=c[i+12>>2]|0;S=c[i+24>>2]|0;T=O;break}}while(0);if((z|0)==60){P=c[i+12>>2]|0;Q=c[P+1024>>2]|0;N=c[i+24>>2]|0;O=c[N+1024>>2]|0;if(!O){R=P;S=N;T=0}else{q=O+-1|0;p=c[k>>2]|0;I=0;s=p;while(1){C=Q>>>(q-I|0)&1;D=s&7;do if(!D){o=c[r>>2]|0;F=o+1|0;if((c[H>>2]|0)>>>0<F>>>0){v=F<<1;t=yq(c[M>>2]|0,v)|0;if(!t)break;c[H>>2]=v;c[M>>2]=t;U=t}else U=c[M>>2]|0;c[r>>2]=F;a[U+o>>0]=0}while(0);o=(c[M>>2]|0)+((c[r>>2]|0)+-1)|0;a[o>>0]=C<<D|(d[o>>0]|0);I=I+1|0;if((I|0)==(O|0))break;else s=s+1|0}c[k>>2]=p+O;R=P;S=N;T=0}}c[i+8>>2]=0;c[i+4>>2]=0;zq(c[i>>2]|0);zq(R);zq(S);c[j+8>>2]=0;c[j+4>>2]=0;zq(c[j>>2]|0);c[j>>2]=0;S=j+12|0;c[j+20>>2]=0;c[j+16>>2]=0;zq(c[S>>2]|0);c[S>>2]=0;c[j+32>>2]=0;c[j+28>>2]=0;zq(c[j+24>>2]|0);J=T;Ia=h;return J|0}case 2:{c[m>>2]=0;c[i>>2]=0;T=i+8|0;c[T>>2]=0;S=i+4|0;c[S>>2]=0;K=j;L=K+36|0;do{c[K>>2]=0;K=K+4|0}while((K|0)<(L|0));K=k;L=K+36|0;do{c[K>>2]=0;K=K+4|0}while((K|0)<(L|0));K=l;L=K+36|0;do{c[K>>2]=0;K=K+4|0}while((K|0)<(L|0));do if(!(c[g+4>>2]|0)){if(!(f&1073741823))V=0;else{R=f<<3;N=yq(0,R)|0;if(!N){W=0;X=0;Y=0;Z=0;_=0;$=0;aa=9923;break}c[T>>2]=R;c[i>>2]=N;V=N}c[S>>2]=f;if(!f)z=79;else{N=0;do{c[V+(N<<2)>>2]=d[e+N>>0];N=N+1|0}while((N|0)!=(f|0));z=79}}else{N=Wp(i,e,f,c[g+8>>2]|0)|0;if(!N)z=79;else{W=0;X=0;Y=0;Z=0;_=0;$=0;aa=N}}while(0);a:do if((z|0)==79){g=yq(0,2288)|0;if(g){Wv(g|0,0,1144)|0;f=yq(0,240)|0;if(f){K=f;L=K+120|0;do{c[K>>2]=0;K=K+4|0}while((K|0)<(L|0));e=c[S>>2]|0;if(e|0){V=c[i>>2]|0;N=0;do{D=c[V+(N<<2)>>2]|0;C=g+(D<<2)|0;c[C>>2]=(c[C>>2]|0)+1;if(D>>>0>256){D=f+(c[V+(N+2<<2)>>2]<<2)|0;c[D>>2]=(c[D>>2]|0)+1;ba=N+3|0}else ba=N;N=ba+1|0}while(N>>>0<e>>>0)}c[g+1024>>2]=1;e=Yp(j,g,286,15)|0;if(!e){N=Yp(k,f,30,15)|0;if(!N){V=c[m>>2]&7;D=b+4|0;do if(!V){C=c[D>>2]|0;R=C+1|0;P=b+8|0;if((c[P>>2]|0)>>>0<R>>>0){O=R<<1;p=yq(c[b>>2]|0,O)|0;if(!p){ca=0;break}c[P>>2]=O;c[b>>2]=p;da=p}else da=c[b>>2]|0;c[D>>2]=R;a[da+C>>0]=0;ca=c[m>>2]&7}else ca=V;while(0);V=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[V>>0]=1<<ca|(d[V>>0]|0);V=(c[m>>2]|0)+1|0;c[m>>2]=V;do if(!(V&7)){C=c[D>>2]|0;R=C+1|0;p=b+8|0;if((c[p>>2]|0)>>>0<R>>>0){O=R<<1;P=yq(c[b>>2]|0,O)|0;if(!P){ea=V;break}c[p>>2]=O;c[b>>2]=P;fa=P}else fa=c[b>>2]|0;c[D>>2]=R;a[fa+C>>0]=0;ea=c[m>>2]|0}else ea=V;while(0);V=c[b>>2]|0;C=c[D>>2]|0;R=ea+1|0;c[m>>2]=R;P=R&7;do if(!P){R=C+1|0;O=b+8|0;if((c[O>>2]|0)>>>0<R>>>0){p=R<<1;s=yq(V,p)|0;if(!s){ga=0;break}c[O>>2]=p;c[b>>2]=s;ha=s}else ha=V;c[D>>2]=R;a[ha+C>>0]=0;ga=c[m>>2]&7}else ga=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=1<<ga|(d[P>>0]|0);c[m>>2]=(c[m>>2]|0)+1;P=c[j+40>>2]|0;C=P>>>0<286?P:286;P=c[k+40>>2]|0;V=P>>>0<30?P:30;if(!C){ia=0;ja=0;ka=0;la=0;ma=0}else{P=c[j+24>>2]|0;R=0;s=0;p=0;O=0;I=0;r=0;M=0;while(1){U=c[P+(O<<2)>>2]|0;H=r+1|0;if(H<<2>>>0>M>>>0){q=H<<3;Q=yq(R,q)|0;if(!Q){na=p;oa=s;pa=R;qa=I;ra=r;sa=M}else{ta=Q;ua=Q;va=Q;wa=Q;xa=q;z=110}}else{ta=p;ua=s;va=R;wa=I;xa=M;z=110}if((z|0)==110){z=0;c[wa+(r<<2)>>2]=U;na=ta;oa=ua;pa=va;qa=wa;ra=H;sa=xa}O=O+1|0;if(O>>>0>=C>>>0){ia=oa;ja=na;ka=qa;la=ra;ma=sa;break}else{R=pa;s=oa;p=na;I=qa;r=ra;M=sa}}}if(!V){ya=ja;za=ka;Aa=la}else{M=c[k+24>>2]|0;r=ia;I=ja;p=0;s=ka;R=la;O=ma;while(1){P=c[M+(p<<2)>>2]|0;H=R+1|0;if(H<<2>>>0>O>>>0){U=H<<3;q=yq(r,U)|0;if(!q){Ba=I;Ca=r;Da=s;Ea=R;Fa=O}else{Ga=q;Ha=q;Ja=q;Ka=U;z=117}}else{Ga=I;Ha=r;Ja=s;Ka=O;z=117}if((z|0)==117){z=0;c[Ja+(R<<2)>>2]=P;Ba=Ga;Ca=Ha;Da=Ja;Ea=H;Fa=Ka}p=p+1|0;if(p>>>0>=V>>>0){ya=Ba;za=Da;Aa=Ea;break}else{r=Ca;I=Ba;s=Da;R=Ea;O=Fa}}}if(!Aa){La=0;Ma=0;Na=0}else{O=0;R=0;s=0;I=0;r=0;p=0;M=0;H=0;P=0;U=0;q=0;Q=0;o=0;F=0;t=0;while(1){v=Q+1|0;w=c[za+(Q<<2)>>2]|0;do if(v>>>0<Aa>>>0){u=Q+2|0;x=v;B=0;while(1){if((c[za+(x<<2)>>2]|0)!=(w|0)){Oa=B;break}G=B+1|0;x=u+B|0;if(x>>>0>=Aa>>>0){Oa=G;break}else B=G}if((w|0)==0&Oa>>>0>1){B=Oa+1|0;do if(B>>>0<11){x=F+1|0;u=x<<2;do if(u>>>0>t>>>0){n=x<<3;y=yq(O,n)|0;if(!y){Pa=r;Qa=q;Ra=I;Sa=U;Ta=P;Ua=H;Va=M;Wa=s;Xa=p;Ya=R;Za=O;_a=x;$a=o;ab=F;bb=t;cb=u;break}db=y;eb=y;fb=y;gb=y;hb=y;ib=y;jb=y;kb=y;lb=y;mb=y;nb=y;ob=y;pb=n;z=130}else{db=q;eb=I;fb=U;gb=P;hb=H;ib=M;jb=s;kb=p;lb=R;mb=r;nb=O;ob=o;pb=t;z=130}while(0);if((z|0)==130){z=0;c[ob+(F<<2)>>2]=17;u=F+2|0;Pa=mb;Qa=db;Ra=eb;Sa=fb;Ta=gb;Ua=hb;Va=ib;Wa=jb;Xa=kb;Ya=lb;Za=nb;_a=u;$a=ob;ab=x;bb=pb;cb=u<<2}u=Oa+-2|0;if(cb>>>0>bb>>>0){n=_a<<3;y=yq(Pa,n)|0;if(!y){qb=Qa;rb=Ra;sb=Sa;tb=Ta;ub=Ua;vb=Va;wb=Wa;xb=Xa;yb=Ya;zb=Pa;Ab=Za;Bb=B;Cb=$a;Db=ab;Eb=bb;break}Fb=y;Gb=y;Hb=y;Ib=y;Jb=y;Kb=y;Lb=y;Mb=y;Nb=y;Ob=y;Pb=y;Qb=y;Rb=n}else{Fb=Qa;Gb=Ra;Hb=Sa;Ib=Ta;Jb=Ua;Kb=Va;Lb=Wa;Mb=Xa;Nb=Ya;Ob=Pa;Pb=Za;Qb=$a;Rb=bb}c[Qb+(ab<<2)>>2]=u;qb=Fb;rb=Gb;sb=Hb;tb=Ib;ub=Jb;vb=Kb;wb=Lb;xb=Mb;yb=Nb;zb=Ob;Ab=Pb;Bb=B;Cb=Qb;Db=_a;Eb=Rb}else{u=B>>>0<138?B:138;n=F+1|0;y=n<<2;do if(y>>>0>t>>>0){G=n<<3;A=yq(R,G)|0;if(!A){Sb=p;Tb=q;Ub=I;Vb=U;Wb=P;Xb=H;Yb=M;Zb=s;_b=R;$b=r;ac=O;bc=n;cc=o;dc=F;ec=t;fc=y;break}gc=A;hc=A;ic=A;jc=A;kc=A;lc=A;mc=A;nc=A;oc=A;pc=A;qc=A;rc=A;sc=G;z=138}else{gc=q;hc=I;ic=U;jc=P;kc=H;lc=M;mc=s;nc=p;oc=R;pc=r;qc=O;rc=o;sc=t;z=138}while(0);if((z|0)==138){z=0;c[rc+(F<<2)>>2]=18;y=F+2|0;Sb=nc;Tb=gc;Ub=hc;Vb=ic;Wb=jc;Xb=kc;Yb=lc;Zb=mc;_b=oc;$b=pc;ac=qc;bc=y;cc=rc;dc=n;ec=sc;fc=y<<2}y=u+-11|0;if(fc>>>0>ec>>>0){x=bc<<3;G=yq(Sb,x)|0;if(!G){qb=Tb;rb=Ub;sb=Vb;tb=Wb;ub=Xb;vb=Yb;wb=Zb;xb=Sb;yb=_b;zb=$b;Ab=ac;Bb=u;Cb=cc;Db=dc;Eb=ec;break}tc=G;uc=G;vc=G;wc=G;xc=G;yc=G;zc=G;Ac=G;Bc=G;Cc=G;Dc=G;Ec=G;Fc=x}else{tc=Tb;uc=Ub;vc=Vb;wc=Wb;xc=Xb;yc=Yb;zc=Zb;Ac=Sb;Bc=_b;Cc=$b;Dc=ac;Ec=cc;Fc=ec}c[Ec+(dc<<2)>>2]=y;qb=tc;rb=uc;sb=vc;tb=wc;ub=xc;vb=yc;wb=zc;xb=Ac;yb=Bc;zb=Cc;Ab=Dc;Bb=u;Cb=Ec;Db=bc;Eb=Fc}while(0);Gc=qb;Hc=rb;Ic=sb;Jc=tb;Kc=ub;Lc=vb;Mc=wb;Nc=xb;Oc=yb;Pc=zb;Qc=Ab;Rc=Q+-1+Bb|0;Sc=Cb;Tc=Db;Uc=Eb;break}if(Oa>>>0>2){B=(Oa>>>0)/6|0;y=Oa-(B*6|0)|0;x=F+1|0;do if(x<<2>>>0>t>>>0){G=x<<3;A=yq(s,G)|0;if(!A){Vc=q;Wc=I;Xc=U;Yc=P;Zc=H;_c=M;$c=s;ad=p;bd=R;cd=r;dd=O;ed=o;fd=F;gd=t;break}hd=A;id=A;jd=A;kd=A;ld=A;md=A;nd=A;od=A;pd=A;qd=A;rd=A;sd=A;td=G;z=148}else{hd=q;id=I;jd=U;kd=P;ld=H;md=M;nd=s;od=p;pd=R;qd=r;rd=O;sd=o;td=t;z=148}while(0);if((z|0)==148){z=0;c[sd+(F<<2)>>2]=w;Vc=hd;Wc=id;Xc=jd;Yc=kd;Zc=ld;_c=md;$c=nd;ad=od;bd=pd;cd=qd;dd=rd;ed=sd;fd=x;gd=td}if(Oa>>>0>5){G=_c;A=dd;ud=cd;vd=bd;wd=ad;xd=$c;yd=Zc;zd=Yc;Ad=Xc;Bd=Wc;Cd=Vc;Dd=0;Ed=ed;Fd=fd;Gd=gd;while(1){Hd=Fd+1|0;Id=Hd<<2;do if(Id>>>0>Gd>>>0){Jd=Hd<<3;Kd=yq(G,Jd)|0;if(!Kd){Ld=yd;Md=Cd;Nd=Bd;Od=Ad;Pd=zd;Qd=G;Rd=xd;Sd=wd;Td=vd;Ud=ud;Vd=A;Wd=Hd;Xd=Ed;Yd=Fd;Zd=Gd;_d=Id;break}$d=Kd;ae=Kd;be=Kd;ce=Kd;de=Kd;ee=Kd;fe=Kd;ge=Kd;he=Kd;ie=Kd;je=Kd;ke=Kd;le=Jd;z=154}else{$d=Cd;ae=Bd;be=Ad;ce=zd;de=yd;ee=G;fe=xd;ge=wd;he=vd;ie=ud;je=A;ke=Ed;le=Gd;z=154}while(0);if((z|0)==154){z=0;c[ke+(Fd<<2)>>2]=16;Id=Fd+2|0;Ld=de;Md=$d;Nd=ae;Od=be;Pd=ce;Qd=ee;Rd=fe;Sd=ge;Td=he;Ud=ie;Vd=je;Wd=Id;Xd=ke;Yd=Hd;Zd=le;_d=Id<<2}do if(_d>>>0>Zd>>>0){Id=Wd<<3;u=yq(Ld,Id)|0;if(!u){me=Md;ne=Nd;oe=Od;pe=Pd;qe=Ld;re=Qd;se=Rd;te=Sd;ue=Td;ve=Ud;we=Vd;xe=Xd;ye=Yd;ze=Zd;break}Ae=u;Be=u;Ce=u;De=u;Ee=u;Fe=u;Ge=u;He=u;Ie=u;Je=u;Ke=u;Le=u;Me=Id;z=158}else{Ae=Md;Be=Nd;Ce=Od;De=Pd;Ee=Ld;Fe=Qd;Ge=Rd;He=Sd;Ie=Td;Je=Ud;Ke=Vd;Le=Xd;Me=Zd;z=158}while(0);if((z|0)==158){z=0;c[Le+(Yd<<2)>>2]=3;me=Ae;ne=Be;oe=Ce;pe=De;qe=Ee;re=Fe;se=Ge;te=He;ue=Ie;ve=Je;we=Ke;xe=Le;ye=Wd;ze=Me}Dd=Dd+1|0;if(Dd>>>0>=B>>>0){Ne=we;Oe=ve;Pe=ue;Qe=te;Re=se;Se=re;Te=qe;Ue=pe;Ve=oe;We=ne;Xe=me;Ye=xe;Ze=ye;_e=ze;break}else{G=re;A=we;ud=ve;vd=ue;wd=te;xd=se;yd=qe;zd=pe;Ad=oe;Bd=ne;Cd=me;Ed=xe;Fd=ye;Gd=ze}}}else{Ne=dd;Oe=cd;Pe=bd;Qe=ad;Re=$c;Se=_c;Te=Zc;Ue=Yc;Ve=Xc;We=Wc;Xe=Vc;Ye=ed;Ze=fd;_e=gd}do if(y>>>0>2){Gd=Ze+1|0;Fd=Gd<<2;do if(Fd>>>0>_e>>>0){Ed=Gd<<3;Cd=yq(Ue,Ed)|0;if(!Cd){$e=Ve;af=Xe;bf=We;cf=Ue;df=Te;ef=Se;ff=Re;gf=Qe;hf=Pe;jf=Oe;kf=Ne;lf=Gd;mf=Ye;nf=Ze;of=_e;pf=Fd;break}qf=Cd;rf=Cd;sf=Cd;tf=Cd;uf=Cd;vf=Cd;wf=Cd;xf=Cd;yf=Cd;zf=Cd;Af=Cd;Bf=Cd;Cf=Ed;z=164}else{qf=Xe;rf=We;sf=Ve;tf=Ue;uf=Te;vf=Se;wf=Re;xf=Qe;yf=Pe;zf=Oe;Af=Ne;Bf=Ye;Cf=_e;z=164}while(0);if((z|0)==164){z=0;c[Bf+(Ze<<2)>>2]=16;Fd=Ze+2|0;$e=sf;af=qf;bf=rf;cf=tf;df=uf;ef=vf;ff=wf;gf=xf;hf=yf;jf=zf;kf=Af;lf=Fd;mf=Bf;nf=Gd;of=Cf;pf=Fd<<2}Fd=y+-3|0;if(pf>>>0>of>>>0){Ed=lf<<3;Cd=yq($e,Ed)|0;if(!Cd){Df=af;Ef=bf;Ff=$e;Gf=cf;Hf=df;If=ef;Jf=ff;Kf=gf;Lf=hf;Mf=jf;Nf=kf;Of=Oa;Pf=mf;Qf=nf;Rf=of;break}Sf=Cd;Tf=Cd;Uf=Cd;Vf=Cd;Wf=Cd;Xf=Cd;Yf=Cd;Zf=Cd;_f=Cd;$f=Cd;ag=Cd;bg=Cd;cg=Ed}else{Sf=af;Tf=bf;Uf=$e;Vf=cf;Wf=df;Xf=ef;Yf=ff;Zf=gf;_f=hf;$f=jf;ag=kf;bg=mf;cg=of}c[bg+(nf<<2)>>2]=Fd;Df=Sf;Ef=Tf;Ff=Uf;Gf=Vf;Hf=Wf;If=Xf;Jf=Yf;Kf=Zf;Lf=_f;Mf=$f;Nf=ag;Of=Oa;Pf=bg;Qf=lf;Rf=cg}else{Df=Xe;Ef=We;Ff=Ve;Gf=Ue;Hf=Te;If=Se;Jf=Re;Kf=Qe;Lf=Pe;Mf=Oe;Nf=Ne;Of=Oa-y|0;Pf=Ye;Qf=Ze;Rf=_e}while(0);Gc=Df;Hc=Ef;Ic=Ff;Jc=Gf;Kc=Hf;Lc=If;Mc=Jf;Nc=Kf;Oc=Lf;Pc=Mf;Qc=Nf;Rc=Of+Q|0;Sc=Pf;Tc=Qf;Uc=Rf}else z=171}else z=171;while(0);do if((z|0)==171){z=0;v=F+1|0;if(v<<2>>>0>t>>>0){E=v<<3;y=yq(I,E)|0;if(!y){Gc=q;Hc=I;Ic=U;Jc=P;Kc=H;Lc=M;Mc=s;Nc=p;Oc=R;Pc=r;Qc=O;Rc=Q;Sc=o;Tc=F;Uc=t;break}dg=y;eg=y;fg=y;gg=y;hg=y;ig=y;jg=y;kg=y;lg=y;mg=y;ng=y;og=y;pg=E}else{dg=q;eg=I;fg=U;gg=P;hg=H;ig=M;jg=s;kg=p;lg=R;mg=r;ng=O;og=o;pg=t}c[og+(F<<2)>>2]=w;Gc=dg;Hc=eg;Ic=fg;Jc=gg;Kc=hg;Lc=ig;Mc=jg;Nc=kg;Oc=lg;Pc=mg;Qc=ng;Rc=Q;Sc=og;Tc=v;Uc=pg}while(0);Q=Rc+1|0;if(Q>>>0>=Aa>>>0){La=Gc;Ma=Sc;Na=Tc;break}else{O=Qc;R=Oc;s=Mc;I=Hc;r=Pc;p=Nc;M=Lc;H=Kc;P=Jc;U=Ic;q=Gc;o=Sc;F=Tc;t=Uc}}}t=yq(0,152)|0;if(t){K=t;L=K+76|0;do{c[K>>2]=0;K=K+4|0}while((K|0)<(L|0));F=(Na|0)==0;if(!F){o=0;do{q=Ma+(o<<2)|0;U=t+(c[q>>2]<<2)|0;c[U>>2]=(c[U>>2]|0)+1;o=o+1+((c[q>>2]|0)>>>0>15&1)|0}while(o>>>0<Na>>>0)}o=Yp(l,t,19,7)|0;if(!o){q=yq(0,152)|0;if(!q){W=g;X=f;Y=t;Z=La;_=ya;$=0;aa=9927}else{U=c[l+24>>2]|0;c[q>>2]=c[U+64>>2];c[q+4>>2]=c[U+68>>2];c[q+8>>2]=c[U+72>>2];c[q+12>>2]=c[U>>2];c[q+16>>2]=c[U+32>>2];c[q+20>>2]=c[U+28>>2];c[q+24>>2]=c[U+36>>2];c[q+28>>2]=c[U+24>>2];c[q+32>>2]=c[U+40>>2];c[q+36>>2]=c[U+20>>2];c[q+40>>2]=c[U+44>>2];c[q+44>>2]=c[U+16>>2];c[q+48>>2]=c[U+48>>2];c[q+52>>2]=c[U+12>>2];c[q+56>>2]=c[U+52>>2];c[q+60>>2]=c[U+8>>2];c[q+64>>2]=c[U+56>>2];c[q+68>>2]=c[U+4>>2];P=c[U+60>>2]|0;c[q+72>>2]=P;if(!P){P=q;H=q;M=q;p=152;r=18;while(1){if(r<<2>>>0>p>>>0){I=r<<3;s=yq(P,I)|0;if(!s){W=g;X=f;Y=t;Z=La;_=ya;$=H;aa=9928;break a}qg=s;rg=s;sg=s;tg=I}else{qg=H;rg=P;sg=M;tg=p}I=r+-1|0;if(r>>>0>4?(c[sg+(I<<2)>>2]|0)==0:0){P=rg;H=qg;M=sg;p=tg;r=I}else{ug=qg;vg=sg;wg=r;break}}}else{ug=q;vg=q;wg=19}r=C+-257|0;p=V+-1|0;M=b+8|0;H=r&1;P=c[m>>2]&7;do if(!P){I=c[D>>2]|0;s=I+1|0;if((c[M>>2]|0)>>>0<s>>>0){R=s<<1;O=yq(c[b>>2]|0,R)|0;if(!O){xg=0;break}c[M>>2]=R;c[b>>2]=O;yg=O}else yg=c[b>>2]|0;c[D>>2]=s;a[yg+I>>0]=0;xg=c[m>>2]&7}else xg=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=H<<xg|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;V=r>>>1&1;C=P&7;do if(!C){P=c[D>>2]|0;q=P+1|0;if((c[M>>2]|0)>>>0<q>>>0){I=q<<1;s=yq(c[b>>2]|0,I)|0;if(!s){zg=0;break}c[M>>2]=I;c[b>>2]=s;Ag=s}else Ag=c[b>>2]|0;c[D>>2]=q;a[Ag+P>>0]=0;zg=c[m>>2]&7}else zg=C;while(0);C=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[C>>0]=V<<zg|(d[C>>0]|0);C=(c[m>>2]|0)+1|0;c[m>>2]=C;H=r>>>2&1;P=C&7;do if(!P){C=c[D>>2]|0;q=C+1|0;if((c[M>>2]|0)>>>0<q>>>0){s=q<<1;I=yq(c[b>>2]|0,s)|0;if(!I){Bg=0;break}c[M>>2]=s;c[b>>2]=I;Cg=I}else Cg=c[b>>2]|0;c[D>>2]=q;a[Cg+C>>0]=0;Bg=c[m>>2]&7}else Bg=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=H<<Bg|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;V=r>>>3&1;C=P&7;do if(!C){P=c[D>>2]|0;q=P+1|0;if((c[M>>2]|0)>>>0<q>>>0){I=q<<1;s=yq(c[b>>2]|0,I)|0;if(!s){Dg=0;break}c[M>>2]=I;c[b>>2]=s;Eg=s}else Eg=c[b>>2]|0;c[D>>2]=q;a[Eg+P>>0]=0;Dg=c[m>>2]&7}else Dg=C;while(0);C=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[C>>0]=V<<Dg|(d[C>>0]|0);C=(c[m>>2]|0)+1|0;c[m>>2]=C;H=r>>>4&1;P=C&7;do if(!P){C=c[D>>2]|0;q=C+1|0;if((c[M>>2]|0)>>>0<q>>>0){s=q<<1;I=yq(c[b>>2]|0,s)|0;if(!I){Fg=0;break}c[M>>2]=s;c[b>>2]=I;Gg=I}else Gg=c[b>>2]|0;c[D>>2]=q;a[Gg+C>>0]=0;Fg=c[m>>2]&7}else Fg=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=H<<Fg|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;r=wg+-4|0;V=p&1;C=P&7;do if(!C){P=c[D>>2]|0;q=P+1|0;if((c[M>>2]|0)>>>0<q>>>0){I=q<<1;s=yq(c[b>>2]|0,I)|0;if(!s){Hg=0;break}c[M>>2]=I;c[b>>2]=s;Ig=s}else Ig=c[b>>2]|0;c[D>>2]=q;a[Ig+P>>0]=0;Hg=c[m>>2]&7}else Hg=C;while(0);C=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[C>>0]=V<<Hg|(d[C>>0]|0);C=(c[m>>2]|0)+1|0;c[m>>2]=C;H=p>>>1&1;P=C&7;do if(!P){C=c[D>>2]|0;q=C+1|0;if((c[M>>2]|0)>>>0<q>>>0){s=q<<1;I=yq(c[b>>2]|0,s)|0;if(!I){Jg=0;break}c[M>>2]=s;c[b>>2]=I;Kg=I}else Kg=c[b>>2]|0;c[D>>2]=q;a[Kg+C>>0]=0;Jg=c[m>>2]&7}else Jg=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=H<<Jg|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;V=p>>>2&1;C=P&7;do if(!C){P=c[D>>2]|0;q=P+1|0;if((c[M>>2]|0)>>>0<q>>>0){I=q<<1;s=yq(c[b>>2]|0,I)|0;if(!s){Lg=0;break}c[M>>2]=I;c[b>>2]=s;Mg=s}else Mg=c[b>>2]|0;c[D>>2]=q;a[Mg+P>>0]=0;Lg=c[m>>2]&7}else Lg=C;while(0);C=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[C>>0]=V<<Lg|(d[C>>0]|0);C=(c[m>>2]|0)+1|0;c[m>>2]=C;H=p>>>3&1;P=C&7;do if(!P){C=c[D>>2]|0;q=C+1|0;if((c[M>>2]|0)>>>0<q>>>0){s=q<<1;I=yq(c[b>>2]|0,s)|0;if(!I){Ng=0;break}c[M>>2]=s;c[b>>2]=I;Og=I}else Og=c[b>>2]|0;c[D>>2]=q;a[Og+C>>0]=0;Ng=c[m>>2]&7}else Ng=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=H<<Ng|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;V=p>>>4&1;C=P&7;do if(!C){P=c[D>>2]|0;q=P+1|0;if((c[M>>2]|0)>>>0<q>>>0){I=q<<1;s=yq(c[b>>2]|0,I)|0;if(!s){Pg=0;break}c[M>>2]=I;c[b>>2]=s;Qg=s}else Qg=c[b>>2]|0;c[D>>2]=q;a[Qg+P>>0]=0;Pg=c[m>>2]&7}else Pg=C;while(0);C=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[C>>0]=V<<Pg|(d[C>>0]|0);C=(c[m>>2]|0)+1|0;c[m>>2]=C;p=r&1;H=C&7;do if(!H){C=c[D>>2]|0;P=C+1|0;if((c[M>>2]|0)>>>0<P>>>0){q=P<<1;s=yq(c[b>>2]|0,q)|0;if(!s){Rg=0;break}c[M>>2]=q;c[b>>2]=s;Sg=s}else Sg=c[b>>2]|0;c[D>>2]=P;a[Sg+C>>0]=0;Rg=c[m>>2]&7}else Rg=H;while(0);H=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[H>>0]=p<<Rg|(d[H>>0]|0);H=(c[m>>2]|0)+1|0;c[m>>2]=H;V=r>>>1&1;C=H&7;do if(!C){H=c[D>>2]|0;P=H+1|0;if((c[M>>2]|0)>>>0<P>>>0){s=P<<1;q=yq(c[b>>2]|0,s)|0;if(!q){Tg=0;break}c[M>>2]=s;c[b>>2]=q;Ug=q}else Ug=c[b>>2]|0;c[D>>2]=P;a[Ug+H>>0]=0;Tg=c[m>>2]&7}else Tg=C;while(0);C=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[C>>0]=V<<Tg|(d[C>>0]|0);C=(c[m>>2]|0)+1|0;c[m>>2]=C;p=r>>>2&1;H=C&7;do if(!H){C=c[D>>2]|0;P=C+1|0;if((c[M>>2]|0)>>>0<P>>>0){q=P<<1;s=yq(c[b>>2]|0,q)|0;if(!s){Vg=0;break}c[M>>2]=q;c[b>>2]=s;Wg=s}else Wg=c[b>>2]|0;c[D>>2]=P;a[Wg+C>>0]=0;Vg=c[m>>2]&7}else Vg=H;while(0);H=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[H>>0]=p<<Vg|(d[H>>0]|0);H=(c[m>>2]|0)+1|0;c[m>>2]=H;V=r>>>3&1;C=H&7;do if(!C){H=c[D>>2]|0;P=H+1|0;if((c[M>>2]|0)>>>0<P>>>0){s=P<<1;q=yq(c[b>>2]|0,s)|0;if(!q){Xg=0;break}c[M>>2]=s;c[b>>2]=q;Yg=q}else Yg=c[b>>2]|0;c[D>>2]=P;a[Yg+H>>0]=0;Xg=c[m>>2]&7}else Xg=C;while(0);C=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[C>>0]=V<<Xg|(d[C>>0]|0);C=(c[m>>2]|0)+1|0;c[m>>2]=C;if(!wg)Zg=C;else{r=C;C=0;while(1){p=c[vg+(C<<2)>>2]|0;H=p&1;P=r&7;do if(!P){q=c[D>>2]|0;s=q+1|0;if((c[M>>2]|0)>>>0<s>>>0){I=s<<1;O=yq(c[b>>2]|0,I)|0;if(!O){_g=0;break}c[M>>2]=I;c[b>>2]=O;$g=O}else $g=c[b>>2]|0;c[D>>2]=s;a[$g+q>>0]=0;_g=c[m>>2]&7}else _g=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=H<<_g|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;q=p>>>1&1;s=P&7;do if(!s){P=c[D>>2]|0;O=P+1|0;if((c[M>>2]|0)>>>0<O>>>0){I=O<<1;R=yq(c[b>>2]|0,I)|0;if(!R){ah=0;break}c[M>>2]=I;c[b>>2]=R;bh=R}else bh=c[b>>2]|0;c[D>>2]=O;a[bh+P>>0]=0;ah=c[m>>2]&7}else ah=s;while(0);s=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[s>>0]=q<<ah|(d[s>>0]|0);s=(c[m>>2]|0)+1|0;c[m>>2]=s;H=p>>>2&1;P=s&7;do if(!P){s=c[D>>2]|0;O=s+1|0;if((c[M>>2]|0)>>>0<O>>>0){R=O<<1;I=yq(c[b>>2]|0,R)|0;if(!I){ch=0;break}c[M>>2]=R;c[b>>2]=I;dh=I}else dh=c[b>>2]|0;c[D>>2]=O;a[dh+s>>0]=0;ch=c[m>>2]&7}else ch=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=H<<ch|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;C=C+1|0;if((C|0)==(wg|0)){Zg=P;break}else r=P}}b:do if(!F){r=c[l+12>>2]|0;C=Zg;V=0;while(1){P=Ma+(V<<2)|0;p=c[P>>2]|0;q=c[r+(p<<2)>>2]|0;s=c[U+(p<<2)>>2]|0;if(!s){eh=C;fh=p}else{p=s+-1|0;O=C;I=0;do{R=q>>>(p-I|0)&1;Q=O&7;do if(!Q){w=c[D>>2]|0;v=w+1|0;if((c[M>>2]|0)>>>0<v>>>0){E=v<<1;y=yq(c[b>>2]|0,E)|0;if(!y){gh=0;break}c[M>>2]=E;c[b>>2]=y;hh=y}else hh=c[b>>2]|0;c[D>>2]=v;a[hh+w>>0]=0;gh=c[m>>2]&7}else gh=Q;while(0);Q=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[Q>>0]=R<<gh|(d[Q>>0]|0);O=(c[m>>2]|0)+1|0;c[m>>2]=O;I=I+1|0}while((I|0)!=(s|0));eh=O;fh=c[P>>2]|0}switch(fh|0){case 16:{s=V+1|0;I=c[Ma+(s<<2)>>2]|0;p=I&1;q=eh&7;do if(!q){Q=c[D>>2]|0;Gd=Q+1|0;if((c[M>>2]|0)>>>0<Gd>>>0){w=Gd<<1;v=yq(c[b>>2]|0,w)|0;if(!v){ih=0;break}c[M>>2]=w;c[b>>2]=v;jh=v}else jh=c[b>>2]|0;c[D>>2]=Gd;a[jh+Q>>0]=0;ih=c[m>>2]&7}else ih=q;while(0);q=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[q>>0]=p<<ih|(d[q>>0]|0);q=(c[m>>2]|0)+1|0;c[m>>2]=q;P=I>>>1&1;O=q&7;do if(!O){q=c[D>>2]|0;Q=q+1|0;if((c[M>>2]|0)>>>0<Q>>>0){Gd=Q<<1;v=yq(c[b>>2]|0,Gd)|0;if(!v){kh=0;break}c[M>>2]=Gd;c[b>>2]=v;lh=v}else lh=c[b>>2]|0;c[D>>2]=Q;a[lh+q>>0]=0;kh=c[m>>2]&7}else kh=O;while(0);O=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[O>>0]=P<<kh|(d[O>>0]|0);O=(c[m>>2]|0)+1|0;c[m>>2]=O;mh=O;nh=s;break}case 17:{O=V+1|0;I=c[Ma+(O<<2)>>2]|0;p=I&1;q=eh&7;do if(!q){Q=c[D>>2]|0;v=Q+1|0;if((c[M>>2]|0)>>>0<v>>>0){Gd=v<<1;w=yq(c[b>>2]|0,Gd)|0;if(!w){oh=0;break}c[M>>2]=Gd;c[b>>2]=w;ph=w}else ph=c[b>>2]|0;c[D>>2]=v;a[ph+Q>>0]=0;oh=c[m>>2]&7}else oh=q;while(0);q=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[q>>0]=p<<oh|(d[q>>0]|0);q=(c[m>>2]|0)+1|0;c[m>>2]=q;s=I>>>1&1;P=q&7;do if(!P){q=c[D>>2]|0;Q=q+1|0;if((c[M>>2]|0)>>>0<Q>>>0){v=Q<<1;w=yq(c[b>>2]|0,v)|0;if(!w){qh=0;break}c[M>>2]=v;c[b>>2]=w;rh=w}else rh=c[b>>2]|0;c[D>>2]=Q;a[rh+q>>0]=0;qh=c[m>>2]&7}else qh=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=s<<qh|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;p=I>>>2&1;q=P&7;do if(!q){P=c[D>>2]|0;Q=P+1|0;if((c[M>>2]|0)>>>0<Q>>>0){w=Q<<1;v=yq(c[b>>2]|0,w)|0;if(!v){sh=0;break}c[M>>2]=w;c[b>>2]=v;th=v}else th=c[b>>2]|0;c[D>>2]=Q;a[th+P>>0]=0;sh=c[m>>2]&7}else sh=q;while(0);q=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[q>>0]=p<<sh|(d[q>>0]|0);q=(c[m>>2]|0)+1|0;c[m>>2]=q;mh=q;nh=O;break}case 18:{q=V+1|0;I=c[Ma+(q<<2)>>2]|0;s=I&1;P=eh&7;do if(!P){Q=c[D>>2]|0;v=Q+1|0;if((c[M>>2]|0)>>>0<v>>>0){w=v<<1;Gd=yq(c[b>>2]|0,w)|0;if(!Gd){uh=0;break}c[M>>2]=w;c[b>>2]=Gd;vh=Gd}else vh=c[b>>2]|0;c[D>>2]=v;a[vh+Q>>0]=0;uh=c[m>>2]&7}else uh=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=s<<uh|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;O=I>>>1&1;p=P&7;do if(!p){P=c[D>>2]|0;Q=P+1|0;if((c[M>>2]|0)>>>0<Q>>>0){v=Q<<1;Gd=yq(c[b>>2]|0,v)|0;if(!Gd){wh=0;break}c[M>>2]=v;c[b>>2]=Gd;xh=Gd}else xh=c[b>>2]|0;c[D>>2]=Q;a[xh+P>>0]=0;wh=c[m>>2]&7}else wh=p;while(0);p=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[p>>0]=O<<wh|(d[p>>0]|0);p=(c[m>>2]|0)+1|0;c[m>>2]=p;s=I>>>2&1;P=p&7;do if(!P){p=c[D>>2]|0;Q=p+1|0;if((c[M>>2]|0)>>>0<Q>>>0){Gd=Q<<1;v=yq(c[b>>2]|0,Gd)|0;if(!v){yh=0;break}c[M>>2]=Gd;c[b>>2]=v;zh=v}else zh=c[b>>2]|0;c[D>>2]=Q;a[zh+p>>0]=0;yh=c[m>>2]&7}else yh=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=s<<yh|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;O=I>>>3&1;p=P&7;do if(!p){P=c[D>>2]|0;Q=P+1|0;if((c[M>>2]|0)>>>0<Q>>>0){v=Q<<1;Gd=yq(c[b>>2]|0,v)|0;if(!Gd){Ah=0;break}c[M>>2]=v;c[b>>2]=Gd;Bh=Gd}else Bh=c[b>>2]|0;c[D>>2]=Q;a[Bh+P>>0]=0;Ah=c[m>>2]&7}else Ah=p;while(0);p=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[p>>0]=O<<Ah|(d[p>>0]|0);p=(c[m>>2]|0)+1|0;c[m>>2]=p;s=I>>>4&1;P=p&7;do if(!P){p=c[D>>2]|0;Q=p+1|0;if((c[M>>2]|0)>>>0<Q>>>0){Gd=Q<<1;v=yq(c[b>>2]|0,Gd)|0;if(!v){Ch=0;break}c[M>>2]=Gd;c[b>>2]=v;Dh=v}else Dh=c[b>>2]|0;c[D>>2]=Q;a[Dh+p>>0]=0;Ch=c[m>>2]&7}else Ch=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=s<<Ch|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;O=I>>>5&1;p=P&7;do if(!p){P=c[D>>2]|0;Q=P+1|0;if((c[M>>2]|0)>>>0<Q>>>0){v=Q<<1;Gd=yq(c[b>>2]|0,v)|0;if(!Gd){Eh=0;break}c[M>>2]=v;c[b>>2]=Gd;Fh=Gd}else Fh=c[b>>2]|0;c[D>>2]=Q;a[Fh+P>>0]=0;Eh=c[m>>2]&7}else Eh=p;while(0);p=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[p>>0]=O<<Eh|(d[p>>0]|0);p=(c[m>>2]|0)+1|0;c[m>>2]=p;s=I>>>6&1;P=p&7;do if(!P){p=c[D>>2]|0;Q=p+1|0;if((c[M>>2]|0)>>>0<Q>>>0){Gd=Q<<1;v=yq(c[b>>2]|0,Gd)|0;if(!v){Gh=0;break}c[M>>2]=Gd;c[b>>2]=v;Hh=v}else Hh=c[b>>2]|0;c[D>>2]=Q;a[Hh+p>>0]=0;Gh=c[m>>2]&7}else Gh=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=s<<Gh|(d[P>>0]|0);P=(c[m>>2]|0)+1|0;c[m>>2]=P;mh=P;nh=q;break}default:{mh=eh;nh=V}}V=nh+1|0;if(V>>>0>=Na>>>0)break b;else C=mh}}while(0);Xp(m,b,i,j,k);U=c[(c[j+24>>2]|0)+1024>>2]|0;if(!U){W=g;X=f;Y=t;Z=La;_=ya;$=ug;aa=64;break}F=c[(c[j+12>>2]|0)+1024>>2]|0;C=U+-1|0;V=c[m>>2]|0;r=0;do{H=F>>>(C-r|0)&1;P=V&7;do if(!P){I=c[D>>2]|0;O=I+1|0;if((c[M>>2]|0)>>>0<O>>>0){p=O<<1;Q=yq(c[b>>2]|0,p)|0;if(!Q){Ih=0;break}c[M>>2]=p;c[b>>2]=Q;Jh=Q}else Jh=c[b>>2]|0;c[D>>2]=O;a[Jh+I>>0]=0;Ih=c[m>>2]&7}else Ih=P;while(0);P=(c[b>>2]|0)+((c[D>>2]|0)+-1)|0;a[P>>0]=H<<Ih|(d[P>>0]|0);V=(c[m>>2]|0)+1|0;c[m>>2]=V;r=r+1|0}while((r|0)!=(U|0));W=g;X=f;Y=t;Z=La;_=ya;$=ug;aa=0}}else{W=g;X=f;Y=t;Z=La;_=ya;$=0;aa=o}}else{W=g;X=f;Y=0;Z=La;_=ya;$=0;aa=9926}}else{W=g;X=f;Y=0;Z=0;_=0;$=0;aa=N}}else{W=g;X=f;Y=0;Z=0;_=0;$=0;aa=e}}else{W=g;X=0;Y=0;Z=0;_=0;$=0;aa=9925}}else{W=0;X=0;Y=0;Z=0;_=0;$=0;aa=9924}}while(0);c[T>>2]=0;c[S>>2]=0;zq(c[i>>2]|0);c[j+8>>2]=0;c[j+4>>2]=0;zq(c[j>>2]|0);c[j>>2]=0;i=j+12|0;c[j+20>>2]=0;c[j+16>>2]=0;zq(c[i>>2]|0);c[i>>2]=0;c[j+32>>2]=0;c[j+28>>2]=0;zq(c[j+24>>2]|0);c[k+8>>2]=0;c[k+4>>2]=0;zq(c[k>>2]|0);c[k>>2]=0;j=k+12|0;c[k+20>>2]=0;c[k+16>>2]=0;zq(c[j>>2]|0);c[j>>2]=0;c[k+32>>2]=0;c[k+28>>2]=0;zq(c[k+24>>2]|0);c[l+8>>2]=0;c[l+4>>2]=0;zq(c[l>>2]|0);c[l>>2]=0;k=l+12|0;c[l+20>>2]=0;c[l+16>>2]=0;zq(c[k>>2]|0);c[k>>2]=0;c[l+32>>2]=0;c[l+28>>2]=0;zq(c[l+24>>2]|0);zq(W);zq(X);zq(Y);zq(Z);zq(_);zq($);J=aa;Ia=h;return J|0}default:{J=61;Ia=h;return J|0}}return 0}function Wp(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0;h=yq(0,1572864)|0;if(!h){i=9917;return i|0}Wv(h|0,0,786432)|0;j=yq(0,524288)|0;if(!j){k=9918;l=0;m=0}else{Wv(j|0,0,262144)|0;k=0;l=j;m=j}j=yq(0,524288)|0;a:do if(j){Wv(j|0,0,262144)|0;if(!k)if(!f){n=j;o=0;p=0}else{q=b+4|0;r=b+8|0;s=0;t=0;u=0;v=0;w=0;x=0;y=0;z=0;while(1){A=z>>>0<g>>>0?z:g;B=f-z|0;C=(z+6|0)>>>0<f>>>0?6:B;if(!C)D=0;else{E=0;F=0;do{F=d[e+(E+z)>>0]<<(E<<1)^F;E=E+1|0}while(E>>>0<C>>>0);D=F&65535}C=B>>>0<258?B:258;b:do if(!C)G=0;else{E=0;while(1){if(a[e+(E+z)>>0]|0){G=E;break b}E=E+1|0;if(E>>>0>=C>>>0){G=C;break}}}while(0);C=h+(D*12|0)|0;F=C+4|0;E=c[F>>2]|0;H=E+1|0;I=C+8|0;if(H<<2>>>0>(c[I>>2]|0)>>>0){J=H<<3;K=yq(c[C>>2]|0,J)|0;if(!K){n=j;o=u;p=9920;break a}c[I>>2]=J;c[C>>2]=K;L=K}else L=c[C>>2]|0;c[F>>2]=H;c[L+(E<<2)>>2]=z;E=(D|0)==0;if(E){H=x+1|0;if(H<<2>>>0>y>>>0){F=H<<3;K=yq(s,F)|0;if(!K){n=j;o=u;p=9920;break a}M=c[C>>2]|0;N=K;O=K;P=K;Q=C;R=K;S=F}else{M=L;N=u;O=t;P=s;Q=C;R=w;S=y}c[R+(x<<2)>>2]=G;T=N;U=O;V=P;W=M;X=Q;Y=R;Z=H;_=S}else{T=u;U=t;V=s;W=L;X=C;Y=w;Z=x;_=y}C=m+(D<<2)|0;H=c[C>>2]|0;F=z-A|0;if((c[W+(H<<2)>>2]|0)>>>0<F>>>0){K=c[X>>2]|0;J=H;while(1){I=J+1|0;c[C>>2]=I;if((c[K+(I<<2)>>2]|0)>>>0<F>>>0)J=I;else{$=K;aa=I;break}}}else{$=W;aa=H}K=j+(D<<2)|0;J=c[K>>2]|0;if((c[$+(J<<2)>>2]|0)>>>0<z>>>0){F=J;do{F=F+1|0;c[K>>2]=F}while((c[$+(F<<2)>>2]|0)>>>0<z>>>0);ba=F;ca=c[C>>2]|0}else{ba=J;ca=aa}K=z+258|0;H=K>>>0>f>>>0?f:K;K=e+H|0;A=ba+-1|0;c:do if(A>>>0>=ca>>>0&(ba|0)!=0){I=e+z|0;da=I;d:do if(E){ea=0;fa=0;ga=A;while(1){ha=c[$+(ga<<2)>>2]|0;ia=z-ha|0;ja=c[Y+(ga<<2)>>2]|0;ka=ja>>>0>G>>>0?G:ja;ja=ka>>>0>B>>>0?B:ka;ka=I+ja|0;e:do if((ka|0)==(K|0))la=K;else{ma=e+ha+ja|0;na=ka;while(1){if((a[ma>>0]|0)!=(a[na>>0]|0)){la=na;break e}na=na+1|0;if((na|0)==(K|0)){la=K;break}else ma=ma+1|0}}while(0);ka=la-da|0;if(ka>>>0>ea>>>0)if((ka|0)==258){oa=258;pa=ia;break d}else{qa=ka;ra=ia}else{qa=ea;ra=fa}ga=ga+-1|0;if(!(ga>>>0>=ca>>>0&ga>>>0<ba>>>0)){sa=qa;ta=ra;ua=53;break}else{ea=qa;fa=ra}}}else{fa=(z|0)==(H|0);ea=0;ga=0;ka=A;while(1){ja=c[$+(ka<<2)>>2]|0;ha=z-ja|0;if(fa)va=da;else{ma=e+ja|0;ja=I;while(1){if((a[ma>>0]|0)!=(a[ja>>0]|0)){wa=ja;break}ja=ja+1|0;if((ja|0)==(K|0)){wa=K;break}else ma=ma+1|0}va=wa}ma=va-da|0;if(ma>>>0>ea>>>0)if((ma|0)==258){oa=258;pa=ha;break d}else{xa=ma;ya=ha}else{xa=ea;ya=ga}ka=ka+-1|0;if(!(ka>>>0>=ca>>>0&ka>>>0<ba>>>0)){sa=xa;ta=ya;ua=53;break}else{ea=xa;ga=ya}}}while(0);if((ua|0)==53){ua=0;if(sa>>>0<3){ua=54;break}else{oa=sa;pa=ta}}da=1;I=28;while(1){ga=(da+I|0)>>>1;if((c[29568+(ga<<2)>>2]|0)>>>0>oa>>>0){ea=ga+-1|0;ka=c[29568+(ea<<2)>>2]|0;if(ka>>>0>oa>>>0){za=da;Aa=ea}else{Ba=ka;Ca=ea;break}}else{za=ga+1|0;Aa=I}if(za>>>0>Aa>>>0){Ba=258;Ca=28;break}else{da=za;I=Aa}}I=oa-Ba|0;da=1;ga=29;while(1){ea=(da+ga|0)>>>1;if((c[29824+(ea<<2)>>2]|0)>>>0>pa>>>0){ka=ea+-1|0;fa=c[29824+(ka<<2)>>2]|0;if(fa>>>0>pa>>>0){Da=da;Ea=ka}else{Fa=fa;Ga=ka;break}}else{Da=ea+1|0;Ea=ga}if(Da>>>0>Ea>>>0){Fa=24577;Ga=29;break}else{da=Da;ga=Ea}}ga=pa-Fa|0;da=Ca+257|0;ea=c[q>>2]|0;ka=ea+1|0;fa=c[r>>2]|0;do if(ka<<2>>>0>fa>>>0){ma=ka<<3;ja=yq(c[b>>2]|0,ma)|0;if(!ja){Ha=c[q>>2]|0;Ia=c[r>>2]|0;break}else{c[r>>2]=ma;c[b>>2]=ja;Ja=ja;Ka=ma;ua=74;break}}else{Ja=c[b>>2]|0;Ka=fa;ua=74}while(0);if((ua|0)==74){ua=0;c[q>>2]=ka;c[Ja+(ea<<2)>>2]=da;Ha=ka;Ia=Ka}fa=Ha+1|0;do if(fa<<2>>>0>Ia>>>0){ma=fa<<3;ja=yq(c[b>>2]|0,ma)|0;if(!ja){La=c[q>>2]|0;Ma=c[r>>2]|0;break}else{c[r>>2]=ma;c[b>>2]=ja;Na=ja;Oa=ma;ua=80;break}}else{Na=c[b>>2]|0;Oa=Ia;ua=80}while(0);if((ua|0)==80){ua=0;c[q>>2]=fa;c[Na+(Ha<<2)>>2]=I;La=fa;Ma=Oa}ka=La+1|0;do if(ka<<2>>>0>Ma>>>0){da=ka<<3;ea=yq(c[b>>2]|0,da)|0;if(!ea){Pa=c[q>>2]|0;Qa=c[r>>2]|0;break}else{c[r>>2]=da;c[b>>2]=ea;Ra=ea;Sa=da;ua=86;break}}else{Ra=c[b>>2]|0;Sa=Ma;ua=86}while(0);if((ua|0)==86){ua=0;c[q>>2]=ka;c[Ra+(La<<2)>>2]=Ga;Pa=ka;Qa=Sa}fa=Pa+1|0;do if(fa<<2>>>0>Qa>>>0){I=fa<<3;da=yq(c[b>>2]|0,I)|0;if(!da)break;c[r>>2]=I;c[b>>2]=da;Ta=da;ua=91}else{Ta=c[b>>2]|0;ua=91}while(0);if((ua|0)==91){ua=0;c[q>>2]=fa;c[Ta+(Pa<<2)>>2]=ga}ka=oa+-1|0;if(!ka){Ua=T;Va=U;Wa=V;Xa=v;Ya=Y;Za=Z;_a=_;$a=z;break}da=U;I=V;ea=T;ma=Y;ja=Z;ia=_;na=0;ab=z;while(1){bb=ab+1|0;do if(bb>>>0<f>>>0){cb=(ab+7|0)>>>0<f>>>0?6:f-bb|0;if(!cb){db=0;break}eb=0;fb=0;do{fb=d[e+(eb+bb)>>0]<<(eb<<1)^fb;eb=eb+1|0}while(eb>>>0<cb>>>0);db=fb&65535}else db=0;while(0);cb=h+(db*12|0)|0;eb=cb+4|0;ha=c[eb>>2]|0;gb=ha+1|0;hb=cb+8|0;if(gb<<2>>>0>(c[hb>>2]|0)>>>0){ib=gb<<3;jb=yq(c[cb>>2]|0,ib)|0;if(!jb){Ua=ea;Va=da;Wa=I;Xa=9922;Ya=ma;Za=ja;_a=ia;$a=bb;break c}c[hb>>2]=ib;c[cb>>2]=jb;kb=jb}else kb=c[cb>>2]|0;c[eb>>2]=gb;c[kb+(ha<<2)>>2]=bb;if(!db){ha=f-bb|0;gb=ha>>>0<258?ha:258;f:do if(!gb)lb=0;else{ha=0;while(1){if(a[e+(ha+bb)>>0]|0){lb=ha;break f}ha=ha+1|0;if(ha>>>0>=gb>>>0){lb=gb;break}}}while(0);gb=ja+1|0;if(gb<<2>>>0>ia>>>0){ha=gb<<3;fb=yq(da,ha)|0;if(!fb){Ua=ea;Va=da;Wa=I;Xa=9922;Ya=ma;Za=ja;_a=ia;$a=bb;break c}mb=fb;nb=fb;ob=fb;pb=fb;qb=ha}else{mb=ea;nb=da;ob=I;pb=ma;qb=ia}c[pb+(ja<<2)>>2]=lb;rb=mb;sb=nb;tb=ob;ub=pb;vb=gb;wb=qb}else{rb=ea;sb=da;tb=I;ub=ma;vb=ja;wb=ia}na=na+1|0;if(na>>>0>=ka>>>0){Ua=rb;Va=sb;Wa=tb;Xa=v;Ya=ub;Za=vb;_a=wb;$a=bb;break}else{da=sb;I=tb;ea=rb;ma=ub;ja=vb;ia=wb;ab=bb}}}else ua=54;while(0);if((ua|0)==54){ua=0;K=d[e+z>>0]|0;A=c[q>>2]|0;H=A+1|0;if(H<<2>>>0>(c[r>>2]|0)>>>0){B=H<<3;E=yq(c[b>>2]|0,B)|0;if(!E){n=j;o=T;p=9921;break a}c[r>>2]=B;c[b>>2]=E;xb=E}else xb=c[b>>2]|0;c[q>>2]=H;c[xb+(A<<2)>>2]=K;Ua=T;Va=U;Wa=V;Xa=v;Ya=Y;Za=Z;_a=_;$a=z}z=$a+1|0;if(z>>>0>=f>>>0){n=j;o=Ua;p=Xa;break}else{s=Wa;t=Va;u=Ua;v=Xa;w=Ya;x=Za;y=_a}}}else{n=j;o=0;p=k}}else{n=0;o=0;p=9919}while(0);k=0;do{j=h+(k*12|0)|0;c[j+8>>2]=0;c[j+4>>2]=0;zq(c[j>>2]|0);c[j>>2]=0;k=k+1|0}while((k|0)!=65536);zq(h);zq(l);zq(n);zq(o);i=p;return i|0}function Xp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;i=f+4|0;if(!(c[i>>2]|0))return;j=g+12|0;k=g+24|0;g=e+4|0;l=e+8|0;m=h+12|0;n=h+24|0;h=0;do{o=c[(c[f>>2]|0)+(h<<2)>>2]|0;p=c[(c[j>>2]|0)+(o<<2)>>2]|0;q=c[(c[k>>2]|0)+(o<<2)>>2]|0;if(q|0){r=q+-1|0;s=c[b>>2]|0;t=0;do{u=p>>>(r-t|0)&1;do if(!(s&7)){v=c[g>>2]|0;w=v+1|0;if((c[l>>2]|0)>>>0<w>>>0){x=w<<1;y=yq(c[e>>2]|0,x)|0;if(!y)break;c[l>>2]=x;c[e>>2]=y;z=y}else z=c[e>>2]|0;c[g>>2]=w;a[z+v>>0]=0}while(0);v=(c[e>>2]|0)+((c[g>>2]|0)+-1)|0;a[v>>0]=u<<(c[b>>2]&7)|(d[v>>0]|0);s=(c[b>>2]|0)+1|0;c[b>>2]=s;t=t+1|0}while((t|0)!=(q|0))}if(o>>>0>256){q=c[29440+(o+-257<<2)>>2]|0;t=c[f>>2]|0;s=c[t+(h+1<<2)>>2]|0;r=c[t+(h+2<<2)>>2]|0;p=c[29696+(r<<2)>>2]|0;v=h+3|0;w=c[t+(v<<2)>>2]|0;if((o+-265|0)>>>0<=19){t=c[b>>2]|0;y=0;do{x=s>>>y&1;do if(!(t&7)){A=c[g>>2]|0;B=A+1|0;if((c[l>>2]|0)>>>0<B>>>0){C=B<<1;D=yq(c[e>>2]|0,C)|0;if(!D)break;c[l>>2]=C;c[e>>2]=D;E=D}else E=c[e>>2]|0;c[g>>2]=B;a[E+A>>0]=0}while(0);u=(c[e>>2]|0)+((c[g>>2]|0)+-1)|0;a[u>>0]=x<<(c[b>>2]&7)|(d[u>>0]|0);t=(c[b>>2]|0)+1|0;c[b>>2]=t;y=y+1|0}while((y|0)!=(q|0))}q=c[(c[m>>2]|0)+(r<<2)>>2]|0;y=c[(c[n>>2]|0)+(r<<2)>>2]|0;if(y|0){t=y+-1|0;s=c[b>>2]|0;o=0;do{u=q>>>(t-o|0)&1;do if(!(s&7)){A=c[g>>2]|0;B=A+1|0;if((c[l>>2]|0)>>>0<B>>>0){D=B<<1;C=yq(c[e>>2]|0,D)|0;if(!C)break;c[l>>2]=D;c[e>>2]=C;F=C}else F=c[e>>2]|0;c[g>>2]=B;a[F+A>>0]=0}while(0);x=(c[e>>2]|0)+((c[g>>2]|0)+-1)|0;a[x>>0]=u<<(c[b>>2]&7)|(d[x>>0]|0);s=(c[b>>2]|0)+1|0;c[b>>2]=s;o=o+1|0}while((o|0)!=(y|0))}if(r>>>0<4)G=v;else{y=c[b>>2]|0;o=0;do{s=w>>>o&1;do if(!(y&7)){t=c[g>>2]|0;q=t+1|0;if((c[l>>2]|0)>>>0<q>>>0){x=q<<1;A=yq(c[e>>2]|0,x)|0;if(!A)break;c[l>>2]=x;c[e>>2]=A;H=A}else H=c[e>>2]|0;c[g>>2]=q;a[H+t>>0]=0}while(0);u=(c[e>>2]|0)+((c[g>>2]|0)+-1)|0;a[u>>0]=s<<(c[b>>2]&7)|(d[u>>0]|0);y=(c[b>>2]|0)+1|0;c[b>>2]=y;o=o+1|0}while((o|0)!=(p|0));G=v}}else G=h;h=G+1|0}while(h>>>0<(c[i>>2]|0)>>>0);return}function Yp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;g=Ia;Ia=Ia+16|0;h=g;c[a+36>>2]=e;i=(d|0)==0;if(i){j=80;Ia=g;return j|0}k=0;l=0;m=0;do{n=c[b+(k<<2)>>2]|0;m=n+m|0;l=l+((n|0)!=0&1)|0;k=k+1|0}while((k|0)!=(d|0));if(i){j=80;Ia=g;return j|0}i=a+40|0;c[i>>2]=d;k=a+24|0;n=a+32|0;o=a+28|0;c[o>>2]=0;p=d<<2;do if(p>>>0>(c[n>>2]|0)>>>0){q=d<<3;r=yq(c[k>>2]|0,q)|0;if(!r){j=9905;Ia=g;return j|0}else{c[n>>2]=q;c[k>>2]=r;break}}while(0);c[o>>2]=d;Wv(c[k>>2]|0,0,p|0)|0;switch(l|0){case 0:{c[c[k>>2]>>2]=1;j=Tp(a)|0;Ia=g;return j|0}case 1:{p=0;do{if(c[b+(p<<2)>>2]|0)c[(c[k>>2]|0)+(p<<2)>>2]=1;p=p+1|0}while((p|0)!=(d|0));j=Tp(a)|0;Ia=g;return j|0}default:{c[h>>2]=0;d=h+8|0;c[d>>2]=0;p=h+4|0;c[p>>2]=0;o=h+12|0;c[o>>2]=16;n=Zp(h,b,c[i>>2]|0,m)|0;do if(!n){if(e){r=0;q=0;s=1;t=0;do{u=r;r=c[p>>2]|0;c[p>>2]=u;v=q;q=c[d>>2]|0;c[d>>2]=v;w=t;t=c[h>>2]|0;c[h>>2]=w;x=w;if(u|0){w=c[o>>2]|0;y=0;do{z=x+(B(w,y)|0)|0;c[z+8>>2]=0;c[z+4>>2]=0;zq(c[z>>2]|0);c[z>>2]=0;y=y+1|0}while(y>>>0<u>>>0)}c[p>>2]=0;if(r>>>0>1){u=c[o>>2]|0;y=t;w=v;z=x;A=1;C=0;D=0;while(1){E=C+1|0;F=B(u,E)|0;if(F>>>0>w>>>0){G=F<<1;F=yq(z,G)|0;if(!F){H=z;I=w;J=C;K=9907;break}else{L=F;M=G}}else{L=z;M=w}G=L+(B(u,C)|0)|0;c[G>>2]=0;F=G+8|0;c[F>>2]=0;N=G+4|0;c[N>>2]=0;O=y+(D<<4)|0;P=G+12|0;c[P>>2]=c[O+12>>2];Q=O+4|0;R=c[Q>>2]|0;if(R&1073741823){S=R<<3;T=yq(0,S)|0;if(T|0){c[F>>2]=S;c[G>>2]=T;U=T;V=28}}else{U=0;V=28}if((V|0)==28?(V=0,c[N>>2]=R,R=c[Q>>2]|0,R|0):0){Q=c[O>>2]|0;O=0;do{c[U+(O<<2)>>2]=c[Q+(O<<2)>>2];O=O+1|0}while((O|0)!=(R|0))}R=y+(A<<4)|0;O=R+4|0;if(c[O>>2]|0){Q=0;do{T=c[(c[R>>2]|0)+(Q<<2)>>2]|0;S=c[N>>2]|0;W=S+1|0;do if(W<<2>>>0>(c[F>>2]|0)>>>0){X=W<<3;Y=yq(c[G>>2]|0,X)|0;if(!Y)break;c[F>>2]=X;c[G>>2]=Y;Z=Y;V=37}else{Z=c[G>>2]|0;V=37}while(0);if((V|0)==37){V=0;c[N>>2]=W;c[Z+(S<<2)>>2]=T}Q=Q+1|0}while(Q>>>0<(c[O>>2]|0)>>>0)}f[P>>2]=+f[R+12>>2]+ +f[P>>2];D=D+2|0;A=D|1;if(A>>>0>=r>>>0){H=L;I=M;J=E;K=0;break}else{w=M;z=L;C=E}}c[p>>2]=J;c[d>>2]=I;c[h>>2]=H;_=K}else _=0;if(s>>>0<e>>>0)$=Zp(h,b,c[i>>2]|0,m)|0;else $=_;s=s+1|0}while(s>>>0<=e>>>0&($|0)==0);if(!$){aa=t;ba=r}else{ca=$;da=t;ea=r;V=60;break}}else{aa=0;ba=0}s=l+-1|0;q=c[p>>2]|0;if(q>>>0>s>>>0){C=c[h>>2]|0;z=c[o>>2]|0;w=s;do{A=C+(B(z,w)|0)|0;c[A+8>>2]=0;c[A+4>>2]=0;zq(c[A>>2]|0);c[A>>2]=0;w=w+1|0}while(w>>>0<q>>>0);fa=z}else fa=c[o>>2]|0;z=B(fa,s)|0;if(z>>>0>(c[d>>2]|0)>>>0){w=z<<1;z=yq(c[h>>2]|0,w)|0;if(!z)ga=q;else{c[d>>2]=w;c[h>>2]=z;V=52}}else V=52;if((V|0)==52){c[p>>2]=s;ga=s}if(!ga)ha=0;else{z=c[h>>2]|0;w=0;do{C=z+(B(fa,w)|0)|0;r=c[C+4>>2]|0;if(r|0){t=c[k>>2]|0;A=c[C>>2]|0;C=0;do{D=t+(c[A+(C<<2)>>2]<<2)|0;c[D>>2]=(c[D>>2]|0)+1;C=C+1|0}while(C>>>0<r>>>0)}w=w+1|0}while(w>>>0<ga>>>0);ha=ga}ia=ha;ja=ga;ka=Tp(a)|0;la=aa;ma=ba}else{ca=n;da=0;ea=0;V=60}while(0);if((V|0)==60){V=c[p>>2]|0;ia=V;ja=V;ka=ca;la=da;ma=ea}ea=c[h>>2]|0;if(ia|0){ia=c[o>>2]|0;o=0;do{da=ea+(B(ia,o)|0)|0;c[da+8>>2]=0;c[da+4>>2]=0;zq(c[da>>2]|0);c[da>>2]=0;o=o+1|0}while(o>>>0<ja>>>0)}ja=p;c[ja>>2]=0;c[ja+4>>2]=0;zq(ea);c[h>>2]=0;h=la;if(ma|0){la=0;do{ea=h+(la<<4)|0;c[ea+8>>2]=0;c[ea+4>>2]=0;zq(c[ea>>2]|0);c[ea>>2]=0;la=la+1|0}while((la|0)!=(ma|0))}zq(h);j=ka;Ia=g;return j|0}}return 0}function Zp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;g=a+4|0;a:do if(d|0){h=a+12|0;i=a+8|0;j=+(e>>>0);k=0;while(1){l=b+(k<<2)|0;m=c[l>>2]|0;if(m|0){n=c[g>>2]|0;o=n+1|0;p=c[h>>2]|0;q=B(p,o)|0;if(q>>>0>(c[i>>2]|0)>>>0){r=q<<1;q=yq(c[a>>2]|0,r)|0;if(!q)break;c[i>>2]=r;c[a>>2]=q;s=c[l>>2]|0;t=q;u=c[h>>2]|0}else{s=m;t=c[a>>2]|0;u=p}c[g>>2]=o;o=t+(B(u,n)|0)|0;c[o>>2]=0;n=o+8|0;c[n>>2]=0;p=o+4|0;c[p>>2]=0;f[o+12>>2]=+(s>>>0)/j;m=yq(0,8)|0;if(m|0){c[n>>2]=8;c[o>>2]=m;c[p>>2]=1;c[m>>2]=k}}k=k+1|0;if(k>>>0>=d>>>0)break a}c[i>>2]=0;c[g>>2]=0;zq(c[a>>2]|0);c[a>>2]=0;v=9904;return v|0}while(0);d=c[g>>2]|0;if(!d){v=0;return v|0}g=c[a>>2]|0;if((d|0)==1){v=0;return v|0}a=d;do{s=a*10|0;u=(s+-117|0)>>>0<13|(s+-130|0)>>>0<13?11:(s>>>0)/13|0;a=(u|0)==0?1:u;u=d-a|0;if(!u)w=0;else{s=0;t=0;while(1){b=s+a|0;e=g+(b<<4)+12|0;j=+f[e>>2];k=g+(s<<4)+12|0;x=+f[k>>2];if(j<x){f[e>>2]=x;f[k>>2]=j;k=g+(s<<4)|0;e=g+(b<<4)|0;h=g+(s<<4)+4|0;m=c[h>>2]|0;p=g+(b<<4)+4|0;c[h>>2]=c[p>>2];c[p>>2]=m;m=g+(s<<4)+8|0;p=c[m>>2]|0;h=g+(b<<4)+8|0;c[m>>2]=c[h>>2];c[h>>2]=p;p=c[k>>2]|0;c[k>>2]=c[e>>2];c[e>>2]=p;y=1}else y=t;s=s+1|0;if(s>>>0>=u>>>0){w=y;break}else t=y}}}while(a>>>0>1|w<<24>>24!=0);v=0;return v|0}function _p(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=d>>>24&255;f=b+4|0;g=c[f>>2]|0;h=g+1|0;i=b+8|0;if((c[i>>2]|0)>>>0<h>>>0){j=h<<1;k=yq(c[b>>2]|0,j)|0;if(k|0){c[i>>2]=j;c[b>>2]=k;l=k;m=5}}else{l=c[b>>2]|0;m=5}if((m|0)==5){c[f>>2]=h;a[l+g>>0]=e}e=d>>>16&255;g=c[f>>2]|0;l=g+1|0;if((c[i>>2]|0)>>>0<l>>>0){h=l<<1;k=yq(c[b>>2]|0,h)|0;if(k|0){c[i>>2]=h;c[b>>2]=k;n=k;m=10}}else{n=c[b>>2]|0;m=10}if((m|0)==10){c[f>>2]=l;a[n+g>>0]=e}e=d>>>8&255;g=c[f>>2]|0;n=g+1|0;if((c[i>>2]|0)>>>0<n>>>0){l=n<<1;k=yq(c[b>>2]|0,l)|0;if(k|0){c[i>>2]=l;c[b>>2]=k;o=k;m=15}}else{o=c[b>>2]|0;m=15}if((m|0)==15){c[f>>2]=n;a[o+g>>0]=e}e=d&255;d=c[f>>2]|0;g=d+1|0;do if((c[i>>2]|0)>>>0<g>>>0){o=g<<1;n=yq(c[b>>2]|0,o)|0;if(!n)return;else{c[i>>2]=o;c[b>>2]=n;p=n;break}}else p=c[b>>2]|0;while(0);c[f>>2]=g;a[p+d>>0]=e;return}function $p(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=Ia;Ia=Ia+16|0;j=i;if(g>>>0<2){k=53;Ia=i;return k|0}l=a[f>>0]|0;m=l&255;n=d[f+1>>0]|0;if(((m<<8|n)>>>0)%31|0|0){k=24;Ia=i;return k|0}if(l<<24>>24<0|(m&15|0)!=8){k=25;Ia=i;return k|0}if(n&32|0){k=26;Ia=i;return k|0}n=c[e>>2]|0;c[j>>2]=c[b>>2];m=j+4|0;c[m>>2]=n;c[j+8>>2]=n;n=Qp(j,f,g,2)|0;l=c[j>>2]|0;c[b>>2]=l;b=c[m>>2]|0;c[e>>2]=b;e=l;if(n|0){k=n;Ia=i;return k|0}if(!(c[h>>2]|0)){h=f+(g+-4)|0;g=(d[h+1>>0]|0)<<16|(d[h>>0]|0)<<24|(d[h+2>>0]|0)<<8|(d[h+3>>0]|0);if(!b){o=1;p=0}else{h=e;e=b;b=1;f=0;while(1){n=e>>>0<5550?e:5550;e=e-n|0;if(!n){q=h;r=b;s=f}else{l=n;m=h;j=b;t=f;while(1){j=j+(d[m>>0]|0)|0;t=j+t|0;l=l+-1|0;if(!l)break;else m=m+1|0}q=h+n|0;r=j;s=t}b=(r>>>0)%65521|0;f=(s>>>0)%65521|0;if(!e)break;else h=q}o=b;p=f<<16}if((p|o|0)!=(g|0)){k=58;Ia=i;return k|0}}k=0;Ia=i;return k|0}function aq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;i=Ia;Ia=Ia+32|0;j=i+12|0;k=i;l=c[b>>2]|0;m=c[e>>2]|0;c[k>>2]=l;n=k+4|0;c[n>>2]=m;o=k+8|0;c[o>>2]=m;p=m+1|0;if((m|0)!=-1){q=p<<1;r=yq(l,q)|0;if(!r){s=m;t=l;u=m;v=p}else{c[o>>2]=q;c[k>>2]=r;w=r;x=q;y=4}}else{w=l;x=-1;y=4}if((y|0)==4){c[n>>2]=p;a[w+m>>0]=120;s=x;t=w;u=p;v=m+2|0}if(s>>>0<v>>>0){s=v<<1;m=yq(t,s)|0;if(m|0){c[o>>2]=s;c[k>>2]=m;z=m;y=8}}else{z=t;y=8}if((y|0)==8){c[n>>2]=v;a[z+u>>0]=1}c[j>>2]=0;u=j+8|0;c[u>>2]=0;z=j+4|0;c[z>>2]=0;v=Vp(j,f,g,h)|0;if(v|0){A=c[k>>2]|0;c[b>>2]=A;B=c[n>>2]|0;c[e>>2]=B;Ia=i;return v|0}if(!g){C=1;D=0}else{h=f;f=g;g=1;t=0;while(1){m=f>>>0<5550?f:5550;f=f-m|0;if(!m){E=h;F=g;G=t}else{s=m;p=h;w=g;x=t;while(1){w=w+(d[p>>0]|0)|0;x=w+x|0;s=s+-1|0;if(!s)break;else p=p+1|0}E=h+m|0;F=w;G=x}g=(F>>>0)%65521|0;t=(G>>>0)%65521|0;if(!f)break;else h=E}C=g;D=t<<16}t=D|C;if(c[z>>2]|0){C=c[k>>2]|0;D=c[n>>2]|0;g=c[o>>2]|0;E=0;while(1){h=a[(c[j>>2]|0)+E>>0]|0;f=D+1|0;if(g>>>0<f>>>0){G=f<<1;F=yq(C,G)|0;if(!F){H=C;I=D;J=g}else{K=F;L=G;y=22}}else{K=C;L=g;y=22}if((y|0)==22){y=0;a[K+D>>0]=h;H=K;I=f;J=L}E=E+1|0;if(E>>>0>=(c[z>>2]|0)>>>0)break;else{C=H;D=I;g=J}}c[n>>2]=I;c[o>>2]=J;c[k>>2]=H}c[u>>2]=0;c[z>>2]=0;zq(c[j>>2]|0);c[j>>2]=0;_p(k,t);A=c[k>>2]|0;c[b>>2]=A;B=c[n>>2]|0;c[e>>2]=B;Ia=i;return v|0}function bq(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;if(!(c[557119]|0)){e=0;do{f=e>>>1;g=(e&1|0)==0?f:f^-306674912;f=g>>>1;h=(g&1|0)==0?f:f^-306674912;f=h>>>1;g=(h&1|0)==0?f:f^-306674912;f=g>>>1;h=(g&1|0)==0?f:f^-306674912;f=h>>>1;g=(h&1|0)==0?f:f^-306674912;f=g>>>1;h=(g&1|0)==0?f:f^-306674912;f=h>>>1;g=(h&1|0)==0?f:f^-306674912;f=g>>>1;c[1726752+(e<<2)>>2]=(g&1|0)==0?f:f^-306674912;e=e+1|0}while((e|0)!=256);c[557119]=1}if(!b){i=0;return i|0}e=-1;f=0;do{e=c[1726752+((e&255^(d[a+f>>0]|0))<<2)>>2]^e>>>8;f=f+1|0}while((f|0)!=(b|0));i=~e;return i|0}function cq(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=c[d>>2]|0;i=e+12|0;j=i+h|0;if(j>>>0<i>>>0|j>>>0<h>>>0){k=77;return k|0}i=yq(c[b>>2]|0,j)|0;if(!i){k=9930;return k|0}c[b>>2]=i;c[d>>2]=j;j=i+h|0;h=e>>>24&255;a[j>>0]=h;i=e>>>16&255;d=j+1|0;a[d>>0]=i;b=e>>>8&255;l=j+2|0;a[l>>0]=b;m=j+3|0;a[m>>0]=e;n=j+4|0;a[n>>0]=a[f>>0]|0;a[j+5>>0]=a[f+1>>0]|0;a[j+6>>0]=a[f+2>>0]|0;a[j+7>>0]=a[f+3>>0]|0;if(!e){o=0;p=h;q=i;r=b}else{b=0;do{a[j+(b+8)>>0]=a[g+b>>0]|0;b=b+1|0}while((b|0)!=(e|0));o=a[m>>0]|0;p=a[j>>0]|0;q=a[d>>0]|0;r=a[l>>0]|0}l=(q&255)<<16|(p&255)<<24|(r&255)<<8|o&255;o=bq(n,l+4|0)|0;n=j+8+l|0;a[n>>0]=o>>>24;a[n+1>>0]=o>>>16;a[n+2>>0]=o>>>8;a[n+3>>0]=o;k=0;return k|0}function dq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=b+4|0;g=yq(c[f>>2]|0,(c[b>>2]<<2)+4|0)|0;h=b+8|0;i=yq(c[h>>2]|0,(c[b>>2]<<2)+4|0)|0;if(!((g|0)!=0&(i|0)!=0)){zq(g);zq(i);j=9933;return j|0}k=c[b>>2]|0;c[b>>2]=k+1;c[f>>2]=g;c[h>>2]=i;i=g+(k<<2)|0;c[i>>2]=0;k=yq(0,1)|0;if(k|0){a[k>>0]=0;c[i>>2]=k}k=(c[f>>2]|0)+((c[b>>2]|0)+-1<<2)|0;f=bu(d)|0;i=yq(c[k>>2]|0,f+1|0)|0;if((i|0?(a[i+f>>0]=0,c[k>>2]=i,f|0):0)?(a[i>>0]=a[d>>0]|0,(f|0)!=1):0){i=1;do{a[(c[k>>2]|0)+i>>0]=a[d+i>>0]|0;i=i+1|0}while((i|0)!=(f|0))}f=(c[h>>2]|0)+((c[b>>2]|0)+-1<<2)|0;c[f>>2]=0;i=yq(0,1)|0;if(i|0){a[i>>0]=0;c[f>>2]=i}i=(c[h>>2]|0)+((c[b>>2]|0)+-1<<2)|0;b=bu(e)|0;h=yq(c[i>>2]|0,b+1|0)|0;if(!h){j=0;return j|0}a[h+b>>0]=0;c[i>>2]=h;if(!b){j=0;return j|0}a[h>>0]=a[e>>0]|0;if((b|0)==1){j=0;return j|0}h=1;do{a[(c[i>>2]|0)+h>>0]=a[e+h>>0]|0;h=h+1|0}while((h|0)!=(b|0));j=0;return j|0}function eq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=a+4|0;d=c[b>>2]|0;e=a+8|0;f=a+12|0;g=a+16|0;if(!(c[a>>2]|0)){h=d;zq(h);i=c[e>>2]|0;zq(i);j=c[f>>2]|0;zq(j);k=c[g>>2]|0;zq(k);return}l=d;d=0;while(1){m=l+(d<<2)|0;zq(c[m>>2]|0);c[m>>2]=0;m=(c[e>>2]|0)+(d<<2)|0;zq(c[m>>2]|0);c[m>>2]=0;m=(c[f>>2]|0)+(d<<2)|0;zq(c[m>>2]|0);c[m>>2]=0;m=(c[g>>2]|0)+(d<<2)|0;zq(c[m>>2]|0);c[m>>2]=0;d=d+1|0;m=c[b>>2]|0;if(d>>>0>=(c[a>>2]|0)>>>0){h=m;break}else l=m}zq(h);i=c[e>>2]|0;zq(i);j=c[f>>2]|0;zq(j);k=c[g>>2]|0;zq(k);return}function fq(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=b+4|0;i=yq(c[h>>2]|0,(c[b>>2]<<2)+4|0)|0;j=b+8|0;k=yq(c[j>>2]|0,(c[b>>2]<<2)+4|0)|0;l=b+12|0;m=yq(c[l>>2]|0,(c[b>>2]<<2)+4|0)|0;n=b+16|0;o=yq(c[n>>2]|0,(c[b>>2]<<2)+4|0)|0;if(!((i|0)!=0&(k|0)!=0&(m|0)!=0&(o|0)!=0)){zq(i);zq(k);zq(m);zq(o);p=9934;return p|0}q=c[b>>2]|0;c[b>>2]=q+1;c[h>>2]=i;c[j>>2]=k;c[l>>2]=m;c[n>>2]=o;o=i+(q<<2)|0;c[o>>2]=0;q=yq(0,1)|0;if(q|0){a[q>>0]=0;c[o>>2]=q}q=(c[h>>2]|0)+((c[b>>2]|0)+-1<<2)|0;h=bu(d)|0;o=yq(c[q>>2]|0,h+1|0)|0;if((o|0?(a[o+h>>0]=0,c[q>>2]=o,h|0):0)?(a[o>>0]=a[d>>0]|0,(h|0)!=1):0){o=1;do{a[(c[q>>2]|0)+o>>0]=a[d+o>>0]|0;o=o+1|0}while((o|0)!=(h|0))}h=(c[j>>2]|0)+((c[b>>2]|0)+-1<<2)|0;c[h>>2]=0;o=yq(0,1)|0;if(o|0){a[o>>0]=0;c[h>>2]=o}o=(c[j>>2]|0)+((c[b>>2]|0)+-1<<2)|0;j=bu(e)|0;h=yq(c[o>>2]|0,j+1|0)|0;if((h|0?(a[h+j>>0]=0,c[o>>2]=h,j|0):0)?(a[h>>0]=a[e>>0]|0,(j|0)!=1):0){h=1;do{a[(c[o>>2]|0)+h>>0]=a[e+h>>0]|0;h=h+1|0}while((h|0)!=(j|0))}j=(c[l>>2]|0)+((c[b>>2]|0)+-1<<2)|0;c[j>>2]=0;h=yq(0,1)|0;if(h|0){a[h>>0]=0;c[j>>2]=h}h=(c[l>>2]|0)+((c[b>>2]|0)+-1<<2)|0;l=bu(f)|0;j=yq(c[h>>2]|0,l+1|0)|0;if((j|0?(a[j+l>>0]=0,c[h>>2]=j,l|0):0)?(a[j>>0]=a[f>>0]|0,(l|0)!=1):0){j=1;do{a[(c[h>>2]|0)+j>>0]=a[f+j>>0]|0;j=j+1|0}while((j|0)!=(l|0))}l=(c[n>>2]|0)+((c[b>>2]|0)+-1<<2)|0;c[l>>2]=0;j=yq(0,1)|0;if(j|0){a[j>>0]=0;c[l>>2]=j}j=(c[n>>2]|0)+((c[b>>2]|0)+-1<<2)|0;b=bu(g)|0;n=yq(c[j>>2]|0,b+1|0)|0;if(!n){p=0;return p|0}a[n+b>>0]=0;c[j>>2]=n;if(!b){p=0;return p|0}a[n>>0]=a[g>>0]|0;if((b|0)==1){p=0;return p|0}n=1;do{a[(c[j>>2]|0)+n>>0]=a[g+n>>0]|0;n=n+1|0}while((n|0)!=(b|0));p=0;return p|0}function gq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=c[a+28>>2]|0;if(b|0)zq(b);c[a+32>>2]=0;b=a+68|0;d=a+72|0;e=c[d>>2]|0;f=a+76|0;if(!(c[b>>2]|0))g=e;else{h=e;e=0;while(1){i=h+(e<<2)|0;zq(c[i>>2]|0);c[i>>2]=0;i=(c[f>>2]|0)+(e<<2)|0;zq(c[i>>2]|0);c[i>>2]=0;e=e+1|0;i=c[d>>2]|0;if(e>>>0>=(c[b>>2]|0)>>>0){g=i;break}else h=i}}zq(g);zq(c[f>>2]|0);eq(a+80|0);zq(c[a+132>>2]|0);zq(c[a+136>>2]|0);zq(c[a+140>>2]|0);return}function hq(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;j=B(i,h)|0;h=c[f>>2]|0;i=c[f+4>>2]|0;switch(h|0){case 3:case 0:{k=1;break}case 2:{k=3;break}case 4:{k=2;break}case 6:{k=4;break}default:k=0}f=(B(k,i)|0)>>>3;k=h>>>2&1;l=c[g>>2]|0;if((l|0)==(h|0)?(c[g+4>>2]|0)==(i|0):0){switch(h|0){case 3:case 0:{m=1;break}case 2:{m=3;break}case 4:{m=2;break}case 6:{m=4;break}default:m=0}n=((B(B(i,j)|0,m)|0)+7|0)>>>3;if(!n){o=0;return o|0}m=0;do{a[b+m>>0]=a[e+m>>0]|0;m=m+1|0}while((m|0)!=(n|0));o=0;return o|0}switch(h|0){case 6:case 2:break;default:{if(!((h|4|0)==4&(i|0)==8)){o=59;return o|0}if((l|4|0)!=4){o=62;return o|0}h=g+4|0;n=c[h>>2]|0;switch(n|0){case 8:{switch(l|0){case 0:{if(!j){o=0;return o|0}m=g+16|0;p=g+20|0;if(!k){q=0;do{a[b+(B(q,f)|0)>>0]=a[e+q>>0]|0;q=q+1|0}while((q|0)!=(j|0));o=0;return o|0}q=0;do{r=B(q,f)|0;s=b+(r+1)|0;a[s>>0]=-1;t=e+q|0;a[b+r>>0]=a[t>>0]|0;if(c[m>>2]|0?(c[p>>2]|0)==(d[t>>0]|0|0):0)a[s>>0]=0;q=q+1|0}while((q|0)!=(j|0));o=0;return o|0}case 4:{if(!j){o=0;return o|0}if(!k){q=0;do{a[b+(B(q,f)|0)>>0]=a[e+(q<<1)>>0]|0;q=q+1|0}while((q|0)!=(j|0));o=0;return o|0}else{q=0;do{p=q<<1;m=B(q,f)|0;a[b+m>>0]=a[e+p>>0]|0;a[b+(m+1)>>0]=a[e+(p|1)>>0]|0;q=q+1|0}while((q|0)!=(j|0));o=0;return o|0}break}default:{o=31;return o|0}}break}case 16:{switch(l|0){case 0:{if(!j){o=0;return o|0}q=g+16|0;p=g+20|0;if(!k){m=0;do{a[b+(B(m,f)|0)>>0]=a[e+(m<<1)>>0]|0;m=m+1|0}while((m|0)!=(j|0));o=0;return o|0}m=0;while(1){s=B(m,f)|0;t=b+(s+1)|0;a[t>>0]=-1;a[b+s>>0]=a[e+(m<<1)>>0]|0;if(c[q>>2]|0){s=m+1|0;if(((d[e+m>>0]|0)<<8|(d[e+s>>0]|0)|0)==(c[p>>2]|0)){a[t>>0]=0;u=s}else u=s}else u=m+1|0;if((u|0)==(j|0)){o=0;break}else m=u}return o|0}case 4:{if(!j){o=0;return o|0}if(!k){u=0;do{a[b+(B(u,f)|0)>>0]=a[e+(u<<2)>>0]|0;u=u+1|0}while((u|0)!=(j|0));o=0;return o|0}else{u=0;do{m=u<<2;p=B(u,f)|0;a[b+p>>0]=a[e+m>>0]|0;a[b+(p+1)>>0]=a[e+(m|2)>>0]|0;u=u+1|0}while((u|0)!=(j|0));o=0;return o|0}break}default:{o=31;return o|0}}break}default:{if(l|0){o=31;return o|0}if(!j){o=0;return o|0}u=g+16|0;m=g+20|0;if(!k){p=n;q=0;s=0;while(1){if(!p){v=q;w=0}else{t=q;r=p+-1|0;x=0;while(1){y=t+1|0;z=(((d[e+(t>>>3)>>0]|0)>>>(t&7^7)&1)<<r)+x|0;r=r+-1|0;if(r>>>0>=p>>>0){v=y;w=z;break}else{t=y;x=z}}}a[b+(B(s,f)|0)>>0]=((w*255|0)>>>0)/(((1<<p)+-1|0)>>>0)|0;x=s+1|0;if((x|0)==(j|0)){o=0;break}p=c[h>>2]|0;q=v;s=x}return o|0}s=n;n=0;v=0;while(1){if(!s){A=n;C=0}else{q=n;p=s+-1|0;w=0;while(1){x=q+1|0;t=(((d[e+(q>>>3)>>0]|0)>>>(q&7^7)&1)<<p)+w|0;p=p+-1|0;if(p>>>0>=s>>>0){A=x;C=t;break}else{q=x;w=t}}}w=B(v,f)|0;q=b+(w+1)|0;a[q>>0]=-1;if((C|0)!=0&(c[u>>2]|0)!=0?(p=(1<<c[h>>2])+-1|0,!((p|0)==0?1:(p|0)!=(c[m>>2]|0))):0)a[q>>0]=0;a[b+w>>0]=((C*255|0)>>>0)/(((1<<c[h>>2])+-1|0)>>>0)|0;w=v+1|0;if((w|0)==(j|0)){o=0;break}s=c[h>>2]|0;n=A;v=w}return o|0}}}}if((i|0)!=8){o=59;return o|0}i=g+4|0;v=c[i>>2]|0;switch(v|0){case 8:{switch(l|0){case 0:{if(!j){o=0;return o|0}A=g+16|0;n=g+20|0;if(!k){h=0;do{s=e+h|0;C=B(h,f)|0;a[b+C>>0]=a[s>>0]|0;a[b+(C+1)>>0]=a[s>>0]|0;a[b+(C+2)>>0]=a[s>>0]|0;h=h+1|0}while((h|0)!=(j|0));o=0;return o|0}h=0;do{s=B(h,f)|0;C=b+(s+3)|0;a[C>>0]=-1;m=e+h|0;a[b+s>>0]=a[m>>0]|0;a[b+(s+1)>>0]=a[m>>0]|0;a[b+(s+2)>>0]=a[m>>0]|0;if(c[A>>2]|0?(c[n>>2]|0)==(d[m>>0]|0|0):0)a[C>>0]=0;h=h+1|0}while((h|0)!=(j|0));o=0;return o|0}case 2:{if(!j){o=0;return o|0}h=(k|0)!=0;n=g+16|0;A=g+20|0;C=g+24|0;m=g+28|0;s=0;do{u=B(s,f)|0;if(h)a[b+(u+3)>>0]=-1;w=s*3|0;q=e+w|0;a[b+u>>0]=a[q>>0]|0;p=e+(w+1)|0;a[b+(u+1)>>0]=a[p>>0]|0;t=e+(w+2)|0;a[b+(u+2)>>0]=a[t>>0]|0;if((((h?(c[n>>2]|0)==1:0)?(c[A>>2]|0)==(d[q>>0]|0|0):0)?(c[C>>2]|0)==(d[p>>0]|0|0):0)?(c[m>>2]|0)==(d[t>>0]|0|0):0)a[b+(u+3)>>0]=0;s=s+1|0}while((s|0)!=(j|0));o=0;return o|0}case 3:{if(!j){o=0;return o|0}s=g+12|0;m=(f|0)!=0;C=g+8|0;A=(f|0)==1;if(!k){n=0;while(1){h=e+n|0;u=a[h>>0]|0;if((c[s>>2]|0)>>>0<=(u&255)>>>0){o=46;D=179;break}if(m?(t=B(n,f)|0,a[b+t>>0]=a[(c[C>>2]|0)+((u&255)<<2)>>0]|0,!A):0){u=1;do{a[b+(u+t)>>0]=a[(c[C>>2]|0)+(((d[h>>0]|0)<<2)+u)>>0]|0;u=u+1|0}while((u|0)!=(f|0))}n=n+1|0;if(n>>>0>=j>>>0){o=0;D=179;break}}if((D|0)==179)return o|0}else{n=0;while(1){u=B(n,f)|0;a[b+(u+3)>>0]=-1;h=e+n|0;t=a[h>>0]|0;if((c[s>>2]|0)>>>0<=(t&255)>>>0){o=46;D=179;break}if(m?(a[b+u>>0]=a[(c[C>>2]|0)+((t&255)<<2)>>0]|0,!A):0){t=1;do{a[b+(t+u)>>0]=a[(c[C>>2]|0)+(((d[h>>0]|0)<<2)+t)>>0]|0;t=t+1|0}while((t|0)!=(f|0))}n=n+1|0;if(n>>>0>=j>>>0){o=0;D=179;break}}if((D|0)==179)return o|0}break}case 4:{if(!j){o=0;return o|0}if(!k){n=0;do{C=e+(n<<1)|0;A=B(n,f)|0;a[b+A>>0]=a[C>>0]|0;a[b+(A+1)>>0]=a[C>>0]|0;a[b+(A+2)>>0]=a[C>>0]|0;n=n+1|0}while((n|0)!=(j|0));o=0;return o|0}else{n=0;do{C=n<<1;A=e+C|0;m=B(n,f)|0;a[b+m>>0]=a[A>>0]|0;a[b+(m+1)>>0]=a[A>>0]|0;a[b+(m+2)>>0]=a[A>>0]|0;a[b+(m+3)>>0]=a[e+(C|1)>>0]|0;n=n+1|0}while((n|0)!=(j|0));o=0;return o|0}break}case 6:{if((j|0)==0|(f|0)==0){o=0;return o|0}n=0;do{C=n<<2;m=B(n,f)|0;A=0;do{a[b+(A+m)>>0]=a[e+(A+C)>>0]|0;A=A+1|0}while((A|0)!=(f|0));n=n+1|0}while((n|0)!=(j|0));o=0;return o|0}default:{o=0;return o|0}}break}case 16:{switch(l|0){case 0:{if(!j){o=0;return o|0}n=g+16|0;A=g+20|0;if(!k){C=0;do{m=e+(C<<1)|0;s=B(C,f)|0;a[b+s>>0]=a[m>>0]|0;a[b+(s+1)>>0]=a[m>>0]|0;a[b+(s+2)>>0]=a[m>>0]|0;C=C+1|0}while((C|0)!=(j|0));o=0;return o|0}C=0;while(1){m=B(C,f)|0;s=b+(m+3)|0;a[s>>0]=-1;t=e+(C<<1)|0;a[b+m>>0]=a[t>>0]|0;a[b+(m+1)>>0]=a[t>>0]|0;a[b+(m+2)>>0]=a[t>>0]|0;if(c[n>>2]|0){t=C+1|0;if(((d[e+C>>0]|0)<<8|(d[e+t>>0]|0)|0)==(c[A>>2]|0)){a[s>>0]=0;E=t}else E=t}else E=C+1|0;if((E|0)==(j|0)){o=0;break}else C=E}return o|0}case 2:{if(!j){o=0;return o|0}E=(k|0)!=0;C=g+16|0;A=g+20|0;n=g+24|0;t=g+28|0;s=0;do{m=B(s,f)|0;if(E)a[b+(m+3)>>0]=-1;h=s*6|0;u=e+h|0;a[b+m>>0]=a[u>>0]|0;p=e+(h+2)|0;a[b+(m+1)>>0]=a[p>>0]|0;q=e+(h+4)|0;a[b+(m+2)>>0]=a[q>>0]|0;if((((E?c[C>>2]|0:0)?((d[u>>0]|0)<<8|(d[e+(h|1)>>0]|0)|0)==(c[A>>2]|0):0)?((d[p>>0]|0)<<8|(d[e+(h+3)>>0]|0)|0)==(c[n>>2]|0):0)?((d[q>>0]|0)<<8|(d[e+(h+5)>>0]|0)|0)==(c[t>>2]|0):0)a[b+(m+3)>>0]=0;s=s+1|0}while((s|0)!=(j|0));o=0;return o|0}case 4:{if(!j){o=0;return o|0}if(!k){s=0;do{t=e+(s<<2)|0;n=B(s,f)|0;a[b+n>>0]=a[t>>0]|0;a[b+(n+1)>>0]=a[t>>0]|0;a[b+(n+2)>>0]=a[t>>0]|0;s=s+1|0}while((s|0)!=(j|0));o=0;return o|0}else{s=0;do{t=s<<2;n=e+t|0;A=B(s,f)|0;a[b+A>>0]=a[n>>0]|0;a[b+(A+1)>>0]=a[n>>0]|0;a[b+(A+2)>>0]=a[n>>0]|0;a[b+(A+3)>>0]=a[e+(t|2)>>0]|0;s=s+1|0}while((s|0)!=(j|0));o=0;return o|0}break}case 6:{if((j|0)==0|(f|0)==0){o=0;return o|0}s=0;do{t=s<<3;A=B(s,f)|0;n=0;do{a[b+(n+A)>>0]=a[e+((n<<1)+t)>>0]|0;n=n+1|0}while((n|0)!=(f|0));s=s+1|0}while((s|0)!=(j|0));o=0;return o|0}default:{o=0;return o|0}}break}default:switch(l|0){case 0:{if(!j){o=0;return o|0}l=(k|0)==0;s=g+16|0;n=g+20|0;t=v;A=0;C=0;while(1){if(!t){F=A;G=0}else{E=A;m=t+-1|0;h=0;while(1){q=E+1|0;p=(((d[e+(E>>>3)>>0]|0)>>>(E&7^7)&1)<<m)+h|0;m=m+-1|0;if(m>>>0>=t>>>0){F=q;G=p;break}else{E=q;h=p}}}h=B(C,f)|0;if((!l?(E=b+(h+3)|0,a[E>>0]=-1,(G|0)!=0&(c[s>>2]|0)!=0):0)?(m=(1<<c[i>>2])+-1|0,!((m|0)==0?1:(m|0)!=(c[n>>2]|0))):0)a[E>>0]=0;E=(((G*255|0)>>>0)/(((1<<c[i>>2])+-1|0)>>>0)|0)&255;a[b+h>>0]=E;a[b+(h+1)>>0]=E;a[b+(h+2)>>0]=E;E=C+1|0;if((E|0)==(j|0)){o=0;break}t=c[i>>2]|0;A=F;C=E}return o|0}case 3:{if(!j){o=0;return o|0}C=(k|0)==0;k=g+12|0;F=(f|0)==0;A=g+8|0;g=v;v=0;t=0;while(1){if(!g){H=v;I=0}else{G=v;n=g+-1|0;s=0;while(1){l=G+1|0;E=(((d[e+(G>>>3)>>0]|0)>>>(G&7^7)&1)<<n)+s|0;n=n+-1|0;if(n>>>0>=g>>>0){H=l;I=E;break}else{G=l;s=E}}}if(!C)a[b+((B(t,f)|0)+3)>>0]=-1;if(I>>>0>=(c[k>>2]|0)>>>0){o=47;D=179;break}if(!F){s=I<<2;G=B(t,f)|0;n=0;do{a[b+(n+G)>>0]=a[(c[A>>2]|0)+(n+s)>>0]|0;n=n+1|0}while((n|0)!=(f|0))}n=t+1|0;if(n>>>0>=j>>>0){o=0;D=179;break}g=c[i>>2]|0;v=H;t=n}if((D|0)==179)return o|0;break}default:{o=0;return o|0}}}return 0}function iq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;if((e|0)==0|(f|0)==0){c[b+208>>2]=48;return}if(f>>>0<29){c[b+208>>2]=27;return}f=b+52|0;gq(f);g=b+56|0;c[g>>2]=0;c[f>>2]=0;h=b+88|0;i=b+72|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[i>>2]=6;h=b+76|0;c[h>>2]=8;c[b+80>>2]=0;c[b+84>>2]=0;j=b+68|0;c[j>>2]=0;k=b+60|0;c[k>>2]=0;l=b+64|0;c[l>>2]=0;m=b+104|0;c[b+168>>2]=0;n=b+184|0;o=m;p=o+48|0;do{c[o>>2]=0;o=o+4|0}while((o|0)<(p|0));a[m+48>>0]=0;m=b+208|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;if((((((((a[e>>0]|0)==-119?(a[e+1>>0]|0)==80:0)?(a[e+2>>0]|0)==78:0)?(a[e+3>>0]|0)==71:0)?(a[e+4>>0]|0)==13:0)?(a[e+5>>0]|0)==10:0)?(a[e+6>>0]|0)==26:0)?(a[e+7>>0]|0)==10:0){n=e+12|0;if((((a[n>>0]|0)==73?(a[e+13>>0]|0)==72:0)?(a[e+14>>0]|0)==68:0)?(a[e+15>>0]|0)==82:0){c[f>>2]=d[e+17>>0]<<16|d[e+16>>0]<<24|d[e+18>>0]<<8|d[e+19>>0];c[g>>2]=d[e+21>>0]<<16|d[e+20>>0]<<24|d[e+22>>0]<<8|d[e+23>>0];c[h>>2]=d[e+24>>0];c[i>>2]=d[e+25>>0];g=d[e+26>>0]|0;c[k>>2]=g;c[l>>2]=d[e+27>>0];c[j>>2]=d[e+28>>0];do if(!(c[b+4>>2]|0)){f=d[e+30>>0]<<16|d[e+29>>0]<<24|d[e+31>>0]<<8|d[e+32>>0];if((f|0)==(bq(n,17)|0)){q=c[k>>2]|0;break}c[m>>2]=57;return}else q=g;while(0);if(q|0){c[m>>2]=32;return}if(c[l>>2]|0){c[m>>2]=33;return}if((c[j>>2]|0)>>>0>1){c[m>>2]=34;return}j=c[h>>2]|0;switch(c[i>>2]|0){case 0:{switch(j|0){case 1:case 2:case 4:case 8:case 16:{r=35;break}default:s=37}break}case 2:{switch(j|0){case 8:case 16:{r=35;break}default:s=37}break}case 3:{switch(j|0){case 1:case 2:case 4:case 8:{r=35;break}default:s=37}break}case 4:{switch(j|0){case 8:case 16:{r=35;break}default:s=37}break}case 6:{switch(j|0){case 8:case 16:{r=35;break}default:s=37}break}default:s=31}if((r|0)==35)s=0;c[m>>2]=s;return}c[m>>2]=29;return}c[m>>2]=28;return}function jq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0;i=Ia;Ia=Ia+336|0;j=i+288|0;k=i+256|0;l=i+224|0;m=i+192|0;n=i+160|0;o=i+128|0;p=i+96|0;q=i+64|0;r=i+32|0;s=i;t=i+316|0;c[e>>2]=0;c[f>>2]=0;iq(b,g,h);u=b+208|0;if(c[u>>2]|0){Ia=i;return}v=g;w=b+4|0;x=b+80|0;y=b+84|0;z=b+72|0;A=b+88|0;C=b+100|0;D=b+96|0;E=b+92|0;F=b+12|0;G=b+104|0;H=b+116|0;I=b+112|0;J=b+108|0;K=j+8|0;L=j+4|0;M=b+16|0;N=j+8|0;O=j+4|0;P=b+152|0;Q=b+156|0;R=b+160|0;S=b+161|0;T=b+162|0;U=b+163|0;V=b+164|0;W=b+168|0;X=b+172|0;Y=b+176|0;Z=b+180|0;_=b+120|0;$=b+132|0;a:do if(h>>>0<45){aa=0;ba=4}else{ca=45;da=g+33|0;ea=1;fa=0;ga=0;ha=0;ia=0;b:while(1){ja=da+1|0;ka=da+2|0;la=da+3|0;ma=d[ja>>0]<<16|d[da>>0]<<24|d[ka>>0]<<8|d[la>>0];if((ma|0)<0){ba=6;break}if((ma+ca|0)>>>0>h>>>0){ba=9;break}if((da+ma+12|0)>>>0<g>>>0){ba=9;break}na=da+8|0;oa=da+4|0;pa=a[oa>>0]|0;c:do switch(pa<<24>>24){case 73:{switch(a[da+5>>0]|0){case 68:break;case 69:{if((a[da+6>>0]|0)!=78){ba=187;break b}if((a[da+7>>0]|0)==68){qa=1;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c}else{ba=187;break b}break}default:{ba=187;break b}}if((a[da+6>>0]|0)!=65){ba=187;break b}if((a[da+7>>0]|0)!=84){ba=187;break b}wa=ma+ha|0;if(ga>>>0<wa>>>0){xa=wa<<1;ya=yq(fa,xa)|0;if(!ya){ba=19;break b}else{za=ya;Aa=xa}}else{za=fa;Aa=ga}if(!ma){qa=0;ra=3;sa=za;ta=Aa;ua=wa;va=ia}else{xa=0;do{a[za+(xa+ha)>>0]=a[na+xa>>0]|0;xa=xa+1|0}while((xa|0)!=(ma|0));qa=0;ra=3;sa=za;ta=Aa;ua=wa;va=ia}break}case 80:{if((a[da+5>>0]|0)!=76){ba=187;break b}if((a[da+6>>0]|0)!=84){ba=187;break b}if((a[da+7>>0]|0)!=69){ba=187;break b}wa=c[x>>2]|0;if(wa|0)zq(wa);wa=(ma>>>0)/3|0;c[y>>2]=wa;xa=xq(wa<<2)|0;c[x>>2]=xa;wa=c[y>>2]|0;if(!xa)if(!wa){qa=0;ra=2;sa=fa;ta=ga;ua=ha;va=ia;break c}else{ba=29;break b}if(wa>>>0>256){ba=31;break b}if(!wa){qa=0;ra=2;sa=fa;ta=ga;ua=ha;va=ia}else{wa=xa;xa=0;ya=0;while(1){Ba=xa<<2;a[wa+Ba>>0]=a[na+ya>>0]|0;a[(c[x>>2]|0)+(Ba|1)>>0]=a[na+(ya+1)>>0]|0;a[(c[x>>2]|0)+(Ba|2)>>0]=a[na+(ya+2)>>0]|0;a[(c[x>>2]|0)+(Ba|3)>>0]=-1;Ba=xa+1|0;if(Ba>>>0>=(c[y>>2]|0)>>>0){qa=0;ra=2;sa=fa;ta=ga;ua=ha;va=ia;break c}wa=c[x>>2]|0;xa=Ba;ya=ya+3|0}}break}case 116:{switch(a[da+5>>0]|0){case 82:{if((a[da+6>>0]|0)!=78){ba=188;break c}if((a[da+7>>0]|0)!=83){ba=188;break c}switch(c[z>>2]|0){case 3:{if(ma>>>0>(c[y>>2]|0)>>>0){ba=41;break b}if(!ma){qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c}ya=0;do{a[(c[x>>2]|0)+(ya<<2|3)>>0]=a[na+ya>>0]|0;ya=ya+1|0}while((ya|0)!=(ma|0));qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break}case 0:{if((ma|0)!=2){ba=46;break b}c[A>>2]=1;ya=d[na>>0]<<8|d[da+9>>0];c[C>>2]=ya;c[D>>2]=ya;c[E>>2]=ya;qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c;break}case 2:{if((ma|0)!=6){ba=49;break b}c[A>>2]=1;c[E>>2]=d[na>>0]<<8|d[da+9>>0];c[D>>2]=d[da+10>>0]<<8|d[da+11>>0];c[C>>2]=d[da+12>>0]<<8|d[da+13>>0];qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c;break}default:{ba=51;break b}}break}case 69:{if((a[da+6>>0]|0)!=88){ba=188;break c}if((a[da+7>>0]|0)!=116){ba=188;break c}if(!(c[F>>2]|0)){qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c}if(!(c[u>>2]|0)){d:do if(!ma){Ca=0;ba=72}else{ya=0;while(1){xa=ya+1|0;if(!(a[na+ya>>0]|0)){Da=xa;Ea=ya;break d}if(xa>>>0<ma>>>0)ya=xa;else{Ca=xa;ba=72;break}}}while(0);if((ba|0)==72){ba=0;Da=Ca+1|0;Ea=Ca}do if(ma>>>0>Da>>>0){ya=xq(Da)|0;if(ya){a[ya+Ea>>0]=0;if(Ea|0){xa=0;do{a[ya+xa>>0]=a[na+xa>>0]|0;xa=xa+1|0}while((xa|0)!=(Ea|0))}if(ma>>>0<Da>>>0){Fa=75;Ga=ya;Ha=0}else{xa=ma-Da|0;wa=xq(xa+1|0)|0;if(!wa){Fa=9939;Ga=ya;Ha=0;break}a[wa+xa>>0]=0;if(xa|0){Ba=0;do{a[wa+Ba>>0]=a[na+(Ba+Da)>>0]|0;Ba=Ba+1|0}while((Ba|0)!=(xa|0))}Fa=dq(_,ya,wa)|0;Ga=ya;Ha=wa}}else{Fa=9938;Ga=0;Ha=0}}else{Fa=75;Ga=0;Ha=0}while(0);c[u>>2]=Fa;Ja=Ga;Ka=Ha}else{Ja=0;Ka=0}zq(Ja);zq(Ka);qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c;break}case 73:{if((a[da+6>>0]|0)!=77){ba=188;break c}if((a[da+7>>0]|0)!=69){ba=188;break c}if((ma|0)!=7){ba=178;break b}a[P>>0]=1;c[Q>>2]=d[na>>0]<<8|d[da+9>>0];a[R>>0]=a[da+10>>0]|0;a[S>>0]=a[da+11>>0]|0;a[T>>0]=a[da+12>>0]|0;a[U>>0]=a[da+13>>0]|0;a[V>>0]=a[da+14>>0]|0;qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c;break}default:{ba=188;break c}}break}case 98:{if(((a[da+5>>0]|0)==75?(a[da+6>>0]|0)==71:0)?(a[da+7>>0]|0)==68:0)switch(c[z>>2]|0){case 3:{if((ma|0)!=1){ba=57;break b}c[G>>2]=1;xa=d[na>>0]|0;c[H>>2]=xa;c[I>>2]=xa;c[J>>2]=xa;qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c;break}case 4:case 0:{if((ma|0)!=2){ba=60;break b}c[G>>2]=1;xa=d[na>>0]<<8|d[da+9>>0];c[H>>2]=xa;c[I>>2]=xa;c[J>>2]=xa;qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c;break}case 6:case 2:{if((ma|0)!=6){ba=63;break b}c[G>>2]=1;c[J>>2]=d[na>>0]<<8|d[da+9>>0];c[I>>2]=d[da+10>>0]<<8|d[da+11>>0];c[H>>2]=d[da+12>>0]<<8|d[da+13>>0];qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c;break}default:{qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia;break c}}else ba=188;break}case 122:{if(((a[da+5>>0]|0)==84?(a[da+6>>0]|0)==88:0)?(a[da+7>>0]|0)==116:0)if(c[F>>2]|0){c[j>>2]=0;c[K>>2]=0;c[L>>2]=0;do if(!(c[u>>2]|0)){e:do if(!ma)La=0;else{xa=0;while(1){if(!(a[na+xa>>0]|0)){La=xa;break e}Ba=xa+1|0;if(Ba>>>0<ma>>>0)xa=Ba;else{La=Ba;break}}}while(0);wa=La+2|0;if(ma>>>0<=wa>>>0){c[u>>2]=75;Ma=0;Na=0;break}ya=La+1|0;xa=xq(ya)|0;if(!xa){c[u>>2]=9940;Ma=0;Na=0;break}a[xa+La>>0]=0;if(La|0){Ba=0;do{a[xa+Ba>>0]=a[na+Ba>>0]|0;Ba=Ba+1|0}while((Ba|0)!=(La|0))}if(a[na+ya>>0]|0){c[u>>2]=72;Ma=0;Na=xa;break}if(ma>>>0<wa>>>0){c[u>>2]=75;Ma=0;Na=xa;break}Ba=$p(j,L,na+wa|0,ma-wa|0,b)|0;c[u>>2]=Ba;if(Ba|0){Ma=c[j>>2]|0;Na=xa;break}Ba=c[L>>2]|0;Oa=Ba+1|0;do if((c[K>>2]|0)>>>0<Oa>>>0){Pa=Oa<<1;Qa=c[j>>2]|0;Ra=yq(Qa,Pa)|0;if(!Ra){Sa=Qa;break}c[K>>2]=Pa;c[j>>2]=Ra;Ta=Ra;ba=113}else{Ta=c[j>>2]|0;ba=113}while(0);if((ba|0)==113){ba=0;c[L>>2]=Oa;a[Ta+Ba>>0]=0;Sa=Ta}c[u>>2]=dq(_,xa,Sa)|0;Ma=Sa;Na=xa}else{Ma=0;Na=0}while(0);zq(Na);zq(Ma);if(c[u>>2]|0){Ua=fa;break a}else{qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia}}else{qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia}else ba=188;break}case 105:{if(((a[da+5>>0]|0)==84?(a[da+6>>0]|0)==88:0)?(a[da+7>>0]|0)==116:0)if(c[F>>2]|0){c[j>>2]=0;c[N>>2]=0;c[O>>2]=0;f:do if(!(c[u>>2]|0)){if(ma>>>0<5){c[u>>2]=76;Va=0;Wa=0;Xa=0;Ya=0;break}wa=0;while(1){if(!(a[na+wa>>0]|0)){Za=wa;break}ya=wa+1|0;if(ya>>>0<ma>>>0)wa=ya;else{Za=ya;break}}wa=Za+2|0;if(wa>>>0>=ma>>>0){c[u>>2]=75;Va=0;Wa=0;Xa=0;Ya=0;break}xa=Za+1|0;Ba=xq(xa)|0;if(!Ba){c[u>>2]=9941;Va=0;Wa=0;Xa=0;Ya=0;break}a[Ba+Za>>0]=0;if(Za|0){Oa=0;do{a[Ba+Oa>>0]=a[na+Oa>>0]|0;Oa=Oa+1|0}while((Oa|0)!=(Za|0))}Oa=a[na+xa>>0]|0;if(a[na+wa>>0]|0){c[u>>2]=72;Va=0;Wa=Ba;Xa=0;Ya=0;break}ya=Za+3|0;g:do if(ya>>>0<ma>>>0){Ra=ya;Pa=0;while(1){if(!(a[na+Ra>>0]|0)){_a=Pa;break g}Qa=Pa+1|0;Ra=Ra+1|0;if(Ra>>>0>=ma>>>0){_a=Qa;break}else Pa=Qa}}else _a=0;while(0);wa=_a+1|0;xa=wa+ya|0;if(xa>>>0>=ma>>>0){c[u>>2]=75;Va=0;Wa=Ba;Xa=0;Ya=0;break}Pa=xq(wa)|0;if(!Pa){c[u>>2]=9942;Va=0;Wa=Ba;Xa=0;Ya=0;break}a[Pa+_a>>0]=0;if(_a|0){wa=0;do{a[Pa+wa>>0]=a[na+(wa+ya)>>0]|0;wa=wa+1|0}while((wa|0)!=(_a|0))}wa=xa;ya=0;while(1){if(!(a[na+wa>>0]|0)){$a=ya;break}Ra=ya+1|0;wa=wa+1|0;if(wa>>>0>=ma>>>0){$a=Ra;break}else ya=Ra}ya=$a+1|0;wa=ya+xa|0;if(ma>>>0<=wa>>>0){c[u>>2]=75;Va=0;Wa=Ba;Xa=Pa;Ya=0;break}Ra=xq(ya)|0;if(!Ra){c[u>>2]=9943;Va=0;Wa=Ba;Xa=Pa;Ya=0;break}a[Ra+$a>>0]=0;if($a|0){ya=0;do{a[Ra+ya>>0]=a[na+(ya+xa)>>0]|0;ya=ya+1|0}while((ya|0)!=($a|0))}if(ma>>>0<wa>>>0){c[u>>2]=75;Va=0;Wa=Ba;Xa=Pa;Ya=Ra;break}ya=ma-wa|0;h:do if(!(Oa<<24>>24)){xa=ya+1|0;do if(xa){Qa=xa<<1;ab=yq(0,Qa)|0;if(ab){c[N>>2]=Qa;c[j>>2]=ab;c[O>>2]=xa;a[ab+ya>>0]=0;if(!ya){bb=ab;break h}else{cb=ab;break}}else{c[u>>2]=9944;Va=0;Wa=Ba;Xa=Pa;Ya=Ra;break f}}else{c[O>>2]=0;a[0+ya>>0]=0;cb=0}while(0);xa=0;do{a[cb+xa>>0]=a[na+(xa+wa)>>0]|0;xa=xa+1|0}while((xa|0)!=(ya|0));bb=cb}else{xa=$p(j,O,na+wa|0,ya,b)|0;c[u>>2]=xa;if(xa|0){Va=c[j>>2]|0;Wa=Ba;Xa=Pa;Ya=Ra;break f}xa=c[O>>2]|0;ab=xa+1|0;if((c[N>>2]|0)>>>0<ab>>>0){Qa=ab<<1;db=c[j>>2]|0;eb=yq(db,Qa)|0;if(!eb){bb=db;break}c[N>>2]=Qa;c[j>>2]=eb;fb=eb}else fb=c[j>>2]|0;c[O>>2]=ab;a[fb+xa>>0]=0;bb=fb}while(0);c[u>>2]=fq($,Ba,Pa,Ra,bb)|0;Va=bb;Wa=Ba;Xa=Pa;Ya=Ra}else{Va=0;Wa=0;Xa=0;Ya=0}while(0);zq(Wa);zq(Xa);zq(Ya);zq(Va);if(c[u>>2]|0){Ua=fa;break a}else{qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia}}else{qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia}else ba=188;break}case 112:{if(((a[da+5>>0]|0)==72?(a[da+6>>0]|0)==89:0)?(a[da+7>>0]|0)==115:0){if((ma|0)!=9){ba=184;break b}c[W>>2]=1;c[X>>2]=d[da+9>>0]<<16|d[na>>0]<<24|d[da+10>>0]<<8|d[da+11>>0];c[Y>>2]=d[da+13>>0]<<16|d[da+12>>0]<<24|d[da+14>>0]<<8|d[da+15>>0];a[Z>>0]=a[da+16>>0]|0;qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=ia}else ba=188;break}default:if(!(pa&32)){ba=187;break b}else ba=188}while(0);if((ba|0)==188){ba=0;if(!(c[M>>2]|0)){qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=1}else{pa=ea+-1|0;na=b+184+(pa<<2)|0;ya=b+196+(pa<<2)|0;pa=ma+12|0;wa=c[ya>>2]|0;Oa=wa+pa|0;if(Oa>>>0<pa>>>0|Oa>>>0<wa>>>0){gb=77;ba=193;break}xa=yq(c[na>>2]|0,Oa)|0;if(!xa){gb=9929;ba=193;break}c[na>>2]=xa;c[ya>>2]=Oa;Oa=xa+wa|0;wa=0;do{a[Oa+wa>>0]=a[da+wa>>0]|0;wa=wa+1|0}while((wa|0)!=(pa|0));c[u>>2]=0;qa=0;ra=ea;sa=fa;ta=ga;ua=ha;va=1}}if((c[w>>2]|va|0)==0?(pa=d[ja>>0]<<16|d[da>>0]<<24|d[ka>>0]<<8|d[la>>0],wa=da+(pa+8)|0,Oa=d[wa+1>>0]<<16|d[wa>>0]<<24|d[wa+2>>0]<<8|d[wa+3>>0],(Oa|0)!=(bq(oa,pa+4|0)|0)):0){ba=197;break}if(qa<<24>>24){ba=200;break}da=da+((d[ja>>0]<<16|d[da>>0]<<24|d[ka>>0]<<8|d[la>>0])+12)|0;ca=da-v+12|0;if(da>>>0<g>>>0|ca>>>0>h>>>0){aa=sa;ba=4;break a}else{ea=ra;fa=sa;ga=ta;ha=ua;ia=va}}switch(ba|0){case 6:{c[u>>2]=63;Ua=fa;break a;break}case 9:{c[u>>2]=35;Ua=fa;break a;break}case 19:{c[u>>2]=9936;Ua=fa;break a;break}case 29:{c[y>>2]=0;c[u>>2]=9937;Ua=fa;break a;break}case 31:{c[u>>2]=38;Ua=fa;break a;break}case 41:{c[u>>2]=39;Ua=fa;break a;break}case 46:{c[u>>2]=40;Ua=fa;break a;break}case 49:{c[u>>2]=41;Ua=fa;break a;break}case 51:{c[u>>2]=42;Ua=fa;break a;break}case 57:{c[u>>2]=43;Ua=fa;break a;break}case 60:{c[u>>2]=44;Ua=fa;break a;break}case 63:{c[u>>2]=45;Ua=fa;break a;break}case 178:{c[u>>2]=73;Ua=fa;break a;break}case 184:{c[u>>2]=74;Ua=fa;break a;break}case 187:{c[u>>2]=69;Ua=fa;break a;break}case 193:{c[u>>2]=gb;Ua=fa;break a;break}case 197:{c[u>>2]=57;Ua=sa;break a;break}case 200:{if(c[u>>2]|0){Ua=sa;break a}c[t>>2]=0;ia=t+8|0;c[ia>>2]=0;ha=t+4|0;c[ha>>2]=0;ga=b+52|0;ea=c[ga>>2]|0;ca=b+56|0;da=c[ca>>2]|0;pa=b+76|0;Oa=c[pa>>2]|0;switch(c[z>>2]|0){case 3:case 0:{hb=1;break}case 2:{hb=3;break}case 4:{hb=2;break}case 6:{hb=4;break}default:hb=0}wa=((B((B(B(Oa,da)|0,hb)|0)+7|0,ea)|0)>>>3)+da|0;do if(wa){da=wa<<1;ea=yq(0,da)|0;if(ea){c[ia>>2]=da;c[t>>2]=ea;ea=c[u>>2]|0;c[ha>>2]=wa;if(!ea){ba=211;break}else break}else{c[u>>2]=9945;break}}else{c[ha>>2]=0;ba=211}while(0);if((ba|0)==211?(wa=$p(t,ha,sa,ua,b)|0,c[u>>2]=wa,(wa|0)==0):0){wa=c[ca>>2]|0;fa=c[ga>>2]|0;ea=c[z>>2]|0;da=c[pa>>2]|0;switch(ea|0){case 3:case 0:{ib=1;break}case 2:{ib=3;break}case 4:{ib=2;break}case 6:{ib=4;break}default:ib=0}Oa=((B(B(B(fa,wa)|0,da)|0,ib)|0)+7|0)>>>3;if(Oa){wa=yq(0,Oa<<1)|0;if(wa){Wv(wa|0,0,Oa|0)|0;fa=wa;if(!(c[u>>2]|0)){jb=c[z>>2]|0;kb=c[pa>>2]|0;lb=fa;ba=221}else{mb=fa;nb=Oa}}else{ob=0;pb=0;qb=9946;ba=286}}else{jb=ea;kb=da;lb=0;ba=221}i:do if((ba|0)==221){da=lb;ea=c[t>>2]|0;switch(jb|0){case 3:case 0:{rb=1;break}case 2:{rb=3;break}case 4:{rb=2;break}case 6:{rb=4;break}default:rb=0}fa=B(rb,kb)|0;wa=c[ga>>2]|0;ma=c[ca>>2]|0;if(!fa){ob=lb;pb=Oa;qb=31;ba=286}else{do if(!(c[b+68>>2]|0)){if(fa>>>0>=8){sb=kq(da,ea,wa,ma,fa)|0;break}xa=B(wa,fa)|0;ya=xa+7&-8;if((xa|0)==(ya|0)){sb=kq(da,ea,wa,ma,fa)|0;break}na=kq(ea,ea,wa,ma,fa)|0;if(na|0){ob=lb;pb=Oa;qb=na;ba=286;break i}if((ma|0)==0|(xa|0)==0)sb=0;else{na=0;ab=0;eb=0;while(1){Qa=na;db=ab;tb=0;while(1){ub=1<<(db&7^7);if(!(1<<(Qa&7^7)&d[ea+(Qa>>>3)>>0])){vb=da+(db>>>3)|0;wb=(ub^255)&d[vb>>0];xb=vb}else{vb=da+(db>>>3)|0;wb=ub|d[vb>>0];xb=vb}a[xb>>0]=wb;tb=tb+1|0;if((tb|0)==(xa|0))break;else{Qa=Qa+1|0;db=db+1|0}}eb=eb+1|0;if((eb|0)==(ma|0)){sb=0;break}else{na=na+ya|0;ab=ab+xa|0}}}}else{lq(o,p,q,r,s,wa,ma,fa);j:do if(fa>>>0>=8){xa=kq(ea+(c[r>>2]|0)|0,ea+(c[q>>2]|0)|0,c[o>>2]|0,c[p>>2]|0,fa)|0;if(!xa){ab=kq(ea+(c[r+4>>2]|0)|0,ea+(c[q+4>>2]|0)|0,c[o+4>>2]|0,c[p+4>>2]|0,fa)|0;if(!ab){ya=kq(ea+(c[r+8>>2]|0)|0,ea+(c[q+8>>2]|0)|0,c[o+8>>2]|0,c[p+8>>2]|0,fa)|0;if(!ya){na=kq(ea+(c[r+12>>2]|0)|0,ea+(c[q+12>>2]|0)|0,c[o+12>>2]|0,c[p+12>>2]|0,fa)|0;if(!na){eb=kq(ea+(c[r+16>>2]|0)|0,ea+(c[q+16>>2]|0)|0,c[o+16>>2]|0,c[p+16>>2]|0,fa)|0;if(!eb){db=kq(ea+(c[r+20>>2]|0)|0,ea+(c[q+20>>2]|0)|0,c[o+20>>2]|0,c[p+20>>2]|0,fa)|0;if(db|0){yb=0;zb=db;Ab=db;break}db=kq(ea+(c[r+24>>2]|0)|0,ea+(c[q+24>>2]|0)|0,c[o+24>>2]|0,c[p+24>>2]|0,fa)|0;if(!db)ba=255;else{yb=0;zb=db;Ab=db}}else{yb=0;zb=eb;Ab=eb}}else{yb=0;zb=na;Ab=na}}else{yb=0;zb=ya;Ab=ya}}else{yb=0;zb=ab;Ab=ab}}else{yb=0;zb=xa;Ab=xa}}else{xa=0;while(1){ab=ea+(c[r+(xa<<2)>>2]|0)|0;ya=c[o+(xa<<2)>>2]|0;na=c[p+(xa<<2)>>2]|0;eb=kq(ab,ea+(c[q+(xa<<2)>>2]|0)|0,ya,na,fa)|0;if(eb|0){yb=0;zb=eb;Ab=eb;break j}eb=ea+(c[s+(xa<<2)>>2]|0)|0;db=B(ya,fa)|0;ya=db+7&-8;if(!((na|0)==0|(db|0)==0)){Qa=0;tb=0;Ra=0;while(1){Pa=Qa;Ba=tb;vb=0;while(1){ub=1<<(Ba&7^7);if(!(1<<(Pa&7^7)&d[ab+(Pa>>>3)>>0])){Bb=eb+(Ba>>>3)|0;Cb=(ub^255)&d[Bb>>0];Db=Bb}else{Bb=eb+(Ba>>>3)|0;Cb=ub|d[Bb>>0];Db=Bb}a[Db>>0]=Cb;vb=vb+1|0;if((vb|0)==(db|0))break;else{Pa=Pa+1|0;Ba=Ba+1|0}}Ra=Ra+1|0;if((Ra|0)==(na|0))break;else{Qa=Qa+ya|0;tb=tb+db|0}}}xa=xa+1|0;if(xa>>>0>=7){ba=255;break}}}while(0);if((ba|0)==255){lq(j,k,l,m,n,wa,ma,fa);if(fa>>>0>7){xa=fa>>>3;if(xa|0){db=0;do{tb=c[k+(db<<2)>>2]|0;do if(tb|0){ya=c[j+(db<<2)>>2]|0;if(!ya)break;Qa=c[n+(db<<2)>>2]|0;na=c[30048+(db<<2)>>2]|0;Ra=c[30016+(db<<2)>>2]|0;eb=c[29984+(db<<2)>>2]|0;ab=c[29952+(db<<2)>>2]|0;Ba=0;do{Pa=(B((B(Ba,Ra)|0)+na|0,wa)|0)+eb|0;vb=B(Ba,ya)|0;Bb=0;do{ub=(B(Bb+vb|0,xa)|0)+Qa|0;Eb=B(Pa+(B(Bb,ab)|0)|0,xa)|0;Fb=0;do{a[da+(Fb+Eb)>>0]=a[ea+(ub+Fb)>>0]|0;Fb=Fb+1|0}while((Fb|0)!=(xa|0));Bb=Bb+1|0}while((Bb|0)!=(ya|0));Ba=Ba+1|0}while((Ba|0)!=(tb|0))}while(0);db=db+1|0}while((db|0)!=7)}}else{db=0;do{xa=c[j+(db<<2)>>2]|0;tb=c[k+(db<<2)>>2]|0;if(!((xa|0)==0|(tb|0)==0)){Ba=c[30048+(db<<2)>>2]|0;ya=c[30016+(db<<2)>>2]|0;ab=c[29984+(db<<2)>>2]|0;Qa=c[29952+(db<<2)>>2]|0;eb=c[n+(db<<2)>>2]<<3;na=0;do{Ra=B(na,xa)|0;Bb=(B((B(na,ya)|0)+Ba|0,wa)|0)+ab|0;Pa=0;do{vb=0;Fb=(B(Pa+Ra|0,fa)|0)+eb|0;ub=B(Bb+(B(Pa,Qa)|0)|0,fa)|0;while(1){Eb=(d[ea+(Fb>>>3)>>0]|0)>>>(Fb&7^7)&1;if(Eb|0){Gb=da+(ub>>>3)|0;a[Gb>>0]=Eb<<(ub&7^7)|d[Gb>>0]}vb=vb+1|0;if((vb|0)==(fa|0))break;else{Fb=Fb+1|0;ub=ub+1|0}}Pa=Pa+1|0}while((Pa|0)!=(xa|0));na=na+1|0}while((na|0)!=(tb|0))}db=db+1|0}while((db|0)!=7)}yb=1;zb=0;Ab=0}if(yb)sb=zb;else{ob=lb;pb=Oa;qb=Ab;ba=286;break i}}while(0);ob=lb;pb=Oa;qb=sb;ba=286}}while(0);if((ba|0)==286){c[u>>2]=qb;mb=ob;nb=pb}c[e>>2]=mb;c[f>>2]=nb}c[ia>>2]=0;c[ha>>2]=0;zq(c[t>>2]|0);Ua=sa;break a;break}}}while(0);if((ba|0)==4){c[u>>2]=30;Ua=aa}zq(Ua);if(c[u>>2]|0){Ia=i;return}Ua=b+20|0;aa=b+72|0;if(!(c[b+8>>2]|0)){ba=b+28|0;sa=c[ba>>2]|0;if(sa|0)zq(sa);c[Ua>>2]=c[aa>>2];c[Ua+4>>2]=c[aa+4>>2];c[Ua+8>>2]=c[aa+8>>2];c[Ua+12>>2]=c[aa+12>>2];c[Ua+16>>2]=c[aa+16>>2];c[Ua+20>>2]=c[aa+20>>2];c[Ua+24>>2]=c[aa+24>>2];c[Ua+28>>2]=c[aa+28>>2];sa=xq(c[y>>2]<<2)|0;c[ba>>2]=sa;t=c[y>>2]|0;if(!sa){Hb=(t|0)==0?0:9935;c[u>>2]=Hb;Ia=i;return}if(!(t&1073741823)){Hb=0;c[u>>2]=Hb;Ia=i;return}a[sa>>0]=a[c[x>>2]>>0]|0;if(!(c[y>>2]&1073741823)){Hb=0;c[u>>2]=Hb;Ia=i;return}sa=1;do{a[(c[ba>>2]|0)+sa>>0]=a[(c[x>>2]|0)+sa>>0]|0;sa=sa+1|0}while(sa>>>0<c[y>>2]<<2>>>0);Hb=0;c[u>>2]=Hb;Ia=i;return}Hb=c[Ua>>2]|0;if((Hb|0)==(c[aa>>2]|0)?(c[b+24>>2]|0)==(c[b+76>>2]|0):0){Ia=i;return}y=c[e>>2]|0;switch(Hb|0){case 6:case 2:break;default:if((c[b+24>>2]|0)!=8){c[u>>2]=56;Ia=i;return}}sa=b+52|0;x=c[sa>>2]|0;ba=b+56|0;t=c[ba>>2]|0;nb=c[b+24>>2]|0;switch(Hb|0){case 3:case 0:{Ib=1;break}case 2:{Ib=3;break}case 4:{Ib=2;break}case 6:{Ib=4;break}default:Ib=0}Hb=((B(B(B(t,x)|0,nb)|0,Ib)|0)+7|0)>>>3;c[f>>2]=Hb;Ib=xq(Hb)|0;c[e>>2]=Ib;if(!Ib){c[u>>2]=9947;c[f>>2]=0}else c[u>>2]=hq(Ib,y,Ua,aa,c[sa>>2]|0,c[ba>>2]|0)|0;zq(y);Ia=i;return}function kq(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0;h=(g+7|0)>>>3;i=((B(g,e)|0)+7|0)>>>3;if(!f){j=0;return j|0}e=i+1|0;g=(i|0)==0;k=(h|0)==0;l=(i|0)!=0;m=(h|0)!=0;n=h>>>0<i>>>0;o=0;p=0;a:while(1){q=B(p,i)|0;r=B(p,e)|0;s=o;o=b+q|0;q=c+(r+1)|0;b:do switch(a[c+r>>0]|0){case 0:{if(!g){t=0;do{a[o+t>>0]=a[q+t>>0]|0;t=t+1|0}while((t|0)!=(i|0))}break}case 1:{if(!k){t=0;do{a[o+t>>0]=a[q+t>>0]|0;t=t+1|0}while((t|0)!=(h|0))}if(n){t=h;do{a[o+t>>0]=(d[o+(t-h)>>0]|0)+(d[q+t>>0]|0);t=t+1|0}while((t|0)!=(i|0))}break}case 2:{if(!s){if(!l)break b;t=0;do{a[o+t>>0]=a[q+t>>0]|0;t=t+1|0}while((t|0)!=(i|0))}else{if(!l)break b;t=0;do{a[o+t>>0]=(d[s+t>>0]|0)+(d[q+t>>0]|0);t=t+1|0}while((t|0)!=(i|0))}break}case 3:{if(!s){if(m){t=0;do{a[o+t>>0]=a[q+t>>0]|0;t=t+1|0}while((t|0)!=(h|0))}if(!n)break b;t=h;do{a[o+t>>0]=((d[o+(t-h)>>0]|0)>>>1&255)+(d[q+t>>0]|0);t=t+1|0}while((t|0)!=(i|0))}else{if(m){t=0;do{a[o+t>>0]=((d[s+t>>0]|0)>>>1&255)+(d[q+t>>0]|0);t=t+1|0}while((t|0)!=(h|0))}if(!n)break b;t=h;do{a[o+t>>0]=(((d[s+t>>0]|0)+(d[o+(t-h)>>0]|0)|0)>>>1)+(d[q+t>>0]|0);t=t+1|0}while((t|0)!=(i|0))}break}case 4:{if(!s){if(m){t=0;do{a[o+t>>0]=a[q+t>>0]|0;t=t+1|0}while((t|0)!=(h|0))}if(!n)break b;t=h;do{a[o+t>>0]=(d[o+(t-h)>>0]|0)+(d[q+t>>0]|0);t=t+1|0}while((t|0)!=(i|0))}else{if(m){t=0;do{a[o+t>>0]=(d[s+t>>0]|0)+(d[q+t>>0]|0);t=t+1|0}while((t|0)!=(h|0))}if(!n)break b;t=h;do{u=t-h|0;v=a[o+u>>0]|0;w=a[s+t>>0]|0;x=a[s+u>>0]|0;u=w&255;y=x&255;z=u-y|0;A=(z|0)>-1?z:0-z|0;z=v&255;C=z-y|0;D=(C|0)>-1?C:0-C|0;C=u+z+(B(y,-2)|0)|0;y=(C|0)>-1?C:0-C|0;a[o+t>>0]=(((A|0)>(D|0)|(A|0)>(y|0)?((D|0)>(y|0)?x:w):v)&255)+(d[q+t>>0]|0);t=t+1|0}while((t|0)!=(i|0))}break}default:{j=36;E=47;break a}}while(0);p=p+1|0;if(p>>>0>=f>>>0){j=0;E=47;break}}if((E|0)==47)return j|0;return 0}function lq(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;c[a>>2]=(g+7|0)>>>3;j=(h+7|0)>>>3;c[b>>2]=j;k=(c[a>>2]|0)==0?0:j;c[b>>2]=k;if(!k)c[a>>2]=0;k=a+4|0;c[k>>2]=(g+3|0)>>>3;l=b+4|0;c[l>>2]=j;m=(c[k>>2]|0)==0?0:j;c[l>>2]=m;if(!m)c[k>>2]=0;m=a+8|0;c[m>>2]=(g+3|0)>>>2;j=(h+3|0)>>>3;n=b+8|0;c[n>>2]=j;o=(c[m>>2]|0)==0?0:j;c[n>>2]=o;if(!o)c[m>>2]=0;o=a+12|0;c[o>>2]=(g+1|0)>>>2;j=(h+3|0)>>>2;p=b+12|0;c[p>>2]=j;q=(c[o>>2]|0)==0?0:j;c[p>>2]=q;if(!q)c[o>>2]=0;q=a+16|0;c[q>>2]=(g+1|0)>>>1;j=(h+1|0)>>>2;r=b+16|0;c[r>>2]=j;s=(c[q>>2]|0)==0?0:j;c[r>>2]=s;if(!s)c[q>>2]=0;s=a+20|0;c[s>>2]=g>>>1;j=(h+1|0)>>>1;t=b+20|0;c[t>>2]=j;u=(c[s>>2]|0)==0?0:j;c[t>>2]=u;if(!u)c[s>>2]=0;u=a+24|0;c[u>>2]=g;g=h>>>1;h=b+24|0;c[h>>2]=g;j=(c[u>>2]|0)==0?0:g;c[h>>2]=j;if(!j)c[u>>2]=0;c[f>>2]=0;c[e>>2]=0;c[d>>2]=0;j=c[a>>2]|0;a=c[b>>2]|0;if(!j){v=0;w=0;x=0}else{b=B(j,i)|0;j=(b+7|0)>>>3;v=B(a,j+1|0)|0;w=j;x=b}b=d+4|0;c[b>>2]=v;v=e+4|0;c[v>>2]=(B(a,w)|0)+(c[e>>2]|0);w=f+4|0;c[w>>2]=(((B(x,a)|0)+7|0)>>>3)+(c[f>>2]|0);a=c[k>>2]|0;k=c[l>>2]|0;if(!a){y=0;z=0;A=0}else{l=B(a,i)|0;a=(l+7|0)>>>3;y=B(k,a+1|0)|0;z=a;A=l}l=d+8|0;c[l>>2]=y+(c[b>>2]|0);b=e+8|0;c[b>>2]=(B(k,z)|0)+(c[v>>2]|0);v=f+8|0;c[v>>2]=(((B(A,k)|0)+7|0)>>>3)+(c[w>>2]|0);w=c[m>>2]|0;m=c[n>>2]|0;if(!w){C=0;D=0;E=0}else{n=B(w,i)|0;w=(n+7|0)>>>3;C=B(m,w+1|0)|0;D=w;E=n}n=d+12|0;c[n>>2]=C+(c[l>>2]|0);l=e+12|0;c[l>>2]=(B(m,D)|0)+(c[b>>2]|0);b=f+12|0;c[b>>2]=(((B(E,m)|0)+7|0)>>>3)+(c[v>>2]|0);v=c[o>>2]|0;o=c[p>>2]|0;if(!v){F=0;G=0;H=0}else{p=B(v,i)|0;v=(p+7|0)>>>3;F=B(o,v+1|0)|0;G=v;H=p}p=d+16|0;c[p>>2]=F+(c[n>>2]|0);n=e+16|0;c[n>>2]=(B(o,G)|0)+(c[l>>2]|0);l=f+16|0;c[l>>2]=(((B(H,o)|0)+7|0)>>>3)+(c[b>>2]|0);b=c[q>>2]|0;q=c[r>>2]|0;if(!b){I=0;J=0;K=0}else{r=B(b,i)|0;b=(r+7|0)>>>3;I=B(q,b+1|0)|0;J=b;K=r}r=d+20|0;c[r>>2]=I+(c[p>>2]|0);p=e+20|0;c[p>>2]=(B(q,J)|0)+(c[n>>2]|0);n=f+20|0;c[n>>2]=(((B(K,q)|0)+7|0)>>>3)+(c[l>>2]|0);l=c[s>>2]|0;s=c[t>>2]|0;if(!l){L=0;M=0;N=0}else{t=B(l,i)|0;l=(t+7|0)>>>3;L=B(s,l+1|0)|0;M=l;N=t}t=d+24|0;c[t>>2]=L+(c[r>>2]|0);r=e+24|0;c[r>>2]=(B(s,M)|0)+(c[p>>2]|0);p=f+24|0;c[p>>2]=(((B(N,s)|0)+7|0)>>>3)+(c[n>>2]|0);n=c[t>>2]|0;t=c[u>>2]|0;u=c[h>>2]|0;if(!t){O=0;P=0;Q=0;R=O+n|0;S=d+28|0;c[S>>2]=R;T=c[r>>2]|0;U=B(u,P)|0;V=U+T|0;W=e+28|0;c[W>>2]=V;X=c[p>>2]|0;Y=B(Q,u)|0;Z=Y+7|0;_=Z>>>3;$=_+X|0;aa=f+28|0;c[aa>>2]=$;return}h=B(t,i)|0;i=(h+7|0)>>>3;O=B(u,i+1|0)|0;P=i;Q=h;R=O+n|0;S=d+28|0;c[S>>2]=R;T=c[r>>2]|0;U=B(u,P)|0;V=U+T|0;W=e+28|0;c[W>>2]=V;X=c[p>>2]|0;Y=B(Q,u)|0;Z=Y+7|0;_=Z>>>3;$=_+X|0;aa=f+28|0;c[aa>>2]=$;return}function mq(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;i=Ia;Ia=Ia+224|0;j=i+212|0;k=i;if(!f){l=100;Ia=i;return l|0}m=c[f>>2]|0;if(!m){n=c[f+8>>2]|0;Zu(n,0,2)|0;o=sv(n)|0;if(o>>>0>268435456){l=333;Ia=i;return l|0}uv(n);p=xq(o)|0;tv(p,1,o,n)|0;c[k+8>>2]=1;c[k+12>>2]=1;c[k+4>>2]=0;c[k+16>>2]=0;c[k>>2]=0;n=k+20|0;q=k+24|0;r=k+28|0;s=k+32|0;t=k+56|0;u=k+52|0;v=k+88|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;c[r+24>>2]=0;c[r+28>>2]=0;c[k+72>>2]=6;c[k+76>>2]=8;c[k+80>>2]=0;c[k+84>>2]=0;c[k+68>>2]=0;c[k+60>>2]=0;c[k+64>>2]=0;v=k+104|0;c[k+168>>2]=0;w=k+184|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w+16>>2]=0;c[w+20>>2]=0;x=v;y=x+48|0;do{c[x>>2]=0;x=x+4|0}while((x|0)<(y|0));a[v+48>>0]=0;v=k+208|0;c[v>>2]=1;c[n>>2]=g;c[q>>2]=h;jq(k,b,j,p,o);o=c[v>>2]|0;c[d>>2]=c[u>>2];c[e>>2]=c[t>>2];t=c[r>>2]|0;if(t|0)zq(t);c[s>>2]=0;gq(k+52|0);zq(p);z=c[f>>2]|0;A=o}else{z=m;A=0}if((z|0)!=1){l=A;Ia=i;return l|0}c[f+20>>2]=0;A=c[f+12>>2]|0;z=c[f+16>>2]|0;c[k+8>>2]=1;c[k+12>>2]=1;c[k+4>>2]=0;c[k+16>>2]=0;c[k>>2]=0;f=k+20|0;m=k+24|0;o=k+28|0;p=k+32|0;s=k+56|0;t=k+52|0;r=k+88|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;c[o+20>>2]=0;c[o+24>>2]=0;c[o+28>>2]=0;c[k+72>>2]=6;c[k+76>>2]=8;c[k+80>>2]=0;c[k+84>>2]=0;c[k+68>>2]=0;c[k+60>>2]=0;c[k+64>>2]=0;r=k+104|0;c[k+168>>2]=0;u=k+184|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;x=r;y=x+48|0;do{c[x>>2]=0;x=x+4|0}while((x|0)<(y|0));a[r+48>>0]=0;r=k+208|0;c[r>>2]=1;c[f>>2]=g;c[m>>2]=h;jq(k,b,j,A,z);z=c[r>>2]|0;c[d>>2]=c[t>>2];c[e>>2]=c[s>>2];s=c[o>>2]|0;if(s|0)zq(s);c[p>>2]=0;gq(k+52|0);l=z;Ia=i;return l|0}function nq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return mq(a,b,c,d,6,8)|0} +function yu(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0.0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0.0,fb=0,gb=0.0,hb=0.0,ib=0.0,jb=0.0,kb=0.0,lb=0.0,mb=0.0,nb=0.0,ob=0.0,pb=0,qb=0.0;i=Ia;Ia=Ia+512|0;j=i;k=f+e|0;l=0-k|0;m=a+4|0;n=a+104|0;o=b;b=0;a:while(1){switch(o|0){case 46:{p=7;break a;break}case 48:break;default:{q=0;r=0;s=o;t=b;v=0;break a}}w=c[m>>2]|0;if(w>>>0<(c[n>>2]|0)>>>0){c[m>>2]=w+1;x=d[w>>0]|0}else x=Yt(a)|0;o=x;b=1}if((p|0)==7){x=c[m>>2]|0;if(x>>>0<(c[n>>2]|0)>>>0){c[m>>2]=x+1;y=d[x>>0]|0}else y=Yt(a)|0;if((y|0)==48){x=0;o=0;while(1){w=Hv(x|0,o|0,-1,-1)|0;z=G()|0;A=c[m>>2]|0;if(A>>>0<(c[n>>2]|0)>>>0){c[m>>2]=A+1;C=d[A>>0]|0}else C=Yt(a)|0;if((C|0)==48){x=w;o=z}else{q=w;r=z;s=C;t=1;v=1;break}}}else{q=0;r=0;s=y;t=b;v=1}}c[j>>2]=0;b=s+-48|0;y=(s|0)==46;b:do if(y|b>>>0<10){C=j+496|0;o=q;x=r;z=0;w=0;A=s;D=y;E=t;F=v;H=0;I=0;J=0;K=b;c:while(1){do if(D)if(!F){L=z;M=w;N=z;O=w;P=E;Q=1;R=H;S=I;T=J}else break c;else{U=Hv(z|0,w|0,1,0)|0;V=G()|0;W=(A|0)!=48;if((I|0)>=125){if(!W){L=o;M=x;N=U;O=V;P=E;Q=F;R=H;S=I;T=J;break}c[C>>2]=c[C>>2]|1;L=o;M=x;N=U;O=V;P=E;Q=F;R=H;S=I;T=J;break}X=j+(I<<2)|0;if(!H)Y=K;else Y=A+-48+((c[X>>2]|0)*10|0)|0;c[X>>2]=Y;X=H+1|0;Z=(X|0)==9;L=o;M=x;N=U;O=V;P=1;Q=F;R=Z?0:X;S=I+(Z&1)|0;T=W?U:J}while(0);U=c[m>>2]|0;if(U>>>0<(c[n>>2]|0)>>>0){c[m>>2]=U+1;_=d[U>>0]|0}else _=Yt(a)|0;K=_+-48|0;D=(_|0)==46;if(!(D|K>>>0<10)){$=N;aa=L;ba=O;ca=M;da=_;ea=P;fa=Q;ga=R;ha=S;ia=T;p=31;break b}else{o=L;x=M;z=N;w=O;A=_;E=P;F=Q;H=R;I=S;J=T}}ja=z;ka=w;la=o;ma=x;na=H;oa=I;pa=J;qa=(E|0)!=0;p=39}else{$=0;aa=q;ba=0;ca=r;da=s;ea=t;fa=v;ga=0;ha=0;ia=0;p=31}while(0);do if((p|0)==31){v=(fa|0)==0;t=v?$:aa;s=v?ba:ca;v=(ea|0)!=0;if(!(v&(da|32|0)==101))if((da|0)>-1){ja=$;ka=ba;la=t;ma=s;na=ga;oa=ha;pa=ia;qa=v;p=39;break}else{ra=$;sa=ba;ta=t;ua=s;va=ga;wa=ha;xa=ia;ya=v;p=41;break}v=zu(a,h)|0;r=G()|0;if((v|0)==0&(r|0)==-2147483648){if(!h){Wt(a,0,0);za=0.0;break}if(!(c[n>>2]|0)){Aa=0;Ba=0}else{c[m>>2]=(c[m>>2]|0)+-1;Aa=0;Ba=0}}else{Aa=v;Ba=r}r=Hv(Aa|0,Ba|0,t|0,s|0)|0;Ca=r;Da=$;Ea=G()|0;Fa=ba;Ga=ga;Ha=ha;Ja=ia;p=43}while(0);if((p|0)==39)if(c[n>>2]|0){c[m>>2]=(c[m>>2]|0)+-1;if(qa){Ca=la;Da=ja;Ea=ma;Fa=ka;Ga=na;Ha=oa;Ja=pa;p=43}else p=42}else{ra=ja;sa=ka;ta=la;ua=ma;va=na;wa=oa;xa=pa;ya=qa;p=41}if((p|0)==41)if(ya){Ca=ta;Da=ra;Ea=ua;Fa=sa;Ga=va;Ha=wa;Ja=xa;p=43}else p=42;do if((p|0)==42){c[(gt()|0)>>2]=22;Wt(a,0,0);za=0.0}else if((p|0)==43){xa=c[j>>2]|0;if(!xa){za=+(g|0)*0.0;break}if(((Fa|0)<0|(Fa|0)==0&Da>>>0<10)&((Ca|0)==(Da|0)&(Ea|0)==(Fa|0))?(e|0)>30|(xa>>>e|0)==0:0){za=+(g|0)*+(xa>>>0);break}xa=(f|0)/-2|0;wa=((xa|0)<0)<<31>>31;if((Ea|0)>(wa|0)|(Ea|0)==(wa|0)&Ca>>>0>xa>>>0){c[(gt()|0)>>2]=34;za=+(g|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}xa=f+-106|0;wa=((xa|0)<0)<<31>>31;if((Ea|0)<(wa|0)|(Ea|0)==(wa|0)&Ca>>>0<xa>>>0){c[(gt()|0)>>2]=34;za=+(g|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(!Ga)Ka=Ha;else{if((Ga|0)<9){xa=j+(Ha<<2)|0;wa=Ga;va=c[xa>>2]|0;while(1){va=va*10|0;if((wa|0)>=8)break;else wa=wa+1|0}c[xa>>2]=va}Ka=Ha+1|0}if((Ja|0)<9?(Ja|0)<=(Ca|0)&(Ca|0)<18:0){if((Ca|0)==9){za=+(g|0)*+((c[j>>2]|0)>>>0);break}if((Ca|0)<9){za=+(g|0)*+((c[j>>2]|0)>>>0)/+(c[34544+(8-Ca<<2)>>2]|0);break}wa=e+27+(B(Ca,-3)|0)|0;E=c[j>>2]|0;if((wa|0)>30|(E>>>wa|0)==0){za=+(g|0)*+(E>>>0)*+(c[34544+(Ca+-10<<2)>>2]|0);break}}E=(Ca|0)%9|0;if(!E){La=0;Ma=Ca;Na=Ka}else{wa=(Ca|0)>-1?E:E+9|0;E=c[34544+(8-wa<<2)>>2]|0;if(Ka){J=1e9/(E|0)|0;I=0;H=0;x=0;o=Ca;do{w=j+(x<<2)|0;z=c[w>>2]|0;sa=(z>>>0)/(E>>>0)|0;ua=z-(B(sa,E)|0)|0;z=sa+H|0;c[w>>2]=z;H=B(J,ua)|0;ua=(x|0)==(I|0)&(z|0)==0;o=ua?o+-9|0:o;I=ua?I+1&127:I;x=x+1|0}while((x|0)!=(Ka|0));if(!H){Oa=I;Pa=o;Qa=Ka}else{c[j+(Ka<<2)>>2]=H;Oa=I;Pa=o;Qa=Ka+1|0}}else{Oa=0;Pa=Ca;Qa=0}La=Oa;Ma=9-wa+Pa|0;Na=Qa}x=La;J=0;E=Ma;va=Na;d:while(1){xa=(E|0)<18;ua=(E|0)==18;z=j+(x<<2)|0;Ra=J;Sa=va;while(1){if(!xa){if(!ua){Ta=E;break d}if((c[z>>2]|0)>>>0>=9007199){Ta=18;break d}}w=0;sa=Sa+127|0;Ua=Sa;while(1){ra=sa&127;ta=j+(ra<<2)|0;ya=Rv(c[ta>>2]|0,0,29)|0;qa=Hv(ya|0,G()|0,w|0,0)|0;ya=G()|0;if(ya>>>0>0|(ya|0)==0&qa>>>0>1e9){pa=Ov(qa|0,ya|0,1e9,0)|0;oa=Nv(pa|0,G()|0,1e9,0)|0;na=Iv(qa|0,ya|0,oa|0,G()|0)|0;G()|0;Va=na;Wa=pa}else{Va=qa;Wa=0}c[ta>>2]=Va;ta=(ra|0)==(x|0);Xa=(ra|0)!=(Ua+127&127|0)|ta?Ua:(Va|0)==0?ra:Ua;if(ta)break;else{w=Wa;sa=ra+-1|0;Ua=Xa}}Ya=Ra+-29|0;if(!Wa){Ra=Ya;Sa=Ua}else break}z=x+127&127;ua=Xa+127&127;xa=j+((Xa+126&127)<<2)|0;if((z|0)==(Xa|0)){c[xa>>2]=c[xa>>2]|c[j+(ua<<2)>>2];Za=ua}else Za=Ua;c[j+(z<<2)>>2]=Wa;x=z;J=Ya;E=E+9|0;va=Za}va=x;E=Ra;J=Ta;wa=Sa;e:while(1){o=wa+1&127;I=j+((wa+127&127)<<2)|0;H=va;z=E;ua=J;while(1){xa=(ua|0)==18;sa=(ua|0)>27?9:1;_a=H;$a=z;while(1){w=0;while(1){ra=w+_a&127;if((ra|0)==(wa|0)){p=92;break}ta=c[j+(ra<<2)>>2]|0;ra=c[35232+(w<<2)>>2]|0;if(ta>>>0<ra>>>0){p=92;break}if(ta>>>0>ra>>>0)break;if((w+1|0)>>>0<2)w=1;else{p=92;break}}if((p|0)==92?(p=0,xa):0)break e;ab=sa+$a|0;if((_a|0)==(wa|0)){_a=wa;$a=ab}else break}xa=(1<<sa)+-1|0;w=1e9>>>sa;bb=_a;cb=0;ra=_a;db=ua;do{ta=j+(ra<<2)|0;qa=c[ta>>2]|0;pa=(qa>>>sa)+cb|0;c[ta>>2]=pa;cb=B(qa&xa,w)|0;qa=(ra|0)==(bb|0)&(pa|0)==0;db=qa?db+-9|0:db;bb=qa?bb+1&127:bb;ra=ra+1&127}while((ra|0)!=(wa|0));if(cb|0){if((o|0)!=(bb|0))break;c[I>>2]=c[I>>2]|1}H=bb;z=ab;ua=db}c[j+(wa<<2)>>2]=cb;va=bb;E=ab;J=db;wa=o}J=0;eb=0.0;E=wa;while(1){va=J+_a&127;x=E+1&127;if((va|0)==(E|0)){c[j+(x+-1<<2)>>2]=0;fb=x}else fb=E;eb=eb*1.0e9+ +((c[j+(va<<2)>>2]|0)>>>0);J=J+1|0;if((J|0)==2)break;else E=fb}gb=+(g|0);hb=eb*gb;E=$a+53|0;J=E-f|0;wa=(J|0)<(e|0);va=wa?((J|0)>0?J:0):e;if((va|0)<53){ib=+nt(+lt(1.0,105-va|0),hb);jb=+rt(hb,+lt(1.0,53-va|0));kb=ib;lb=jb;mb=ib+(hb-jb)}else{kb=0.0;lb=0.0;mb=hb}x=_a+2&127;if((x|0)!=(fb|0)){ua=c[j+(x<<2)>>2]|0;do if(ua>>>0>=5e8){if((ua|0)!=5e8){nb=gb*.75+lb;break}if((_a+3&127|0)==(fb|0)){nb=gb*.5+lb;break}else{nb=gb*.75+lb;break}}else{if((ua|0)==0?(_a+3&127|0)==(fb|0):0){nb=lb;break}nb=gb*.25+lb}while(0);if((53-va|0)>1?!(+rt(nb,1.0)!=0.0):0)ob=nb+1.0;else ob=nb}else ob=lb;gb=mb+ob-kb;do if((E&2147483647|0)>(-2-k|0)){ua=!(+u(+gb)>=9007199254740992.0);x=$a+((ua^1)&1)|0;eb=ua?gb:gb*.5;if((x+50|0)<=(l|0)?!(ob!=0.0&(wa&((va|0)!=(J|0)|ua))):0){pb=x;qb=eb;break}c[(gt()|0)>>2]=34;pb=x;qb=eb}else{pb=$a;qb=gb}while(0);za=+st(qb,pb)}while(0);Ia=i;return +za}function zu(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=a+4|0;f=c[e>>2]|0;g=a+104|0;if(f>>>0<(c[g>>2]|0)>>>0){c[e>>2]=f+1;h=d[f>>0]|0}else h=Yt(a)|0;switch(h|0){case 43:case 45:{f=(h|0)==45&1;i=c[e>>2]|0;if(i>>>0<(c[g>>2]|0)>>>0){c[e>>2]=i+1;j=d[i>>0]|0}else j=Yt(a)|0;i=j+-48|0;if((b|0)!=0&i>>>0>9)if(!(c[g>>2]|0)){k=-2147483648;l=0}else{c[e>>2]=(c[e>>2]|0)+-1;m=14}else{n=j;o=f;p=i;m=12}break}default:{n=h;o=0;p=h+-48|0;m=12}}if((m|0)==12)if(p>>>0>9)m=14;else{p=n;n=0;while(1){n=p+-48+(n*10|0)|0;h=c[e>>2]|0;if(h>>>0<(c[g>>2]|0)>>>0){c[e>>2]=h+1;q=d[h>>0]|0}else q=Yt(a)|0;r=q+-48|0;if(!(r>>>0<10&(n|0)<214748364))break;else p=q}p=((n|0)<0)<<31>>31;if(r>>>0<10){r=n;h=p;i=q;while(1){q=Nv(r|0,h|0,10,0)|0;f=G()|0;j=Hv(i|0,((i|0)<0)<<31>>31|0,-48,-1)|0;r=Hv(j|0,G()|0,q|0,f|0)|0;h=G()|0;f=c[e>>2]|0;if(f>>>0<(c[g>>2]|0)>>>0){c[e>>2]=f+1;s=d[f>>0]|0}else s=Yt(a)|0;t=s+-48|0;if(!(t>>>0<10&((h|0)<21474836|(h|0)==21474836&r>>>0<2061584302)))break;else i=s}if(t>>>0<10){do{t=c[e>>2]|0;if(t>>>0<(c[g>>2]|0)>>>0){c[e>>2]=t+1;u=d[t>>0]|0}else u=Yt(a)|0}while((u+-48|0)>>>0<10);v=r;w=h}else{v=r;w=h}}else{v=n;w=p}if(c[g>>2]|0)c[e>>2]=(c[e>>2]|0)+-1;p=(o|0)==0;o=Iv(0,0,v|0,w|0)|0;n=G()|0;k=p?w:n;l=p?v:o}if((m|0)==14)if(!(c[g>>2]|0)){k=-2147483648;l=0}else{c[e>>2]=(c[e>>2]|0)+-1;k=-2147483648;l=0}F(k|0);return l|0}function Au(a,b){a=a|0;b=b|0;return +(+vu(a,b,1))}function Bu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=Ia;Ia=Ia+32|0;f=e;g=a[d>>0]|0;a:do if(g<<24>>24!=0?(a[d+1>>0]|0)!=0:0){Wv(f|0,0,32)|0;h=a[d>>0]|0;if(h<<24>>24){i=h;h=d;do{j=i&255;k=f+(j>>>5<<2)|0;c[k>>2]=c[k>>2]|1<<(j&31);h=h+1|0;i=a[h>>0]|0}while(i<<24>>24!=0)}i=a[b>>0]|0;if(!(i<<24>>24))l=b;else{h=i;i=b;while(1){j=h&255;if(c[f+(j>>>5<<2)>>2]&1<<(j&31)|0){l=i;break a}j=i+1|0;h=a[j>>0]|0;if(!(h<<24>>24)){l=j;break}else i=j}}}else m=3;while(0);if((m|0)==3)l=uu(b,g<<24>>24)|0;Ia=e;return l-b|0}function Cu(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;h=Ia;Ia=Ia+16|0;i=h;j=(g|0)==0?3196360:g;g=c[j>>2]|0;a:do if(!e)if(!g)k=0;else l=19;else{m=(b|0)==0?i:b;if(!f)k=-2;else{if(!g){n=a[e>>0]|0;if(n<<24>>24>-1){c[m>>2]=n&255;k=n<<24>>24!=0&1;break}n=(c[c[(Du()|0)+188>>2]>>2]|0)==0;o=a[e>>0]|0;if(n){c[m>>2]=o<<24>>24&57343;k=1;break}n=(o&255)+-194|0;if(n>>>0>50){l=19;break}o=c[33584+(n<<2)>>2]|0;n=f+-1|0;if(!n)p=o;else{q=o;r=n;s=e+1|0;l=11}}else{q=g;r=f;s=e;l=11}b:do if((l|0)==11){n=d[s>>0]|0;o=n>>>3;if((o+-16|o+(q>>26))>>>0>7){l=19;break a}o=n+-128|q<<6;n=r+-1|0;if((o|0)<0){t=n;u=o;v=s;while(1){v=v+1|0;if(!t){p=u;break b}w=a[v>>0]|0;if((w&-64)<<24>>24!=-128){l=19;break a}x=(w&255)+-128|u<<6;w=t+-1|0;if((x|0)>=0){y=w;z=x;break}else{t=w;u=x}}}else{y=n;z=o}c[j>>2]=0;c[m>>2]=z;k=f-y|0;break a}while(0);c[j>>2]=p;k=-2}}while(0);if((l|0)==19){c[j>>2]=0;c[(gt()|0)>>2]=84;k=-1}Ia=h;return k|0}function Du(){return Rt()|0}function Eu(a){a=a|0;var b=0;if(!a)b=1;else b=(c[a>>2]|0)==0&1;return b|0}function Fu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=Ia;Ia=Ia+48|0;f=e+32|0;g=e+16|0;h=e;if(nu(104882,a[d>>0]|0)|0){i=Gu(d)|0;c[h>>2]=b;c[h+4>>2]=i|32768;c[h+8>>2]=438;b=ft(ca(5,h|0)|0)|0;if((b|0)>=0){if(i&524288|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;ba(221,g|0)|0}g=Hu(b,d)|0;if(!g){c[f>>2]=b;ea(6,f|0)|0;j=0}else j=g}else j=0}else{c[(gt()|0)>>2]=22;j=0}Ia=e;return j|0}function Gu(b){b=b|0;var c=0,d=0,e=0,f=0;c=(nu(b,43)|0)==0;d=a[b>>0]|0;e=c?d<<24>>24!=114&1:2;c=(nu(b,120)|0)==0;f=c?e:e|128;e=(nu(b,101)|0)==0;b=e?f:f|524288;f=d<<24>>24==114?b:b|64;b=d<<24>>24==119?f|512:f;return (d<<24>>24==97?b|1024:b)|0}function Hu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=Ia;Ia=Ia+64|0;f=e+40|0;g=e+24|0;h=e+16|0;i=e;j=e+56|0;if(nu(104882,a[d>>0]|0)|0){k=Ys(1176)|0;if(!k)l=0;else{Wv(k|0,0,144)|0;if(!(nu(d,43)|0))c[k>>2]=(a[d>>0]|0)==114?8:4;if(nu(d,101)|0){c[i>>2]=b;c[i+4>>2]=2;c[i+8>>2]=1;ba(221,i|0)|0}if((a[d>>0]|0)==97){c[h>>2]=b;c[h+4>>2]=3;d=ba(221,h|0)|0;if(!(d&1024)){c[g>>2]=b;c[g+4>>2]=4;c[g+8>>2]=d|1024;ba(221,g|0)|0}g=c[k>>2]|128;c[k>>2]=g;m=g}else m=c[k>>2]|0;c[k+60>>2]=b;c[k+44>>2]=k+152;c[k+48>>2]=1024;g=k+75|0;a[g>>0]=-1;if((m&8|0)==0?(c[f>>2]=b,c[f+4>>2]=21523,c[f+8>>2]=j,(da(54,f|0)|0)==0):0)a[g>>0]=10;c[k+32>>2]=5;c[k+36>>2]=4;c[k+40>>2]=1;c[k+12>>2]=1;if(!(c[799075]|0))c[k+76>>2]=-1;Iu(k)|0;l=k}}else{c[(gt()|0)>>2]=22;l=0}Ia=e;return l|0}function Iu(a){a=a|0;var b=0,d=0;b=Ju()|0;c[a+56>>2]=c[b>>2];d=c[b>>2]|0;if(d|0)c[d+52>>2]=a;c[b>>2]=a;Ku();return a|0}function Ju(){W(3196364);return 3196372}function Ku(){fa(3196364);return}function Lu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;if((c[a+76>>2]|0)>-1)b=Et(a)|0;else b=0;Mu(a);d=(c[a>>2]&1|0)!=0;if(!d){e=Ju()|0;f=c[a+52>>2]|0;g=a+56|0;if(f|0)c[f+56>>2]=c[g>>2];h=c[g>>2]|0;if(h|0)c[h+52>>2]=f;if((c[e>>2]|0)==(a|0))c[e>>2]=h;Ku()}h=Nu(a)|0;e=La[c[a+12>>2]&255](a)|0|h;h=c[a+96>>2]|0;if(h|0)Zs(h);if(d){if(b|0)Ft(a)}else Zs(a);return e|0}function Mu(a){a=a|0;var b=0,d=0,e=0;if(c[a+68>>2]|0){b=c[a+132>>2]|0;d=a+128|0;if(b|0)c[b+128>>2]=c[d>>2];a=c[d>>2]|0;if(!a)e=(Pu()|0)+232|0;else e=a+132|0;c[e>>2]=b}return}function Nu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Ou(a)|0;break}d=(Et(a)|0)==0;e=Ou(a)|0;if(d)b=e;else{Ft(a);b=e}}else{if(!(c[8746]|0))f=0;else f=Nu(c[8746]|0)|0;e=c[(Ju()|0)>>2]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=Et(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=Ou(d)|0|e;else i=e;if(h|0)Ft(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}Ku();b=g}while(0);return b|0}function Ou(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(Oa[c[a+36>>2]&7](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0<i>>>0){j=g-i|0;Pa[c[a+40>>2]&3](a,j,((j|0)<0)<<31>>31,1)|0;G()|0}c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function Pu(){return Rt()|0}function Qu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if((c[f+76>>2]|0)>-1)g=Et(f)|0;else g=0;h=e+-1|0;if((e|0)<2){e=f+74|0;i=a[e>>0]|0;a[e>>0]=i+255|i;if(g|0)Ft(f);if(!h){a[b>>0]=0;j=b}else j=0}else{a:do if(h){i=f+4|0;e=f+8|0;k=h;l=b;while(1){m=c[i>>2]|0;n=m;o=(c[e>>2]|0)-n|0;p=Mt(m,10,o)|0;q=(p|0)==0;r=q?o:1-n+p|0;p=r>>>0<k>>>0?r:k;Vv(l|0,m|0,p|0)|0;m=(c[i>>2]|0)+p|0;c[i>>2]=m;s=l+p|0;r=k-p|0;if(!(q&(r|0)!=0)){t=s;u=17;break a}if(m>>>0>=(c[e>>2]|0)>>>0){q=_t(f)|0;if((q|0)<0)break;else v=q}else{c[i>>2]=m+1;v=d[m>>0]|0}m=s+1|0;a[s>>0]=v;k=r+-1|0;if((v&255|0)==10|(k|0)==0){t=m;u=17;break a}else l=m}if((s|0)!=(b|0)?(c[f>>2]&16|0)!=0:0){t=s;u=17}else w=0}else{t=b;u=17}while(0);if((u|0)==17)if(!b)w=0;else{a[t>>0]=0;w=b}if(!g)j=w;else{Ft(f);j=w}}return j|0}function Ru(a){a=a|0;var b=0,d=0,e=0;if((c[a+76>>2]|0)>-1){b=(Et(a)|0)==0;d=(c[a>>2]|0)>>>4&1;if(b)e=d;else{Ft(a);e=d}}else e=(c[a>>2]|0)>>>4&1;return e|0}function Su(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=d;d=Tu(a,b,f)|0;Ia=e;return d|0}function Tu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+144|0;f=e;Wv(f|0,0,144)|0;c[f+32>>2]=6;c[f+44>>2]=a;c[f+76>>2]=-1;c[f+84>>2]=a;a=Vu(f,b,d)|0;Ia=e;return a|0}function Uu(a,b,c){a=a|0;b=b|0;c=c|0;return Yu(a,b,c)|0}function Vu(e,h,i){e=e|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0.0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0;j=Ia;Ia=Ia+288|0;k=j+264|0;l=j;m=j+260|0;n=j+272|0;if((c[e+76>>2]|0)>-1)o=Et(e)|0;else o=0;p=a[h>>0]|0;a:do if(p<<24>>24){q=e+4|0;r=e+104|0;s=e+120|0;t=e+8|0;u=l+10|0;v=l+33|0;w=l+46|0;x=l+94|0;y=k+4|0;z=0;A=p;B=0;C=0;D=0;E=h;F=0;b:while(1){c:do if(!(Zt(A&255)|0)){H=(a[E>>0]|0)==37;d:do if(H){I=E+1|0;J=a[I>>0]|0;e:do switch(J<<24>>24){case 37:{break d;break}case 42:{K=0;L=E+2|0;break}default:{if(vt(J&255)|0?(a[E+2>>0]|0)==36:0){K=Wu(i,(d[I>>0]|0)+-48|0)|0;L=E+3|0;break e}M=(c[i>>2]|0)+(4-1)&~(4-1);N=c[M>>2]|0;c[i>>2]=M+4;K=N;L=I}}while(0);if(!(vt(d[L>>0]|0)|0)){O=L;P=0}else{I=L;J=0;while(1){N=(J*10|0)+-48+(d[I>>0]|0)|0;M=I+1|0;if(!(vt(d[M>>0]|0)|0)){O=M;P=N;break}else{I=M;J=N}}}J=a[O>>0]|0;I=O+1|0;if(J<<24>>24==109){Q=0;R=a[I>>0]|0;S=(K|0)!=0&1;T=O+2|0;U=I;V=0}else{Q=z;R=J;S=0;T=I;U=O;V=F}switch(R<<24>>24){case 104:{I=(a[T>>0]|0)==104;W=I?U+2|0:T;X=I?-2:-1;break}case 108:{I=(a[T>>0]|0)==108;W=I?U+2|0:T;X=I?3:1;break}case 106:{W=T;X=3;break}case 116:case 122:{W=T;X=1;break}case 76:{W=T;X=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{W=U;X=0;break}default:{Y=Q;Z=V;_=143;break b}}I=d[W>>0]|0;J=(I&47|0)==3;N=J?I|32:I;I=J?1:X;J=N&255;switch(J<<24>>24){case 99:{$=B;aa=C;ba=(P|0)>1?P:1;break}case 91:{$=B;aa=C;ba=P;break}case 110:{Xu(K,I,B,C);ca=Q;da=B;ea=C;fa=D;ga=W;ha=V;break c;break}default:{Wt(e,0,0);do{M=c[q>>2]|0;if(M>>>0<(c[r>>2]|0)>>>0){c[q>>2]=M+1;ia=d[M>>0]|0}else ia=Yt(e)|0}while((Zt(ia)|0)!=0);if(!(c[r>>2]|0))ja=c[q>>2]|0;else{M=(c[q>>2]|0)+-1|0;c[q>>2]=M;ja=M}M=s;ka=ja-(c[t>>2]|0)|0;la=Hv(c[M>>2]|0,c[M+4>>2]|0,B|0,C|0)|0;M=Hv(la|0,G()|0,ka|0,((ka|0)<0)<<31>>31|0)|0;$=M;aa=G()|0;ba=P}}M=((ba|0)<0)<<31>>31;Wt(e,ba,M);ka=c[q>>2]|0;la=c[r>>2]|0;if(ka>>>0<la>>>0){c[q>>2]=ka+1;ma=la}else{if((Yt(e)|0)<0){Y=Q;Z=V;_=143;break b}ma=c[r>>2]|0}if(ma|0)c[q>>2]=(c[q>>2]|0)+-1;f:do switch(J<<24>>24){case 91:case 99:case 115:{la=(N|0)==99;g:do if((N|16|0)==115){Wv(l|0,-1,257)|0;a[l>>0]=0;if((N|0)==115){a[v>>0]=0;b[u>>1]=0;b[u+2>>1]=0;a[u+4>>0]=0;na=W}else na=W}else{ka=W+1|0;oa=(a[ka>>0]|0)==94;pa=oa&1;qa=oa?W+2|0:ka;Wv(l|0,pa|0,257)|0;a[l>>0]=0;switch(a[qa>>0]|0){case 45:{ka=(pa^1)&255;a[w>>0]=ka;ra=ka;sa=qa+1|0;break}case 93:{ka=(pa^1)&255;a[x>>0]=ka;ra=ka;sa=qa+1|0;break}default:{ra=(pa^1)&255;sa=qa}}qa=sa;while(1){pa=a[qa>>0]|0;h:do switch(pa<<24>>24){case 0:{Y=Q;Z=V;_=143;break b;break}case 93:{na=qa;break g;break}case 45:{ka=qa+1|0;oa=a[ka>>0]|0;switch(oa<<24>>24){case 93:case 0:{ta=45;ua=qa;break h;break}default:{}}va=a[qa+-1>>0]|0;if((va&255)<(oa&255)){wa=va&255;do{wa=wa+1|0;a[l+wa>>0]=ra;va=a[ka>>0]|0}while(wa>>>0<(va&255)>>>0);ta=va;ua=ka}else{ta=oa;ua=ka}break}default:{ta=pa;ua=qa}}while(0);a[l+((ta&255)+1)>>0]=ra;qa=ua+1|0}}while(0);qa=la?ba+1|0:31;pa=(I|0)==1;wa=(S|0)!=0;i:do if(pa){if(wa){va=Ys(qa<<2)|0;if(!va){Y=0;Z=0;_=143;break b}else xa=va}else xa=K;c[k>>2]=0;c[y>>2]=0;va=xa;ya=0;za=qa;j:while(1){Aa=(va|0)==0;Ba=ya;while(1){k:while(1){Ca=c[q>>2]|0;if(Ca>>>0<(c[r>>2]|0)>>>0){c[q>>2]=Ca+1;Da=d[Ca>>0]|0}else Da=Yt(e)|0;if(!(a[l+(Da+1)>>0]|0))break j;a[n>>0]=Da;switch(Cu(m,n,1,k)|0){case -1:{Y=va;Z=0;_=143;break b;break}case -2:break;default:break k}}if(Aa)Ea=Ba;else{c[va+(Ba<<2)>>2]=c[m>>2];Ea=Ba+1|0}if(wa&(Ea|0)==(za|0))break;else Ba=Ea}za=za<<1|1;Aa=$s(va,za<<2)|0;if(!Aa){Y=va;Z=0;_=143;break b}else{va=Aa;ya=Ea}}if(!(Eu(k)|0)){Y=va;Z=0;_=143;break b}else{Fa=va;Ga=Ba;Ha=0;Ja=va}}else{if(wa){ya=Ys(qa)|0;if(!ya){Y=0;Z=0;_=143;break b}za=0;Aa=qa;ka=ya;while(1){ya=za;do{oa=c[q>>2]|0;if(oa>>>0<(c[r>>2]|0)>>>0){c[q>>2]=oa+1;Ka=d[oa>>0]|0}else Ka=Yt(e)|0;if(!(a[l+(Ka+1)>>0]|0)){Fa=0;Ga=ya;Ha=ka;Ja=0;break i}oa=ya;ya=ya+1|0;a[ka+oa>>0]=Ka}while((ya|0)!=(Aa|0));Aa=Aa<<1|1;oa=$s(ka,Aa)|0;if(!oa){Y=0;Z=ka;_=143;break b}else{za=ya;ka=oa}}}if(!K)while(1){ka=c[q>>2]|0;if(ka>>>0<(c[r>>2]|0)>>>0){c[q>>2]=ka+1;La=d[ka>>0]|0}else La=Yt(e)|0;if(!(a[l+(La+1)>>0]|0)){Fa=0;Ga=0;Ha=0;Ja=0;break i}}ka=0;while(1){za=c[q>>2]|0;if(za>>>0<(c[r>>2]|0)>>>0){c[q>>2]=za+1;Ma=d[za>>0]|0}else Ma=Yt(e)|0;if(!(a[l+(Ma+1)>>0]|0)){Fa=0;Ga=ka;Ha=K;Ja=0;break i}a[K+ka>>0]=Ma;ka=ka+1|0}}while(0);if(!(c[r>>2]|0))Na=c[q>>2]|0;else{qa=(c[q>>2]|0)+-1|0;c[q>>2]=qa;Na=qa}qa=s;ka=Na-(c[t>>2]|0)|0;za=Hv(c[qa>>2]|0,c[qa+4>>2]|0,ka|0,((ka|0)<0)<<31>>31|0)|0;ka=G()|0;if((za|0)==0&(ka|0)==0){Oa=Fa;Pa=S;Qa=D;Ra=Ha;break b}if(!((za|0)==(ba|0)&(ka|0)==(M|0)|la^1)){Oa=Fa;Pa=S;Qa=D;Ra=Ha;break b}do if(wa)if(pa){c[K>>2]=Ja;break}else{c[K>>2]=Ha;break}while(0);if(la){Sa=Fa;Ta=na;Ua=Ha}else{if(Ja|0)c[Ja+(Ga<<2)>>2]=0;if(!Ha){Sa=Fa;Ta=na;Ua=0;break f}a[Ha+Ga>>0]=0;Sa=Fa;Ta=na;Ua=Ha}break}case 120:case 88:case 112:{Va=16;_=131;break}case 111:{Va=8;_=131;break}case 117:case 100:{Va=10;_=131;break}case 105:{Va=0;_=131;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{Wa=+wu(e,I,0);pa=s;wa=c[pa>>2]|0;ka=c[pa+4>>2]|0;pa=(c[q>>2]|0)-(c[t>>2]|0)|0;za=Iv(0,0,pa|0,((pa|0)<0)<<31>>31|0)|0;if((wa|0)==(za|0)&(ka|0)==(G()|0)){Oa=Q;Pa=S;Qa=D;Ra=V;break b}if(!K){Sa=Q;Ta=W;Ua=V}else switch(I|0){case 0:{f[K>>2]=Wa;Sa=Q;Ta=W;Ua=V;break f;break}case 1:{g[K>>3]=Wa;Sa=Q;Ta=W;Ua=V;break f;break}case 2:{g[K>>3]=Wa;Sa=Q;Ta=W;Ua=V;break f;break}default:{Sa=Q;Ta=W;Ua=V;break f}}break}default:{Sa=Q;Ta=W;Ua=V}}while(0);do if((_|0)==131){_=0;M=Xt(e,Va,0,-1,-1)|0;J=G()|0;ka=s;za=c[ka>>2]|0;wa=c[ka+4>>2]|0;ka=(c[q>>2]|0)-(c[t>>2]|0)|0;pa=Iv(0,0,ka|0,((ka|0)<0)<<31>>31|0)|0;if((za|0)==(pa|0)&(wa|0)==(G()|0)){Oa=Q;Pa=S;Qa=D;Ra=V;break b}if((K|0)!=0&(N|0)==112){c[K>>2]=M;Sa=Q;Ta=W;Ua=V;break}else{Xu(K,I,M,J);Sa=Q;Ta=W;Ua=V;break}}while(0);I=s;N=(c[q>>2]|0)-(c[t>>2]|0)|0;J=Hv(c[I>>2]|0,c[I+4>>2]|0,$|0,aa|0)|0;I=Hv(J|0,G()|0,N|0,((N|0)<0)<<31>>31|0)|0;ca=Sa;da=I;ea=G()|0;fa=D+((K|0)!=0&1)|0;ga=Ta;ha=Ua;break c}while(0);I=E+(H&1)|0;Wt(e,0,0);N=c[q>>2]|0;if(N>>>0<(c[r>>2]|0)>>>0){c[q>>2]=N+1;Xa=d[N>>0]|0}else Xa=Yt(e)|0;if((Xa|0)!=(d[I>>0]|0)){_=23;break b}N=Hv(B|0,C|0,1,0)|0;ca=z;da=N;ea=G()|0;fa=D;ga=I;ha=F}else{I=E;while(1){N=I+1|0;if(!(Zt(d[N>>0]|0)|0))break;else I=N}Wt(e,0,0);do{H=c[q>>2]|0;if(H>>>0<(c[r>>2]|0)>>>0){c[q>>2]=H+1;Ya=d[H>>0]|0}else Ya=Yt(e)|0}while((Zt(Ya)|0)!=0);if(!(c[r>>2]|0))Za=c[q>>2]|0;else{H=(c[q>>2]|0)+-1|0;c[q>>2]=H;Za=H}H=s;N=Za-(c[t>>2]|0)|0;J=Hv(c[H>>2]|0,c[H+4>>2]|0,B|0,C|0)|0;H=Hv(J|0,G()|0,N|0,((N|0)<0)<<31>>31|0)|0;ca=z;da=H;ea=G()|0;fa=D;ga=I;ha=F}while(0);E=ga+1|0;A=a[E>>0]|0;if(!(A<<24>>24)){_a=fa;break a}else{z=ca;B=da;C=ea;D=fa;F=ha}}if((_|0)==23){if(c[r>>2]|0)c[q>>2]=(c[q>>2]|0)+-1;if((D|0)!=0|(Xa|0)>-1){_a=D;break}else{$a=z;ab=0;bb=F;_=144}}else if((_|0)==143)if(!D){$a=Y;ab=S;bb=Z;_=144}else{Oa=Y;Pa=S;Qa=D;Ra=Z}if((_|0)==144){Oa=$a;Pa=ab;Qa=-1;Ra=bb}if(!Pa)_a=Qa;else{Zs(Ra);Zs(Oa);_a=Qa}}else _a=0;while(0);if(o|0)Ft(e);Ia=j;return _a|0}function Wu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d;c[e>>2]=c[a>>2];a=b;while(1){b=(c[e>>2]|0)+(4-1)&~(4-1);f=c[b>>2]|0;c[e>>2]=b+4;if(a>>>0>1)a=a+-1|0;else break}Ia=d;return f|0}function Xu(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0;a:do if(d|0)switch(e|0){case -2:{a[d>>0]=f;break a;break}case -1:{b[d>>1]=f;break a;break}case 0:{c[d>>2]=f;break a;break}case 1:{c[d>>2]=f;break a;break}case 3:{h=d;c[h>>2]=f;c[h+4>>2]=g;break a;break}default:break a}while(0);return}function Yu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+84|0;f=c[e>>2]|0;g=d+256|0;h=Mt(f,0,g)|0;i=(h|0)==0?g:h-f|0;h=i>>>0<d>>>0?i:d;Vv(b|0,f|0,h|0)|0;c[a+4>>2]=f+h;b=f+i|0;c[a+8>>2]=b;c[e>>2]=b;return h|0}function Zu(a,b,c){a=a|0;b=b|0;c=c|0;return $u(a,b,((b|0)<0)<<31>>31,c)|0}function _u(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=d;d=zt(a,b,f)|0;Ia=e;return d|0}function $u(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((c[a+76>>2]|0)>-1){f=(Et(a)|0)==0;g=av(a,b,d,e)|0;if(f)h=g;else{Ft(a);h=g}}else h=av(a,b,d,e)|0;return h|0}function av(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if((e|0)==1){f=(c[a+8>>2]|0)-(c[a+4>>2]|0)|0;g=Iv(b|0,d|0,f|0,((f|0)<0)<<31>>31|0)|0;h=g;i=G()|0}else{h=b;i=d}d=a+20|0;b=a+28|0;if((c[d>>2]|0)>>>0>(c[b>>2]|0)>>>0?(Oa[c[a+36>>2]&7](a,0,0)|0,(c[d>>2]|0)==0):0)j=-1;else{c[a+16>>2]=0;c[b>>2]=0;c[d>>2]=0;Pa[c[a+40>>2]&3](a,h,i,e)|0;if((G()|0)<0)j=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;j=0}}return j|0}function bv(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=a[c>>0]|0;do if(d<<24>>24){e=nu(b,d<<24>>24)|0;if(e)if(a[c+1>>0]|0)if(a[e+1>>0]|0){if(!(a[c+2>>0]|0)){f=cv(e,c)|0;break}if(a[e+2>>0]|0){if(!(a[c+3>>0]|0)){f=dv(e,c)|0;break}if(a[e+3>>0]|0)if(!(a[c+4>>0]|0)){f=ev(e,c)|0;break}else{f=fv(e,c)|0;break}else f=0}else f=0}else f=0;else f=e;else f=0}else f=b;while(0);return f|0}function cv(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=(d[c>>0]|0)<<8|(d[c+1>>0]|0);c=b+1|0;f=a[c>>0]|0;a:do if(!(f<<24>>24))g=0;else{h=c;i=(d[b>>0]|0)<<8|f&255;while(1){j=i&65535;if((j|0)==(e|0))break;k=h+1|0;l=a[k>>0]|0;if(!(l<<24>>24)){g=0;break a}else{h=k;i=j<<8|l&255}}g=h+-1|0}while(0);return g|0}function dv(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=(d[c+1>>0]|0)<<16|(d[c>>0]|0)<<24|(d[c+2>>0]|0)<<8;c=b+2|0;f=a[c>>0]|0;g=(d[b+1>>0]|0)<<16|(d[b>>0]|0)<<24|(f&255)<<8;b=f<<24>>24==0;if((g|0)==(e|0)|b){h=c;i=b}else{b=c;c=g;while(1){g=b+1|0;f=a[g>>0]|0;c=(c|f&255)<<8;j=f<<24>>24==0;if((c|0)==(e|0)|j){h=g;i=j;break}else b=g}}return (i?0:h+-2|0)|0}function ev(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=(d[c+1>>0]|0)<<16|(d[c>>0]|0)<<24|(d[c+2>>0]|0)<<8|(d[c+3>>0]|0);c=b+3|0;f=a[c>>0]|0;g=(d[b+1>>0]|0)<<16|(d[b>>0]|0)<<24|(d[b+2>>0]|0)<<8|f&255;b=f<<24>>24==0;if((g|0)==(e|0)|b){h=c;i=b}else{b=c;c=g;while(1){g=b+1|0;f=a[g>>0]|0;c=c<<8|f&255;j=f<<24>>24==0;if((c|0)==(e|0)|j){h=g;i=j;break}else b=g}}return (i?0:h+-3|0)|0}function fv(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;f=Ia;Ia=Ia+1056|0;g=f+1024|0;h=f;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;i=a[e>>0]|0;a:do if(i<<24>>24){j=i;k=0;do{if(!(a[b+k>>0]|0)){l=0;break a}m=j&255;n=g+(m>>>5<<2)|0;c[n>>2]=c[n>>2]|1<<(m&31);k=k+1|0;c[h+(m<<2)>>2]=k;j=a[e+k>>0]|0}while(j<<24>>24!=0);j=k>>>0>1;if(j){m=1;n=-1;o=0;p=1;q=1;while(1){r=a[e+(p+n)>>0]|0;s=a[e+m>>0]|0;do if(r<<24>>24==s<<24>>24)if((p|0)==(q|0)){t=n;u=q+o|0;v=1;w=q;break}else{t=n;u=o;v=p+1|0;w=q;break}else if((r&255)>(s&255)){t=n;u=m;v=1;w=m-n|0;break}else{t=o;u=o+1|0;v=1;w=1;break}while(0);m=v+u|0;if(m>>>0>=k>>>0)break;else{n=t;o=u;p=v;q=w}}if(j){q=1;p=-1;o=0;n=1;m=1;while(1){s=a[e+(n+p)>>0]|0;r=a[e+q>>0]|0;do if(s<<24>>24==r<<24>>24)if((n|0)==(m|0)){x=p;y=m+o|0;z=1;A=m;break}else{x=p;y=o;z=n+1|0;A=m;break}else if((s&255)<(r&255)){x=p;y=q;z=1;A=q-p|0;break}else{x=o;y=o+1|0;z=1;A=1;break}while(0);q=z+y|0;if(q>>>0>=k>>>0){B=t;C=x;D=k;E=w;F=A;G=25;break}else{p=x;o=y;n=z;m=A}}}else{B=t;C=-1;D=k;E=w;F=1;G=25}}else{B=-1;C=-1;D=k;E=1;F=1;G=25}}else{B=-1;C=-1;D=0;E=1;F=1;G=25}while(0);b:do if((G|0)==25){w=(C+1|0)>>>0>(B+1|0)>>>0;t=w?F:E;A=w?C:B;w=A+1|0;if(!(tt(e,e+t|0,w)|0)){z=D-t|0;H=z;I=t;J=z}else{z=D-A+-1|0;t=(A>>>0>z>>>0?A:z)+1|0;H=0;I=t;J=D-t|0}t=D|63;z=D+-1|0;y=(H|0)!=0;x=b;v=0;u=b;while(1){i=x;do if((u-i|0)>>>0<D>>>0){m=Mt(u,0,t)|0;if(m)if((m-i|0)>>>0<D>>>0){l=0;break b}else{K=m;break}else{K=u+t|0;break}}else K=u;while(0);i=d[x+z>>0]|0;c:do if(!(1<<(i&31)&c[g+(i>>>5<<2)>>2])){L=D;M=0}else{m=D-(c[h+(i<<2)>>2]|0)|0;if(m|0){L=y&(v|0)!=0&m>>>0<I>>>0?J:m;M=0;break}m=w>>>0>v>>>0;n=m?w:v;o=a[e+n>>0]|0;d:do if(o<<24>>24){p=o;q=n;while(1){if(p<<24>>24!=(a[x+q>>0]|0))break;j=q+1|0;p=a[e+j>>0]|0;if(!(p<<24>>24))break d;else q=j}L=q-A|0;M=0;break c}while(0);if(!m){l=x;break b}n=w;while(1){n=n+-1|0;if((a[e+n>>0]|0)!=(a[x+n>>0]|0)){L=I;M=H;break c}if(n>>>0<=v>>>0){l=x;break b}}}while(0);x=x+L|0;v=M;u=K}}while(0);Ia=f;return l|0}function gv(a,b){a=a|0;b=b|0;var c=0;c=bu(a)|0;return ((hv(a,1,c,b)|0)!=(c|0))<<31>>31|0}function hv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=B(d,b)|0;g=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){d=(Et(e)|0)==0;h=St(a,f,e)|0;if(d)i=h;else{Ft(e);i=h}}else i=St(a,f,e)|0;if((i|0)==(f|0))j=g;else j=(i>>>0)/(b>>>0)|0;return j|0}function iv(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Ia;Ia=Ia+16|0;g=f;h=e&255;a[g>>0]=h;i=b+16|0;j=c[i>>2]|0;if(!j)if(!(Tt(b)|0)){k=c[i>>2]|0;l=4}else m=-1;else{k=j;l=4}do if((l|0)==4){j=b+20|0;i=c[j>>2]|0;if(i>>>0<k>>>0?(n=e&255,(n|0)!=(a[b+75>>0]|0)):0){c[j>>2]=i+1;a[i>>0]=h;m=n;break}if((Oa[c[b+36>>2]&7](b,g,1)|0)==1)m=d[g>>0]|0;else m=-1}while(0);Ia=f;return m|0}function jv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=d;a:do if(!((f^b)&3)){g=(e|0)!=0;if(g&(f&3|0)!=0){h=b;i=e;j=d;while(1){k=a[j>>0]|0;a[h>>0]=k;if(!(k<<24>>24)){l=h;m=i;break a}k=i+-1|0;n=j+1|0;o=h+1|0;p=(k|0)!=0;if(p&(n&3|0)!=0){h=o;i=k;j=n}else{q=o;r=k;s=n;t=p;break}}}else{q=b;r=e;s=d;t=g}if(t)if(!(a[s>>0]|0)){l=q;m=r}else{b:do if(r>>>0>3){j=r;i=q;h=s;while(1){p=c[h>>2]|0;if((p&-2139062144^-2139062144)&p+-16843009|0){u=j;v=i;w=h;break b}c[i>>2]=p;p=j+-4|0;n=h+4|0;k=i+4|0;if(p>>>0>3){j=p;i=k;h=n}else{u=p;v=k;w=n;break}}}else{u=r;v=q;w=s}while(0);x=v;y=u;z=w;A=13}else{l=q;m=0}}else{x=b;y=e;z=d;A=13}while(0);c:do if((A|0)==13)if(!y){l=x;m=0}else{d=x;e=y;b=z;while(1){q=a[b>>0]|0;a[d>>0]=q;if(!(q<<24>>24)){l=d;m=e;break c}e=e+-1|0;q=d+1|0;if(!e){l=q;m=0;break}else{d=q;b=b+1|0}}}while(0);Wv(l|0,0,m|0)|0;return l|0}function kv(a,b,c){a=a|0;b=b|0;c=c|0;jv(a,b,c)|0;return a|0}function lv(b,c){b=b|0;c=c|0;var d=0;d=b+(Bu(b,c)|0)|0;return ((a[d>>0]|0)==0?0:d)|0}function mv(a){a=a|0;return nv(a,c[8745]|0)|0}function nv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((c[d+76>>2]|0)>=0?(Et(d)|0)!=0:0){e=b&255;f=b&255;if((f|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=e;i=f}else i=iv(d,b)|0;Ft(d);j=i}else k=3;do if((k|0)==3){i=b&255;f=b&255;if((f|0)!=(a[d+75>>0]|0)?(e=d+20|0,h=c[e>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[e>>2]=h+1;a[h>>0]=i;j=f;break}j=iv(d,b)|0}while(0);return j|0}function ov(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if((c[a+76>>2]|0)>-1){b=(Et(a)|0)==0;d=pv(a)|0;e=G()|0;if(b){f=e;g=d}else{Ft(a);f=e;g=d}}else{d=pv(a)|0;f=G()|0;g=d}F(f|0);return g|0}function pv(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;d=Pa[c[a+40>>2]&3](a,0,0,b)|0;b=G()|0;if((b|0)<0){e=b;f=d}else{g=(c[a+8>>2]|0)-(c[a+4>>2]|0)|0;h=Iv(d|0,b|0,g|0,((g|0)<0)<<31>>31|0)|0;g=G()|0;b=(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;a=Hv(h|0,g|0,b|0,((b|0)<0)<<31>>31|0)|0;e=G()|0;f=a}F(e|0);return f|0}function qv(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[8745]|0;if((c[d+76>>2]|0)>-1)e=Et(d)|0;else e=0;do if((gv(b,d)|0)<0)f=-1;else{if((a[d+75>>0]|0)!=10?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=10;f=0;break}f=(iv(d,10)|0)>>31}while(0);if(e|0)Ft(d);return f|0}function rv(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;if((c[a+76>>2]|0)>=0?(Et(a)|0)!=0:0){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;f=d[e>>0]|0}else f=_t(a)|0;Ft(a);g=f}else h=3;do if((h|0)==3){f=a+4|0;e=c[f>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[f>>2]=e+1;g=d[e>>0]|0;break}else{g=_t(a)|0;break}}while(0);return g|0}function sv(a){a=a|0;var b=0,d=0;b=ov(a)|0;a=G()|0;if((a|0)>0|(a|0)==0&b>>>0>2147483647){c[(gt()|0)>>2]=75;d=-1}else d=b;return d|0}function tv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=B(e,d)|0;h=(d|0)==0?0:e;if((c[f+76>>2]|0)>-1)i=Et(f)|0;else i=0;e=f+74|0;j=a[e>>0]|0;a[e>>0]=j+255|j;j=f+4|0;e=c[j>>2]|0;k=(c[f+8>>2]|0)-e|0;if((k|0)>0){l=k>>>0<g>>>0?k:g;Vv(b|0,e|0,l|0)|0;c[j>>2]=(c[j>>2]|0)+l;m=b+l|0;n=g-l|0}else{m=b;n=g}a:do if(!n)o=13;else{b=f+32|0;l=m;j=n;while(1){if($t(f)|0)break;e=Oa[c[b>>2]&7](f,l,j)|0;if((e+1|0)>>>0<2)break;k=j-e|0;if(!k){o=13;break a}else{l=l+e|0;j=k}}if(i|0)Ft(f);p=((g-j|0)>>>0)/(d>>>0)|0}while(0);if((o|0)==13)if(!i)p=h;else{Ft(f);p=h}return p|0}function uv(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Et(a)|0)==0;av(a,0,0,0)|0;c[a>>2]=c[a>>2]&-33;if(!b)Ft(a)}else{av(a,0,0,0)|0;c[a>>2]=c[a>>2]&-33}return}function vv(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=d;c[e>>2]=b;b=zt(c[8745]|0,a,e)|0;Ia=d;return b|0}function wv(a,b,c){a=a|0;b=b|0;c=c|0;return au(a,b)|0}function xv(a,b){a=a|0;b=b|0;yv()|0;return wv(a,b,0)|0}function yv(){return Rt()|0}function zv(a){a=a|0;var b=0;if(!(Av(a)|0))b=(vt(a)|0)!=0&1;else b=1;return b|0}function Av(a){a=a|0;return ((a|32)+-97|0)>>>0<26|0}function Bv(){return 35240}function Cv(){V(3196392);return}function Dv(){return 3196376}function Ev(){return 3196384}function Fv(){return 3196388}function Gv(){return 3196392}function Hv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (F(b+d+(e>>>0<a>>>0|0)>>>0|0),e|0)|0}function Iv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (F(e|0),a-c>>>0|0)|0}function Jv(a){a=a|0;return (a?31-(D(a^a-1)|0)|0:32)|0}function Kv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0;g=a;h=b;i=h;j=d;k=e;l=k;if(!i){m=(f|0)!=0;if(!l){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (F(n|0),o)|0}else{if(!m){n=0;o=0;return (F(n|0),o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (F(n|0),o)|0}}m=(l|0)==0;do if(j){if(!m){p=(D(l|0)|0)-(D(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break}if(!f){n=0;o=0;return (F(n|0),o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (F(n|0),o)|0}r=j-1|0;if(r&j|0){s=(D(j|0)|0)+33-(D(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<<p|g>>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<<q&y;x=(i<<q|g>>>(z>>>0))&y|g<<p&s-33>>31;break}if(f|0){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (F(n|0),o)|0}else{r=Jv(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (F(n|0),o)|0}}else{if(m){if(f|0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (F(n|0),o)|0}if(!g){if(f|0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (F(n|0),o)|0}r=l-1|0;if(!(r&l)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((Jv(l|0)|0)>>>0);return (F(n|0),o)|0}r=(D(l|0)|0)-(D(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break}if(!f){n=0;o=0;return (F(n|0),o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (F(n|0),o)|0}while(0);if(!t){B=x;C=w;E=v;H=u;I=0;J=0}else{b=d|0|0;d=k|e&0;e=Hv(b|0,d|0,-1,-1)|0;k=G()|0;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;Iv(e|0,k|0,g|0,a|0)|0;i=G()|0;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Iv(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=G()|0;u=u-1|0}while((u|0)!=0);B=h;C=x;E=w;H=v;I=0;J=t}t=C;C=0;if(f|0){c[f>>2]=H;c[f+4>>2]=E}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|I;o=(t<<1|0>>>31)&-2|J;return (F(n|0),o)|0}function Lv(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;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=Iv(e^a|0,f^b|0,e|0,f|0)|0;b=G()|0;a=g^e;e=h^f;return Iv((Kv(i,b,Iv(g^c|0,h^d|0,g|0,h|0)|0,G()|0,0)|0)^a|0,(G()|0)^e|0,a|0,e|0)|0}function Mv(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=B(d,c)|0;f=a>>>16;a=(e>>>16)+(B(d,f)|0)|0;d=b>>>16;b=B(d,c)|0;return (F((a>>>16)+(B(d,f)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|e&65535|0)|0}function Nv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=Mv(e,a)|0;f=G()|0;return (F((B(b,a)|0)+(B(d,e)|0)+f|f&0|0),c|0|0)|0}function Ov(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Kv(a,b,c,d,0)|0}function Pv(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b>>c|0);return a>>>c|(b&(1<<c)-1)<<32-c}F(((b|0)<0?-1:0)|0);return b>>c-32|0}function Qv(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b>>>c|0);return a>>>c|(b&(1<<c)-1)<<32-c}F(0);return b>>>c-32|0}function Rv(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b<<c|(a&(1<<c)-1<<32-c)>>>32-c|0);return a<<c}F(a<<c-32|0);return 0}function Sv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;l=l+1|0;c[a>>2]=l;while((f|0)<(e|0)){if(!(c[d+(f<<3)>>2]|0)){c[d+(f<<3)>>2]=l;c[d+((f<<3)+4)>>2]=b;c[d+((f<<3)+8)>>2]=0;F(e|0);return d|0}f=f+1|0}e=e*2|0;d=$s(d|0,8*(e+1|0)|0)|0;d=Sv(a|0,b|0,d|0,e|0)|0;F(e|0);return d|0}function Tv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while((e|0)<(d|0)){f=c[b+(e<<3)>>2]|0;if(!f)break;if((f|0)==(a|0))return c[b+((e<<3)+4)>>2]|0;e=e+1|0}return 0}function Uv(a,b){a=a|0;b=b|0;if(!j){j=a;k=b}}function Vv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){ta(b|0,d|0,e|0)|0;return b|0}f=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}h=g&-4|0;e=h-64|0;while((b|0)<=(e|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{h=g-4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return f|0}function Wv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=f&-4|0;h=d|d<<8|d<<16|d<<24;i=g-64|0;while((b|0)<=(i|0)){c[b>>2]=h;c[b+4>>2]=h;c[b+8>>2]=h;c[b+12>>2]=h;c[b+16>>2]=h;c[b+20>>2]=h;c[b+24>>2]=h;c[b+28>>2]=h;c[b+32>>2]=h;c[b+36>>2]=h;c[b+40>>2]=h;c[b+44>>2]=h;c[b+48>>2]=h;c[b+52>>2]=h;c[b+56>>2]=h;c[b+60>>2]=h;b=b+64|0}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function Xv(a){a=a|0;var b=0,d=0,e=0;b=ra()|0;d=c[i>>2]|0;e=d+a|0;if((a|0)>0&(e|0)<(d|0)|(e|0)<0){Ha(e|0)|0;X(12);return -1}if((e|0)>(b|0))if(!(ua(e|0)|0)){X(12);return -1}c[i>>2]=e;return d|0}function Yv(a,b){a=a|0;b=b|0;return La[a&255](b|0)|0}function Zv(a,b,c,d,e,f,g){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;f=f|0;g=g|0;return Ma[a&1](b|0,+c,d|0,e|0,f|0,g|0)|0}function _v(a,b,c){a=a|0;b=b|0;c=c|0;return Na[a&3](b|0,c|0)|0}function $v(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Oa[a&7](b|0,c|0,d|0)|0}function aw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Pa[a&3](b|0,c|0,d|0,e|0)|0}function bw(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Qa[a&3](b|0,c|0,d|0,e|0,f|0)|0}function cw(a){a=a|0;Ra[a&1]()}function dw(a,b){a=a|0;b=b|0;Sa[a&7](b|0)}function ew(a,b,c){a=a|0;b=b|0;c=c|0;Ta[a&15](b|0,c|0)}function fw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ua[a&3](b|0,c|0,d|0)}function gw(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Va[a&0](b|0,c|0,d|0,e|0,f|0)}function hw(a){a=a|0;E(0);return 0}function iw(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;E(1);return 0}function jw(a,b){a=a|0;b=b|0;E(2);return 0}function kw(a,b,c){a=a|0;b=b|0;c=c|0;E(3);return 0}function lw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;E(4);return 0}function mw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;E(5);return 0}function nw(){E(6)}function ow(a){a=a|0;E(7)}function pw(a,b){a=a|0;b=b|0;E(8)}function qw(a,b,c){a=a|0;b=b|0;c=c|0;E(9)}function rw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;E(10)} + +// EMSCRIPTEN_END_FUNCS +var La=[hw,ct,bb,cb,Xf,_f,di,Yf,$f,ei,$h,fi,gi,hi,ii,cg,Wf,bg,ji,ki,li,mi,ni,oi,pi,qi,ri,si,ti,ui,vi,wi,xi,qg,pg,rg,sg,zi,Ai,Bi,Ci,Di,Ei,Fi,Gi,Hi,Ii,Ji,Ki,Li,Mi,Ni,Oi,Pi,Qi,Ri,Si,Ti,Ui,Vi,Wi,Xi,Yi,Zi,_i,$i,aj,bj,cj,dj,ej,fj,gj,hj,ij,jj,kj,lj,mj,nj,oj,pj,qj,rj,sj,tj,uj,vj,wj,xj,yj,zj,Aj,Bj,Cj,Dj,Ej,Fj,Gj,Hj,Ij,Jj,Kj,Lj,Mj,Nj,Oj,Pj,Qj,Rj,Sj,Tj,Uj,Vj,Wj,Xj,Yj,Zj,_j,$j,ak,bk,ck,dk,ek,Rf,Qf,Sf,Tf,Uf,Vf,ag,kg,fk,mg,ug,tg,ng,gk,hk,ik,jk,kk,lk,mk,nk,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw,hw];var Ma=[iw,At];var Na=[jw,Mf,Lm,Mm];var Oa=[kw,it,Vt,Hf,jt,dt,Uu,kw];var Pa=[lw,et,Yk,lw];var Qa=[mw,xk,Bk,mw];var Ra=[nw,Gn];var Sa=[ow,eb,Dm,Em,ls,ow,ow,ow];var Ta=[pw,nn,wc,ce,ge,Nf,gg,hg,Bt,pw,pw,pw,pw,pw,pw,pw];var Ua=[qw,db,ks,qw];var Va=[rw];return{___divdi3:Lv,___emscripten_environ_constructor:Cv,___errno_location:gt,___muldi3:Nv,___udivdi3:Ov,__get_daylight:Ev,__get_environ:Gv,__get_timezone:Fv,__get_tzname:Dv,_bitshift64Ashr:Pv,_bitshift64Lshr:Qv,_bitshift64Shl:Rv,_codo_mixer_callback:Iq,_free:Zs,_i64Add:Hv,_i64Subtract:Iv,_main:Jb,_malloc:Ys,_memcpy:Vv,_memset:Wv,_mix_0:Jr,_realloc:$s,_saveSetjmp:Sv,_sbrk:Xv,_setThrew:Uv,_testSetjmp:Tv,dynCall_ii:Yv,dynCall_iidiiii:Zv,dynCall_iii:_v,dynCall_iiii:$v,dynCall_iiiii:aw,dynCall_iiiiii:bw,dynCall_v:cw,dynCall_vi:dw,dynCall_vii:ew,dynCall_viii:fw,dynCall_viiiii:gw,establishStackSpace:Za,stackAlloc:Wa,stackRestore:Ya,stackSave:Xa}}) + + +// EMSCRIPTEN_END_ASM +(asmGlobalArg,asmLibraryArg,buffer);var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var ___emscripten_environ_constructor=Module["___emscripten_environ_constructor"]=asm["___emscripten_environ_constructor"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var __get_daylight=Module["__get_daylight"]=asm["__get_daylight"];var __get_environ=Module["__get_environ"]=asm["__get_environ"];var __get_timezone=Module["__get_timezone"]=asm["__get_timezone"];var __get_tzname=Module["__get_tzname"]=asm["__get_tzname"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _codo_mixer_callback=Module["_codo_mixer_callback"]=asm["_codo_mixer_callback"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _main=Module["_main"]=asm["_main"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];var _mix_0=Module["_mix_0"]=asm["_mix_0"];var _realloc=Module["_realloc"]=asm["_realloc"];var _saveSetjmp=Module["_saveSetjmp"]=asm["_saveSetjmp"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _setThrew=Module["_setThrew"]=asm["_setThrew"];var _testSetjmp=Module["_testSetjmp"]=asm["_testSetjmp"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iidiiii=Module["dynCall_iidiiii"]=asm["dynCall_iidiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];Module["asm"]=asm;Module["ccall"]=ccall;Module["getValue"]=getValue;Module["getMemory"]=getMemory;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(Module["thisProgram"]);for(var i=1;i<argc;i++){HEAP32[(argv>>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);Module["quit"](1,e)}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}Module["quit"](status,new ExitStatus(status))}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run(); +