From 8709a4af33c0c397af512260ae79d41128b1c51a Mon Sep 17 00:00:00 2001 From: RII-Mango Date: Mon, 29 Jan 2024 11:43:37 -0600 Subject: [PATCH] minor changes to dependancies + build script waiting on a fix in lossless.js, reverting to 2.0.7 using esbuild by default instead of browserify/uglify (npm run build-old will still use the previous build settings) adding git+ to repository URL per npm run fix suggestion --- package.json | 8 +- release/current/daikon-min.js | 70 +- release/current/daikon.js | 114549 +++++++++++++++++++++++++------ 3 files changed, 92095 insertions(+), 22532 deletions(-) diff --git a/package.json b/package.json index c6287d9..749edb9 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "@wearemothership/dicom-character-set": "^1.0.4-opt.1", - "jpeg-lossless-decoder-js": "^2.0.7", + "jpeg-lossless-decoder-js": "2.0.7", "pako": "^2.1", "fflate": "*", "xss": "1.0.14" @@ -24,14 +24,14 @@ }, "scripts": { "test": "NODE_ICU_DATA=./node_modules/icu4c-data/ && mocha --timeout 0 tests", - "esbuild": "rm -rf build; mkdir build; esbuild src/main.js --bundle --global-name=daikon --platform=node --outfile=build/daikon.js; esbuild src/main.js --bundle --global-name=daikon --platform=node --minify --outfile=build/daikon-min.js", - "build": "rm -rf build; mkdir build; browserify --standalone daikon src/main.js -o build/daikon.js; uglifyjs build/daikon.js -o build/daikon-min.js", + "build": "rm -rf build; mkdir build; esbuild src/main.js --bundle --global-name=daikon --platform=node --outfile=build/daikon.js; esbuild src/main.js --bundle --global-name=daikon --platform=node --minify --outfile=build/daikon-min.js", + "build-old": "rm -rf build; mkdir build; browserify --standalone daikon src/main.js -o build/daikon.js; uglifyjs build/daikon.js -o build/daikon-min.js", "release": "rm release/current/*.js; cp build/*.js release/current/.", "doc": "rm -rf build; mkdir build; ./node_modules/.bin/jsdoc2md src/*.js > build/docs.md" }, "repository": { "type": "git", - "url": "https://github.com/rii-mango/Daikon.git" + "url": "git+https://github.com/rii-mango/Daikon.git" }, "keywords": [ "JavaScript", diff --git a/release/current/daikon-min.js b/release/current/daikon-min.js index a495791..79ac41c 100644 --- a/release/current/daikon-min.js +++ b/release/current/daikon-min.js @@ -1 +1,69 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.daikon=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?function(x){dump(x)}:function(x){}}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=function(title){document.title=title}}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=function(){}}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:function(value){tempRet0=value},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(stackTop){STACKTOP=stackTop},getNativeTypeSize:function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}},getNativeFieldSize:function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr},getAlignSize:function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)},dynCall:function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}},functionPointers:[],addFunction:function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret},alignMemory:function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret},makeBigInt:function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret},stringToC:function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret}};var toC={string:JSfuncs["stringToC"],array:JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){var OLD_TOTAL_MEMORY=TOTAL_MEMORY;var LIMIT=Math.pow(2,31);if(DYNAMICTOP>=LIMIT)return false;while(TOTAL_MEMORY<=DYNAMICTOP){if(TOTAL_MEMORY=LIMIT)return false;try{if(ArrayBuffer.transfer){buffer=ArrayBuffer.transfer(buffer,TOTAL_MEMORY)}else{var oldHEAP8=HEAP8;buffer=new ArrayBuffer(TOTAL_MEMORY)}}catch(e){return false}var success=_emscripten_replace_memory(buffer);if(!success)return false;Module["buffer"]=buffer;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);if(!ArrayBuffer.transfer){HEAP8.set(oldHEAP8)}return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=function(buffer){return buffer.byteLength}}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32};Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+59744;__ATINIT__.push({func:function(){__GLOBAL__I_000101()}},{func:function(){__GLOBAL__sub_I_jpegls_cpp()}},{func:function(){__GLOBAL__sub_I_iostream_cpp()}});allocate([0,0,0,0,0,0,0,0,84,144,0,0,31,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,237,191,0,0,48,0,0,0,0,0,0,0,44,144,0,0,41,192,0,0,84,144,0,0,55,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,115,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,192,0,0,152,3,0,0,0,0,0,0,84,144,0,0,241,192,0,0,216,3,0,0,0,0,0,0,84,144,0,0,55,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,95,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,135,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,216,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,241,193,0,0,48,0,0,0,0,0,0,0,44,144,0,0,13,194,0,0,84,144,0,0,80,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,44,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,139,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,179,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,219,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,3,195,0,0,48,0,0,0,0,0,0,0,84,144,0,0,103,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,157,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,211,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,8,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,71,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,138,196,0,0,160,1,0,0,0,0,0,0,44,144,0,0,120,196,0,0,84,144,0,0,187,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,246,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,49,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,103,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,157,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,210,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,17,198,0,0,160,1,0,0,0,0,0,0,84,144,0,0,86,198,0,0,72,3,0,0,0,0,0,0,84,144,0,0,162,198,0,0,56,2,0,0,0,0,0,0,44,144,0,0,182,198,0,0,84,144,0,0,196,198,0,0,56,2,0,0,0,0,0,0,84,144,0,0,112,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,125,199,0,0,84,144,0,0,138,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,156,199,0,0,84,144,0,0,169,199,0,0,96,2,0,0,0,0,0,0,84,144,0,0,181,199,0,0,120,2,0,0,0,0,0,0,84,144,0,0,214,199,0,0,144,2,0,0,0,0,0,0,84,144,0,0,28,200,0,0,144,2,0,0,0,0,0,0,84,144,0,0,248,199,0,0,176,2,0,0,0,0,0,0,84,144,0,0,62,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,99,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,182,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,245,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,13,222,0,0,152,3,0,0,0,0,0,0,84,144,0,0,38,222,0,0,152,3,0,0,0,0,0,0,44,144,0,0,62,222,0,0,84,144,0,0,87,222,0,0,104,2,0,0,0,0,0,0,44,144,0,0,110,222,0,0,84,144,0,0,135,222,0,0,72,3,0,0,0,0,0,0,84,144,0,0,161,222,0,0,56,3,0,0,0,0,0,0,44,144,0,0,187,222,0,0,84,144,0,0,205,222,0,0,112,3,0,0,0,0,0,0,84,144,0,0,247,222,0,0,112,3,0,0,0,0,0,0,44,144,0,0,33,223,0,0,44,144,0,0,82,223,0,0,124,144,0,0,131,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,178,223,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,124,144,0,0,225,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,16,224,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,84,144,0,0,63,224,0,0,80,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,144,0,0,187,224,0,0,48,3,0,0,0,0,0,0,124,144,0,0,209,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,124,144,0,0,227,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,5,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,40,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,75,225,0,0,144,4,0,0,0,0,0,0,84,144,0,0,109,225,0,0,144,4,0,0,0,0,0,0,124,144,0,0,144,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,178,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,200,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,220,225,0,0,32,4,0,0,0,0,0,0,124,144,0,0,240,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,84,144,0,0,2,226,0,0,32,4,0,0,0,0,0,0,84,144,0,0,23,226,0,0,32,4,0,0,0,0,0,0,124,144,0,0,44,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,80,10,0,0,0,0,0,0,124,144,0,0,112,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,104,10,0,0,0,0,0,0,124,144,0,0,180,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,128,10,0,0,0,0,0,0,124,144,0,0,248,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,152,10,0,0,0,0,0,0,124,144,0,0,60,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,184,10,0,0,0,8,0,0,124,144,0,0,129,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,192,10,0,0,0,8,0,0,124,144,0,0,198,227,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,11,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,80,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,108,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,136,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,164,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,192,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,216,10,0,0,0,0,0,0,124,144,0,0,6,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,224,10,0,0,0,0,0,0,124,144,0,0,76,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,232,10,0,0,0,0,0,0,124,144,0,0,146,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,240,10,0,0,0,0,0,0,124,144,0,0,216,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,124,144,0,0,237,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,144,0,0,73,233,0,0,44,144,0,0,50,233,0,0,124,144,0,0,28,233,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,237,232,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,215,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,124,144,0,0,168,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,44,144,0,0,149,232,0,0,44,144,0,0,115,232,0,0,44,144,0,0,81,232,0,0,44,144,0,0,60,232,0,0,44,144,0,0,39,232,0,0,44,144,0,0,14,232,0,0,44,144,0,0,245,231,0,0,44,144,0,0,220,231,0,0,44,144,0,0,195,231,0,0,44,144,0,0,171,231,0,0,44,144,0,0,190,232,0,0,44,144,0,0,3,233],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([156,143,0,0,0,0,0,0,8,2,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,248,1,0,0,3,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,232,1,0,0,5,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,216,1,0,0,7,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,200,1,0,0,9,0,0,0,10,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,184,1,0,0,11,0,0,0,12,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,168,1,0,0,13,0,0,0,14,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,144,1,0,0,15,0,0,0,16,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,128,1,0,0,17,0,0,0,18,0,0,0,9,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,112,1,0,0,19,0,0,0,20,0,0,0,10,0,0,0,2,0,0,0,10,0,0,0,0,0,0,0,96,1,0,0,21,0,0,0,22,0,0,0,11,0,0,0,3,0,0,0,11,0,0,0,0,0,0,0,80,1,0,0,23,0,0,0,24,0,0,0,12,0,0,0,4,0,0,0,12,0,0,0,0,0,0,0,64,1,0,0,25,0,0,0,26,0,0,0,13,0,0,0,5,0,0,0,13,0,0,0,0,0,0,0,240,0,0,0,27,0,0,0,28,0,0,0,14,0,0,0,6,0,0,0,14,0,0,0,0,0,0,0,224,0,0,0,29,0,0,0,30,0,0,0,15,0,0,0,7,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,31,0,0,0,32,0,0,0,16,0,0,0,8,0,0,0,16,0,0,0,0,0,0,0,200,0,0,0,33,0,0,0,34,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,184,0,0,0,33,0,0,0,35,0,0,0,3,0,0,0,4,0,0,0,56,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,200,255,255,255,200,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,56,0,0,0,0,0,0,0,104,0,0,0,40,0,0,0,41,0,0,0,200,255,255,255,200,255,255,255,104,0,0,0,42,0,0,0,43,0,0,0,0,0,0,0,88,0,0,0,44,0,0,0,45,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,17,0,0,0,3,0,0,0,18,0,0,0,104,141,0,0,64,141,0,0,84,141,0,0,124,141,0,0,0,0,0,0,32,0,0,0,46,0,0,0,47,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,56,0,0,0,48,0,0,0,49,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,72,0,0,0,50,0,0,0,51,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,120,0,0,0,52,0,0,0,53,0,0,0,12,0,0,0,13,0,0,0,0,0,0,0,136,0,0,0,54,0,0,0,55,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,152,0,0,0,56,0,0,0,57,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,168,0,0,0,58,0,0,0,59,0,0,0,18,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,216,0,0,0,60,0,0,0,61,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,62,0,0,0,63,0,0,0,20,0,0,0,21,0,0,0,0,0,0,0,16,1,0,0,64,0,0,0,65,0,0,0,22,0,0,0,23,0,0,0,0,0,0,0,32,1,0,0,66,0,0,0,67,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,48,1,0,0,68,0,0,0,69,0,0,0,26,0,0,0,27,0,0,0,0,0,0,0,160,1,0,0,70,0,0,0,71,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,24,2,0,0,72,0,0,0,73,0,0,0,5,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,0,0,0,0,40,2,0,0,74,0,0,0,75,0,0,0,18,0,0,0,0,0,0,0,64,2,0,0,76,0,0,0,77,0,0,0,19,0,0,0,2,0,0,0,0,0,0,0,80,2,0,0,78,0,0,0,79,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,104,2,0,0,80,0,0,0,81,0,0,0,7,0,0,0,0,0,0,0,128,2,0,0,82,0,0,0,83,0,0,0,8,0,0,0,0,0,0,0,160,2,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,2,0,0,0,9,0,0,0,28,0,0,0,0,0,0,0,208,2,0,0,84,0,0,0,88,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,3,0,0,0,10,0,0,0,29,0,0,0,0,0,0,0,224,2,0,0,84,0,0,0,89,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,4,0,0,0,11,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,1,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,88,146,0,0,200,146,0,0,56,147,0,0,56,147,0,0,120,187,0,0,168,155,0,0,168,149,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,9,0,0,0,159,219,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,9,0,0,0,151,215,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,9,0,0,0,143,211,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+35640);allocate([1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+39844);allocate([240,2,0,0,90,0,0,0,91,0,0,0,20,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,14,0,0,0,20,0,0,0,0,0,0,0,0,3,0,0,90,0,0,0,92,0,0,0,21,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,16,0,0,0,21,0,0,0,15,0,0,0,22,0,0,0,0,0,0,0,16,3,0,0,93,0,0,0,94,0,0,0,22,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,17,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,32,3,0,0,93,0,0,0,95,0,0,0,23,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,19,0,0,0,20,0,0,0,25,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,56,3,0,0,96,0,0,0,97,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,3,0,0,93,0,0,0,98,0,0,0,17,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,160,3,0,0,90,0,0,0,99,0,0,0,24,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,15,0,0,0,22,0,0,0,8,0,0,0,0,0,0,0,168,3,0,0,100,0,0,0,101,0,0,0,248,255,255,255,248,255,255,255,168,3,0,0,102,0,0,0,103,0,0,0,8,0,0,0,0,0,0,0,192,3,0,0,104,0,0,0,105,0,0,0,248,255,255,255,248,255,255,255,192,3,0,0,106,0,0,0,107,0,0,0,4,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,252,255,255,255,252,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,4,0,0,0,0,0,0,0,240,3,0,0,108,0,0,0,109,0,0,0,252,255,255,255,252,255,255,255,240,3,0,0,110,0,0,0,111,0,0,0,0,0,0,0,96,3,0,0,112,0,0,0,113,0,0,0,7,0,0,0,0,0,0,0,112,3,0,0,114,0,0,0,115,0,0,0,0,0,0,0,8,4,0,0,72,0,0,0,116,0,0,0,21,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,117,0,0,0,118,0,0,0,119,0,0,0,1,0,0,0,33,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,5,0,0,120,0,0,0,121,0,0,0,119,0,0,0,2,0,0,0,34,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,5,0,0,122,0,0,0,123,0,0,0,119,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,5,0,0,124,0,0,0,125,0,0,0,119,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,5,0,0,126,0,0,0,127,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,23,0,0,0,5,0,0,0,24,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,5,0,0,128,0,0,0,129,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,26,0,0,0,3,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,5,0,0,130,0,0,0,131,0,0,0,119,0,0,0,22,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,248,255,255,255,224,5,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,6,0,0,132,0,0,0,133,0,0,0,119,0,0,0,30,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,2,0,0,0,248,255,255,255,8,6,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,6,0,0,134,0,0,0,135,0,0,0,119,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,6,0,0,136,0,0,0,137,0,0,0,119,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,6,0,0,138,0,0,0,139,0,0,0,119,0,0,0,38,0,0,0,39,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,40,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,6,0,0,140,0,0,0,141,0,0,0,119,0,0,0,41,0,0,0,42,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,43,0,0,0,35,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,6,0,0,142,0,0,0,143,0,0,0,119,0,0,0,44,0,0,0,45,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,46,0,0,0,41,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,6,0,0,144,0,0,0,145,0,0,0,119,0,0,0,47,0,0,0,48,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,49,0,0,0,47,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,6,0,0,146,0,0,0,147,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,7,0,0,148,0,0,0,149,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,7,0,0,150,0,0,0,151,0,0,0,119,0,0,0,1,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,7,0,0,152,0,0,0,153,0,0,0,119,0,0,0,2,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,7,0,0,154,0,0,0,155,0,0,0,119,0,0,0,19,0,0,0,7,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,7,0,0,156,0,0,0,157,0,0,0,119,0,0,0,20,0,0,0,8,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,4,0,0,158,0,0,0,159,0,0,0,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,5,0,0,160,0,0,0,161,0,0,0,119,0,0,0,27,0,0,0,21,0,0,0,28,0,0,0,22,0,0,0,29,0,0,0,9,0,0,0,23,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,4,0,0,162,0,0,0,163,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,12,0,0,0,50,0,0,0,51,0,0,0,13,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,5,0,0,164,0,0,0,165,0,0,0,119,0,0,0,53,0,0,0,54,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,0,0,0,0,80,5,0,0,166,0,0,0,167,0,0,0,119,0,0,0,55,0,0,0,56,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,0,0,0,0,32,4,0,0,168,0,0,0,169,0,0,0,119,0,0,0,0,0,0,0,48,4,0,0,168,0,0,0,170,0,0,0,119,0,0,0,24,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,30,0,0,0,25,0,0,0,31,0,0,0,26,0,0,0,32,0,0,0,13,0,0,0,27,0,0,0,14,0,0,0,0,0,0,0,80,4,0,0,168,0,0,0,171,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,15,0,0,0,57,0,0,0,58,0,0,0,16,0,0,0,59,0,0,0,0,0,0,0,112,4,0,0,168,0,0,0,172,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,17,0,0,0,60,0,0,0,61,0,0,0,18,0,0,0,62,0,0,0,0,0,0,0,144,4,0,0,168,0,0,0,173,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,176,4,0,0,168,0,0,0,174,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,192,4,0,0,168,0,0,0,175,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,37,0,0,0,89,0,0,0,45,0,0,0,37,0,0,0,109,0,0,0,45,0,0,0,37,0,0,0,100,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,0,0,0,114,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,102,0,0,0,97,0,0,0,108,0,0,0,115,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,110,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,114,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,117,0,0,0,114,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,114,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,99,0,0,0,104,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,105,0,0,0,108,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,101,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,121,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,117,0,0,0,115,0,0,0,116,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,116,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,111,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,77,0,0,0,0,0,0,0,80,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,97,0,0,0,32,0,0,0,37,0,0,0,98,0,0,0,32,0,0,0,37,0,0,0,100,0,0,0,32,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,32,2,32,2,32,2,32,2,32,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,96,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,213,8,213,8,213,8,213,8,213,8,213,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,4,192,4,192,4,192,4,192,4,192,4,192,8,214,8,214,8,214,8,214,8,214,8,214,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,4,192,4,192,4,192,4,192,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,119,83,116,114,101,97,109,32,111,114,32,114,97,119,68,97,116,97,32,110,101,101,100,115,32,116,111,32,114,101,102,101,114,101,110,99,101,32,116,111,32,115,111,109,101,116,104,105,110,103,0,119,105,100,116,104,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,104,101,105,103,104,116,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,98,105,116,115,112,101,114,115,97,109,112,108,101,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,50,44,32,49,54,93,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,110,101,101,100,115,32,116,111,32,98,101,32,115,101,116,32,116,111,32,97,32,118,97,108,117,101,32,111,102,32,123,78,111,110,101,44,32,83,97,109,112,108,101,44,32,76,105,110,101,125,0,99,111,109,112,111,110,101,110,116,115,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,50,53,53,93,0,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,119,105,116,104,32,116,104,101,32,111,116,104,101,114,32,112,97,114,97,109,101,116,101,114,115,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,110,111,116,32,98,101,32,115,101,116,32,116,111,32,83,97,109,112,108,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,52,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,32,111,110,108,121,32,98,101,32,115,101,116,32,116,111,32,78,111,110,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,49,0,67,111,108,111,114,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,0,78,111,32,109,111,114,101,32,98,121,116,101,115,32,97,118,97,105,108,97,98,108,101,32,105,110,32,105,110,112,117,116,32,98,117,102,102,101,114,44,32,115,116,105,108,108,32,110,101,101,100,101,100,105,110,103,32,0,65,110,32,111,100,100,32,110,117,109,98,101,114,32,111,102,32,98,121,116,101,115,32,40,0,41,32,99,97,110,110,111,116,32,98,101,32,115,119,97,112,112,101,100,46,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,69,0,49,49,80,114,111,99,101,115,115,76,105,110,101,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,105,110,103,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,57,98,97,115,105,99,95,111,115,116,114,105,110,103,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,116,69,69,0,50,50,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,83,116,114,101,97,109,0,50,53,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,67,111,109,112,111,110,101,110,116,0,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,104,69,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,67,104,97,114,76,83,32,101,114,114,111,114,0,99,104,97,114,108,115,0,49,53,99,104,97,114,108,115,95,99,97,116,101,103,111,114,121,0,112,97,114,97,109,115,46,88,116,104,117,109,98,110,97,105,108,32,105,115,32,62,32,48,32,98,117,116,32,112,97,114,97,109,115,46,116,104,117,109,98,110,97,105,108,32,61,61,32,110,117,108,108,95,112,116,114,0,49,55,74,112,101,103,77,97,114,107,101,114,83,101,103,109,101,110,116,0,49,49,74,112,101,103,83,101,103,109,101,110,116,0,50,48,74,112,101,103,73,109,97,103,101,68,97,116,97,83,101,103,109,101,110,116,0,69,120,112,101,99,116,101,100,32,74,80,69,71,32,77,97,114,107,101,114,32,115,116,97,114,116,32,98,121,116,101,32,48,120,70,70,32,98,117,116,32,116,104,101,32,98,121,116,101,32,118,97,108,117,101,32,119,97,115,32,48,120,0,74,80,69,71,32,101,110,99,111,100,105,110,103,32,119,105,116,104,32,109,97,114,107,101,114,32,0,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,46,0,85,110,107,110,111,119,110,32,74,80,69,71,32,109,97,114,107,101,114,32,0,32,101,110,99,111,117,110,116,101,114,101,100,46,0,109,114,102,120,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,49,51,114,117,110,116,105,109,101,95,101,114,114,111,114,0,83,116,57,116,121,112,101,95,105,110,102,111,0,83,116,56,98,97,100,95,99,97,115,116,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,115,116,100,58,58,98,97,100,95,99,97,115,116,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+42396);allocate([32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,80,79,83,73,88],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+52636);allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,119,69,69,0,117,110,115,117,112,112,111,114,116,101,100,32,108,111,99,97,108,101,32,102,111,114,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,52,95,95,115,104,97,114,101,100,95,99,111,117,110,116,69,0,78,83,116,51,95,95,49,49,50,115,121,115,116,101,109,95,101,114,114,111,114,69,0,78,83,116,51,95,95,49,49,52,101,114,114,111,114,95,99,97,116,101,103,111,114,121,69,0,78,83,116,51,95,95,49,49,50,95,95,100,111,95,109,101,115,115,97,103,101,69,0,58,32,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,55,102,97,105,108,117,114,101,69,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,57,95,95,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,69,0,105,111,115,95,98,97,115,101,58,58,99,108,101,97,114,0,105,111,115,116,114,101,97,109,0,117,110,115,112,101,99,105,102,105,101,100,32,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,65,66,67,68,69,70,120,88,43,45,112,80,105,73,110,78,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,102,97,99,101,116,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,119,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,99,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,115,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,105,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,49,54,95,95,110,97,114,114,111,119,95,116,111,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,49,55,95,95,119,105,100,101,110,95,102,114,111,109,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,119,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,95,95,105,109,112,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,99,69,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,119,69,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,119,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,49,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,49,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,99,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,119,69,69,0,37,112,0,67,0,37,0,0,0,0,0,108,0,108,108,0,0,76,0,37,112,0,0,0,0,37,72,58,37,77,58,37,83,37,109,47,37,100,47,37,121,37,89,45,37,109,45,37,100,37,73,58,37,77,58,37,83,32,37,112,37,72,58,37,77,37,72,58,37,77,58,37,83,108,111,99,97,108,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,48,49,50,51,52,53,54,55,56,57,0,37,76,102,0,109,111,110,101,121,95,103,101,116,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,0,37,46,48,76,102,0,116,114,117,101,0,102,97,108,115,101,0,83,117,110,100,97,121,0,77,111,110,100,97,121,0,84,117,101,115,100,97,121,0,87,101,100,110,101,115,100,97,121,0,84,104,117,114,115,100,97,121,0,70,114,105,100,97,121,0,83,97,116,117,114,100,97,121,0,83,117,110,0,77,111,110,0,84,117,101,0,87,101,100,0,84,104,117,0,70,114,105,0,83,97,116,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,77,97,114,99,104,0,65,112,114,105,108,0,77,97,121,0,74,117,110,101,0,74,117,108,121,0,65,117,103,117,115,116,0,83,101,112,116,101,109,98,101,114,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,68,101,99,101,109,98,101,114,0,74,97,110,0,70,101,98,0,77,97,114,0,65,112,114,0,74,117,110,0,74,117,108,0,65,117,103,0,83,101,112,0,79,99,116,0,78,111,118,0,68,101,99,0,65,77,0,80,77,0,37,109,47,37,100,47,37,121,0,37,72,58,37,77,58,37,83,0,37,97,32,37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,37,73,58,37,77,58,37,83,32,37,112,0,78,83,116,51,95,95,49,49,51,109,101,115,115,97,103,101,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,95,95,116,105,109,101,95,112,117,116,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,119,69,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,99,69,69,0,78,83,116,51,95,95,49,57,116,105,109,101,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,112,117,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,103,101,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,50,99,111,100,101,99,118,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,99,116,121,112,101,95,98,97,115,101,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+56215);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function _atexit(func,arg){__ATEXIT__.unshift({func:func,arg:arg})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}Module["_i64Subtract"]=_i64Subtract;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted},addRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++},decRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}},clearRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0}};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}Module["_memset"]=_memset;var _BDtoILow=true;var _emscripten_resume=true;function ___gxx_personality_v0(){}var _emscripten_landingpad=true;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?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(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.length0?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){return leadingNulls(date.tm_hour<13?date.tm_hour:date.tm_hour-12,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<13){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()=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 _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _abort(){Module["abort"]()}function _free(){}Module["_free"]=_free;function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){if(___cxa_end_catch.rethrown){___cxa_end_catch.rethrown=false;return}asm["setThrew"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}var _fabs=Math_abs;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}var PATH=undefined;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(){setTimeout(Browser.mainLoop.runner,value)};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(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}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 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();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("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(function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}});if(thisMainLoopId0)_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=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);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===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&&canvas.requestPointerLock){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};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}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){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;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["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||function(){};canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}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);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}},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}},xhrLoad:function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)},asyncLoad:function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)},function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(!noRunDep)addRunDependency("al "+url)},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+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}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>2];return ret},getStr:function(){var ret=Pointer_stringify(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Add"]=_i64Add;Module["_bitshift64Lshr"]=_bitshift64Lshr;function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}var _BDtoIHigh=true;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push(function(){Runtime.dynCall("vi",routine,[arg])});_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_cond_broadcast(){return 0}function ___cxa_guard_acquire(variable){if(!HEAP8[variable>>0]){HEAP8[variable>>0]=1;return 1}return 0}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function ___cxa_guard_release(){}function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _llvm_eh_typeid_for(type){return type}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;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 _pthread_mutex_lock(){}var _emscripten_postinvoke=true;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")}}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_bitshift64Shl"]=_bitshift64Shl;function ___cxa_guard_abort(){}Module["_memmove"]=_memmove;var _emscripten_preinvoke=true;var _BItoD=true;function _pthread_cond_wait(){return 0}function ___cxa_rethrow(){___cxa_end_catch.rethrown=true;var ptr=EXCEPTIONS.caught.pop();EXCEPTIONS.last=ptr;throw ptr}function _pthread_mutex_unlock(){}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer)___syscall146.buffer=[];var buffer=___syscall146.buffer;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j2147483648)return false;i=new a(newBuffer);j=new b(newBuffer);k=new c(newBuffer);l=new d(newBuffer);m=new e(newBuffer);n=new f(newBuffer);o=new g(newBuffer);p=new h(newBuffer);buffer=newBuffer;return true}function dc(a){a=a|0;var b=0;b=r;r=r+a|0;r=r+15&-16;return b|0}function ec(){return r|0}function fc(a){a=a|0;r=a}function gc(a,b){a=a|0;b=b|0;r=a;s=b}function hc(a,b){a=a|0;b=b|0;if(!x){x=a;y=b}}function ic(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0]}function jc(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0];i[t+4>>0]=i[a+4>>0];i[t+5>>0]=i[a+5>>0];i[t+6>>0]=i[a+6>>0];i[t+7>>0]=i[a+7>>0]}function kc(a){a=a|0;M=a}function lc(){return M|0}function mc(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;v=r;r=r+128|0;n=v+44|0;q=v+8|0;j=v+4|0;m=v;o=c+4|0;p=c+8|0;x=0;Ja(35,k[c>>2]|0,k[o>>2]|0,k[p>>2]|0,d|0);l=x;x=0;if(!(l&1)){g=n;f=g+84|0;do{k[g>>2]=k[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(f|0));d=n+12|0;if((k[d>>2]|0)==0?(h=ia(((k[n+8>>2]|0)+7|0)/8|0,k[n>>2]|0)|0,k[d>>2]=h,(k[n+24>>2]|0)!=0):0){l=ia(k[n+16>>2]|0,h)|0;k[d>>2]=l}x=0;qa(176,q|0);l=x;x=0;if(!(l&1)){d=n+56|0;do{if(k[d>>2]|0){x=0;d=ta(66,d|0)|0;l=x;x=0;if(!(l&1)){k[j>>2]=d;f=q+28|0;g=k[f>>2]|0;if(g>>>0<(k[q+32>>2]|0)>>>0){k[g>>2]=d;k[f>>2]=g+4;k[j>>2]=0;s=19;break}x=0;ra(57,q+24|0,j|0);l=x;x=0;if(l&1){f=Wa(824,0)|0;d=M;g=k[j>>2]|0;k[j>>2]=0;if(!g)break;Lb[k[(k[g>>2]|0)+4>>2]&255](g);break}else{d=k[j>>2]|0;k[j>>2]=0;if(!d){s=19;break}Lb[k[(k[d>>2]|0)+4>>2]&255](d);s=19;break}}else s=15}else s=19}while(0);a:do{if((s|0)==19){g=n+4|0;h=n+8|0;j=n+16|0;x=0;d=Ea(14,k[n>>2]|0,k[g>>2]|0,k[h>>2]|0,k[j>>2]|0)|0;l=x;x=0;if(!(l&1)){k[m>>2]=d;l=q+28|0;f=k[l>>2]|0;do{if(f>>>0>=(k[q+32>>2]|0)>>>0){x=0;ra(57,q+24|0,m|0);f=x;x=0;if(f&1){f=Wa(824,0)|0;d=M;g=k[m>>2]|0;k[m>>2]=0;if(!g)break a;Lb[k[(k[g>>2]|0)+4>>2]&255](g);break a}else{d=k[m>>2]|0;k[m>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}}else{k[f>>2]=d;k[l>>2]=f+4;k[m>>2]=0}}while(0);d=k[n+28>>2]|0;if((d|0)!=0?(x=0,ra(58,q|0,d|0),s=x,x=0,s&1):0){s=15;break}b:do{if(!(k[n+24>>2]|0)){d=ia(k[g>>2]|0,k[n>>2]|0)|0;d=ia(d,((k[h>>2]|0)+7|0)/8|0)|0;if((k[j>>2]|0)>0){g=0;while(1){x=0;Fa(4,q|0,c|0,n|0);s=x;x=0;if(s&1)break;f=k[o>>2]|0;if(f){k[o>>2]=f+d;k[p>>2]=(k[p>>2]|0)-d}g=g+1|0;if((g|0)>=(k[j>>2]|0))break b}f=Wa(824,0)|0;d=M;s=16;break a}}else{x=0;Fa(4,q|0,c|0,n|0);s=x;x=0;if(s&1){s=15;break a}}}while(0);x=0;Aa(33,q|0,a|0)|0;s=x;x=0;if(!(s&1)){k[b>>2]=k[q+16>>2];if(e)i[e>>0]=0;g=q+24|0;d=k[g>>2]|0;if(d){f=k[l>>2]|0;if((f|0)!=(d|0)){do{e=f+-4|0;k[l>>2]=e;f=k[e>>2]|0;k[e>>2]=0;if(f)Lb[k[(k[f>>2]|0)+4>>2]&255](f);f=k[l>>2]|0}while((f|0)!=(d|0));d=k[g>>2]|0}mj(d)}e=0;r=v;return e|0}else s=15}else s=15}}while(0);if((s|0)==15){f=Wa(824,0)|0;d=M;s=16}l=q+24|0;g=k[l>>2]|0;if(g){j=q+28|0;h=k[j>>2]|0;if((h|0)!=(g|0)){do{q=h+-4|0;k[j>>2]=q;h=k[q>>2]|0;k[q>>2]=0;if(h)Lb[k[(k[h>>2]|0)+4>>2]&255](h);h=k[j>>2]|0}while((h|0)!=(g|0));g=k[l>>2]|0}mj(g)}}else s=5}else s=5;if((s|0)==5){f=Wa(824,0)|0;d=M}q=(d|0)==(ab(824)|0);h=cb(f|0)|0;d=(e|0)==0;if(!q){if(!d)i[e>>0]=0;eb();e=14;r=v;return e|0}g=h+12|0;do{if(!d){d=k[g>>2]|0;x=0;f=Da(1)|0;q=x;x=0;if(!(q&1))if((d|0)==(f|0)){wl(e,Ob[k[(k[h>>2]|0)+8>>2]&127](h)|0)|0;s=60;break}else{i[e>>0]=0;s=60;break}}else s=60}while(0);if((s|0)==60?(t=k[g>>2]|0,x=0,u=Da(1)|0,e=x,x=0,!(e&1)):0){e=(t|0)==(u|0)?k[h+8>>2]|0:13;eb();r=v;return e|0}d=Wa()|0;x=0;Ga(3);v=x;x=0;if(v&1){v=Wa(0)|0;oc(v)}else fb(d|0);return 0}function nc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;j=r;r=r+112|0;f=j+96|0;i=j+84|0;l=j+72|0;m=j+60|0;n=j+48|0;o=j+36|0;p=j+24|0;q=j+12|0;s=j;h=(b|0)==0;if((a|0)==0&h){e=Va(16)|0;x=0;Fa(5,f|0,48504,52);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,f|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(f);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}g=k[d>>2]|0;if((g+-1|0)>>>0>65534){e=Va(16)|0;x=0;Fa(5,i|0,48557,41);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,i|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(i);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}f=k[d+4>>2]|0;if((f+-1|0)>>>0>65534){e=Va(16)|0;x=0;Fa(5,l|0,48599,42);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,l|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(l);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}e=k[d+8>>2]|0;if((e+-2|0)>>>0>14){e=Va(16)|0;x=0;Fa(5,m|0,48642,46);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,m|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(m);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}a=k[d+24>>2]|0;if(a>>>0>=3){e=Va(16)|0;x=0;Fa(5,n|0,48689,65);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,n|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(n);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}b=k[d+16>>2]|0;if((b+-1|0)>>>0>254){e=Va(16)|0;x=0;Fa(5,o|0,48755,44);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,o|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(o);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}if(!h?(o=ia(f,g)|0,(ia(ia(o,(e|0)>8?2:1)|0,b)|0)>>>0>c>>>0):0){e=Va(16)|0;x=0;Fa(5,p|0,48800,58);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,p|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(p);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}switch(b|0){case 4:{if((a|0)!=2){r=j;return}e=Va(16)|0;x=0;Fa(5,q|0,48859,73);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,q|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(q);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}case 3:{r=j;return}default:{if(!a){r=j;return}e=Va(16)|0;x=0;Fa(5,s|0,48933,73);q=x;x=0;if(!(q&1)){x=0;b=Da(1)|0;q=x;x=0;if(!(q&1)?(x=0,Ja(36,e|0,1,b|0,s|0),q=x,x=0,!(q&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(s);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}}}function oc(a){a=a|0;cb(a|0)|0;tj()}function pc(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,j=0,l=0,m=0;m=r;r=r+128|0;f=m+116|0;g=m;x=0;k[f>>2]=k[b>>2];k[f+4>>2]=k[b+4>>2];k[f+8>>2]=k[b+8>>2];ra(59,g|0,f|0);e=x;x=0;if(!(e&1)){if(c){e=g+16|0;b=e+84|0;do{k[e>>2]=k[c>>2];e=e+4|0;c=c+4|0}while((e|0)<(b|0))}x=0;k[f>>2]=k[a>>2];k[f+4>>2]=k[a+4>>2];k[f+8>>2]=k[a+8>>2];ra(60,g|0,f|0);g=x;x=0;if(!(g&1)){if(d)i[d>>0]=0;l=0;r=m;return l|0}}a=Wa(824,0)|0;g=M;g=(g|0)==(ab(824)|0);a=cb(a|0)|0;b=(d|0)==0;if(!g){if(!b)i[d>>0]=0;eb();l=14;r=m;return l|0}e=a+12|0;do{if(!b){b=k[e>>2]|0;x=0;c=Da(1)|0;g=x;x=0;if(!(g&1))if((b|0)==(c|0)){wl(d,Ob[k[(k[a>>2]|0)+8>>2]&127](a)|0)|0;l=10;break}else{i[d>>0]=0;l=10;break}}else l=10}while(0);if((l|0)==10?(h=k[e>>2]|0,x=0,j=Da(1)|0,l=x,x=0,!(l&1)):0){l=(h|0)==(j|0)?k[a+8>>2]|0:13;eb();r=m;return l|0}b=Wa()|0;x=0;Ga(3);m=x;x=0;if(m&1){m=Wa(0)|0;oc(m)}else fb(b|0);return 0}function qc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=r;r=r+128|0;e=j+116|0;d=j;x=0;k[e>>2]=k[a>>2];k[e+4>>2]=k[a+4>>2];k[e+8>>2]=k[a+8>>2];ra(59,d|0,e|0);e=x;x=0;if((!(e&1)?(x=0,qa(177,d|0),e=x,x=0,!(e&1)):0)?(x=0,ra(61,d|0,1),e=x,x=0,!(e&1)):0){a=d+16|0;d=b+84|0;do{k[b>>2]=k[a>>2];b=b+4|0;a=a+4|0}while((b|0)<(d|0));if(c)i[c>>0]=0;c=0;r=j;return c|0}e=Wa(824,0)|0;b=M;b=(b|0)==(ab(824)|0);e=cb(e|0)|0;a=(c|0)==0;if(!b){if(!a)i[c>>0]=0;eb();c=14;r=j;return c|0}b=e+12|0;do{if(!a){a=k[b>>2]|0;x=0;d=Da(1)|0;l=x;x=0;if(!(l&1))if((a|0)==(d|0)){wl(c,Ob[k[(k[e>>2]|0)+8>>2]&127](e)|0)|0;h=13;break}else{i[c>>0]=0;h=13;break}}else h=13}while(0);if((h|0)==13?(f=k[b>>2]|0,x=0,g=Da(1)|0,l=x,x=0,!(l&1)):0){l=(f|0)==(g|0)?k[e+8>>2]|0:13;eb();r=j;return l|0}a=Wa()|0;x=0;Ga(3);l=x;x=0;if(l&1){l=Wa(0)|0;oc(l)}else fb(a|0);return 0}function rc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,l=0,m=0;m=r;r=r+48|0;i=m+36|0;h=m+24|0;j=m+12|0;l=m;if(!((a|0)!=0&(c|0)!=0&(d|0)!=0&(f|0)!=0)){e=1;r=m;return e|0}k[j>>2]=0;k[j+4>>2]=a;k[j+8>>2]=b;k[l>>2]=0;k[l+4>>2]=d;k[l+8>>2]=e;k[h>>2]=k[j>>2];k[h+4>>2]=k[j+4>>2];k[h+8>>2]=k[j+8>>2];k[i>>2]=k[l>>2];k[i+4>>2]=k[l+4>>2];k[i+8>>2]=k[l+8>>2];e=mc(h,c,i,f,g)|0;r=m;return e|0}function sc(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;e=r;r=r+32|0;f=e+12|0;g=e;h=g;k[h>>2]=0;k[h+4>>2]=0;k[g+4>>2]=a;k[g+8>>2]=b;k[f>>2]=k[g>>2];k[f+4>>2]=k[g+4>>2];k[f+8>>2]=k[g+8>>2];c=qc(f,c,d)|0;r=e;return c|0}function tc(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,l=0;g=r;r=r+48|0;h=g+36|0;i=g+24|0;l=g+12|0;j=g;k[l>>2]=0;k[l+4>>2]=a;k[l+8>>2]=b;k[j>>2]=0;k[j+4>>2]=c;k[j+8>>2]=d;k[i>>2]=k[l>>2];k[i+4>>2]=k[l+4>>2];k[i+8>>2]=k[l+8>>2];k[h>>2]=k[j>>2];k[h+4>>2]=k[j+4>>2];k[h+8>>2]=k[j+8>>2];d=pc(i,h,e,f)|0;r=g;return d|0}function uc(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,l=0;j=a+4|0;c=k[a>>2]|0;e=((k[j>>2]|0)-c>>2)+1|0;if(e>>>0>1073741823){jj(a);c=k[a>>2]|0}l=a+8|0;d=(k[l>>2]|0)-c|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?e:d;c=(k[j>>2]|0)-c>>2;if(!d){f=0;g=0}else h=6}else{d=1073741823;c=(k[j>>2]|0)-c>>2;h=6}if((h|0)==6){f=d;g=lj(d<<2)|0}e=g+(c<<2)|0;d=e;i=g+(f<<2)|0;h=k[b>>2]|0;k[b>>2]=0;k[e>>2]=h;h=g+(c+1<<2)|0;g=k[a>>2]|0;c=k[j>>2]|0;if((c|0)==(g|0)){e=a;f=j}else{do{c=c+-4|0;b=k[c>>2]|0;k[c>>2]=0;k[e+-4>>2]=b;e=d+-4|0;d=e}while((c|0)!=(g|0));c=d;e=a;f=j;d=c;g=k[a>>2]|0;c=k[j>>2]|0}k[e>>2]=d;k[f>>2]=h;k[l>>2]=i;e=g;if((c|0)!=(e|0))do{c=c+-4|0;d=k[c>>2]|0;k[c>>2]=0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d)}while((c|0)!=(e|0));if(!g)return;mj(g);return}function vc(){if(i[8]|0)return 35648;if(!(Qa(8)|0))return 35648;tb(72,35648,w|0)|0;Ya(8);return 35648}function wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+32|0;j=m;Oi(j,(1<>2]|0;l=f+1|0;c=l<<1;k[a>>2]=0;g=a+4|0;k[g>>2]=0;k[a+8>>2]=0;a:do{if(l){if(!((f|0)<-1?(x=0,qa(178,a|0),h=x,x=0,h&1):0))d=4;if((d|0)==4?(x=0,e=ta(67,c|0)|0,h=x,x=0,!(h&1)):0){k[g>>2]=e;k[a>>2]=e;k[a+8>>2]=e+c;b=e;while(1){i[b>>0]=0;b=(k[g>>2]|0)+1|0;k[g>>2]=b;c=c+-1|0;if(!c)break a}}c=Wa()|0;b=k[a>>2]|0;if(!b)fb(c|0);if((k[g>>2]|0)!=(b|0))k[g>>2]=b;mj(b);fb(c|0)}}while(0);b=~f;if((f|0)<(b|0)){r=m;return}g=j+12|0;h=j+8|0;f=j+4|0;e=b;do{b=k[g>>2]|0;if((e|0)>(0-b|0)){c=k[h>>2]|0;if((e|0)>(0-c|0)){d=k[f>>2]|0;if((e|0)>(0-d|0))if((e|0)>=0)if((e|0)>0)if((d|0)<=(e|0))if((c|0)>(e|0))b=2;else b=(b|0)>(e|0)?3:4;else b=1;else b=0;else b=-1;else b=-2}else b=-3}else b=-4;i[(k[a>>2]|0)+(e+l)>>0]=b;e=e+1|0}while((e|0)<(l|0));r=m;return}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;p=k[c+16>>2]|0;switch(p|0){case 64:case 0:{x=0;a=Aa(34,a|0,b|0)|0;b=x;x=0;if(b&1)q=16;else d=a;break}default:{e=(1<>2])+-1|0;o=k[b+20>>2]|0;n=o<<1;n=((n+e|0)/(n|1|0)|0)+1|0;a=0;while(1)if((1<>2]|0;x=0;d=ta(67,4624)|0;m=x;x=0;if(m&1)q=16;else{f=((g|0)<8?8:g)+g<<1;h=d+4|0;l=b;m=h+84|0;do{k[h>>2]=k[l>>2];h=h+4|0;l=l+4|0}while((h|0)<(m|0));h=d+88|0;m=h+40|0;do{k[h>>2]=0;h=h+4|0}while((h|0)<(m|0));k[d>>2]=35660;k[d+128>>2]=e;k[d+132>>2]=n;k[d+136>>2]=o;k[d+140>>2]=a;k[d+144>>2]=g;k[d+148>>2]=f;k[d+152>>2]=p;a=d+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+172>>2]=k[b>>2];k[d+176>>2]=0;k[d+180>>2]=0;k[d+184>>2]=0;a=d+4568|0;e=d+188|0;do{k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;j[e+10>>1]=1;e=e+12|0}while((e|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1}}}if((q|0)==16){q=Wa()|0;fb(q|0)}if(!d)return d|0;x=0;ra(k[(k[d>>2]|0)+12>>2]|0,d|0,c|0);q=x;x=0;if(!(q&1))return d|0;a=Wa()|0;if(!d){q=a;fb(q|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);q=a;fb(q|0);return 0}function yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0;c=(k[b+24>>2]|0)==2;if(c?(k[b+16>>2]|0)!=3:0){b=0;return b|0}n=k[b+20>>2]|0;a=k[b+8>>2]|0;a:do{if(!n){if(c){if((a|0)!=8)break;d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35688;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}switch(a|0){case 8:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35716;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}case 12:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35744;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}case 16:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35772;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}default:break a}}}while(0);m=(1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35800;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35660;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}}if((a|0)>=17){b=0;return b|0}f=n<<1;f=((f+m|0)/(f|1|0)|0)+1|0;if(c){a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35828;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35856;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}return 0}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;p=k[c+16>>2]|0;switch(p|0){case 64:case 0:{x=0;a=Aa(35,a|0,b|0)|0;b=x;x=0;if(b&1)q=16;else d=a;break}default:{e=(1<>2])+-1|0;o=k[b+20>>2]|0;n=o<<1;n=((n+e|0)/(n|1|0)|0)+1|0;a=0;while(1)if((1<>2]|0;x=0;d=ta(67,4632)|0;m=x;x=0;if(m&1)q=16;else{f=((g|0)<8?8:g)+g<<1;k[d+4>>2]=0;h=d+8|0;l=b;m=h+84|0;do{k[h>>2]=k[l>>2];h=h+4|0;l=l+4|0}while((h|0)<(m|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;m=d+116|0;k[m>>2]=0;k[m+4>>2]=0;k[m+8>>2]=0;k[m+12>>2]=0;k[m+16>>2]=0;k[d>>2]=35884;k[d+136>>2]=e;k[d+140>>2]=n;k[d+144>>2]=o;k[d+148>>2]=a;k[d+152>>2]=g;k[d+156>>2]=f;k[d+160>>2]=p;a=d+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+180>>2]=k[b>>2];k[d+184>>2]=0;k[d+188>>2]=0;k[d+192>>2]=0;a=d+4576|0;e=d+196|0;do{k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;j[e+10>>1]=1;e=e+12|0}while((e|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1}}}if((q|0)==16){q=Wa()|0;fb(q|0)}if(!d)return d|0;x=0;ra(k[(k[d>>2]|0)+8>>2]|0,d|0,c|0);q=x;x=0;if(!(q&1))return d|0;a=Wa()|0;if(!d){q=a;fb(q|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);q=a;fb(q|0);return 0}function Ac(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0;c=(k[b+24>>2]|0)==2;if(c?(k[b+16>>2]|0)!=3:0){b=0;return b|0}n=k[b+20>>2]|0;a=k[b+8>>2]|0;a:do{if(!n){if(c){if((a|0)!=8)break;d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35912;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}switch(a|0){case 8:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35940;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}case 12:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35968;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}case 16:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35996;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}default:break a}}}while(0);m=(1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36024;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=35884;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}}if((a|0)>=17){b=0;return b|0}f=n<<1;f=((f+m|0)/(f|1|0)|0)+1|0;if(c){a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36052;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36080;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}return 0}function Bc(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0;a=2832;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=4880);sw(2832,0,2048)|0;a=0;do{g=2832+(a+128<<3)|0;k[g>>2]=0;k[g+4>>2]=1;a=a+1|0}while((a|0)!=128);a=3088;k[a>>2]=1;k[a+4>>2]=3;a=3096;k[a>>2]=1;k[a+4>>2]=3;a=3104;k[a>>2]=1;k[a+4>>2]=3;a=3112;k[a>>2]=1;k[a+4>>2]=3;a=3120;k[a>>2]=1;k[a+4>>2]=3;a=3128;k[a>>2]=1;k[a+4>>2]=3;a=3136;k[a>>2]=1;k[a+4>>2]=3;a=3144;k[a>>2]=1;k[a+4>>2]=3;a=3152;k[a>>2]=1;k[a+4>>2]=3;a=3160;k[a>>2]=1;k[a+4>>2]=3;a=3168;k[a>>2]=1;k[a+4>>2]=3;a=3176;k[a>>2]=1;k[a+4>>2]=3;a=3184;k[a>>2]=1;k[a+4>>2]=3;a=3192;k[a>>2]=1;k[a+4>>2]=3;a=3200;k[a>>2]=1;k[a+4>>2]=3;a=3208;k[a>>2]=1;k[a+4>>2]=3;a=3216;k[a>>2]=1;k[a+4>>2]=3;a=3224;k[a>>2]=1;k[a+4>>2]=3;a=3232;k[a>>2]=1;k[a+4>>2]=3;a=3240;k[a>>2]=1;k[a+4>>2]=3;a=3248;k[a>>2]=1;k[a+4>>2]=3;a=3256;k[a>>2]=1;k[a+4>>2]=3;a=3264;k[a>>2]=1;k[a+4>>2]=3;a=3272;k[a>>2]=1;k[a+4>>2]=3;a=3280;k[a>>2]=1;k[a+4>>2]=3;a=3288;k[a>>2]=1;k[a+4>>2]=3;a=3296;k[a>>2]=1;k[a+4>>2]=3;a=3304;k[a>>2]=1;k[a+4>>2]=3;a=3312;k[a>>2]=1;k[a+4>>2]=3;a=3320;k[a>>2]=1;k[a+4>>2]=3;a=3328;k[a>>2]=1;k[a+4>>2]=3;a=3336;k[a>>2]=1;k[a+4>>2]=3;a=2896;k[a>>2]=2;k[a+4>>2]=5;a=2904;k[a>>2]=2;k[a+4>>2]=5;a=2912;k[a>>2]=2;k[a+4>>2]=5;a=2920;k[a>>2]=2;k[a+4>>2]=5;a=2928;k[a>>2]=2;k[a+4>>2]=5;a=2936;k[a>>2]=2;k[a+4>>2]=5;a=2944;k[a>>2]=2;k[a+4>>2]=5;a=2952;k[a>>2]=2;k[a+4>>2]=5;a=2848;k[a>>2]=3;k[a+4>>2]=7;a=2856;k[a>>2]=3;k[a+4>>2]=7;a=0;do{g=2832+(a+64<<3)|0;k[g>>2]=-1;k[g+4>>2]=2;a=a+1|0}while((a|0)!=64);a=2960;k[a>>2]=-2;k[a+4>>2]=4;a=2968;k[a>>2]=-2;k[a+4>>2]=4;a=2976;k[a>>2]=-2;k[a+4>>2]=4;a=2984;k[a>>2]=-2;k[a+4>>2]=4;a=2992;k[a>>2]=-2;k[a+4>>2]=4;a=3e3;k[a>>2]=-2;k[a+4>>2]=4;a=3008;k[a>>2]=-2;k[a+4>>2]=4;a=3016;k[a>>2]=-2;k[a+4>>2]=4;a=3024;k[a>>2]=-2;k[a+4>>2]=4;a=3032;k[a>>2]=-2;k[a+4>>2]=4;a=3040;k[a>>2]=-2;k[a+4>>2]=4;a=3048;k[a>>2]=-2;k[a+4>>2]=4;a=3056;k[a>>2]=-2;k[a+4>>2]=4;a=3064;k[a>>2]=-2;k[a+4>>2]=4;a=3072;k[a>>2]=-2;k[a+4>>2]=4;a=3080;k[a>>2]=-2;k[a+4>>2]=4;a=2864;k[a>>2]=-3;k[a+4>>2]=6;a=2872;k[a>>2]=-3;k[a+4>>2]=6;a=2880;k[a>>2]=-3;k[a+4>>2]=6;a=2888;k[a>>2]=-3;k[a+4>>2]=6;a=2840;k[a>>2]=-4;k[a+4>>2]=8;a=4880;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=6928);sw(4880,0,2048)|0;c=2;a=0;e=0;f=0;while(1){c=c<<16>>16;b=8-c|0;d=1<>2]=e;k[g+4>>2]=c;b=b+1|0}while((b|0)<(d|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==7){b=2;e=1;f=-1;g=-1;break}else{c=(a>>1)+2|0;e=b>>16}}while(1){c=b<<16>>16;a=8-c|0;d=1<>2]=f;k[e+4>>2]=c;b=b+1|0}while((b|0)<(d|0))}a=(g<<16)+-65536|0;e=a>>31^a>>15;b=(e>>1)+2|0;if((b|0)>8){a=6928;break}else{f=a>>16;g=g+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=8976);sw(6928,0,2048)|0;e=3;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==12){e=3;b=1;d=-1;f=-1;break}else{e=(a>>2)+3|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>2)+3|0;if((e|0)>8){a=8976;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=11024);sw(8976,0,2048)|0;e=4;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==20){e=4;b=1;d=-1;f=-1;break}else{e=(a>>3)+4|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>3)+4|0;if((e|0)>8){a=11024;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=13072);sw(11024,0,2048)|0;e=5;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==32){e=5;b=1;d=-1;f=-1;break}else{e=(a>>4)+5|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>4)+5|0;if((e|0)>8){a=13072;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=15120);sw(13072,0,2048)|0;e=6;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==48){e=6;b=1;d=-1;f=-1;break}else{e=(a>>5)+6|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>5)+6|0;if((e|0)>8){a=15120;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=17168);sw(15120,0,2048)|0;e=7;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==64){e=7;b=1;d=-1;f=-1;break}else{e=(a>>6)+7|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>6)+7|0;if((e|0)>8){a=17168;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=19216);sw(17168,0,2048)|0;e=8;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==64){f=8;d=1;e=-1;g=-1;break}else{e=(a>>7)+8|0;d=b>>16}}while(1){a=8-f|0;c=1<>2]=e;k[d+4>>2]=f;b=b+1|0}while((b|0)<(c|0))}b=(g<<16)+-65536|0;d=b>>31^b>>15;a=d>>7;if((a|0)>0){a=19216;break}else{f=a+8|0;e=b>>16;g=g+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=21264);sw(19216,0,2048)|0;a=21264;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=23312);sw(21264,0,2048)|0;a=23312;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=25360);sw(23312,0,2048)|0;a=25360;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=27408);sw(25360,0,2048)|0;a=27408;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=29456);sw(27408,0,2048)|0;a=29456;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=31504);sw(29456,0,2048)|0;a=31504;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=33552);sw(31504,0,2048)|0;a=33552;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=35600);sw(33552,0,2048)|0;wc(35600,8);tb(179,35600,w|0)|0;wc(35612,10);tb(179,35612,w|0)|0;wc(35624,12);tb(179,35624,w|0)|0;wc(35636,16);tb(179,35636,w|0)|0;return}function Cc(a){a=a|0;var b=0;b=k[a>>2]|0;if(!b)return;a=a+4|0;if((k[a>>2]|0)!=(b|0))k[a>>2]=b;mj(b);return}function Dc(a){a=a|0;var b=0,c=0;k[a>>2]=36080;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Ec(a){a=a|0;var b=0,c=0;k[a>>2]=36080;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Fc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;re(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function Gc(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35856;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];ge(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;ge(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Hc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ic(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,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36460;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do{if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Jc(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,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36436;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do{if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Kc(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,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36412;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do{if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Lc(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,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36388;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do{if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Mc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=a+32|0;Tm(g,b)|0;f=a+44|0;k[f>>2]=0;h=a+48|0;e=k[h>>2]|0;if(e&8){b=i[g>>0]|0;if(!(b&1)){b=((b&255)>>>1)+(g+1)|0;k[f>>2]=b;c=g+1|0;d=g+1|0}else{b=(k[a+40>>2]|0)+(k[a+36>>2]|0)|0;k[f>>2]=b;d=k[a+40>>2]|0;c=d}k[a+8>>2]=c;k[a+12>>2]=d;k[a+16>>2]=b}if(!(e&16))return;b=i[g>>0]|0;if(!(b&1)){e=(b&255)>>>1;k[f>>2]=g+1+e;b=10;f=e}else{e=k[a+36>>2]|0;k[f>>2]=(k[a+40>>2]|0)+e;b=(k[g>>2]&-2)+-1|0;f=e}Wm(g,b,0);b=i[g>>0]|0;if(!(b&1)){e=g+1|0;d=(b&255)>>>1;c=g+1|0}else{c=k[a+40>>2]|0;e=c;d=k[a+36>>2]|0}b=a+24|0;k[b>>2]=c;k[a+20>>2]=c;k[a+28>>2]=e+d;if(!(k[h>>2]&3))return;k[b>>2]=c+f;return}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;g=o+16|0;n=o+8|0;h=o;x=0;ra(65,n|0,a|0);l=x;x=0;a:do{if(l&1){c=Wa(0)|0;d=a;e=a}else{do{if(i[n>>0]|0){d=k[(k[a>>2]|0)+-12>>2]|0;k[h>>2]=k[a+(d+24)>>2];j=a+d|0;l=k[a+(d+4)>>2]|0;e=b+c|0;d=a+(d+76)|0;c=k[d>>2]|0;do{if((c|0)==-1){x=0;c=ta(68,j|0)|0;p=x;x=0;if(p&1)m=13;else{k[g>>2]=c;x=0;c=Aa(37,g|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(g);c=f<<24>>24;k[d>>2]=c;m=9;break}c=Wa(0)|0;Qs(g)}}else m=9}while(0);if((m|0)==9){x=0;k[g>>2]=k[h>>2];c=sa(39,g|0,b|0,((l&176|0)==32?e:b)|0,e|0,j|0,c&255|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break;else m=13}else m=13}if((m|0)==13)c=Wa(0)|0;ro(n);d=a;e=a;break a}}while(0);ro(n);r=o;return a|0}}while(0);cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();r=o;return a|0}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0);return 0}function Oc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=k[b+48>>2]|0;if(c&16){c=b+44|0;d=k[c>>2]|0;e=k[b+24>>2]|0;if(d>>>0>>0)k[c>>2]=e;else e=d;d=k[b+20>>2]|0;f=e-d|0;if(f>>>0>4294967279)ij(a);if(f>>>0<11){i[a>>0]=f<<1;c=a+1|0}else{b=f+16&-16;c=lj(b)|0;k[a+8>>2]=c;k[a>>2]=b|1;k[a+4>>2]=f}if((d|0)!=(e|0)){b=c;while(1){i[b>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(e|0))break;else b=b+1|0}c=c+f|0}i[c>>0]=0;return}if(!(c&8)){k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}d=k[b+8>>2]|0;b=k[b+16>>2]|0;f=b-d|0;if(f>>>0>4294967279)ij(a);if(f>>>0<11){i[a>>0]=f<<1;c=a+1|0}else{e=f+16&-16;c=lj(e)|0;k[a+8>>2]=c;k[a>>2]=e|1;k[a+4>>2]=f}if((d|0)!=(b|0)){e=c;while(1){i[e>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(b|0))break;else e=e+1|0}c=c+f|0}i[c>>0]=0;return}function Pc(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,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36364;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do{if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Qc(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,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36340;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do{if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Rc(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,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36316;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do{if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Sc(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36316;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Tc(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36316;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Uc(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,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;Zc(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Zc(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;Wc(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Xc(a,e,b,c,d);return}}function Wc(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,l=0,n=0,o=0,p=0;l=a+4|0;f=k[l>>2]|0;do{if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{o=k[f>>2]|0;l=m[n+(b*6|0)+2>>1]<>1]<>1]<>1]=(l+49152+((a+e|0)>>>2)&65535)>>>o;j[c+(b*6|0)+2>>1]=a>>>o;j[c+(b*6|0)+4>>1]=e>>>o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{d=m[n+(b*6|0)+2>>1]<>1]<>1]<>1]=(d+49152+((a+o|0)>>>2)&65535)>>>f;j[c+(b+e<<1)>>1]=a>>>f;j[c+(b+h<<1)>>1]=o>>>f;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;l=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;p=m[n+(b<<3)+2>>1]<>1]<>1]<>1]=(p+49152+((d+a|0)>>>2)&65535)>>>f;j[c+(b+e<<1)>>1]=d>>>f;j[c+(b+h<<1)>>1]=a>>>f;j[c+(b+l<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}default:return}}function Xc(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Wc(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Wc(a,q,c,d,e);r=n;return}function Yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;e=r;r=r+176|0;c=e+152|0;j=e+16|0;g=e;if(!(b&1)){c=(b|0)/4|0;if((b|0)>3){d=0;do{j=a+(d<<2)|0;h=k[j>>2]|0;k[j>>2]=h>>>8&16711935|h<<8&-16711936;d=d+1|0}while((d|0)<(c|0))}if(!(b&3)){r=e;return}g=a+(b+-2)|0;j=a+(b+-1)|0;h=i[g>>0]|0;i[g>>0]=i[j>>0]|0;i[j>>0]=h;r=e;return}h=j+56|0;f=j+4|0;k[j>>2]=36160;k[h>>2]=36180;x=0;ra(62,j+56|0,f|0);e=x;x=0;if(e&1){j=Wa()|0;qn(h);fb(j|0)}k[j+128>>2]=0;k[j+132>>2]=-1;k[j>>2]=36200;k[j+56>>2]=36220;x=0;qa(180,f|0);e=x;x=0;do{if(e&1)c=Wa()|0;else{k[f>>2]=36236;e=j+36|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[j+52>>2]=16;k[c>>2]=0;k[c+4>>2]=0;k[c+8>>2]=0;x=0;ra(63,f|0,c|0);a=x;x=0;if(a&1){j=Wa()|0;Sm(c);Sm(e);xn(f);c=j;break}Sm(c);x=0;c=va(28,j|0,49087,24)|0;a=x;x=0;if((!(a&1)?(x=0,d=Aa(36,c|0,b|0)|0,b=x,x=0,!(b&1)):0)?(x=0,va(28,d|0,49112,20)|0,b=x,x=0,!(b&1)):0){a=Va(16)|0;x=0;ra(64,g|0,f|0);b=x;x=0;if(!(b&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,a|0,1,35648,g|0);b=x;x=0;if(b&1)d=1;else{x=0;Fa(6,a|0,824,96);x=0;d=0}c=Wa()|0;Sm(g);if(!d){g=c;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}else c=Wa()|0;Ua(a|0);g=c;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}g=Wa()|0;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}while(0);j=c;qn(h);fb(j|0)}function Zc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=a+4|0;f=k[n>>2]|0;a:do{switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{e=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>1]<>2)+16384|0;j[c+(a*6|0)>>1]=(g+32768+l&65535)>>>e;j[c+(a*6|0)+2>>1]=(l&65535)>>>e;j[c+(a*6|0)+4>>1]=(h+32768+l&65535)>>>e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{l=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>1]<>2)+16384|0;j[c+(a*6|0)>>1]=(q+32768+o&65535)>>>l;j[c+(a*6|0)+2>>1]=(o&65535)>>>l;j[c+(a*6|0)+4>>1]=(p+32768+o&65535)>>>l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{q=k[f>>2]|0;p=m[b+(g+e<<1)>>1]<>1]<>1]<>2)+16384|0;r=j[b+(g+a<<1)>>1]|0;t=ww((o&65535)>>>q&65535|0,0,16)|0;p=(p+32768+o&65535)>>>q|M;r=ww(r&65535|0,0,48)|0;r=t|(s+32768+o&65535)>>>q&65535|r;p=p&65535|M;q=c+(g<<3)|0;o=q;j[o>>1]=r;j[o+2>>1]=r>>>16;q=q+4|0;j[q>>1]=p;j[q+2>>1]=p>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){t=f+4|0;s=j[f>>1]|0;j[f>>1]=j[t>>1]|0;j[t>>1]=s;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function _c(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36340;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function $c(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36340;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function ad(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,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;ed(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;ed(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;cd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{dd(a,e,b,c,d);return}}function cd(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,l=0,n=0,o=0,p=0;l=a+4|0;f=k[l>>2]|0;do{if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{e=k[f>>2]|0;l=m[n+(b*6|0)>>1]<>1]<>1]<>>1)&65535)>>>e&65535;j[c+(b*6|0)>>1]=(l+32768-a&65535)>>>e;j[c+(b*6|0)+2>>1]=(a&65535)>>>e;j[c+(b*6|0)+4>>1]=o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{d=m[n+(b*6|0)>>1]<>1]<>1]<>>1)&65535)>>>f&65535;j[c+(b<<1)>>1]=(d+32768-a&65535)>>>f;j[c+(b+e<<1)>>1]=(a&65535)>>>f;j[c+(b+h<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;l=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;p=m[n+(b<<3)>>1]<>1]<>1]<>>1)&65535)>>>f&65535;j[c+(b<<1)>>1]=(p+32768-d&65535)>>>f;j[c+(b+e<<1)>>1]=(d&65535)>>>f;j[c+(b+h<<1)>>1]=a;j[c+(b+l<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}default:return}}function dd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;cd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;cd(a,q,c,d,e);r=n;return}function ed(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,l=0,n=0,o=0,p=0,q=0,r=0,s=0;n=a+4|0;f=k[n>>2]|0;a:do{switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{l=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>1]<>>1)&65535)>>>l&65535;j[c+(a*6|0)>>1]=g>>>l;j[c+(a*6|0)+2>>1]=h>>>l;j[c+(a*6|0)+4>>1]=e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{o=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>1]<>>1)&65535)>>>o&65535;j[c+(a*6|0)>>1]=q>>>o;j[c+(a*6|0)+2>>1]=p>>>o;j[c+(a*6|0)+4>>1]=l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{o=k[f>>2]|0;q=m[b+(g+e<<1)>>1]<>1]<>1]<>>1)&65535)>>>o;r=j[b+(g+a<<1)>>1]|0;q=ww(q>>>o&65535|0,0,16)|0;p=M|p;r=ww(r&65535|0,0,48)|0;r=s>>>o&65535|q|r;p=p&65535|M;q=c+(g<<3)|0;o=q;j[o>>1]=r;j[o+2>>1]=r>>>16;q=q+4|0;j[q>>1]=p;j[q+2>>1]=p>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){s=f+4|0;r=j[f>>1]|0;j[f>>1]=j[s>>1]|0;j[s>>1]=r;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function fd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36364;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function gd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36364;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function hd(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,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;ld(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;ld(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;jd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{kd(a,e,b,c,d);return}}function jd(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,l=0,n=0,o=0;l=a+4|0;f=k[l>>2]|0;do{if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{e=k[f>>2]|0;a=m[n+(b*6|0)+2>>1]<>1]<>>e&65535;j[c+(b*6|0)>>1]=((m[n+(b*6|0)>>1]<>>e;j[c+(b*6|0)+2>>1]=(a&65535)>>>e;j[c+(b*6|0)+4>>1]=o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{a=m[n+(b*6|0)+2>>1]<>1]<>>f&65535;j[c+(b<<1)>>1]=((m[n+(b*6|0)>>1]<>>f;j[c+(b+e<<1)>>1]=(a&65535)>>>f;j[c+(b+h<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;h=(e|0)<(d|0)?e:d;if((h|0)<=0)return;l=e<<1;g=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;d=m[n+(b<<3)+2>>1]<>1]<>>f&65535;j[c+(b<<1)>>1]=((m[n+(b<<3)>>1]<>>f;j[c+(b+e<<1)>>1]=(d&65535)>>>f;j[c+(b+l<<1)>>1]=a;j[c+(b+g<<1)>>1]=o;b=b+1|0}while((b|0)!=(h|0));return}default:return}}function kd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;jd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;jd(a,q,c,d,e);r=n;return}function ld(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,l=0,n=0,o=0,p=0,q=0,r=0,s=0;n=a+4|0;f=k[n>>2]|0;a:do{switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{l=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>>l&65535;j[c+(a*6|0)>>1]=((m[b+(a*6|0)>>1]<>>l;j[c+(a*6|0)+2>>1]=(h&65535)>>>l;j[c+(a*6|0)+4>>1]=e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{o=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>>o&65535;j[c+(a*6|0)>>1]=((m[b+(a<<1)>>1]<>>o;j[c+(a*6|0)+2>>1]=(p&65535)>>>o;j[c+(a*6|0)+4>>1]=l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{q=k[f>>2]|0;s=m[b+(g+e<<1)>>1]<>1]<>>q;o=(s+32768+(m[b+(g+h<<1)>>1]<>>q;r=j[b+(g+a<<1)>>1]|0;q=ww((s&65535)>>>q&65535|0,0,16)|0;o=o|M;r=ww(r&65535|0,0,48)|0;r=q|p&65535|r;o=o&65535|M;p=c+(g<<3)|0;q=p;j[q>>1]=r;j[q+2>>1]=r>>>16;p=p+4|0;j[p>>1]=o;j[p+2>>1]=o>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){s=f+4|0;r=j[f>>1]|0;j[f>>1]=j[s>>1]|0;j[s>>1]=r;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function md(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,j=0,l=0,m=0,n=0,o=0;n=r;r=r+16|0;l=n;m=k[a>>2]|0;if(!m){a=0;r=n;return a|0}o=b;h=d-o|0;j=e+12|0;g=k[j>>2]|0;h=(g|0)>(h|0)?g-h|0:0;g=c;e=g-o|0;if((e|0)>0?(Qb[k[(k[m>>2]|0)+48>>2]&63](m,b,e)|0)!=(e|0):0){k[a>>2]=0;o=0;r=n;return o|0}do{if((h|0)>0){Rm(l,h,f);x=0;e=va(k[(k[m>>2]|0)+48>>2]|0,m|0,((i[l>>0]&1)==0?l+1|0:k[l+8>>2]|0)|0,h|0)|0;o=x;x=0;if(o&1){o=Wa()|0;Sm(l);fb(o|0)}if((e|0)==(h|0)){Sm(l);break}k[a>>2]=0;Sm(l);o=0;r=n;return o|0}}while(0);d=d-g|0;if((d|0)>0?(Qb[k[(k[m>>2]|0)+48>>2]&63](m,c,d)|0)!=(d|0):0){k[a>>2]=0;o=0;r=n;return o|0}k[j>>2]=0;o=m;r=n;return o|0}function nd(a){a=a|0;k[a>>2]=36236;Sm(a+32|0);xn(a);return}function od(a){a=a|0;k[a>>2]=36236;Sm(a+32|0);xn(a);mj(a);return}function pd(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,j=0,l=0,m=0;g=b+44|0;h=k[g>>2]|0;l=b+24|0;m=k[l>>2]|0;if(h>>>0>>0){k[g>>2]=m;h=m}j=h;g=f&24;if(!g){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}if((e|0)==1&(g|0)==24){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}a:do{switch(e|0){case 0:{g=0;e=0;break}case 1:if(!(f&8)){e=m-(k[b+20>>2]|0)|0;g=e;e=((e|0)<0)<<31>>31;break a}else{e=(k[b+12>>2]|0)-(k[b+8>>2]|0)|0;g=e;e=((e|0)<0)<<31>>31;break a}case 2:{g=b+32|0;if(!(i[g>>0]&1))g=g+1|0;else g=k[b+40>>2]|0;e=h-g|0;g=e;e=((e|0)<0)<<31>>31;break}default:{b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}}}while(0);e=tw(g|0,e|0,c|0,d|0)|0;c=M;if((c|0)>=0){g=b+32|0;if(!(i[g>>0]&1))g=g+1|0;else g=k[b+40>>2]|0;d=h-g|0;h=((d|0)<0)<<31>>31;if(!((h|0)<(c|0)|(h|0)==(c|0)&d>>>0>>0)){g=f&8;if(!((e|0)==0&(c|0)==0)){if((g|0)!=0?(k[b+12>>2]|0)==0:0){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}if((f&16|0)!=0&(m|0)==0){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}}if(g){k[b+12>>2]=(k[b+8>>2]|0)+e;k[b+16>>2]=j}if(f&16)k[l>>2]=(k[b+20>>2]|0)+e;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=e;k[b+4>>2]=c;return}}b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function qd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=c+8|0;Sb[k[(k[b>>2]|0)+16>>2]&15](a,b,k[c>>2]|0,k[c+4>>2]|0,0,d);return}function rd(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+44|0;c=k[b>>2]|0;d=k[a+24>>2]|0;if(c>>>0>>0){k[b>>2]=d;c=d}if(!(k[a+48>>2]&8)){a=-1;return a|0}e=a+16|0;b=k[e>>2]|0;d=a+12|0;if(b>>>0>>0){d=k[d>>2]|0;k[e>>2]=c;b=c}else d=k[d>>2]|0;if(d>>>0>=b>>>0){a=-1;return a|0}a=l[d>>0]|0;return a|0}function sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;d=a+44|0;c=k[d>>2]|0;e=k[a+24>>2]|0;if(c>>>0>>0){k[d>>2]=e;c=e}h=a+8|0;d=k[h>>2]|0;j=a+12|0;f=k[j>>2]|0;g=d;if(d>>>0>=f>>>0){a=-1;return a|0}if((b|0)==-1){k[h>>2]=d;k[j>>2]=f+-1;k[a+16>>2]=c;a=0;return a|0}if(!(k[a+48>>2]&16)){e=b&255;d=f+-1|0;if(e<<24>>24!=(i[d>>0]|0)){a=-1;return a|0}}else{e=b&255;d=f+-1|0}k[h>>2]=g;k[j>>2]=d;k[a+16>>2]=c;i[d>>0]=e;a=b;return a|0}function td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;s=r;r=r+16|0;m=s;if((b|0)==-1){a=0;r=s;return a|0}n=a+12|0;o=a+8|0;p=(k[n>>2]|0)-(k[o>>2]|0)|0;q=a+24|0;c=k[q>>2]|0;l=a+28|0;d=k[l>>2]|0;do{if((c|0)==(d|0)){h=a+48|0;if(!(k[h>>2]&16)){a=-1;r=s;return a|0}j=a+20|0;g=k[j>>2]|0;e=c-g|0;f=a+44|0;g=(k[f>>2]|0)-g|0;d=a+32|0;x=0;ra(67,d|0,0);c=x;x=0;if(!(c&1)){if(!(i[d>>0]&1))c=10;else c=(k[d>>2]&-2)+-1|0;x=0;Fa(8,d|0,c|0,0);c=x;x=0;if(!(c&1)){c=i[d>>0]|0;if(!(c&1)){d=d+1|0;c=(c&255)>>>1}else{d=k[a+40>>2]|0;c=k[a+36>>2]|0}t=d+c|0;k[j>>2]=d;k[l>>2]=t;j=d+e|0;k[q>>2]=j;c=d+g|0;k[f>>2]=c;d=t;break}}t=Wa(0)|0;cb(t|0)|0;eb();t=-1;r=s;return t|0}else{t=a+44|0;h=a+48|0;f=t;j=c;c=k[t>>2]|0}}while(0);g=j+1|0;k[m>>2]=g;e=k[(g>>>0>>0?f:m)>>2]|0;k[f>>2]=e;if(k[h>>2]&8){c=a+32|0;if(!(i[c>>0]&1))c=c+1|0;else c=k[a+40>>2]|0;k[o>>2]=c;k[n>>2]=c+p;k[a+16>>2]=e}if((j|0)==(d|0)){t=Vb[k[(k[a>>2]|0)+52>>2]&63](a,b&255)|0;r=s;return t|0}else{k[q>>2]=g;i[j>>0]=b;t=b&255;r=s;return t|0}return 0}function ud(a){a=a|0;var b=0,c=0;k[a>>2]=36200;b=a+56|0;k[b>>2]=36220;c=a+4|0;k[c>>2]=36236;Sm(a+36|0);xn(c);qn(b);return}function vd(a){a=a|0;var b=0,c=0;k[a>>2]=36200;b=a+56|0;k[b>>2]=36220;c=a+4|0;k[c>>2]=36236;Sm(a+36|0);xn(c);qn(b);mj(a);return}function wd(a){a=a|0;var b=0,c=0,d=0,e=0;e=k[(k[a>>2]|0)+-12>>2]|0;b=a+e|0;k[b>>2]=36200;c=a+(e+56)|0;k[c>>2]=36220;d=a+(e+4)|0;k[d>>2]=36236;Sm(a+(e+36)|0);xn(d);qn(c);mj(b);return}function xd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36388;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function yd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36388;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function zd(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,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Dd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Dd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Bd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Cd(a,e,b,c,d);return}}function Bd(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,l=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;do{if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{h=m[l+(f*6|0)+2>>1]|0;e=32768-h+(m[l+(f*6|0)+4>>1]|0)|0;n=(m[l+(f*6|0)>>1]|0)-h+32768|0;j[c+(f*6|0)>>1]=h+49152+(((e&65535)+(n&65535)|0)>>>2);j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{h=m[l+(b*6|0)+2>>1]|0;d=32768-h+(m[l+(b*6|0)+4>>1]|0)|0;n=(m[l+(b*6|0)>>1]|0)-h+32768|0;j[c+(b<<1)>>1]=h+49152+(((d&65535)+(n&65535)|0)>>>2);j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{n=j[l+(g<<3)+6>>1]|0;o=m[l+(g<<3)+2>>1]|0;h=32768-o+(m[l+(g<<3)+4>>1]|0)|0;d=(m[l+(g<<3)>>1]|0)-o+32768|0;j[c+(g<<1)>>1]=o+49152+(((h&65535)+(d&65535)|0)>>>2);j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Cd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Bd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Bd(a,q,c,d,e);r=n;return}function Dd(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,l=0,n=0,o=0,p=0,q=0,r=0;l=a+4|0;a=k[l>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=m[b+(a*6|0)+2>>1]|0;g=m[b+(a*6|0)+4>>1]|0;e=(m[b+(a*6|0)>>1]|0)-((g+h|0)>>>2)+16384|0;j[c+(a*6|0)>>1]=g+32768+e;j[c+(a*6|0)+2>>1]=e;j[c+(a*6|0)+4>>1]=h+32768+e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=m[b+(g+e<<1)>>1]|0;o=m[b+(g+f<<1)>>1]|0;h=(m[b+(g<<1)>>1]|0)-((o+n|0)>>>2)+16384|0;j[c+(g*6|0)>>1]=o+32768+h;j[c+(g*6|0)+2>>1]=h;j[c+(g*6|0)+4>>1]=n+32768+h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=m[b+(g+e<<1)>>1]|0;p=m[b+(g+a<<1)>>1]|0;o=(m[b+(g<<1)>>1]|0)-((p+n|0)>>>2)+16384|0;q=j[b+(g+f<<1)>>1]|0;r=ww(o&65535|0,0,16)|0;n=n+32768+o|M;q=ww(q&65535|0,0,48)|0;q=r|p+32768+o&65535|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){r=a+4|0;q=j[a>>1]|0;j[a>>1]=j[r>>1]|0;j[r>>1]=q;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Ed(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36412;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Fd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36412;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Gd(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,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Kd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Kd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Id(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Jd(a,e,b,c,d);return}}function Id(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,l=0,n=0,o=0,p=0;h=a+4|0;f=k[h>>2]|0;do{if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{g=m[l+(f*6|0)>>1]|0;e=j[l+(f*6|0)+2>>1]|0;h=e&65535;n=(m[l+(f*6|0)+4>>1]|0)+32768-((h+g|0)>>>1)&65535;j[c+(f*6|0)>>1]=g+32768-h;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;g=m[l+(b*6|0)>>1]|0;h=d&65535;n=(m[l+(b*6|0)+4>>1]|0)+32768-((h+g|0)>>>1)&65535;j[c+(b<<1)>>1]=g+32768-h;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;n=j[l+(g<<3)+6>>1]|0;p=m[l+(g<<3)>>1]|0;o=h&65535;d=(m[l+(g<<3)+4>>1]|0)+32768-((o+p|0)>>>1)&65535;j[c+(g<<1)>>1]=p+32768-o;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Jd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Id(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Id(a,q,c,d,e);r=n;return}function Kd(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,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;e=h&65535;g=(m[b+(a*6|0)>>1]|0)+32768+e|0;e=(m[b+(a*6|0)+4>>1]|0)+32768+(((g&65535)+e|0)>>>1)&65535;j[c+(a*6|0)>>1]=g;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;h=n&65535;o=(m[b+(g<<1)>>1]|0)+32768+h|0;h=(m[b+(g+f<<1)>>1]|0)+32768+(((o&65535)+h|0)>>>1)&65535;j[c+(g*6|0)>>1]=o;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{o=j[b+(g+e<<1)>>1]|0;n=o&65535;p=(m[b+(g<<1)>>1]|0)+32768+n&65535;n=(m[b+(g+a<<1)>>1]|0)+32768+((p+n|0)>>>1)|0;q=j[b+(g+f<<1)>>1]|0;o=ww(o&65535|0,0,16)|0;n=M|n;q=ww(q&65535|0,0,48)|0;q=p|o|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Ld(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36436;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Md(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36436;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Nd(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,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Rd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Rd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Od(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Pd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Qd(a,e,b,c,d);return}}function Pd(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,l=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;do{if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=j[l+(f*6|0)+2>>1]|0;h=e&65535;n=32768-h+(m[l+(f*6|0)+4>>1]|0)&65535;j[c+(f*6|0)>>1]=(m[l+(f*6|0)>>1]|0)+32768-h;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;h=d&65535;n=32768-h+(m[l+(b*6|0)+4>>1]|0)&65535;j[c+(b<<1)>>1]=(m[l+(b*6|0)>>1]|0)+32768-h;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;n=j[l+(g<<3)+6>>1]|0;o=h&65535;d=32768-o+(m[l+(g<<3)+4>>1]|0)&65535;j[c+(g<<1)>>1]=(m[l+(g<<3)>>1]|0)+32768-o;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Qd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Pd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Pd(a,q,c,d,e);r=n;return}function Rd(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,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;g=h&65535;e=g+32768+(m[b+(a*6|0)+4>>1]|0)&65535;j[c+(a*6|0)>>1]=(m[b+(a*6|0)>>1]|0)+32768+g;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;o=n&65535;h=o+32768+(m[b+(g+f<<1)>>1]|0)&65535;j[c+(g*6|0)>>1]=(m[b+(g<<1)>>1]|0)+32768+o;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{o=j[b+(g+e<<1)>>1]|0;n=o&65535;p=(m[b+(g<<1)>>1]|0)+32768+n|0;n=n+32768+(m[b+(g+a<<1)>>1]|0)|0;q=j[b+(g+f<<1)>>1]|0;o=ww(o&65535|0,0,16)|0;n=M|n;q=ww(q&65535|0,0,48)|0;q=p&65535|o|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Sd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36460;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Td(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36460;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Ud(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,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Yd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Yd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Vd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Wd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Xd(a,e,b,c,d);return}}function Wd(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,l=0,m=0;h=a+4|0;f=k[h>>2]|0;do{if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;m=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=m;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=j[l+(f*6|0)+2>>1]|0;m=j[l+(f*6|0)+4>>1]|0;j[c+(f*6|0)>>1]=j[l+(f*6|0)>>1]|0;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=m;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;m=j[l+(b*6|0)+4>>1]|0;j[c+(b<<1)>>1]=j[l+(b*6|0)>>1]|0;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;d=j[l+(g<<3)+4>>1]|0;m=j[l+(g<<3)+6>>1]|0;j[c+(g<<1)>>1]=j[l+(g<<3)>>1]|0;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Xd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Wd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Wd(a,q,c,d,e);r=n;return}function Yd(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,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;e=j[b+(a*6|0)+4>>1]|0;j[c+(a*6|0)>>1]=j[b+(a*6|0)>>1]|0;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;h=j[b+(g+f<<1)>>1]|0;j[c+(g*6|0)>>1]=j[b+(g<<1)>>1]|0;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=j[b+(g<<1)>>1]|0;q=j[b+(g+f<<1)>>1]|0;o=m[b+(g+a<<1)>>1]|0;p=ww(m[b+(g+e<<1)>>1]|0,0,16)|0;o=M|o;q=ww(q&65535|0,0,48)|0;q=p|n&65535|q;o=o&65535|M;n=c+(g<<3)|0;p=n;j[p>>1]=q;j[p+2>>1]=q>>>16;n=n+4|0;j[n>>1]=o;j[n+2>>1]=o>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Zd(a){a=a|0;return}function _d(a){a=a|0;mj(a);return}function $d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=ia(k[a+8>>2]|0,c)|0;a=k[a+4>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,b,c)|0)==(c|0))return;d=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,d|0,3,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(d|0);fb(a|0)}else ub(d|0,824,96)}function ae(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,j=0,l=0,m=0;m=r;r=r+16|0;l=m;j=a+8|0;e=k[j>>2]|0;d=ia(e,c)|0;do{if(d){g=a+4|0;f=d;while(1){e=k[g>>2]|0;e=Qb[k[(k[e>>2]|0)+32>>2]&63](e,b,f)|0;if(!e)break;d=f-e|0;if((f|0)==(e|0)){h=11;break}else f=d}if((h|0)==11){e=k[j>>2]|0;f=d;break}d=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,d|0,3,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(d|0);fb(a|0)}else ub(d|0,824,96)}else f=0}while(0);if((e|0)==2){Yc(b,c<<1);e=k[j>>2]|0}d=k[a+12>>2]|0;if((d|0)<=(ia(e,c)|0)){r=m;return}a=k[a+4>>2]|0;Sb[k[(k[a>>2]|0)+16>>2]&15](l,a,d-f|0,0,1,24);r=m;return}function be(a){a=a|0;mj(a);return}function ce(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a+4|0;vw(k[d>>2]|0,b|0,ia(k[a+8>>2]|0,c)|0)|0;k[d>>2]=(k[d>>2]|0)+(k[a+12>>2]|0);return}function de(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a+4|0;vw(b|0,k[d>>2]|0,ia(k[a+8>>2]|0,c)|0)|0;k[d>>2]=(k[d>>2]|0)+(k[a+12>>2]|0);return}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;k[a+112>>2]=0;k[a+108>>2]=0;l=k[b>>2]|0;e=l;do{if(l){g=a+92|0;l=a+96|0;h=k[l>>2]|0;j=k[g>>2]|0;c=j;d=h-c|0;if(d>>>0>=4e4)if(d>>>0>4e4?(f=j+4e4|0,(h|0)!=(f|0)):0){k[l>>2]=f;f=c}else f=c;else{fe(g,4e4-d|0);f=k[g>>2]|0;e=k[b>>2]|0}c=a+116|0;k[c>>2]=f;h=a+124|0;k[h>>2]=f;j=a+104|0;k[j>>2]=e;d=e;if(e){if((k[d+12>>2]|0)==(k[d+16>>2]|0)){b=(Ob[k[(k[e>>2]|0)+36>>2]&127](d)|0)==-1;d=k[h>>2]|0;if(b)break;e=k[c>>2]|0}else{d=f;e=f}g=d-e|0;if(g>>>0<=64){f=a+92|0;if((d|0)==(e|0))d=e;else{d=e;e=0;do{i[(k[f>>2]|0)+e>>0]=i[d+e>>0]|0;e=e+1|0;d=k[c>>2]|0}while(e>>>0>>0);e=k[h>>2]|0}f=k[f>>2]|0;b=f;m=b-d|0;k[c>>2]=f;d=e+m|0;k[h>>2]=d;f=a+120|0;k[f>>2]=(k[f>>2]|0)+m;j=k[j>>2]|0;d=Qb[k[(k[j>>2]|0)+32>>2]&63](j,d,(k[l>>2]|0)-(b+g)|0)|0;d=(k[h>>2]|0)+d|0;k[h>>2]=d}}else d=f}else{k[a+104>>2]=0;d=k[b+4>>2]|0;c=a+116|0;k[c>>2]=d;d=d+(k[b+8>>2]|0)|0;k[a+124>>2]=d}}while(0);c=k[c>>2]|0;if(c>>>0>=d>>>0){l=c;m=a+120|0;k[m>>2]=l;qe(a);return}while(1){if((i[c>>0]|0)==-1){d=20;break}c=c+1|0;if(c>>>0>=d>>>0){d=20;break}}if((d|0)==20){m=a+120|0;k[m>>2]=c;qe(a);return}}function fe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=a+8|0;e=k[j>>2]|0;l=a+4|0;c=k[l>>2]|0;d=c;if((e-d|0)>>>0>=b>>>0){do{i[c>>0]=0;c=(k[l>>2]|0)+1|0;k[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}c=k[a>>2]|0;f=d-c+b|0;if((f|0)<0){jj(a);e=k[j>>2]|0;c=k[a>>2]|0}d=e-c|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?f:d;c=(k[l>>2]|0)-c|0;if(!d){e=0;g=0;f=c}else h=8}else{d=2147483647;c=(k[l>>2]|0)-c|0;h=8}if((h|0)==8){e=d;g=lj(d)|0;f=c}c=g+f|0;e=g+e|0;d=c;do{i[d>>0]=0;d=c+1|0;c=d;b=b+-1|0}while((b|0)!=0);b=k[a>>2]|0;d=(k[l>>2]|0)-b|0;h=g+(f-d)|0;vw(h|0,b|0,d|0)|0;k[a>>2]=h;k[l>>2]=c;k[j>>2]=e;if(!b)return;mj(b);return}function ge(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+180|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do{if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+12|0;a:do{if((k[f>>2]|0)>0){g=a+4604|0;h=(ia(s,q)|0)+1|0;i=a+4608|0;l=a+92|0;m=(s|0)>0;n=a+4600|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(68,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40}while(0);do{if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function he(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4604|0;b=k[p>>2]|0;s=a+180|0;if((k[s>>2]|0)<=0)return;q=a+4608|0;r=a+4612|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(me(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=le(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function ie(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;e=a+104|0;if((k[e>>2]|0)>>>0<4)je(a);f=a+100|0;g=a+112|0;h=a+96|0;j=a+108|0;l=a+116|0;b=k[f>>2]|0;d=0;do{c=i[g>>0]|0;if((b|0)>31)break;b=k[h>>2]|0;if(!(c<<24>>24)){i[k[j>>2]>>0]=b>>>24;k[h>>2]=k[h>>2]<<8;b=(k[f>>2]|0)+8|0}else{i[k[j>>2]>>0]=b>>>25;k[h>>2]=k[h>>2]<<7;b=(k[f>>2]|0)+7|0}k[f>>2]=b;m=k[j>>2]|0;c=(i[m>>0]|0)==-1&1;i[g>>0]=c;k[j>>2]=m+1;k[e>>2]=(k[e>>2]|0)+-1;k[l>>2]=(k[l>>2]|0)+1;d=d+1|0}while((d|0)<4);if(!(c<<24>>24))ke(a,0,(b|0)%8|0);else ke(a,0,(b+-1|0)%8|0);if((k[e>>2]|0)>>>0<4)je(a);b=k[f>>2]|0;c=0;do{if((b|0)>31)break;b=k[h>>2]|0;if(!(i[g>>0]|0)){i[k[j>>2]>>0]=b>>>24;k[h>>2]=k[h>>2]<<8;b=(k[f>>2]|0)+8|0}else{i[k[j>>2]>>0]=b>>>25;k[h>>2]=k[h>>2]<<7;b=(k[f>>2]|0)+7|0}k[f>>2]=b;m=k[j>>2]|0;i[g>>0]=(i[m>>0]|0)==-1&1;k[j>>2]=m+1;k[e>>2]=(k[e>>2]|0)+-1;k[l>>2]=(k[l>>2]|0)+1;c=c+1|0}while((c|0)<4);if(!(k[a+132>>2]|0))return;je(a);return}function je(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=k[a+132>>2]|0;if(!b){b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,4,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}c=a+108|0;d=a+120|0;f=k[d>>2]|0;e=(k[c>>2]|0)-f|0;if((Qb[k[(k[b>>2]|0)+48>>2]&63](b,f,e)|0)==(e|0)){f=k[d>>2]|0;k[c>>2]=f;k[a+104>>2]=(k[a+124>>2]|0)-f;return}b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,4,35648);f=x;x=0;if(!(f&1))ub(b|0,824,96);f=Wa()|0;Ua(b|0);fb(f|0)}function ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;l=a+100|0;c=(k[l>>2]|0)-c|0;k[l>>2]=c;if((c|0)>-1){m=a+96|0;k[m>>2]=k[m>>2]|b<>2]=k[m>>2]|b>>0-c;j=a+104|0;if((k[j>>2]|0)>>>0<4){je(a);c=k[l>>2]|0}f=a+112|0;g=a+108|0;h=a+116|0;d=0;while(1){if((c|0)>31)break;c=k[m>>2]|0;if(!(i[f>>0]|0)){i[k[g>>2]>>0]=c>>>24;k[m>>2]=k[m>>2]<<8;c=(k[l>>2]|0)+8|0}else{i[k[g>>2]>>0]=c>>>25;k[m>>2]=k[m>>2]<<7;c=(k[l>>2]|0)+7|0}k[l>>2]=c;n=k[g>>2]|0;i[f>>0]=(i[n>>0]|0)==-1&1;k[g>>2]=n+1;k[j>>2]=(k[j>>2]|0)+-1;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0;if((d|0)>=4){e=11;break}}a:do{if((e|0)==11)if((c|0)<0){k[m>>2]=k[m>>2]|b>>0-c;if((k[j>>2]|0)>>>0<4){je(a);c=k[l>>2]|0;d=0}else d=0;do{if((c|0)>31)break a;c=k[m>>2]|0;if(!(i[f>>0]|0)){i[k[g>>2]>>0]=c>>>24;k[m>>2]=k[m>>2]<<8;c=(k[l>>2]|0)+8|0}else{i[k[g>>2]>>0]=c>>>25;k[m>>2]=k[m>>2]<<7;c=(k[l>>2]|0)+7|0}k[l>>2]=c;n=k[g>>2]|0;i[f>>0]=(i[n>>0]|0)==-1&1;k[g>>2]=n+1;k[j>>2]=(k[j>>2]|0)+-1;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0}while((d|0)<4)}}while(0);k[m>>2]=k[m>>2]|b<>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;pe(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&65535;return r|0}r=e&~(b>>31);r=r&65535;return r|0}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;i=(k[a+180>>2]|0)-b|0;l=k[a+4608>>2]|0;n=k[a+4604>>2]|0;e=j[l+(b+-1<<1)>>1]|0;h=e&65535;c=k[a+144>>2]|0;f=0;while(1){d=l+(f+b<<1)|0;g=(m[d>>1]|0)-h|0;if((((g|0)>-1?g:0-g|0)|0)>(c|0))break;j[d>>1]=e;f=f+1|0;if((f|0)==(i|0)){f=i;break}}e=(f|0)==(i|0);g=a+4600|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0,h,m[n+(i<<1)>>1]|0)|0;j[b>>1]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){a=i;return a|0}ke(a,1,1);a=i;return a|0}function ne(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;h=c-d|0;i=a+136|0;g=a+144|0;e=k[g>>2]|0;if((((h|0)>-1?h:0-h|0)|0)>(e|0)){f=d-c>>31|1;b=ia(f,b-d|0)|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;c=((b|0)<0?e:0)+b|0;e=c-((c|0)<((e+1|0)/2|0|0)?0:e)|0;oe(a,a+4576|0,e);e=ia(e,f)|0;f=k[g>>2]|0;g=f<<1|1;e=(ia(e,g)|0)+d|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&65535;return i|0}i=b&~(e>>31);i=i&65535;return i|0}else{b=b-c|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;f=((b|0)<0?e:0)+b|0;e=f-((f|0)<((e+1|0)/2|0|0)?0:e)|0;oe(a,a+4588|0,e);f=k[g>>2]|0;g=f<<1|1;e=(ia(g,e)|0)+c|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&65535;return i|0}i=b&~(e>>31);i=i&65535;return i|0}return 0}function oe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;pe(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>2]|0;j=a+120|0;if(b>>>0<((k[j>>2]|0)+-3|0)>>>0){j=a+112|0;g=k[j>>2]|0;a=a+108|0;k[a>>2]=(l[b+1>>0]<<16|l[b>>0]<<24|l[b+2>>0]<<8|l[b+3>>0])>>>g|k[a>>2];a=32-g>>3;k[h>>2]=b+a;k[j>>2]=(a<<3)+g;return}g=a+104|0;c=k[g>>2]|0;do{if(c){if((k[c+12>>2]|0)==(k[c+16>>2]|0)){if((Ob[k[(k[c>>2]|0)+36>>2]&127](c)|0)==-1)break;b=k[h>>2]|0}e=a+124|0;c=k[e>>2]|0;f=c-b|0;if(f>>>0<=64){d=a+92|0;if((c|0)==(b|0))c=b;else{c=0;do{i[(k[d>>2]|0)+c>>0]=i[b+c>>0]|0;c=c+1|0;b=k[h>>2]|0}while(c>>>0>>0);c=b;b=k[e>>2]|0}n=k[d>>2]|0;d=n;m=d-c|0;k[h>>2]=n;c=b+m|0;k[e>>2]=c;k[j>>2]=(k[j>>2]|0)+m;g=k[g>>2]|0;g=Qb[k[(k[g>>2]|0)+32>>2]&63](g,c,(k[a+96>>2]|0)-(d+f)|0)|0;k[e>>2]=(k[e>>2]|0)+g}}}while(0);g=a+112|0;f=a+108|0;a=k[a+124>>2]|0;e=a+-1|0;b=k[h>>2]|0;while(1){if(b>>>0>=a>>>0){c=14;break}d=i[b>>0]|0;c=d&255;d=d<<24>>24==-1;if(d){if((b|0)==(e|0)){c=25;break}b=b+1|0;if((i[b>>0]|0)<0){c=25;break}}else b=b+1|0;n=k[g>>2]|0;k[f>>2]=c<<24-n|k[f>>2];k[h>>2]=b;n=n+(d?7:8)|0;k[g>>2]=n;if((n|0)>=24){c=33;break}}if((c|0)==14){if((k[g>>2]|0)>=1)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,5,35648);n=x;x=0;if(!(n&1))ub(b|0,824,96);n=Wa()|0;Ua(b|0);fb(n|0)}else if((c|0)==25){if((k[g>>2]|0)>=1)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,5,35648);n=x;x=0;if(!(n&1))ub(b|0,824,96);n=Wa()|0;Ua(b|0);fb(n|0)}else if((c|0)==33){a:do{if(b>>>0>>0)do{if((i[b>>0]|0)==-1)break a;b=b+1|0}while(b>>>0>>0)}while(0);k[j>>2]=b;return}}function re(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do{if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0}while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=a+8|0;e=k[j>>2]|0;l=a+4|0;c=k[l>>2]|0;d=c;if((e-d|0)>>>0>=b>>>0){do{i[c>>0]=0;c=(k[l>>2]|0)+1|0;k[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}c=k[a>>2]|0;f=d-c+b|0;if((f|0)<0){jj(a);e=k[j>>2]|0;c=k[a>>2]|0}d=e-c|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?f:d;c=(k[l>>2]|0)-c|0;if(!d){e=0;g=0;f=c}else h=8}else{d=2147483647;c=(k[l>>2]|0)-c|0;h=8}if((h|0)==8){e=d;g=lj(d)|0;f=c}c=g+f|0;e=g+e|0;d=c;do{i[d>>0]=0;d=c+1|0;c=d;b=b+-1|0}while((b|0)!=0);b=k[a>>2]|0;d=(k[l>>2]|0)-b|0;h=g+(f-d)|0;vw(h|0,b|0,d|0)|0;k[a>>2]=h;k[l>>2]=c;k[j>>2]=e;if(!b)return;mj(b);return}function te(a){a=a|0;var b=0,c=0;k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function ue(a){a=a|0;var b=0,c=0;k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function ve(a){a=a|0;var b=0,c=0;k[a>>2]=36052;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function we(a){a=a|0;var b=0,c=0;k[a>>2]=36052;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function xe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;He(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function ye(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35828;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Ae(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Ae(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ae(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+180|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;do{if(b){if(!(b>>>0>715827882?(x=0,qa(178,v|0),u=x,x=0,u&1):0))g=6;if((g|0)==6?(x=0,c=ta(67,b*6|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;d=c+(b*6|0)|0;k[v+8>>2]=d;while(1){j[c>>1]=0;j[c+2>>1]=0;j[c+4>>1]=0;b=b+-1|0;if(!b)break;else c=c+6|0}k[w>>2]=d;break}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!q)g=20;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))g=18;if((g|0)==18?(e=q<<2,x=0,f=ta(67,e|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=f;g=f+(q<<2)|0;k[s+8>>2]=g;sw(f|0,0,e|0)|0;k[u>>2]=g;g=20;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==20){e=a+12|0;a:do{if((k[e>>2]|0)>0){f=a+4604|0;g=(ia(q,p)|0)+1|0;h=a+4608|0;i=a+92|0;l=(q|0)>0;m=a+4600|0;n=0;b:while(1){c=k[v>>2]|0;b=c+6|0;k[f>>2]=b;c=c+(g*6|0)|0;k[h>>2]=c;if(!(n&1))b=c;else{k[f>>2]=c;k[h>>2]=b}d=k[i>>2]|0;x=0;Ja(k[(k[d>>2]|0)+12>>2]|0,d|0,b|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){g=30;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*6|0)|0;c=c+((y+-1|0)*6|0)|0;j[b>>1]=j[c>>1]|0;j[b+2>>1]=j[c+2>>1]|0;j[b+4>>1]=j[c+4>>1]|0;c=(k[h>>2]|0)+-6|0;b=k[f>>2]|0;j[c>>1]=j[b>>1]|0;j[c+2>>1]=j[b+2>>1]|0;j[c+4>>1]=j[b+4>>1]|0;x=0;ra(69,a|0,0);c=x;x=0;if(c&1){g=29;break b}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*6|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*6|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42}while(0);do{if((g|0)==42){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);r=t;return}}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}function Be(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=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;B=a+180|0;if((k[B>>2]|0)<=0)return;C=a+4608|0;D=a+4604|0;E=a+4612|0;A=0;while(1){x=A+-1|0;f=k[C>>2]|0;g=k[D>>2]|0;b=A+1|0;e=m[g+(A*6|0)>>1]|0;z=k[E>>2]|0;h=m[g+(x*6|0)>>1]|0;l=e-h|0;n=m[f+(x*6|0)>>1]|0;o=h-n|0;p=((((i[z+((m[g+(b*6|0)>>1]|0)-e)>>0]|0)*9|0)+(i[z+l>>0]|0)|0)*9|0)+(i[z+o>>0]|0)|0;d=m[g+(A*6|0)+2>>1]|0;q=m[g+(x*6|0)+2>>1]|0;r=d-q|0;s=m[f+(x*6|0)+2>>1]|0;t=q-s|0;u=((((i[z+((m[g+(b*6|0)+2>>1]|0)-d)>>0]|0)*9|0)+(i[z+r>>0]|0)|0)*9|0)+(i[z+t>>0]|0)|0;c=m[g+(A*6|0)+4>>1]|0;v=m[g+(x*6|0)+4>>1]|0;w=c-v|0;x=m[f+(x*6|0)+4>>1]|0;y=v-x|0;z=((((i[z+((m[g+(b*6|0)+4>>1]|0)-c)>>0]|0)*9|0)+(i[z+w>>0]|0)|0)*9|0)+(i[z+y>>0]|0)|0;if(!(u|p|z))b=(Ce(a,A,0)|0)+A|0;else{g=m[f+(A*6|0)>>1]|0;f=e-n>>31;if((f^o|0)>=0)if((f^l|0)<0)e=n;else e=n-h+e|0;g=De(a,p,g,e,0)|0;f=m[(k[C>>2]|0)+(A*6|0)+2>>1]|0;e=d-s>>31;if((e^t|0)>=0)if((e^r|0)<0)d=s;else d=s-q+d|0;e=De(a,u,f,d,0)|0;f=m[(k[C>>2]|0)+(A*6|0)+4>>1]|0;d=c-x>>31;if((d^y|0)>=0)if((d^w|0)<0)c=x;else c=x-v+c|0;y=De(a,z,f,c,0)|0;z=k[C>>2]|0;j[z+(A*6|0)>>1]=g;j[z+(A*6|0)+2>>1]=e;j[z+(A*6|0)+4>>1]=y}if((b|0)<(k[B>>2]|0))A=b;else break}return}function Ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=r;r=r+48|0;q=B+30|0;p=B+24|0;o=B+18|0;s=B+12|0;x=B+6|0;y=B;z=(k[a+180>>2]|0)-b|0;A=k[a+4608>>2]|0;t=k[a+4604>>2]|0;w=b+-1|0;u=j[A+(w*6|0)>>1]|0;v=j[A+(w*6|0)+2>>1]|0;w=j[A+(w*6|0)+4>>1]|0;c=u&65535;d=a+144|0;e=v&65535;f=w&65535;n=0;while(1){i=n+b|0;g=A+(i*6|0)|0;h=A+(i*6|0)+2|0;i=A+(i*6|0)+4|0;C=(m[g>>1]|0)-c|0;l=k[d>>2]|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;C=(m[h>>1]|0)-e|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;C=(m[i>>1]|0)-f|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;j[g>>1]=u;j[h>>1]=v;j[i>>1]=w;n=n+1|0;if((n|0)==(z|0)){n=z;break}}e=(n|0)==(z|0);f=a+4600|0;d=k[36476+(k[f>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[f>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[f>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]=j[C>>1]|0;j[x+2>>1]=j[C+2>>1]|0;j[x+4>>1]=j[C+4>>1]|0;j[y>>1]=u;j[y+2>>1]=v;j[y+4>>1]=w;b=t+(b*6|0)|0;j[o>>1]=j[x>>1]|0;j[o+2>>1]=j[x+2>>1]|0;j[o+4>>1]=j[x+4>>1]|0;j[p>>1]=j[y>>1]|0;j[p+2>>1]=j[y+2>>1]|0;j[p+4>>1]=j[y+4>>1]|0;j[q>>1]=j[b>>1]|0;j[q+2>>1]=j[b+2>>1]|0;j[q+4>>1]=j[b+4>>1]|0;Fe(s,a,o,p,q);j[C>>1]=j[s>>1]|0;j[C+2>>1]=j[s+2>>1]|0;j[C+4>>1]=j[s+4>>1]|0;C=k[f>>2]|0;k[f>>2]=(C|0)<1?0:C+-1|0;C=n+1|0;r=B;return C|0}if(!c){C=z;r=B;return C|0}ke(a,1,1);C=z;r=B;return C|0}function De(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;Ee(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&65535;return r|0}r=e&~(b>>31);r=r&65535;return r|0}function Ee(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>1]|0;p=o-(m[d>>1]|0)>>31|1;f=ia(p,(m[c>>1]|0)-o|0)|0;l=b+144|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;w=b+140|0;i=k[w>>2]|0;h=((f|0)<0?i:0)+f|0;i=h-((h|0)<((i+1|0)/2|0|0)?0:i)|0;h=b+4576|0;Ge(b,h,i);t=m[e+2>>1]|0;u=t-(m[d+2>>1]|0)>>31|1;f=ia(u,(m[c+2>>1]|0)-t|0)|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;q=k[w>>2]|0;v=((f|0)<0?q:0)+f|0;q=v-((v|0)<((q+1|0)/2|0|0)?0:q)|0;Ge(b,h,q);v=m[e+4>>1]|0;s=v-(m[d+4>>1]|0)>>31|1;f=ia(s,(m[c+4>>1]|0)-v|0)|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;n=k[w>>2]|0;f=((f|0)<0?n:0)+f|0;n=f-((f|0)<((n+1|0)/2|0|0)?0:n)|0;Ge(b,h,n);h=k[l>>2]|0;l=h<<1|1;f=(ia(ia(l,i)|0,p)|0)+o|0;c=0-h|0;if((f|0)>=(c|0)){g=k[r>>2]|0;if((g+h|0)<(f|0)){f=f-(ia(k[w>>2]|0,l)|0)|0;d=g}else d=g}else{f=(ia(k[w>>2]|0,l)|0)+f|0;d=k[r>>2]|0}if((f&d|0)!=(f|0))f=d&~(f>>31);e=f&65535;f=(ia(ia(l,q)|0,u)|0)+t|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,l)|0)|0}else f=(ia(k[w>>2]|0,l)|0)+f|0;if((f&d|0)!=(f|0))f=d&~(f>>31);g=f&65535;f=(ia(ia(l,n)|0,s)|0)+v|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,l)|0)|0}else f=(ia(k[w>>2]|0,l)|0)+f|0;if((f&d|0)==(f|0)){w=f;w=w&65535;j[a>>1]=e;v=a+2|0;j[v>>1]=g;a=a+4|0;j[a>>1]=w;return}w=d&~(f>>31);w=w&65535;j[a>>1]=e;v=a+2|0;j[v>>1]=g;a=a+4|0;j[a>>1]=w;return}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Ee(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function He(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do{if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0}while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Ie(a){a=a|0;var b=0,c=0;k[a>>2]=36024;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Je(a){a=a|0;var b=0,c=0;k[a>>2]=36024;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;zf(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function Le(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35800;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];sf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;sf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Me(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ne(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,j=0,l=0,m=0,n=0;k[a>>2]=36712;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do{if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Oe(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,j=0,l=0,m=0,n=0;k[a>>2]=36688;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do{if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Pe(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,j=0,l=0,m=0,n=0;k[a>>2]=36664;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do{if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Qe(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,j=0,l=0,m=0,n=0;k[a>>2]=36640;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do{if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Re(a){a=a|0;var b=0,c=0;k[a>>2]=36640;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function Se(a){a=a|0;var b=0,c=0;k[a>>2]=36640;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function Te(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;Xe(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;Xe(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function Ue(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Ve(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{We(a,e,b,c,d);return}}function Ve(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,j=0,m=0,n=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{g=l[h+(f*3|0)+1>>0]|0;e=128-g+(l[h+(f*3|0)+2>>0]|0)|0;j=(l[h+(f*3|0)>>0]|0)-g+128|0;m=c+(f*3|0)|0;i[m>>0]=g+192+(((e&255)+(j&255)|0)>>>2);i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=l[h+(b*3|0)+1>>0]|0;j=128-d+(l[h+(b*3|0)+2>>0]|0)|0;m=(l[h+(b*3|0)>>0]|0)-d+128|0;i[c+b>>0]=d+192+(((j&255)+(m&255)|0)>>>2);i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{m=i[h+(g<<2)+3>>0]|0;n=l[h+(g<<2)+1>>0]|0;d=128-n+(l[h+(g<<2)+2>>0]|0)|0;j=(l[h+(g<<2)>>0]|0)-n+128|0;i[c+g>>0]=n+192+(((d&255)+(j&255)|0)>>>2);i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function We(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;Ve(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){Ve(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do{if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}while(0);p=f;qn(c);fb(p|0)}function Xe(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,j=0,m=0,n=0,o=0,p=0;j=a+4|0;a=k[j>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=l[b+(a*3|0)+1>>0]|0;f=l[b+(a*3|0)+2>>0]|0;h=(l[b+(a*3|0)>>0]|0)-((f+g|0)>>>2)+64|0;e=c+(a*3|0)|0;i[e>>0]=f+128+h;i[e+1>>0]=h;i[e+2>>0]=g+128+h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=l[b+(g+e)>>0]|0;o=l[b+(g+f)>>0]|0;m=(l[b+g>>0]|0)-((o+n|0)>>>2)+64|0;h=c+(g*3|0)|0;i[h>>0]=o+128+m;i[h+1>>0]=m;i[h+2>>0]=n+128+m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{m=l[b+(g+e)>>0]|0;p=l[b+(g+a)>>0]|0;n=(l[b+g>>0]|0)-((p+m|0)>>>2)+64|0;o=c+(g<<2)|0;n=n<<8&65280|l[b+(g+f)>>0]<<24|p+128+n&255|m+128+n<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){p=a+2|0;o=i[a>>0]|0;i[a>>0]=i[p>>0]|0;i[p>>0]=o;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function Ye(a){a=a|0;var b=0,c=0;k[a>>2]=36664;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function Ze(a){a=a|0;var b=0,c=0;k[a>>2]=36664;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function _e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;cf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;cf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function $e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;af(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{bf(a,e,b,c,d);return}}function af(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,j=0,m=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{b=l[h+(f*3|0)>>0]|0;e=i[h+(f*3|0)+1>>0]|0;g=e&255;j=(l[h+(f*3|0)+2>>0]|0)+128-((g+b|0)>>>1)&255;m=c+(f*3|0)|0;i[m>>0]=b+128-g;i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;g=l[h+(b*3|0)>>0]|0;d=j&255;m=(l[h+(b*3|0)+2>>0]|0)+128-((d+g|0)>>>1)&255;i[c+b>>0]=g+128-d;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;m=i[h+(g<<2)+3>>0]|0;o=l[h+(g<<2)>>0]|0;n=d&255;j=(l[h+(g<<2)+2>>0]|0)+128-((n+o|0)>>>1)&255;i[c+g>>0]=o+128-n;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function bf(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;af(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){af(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do{if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}while(0);p=f;qn(c);fb(p|0)}function cf(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,j=0,m=0,n=0,o=0;j=a+4|0;a=k[j>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;h=g&255;f=(l[b+(a*3|0)>>0]|0)+128+h|0;h=(l[b+(a*3|0)+2>>0]|0)+128+(((f&255)+h|0)>>>1)&255;e=c+(a*3|0)|0;i[e>>0]=f;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;m=n&255;o=(l[b+g>>0]|0)+128+m|0;m=(l[b+(g+f)>>0]|0)+128+(((o&255)+m|0)>>>1)&255;h=c+(g*3|0)|0;i[h>>0]=o;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=l[b+(g+e)>>0]|0;m=(l[b+g>>0]|0)+128+n&255;o=c+(g<<2)|0;n=m|n<<8|l[b+(g+f)>>0]<<24|(l[b+(g+a)>>0]|0)+128+((m+n|0)>>>1)<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){o=a+2|0;n=i[a>>0]|0;i[a>>0]=i[o>>0]|0;i[o>>0]=n;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function df(a){a=a|0;var b=0,c=0;k[a>>2]=36688;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function ef(a){a=a|0;var b=0,c=0;k[a>>2]=36688;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;kf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;kf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;hf(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{jf(a,e,b,c,d);return}}function hf(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,j=0,m=0,n=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=i[h+(f*3|0)+1>>0]|0;g=e&255;j=128-g+(l[h+(f*3|0)+2>>0]|0)&255;m=c+(f*3|0)|0;i[m>>0]=(l[h+(f*3|0)>>0]|0)+128-g;i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;d=j&255;m=128-d+(l[h+(b*3|0)+2>>0]|0)&255;i[c+b>>0]=(l[h+(b*3|0)>>0]|0)+128-d;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;m=i[h+(g<<2)+3>>0]|0;n=d&255;j=128-n+(l[h+(g<<2)+2>>0]|0)&255;i[c+g>>0]=(l[h+(g<<2)>>0]|0)+128-n;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function jf(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;hf(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){hf(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do{if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}while(0);p=f;qn(c);fb(p|0)}function kf(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,j=0,m=0,n=0,o=0;j=a+4|0;a=k[j>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;f=g&255;h=f+128+(l[b+(a*3|0)+2>>0]|0)&255;e=c+(a*3|0)|0;i[e>>0]=(l[b+(a*3|0)>>0]|0)+128+f;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;o=n&255;m=o+128+(l[b+(g+f)>>0]|0)&255;h=c+(g*3|0)|0;i[h>>0]=(l[b+g>>0]|0)+128+o;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=l[b+(g+e)>>0]|0;o=c+(g<<2)|0;n=(l[b+g>>0]|0)+128+n&255|n<<8|l[b+(g+f)>>0]<<24|n+128+(l[b+(g+a)>>0]|0)<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){o=a+2|0;n=i[a>>0]|0;i[a>>0]=i[o>>0]|0;i[o>>0]=n;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function lf(a){a=a|0;var b=0,c=0;k[a>>2]=36712;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function mf(a){a=a|0;var b=0,c=0;k[a>>2]=36712;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;rf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;rf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;pf(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{qf(a,e,b,c,d);return}}function pf(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,j=0,l=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;l=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=l;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=i[h+(f*3|0)+1>>0]|0;j=i[h+(f*3|0)+2>>0]|0;l=c+(f*3|0)|0;i[l>>0]=i[h+(f*3|0)>>0]|0;i[l+1>>0]=e;i[l+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;l=i[h+(b*3|0)+2>>0]|0;i[c+b>>0]=i[h+(b*3|0)>>0]|0;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=l;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;j=i[h+(g<<2)+2>>0]|0;l=i[h+(g<<2)+3>>0]|0;i[c+g>>0]=i[h+(g<<2)>>0]|0;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=l;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function qf(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;pf(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){pf(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do{if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}while(0);p=f;qn(c);fb(p|0)}function rf(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,j=0,m=0,n=0;j=a+4|0;a=k[j>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;h=i[b+(a*3|0)+2>>0]|0;e=c+(a*3|0)|0;i[e>>0]=i[b+(a*3|0)>>0]|0;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;m=i[b+(g+f)>>0]|0;h=c+(g*3|0)|0;i[h>>0]=i[b+g>>0]|0;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=c+(g<<2)|0;m=l[b+(g+e)>>0]<<8|l[b+g>>0]|l[b+(g+a)>>0]<<16|l[b+(g+f)>>0]<<24;i[n>>0]=m;i[n+1>>0]=m>>8;i[n+2>>0]=m>>16;i[n+3>>0]=m>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){n=a+2|0;m=i[a>>0]|0;i[a>>0]=i[n>>0]|0;i[n>>0]=m;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function sf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+180|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do{if(b){if(!(b>>>0>1431655765?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[w>>2]|0)+3|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){e=a+12|0;b:do{if((k[e>>2]|0)>0){f=a+4604|0;g=(ia(q,p)|0)+1|0;h=a+4608|0;j=a+92|0;l=(q|0)>0;m=a+4600|0;n=0;c:while(1){d=k[v>>2]|0;b=d+3|0;k[f>>2]=b;c=d+(g*3|0)|0;k[h>>2]=c;if(!(n&1))b=g;else{k[f>>2]=c;k[h>>2]=b;b=1}c=k[j>>2]|0;x=0;Ja(k[(k[c>>2]|0)+12>>2]|0,c|0,d+(b*3|0)|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*3|0)|0;c=c+((y+-1|0)*3|0)|0;i[b>>0]=i[c>>0]|0;i[b+1>>0]=i[c+1>>0]|0;i[b+2>>0]=i[c+2>>0]|0;b=k[f>>2]|0;c=(k[h>>2]|0)+-3|0;i[c>>0]=i[b>>0]|0;i[c+1>>0]=i[b+1>>0]|0;i[c+2>>0]=i[b+2>>0]|0;x=0;ra(70,a|0,0);c=x;x=0;if(c&1){f=28;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*3|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*3|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){d=Wa()|0;break}else if((f|0)==29){d=Wa()|0;break}}else f=41}while(0);do{if((f|0)==41){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=t;return}}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function tf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=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;A=a+180|0;if((k[A>>2]|0)<=0)return;B=a+4608|0;C=a+4604|0;D=a+4612|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(uf(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=vf(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=vf(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=vf(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=r;r=r+32|0;A=B+15|0;p=B+12|0;o=B+9|0;q=B+6|0;w=B+3|0;x=B;y=(k[a+180>>2]|0)-b|0;z=k[a+4608>>2]|0;s=k[a+4604>>2]|0;v=z+((b+-1|0)*3|0)|0;t=i[v>>0]|0;u=i[v+1>>0]|0;v=i[v+2>>0]|0;c=t&255;d=a+144|0;e=u&255;f=v&255;n=0;while(1){g=z+((n+b|0)*3|0)|0;h=g+1|0;j=g+2|0;C=(l[g>>0]|0)-c|0;m=k[d>>2]|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;C=(l[h>>0]|0)-e|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;C=(l[j>>0]|0)-f|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;i[g>>0]=t;i[h>>0]=u;i[j>>0]=v;n=n+1|0;if((n|0)==(y|0)){n=y;break}}e=(n|0)==(y|0);f=a+4600|0;d=k[36476+(k[f>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[f>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[f>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]=i[C>>0]|0;i[w+1>>0]=i[C+1>>0]|0;i[w+2>>0]=i[C+2>>0]|0;i[x>>0]=t;i[x+1>>0]=u;i[x+2>>0]=v;b=s+(b*3|0)|0;i[o>>0]=i[w>>0]|0;i[o+1>>0]=i[w+1>>0]|0;i[o+2>>0]=i[w+2>>0]|0;i[p>>0]=i[x>>0]|0;i[p+1>>0]=i[x+1>>0]|0;i[p+2>>0]=i[x+2>>0]|0;i[A>>0]=i[b>>0]|0;i[A+1>>0]=i[b+1>>0]|0;i[A+2>>0]=i[b+2>>0]|0;xf(q,a,o,p,A);i[C>>0]=i[q>>0]|0;i[C+1>>0]=i[q+1>>0]|0;i[C+2>>0]=i[q+2>>0]|0;C=k[f>>2]|0;k[f>>2]=(C|0)<1?0:C+-1|0;C=n+1|0;r=B;return C|0}if(!c){C=y;r=B;return C|0}ke(a,1,1);C=y;r=B;return C|0}function vf(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;wf(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&255;return r|0}r=e&~(b>>31);r=r&255;return r|0}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>0]|0;p=o-(l[d>>0]|0)>>31|1;f=ia(p,(l[c>>0]|0)-o|0)|0;m=b+144|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;w=b+140|0;j=k[w>>2]|0;h=((f|0)<0?j:0)+f|0;j=h-((h|0)<((j+1|0)/2|0|0)?0:j)|0;h=b+4576|0;yf(b,h,j);t=l[e+1>>0]|0;u=t-(l[d+1>>0]|0)>>31|1;f=ia(u,(l[c+1>>0]|0)-t|0)|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;q=k[w>>2]|0;v=((f|0)<0?q:0)+f|0;q=v-((v|0)<((q+1|0)/2|0|0)?0:q)|0;yf(b,h,q);v=l[e+2>>0]|0;s=v-(l[d+2>>0]|0)>>31|1;f=ia(s,(l[c+2>>0]|0)-v|0)|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;n=k[w>>2]|0;f=((f|0)<0?n:0)+f|0;n=f-((f|0)<((n+1|0)/2|0|0)?0:n)|0;yf(b,h,n);h=k[m>>2]|0;m=h<<1|1;f=(ia(ia(m,j)|0,p)|0)+o|0;c=0-h|0;if((f|0)>=(c|0)){g=k[r>>2]|0;if((g+h|0)<(f|0)){f=f-(ia(k[w>>2]|0,m)|0)|0;d=g}else d=g}else{f=(ia(k[w>>2]|0,m)|0)+f|0;d=k[r>>2]|0}if((f&d|0)!=(f|0))f=d&~(f>>31);e=f&255;f=(ia(ia(m,q)|0,u)|0)+t|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,m)|0)|0}else f=(ia(k[w>>2]|0,m)|0)+f|0;if((f&d|0)!=(f|0))f=d&~(f>>31);g=f&255;f=(ia(ia(m,n)|0,s)|0)+v|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,m)|0)|0}else f=(ia(k[w>>2]|0,m)|0)+f|0;if((f&d|0)==(f|0)){w=f;w=w&255;i[a>>0]=e;v=a+1|0;i[v>>0]=g;a=a+2|0;i[a>>0]=w;return}w=d&~(f>>31);w=w&255;i[a>>0]=e;v=a+1|0;i[v>>0]=g;a=a+2|0;i[a>>0]=w;return}function yf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;wf(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do{if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0}while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Af(a){a=a|0;var b=0,c=0;k[a>>2]=35996;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Bf(a){a=a|0;var b=0,c=0;k[a>>2]=35996;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Cf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,65535,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;Lf(a);d=0;do{k[a+172+(d*12|0)>>2]=1024;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=1024;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=1024;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function Df(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35772;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Ff(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Ff(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ff(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+156|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do{if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+12|0;a:do{if((k[f>>2]|0)>0){g=a+4580|0;h=(ia(s,q)|0)+1|0;i=a+4584|0;l=a+92|0;m=(s|0)>0;n=a+4576|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(71,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40}while(0);do{if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Gf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4580|0;b=k[p>>2]|0;s=a+156|0;if((k[s>>2]|0)<=0)return;q=a+4584|0;r=a+4588|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(If(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Hf(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Hf(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&65535|0)==(e|0))m=e;else m=e>>31&65535^65535;h=(c-m^q)-q<<16;l=h>>16;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;d=e^l;d=d>>30^d<<1;e=d>>f;if((e|0)<47){if((e|0)>30){g=(e|0)/2|0;ke(a,0,g);e=e-g|0}ke(a,1,e+1|0);ke(a,d&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-65536?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}function If(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;l=k[a+4580>>2]|0;e=j[h+(b+-1<<1)>>1]|0;d=0;while(1){c=h+(d+b<<1)|0;if((j[c>>1]|0)!=e<<16>>16){n=d;break}j[c>>1]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&65535;e=(n|0)==(g|0);i=a+4576|0;d=k[36476+(k[i>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[i>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[i>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0;c=m[l+(c<<1)>>1]|0;l=f-c|0;if((((l|0)>-1?l:0-l|0)|0)<1){c=d-f<<16>>16;Jf(a,a+4564|0,c);c=c+f|0}else{l=c-f>>31|1;b=(ia(d-c<<16,l)|0)>>16;Jf(a,a+4552|0,b);c=(ia(b,l)|0)+c|0}j[e>>1]=c;a=k[i>>2]|0;k[i>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Kf(a,e,d,63-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-16|0;if((e|0)<(d+-17|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-47|0)}else ke(a,1,f);ke(a,c+65535&65535,16);return}function Lf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,65535,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8909]|0;k[a+4588>>2]=j+(((k[8910]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=131072){if(f>>>0>131072?(g=b+131072|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,131072-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+65536;g=a+168|0;e=a+164|0;f=-65536;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==65536)break}r=l;return}function Mf(a){a=a|0;var b=0,c=0;k[a>>2]=35968;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Nf(a){a=a|0;var b=0,c=0;k[a>>2]=35968;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,4095,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;Xf(a);d=0;do{k[a+172+(d*12|0)>>2]=64;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=64;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=64;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function Pf(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35744;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Rf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Rf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Rf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+156|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do{if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+12|0;a:do{if((k[f>>2]|0)>0){g=a+4580|0;h=(ia(s,q)|0)+1|0;i=a+4584|0;l=a+92|0;m=(s|0)>0;n=a+4576|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(72,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40}while(0);do{if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Sf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4580|0;b=k[p>>2]|0;s=a+156|0;if((k[s>>2]|0)<=0)return;q=a+4584|0;r=a+4588|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Uf(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Tf(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Tf(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&4095|0)==(e|0))m=e;else m=e>>31&4095^4095;h=(c-m^q)-q<<20;l=h>>20;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;d=e^l;d=d>>30^d<<1;e=d>>f;if((e|0)<35){if((e|0)>30){g=(e|0)/2|0;ke(a,0,g);e=e-g|0}ke(a,1,e+1|0);ke(a,d&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-1048576?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;l=k[a+4580>>2]|0;e=j[h+(b+-1<<1)>>1]|0;d=0;while(1){c=h+(d+b<<1)|0;if((j[c>>1]|0)!=e<<16>>16){n=d;break}j[c>>1]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&65535;e=(n|0)==(g|0);i=a+4576|0;d=k[36476+(k[i>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[i>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[i>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0;c=m[l+(c<<1)>>1]|0;l=f-c|0;if((((l|0)>-1?l:0-l|0)|0)<1){c=d-f<<20>>20;Vf(a,a+4564|0,c);c=c+f|0}else{l=c-f>>31|1;b=(ia(d-c<<20,l)|0)>>20;Vf(a,a+4552|0,b);c=(ia(b,l)|0)+c|0}j[e>>1]=c&4095;a=k[i>>2]|0;k[i>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Wf(a,e,d,47-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-12|0;if((e|0)<(d+-13|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-43|0)}else ke(a,1,f);ke(a,c+4095&4095,12);return}function Xf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,4095,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8906]|0;k[a+4588>>2]=j+(((k[8907]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=8192){if(f>>>0>8192?(g=b+8192|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,8192-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+4096;g=a+168|0;e=a+164|0;f=-4096;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==4096)break}r=l;return}function Yf(a){a=a|0;var b=0,c=0;k[a>>2]=35940;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Zf(a){a=a|0;var b=0,c=0;k[a>>2]=35940;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function _f(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;hg(a);d=0;do{k[a+172+(d*12|0)>>2]=4;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=4;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=4;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function $f(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35716;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];bg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;bg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function bg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+156|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do{if(b){if(!((b|0)<0?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[w>>2]|0)+1|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}c=Wa()|0;b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){e=a+12|0;b:do{if((k[e>>2]|0)>0){f=a+4580|0;g=(ia(q,p)|0)+1|0;h=a+4584|0;j=a+92|0;l=(q|0)>0;m=a+4576|0;n=0;c:while(1){c=k[v>>2]|0;b=c+1|0;k[f>>2]=b;c=c+g|0;k[h>>2]=c;if(!(n&1))b=c;else{k[f>>2]=c;k[h>>2]=b}d=k[j>>2]|0;x=0;Ja(k[(k[d>>2]|0)+12>>2]|0,d|0,b|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[f>>2]|0;c=k[s>>2]|0;d=0;do{k[m>>2]=k[c+(d<<2)>>2];c=k[o>>2]|0;i[b+c>>0]=i[b+(c+-1)>>0]|0;i[(k[h>>2]|0)+-1>>0]=i[k[f>>2]>>0]|0;x=0;ra(73,a|0,0);c=x;x=0;if(c&1){f=28;break c}c=k[s>>2]|0;k[c+(d<<2)>>2]=k[m>>2];b=(k[f>>2]|0)+p|0;k[f>>2]=b;k[h>>2]=(k[h>>2]|0)+p;d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){c=Wa()|0;break}else if((f|0)==29){c=Wa()|0;break}}else f=41}while(0);do{if((f|0)==41){x=0;qa(182,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return}}while(0);b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}function cg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4580|0;b=k[o>>2]|0;r=a+156|0;if((k[r>>2]|0)<=0)return;p=a+4584|0;q=a+4588|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(eg(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=dg(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function dg(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&255|0)==(e|0))m=e;else m=e>>31&255^255;h=(c-m^q)-q<<24;l=h>>24;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;e=e^l;e=e>>30^e<<1;d=e>>f;if((d|0)<23){ke(a,1,d+1|0);ke(a,e&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-16777216?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}function eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;m=k[a+4580>>2]|0;e=i[h+(b+-1)>>0]|0;d=0;while(1){c=h+(d+b)|0;if((i[c>>0]|0)!=e<<24>>24){n=d;break}i[c>>0]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&255;e=(n|0)==(g|0);j=a+4576|0;d=k[36476+(k[j>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[j>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[j>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0;c=l[m+c>>0]|0;m=f-c|0;if((((m|0)>-1?m:0-m|0)|0)<1){c=d-f<<24>>24;fg(a,a+4564|0,c);c=c+f|0}else{m=c-f>>31|1;b=(ia(d-c<<24,m)|0)>>24;fg(a,a+4552|0,b);c=(ia(b,m)|0)+c|0}i[e>>0]=c;a=k[j>>2]|0;k[j>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;gg(a,e,d,31-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function gg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-8|0;if((e|0)<(d+-9|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-39|0)}else ke(a,1,f);ke(a,c+255&255,8);return}function hg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8900]|0;k[a+4588>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+256;g=a+168|0;e=a+164|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ig(a){a=a|0;var b=0,c=0;k[a>>2]=35912;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function jg(a){a=a|0;var b=0,c=0;k[a>>2]=35912;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function kg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;tg(a);d=0;do{k[a+172+(d*12|0)>>2]=4;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=4;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=4;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function lg(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35688;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];ng(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;ng(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function mg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function ng(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+156|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do{if(b){if(!(b>>>0>1431655765?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[w>>2]|0)+3|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){e=a+12|0;b:do{if((k[e>>2]|0)>0){f=a+4580|0;g=(ia(q,p)|0)+1|0;h=a+4584|0;j=a+92|0;l=(q|0)>0;m=a+4576|0;n=0;c:while(1){d=k[v>>2]|0;b=d+3|0;k[f>>2]=b;c=d+(g*3|0)|0;k[h>>2]=c;if(!(n&1))b=g;else{k[f>>2]=c;k[h>>2]=b;b=1}c=k[j>>2]|0;x=0;Ja(k[(k[c>>2]|0)+12>>2]|0,c|0,d+(b*3|0)|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*3|0)|0;c=c+((y+-1|0)*3|0)|0;i[b>>0]=i[c>>0]|0;i[b+1>>0]=i[c+1>>0]|0;i[b+2>>0]=i[c+2>>0]|0;b=k[f>>2]|0;c=(k[h>>2]|0)+-3|0;i[c>>0]=i[b>>0]|0;i[c+1>>0]=i[b+1>>0]|0;i[c+2>>0]=i[b+2>>0]|0;x=0;ra(74,a|0,0);c=x;x=0;if(c&1){f=28;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*3|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*3|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){d=Wa()|0;break}else if((f|0)==29){d=Wa()|0;break}}else f=41}while(0);do{if((f|0)==41){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=t;return}}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=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;A=a+156|0;if((k[A>>2]|0)<=0)return;B=a+4584|0;C=a+4580|0;D=a+4588|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(pg(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=qg(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=qg(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=qg(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function pg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=(k[a+156>>2]|0)-b|0;n=k[a+4584>>2]|0;o=k[a+4580>>2]|0;j=n+((b+-1|0)*3|0)|0;p=i[j>>0]|0;h=i[j+1>>0]|0;j=i[j+2>>0]|0;f=0;while(1){c=n+((f+b|0)*3|0)|0;d=c+1|0;e=c+2|0;if(!(((i[c>>0]|0)==p<<24>>24?(i[d>>0]|0)==h<<24>>24:0)&(i[e>>0]|0)==j<<24>>24))break;i[c>>0]=p;i[d>>0]=h;i[e>>0]=j;f=f+1|0;if((f|0)==(m|0)){f=m;break}}e=(f|0)==(m|0);g=a+4576|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0;b=m+2|0;e=i[b>>0]|0;o=o+(d*3|0)|0;d=i[o+1>>0]|0;t=i[o+2>>0]|0;o=l[o>>0]|0;q=o-(p&255)>>31|1;r=(ia((l[m>>0]|0)-o<<24,q)|0)>>24;s=a+4552|0;rg(a,s,r);p=d&255;d=p-(h&255)>>31|1;c=(ia((c&255)-p<<24,d)|0)>>24;rg(a,s,c);h=t&255;j=h-(j&255)>>31|1;e=(ia((e&255)-h<<24,j)|0)>>24;rg(a,s,e);o=(ia(r,q)|0)+o&255;p=(ia(c,d)|0)+p&255;a=(ia(e,j)|0)+h&255;i[m>>0]=o;i[n>>0]=p;i[b>>0]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){t=m;return t|0}ke(a,1,1);t=m;return t|0}function qg(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&255|0)==(e|0))m=e;else m=e>>31&255^255;h=(c-m^q)-q<<24;l=h>>24;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;e=e^l;e=e>>30^e<<1;d=e>>f;if((d|0)<23){ke(a,1,d+1|0);ke(a,e&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-16777216?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}function rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;sg(a,e,d,31-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-8|0;if((e|0)<(d+-9|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-39|0)}else ke(a,1,f);ke(a,c+255&255,8);return}function tg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8900]|0;k[a+4588>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+256;g=a+168|0;e=a+164|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ug(a){a=a|0;var b=0,c=0;k[a>>2]=35884;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function vg(a){a=a|0;var b=0,c=0;k[a>>2]=35884;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function wg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;Gg(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function xg(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35660;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];zg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;zg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function yg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function zg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;t=r;r=r+32|0;v=t+12|0;s=t;p=a+180|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)n=k[a+24>>2]|0;else n=1;b=ia(n<<1,q)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do{if(b){if(!((b|0)<0?(x=0,qa(178,v|0),u=x,x=0,u&1):0))o=6;if((o|0)==6?(x=0,c=ta(67,b|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[w>>2]|0)+1|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!n)o=19;else{if(!(n>>>0>1073741823?(x=0,qa(178,s|0),m=x,x=0,m&1):0))o=17;if((o|0)==17?(d=n<<2,x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[s>>2]=e;o=e+(n<<2)|0;k[s+8>>2]=o;sw(e|0,0,d|0)|0;k[u>>2]=o;o=19;break}c=Wa()|0;b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}}while(0);if((o|0)==19){g=a+12|0;b:do{if((k[g>>2]|0)>0){h=a+4604|0;j=(ia(n,q)|0)+1|0;l=a+4608|0;m=a+92|0;f=a+4600|0;if((n|0)>0)e=0;else{d=0;while(1){c=k[v>>2]|0;b=c+1|0;k[h>>2]=b;c=c+j|0;k[l>>2]=c;if(!(d&1))b=c;else{k[h>>2]=c;k[l>>2]=b}n=k[m>>2]|0;x=0;Ja(k[(k[n>>2]|0)+12>>2]|0,n|0,b|0,k[p>>2]|0,q|0);n=x;x=0;if(n&1)break;d=d+1|0;if((d|0)>=(k[g>>2]|0)){o=45;break b}}c=Wa()|0;break}c:while(1){c=k[v>>2]|0;b=c+1|0;k[h>>2]=b;c=c+j|0;k[l>>2]=c;if(!(e&1))b=c;else{k[h>>2]=c;k[l>>2]=b}o=k[m>>2]|0;x=0;Ja(k[(k[o>>2]|0)+12>>2]|0,o|0,b|0,k[p>>2]|0,q|0);o=x;x=0;if(o&1){o=28;break}b=k[s>>2]|0;c=k[h>>2]|0;d=0;do{k[f>>2]=k[b+(d<<2)>>2];o=k[p>>2]|0;i[c+o>>0]=i[c+(o+-1)>>0]|0;i[(k[l>>2]|0)+-1>>0]=i[k[h>>2]>>0]|0;x=0;ra(75,a|0,0);o=x;x=0;if(o&1){o=36;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[f>>2];c=(k[h>>2]|0)+q|0;k[h>>2]=c;k[l>>2]=(k[l>>2]|0)+q;d=d+1|0}while((d|0)<(n|0));e=e+1|0;if((e|0)>=(k[g>>2]|0)){o=45;break b}}if((o|0)==28){c=Wa()|0;break}else if((o|0)==36){c=Wa()|0;break}}else o=45}while(0);do{if((o|0)==45){x=0;qa(182,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return}}while(0);b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}function Ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4604|0;b=k[o>>2]|0;r=a+180|0;if((k[r>>2]|0)<=0)return;p=a+4608|0;q=a+4612|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Cg(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=Bg(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function Bg(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;Fg(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&255;return r|0}r=e&~(b>>31);r=r&255;return r|0}function Cg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;j=(k[a+180>>2]|0)-b|0;m=k[a+4608>>2]|0;n=k[a+4604>>2]|0;e=i[m+(b+-1)>>0]|0;h=e&255;c=a+144|0;f=0;while(1){d=m+(f+b)|0;g=(l[d>>0]|0)-h|0;if((((g|0)>-1?g:0-g|0)|0)>(k[c>>2]|0))break;i[d>>0]=e;f=f+1|0;if((f|0)==(j|0)){f=j;break}}e=(f|0)==(j|0);g=a+4600|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0,h,l[n+j>>0]|0)|0;i[b>>0]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){a=j;return a|0}ke(a,1,1);a=j;return a|0}function Dg(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;h=c-d|0;i=a+136|0;g=a+144|0;e=k[g>>2]|0;if((((h|0)>-1?h:0-h|0)|0)>(e|0)){f=d-c>>31|1;b=ia(f,b-d|0)|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;c=((b|0)<0?e:0)+b|0;e=c-((c|0)<((e+1|0)/2|0|0)?0:e)|0;Eg(a,a+4576|0,e);e=ia(e,f)|0;f=k[g>>2]|0;g=f<<1|1;e=(ia(e,g)|0)+d|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&255;return i|0}i=b&~(e>>31);i=i&255;return i|0}else{b=b-c|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;f=((b|0)<0?e:0)+b|0;e=f-((f|0)<((e+1|0)/2|0|0)?0:e)|0;Eg(a,a+4588|0,e);f=k[g>>2]|0;g=f<<1|1;e=(ia(g,e)|0)+c|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&255;return i|0}i=b&~(e>>31);i=i&255;return i|0}return 0}function Eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Fg(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Fg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0}while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Hg(a){a=a|0;var b=0,c=0;k[a>>2]=35856;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Ig(a){a=a|0;var b=0,c=0;k[a>>2]=35856;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Jg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Kg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;Vg(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function Lg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Mg(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Mg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+8|0;a:do{if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;i=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(76,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42}while(0);do{if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Ng(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;q=a+4596|0;c=k[q>>2]|0;u=a+172|0;b=k[u>>2]|0;if((b|0)<=0)return;r=a+4600|0;s=a+4604|0;t=a+4592|0;h=c;f=m[c+-2>>1]|0;c=m[c>>1]|0;p=0;while(1){n=k[r>>2]|0;g=j[n+(p+-1<<1)>>1]|0;o=g&65535;e=p+1|0;d=m[h+(e<<1)>>1]|0;l=k[s>>2]|0;h=c-f|0;f=f-o|0;l=((((i[l+(d-c)>>0]|0)*9|0)+(i[l+h>>0]|0)|0)*9|0)+(i[l+f>>0]|0)|0;n=n+(p<<1)|0;if(!l){b=Qg(a,g,n,b-p|0)|0;c=b+p|0;if((c|0)!=(k[u>>2]|0)){o=Rg(a,o,m[(k[q>>2]|0)+(c<<1)>>1]|0)|0;j[(k[r>>2]|0)+(c<<1)>>1]=o;o=k[t>>2]|0;k[t>>2]=(o|0)<1?0:o+-1|0;b=b+1|0}e=b+p|0;d=k[q>>2]|0;c=m[d+(e+-1<<1)>>1]|0;d=m[d+(e<<1)>>1]|0}else{b=c-o>>31;if((b^f|0)<0)b=c;else b=o+((b^h|0)<0?0:h)|0;o=Pg(a,l,m[n>>1]|0,b,0)|0;j[(k[r>>2]|0)+(p<<1)>>1]=o}b=k[u>>2]|0;if((b|0)<=(e|0))break;h=k[q>>2]|0;f=c;c=d;p=e}return}function Og(a){a=a|0;var b=0,c=0,d=0,e=0;d=a+116|0;c=k[d>>2]|0;if((i[c>>0]|0)!=-1){e=a+112|0;b=k[e>>2]|0;if((b|0)<1){qe(a);b=k[e>>2]|0;c=k[d>>2]|0}a=a+108|0;d=k[a>>2]|0;k[e>>2]=b+-1;b=d<<1;k[a>>2]=b;if((i[c>>0]|0)!=-1){b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,6,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}else b=k[a+108>>2]|0;if(!b)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,6,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}function Pg(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&65535;return a|0}a=c&~(e>>31);a=a&65535;return a|0}function Qg(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,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b-c|0;g=a+128|0;d=a+136|0;if((((f|0)>-1?f:0-f|0)|0)>(k[d>>2]|0)){b=ia(Sg(a,a+4568|0)|0,c-b>>31|1)|0;e=k[d>>2]|0;f=e<<1|1;b=(ia(b,f)|0)+c|0;if((b|0)>=(0-e|0)){d=k[g>>2]|0;if((d+e|0)<(b|0))b=b-(ia(k[a+132>>2]|0,f)|0)|0}else{b=(ia(k[a+132>>2]|0,f)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&65535;return a|0}a=d&~(b>>31);a=a&65535;return a|0}else{c=Sg(a,a+4580|0)|0;f=k[d>>2]|0;e=f<<1|1;b=(ia(e,c)|0)+b|0;if((b|0)>=(0-f|0)){d=k[g>>2]|0;if((d+f|0)<(b|0))b=b-(ia(k[a+132>>2]|0,e)|0)|0}else{b=(ia(k[a+132>>2]|0,e)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&65535;return a|0}a=d&~(b>>31);a=a&65535;return a|0}return 0}function Sg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do{if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function Tg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;f=a+112|0;if((k[f>>2]|0)<16)qe(a);g=a+108|0;c=k[g>>2]|0;if((c|0)>=0)if(!(c&1073741824))if(!(c&536870912))if(!(c&268435456))if(!(c&134217728))if(!(c&67108864))if(!(c&33554432))if(!(c&16777216))if(!(c&8388608))if(!(c&4194304))if(!(c&2097152))if(!(c&1048576))if(!(c&524288))if(!(c&262144))if(!(c&131072)){e=c>>>12&16;b=e+-1|0;if(!e){b=(k[f>>2]|0)+-15|0;k[f>>2]=b;d=c<<15;k[g>>2]=d;c=b;b=15;while(1){if((c|0)<1){qe(a);e=k[g>>2]|0;c=k[f>>2]|0}else e=d;c=c+-1|0;k[f>>2]=c;d=e<<1;k[g>>2]=d;if((e|0)<0)break;else b=b+1|0}return b|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;a=b+1|0;k[f>>2]=(k[f>>2]|0)-a;k[g>>2]=c<>2]|0;if((c|0)<(b|0)){qe(a);c=k[d>>2]|0;if((c|0)<(b|0)){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}e=a+108|0;a=k[e>>2]|0;k[d>>2]=c-b;k[e>>2]=a<>>(32-b|0)|0}function Vg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do{if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0}while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Wg(a){a=a|0;var b=0,c=0;k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Xg(a){a=a|0;var b=0,c=0;k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Yg(a){a=a|0;var b=0,c=0;k[a>>2]=35828;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Zg(a){a=a|0;var b=0,c=0;k[a>>2]=35828;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function _g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function $g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;hh(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function ah(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);bh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do{if(b){if(!(b>>>0>715827882?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(x=0,c=ta(67,b*6|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;d=c+(b*6|0)|0;k[C+8>>2]=d;while(1){j[c>>1]=0;j[c+2>>1]=0;j[c+4>>1]=0;b=b+-1|0;if(!b)break;else c=c+6|0}k[D>>2]=d;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)g=20;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=18;if((g|0)==18?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=20;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==20){f=a+8|0;a:do{if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;i=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;b:while(1){d=k[C>>2]|0;c=d+6|0;k[g>>2]=c;d=d+(i*6|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*6|0)|0;c=c+((b+-1|0)*6|0)|0;j[e>>1]=j[c>>1]|0;j[e+2>>1]=j[c+2>>1]|0;j[e+4>>1]=j[c+4>>1]|0;e=(k[l>>2]|0)+-6|0;c=k[g>>2]|0;j[e>>1]=j[c>>1]|0;j[e+2>>1]=j[c+2>>1]|0;j[e+4>>1]=j[c+4>>1]|0;x=0;ra(77,a|0,0);e=x;x=0;if(e&1){g=31;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*6|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*6|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*6|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=32;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=44;break a}}if((g|0)==31){d=Wa()|0;break}else if((g|0)==32){d=Wa()|0;break}}else g=44}while(0);do{if((g|0)==44){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}function ch(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=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;N=r;r=r+32|0;D=N+24|0;M=N+18|0;L=N+12|0;E=N+6|0;F=N;G=a+172|0;b=k[G>>2]|0;if((b|0)<=0){r=N;return}H=a+4600|0;I=a+4596|0;J=a+4604|0;K=a+4592|0;C=0;while(1){d=C+-1|0;e=k[H>>2]|0;O=k[I>>2]|0;c=C+1|0;f=m[O+(C*6|0)>>1]|0;B=k[J>>2]|0;g=m[O+(d*6|0)>>1]|0;h=f-g|0;l=m[e+(d*6|0)>>1]|0;n=g-l|0;o=((((i[B+((m[O+(c*6|0)>>1]|0)-f)>>0]|0)*9|0)+(i[B+h>>0]|0)|0)*9|0)+(i[B+n>>0]|0)|0;p=m[O+(C*6|0)+2>>1]|0;q=m[O+(d*6|0)+2>>1]|0;s=p-q|0;t=m[e+(d*6|0)+2>>1]|0;u=q-t|0;v=((((i[B+((m[O+(c*6|0)+2>>1]|0)-p)>>0]|0)*9|0)+(i[B+s>>0]|0)|0)*9|0)+(i[B+u>>0]|0)|0;w=m[O+(C*6|0)+4>>1]|0;x=m[O+(d*6|0)+4>>1]|0;y=w-x|0;z=m[e+(d*6|0)+4>>1]|0;A=x-z|0;B=((((i[B+((m[O+(c*6|0)+4>>1]|0)-w)>>0]|0)*9|0)+(i[B+y>>0]|0)|0)*9|0)+(i[B+A>>0]|0)|0;if(!(v|o|B)){c=e+(d*6|0)|0;j[L>>1]=j[c>>1]|0;j[L+2>>1]=j[c+2>>1]|0;j[L+4>>1]=j[c+4>>1]|0;j[D>>1]=j[c>>1]|0;j[D+2>>1]=j[c+2>>1]|0;j[D+4>>1]=j[c+4>>1]|0;b=dh(a,D,e+(C*6|0)|0,b-C|0)|0;c=b+C|0;if((c|0)!=(k[G>>2]|0)){O=(k[I>>2]|0)+(c*6|0)|0;j[F>>1]=j[O>>1]|0;j[F+2>>1]=j[O+2>>1]|0;j[F+4>>1]=j[O+4>>1]|0;O=(k[H>>2]|0)+(c*6|0)|0;j[M>>1]=j[L>>1]|0;j[M+2>>1]=j[L+2>>1]|0;j[M+4>>1]=j[L+4>>1]|0;j[D>>1]=j[F>>1]|0;j[D+2>>1]=j[F+2>>1]|0;j[D+4>>1]=j[F+4>>1]|0;eh(E,a,M,D);j[O>>1]=j[E>>1]|0;j[O+2>>1]=j[E+2>>1]|0;j[O+4>>1]=j[E+4>>1]|0;O=k[K>>2]|0;k[K>>2]=(O|0)<1?0:O+-1|0;b=b+1|0}c=b+C|0}else{d=m[e+(C*6|0)>>1]|0;b=f-l>>31;if((b^n|0)>=0)if((b^h|0)<0)b=l;else b=l-g+f|0;else b=f;f=fh(a,o,d,b,0)|0;d=m[(k[H>>2]|0)+(C*6|0)+2>>1]|0;b=p-t>>31;if((b^u|0)>=0)if((b^s|0)<0)b=t;else b=t-q+p|0;else b=p;d=fh(a,v,d,b,0)|0;e=m[(k[H>>2]|0)+(C*6|0)+4>>1]|0;b=w-z>>31;if((b^A|0)>=0)if((b^y|0)<0)b=z;else b=z-x+w|0;else b=w;B=fh(a,B,e,b,0)|0;O=k[H>>2]|0;j[O+(C*6|0)>>1]=f;j[O+(C*6|0)+2>>1]=d;j[O+(C*6|0)+4>>1]=B}b=k[G>>2]|0;if((c|0)>=(b|0))break;else C=c}r=N;return}function dh(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,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{p=c+(f*6|0)|0;j[p>>1]=j[b>>1]|0;j[p+2>>1]=j[b+2>>1]|0;j[p+4>>1]=j[b+4>>1]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function eh(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,l=0,n=0,o=0;i=b+4568|0;o=gh(b,i)|0;g=gh(b,i)|0;i=gh(b,i)|0;f=b+128|0;e=m[d>>1]|0;l=k[b+136>>2]|0;n=l<<1|1;e=(ia(ia(n,o)|0,e-(m[c>>1]|0)>>31|1)|0)+e|0;o=0-l|0;if((e|0)>=(o|0)){f=k[f>>2]|0;if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else{e=(ia(k[b+132>>2]|0,n)|0)+e|0;f=k[f>>2]|0}if((e&f|0)!=(e|0))e=f&~(e>>31);h=e&65535;e=m[d+2>>1]|0;e=(ia(ia(n,g)|0,e-(m[c+2>>1]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)!=(e|0))e=f&~(e>>31);g=e&65535;e=m[d+4>>1]|0;e=(ia(ia(n,i)|0,e-(m[c+4>>1]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)==(e|0)){b=e;b=b&65535;j[a>>1]=h;o=a+2|0;j[o>>1]=g;a=a+4|0;j[a>>1]=b;return}b=f&~(e>>31);b=b&65535;j[a>>1]=h;o=a+2|0;j[o>>1]=g;a=a+4|0;j[a>>1]=b;return}function fh(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&65535;return a|0}a=c&~(e>>31);a=a&65535;return a|0}function gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do{if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do{if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0}while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function ih(a){a=a|0;var b=0,c=0;k[a>>2]=35800;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function jh(a){a=a|0;var b=0,c=0;k[a>>2]=35800;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;th(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function mh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);nh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function nh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do{if(b){if(!(b>>>0>1431655765?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[D>>2]|0)+3|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){f=a+8|0;b:do{if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;j=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;c:while(1){d=k[C>>2]|0;c=d+3|0;k[g>>2]=c;d=d+(j*3|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*3|0)|0;c=c+((b+-1|0)*3|0)|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;c=k[g>>2]|0;e=(k[l>>2]|0)+-3|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;x=0;ra(78,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*3|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*3|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*3|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){d=Wa()|0;break}else if((f|0)==31){d=Wa()|0;break}}else f=43}while(0);do{if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function oh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=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;M=r;r=r+16|0;C=M+12|0;L=M+9|0;K=M+6|0;D=M+3|0;E=M;F=a+172|0;b=k[F>>2]|0;if((b|0)<=0){r=M;return}G=a+4600|0;H=a+4596|0;I=a+4604|0;J=a+4592|0;B=0;while(1){y=B+-1|0;d=k[G>>2]|0;e=d+(y*3|0)|0;N=k[H>>2]|0;c=B+1|0;f=l[N+(B*3|0)>>0]|0;A=k[I>>2]|0;g=l[N+(y*3|0)>>0]|0;h=f-g|0;j=l[e>>0]|0;m=g-j|0;n=((((i[A+((l[N+(c*3|0)>>0]|0)-f)>>0]|0)*9|0)+(i[A+h>>0]|0)|0)*9|0)+(i[A+m>>0]|0)|0;o=l[N+(B*3|0)+1>>0]|0;p=l[N+(y*3|0)+1>>0]|0;q=o-p|0;s=l[d+(y*3|0)+1>>0]|0;t=p-s|0;u=((((i[A+((l[N+(c*3|0)+1>>0]|0)-o)>>0]|0)*9|0)+(i[A+q>>0]|0)|0)*9|0)+(i[A+t>>0]|0)|0;v=l[N+(B*3|0)+2>>0]|0;w=l[N+(y*3|0)+2>>0]|0;x=v-w|0;y=l[d+(y*3|0)+2>>0]|0;z=w-y|0;A=((((i[A+((l[N+(c*3|0)+2>>0]|0)-v)>>0]|0)*9|0)+(i[A+x>>0]|0)|0)*9|0)+(i[A+z>>0]|0)|0;if(!(u|n|A)){i[K>>0]=i[e>>0]|0;i[K+1>>0]=i[e+1>>0]|0;i[K+2>>0]=i[e+2>>0]|0;i[C>>0]=i[e>>0]|0;i[C+1>>0]=i[e+1>>0]|0;i[C+2>>0]=i[e+2>>0]|0;b=ph(a,C,d+(B*3|0)|0,b-B|0)|0;c=b+B|0;if((c|0)!=(k[F>>2]|0)){N=(k[H>>2]|0)+(c*3|0)|0;i[E>>0]=i[N>>0]|0;i[E+1>>0]=i[N+1>>0]|0;i[E+2>>0]=i[N+2>>0]|0;N=k[G>>2]|0;i[L>>0]=i[K>>0]|0;i[L+1>>0]=i[K+1>>0]|0;i[L+2>>0]=i[K+2>>0]|0;i[C>>0]=i[E>>0]|0;i[C+1>>0]=i[E+1>>0]|0;i[C+2>>0]=i[E+2>>0]|0;qh(D,a,L,C);N=N+(c*3|0)|0;i[N>>0]=i[D>>0]|0;i[N+1>>0]=i[D+1>>0]|0;i[N+2>>0]=i[D+2>>0]|0;N=k[J>>2]|0;k[J>>2]=(N|0)<1?0:N+-1|0;b=b+1|0}c=b+B|0}else{d=l[d+(B*3|0)>>0]|0;b=f-j>>31;if((b^m|0)>=0)if((b^h|0)<0)b=j;else b=j-g+f|0;else b=f;f=rh(a,n,d,b,0)|0;d=l[(k[G>>2]|0)+(B*3|0)+1>>0]|0;b=o-s>>31;if((b^t|0)>=0)if((b^q|0)<0)b=s;else b=s-p+o|0;else b=o;d=rh(a,u,d,b,0)|0;e=l[(k[G>>2]|0)+(B*3|0)+2>>0]|0;b=v-y>>31;if((b^z|0)>=0)if((b^x|0)<0)b=y;else b=y-w+v|0;else b=v;A=rh(a,A,e,b,0)|0;N=(k[G>>2]|0)+(B*3|0)|0;i[N>>0]=f;i[N+1>>0]=d;i[N+2>>0]=A}b=k[F>>2]|0;if((c|0)>=(b|0))break;else B=c}r=M;return}function ph(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,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{o=c+(f*3|0)|0;i[o>>0]=i[b>>0]|0;i[o+1>>0]=i[b+1>>0]|0;i[o+2>>0]=i[b+2>>0]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function qh(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,j=0,m=0,n=0,o=0;j=b+4568|0;o=sh(b,j)|0;g=sh(b,j)|0;j=sh(b,j)|0;f=b+128|0;e=l[d>>0]|0;m=k[b+136>>2]|0;n=m<<1|1;e=(ia(ia(n,o)|0,e-(l[c>>0]|0)>>31|1)|0)+e|0;o=0-m|0;if((e|0)>=(o|0)){f=k[f>>2]|0;if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else{e=(ia(k[b+132>>2]|0,n)|0)+e|0;f=k[f>>2]|0}if((e&f|0)!=(e|0))e=f&~(e>>31);h=e&255;e=l[d+1>>0]|0;e=(ia(ia(n,g)|0,e-(l[c+1>>0]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)!=(e|0))e=f&~(e>>31);g=e&255;e=l[d+2>>0]|0;e=(ia(ia(n,j)|0,e-(l[c+2>>0]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)==(e|0)){b=e;b=b&255;i[a>>0]=h;o=a+1|0;i[o>>0]=g;a=a+2|0;i[a>>0]=b;return}b=f&~(e>>31);b=b&255;i[a>>0]=h;o=a+1|0;i[o>>0]=g;a=a+2|0;i[a>>0]=b;return}function rh(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&255;return a|0}a=c&~(e>>31);a=a&255;return a|0}function sh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do{if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function th(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do{if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0}while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function uh(a){a=a|0;var b=0,c=0;k[a>>2]=35772;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function vh(a){a=a|0;var b=0,c=0;k[a>>2]=35772;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,65535,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;Fh(a);d=0;do{k[a+164+(d*12|0)>>2]=1024;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=1024;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=1024;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function yh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);zh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+8|0;a:do{if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;i=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(79,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42}while(0);do{if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4572|0;b=k[p>>2]|0;s=a+148|0;if((k[s>>2]|0)<=0)return;q=a+4576|0;r=a+4580|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Ch(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Bh(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Bh(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&65535|0)!=(c|0))c=c>>31&65535^65535;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<47){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=j[e+(b+-1<<1)>>1]|0;g=a+148|0;e=Dh(a,c,e+(b<<1)|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&65535;b=m[(k[a+4572>>2]|0)+(d<<1)>>1]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(Eh(a,a+4556|0)|0)+c|0;else c=(ia(Eh(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;j[(k[f>>2]|0)+(d<<1)>>1]=c;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function Dh(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,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Eh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do{if((c|0)<(46-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,16)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Fh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,65535,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8909]|0;k[a+4580>>2]=j+(((k[8910]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=131072){if(f>>>0>131072?(g=b+131072|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,131072-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+65536;g=a+160|0;e=a+156|0;f=-65536;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==65536)break}r=l;return}function Gh(a){a=a|0;var b=0,c=0;k[a>>2]=35744;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Hh(a){a=a|0;var b=0,c=0;k[a>>2]=35744;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,4095,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;Rh(a);d=0;do{k[a+164+(d*12|0)>>2]=64;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=64;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=64;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function Kh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Lh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+8|0;a:do{if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;i=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(80,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42}while(0);do{if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4572|0;b=k[p>>2]|0;s=a+148|0;if((k[s>>2]|0)<=0)return;q=a+4576|0;r=a+4580|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Oh(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Nh(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Nh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&4095|0)!=(c|0))c=c>>31&4095^4095;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<35){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=j[e+(b+-1<<1)>>1]|0;g=a+148|0;e=Ph(a,c,e+(b<<1)|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&65535;b=m[(k[a+4572>>2]|0)+(d<<1)>>1]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(Qh(a,a+4556|0)|0)+c|0;else c=(ia(Qh(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;j[(k[f>>2]|0)+(d<<1)>>1]=c&4095;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function Ph(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,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Qh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do{if((c|0)<(34-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,12)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Rh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,4095,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8906]|0;k[a+4580>>2]=j+(((k[8907]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=8192){if(f>>>0>8192?(g=b+8192|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,8192-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+4096;g=a+160|0;e=a+156|0;f=-4096;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==4096)break}r=l;return}function Sh(a){a=a|0;var b=0,c=0;k[a>>2]=35716;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Th(a){a=a|0;var b=0,c=0;k[a>>2]=35716;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;bi(a);d=0;do{k[a+164+(d*12|0)>>2]=4;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=4;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=4;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function Wh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Xh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Xh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[D>>2]|0)+1|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}c=Wa()|0;b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){f=a+8|0;b:do{if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;j=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;c:while(1){d=k[C>>2]|0;c=d+1|0;k[g>>2]=c;d=d+j|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;i[c+e>>0]=i[c+(e+-1)>>0]|0;i[(k[l>>2]|0)+-1>>0]=i[k[g>>2]>>0]|0;x=0;ra(81,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+w|0;k[g>>2]=c;b=(k[l>>2]|0)+w|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){c=Wa()|0;break}else if((f|0)==31){c=Wa()|0;break}}else f=43}while(0);do{if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);r=A;return}}while(0);b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}function Yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4572|0;b=k[o>>2]|0;r=a+148|0;if((k[r>>2]|0)<=0)return;p=a+4576|0;q=a+4580|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(_h(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=Zh(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function Zh(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&255|0)!=(c|0))c=c>>31&255^255;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<23){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=i[e+(b+-1)>>0]|0;g=a+148|0;e=$h(a,c,e+b|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&255;b=l[(k[a+4572>>2]|0)+d>>0]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(ai(a,a+4556|0)|0)+c|0;else c=(ia(ai(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;i[(k[f>>2]|0)+d>>0]=c;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function $h(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,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;sw(c|0,b|0,e|0)|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do{if((c|0)<(22-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,8)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8900]|0;k[a+4580>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+256;g=a+160|0;e=a+156|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ci(a){a=a|0;var b=0,c=0;k[a>>2]=35688;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function di(a){a=a|0;var b=0,c=0;k[a>>2]=35688;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function ei(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function fi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;ni(a);d=0;do{k[a+164+(d*12|0)>>2]=4;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=4;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=4;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function gi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);hi(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function hi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do{if(b){if(!(b>>>0>1431655765?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[D>>2]|0)+3|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){f=a+8|0;b:do{if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;j=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;c:while(1){d=k[C>>2]|0;c=d+3|0;k[g>>2]=c;d=d+(j*3|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*3|0)|0;c=c+((b+-1|0)*3|0)|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;c=k[g>>2]|0;e=(k[l>>2]|0)+-3|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;x=0;ra(82,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*3|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*3|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*3|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){d=Wa()|0;break}else if((f|0)==31){d=Wa()|0;break}}else f=43}while(0);do{if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function ii(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=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;A=a+148|0;if((k[A>>2]|0)<=0)return;B=a+4576|0;C=a+4572|0;D=a+4580|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(ji(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=ki(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=ki(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=ki(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function ji(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;j=r;r=r+16|0;m=j+3|0;n=j;f=a+4576|0;c=k[f>>2]|0;d=c+((b+-1|0)*3|0)|0;g=i[d>>0]|0;h=i[d+1>>0]|0;d=i[d+2>>0]|0;i[n>>0]=g;i[n+1>>0]=h;i[n+2>>0]=d;l=a+148|0;e=(k[l>>2]|0)-b|0;i[m>>0]=i[n>>0]|0;i[m+1>>0]=i[n+1>>0]|0;i[m+2>>0]=i[n+2>>0]|0;e=li(a,m,c+(b*3|0)|0,e)|0;c=e+b|0;if((c|0)==(k[l>>2]|0)){n=e;r=j;return n|0}m=(k[a+4572>>2]|0)+(c*3|0)|0;b=i[m>>0]|0;l=i[m+1>>0]|0;m=i[m+2>>0]|0;n=k[f>>2]|0;f=a+4544|0;p=mi(a,f)|0;o=mi(a,f)|0;b=b&255;b=(ia(b-(g&255)>>31|1,p)|0)+b&255;l=l&255;l=(ia(l-(h&255)>>31|1,o)|0)+l&255;m=m&255;m=(ia(m-(d&255)>>31|1,mi(a,f)|0)|0)+m&255;n=n+(c*3|0)|0;i[n>>0]=b;i[n+1>>0]=l;i[n+2>>0]=m;n=a+4568|0;m=k[n>>2]|0;k[n>>2]=(m|0)<1?0:m+-1|0;n=e+1|0;r=j;return n|0}function ki(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&255|0)!=(c|0))c=c>>31&255^255;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<23){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}function li(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,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{o=c+(f*3|0)|0;i[o>>0]=i[b>>0]|0;i[o+1>>0]=i[b+1>>0]|0;i[o+2>>0]=i[b+2>>0]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do{if((c|0)<(22-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,8)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Vp(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+128|0;f=m;o=m+116|0;p=m+104|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,0,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=cv(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Wp(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,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+240|0;g=m+8|0;a=m;o=m+204|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,0,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,23,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=cv(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Xp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+352|0;t=z+312|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+316|0;s=z+80|0;h=z+84|0;y=z+76|0;w=z+72|0;u=z+68|0;v=z+64|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58898,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do{if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,k[n>>2]=k[c+8>>2],p[n+8>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do{if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do{if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<3)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}}while(0);do{if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(4,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(40,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Yp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;y=r;r=r+16|0;z=y;w=Ss(g,44212)|0;u=Ss(g,44368)|0;Mb[k[(k[u>>2]|0)+20>>2]&127](z,u);k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,g|0)|0;v=x;x=0;if(v&1)t=8;else{l=k[f>>2]|0;k[f>>2]=l+4;k[l>>2]=g;l=a+1|0;t=10}break}default:{l=a;t=10}}a:do{if((t|0)==10){v=c;b:do{if((v-l|0)>1?(i[l>>0]|0)==48:0){h=l+1|0;switch(i[h>>0]|0){case 88:case 120:break;default:{t=11;break b}}x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,48)|0;s=x;x=0;if(s&1){t=8;break a}s=k[f>>2]|0;k[f>>2]=s+4;k[s>>2]=g;l=l+2|0;x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,i[h>>0]|0)|0;s=x;x=0;if(s&1){t=8;break a}s=k[f>>2]|0;k[f>>2]=s+4;k[s>>2]=g;if(l>>>0>>0){g=l;while(1){h=i[g>>0]|0;x=0;j=Da(3)|0;s=x;x=0;if(s&1)break;x=0;h=Aa(39,h<<24>>24|0,j|0)|0;s=x;x=0;if(s&1)break;if(!h){s=l;break b}g=g+1|0;if(g>>>0>=c>>>0){s=l;break b}}g=Wa()|0;break a}else{s=l;g=l}}else t=11}while(0);c:do{if((t|0)==11)if(l>>>0>>0){g=l;while(1){h=i[g>>0]|0;x=0;j=Da(3)|0;s=x;x=0;if(s&1)break;x=0;h=Aa(40,h<<24>>24|0,j|0)|0;s=x;x=0;if(s&1)break;if(!h){s=l;break c}g=g+1|0;if(g>>>0>=c>>>0){s=l;break c}}g=Wa()|0;break a}else{s=l;g=l}}while(0);p=i[z>>0]|0;q=z+4|0;if(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0){if((s|0)!=(g|0)?(m=g+-1|0,s>>>0>>0):0){j=s;h=m;do{p=i[j>>0]|0;i[j>>0]=i[h>>0]|0;i[h>>0]=p;j=j+1|0;h=h+-1|0}while(j>>>0>>0)}x=0;m=ta(k[(k[u>>2]|0)+16>>2]|0,u|0)|0;p=x;x=0;if(p&1){t=8;break}n=z+8|0;o=z+1|0;d:do{if(s>>>0>>0){h=0;j=0;p=s;while(1){l=i[((i[z>>0]&1)==0?o:k[n>>2]|0)+j>>0]|0;if(l<<24>>24>0&(h|0)==(l<<24>>24|0)){h=k[f>>2]|0;k[f>>2]=h+4;k[h>>2]=m;h=i[z>>0]|0;l=0;j=(j>>>0<(((h&1)==0?(h&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+j|0}else l=h;x=0;h=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,i[p>>0]|0)|0;A=x;x=0;if(A&1)break;A=k[f>>2]|0;k[f>>2]=A+4;k[A>>2]=h;p=p+1|0;if(p>>>0>=g>>>0)break d;else h=l+1|0}g=Wa()|0;break a}}while(0);h=d+(s-a<<2)|0;l=k[f>>2]|0;if((h|0)!=(l|0)){j=l+-4|0;if(h>>>0>>0){do{A=k[h>>2]|0;k[h>>2]=k[j>>2];k[j>>2]=A;h=h+4|0;j=j+-4|0}while(h>>>0>>0);m=w;h=l}else{m=w;h=l}}else m=w}else{x=0;Ea(k[(k[w>>2]|0)+48>>2]|0,w|0,s|0,g|0,k[f>>2]|0)|0;A=x;x=0;if(A&1){t=8;break}h=(k[f>>2]|0)+(g-s<<2)|0;k[f>>2]=h;m=w}e:do{if(g>>>0>>0){while(1){h=i[g>>0]|0;if(h<<24>>24==46){j=g;break}x=0;j=Aa(k[(k[m>>2]|0)+44>>2]|0,w|0,h|0)|0;A=x;x=0;if(A&1){t=4;break}A=k[f>>2]|0;h=A+4|0;k[f>>2]=h;k[A>>2]=j;g=g+1|0;if(g>>>0>=c>>>0)break e}if((t|0)==4){g=Wa()|0;break a}x=0;g=ta(k[(k[u>>2]|0)+12>>2]|0,u|0)|0;A=x;x=0;if(A&1){t=8;break a}A=k[f>>2]|0;h=A+4|0;k[f>>2]=h;k[A>>2]=g;g=j+1|0}}while(0);x=0;Ea(k[(k[w>>2]|0)+48>>2]|0,w|0,g|0,c|0,h|0)|0;A=x;x=0;if(A&1)t=8;else{A=(k[f>>2]|0)+(v-g<<2)|0;k[f>>2]=A;k[e>>2]=(b|0)==(c|0)?A:d+(b-a<<2)|0;Sm(z);r=y;return}}}while(0);if((t|0)==8)g=Wa()|0;Sm(z);fb(g|0)}function Zp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+352|0;t=z+304|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+308|0;s=z+72|0;h=z+76|0;y=z+68|0;w=z+64|0;u=z+60|0;v=z+56|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58899,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do{if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,p[n>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do{if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do{if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<3)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}}while(0);do{if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(4,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(40,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function _p(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,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+192|0;j=o;a=o+180|0;m=o+160|0;n=o+12|0;h=o+8|0;l=o+4|0;i[a>>0]=i[58901]|0;i[a+1>>0]=i[58902]|0;i[a+2>>0]=i[58903]|0;i[a+3>>0]=i[58904]|0;i[a+4>>0]=i[58905]|0;i[a+5>>0]=i[58906]|0;f=fp()|0;k[j>>2]=e;a=av(m,20,f,a,j)|0;e=m+a|0;f=Fp(m,e,c)|0;g=tn(c)|0;k[h>>2]=g;x=0;h=Aa(37,h|0,44212)|0;p=x;x=0;if(p&1){p=Wa()|0;zm(g)|0;fb(p|0)}else{zm(g)|0;Zb[k[(k[h>>2]|0)+48>>2]&31](h,m,e,n)|0;p=n+(a<<2)|0;k[l>>2]=k[b>>2];k[j>>2]=k[l>>2];p=cv(j,n,(f|0)==(e|0)?p:n+(f-m<<2)|0,p,c,d)|0;r=o;return p|0}return 0}function $p(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 m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0;C=r;r=r+32|0;v=C+16|0;u=C+12|0;z=C+8|0;w=C+4|0;y=C;m=tn(d)|0;k[z>>2]=m;x=0;z=Aa(37,z|0,44220)|0;t=x;x=0;if(t&1){C=Wa()|0;zm(m)|0;fb(C|0)}zm(m)|0;k[e>>2]=0;t=z+8|0;m=k[b>>2]|0;a:do{if((g|0)!=(h|0)){b:while(1){n=m;if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0;n=0}}else m=0;q=(m|0)==0;p=k[c>>2]|0;o=p;do{if(p){if((k[p+12>>2]|0)==(k[p+16>>2]|0)?(Ob[k[(k[p>>2]|0)+36>>2]&127](p)|0)==-1:0){k[c>>2]=0;o=0;B=12;break}if(!q){B=13;break b}}else B=12}while(0);if((B|0)==12){B=0;if(q){B=13;break}else p=0}c:do{if((Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[g>>0]|0,0)|0)<<24>>24==37){p=g+1|0;if((p|0)==(h|0)){B=17;break b}s=Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[p>>0]|0,0)|0;switch(s<<24>>24){case 48:case 69:{q=g+2|0;if((q|0)==(h|0)){B=20;break b}g=p;p=Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[q>>0]|0,0)|0;m=s;break}default:{p=s;m=0}}s=k[(k[a>>2]|0)+36>>2]|0;k[w>>2]=n;k[y>>2]=o;k[u>>2]=k[w>>2];k[v>>2]=k[y>>2];s=ac[s&15](a,u,v,d,e,f,p,m)|0;k[b>>2]=s;g=g+2|0}else{n=i[g>>0]|0;if(n<<24>>24>-1?(A=k[t>>2]|0,(j[A+(n<<24>>24<<1)>>1]&8192)!=0):0){do{g=g+1|0;if((g|0)==(h|0)){g=h;break}n=i[g>>0]|0;if(n<<24>>24<=-1)break}while((j[A+(n<<24>>24<<1)>>1]&8192)!=0);n=p;while(1){if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0}}else m=0;o=(m|0)==0;do{if(p){if((k[p+12>>2]|0)!=(k[p+16>>2]|0))if(o){s=n;break}else break c;if((Ob[k[(k[p>>2]|0)+36>>2]&127](p)|0)!=-1)if(o^(n|0)==0){s=n;p=n;break}else break c;else{k[c>>2]=0;n=0;B=39;break}}else B=39}while(0);if((B|0)==39){B=0;if(o)break c;else{s=n;p=0}}o=m+12|0;n=k[o>>2]|0;q=m+16|0;if((n|0)==(k[q>>2]|0))n=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else n=l[n>>0]|0;if((n&255)<<24>>24<=-1)break c;if(!(j[(k[t>>2]|0)+(n<<24>>24<<1)>>1]&8192))break c;n=k[o>>2]|0;if((n|0)==(k[q>>2]|0)){Ob[k[(k[m>>2]|0)+40>>2]&127](m)|0;n=s;continue}else{k[o>>2]=n+1;n=s;continue}}}o=m+12|0;n=k[o>>2]|0;p=m+16|0;if((n|0)==(k[p>>2]|0))n=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else n=l[n>>0]|0;s=Vb[k[(k[z>>2]|0)+12>>2]&63](z,n&255)|0;if(s<<24>>24!=(Vb[k[(k[z>>2]|0)+12>>2]&63](z,i[g>>0]|0)|0)<<24>>24){B=57;break b}n=k[o>>2]|0;if((n|0)==(k[p>>2]|0))Ob[k[(k[m>>2]|0)+40>>2]&127](m)|0;else k[o>>2]=n+1;g=g+1|0}}while(0);m=k[b>>2]|0;if(!((g|0)!=(h|0)&(k[e>>2]|0)==0))break a}if((B|0)==13){k[e>>2]=4;break}else if((B|0)==17){k[e>>2]=4;break}else if((B|0)==20){k[e>>2]=4;break}else if((B|0)==57){k[e>>2]=4;m=k[b>>2]|0;break}}}while(0);if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0}}else m=0;g=(m|0)==0;n=k[c>>2]|0;do{if(n){if((k[n+12>>2]|0)==(k[n+16>>2]|0)?(Ob[k[(k[n>>2]|0)+36>>2]&127](n)|0)==-1:0){k[c>>2]=0;B=67;break}if(!g)B=68}else B=67}while(0);if((B|0)==67?g:0)B=68;if((B|0)==68)k[e>>2]=k[e>>2]|2;r=C;return m|0}function aq(a){a=a|0;return}function bq(a){a=a|0;mj(a);return}function cq(a){a=a|0;return 2}function dq(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=$p(a,i,h,d,e,f,58907,58915)|0;r=g;return a|0}function eq(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,j=0,l=0,m=0,n=0,o=0;g=r;r=r+16|0;h=g+12|0;j=g+8|0;m=g+4|0;l=g;n=a+8|0;n=Ob[k[(k[n>>2]|0)+20>>2]&127](n)|0;k[m>>2]=k[b>>2];k[l>>2]=k[c>>2];c=i[n>>0]|0;o=(c&1)==0;b=o?n+1|0:k[n+8>>2]|0;c=b+(o?(c&255)>>>1:k[n+4>>2]|0)|0;k[j>>2]=k[m>>2];k[h>>2]=k[l>>2];a=$p(a,j,h,d,e,f,b,c)|0;r=g;return a|0}function fq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];gq(a,f+24|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function gq(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;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[k[a>>2]>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Hu(c,h,a,a+168|0,f,e,0)|0)-a|0;if((c|0)<168)k[b>>2]=((c|0)/12|0|0)%7|0;r=g;return}function hq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];iq(a,f+16|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function iq(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;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[(k[a>>2]|0)+4>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Hu(c,h,a,a+288|0,f,e,0)|0)-a|0;if((c|0)<288)k[b>>2]=((c|0)/12|0|0)%12|0;r=g;return}function jq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];kq(a,f+20|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function kq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,4)|0;if(!(k[e>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;k[b>>2]=a+-1900}r=g;return}function lq(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 j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=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;U=r;r=r+144|0;j=U+132|0;h=U+116|0;N=U+128|0;w=U+124|0;I=U+120|0;O=U+112|0;P=U+108|0;Q=U+104|0;R=U+100|0;S=U+96|0;T=U+92|0;l=U+88|0;m=U+84|0;n=U+80|0;o=U+76|0;p=U+72|0;q=U+68|0;s=U+64|0;t=U+60|0;u=U+56|0;v=U+52|0;y=U+48|0;z=U+44|0;A=U+40|0;B=U+36|0;C=U+32|0;D=U+28|0;E=U+24|0;F=U+20|0;G=U+16|0;H=U+12|0;J=U+8|0;K=U+4|0;L=U;k[e>>2]=0;M=tn(d)|0;k[N>>2]=M;x=0;N=Aa(37,N|0,44220)|0;W=x;x=0;if(W&1){W=Wa()|0;zm(M)|0;fb(W|0)}zm(M)|0;do{switch(g<<24>>24|0){case 65:case 97:{k[w>>2]=k[c>>2];k[j>>2]=k[w>>2];gq(a,f+24|0,b,j,e,N);V=28;break}case 104:case 66:case 98:{k[I>>2]=k[c>>2];k[j>>2]=k[I>>2];iq(a,f+16|0,b,j,e,N);V=28;break}case 99:{V=a+8|0;V=Ob[k[(k[V>>2]|0)+12>>2]&127](V)|0;k[O>>2]=k[b>>2];k[P>>2]=k[c>>2];g=i[V>>0]|0;c=(g&1)==0;W=c?V+1|0:k[V+8>>2]|0;V=W+(c?(g&255)>>>1:k[V+4>>2]|0)|0;k[h>>2]=k[O>>2];k[j>>2]=k[P>>2];V=$p(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 101:case 100:{k[Q>>2]=k[c>>2];k[j>>2]=k[Q>>2];mq(a,f+12|0,b,j,e,N);V=28;break}case 68:{k[R>>2]=k[b>>2];k[S>>2]=k[c>>2];k[h>>2]=k[R>>2];k[j>>2]=k[S>>2];V=$p(a,h,j,d,e,f,58915,58923)|0;k[b>>2]=V;V=28;break}case 70:{k[T>>2]=k[b>>2];k[l>>2]=k[c>>2];k[h>>2]=k[T>>2];k[j>>2]=k[l>>2];V=$p(a,h,j,d,e,f,58923,58931)|0;k[b>>2]=V;V=28;break}case 72:{k[m>>2]=k[c>>2];k[j>>2]=k[m>>2];nq(a,f+8|0,b,j,e,N);V=28;break}case 73:{k[n>>2]=k[c>>2];k[j>>2]=k[n>>2];oq(a,f+8|0,b,j,e,N);V=28;break}case 106:{k[o>>2]=k[c>>2];k[j>>2]=k[o>>2];pq(a,f+28|0,b,j,e,N);V=28;break}case 109:{k[p>>2]=k[c>>2];k[j>>2]=k[p>>2];qq(a,f+16|0,b,j,e,N);V=28;break}case 77:{k[q>>2]=k[c>>2];k[j>>2]=k[q>>2];rq(a,f+4|0,b,j,e,N);V=28;break}case 116:case 110:{k[s>>2]=k[c>>2];k[j>>2]=k[s>>2];sq(a,b,j,e,N);V=28;break}case 112:{k[t>>2]=k[c>>2];k[j>>2]=k[t>>2];tq(a,f+8|0,b,j,e,N);V=28;break}case 114:{k[u>>2]=k[b>>2];k[v>>2]=k[c>>2];k[h>>2]=k[u>>2];k[j>>2]=k[v>>2];V=$p(a,h,j,d,e,f,58931,58942)|0;k[b>>2]=V;V=28;break}case 82:{k[y>>2]=k[b>>2];k[z>>2]=k[c>>2];k[h>>2]=k[y>>2];k[j>>2]=k[z>>2];V=$p(a,h,j,d,e,f,58942,58947)|0;k[b>>2]=V;V=28;break}case 83:{k[A>>2]=k[c>>2];k[j>>2]=k[A>>2];uq(a,f,b,j,e,N);V=28;break}case 84:{k[B>>2]=k[b>>2];k[C>>2]=k[c>>2];k[h>>2]=k[B>>2];k[j>>2]=k[C>>2];V=$p(a,h,j,d,e,f,58947,58955)|0;k[b>>2]=V;V=28;break}case 119:{k[D>>2]=k[c>>2];k[j>>2]=k[D>>2];vq(a,f+24|0,b,j,e,N);V=28;break}case 120:{W=k[(k[a>>2]|0)+20>>2]|0;k[E>>2]=k[b>>2];k[F>>2]=k[c>>2];k[h>>2]=k[E>>2];k[j>>2]=k[F>>2];h=Nb[W&63](a,h,j,d,e,f)|0;break}case 88:{V=a+8|0;V=Ob[k[(k[V>>2]|0)+24>>2]&127](V)|0;k[G>>2]=k[b>>2];k[H>>2]=k[c>>2];g=i[V>>0]|0;c=(g&1)==0;W=c?V+1|0:k[V+8>>2]|0;V=W+(c?(g&255)>>>1:k[V+4>>2]|0)|0;k[h>>2]=k[G>>2];k[j>>2]=k[H>>2];V=$p(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 121:{k[J>>2]=k[c>>2];k[j>>2]=k[J>>2];kq(a,f+20|0,b,j,e,N);V=28;break}case 89:{k[K>>2]=k[c>>2];k[j>>2]=k[K>>2];wq(a,f+20|0,b,j,e,N);V=28;break}case 37:{k[L>>2]=k[c>>2];k[j>>2]=k[L>>2];xq(a,b,j,e,N);V=28;break}default:{k[e>>2]=k[e>>2]|4;V=28}}}while(0);if((V|0)==28)h=k[b>>2]|0;r=U;return h|0}function mq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<31&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function nq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<24&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function oq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<12&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function pq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,3)|0;c=k[e>>2]|0;if((a|0)<366&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function qq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<13&(c&4|0)==0)k[b>>2]=a+-1;else k[e>>2]=c|4;r=g;return}function rq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<60&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function sq(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;g=e+8|0;a:while(1){e=k[b>>2]|0;do{if(e){if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;e=0;break}else{e=k[b>>2]|0;break}}else e=0}while(0);e=(e|0)==0;a=k[c>>2]|0;do{if(a){if((k[a+12>>2]|0)!=(k[a+16>>2]|0))if(e)break;else break a;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)!=-1)if(e)break;else break a;else{k[c>>2]=0;h=12;break}}else h=12}while(0);if((h|0)==12){h=0;if(e){a=0;break}else a=0}e=k[b>>2]|0;f=k[e+12>>2]|0;if((f|0)==(k[e+16>>2]|0))e=Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0;else e=l[f>>0]|0;if((e&255)<<24>>24<=-1)break;if(!(j[(k[g>>2]|0)+(e<<24>>24<<1)>>1]&8192))break;e=k[b>>2]|0;a=e+12|0;f=k[a>>2]|0;if((f|0)==(k[e+16>>2]|0)){Ob[k[(k[e>>2]|0)+40>>2]&127](e)|0;continue}else{k[a>>2]=f+1;continue}}e=k[b>>2]|0;do{if(e){if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;e=0;break}else{e=k[b>>2]|0;break}}else e=0}while(0);e=(e|0)==0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)?(Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1:0){k[c>>2]=0;h=32;break}if(!e)h=33}else h=32}while(0);if((h|0)==32?e:0)h=33;if((h|0)==33)k[d>>2]=k[d>>2]|2;return}function tq(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,j=0,l=0,m=0;m=r;r=r+16|0;h=m+4|0;j=m;l=a+8|0;l=Ob[k[(k[l>>2]|0)+8>>2]&127](l)|0;a=i[l>>0]|0;if(!(a&1))g=(a&255)>>>1;else g=k[l+4>>2]|0;a=i[l+12>>0]|0;if(!(a&1))a=(a&255)>>>1;else a=k[l+16>>2]|0;do{if((g|0)!=(0-a|0)){k[j>>2]=k[d>>2];k[h>>2]=k[j>>2];a=Hu(c,h,l,l+24|0,f,e,0)|0;g=k[b>>2]|0;if((a|0)==(l|0)&(g|0)==12){k[b>>2]=0;break}if((g|0)<12&(a-l|0)==12)k[b>>2]=g+12}else k[e>>2]=k[e>>2]|4}while(0);r=m;return}function uq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<61&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function vq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,1)|0;c=k[e>>2]|0;if((a|0)<7&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function wq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,4)|0;if(!(k[e>>2]&4))k[b>>2]=a+-1900;r=g;return}function xq(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;a=k[b>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0))if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}else a=0}while(0);f=(a|0)==0;a=k[c>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)?(Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1:0){k[c>>2]=0;h=11;break}if(f){g=a;h=13}else h=12}else h=11}while(0);if((h|0)==11)if(f)h=12;else{g=0;h=13}a:do{if((h|0)==12)k[d>>2]=k[d>>2]|6;else if((h|0)==13){a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=l[f>>0]|0;if((Qb[k[(k[e>>2]|0)+36>>2]&63](e,a&255,0)|0)<<24>>24!=37){k[d>>2]=k[d>>2]|4;break}a=k[b>>2]|0;f=a+12|0;e=k[f>>2]|0;if((e|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;a=k[b>>2]|0;if(!a)a=0;else h=21}else{k[f>>2]=e+1;h=21}do{if((h|0)==21)if((k[a+12>>2]|0)==(k[a+16>>2]|0))if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}while(0);a=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)?(Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1:0){k[c>>2]=0;h=30;break}if(a)break a}else h=30}while(0);if((h|0)==30?!a:0)break;k[d>>2]=k[d>>2]|2}}while(0);return}function yq(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,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;w=r;r=r+32|0;q=w+16|0;p=w+12|0;u=w+8|0;s=w+4|0;t=w;i=tn(d)|0;k[u>>2]=i;x=0;u=Aa(37,u|0,44212)|0;o=x;x=0;if(o&1){w=Wa()|0;zm(i)|0;fb(w|0)}zm(i)|0;k[e>>2]=0;i=k[b>>2]|0;a:do{if((g|0)!=(h|0)){b:while(1){l=i;if(i){j=k[i+12>>2]|0;if((j|0)==(k[i+16>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;if((j|0)==-1){k[b>>2]=0;i=0;n=1;o=0}else{n=0;o=l}}else{i=0;n=1;o=l}m=k[c>>2]|0;j=m;do{if(m){l=k[m+12>>2]|0;if((l|0)==(k[m+16>>2]|0))l=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else l=k[l>>2]|0;if((l|0)!=-1)if(n)break;else{v=17;break b}else{k[c>>2]=0;j=0;v=15;break}}else v=15}while(0);if((v|0)==15){v=0;if(n){v=17;break}else m=0}c:do{if((Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[g>>2]|0,0)|0)<<24>>24==37){l=g+4|0;if((l|0)==(h|0)){v=21;break b}n=Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[l>>2]|0,0)|0;switch(n<<24>>24){case 48:case 69:{m=g+8|0;if((m|0)==(h|0)){v=24;break b}g=l;l=Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[m>>2]|0,0)|0;i=n;break}default:{l=n;i=0}}n=k[(k[a>>2]|0)+36>>2]|0;k[s>>2]=o;k[t>>2]=j;k[p>>2]=k[s>>2];k[q>>2]=k[t>>2];o=ac[n&15](a,p,q,d,e,f,l,i)|0;k[b>>2]=o;g=g+8|0}else{if(!(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,k[g>>2]|0)|0)){l=i+12|0;j=k[l>>2]|0;m=i+16|0;if((j|0)==(k[m>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;o=Vb[k[(k[u>>2]|0)+28>>2]&63](u,j)|0;if((o|0)!=(Vb[k[(k[u>>2]|0)+28>>2]&63](u,k[g>>2]|0)|0)){v=61;break b}j=k[l>>2]|0;if((j|0)==(k[m>>2]|0))Ob[k[(k[i>>2]|0)+40>>2]&127](i)|0;else k[l>>2]=j+4;g=g+4|0;break}do{g=g+4|0;if((g|0)==(h|0)){g=h;break}}while(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,k[g>>2]|0)|0);j=m;n=m;while(1){if(i){l=k[i+12>>2]|0;if((l|0)==(k[i+16>>2]|0))l=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else l=k[l>>2]|0;if((l|0)==-1){k[b>>2]=0;m=1;i=0}else m=0}else{m=1;i=0}do{if(n){l=k[n+12>>2]|0;if((l|0)==(k[n+16>>2]|0))l=Ob[k[(k[n>>2]|0)+36>>2]&127](n)|0;else l=k[l>>2]|0;if((l|0)!=-1)if(m^(j|0)==0){o=j;n=j;break}else break c;else{k[c>>2]=0;j=0;v=44;break}}else v=44}while(0);if((v|0)==44){v=0;if(m)break c;else{o=j;n=0}}l=i+12|0;j=k[l>>2]|0;m=i+16|0;if((j|0)==(k[m>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;if(!(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,j)|0))break c;j=k[l>>2]|0;if((j|0)==(k[m>>2]|0)){Ob[k[(k[i>>2]|0)+40>>2]&127](i)|0;j=o;continue}else{k[l>>2]=j+4;j=o;continue}}}}while(0);i=k[b>>2]|0;if(!((g|0)!=(h|0)&(k[e>>2]|0)==0))break a}if((v|0)==17){k[e>>2]=4;break}else if((v|0)==21){k[e>>2]=4;break}else if((v|0)==24){k[e>>2]=4;break}else if((v|0)==61){k[e>>2]=4;i=k[b>>2]|0;break}}}while(0);if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)==-1){k[b>>2]=0;i=0;l=1}else l=0}else{i=0;l=1}g=k[c>>2]|0;do{if(g){j=k[g+12>>2]|0;if((j|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=k[j>>2]|0;if((g|0)!=-1)if(l)break;else{v=76;break}else{k[c>>2]=0;v=74;break}}else v=74}while(0);if((v|0)==74?l:0)v=76;if((v|0)==76)k[e>>2]=k[e>>2]|2;r=w;return i|0}function zq(a){a=a|0;return}function Aq(a){a=a|0;mj(a);return}function Bq(a){a=a|0;return 2}function Cq(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=yq(a,i,h,d,e,f,44788,44820)|0;r=g;return a|0}function Dq(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,j=0,l=0,m=0,n=0,o=0,p=0;g=r;r=r+16|0;h=g+12|0;j=g+8|0;m=g+4|0;l=g;p=a+8|0;p=Ob[k[(k[p>>2]|0)+20>>2]&127](p)|0;k[m>>2]=k[b>>2];k[l>>2]=k[c>>2];n=i[p>>0]|0;o=(n&1)==0;c=p+4|0;b=o?c:k[p+8>>2]|0;c=b+((o?(n&255)>>>1:k[c>>2]|0)<<2)|0;k[j>>2]=k[m>>2];k[h>>2]=k[l>>2];a=yq(a,j,h,d,e,f,b,c)|0;r=g;return a|0}function Eq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Fq(a,f+24|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Fq(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;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[k[a>>2]>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Su(c,h,a,a+168|0,f,e,0)|0)-a|0;if((c|0)<168)k[b>>2]=((c|0)/12|0|0)%7|0;r=g;return}function Gq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Hq(a,f+16|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Hq(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;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[(k[a>>2]|0)+4>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Su(c,h,a,a+288|0,f,e,0)|0)-a|0;if((c|0)<288)k[b>>2]=((c|0)/12|0|0)%12|0;r=g;return}function Iq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Jq(a,f+20|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Jq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,4)|0;if(!(k[e>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;k[b>>2]=a+-1900}r=g;return}function Kq(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 j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=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;U=r;r=r+144|0;j=U+132|0;h=U+116|0;N=U+128|0;w=U+124|0;I=U+120|0;O=U+112|0;P=U+108|0;Q=U+104|0;R=U+100|0;S=U+96|0;T=U+92|0;l=U+88|0;m=U+84|0;n=U+80|0;o=U+76|0;p=U+72|0;q=U+68|0;s=U+64|0;t=U+60|0;u=U+56|0;v=U+52|0;y=U+48|0;z=U+44|0;A=U+40|0;B=U+36|0;C=U+32|0;D=U+28|0;E=U+24|0;F=U+20|0;G=U+16|0;H=U+12|0;J=U+8|0;K=U+4|0;L=U;k[e>>2]=0;M=tn(d)|0;k[N>>2]=M;x=0;N=Aa(37,N|0,44212)|0;W=x;x=0;if(W&1){W=Wa()|0;zm(M)|0;fb(W|0)}zm(M)|0;do{switch(g<<24>>24|0){case 65:case 97:{k[w>>2]=k[c>>2];k[j>>2]=k[w>>2];Fq(a,f+24|0,b,j,e,N);V=28;break}case 104:case 66:case 98:{k[I>>2]=k[c>>2];k[j>>2]=k[I>>2];Hq(a,f+16|0,b,j,e,N);V=28;break}case 99:{W=a+8|0;W=Ob[k[(k[W>>2]|0)+12>>2]&127](W)|0;k[O>>2]=k[b>>2];k[P>>2]=k[c>>2];g=i[W>>0]|0;c=(g&1)==0;V=W+4|0;W=c?V:k[W+8>>2]|0;V=W+((c?(g&255)>>>1:k[V>>2]|0)<<2)|0;k[h>>2]=k[O>>2];k[j>>2]=k[P>>2];V=yq(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 101:case 100:{k[Q>>2]=k[c>>2];k[j>>2]=k[Q>>2];Lq(a,f+12|0,b,j,e,N);V=28;break}case 68:{k[R>>2]=k[b>>2];k[S>>2]=k[c>>2];k[h>>2]=k[R>>2];k[j>>2]=k[S>>2];V=yq(a,h,j,d,e,f,44820,44852)|0;k[b>>2]=V;V=28;break}case 70:{k[T>>2]=k[b>>2];k[l>>2]=k[c>>2];k[h>>2]=k[T>>2];k[j>>2]=k[l>>2];V=yq(a,h,j,d,e,f,44852,44884)|0;k[b>>2]=V;V=28;break}case 72:{k[m>>2]=k[c>>2];k[j>>2]=k[m>>2];Mq(a,f+8|0,b,j,e,N);V=28;break}case 73:{k[n>>2]=k[c>>2];k[j>>2]=k[n>>2];Nq(a,f+8|0,b,j,e,N);V=28;break}case 106:{k[o>>2]=k[c>>2];k[j>>2]=k[o>>2];Oq(a,f+28|0,b,j,e,N);V=28;break}case 109:{k[p>>2]=k[c>>2];k[j>>2]=k[p>>2];Pq(a,f+16|0,b,j,e,N);V=28;break}case 77:{k[q>>2]=k[c>>2];k[j>>2]=k[q>>2];Qq(a,f+4|0,b,j,e,N);V=28;break}case 116:case 110:{k[s>>2]=k[c>>2];k[j>>2]=k[s>>2];Rq(a,b,j,e,N);V=28;break}case 112:{k[t>>2]=k[c>>2];k[j>>2]=k[t>>2];Sq(a,f+8|0,b,j,e,N);V=28;break}case 114:{k[u>>2]=k[b>>2];k[v>>2]=k[c>>2];k[h>>2]=k[u>>2];k[j>>2]=k[v>>2];V=yq(a,h,j,d,e,f,44884,44928)|0;k[b>>2]=V;V=28;break}case 82:{k[y>>2]=k[b>>2];k[z>>2]=k[c>>2];k[h>>2]=k[y>>2];k[j>>2]=k[z>>2];V=yq(a,h,j,d,e,f,44928,44948)|0;k[b>>2]=V;V=28;break}case 83:{k[A>>2]=k[c>>2];k[j>>2]=k[A>>2];Tq(a,f,b,j,e,N);V=28;break}case 84:{k[B>>2]=k[b>>2];k[C>>2]=k[c>>2];k[h>>2]=k[B>>2];k[j>>2]=k[C>>2];V=yq(a,h,j,d,e,f,44948,44980)|0;k[b>>2]=V;V=28;break}case 119:{k[D>>2]=k[c>>2];k[j>>2]=k[D>>2];Uq(a,f+24|0,b,j,e,N);V=28;break}case 120:{W=k[(k[a>>2]|0)+20>>2]|0;k[E>>2]=k[b>>2];k[F>>2]=k[c>>2];k[h>>2]=k[E>>2];k[j>>2]=k[F>>2];h=Nb[W&63](a,h,j,d,e,f)|0;break}case 88:{W=a+8|0;W=Ob[k[(k[W>>2]|0)+24>>2]&127](W)|0;k[G>>2]=k[b>>2];k[H>>2]=k[c>>2];g=i[W>>0]|0;c=(g&1)==0;V=W+4|0;W=c?V:k[W+8>>2]|0;V=W+((c?(g&255)>>>1:k[V>>2]|0)<<2)|0;k[h>>2]=k[G>>2];k[j>>2]=k[H>>2];V=yq(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 121:{k[J>>2]=k[c>>2];k[j>>2]=k[J>>2];Jq(a,f+20|0,b,j,e,N);V=28;break}case 89:{k[K>>2]=k[c>>2];k[j>>2]=k[K>>2];Vq(a,f+20|0,b,j,e,N);V=28;break}case 37:{k[L>>2]=k[c>>2];k[j>>2]=k[L>>2];Wq(a,b,j,e,N);V=28;break}default:{k[e>>2]=k[e>>2]|4;V=28}}}while(0);if((V|0)==28)h=k[b>>2]|0;r=U;return h|0}function Lq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<31&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Mq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<24&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Nq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<12&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Oq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,3)|0;c=k[e>>2]|0;if((a|0)<366&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Pq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<13&(c&4|0)==0)k[b>>2]=a+-1;else k[e>>2]=c|4;r=g;return}function Qq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<60&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Rq(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;a:while(1){a=k[b>>2]|0;do{if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;g=1;break}else{g=(k[b>>2]|0)==0;break}}else g=1}while(0);f=k[c>>2]|0;do{if(f){a=k[f+12>>2]|0;if((a|0)==(k[f+16>>2]|0))a=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(g){g=f;break}else{g=f;break a}else{k[c>>2]=0;h=15;break}}else h=15}while(0);if((h|0)==15){h=0;if(g){g=0;break}else g=0}a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if(!(Qb[k[(k[e>>2]|0)+12>>2]&63](e,8192,a)|0))break;a=k[b>>2]|0;f=a+12|0;g=k[f>>2]|0;if((g|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;continue}else{k[f>>2]=g+4;continue}}a=k[b>>2]|0;do{if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;f=1;break}else{f=(k[b>>2]|0)==0;break}}else f=1}while(0);do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0))a=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(f)break;else{h=39;break}else{k[c>>2]=0;h=37;break}}else h=37}while(0);if((h|0)==37?f:0)h=39;if((h|0)==39)k[d>>2]=k[d>>2]|2;return}function Sq(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,j=0,l=0,m=0;m=r;r=r+16|0;h=m+4|0;j=m;l=a+8|0;l=Ob[k[(k[l>>2]|0)+8>>2]&127](l)|0;a=i[l>>0]|0;if(!(a&1))g=(a&255)>>>1;else g=k[l+4>>2]|0;a=i[l+12>>0]|0;if(!(a&1))a=(a&255)>>>1;else a=k[l+16>>2]|0;do{if((g|0)!=(0-a|0)){k[j>>2]=k[d>>2];k[h>>2]=k[j>>2];a=Su(c,h,l,l+24|0,f,e,0)|0;g=k[b>>2]|0;if((a|0)==(l|0)&(g|0)==12){k[b>>2]=0;break}if((g|0)<12&(a-l|0)==12)k[b>>2]=g+12}else k[e>>2]=k[e>>2]|4}while(0);r=m;return}function Tq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<61&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Uq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,1)|0;c=k[e>>2]|0;if((a|0)<7&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Vq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,4)|0;if(!(k[e>>2]&4))k[b>>2]=a+-1900;r=g;return}function Wq(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;a=k[b>>2]|0;do{if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;g=1;break}else{g=(k[b>>2]|0)==0;break}}else g=1}while(0);f=k[c>>2]|0;do{if(f){a=k[f+12>>2]|0;if((a|0)==(k[f+16>>2]|0))a=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(g){h=f;i=17;break}else{i=16;break}else{k[c>>2]=0;i=14;break}}else i=14}while(0);if((i|0)==14)if(g)i=16;else{h=0;i=17}a:do{if((i|0)==16)k[d>>2]=k[d>>2]|6;else if((i|0)==17){a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((Qb[k[(k[e>>2]|0)+52>>2]&63](e,a,0)|0)<<24>>24!=37){k[d>>2]=k[d>>2]|4;break}a=k[b>>2]|0;f=a+12|0;g=k[f>>2]|0;if((g|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;a=k[b>>2]|0;if(!a)f=1;else i=25}else{k[f>>2]=g+4;i=25}do{if((i|0)==25){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;f=1;break}else{f=(k[b>>2]|0)==0;break}}}while(0);do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0))a=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(f)break a;else break;else{k[c>>2]=0;i=37;break}}else i=37}while(0);if((i|0)==37?!f:0)break;k[d>>2]=k[d>>2]|2}}while(0);return}function Xq(a){a=a|0;Yq(a+8|0);return}function Yq(a){a=a|0;var b=0,c=0,d=0;b=k[a>>2]|0;x=0;c=Da(3)|0;d=x;x=0;do{if(!(d&1)){if((b|0)!=(c|0)?(x=0,qa(188,k[a>>2]|0),d=x,x=0,d&1):0)break;return}}while(0);d=Wa(0)|0;oc(d)}function Zq(a){a=a|0;Yq(a+8|0);mj(a);return}function _q(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;j=r;r=r+112|0;h=j+4|0;c=j;k[c>>2]=h+100;$q(a+8|0,h,c,e,f,g);e=k[c>>2]|0;c=k[b>>2]|0;if((h|0)!=(e|0))do{g=i[h>>0]|0;do{if(c){d=c+24|0;f=k[d>>2]|0;if((f|0)==(k[c+28>>2]|0)){b=(Vb[k[(k[c>>2]|0)+52>>2]&63](c,g&255)|0)==-1;c=b?0:c;break}else{k[d>>2]=f+1;i[f>>0]=g;break}}else c=0}while(0);h=h+1|0}while((h|0)!=(e|0));r=j;return c|0}function $q(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,j=0,l=0;l=r;r=r+16|0;j=l;i[j>>0]=37;g=j+1|0;i[g>>0]=e;h=j+2|0;i[h>>0]=f;i[j+3>>0]=0;if(f<<24>>24){i[g>>0]=f;i[h>>0]=e}a=b+(_a(b|0,(k[c>>2]|0)-b|0,j|0,d|0,k[a>>2]|0)|0)|0;k[c>>2]=a;r=l;return}function ar(a){a=a|0;Yq(a+8|0);return}function br(a){a=a|0;Yq(a+8|0);mj(a);return}function cr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=r;r=r+416|0;d=h+8|0;c=h;k[c>>2]=d+400;dr(a+8|0,d,c,e,f,g);a=k[c>>2]|0;c=k[b>>2]|0;if((d|0)!=(a|0)){e=d;do{d=k[e>>2]|0;if(!c)c=0;else{f=c+24|0;g=k[f>>2]|0;if((g|0)==(k[c+28>>2]|0))d=Vb[k[(k[c>>2]|0)+52>>2]&63](c,d)|0;else{k[f>>2]=g+4;k[g>>2]=d}c=(d|0)==-1?0:c}e=e+4|0}while((e|0)!=(a|0))}r=h;return c|0}function dr(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,l=0;g=r;r=r+128|0;j=g+16|0;l=g+12|0;h=g;i=g+8|0;k[l>>2]=j+100;$q(a,j,l,d,e,f);e=h;k[e>>2]=0;k[e+4>>2]=0;k[i>>2]=j;e=(k[c>>2]|0)-b>>2;f=Ak(k[a>>2]|0)|0;x=0;e=Ea(18,b|0,i|0,e|0,h|0)|0;a=x;x=0;if(a&1){e=Wa()|0;if((f|0)!=0?(x=0,ta(75,f|0)|0,l=x,x=0,l&1):0){l=Wa(0)|0;oc(l)}fb(e|0)}if((f|0)!=0?(x=0,ta(75,f|0)|0,l=x,x=0,l&1):0){l=Wa(0)|0;oc(l)}if((e|0)==-1)$r(58955);else{k[c>>2]=b+(e<<2);r=g;return}}function er(a){a=a|0;return}function fr(a){a=a|0;mj(a);return}function gr(a){a=a|0;return 127}function hr(a){a=a|0;return 127}function ir(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function jr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function kr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function lr(a,b){a=a|0;b=b|0;Rm(a,1,45);return}function mr(a){a=a|0;return 0}function nr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function or(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function pr(a){a=a|0;return}function qr(a){a=a|0;mj(a);return}function rr(a){a=a|0;return 127}function sr(a){a=a|0;return 127}function tr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function ur(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function vr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function wr(a,b){a=a|0;b=b|0;Rm(a,1,45);return}function xr(a){a=a|0;return 0}function yr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function zr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Ar(a){a=a|0;return}function Br(a){a=a|0;mj(a);return}function Cr(a){a=a|0;return 2147483647}function Dr(a){a=a|0;return 2147483647}function Er(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Fr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Gr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Hr(a,b){a=a|0;b=b|0;dn(a,1,45);return}function Ir(a){a=a|0;return 0}function Jr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Kr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Lr(a){a=a|0;return}function Mr(a){a=a|0;mj(a);return}function Nr(a){a=a|0;return 2147483647}function Or(a){a=a|0;return 2147483647}function Pr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Qr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Rr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Sr(a,b){a=a|0;b=b|0;dn(a,1,45);return}function Tr(a){a=a|0;return 0}function Ur(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Vr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Wr(a){a=a|0;return}function Xr(a){a=a|0;mj(a);return}function Yr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;B=r;r=r+240|0;z=B+24|0;A=B;a=B+136|0;D=B+16|0;y=B+12|0;C=B+8|0;n=B+134|0;j=B+4|0;w=B+124|0;k[D>>2]=a;E=D+4|0;k[E>>2]=189;l=a+100|0;x=0;h=ta(68,e|0)|0;v=x;x=0;if(!(v&1)){k[C>>2]=h;x=0;a=Aa(37,C|0,44220)|0;v=x;x=0;a:do{if(!(v&1)?(i[n>>0]=0,k[j>>2]=k[c>>2],m=k[e+4>>2]|0,x=0,k[z>>2]=k[j>>2],m=ua(1,b|0,z|0,d|0,C|0,m|0,f|0,n|0,a|0,D|0,y|0,l|0)|0,v=x,x=0,!(v&1)):0){b:do{if(m){x=0;Ea(k[(k[a>>2]|0)+32>>2]|0,a|0,58976,58986,w|0)|0;v=x;x=0;if(v&1){G=10;break a}j=k[y>>2]|0;l=k[D>>2]|0;a=j-l|0;if((a|0)>98){a=Pl(a+2|0)|0;h=a;if(!a){x=0;Ga(6);v=x;x=0;if(!(v&1)){a=0;G=13}}else G=13}else{h=0;a=z;G=13}do{if((G|0)==13){if(i[n>>0]|0){i[a>>0]=45;a=a+1|0}u=w+10|0;v=w;if(l>>>0>>0){m=w+1|0;d=m+1|0;e=d+1|0;n=e+1|0;o=n+1|0;p=o+1|0;q=p+1|0;s=q+1|0;t=s+1|0;do{j=i[l>>0]|0;do{if((i[w>>0]|0)!=j<<24>>24)if((i[m>>0]|0)!=j<<24>>24)if((i[d>>0]|0)!=j<<24>>24)if((i[e>>0]|0)!=j<<24>>24)if((i[n>>0]|0)==j<<24>>24)j=n;else{if((i[o>>0]|0)==j<<24>>24){j=o;break}if((i[p>>0]|0)==j<<24>>24){j=p;break}if((i[q>>0]|0)==j<<24>>24){j=q;break}if((i[s>>0]|0)==j<<24>>24){j=s;break}j=(i[t>>0]|0)==j<<24>>24?t:u}else j=e;else j=d;else j=m;else j=w}while(0);i[a>>0]=i[58976+(j-v)>>0]|0;l=l+1|0;a=a+1|0}while(l>>>0<(k[y>>2]|0)>>>0)}i[a>>0]=0;k[A>>2]=g;if((jl(z,58987,A)|0)!=1?(x=0,qa(190,58991),g=x,x=0,g&1):0)break;if(h)Ql(h);break b}}while(0);a=Wa()|0;if(!h){j=a;h=D;break a}Ql(h);j=a;h=D;break a}}while(0);a=k[b>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}if((a|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}}else a=0}while(0);h=(a|0)==0;a=k[c>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}if((a|0)==-1){k[c>>2]=0;G=37;break}}if(!h)G=38}else G=37}while(0);if((G|0)==37?h:0)G=38;if((G|0)==38)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(k[C>>2]|0)|0;a=k[D>>2]|0;k[D>>2]=0;if((a|0)!=0?(x=0,qa(k[E>>2]|0,a|0),G=x,x=0,G&1):0){G=Wa(0)|0;oc(G)}r=B;return h|0}else G=10}while(0);if((G|0)==10){j=Wa()|0;h=D}zm(k[C>>2]|0)|0;a=k[h>>2]|0;k[h>>2]=0;if(!a)F=j;else{h=k[E>>2]|0;G=45}}else{j=Wa()|0;k[D>>2]=0;h=189;G=45}if((G|0)==45){x=0;qa(h|0,a|0);G=x;x=0;if(G&1){G=Wa(0)|0;oc(G)}else F=j}fb(F|0);return 0}function Zr(a){a=a|0;return}function _r(a,b,c,d,e,f,g,h,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,s=0,t=0,u=0,v=0,w=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;ba=r;r=r+512|0;P=ba+88|0;t=ba+96|0;da=ba+80|0;T=ba+72|0;S=ba+68|0;U=ba+500|0;Q=ba+497|0;V=ba+496|0;Y=ba+56|0;aa=ba+44|0;_=ba+32|0;Z=ba+20|0;$=ba+8|0;R=ba+4|0;X=ba;k[P>>2]=o;k[da>>2]=t;ca=da+4|0;k[ca>>2]=189;k[T>>2]=t;k[S>>2]=t+400;k[Y>>2]=0;k[Y+4>>2]=0;k[Y+8>>2]=0;k[aa>>2]=0;k[aa+4>>2]=0;k[aa+8>>2]=0;k[_>>2]=0;k[_+4>>2]=0;k[_+8>>2]=0;k[Z>>2]=0;k[Z+4>>2]=0;k[Z+8>>2]=0;k[$>>2]=0;k[$+4>>2]=0;k[$+8>>2]=0;x=0;za(1,c|0,d|0,U|0,Q|0,V|0,Y|0,aa|0,_|0,Z|0,R|0);O=x;x=0;a:do{if(O&1)h=Wa()|0;else{k[n>>2]=k[m>>2];I=h+8|0;J=_+4|0;K=Z+4|0;L=Z+8|0;M=Z+1|0;N=_+8|0;O=_+1|0;z=(e&512|0)!=0;A=aa+8|0;B=aa+1|0;C=aa+4|0;D=$+4|0;E=$+8|0;F=$+1|0;G=U+3|0;H=Y+4|0;y=0;s=0;b:while(1){o=k[a>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0}while(0);o=(o|0)==0;h=k[b>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(o){w=h;break}else{W=235;break b}x=0;c=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=24;break b}if((c|0)!=-1)if(o){w=h;break}else{W=235;break b}else{k[b>>2]=0;W=15;break}}else W=15}while(0);if((W|0)==15){W=0;if(o){W=235;break}else w=0}c:do{switch(i[U+y>>0]|0){case 1:{if((y|0)!=3){o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=24;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24<=-1){W=40;break b}if(!(j[(k[I>>2]|0)+(o<<24>>24<<1)>>1]&8192)){W=40;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=24;break b}}else{k[h>>2]=c+1;o=l[c>>0]|0}x=0;ra(67,$|0,o&255|0);W=x;x=0;if(W&1){W=24;break b}else{o=w;d=w;W=42}}break}case 0:{if((y|0)!=3){o=w;d=w;W=42}break}case 3:{h=i[_>>0]|0;o=(h&1)==0?(h&255)>>>1:k[J>>2]|0;c=i[Z>>0]|0;d=(c&1)==0?(c&255)>>>1:k[K>>2]|0;if((o|0)!=(0-d|0)){if(!o){o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}h=i[Z>>0]|0}else{o=l[h>>0]|0;h=c}if((o&255)<<24>>24!=(i[((h&1)==0?M:k[L>>2]|0)>>0]|0))break c;o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;i[g>>0]=1;w=i[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:k[K>>2]|0)>>>0>1?Z:s;break c}e=k[a>>2]|0;p=k[e+12>>2]|0;c=k[e+16>>2]|0;o=(p|0)==(c|0);if(!d){if(o){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}h=i[_>>0]|0}else o=l[p>>0]|0;if((o&255)<<24>>24!=(i[((h&1)==0?O:k[N>>2]|0)>>0]|0)){i[g>>0]=1;break c}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;w=i[_>>0]|0;s=((w&1)==0?(w&255)>>>1:k[J>>2]|0)>>>0>1?_:s;break c}if(o){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}c=k[a>>2]|0;h=i[_>>0]|0;e=c;p=k[c+12>>2]|0;c=k[c+16>>2]|0}else o=l[p>>0]|0;d=e+12|0;c=(p|0)==(c|0);if((o&255)<<24>>24==(i[((h&1)==0?O:k[N>>2]|0)>>0]|0)){if(c){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[d>>2]=p+1;w=i[_>>0]|0;s=((w&1)==0?(w&255)>>>1:k[J>>2]|0)>>>0>1?_:s;break c}if(c){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}}else o=l[p>>0]|0;if((o&255)<<24>>24!=(i[((i[Z>>0]&1)==0?M:k[L>>2]|0)>>0]|0)){W=104;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;i[g>>0]=1;w=i[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:k[K>>2]|0)>>>0>1?Z:s}break}case 2:{if(!(y>>>0<2|(s|0)!=0)?!(z|(y|0)==2&(i[G>>0]|0)!=0):0){s=0;break c}u=i[aa>>0]|0;o=(u&1)==0;v=k[A>>2]|0;c=o?B:v;q=c;d:do{if((y|0)!=0?(l[U+(y+-1)>>0]|0)<2:0){p=o?(u&255)>>>1:k[C>>2]|0;d=c+p|0;e=k[I>>2]|0;e:do{if(!p)h=q;else{p=c;h=q;do{o=i[p>>0]|0;if(o<<24>>24<=-1)break e;if(!(j[e+(o<<24>>24<<1)>>1]&8192))break e;p=p+1|0;h=p}while((p|0)!=(d|0))}}while(0);d=h-q|0;e=i[$>>0]|0;o=(e&1)==0;e=o?(e&255)>>>1:k[D>>2]|0;if(e>>>0>=d>>>0){o=o?F:k[E>>2]|0;p=o+e|0;if((h|0)!=(q|0)){o=o+(e-d)|0;while(1){if((i[o>>0]|0)!=(i[c>>0]|0)){h=q;break d}o=o+1|0;if((o|0)==(p|0))break;else c=c+1|0}}}else h=q}else h=q}while(0);o=(u&1)==0;o=(o?B:v)+(o?(u&255)>>>1:k[C>>2]|0)|0;f:do{if((h|0)!=(o|0)){e=w;d=w;o=h;while(1){h=k[a>>2]|0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=21;break b}if((h|0)==-1){k[a>>2]=0;h=0;break}else{h=k[a>>2]|0;break}}}else h=0}while(0);c=(h|0)==0;do{if(d){if((k[d+12>>2]|0)!=(k[d+16>>2]|0))if(c){h=e;p=d;break}else break f;x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=21;break b}if((h|0)!=-1)if(c^(e|0)==0){h=e;p=e;break}else break f;else{k[b>>2]=0;h=0;W=131;break}}else{h=e;W=131}}while(0);if((W|0)==131){W=0;if(c)break f;else p=0}c=k[a>>2]|0;d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=21;break b}}else c=l[d>>0]|0;if((c&255)<<24>>24!=(i[o>>0]|0))break f;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=21;break b}}else k[d>>2]=e+1;o=o+1|0;c=i[aa>>0]|0;w=(c&1)==0;c=(w?B:k[A>>2]|0)+(w?(c&255)>>>1:k[C>>2]|0)|0;if((o|0)==(c|0)){o=c;break}else{e=h;d=p}}}}while(0);if(z?(w=i[aa>>0]|0,v=(w&1)==0,(o|0)!=((v?B:k[A>>2]|0)+(v?(w&255)>>>1:k[C>>2]|0)|0)):0){W=143;break b}break}case 4:{q=i[V>>0]|0;h=w;e=w;o=0;g:while(1){c=k[a>>2]|0;do{if(c){if((k[c+12>>2]|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=23;break b}if((c|0)==-1){k[a>>2]=0;c=0;break}else{c=k[a>>2]|0;break}}}else c=0}while(0);d=(c|0)==0;do{if(e){if((k[e+12>>2]|0)!=(k[e+16>>2]|0))if(d){p=h;break}else{d=h;break g}x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=23;break b}if((c|0)!=-1)if(d^(h|0)==0){p=h;e=h;break}else{d=h;break g}else{k[b>>2]=0;h=0;W=156;break}}else W=156}while(0);if((W|0)==156){W=0;if(d){d=h;break}else{p=h;e=0}}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=23;break b}}else h=l[c>>0]|0;c=h&255;if(c<<24>>24>-1?(j[(k[I>>2]|0)+(h<<24>>24<<1)>>1]&2048)!=0:0){h=k[n>>2]|0;if((h|0)==(k[P>>2]|0)){x=0;Fa(12,m|0,n|0,P|0);w=x;x=0;if(w&1){W=23;break b}h=k[n>>2]|0}k[n>>2]=h+1;i[h>>0]=c;o=o+1|0}else{w=i[Y>>0]|0;if(!(c<<24>>24==q<<24>>24&((o|0)!=0?(((w&1)==0?(w&255)>>>1:k[H>>2]|0)|0)!=0:0))){d=p;break}if((t|0)==(k[S>>2]|0)){x=0;Fa(13,da|0,T|0,S|0);w=x;x=0;if(w&1){W=23;break b}t=k[T>>2]|0}w=t+4|0;k[T>>2]=w;k[t>>2]=o;t=w;o=0}h=k[a>>2]|0;c=h+12|0;d=k[c>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;ta(k[(k[h>>2]|0)+40>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=23;break b}else{h=p;continue}}else{k[c>>2]=d+1;h=p;continue}}if((o|0)!=0?(k[da>>2]|0)!=(t|0):0){if((t|0)==(k[S>>2]|0)){x=0;Fa(13,da|0,T|0,S|0);w=x;x=0;if(w&1){W=24;break b}t=k[T>>2]|0}w=t+4|0;k[T>>2]=w;k[t>>2]=o;t=w}p=k[R>>2]|0;if((p|0)>0){o=k[a>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0}while(0);o=(o|0)==0;do{if(d){if((k[d+12>>2]|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=24;break b}if((h|0)==-1){k[b>>2]=0;W=193;break}}if(!o){W=198;break b}}else W=193}while(0);if((W|0)==193){W=0;if(o){W=198;break b}else d=0}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24!=(i[Q>>0]|0)){W=198;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;if((p|0)>0){e=d;c=d;q=p;while(1){o=k[a>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=22;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0}while(0);h=(o|0)==0;do{if(c){if((k[c+12>>2]|0)!=(k[c+16>>2]|0))if(h){o=e;p=c;break}else{W=222;break b}x=0;o=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=22;break b}if((o|0)!=-1)if(h^(e|0)==0){o=e;p=e;break}else{W=222;break b}else{k[b>>2]=0;o=0;W=215;break}}else{o=e;W=215}}while(0);if((W|0)==215){W=0;if(h){W=222;break b}else p=0}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=22;break b}}else h=l[c>>0]|0;if((h&255)<<24>>24<=-1){W=222;break b}if(!(j[(k[I>>2]|0)+(h<<24>>24<<1)>>1]&2048)){W=222;break b}if((k[n>>2]|0)==(k[P>>2]|0)?(x=0,Fa(12,m|0,n|0,P|0),w=x,x=0,w&1):0){W=22;break b}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=22;break b}}else h=l[c>>0]|0;c=k[n>>2]|0;k[n>>2]=c+1;i[c>>0]=h;h=q;q=q+-1|0;k[R>>2]=q;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=22;break b}}else k[d>>2]=e+1;if((h|0)<=1)break;else{e=o;c=p}}}}if((k[n>>2]|0)==(k[m>>2]|0)){W=233;break b}break}default:{}}}while(0);h:do{if((W|0)==42)while(1){W=0;h=k[a>>2]|0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=20;break b}if((h|0)==-1){k[a>>2]=0;h=0;break}else{h=k[a>>2]|0;break}}}else h=0}while(0);c=(h|0)==0;do{if(d){if((k[d+12>>2]|0)!=(k[d+16>>2]|0))if(c){e=o;break}else break h;x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=20;break b}if((h|0)!=-1)if(c^(o|0)==0){e=o;d=o;break}else break h;else{k[b>>2]=0;o=0;W=54;break}}else W=54}while(0);if((W|0)==54){W=0;if(c)break h;else{e=o;d=0}}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=20;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24<=-1)break h;if(!(j[(k[I>>2]|0)+(o<<24>>24<<1)>>1]&8192))break h;o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=20;break b}}else{k[h>>2]=c+1;o=l[c>>0]|0}x=0;ra(67,$|0,o&255|0);W=x;x=0;if(W&1){W=20;break b}else{o=e;W=42}}}while(0);y=y+1|0;if(y>>>0>=4){W=235;break}}i:switch(W|0){case 20:{h=Wa()|0;break a}case 21:{h=Wa()|0;break a}case 22:{h=Wa()|0;break a}case 23:{h=Wa()|0;break a}case 24:{h=Wa()|0;break a}case 40:{k[f>>2]=k[f>>2]|4;h=0;break}case 104:{k[f>>2]=k[f>>2]|4;h=0;break}case 143:{k[f>>2]=k[f>>2]|4;h=0;break}case 198:{k[f>>2]=k[f>>2]|4;h=0;break}case 222:{k[f>>2]=k[f>>2]|4;h=0;break}case 233:{k[f>>2]=k[f>>2]|4;h=0;break}case 235:{j:do{if(s){e=s+1|0;p=s+8|0;q=s+4|0;c=1;k:while(1){o=i[s>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[q>>2]|0;if(c>>>0>=o>>>0)break j;o=k[a>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break k}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0}while(0);h=(o|0)==0;o=k[b>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break k}if((o|0)==-1){k[b>>2]=0;W=253;break}}if(!h){W=260;break k}}else W=253}while(0);if((W|0)==253?(W=0,h):0){W=260;break}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break}}else o=l[h>>0]|0;if(!(i[s>>0]&1))h=e;else h=k[p>>2]|0;if((o&255)<<24>>24!=(i[h+c>>0]|0)){W=260;break}o=c+1|0;h=k[a>>2]|0;c=h+12|0;d=k[c>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;ta(k[(k[h>>2]|0)+40>>2]|0,h|0)|0;n=x;x=0;if(n&1){W=19;break}else{c=o;continue}}else{k[c>>2]=d+1;c=o;continue}}if((W|0)==19){h=Wa()|0;break a}else if((W|0)==260){k[f>>2]=k[f>>2]|4;h=0;break i}}}while(0);o=k[da>>2]|0;if((o|0)!=(t|0)?(k[X>>2]=0,cs(Y,o,t,X),(k[X>>2]|0)!=0):0){k[f>>2]=k[f>>2]|4;h=0}else h=1;break}}Sm($);Sm(Z);Sm(_);Sm(aa);Sm(Y);o=k[da>>2]|0;k[da>>2]=0;if((o|0)!=0?(x=0,qa(k[ca>>2]|0,o|0),da=x,x=0,da&1):0){da=Wa(0)|0;oc(da)}r=ba;return h|0}}while(0);Sm($);Sm(Z);Sm(_);Sm(aa);Sm(Y);o=k[da>>2]|0;k[da>>2]=0;if((o|0)!=0?(x=0,qa(k[ca>>2]|0,o|0),da=x,x=0,da&1):0){da=Wa(0)|0;oc(da)}fb(h|0);return 0}function $r(a){a=a|0;var b=0;b=Va(8)|0;x=0;ra(90,b|0,a|0);a=x;x=0;if(a&1){a=Wa()|0;Ua(b|0);fb(a|0)}else ub(b|0,616,80)}function as(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;v=r;r=r+144|0;h=v+24|0;a=v+32|0;w=v+16|0;q=v+8|0;n=v+4|0;o=v+28|0;j=v;k[w>>2]=a;A=w+4|0;k[A>>2]=189;l=a+100|0;x=0;u=ta(68,e|0)|0;m=x;x=0;if(!(m&1)){k[n>>2]=u;x=0;m=Aa(37,n|0,44220)|0;a=x;x=0;a:do{if(!(a&1)?(i[o>>0]=0,s=k[c>>2]|0,k[j>>2]=s,p=k[e+4>>2]|0,t=s,x=0,k[h>>2]=k[j>>2],p=ua(1,b|0,h|0,d|0,n|0,p|0,f|0,o|0,m|0,w|0,q|0,l|0)|0,e=x,x=0,!(e&1)):0){if(p){if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}if(i[o>>0]|0){x=0;a=Aa(k[(k[m>>2]|0)+28>>2]|0,m|0,45)|0;e=x;x=0;if(e&1)break;x=0;ra(67,g|0,a|0);e=x;x=0;if(e&1)break}x=0;j=Aa(k[(k[m>>2]|0)+28>>2]|0,m|0,48)|0;e=x;x=0;if(e&1)break;a=k[w>>2]|0;l=k[q>>2]|0;h=l+-1|0;b:do{if(a>>>0>>0)do{if((i[a>>0]|0)!=j<<24>>24)break b;a=a+1|0}while(a>>>0>>0)}while(0);x=0;va(32,g|0,a|0,l|0)|0;g=x;x=0;if(g&1)break}a=k[b>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1)break a;if((a|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}}else a=0}while(0);h=(a|0)==0;do{if(s){if((k[t+12>>2]|0)==(k[t+16>>2]|0)){x=0;a=ta(k[(k[s>>2]|0)+36>>2]|0,t|0)|0;t=x;x=0;if(t&1)break a;if((a|0)==-1){k[c>>2]=0;z=29;break}}if(!h)z=30}else z=29}while(0);if((z|0)==29?h:0)z=30;if((z|0)==30)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(u)|0;a=k[w>>2]|0;k[w>>2]=0;if((a|0)!=0?(x=0,qa(k[A>>2]|0,a|0),A=x,x=0,A&1):0){A=Wa(0)|0;oc(A)}r=v;return h|0}}while(0);h=Wa()|0;zm(u)|0;a=k[w>>2]|0;k[w>>2]=0;if(!a)y=h;else z=36}else{h=Wa()|0;k[w>>2]=0;z=36}if((z|0)==36){x=0;qa(k[A>>2]|0,a|0);A=x;x=0;if(A&1){A=Wa(0)|0;oc(A)}else y=h}fb(y|0);return 0}function bs(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;z=r;r=r+112|0;m=z+100|0;n=z+88|0;o=z+76|0;p=z+64|0;q=z+52|0;s=z+48|0;t=z+36|0;u=z+24|0;v=z+12|0;w=z;do{if(a){a=Ss(b,43828)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](m,a);w=k[m>>2]|0;i[c>>0]=w;i[c+1>>0]=w>>8;i[c+2>>0]=w>>16;i[c+3>>0]=w>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;Sm(n);Mb[k[(k[a>>2]|0)+28>>2]&127](o,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[h>>2]=k[o>>2];k[h+4>>2]=k[o+4>>2];k[h+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;Sm(o);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[d>>0]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[e>>0]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](p,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}k[f>>2]=k[p>>2];k[f+4>>2]=k[p+4>>2];k[f+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);Mb[k[(k[a>>2]|0)+24>>2]&127](q,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;Sm(q);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(b,43764)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](s,a);s=k[s>>2]|0;i[c>>0]=s;i[c+1>>0]=s>>8;i[c+2>>0]=s>>16;i[c+3>>0]=s>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](t,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[j>>2]=k[t>>2];k[j+4>>2]=k[t+4>>2];k[j+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;Sm(t);Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;Sm(u);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[d>>0]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[e>>0]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](v,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}k[f>>2]=k[v>>2];k[f+4>>2]=k[v+4>>2];k[f+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[a>>2]|0)+24>>2]&127](w,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[w>>2];k[g+4>>2]=k[w+4>>2];k[g+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;Sm(w);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}}while(0);k[l>>2]=y;r=z;return}function cs(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;e=i[a>>0]|0;g=a+4|0;f=k[g>>2]|0;a:do{if(((e&1)==0?(e&255)>>>1:f)|0){if((b|0)!=(c|0)){e=c+-4|0;if(e>>>0>b>>>0){f=b;do{h=k[f>>2]|0;k[f>>2]=k[e>>2];k[e>>2]=h;f=f+4|0;e=e+-4|0}while(f>>>0>>0)}e=i[a>>0]|0;f=k[g>>2]|0}h=(e&1)==0;g=h?a+1|0:k[a+8>>2]|0;c=c+-4|0;a=g+(h?(e&255)>>>1:f)|0;f=i[g>>0]|0;e=f<<24>>24<1|f<<24>>24==127;b:do{if(c>>>0>b>>>0){while(1){if(!e?(f<<24>>24|0)!=(k[b>>2]|0):0)break;g=(a-g|0)>1?g+1|0:g;b=b+4|0;f=i[g>>0]|0;e=f<<24>>24<1|f<<24>>24==127;if(b>>>0>=c>>>0)break b}k[d>>2]=4;break a}}while(0);if(!e?((k[c>>2]|0)+-1|0)>>>0>=f<<24>>24>>>0:0)k[d>>2]=4}}while(0);return}function ds(a){a=a|0;return}function es(a){a=a|0;mj(a);return}function fs(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;B=r;r=r+576|0;w=B+424|0;A=B;a=B+24|0;D=B+16|0;y=B+12|0;C=B+8|0;n=B+464|0;j=B+4|0;z=B+468|0;k[D>>2]=a;F=D+4|0;k[F>>2]=189;l=a+400|0;x=0;h=ta(68,e|0)|0;v=x;x=0;if(!(v&1)){k[C>>2]=h;x=0;a=Aa(37,C|0,44212)|0;v=x;x=0;a:do{if(!(v&1)?(i[n>>0]=0,k[j>>2]=k[c>>2],m=k[e+4>>2]|0,x=0,k[w>>2]=k[j>>2],m=ua(2,b|0,w|0,d|0,C|0,m|0,f|0,n|0,a|0,D|0,y|0,l|0)|0,v=x,x=0,!(v&1)):0){b:do{if(m){x=0;Ea(k[(k[a>>2]|0)+48>>2]|0,a|0,59007,59017,w|0)|0;v=x;x=0;if(v&1){G=10;break a}j=k[y>>2]|0;l=k[D>>2]|0;a=j-l|0;if((a|0)>392){a=Pl((a>>2)+2|0)|0;h=a;if(!a){x=0;Ga(6);v=x;x=0;if(!(v&1)){a=0;G=13}}else G=13}else{h=0;a=z;G=13}do{if((G|0)==13){if(i[n>>0]|0){i[a>>0]=45;a=a+1|0}u=w+40|0;v=w;if(l>>>0>>0){m=w+4|0;d=m+4|0;e=d+4|0;n=e+4|0;o=n+4|0;p=o+4|0;q=p+4|0;s=q+4|0;t=s+4|0;do{j=k[l>>2]|0;do{if((k[w>>2]|0)!=(j|0))if((k[m>>2]|0)!=(j|0))if((k[d>>2]|0)!=(j|0))if((k[e>>2]|0)!=(j|0))if((k[n>>2]|0)==(j|0))j=n;else{if((k[o>>2]|0)==(j|0)){j=o;break}if((k[p>>2]|0)==(j|0)){j=p;break}if((k[q>>2]|0)==(j|0)){j=q;break}if((k[s>>2]|0)==(j|0)){j=s;break}j=(k[t>>2]|0)==(j|0)?t:u}else j=e;else j=d;else j=m;else j=w}while(0);i[a>>0]=i[59007+(j-v>>2)>>0]|0;l=l+4|0;a=a+1|0}while(l>>>0<(k[y>>2]|0)>>>0)}i[a>>0]=0;k[A>>2]=g;if((jl(z,58987,A)|0)!=1?(x=0,qa(190,58991),g=x,x=0,g&1):0)break;if(h)Ql(h);break b}}while(0);a=Wa()|0;if(!h){j=a;h=D;break a}Ql(h);j=a;h=D;break a}}while(0);a=k[b>>2]|0;do{if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}}else a=k[h>>2]|0;if((a|0)==-1){k[b>>2]=0;j=1;break}else{j=(k[b>>2]|0)==0;break}}else j=1}while(0);a=k[c>>2]|0;do{if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}}else a=k[h>>2]|0;if((a|0)!=-1)if(j)break;else{G=40;break}else{k[c>>2]=0;G=38;break}}else G=38}while(0);if((G|0)==38?j:0)G=40;if((G|0)==40)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(k[C>>2]|0)|0;a=k[D>>2]|0;k[D>>2]=0;if((a|0)!=0?(x=0,qa(k[F>>2]|0,a|0),G=x,x=0,G&1):0){G=Wa(0)|0;oc(G)}r=B;return h|0}else G=10}while(0);if((G|0)==10){j=Wa()|0;h=D}zm(k[C>>2]|0)|0;a=k[h>>2]|0;k[h>>2]=0;if(!a)E=j;else{h=k[F>>2]|0;G=47}}else{j=Wa()|0;k[D>>2]=0;h=189;G=47}if((G|0)==47){x=0;qa(h|0,a|0);G=x;x=0;if(G&1){G=Wa(0)|0;oc(G)}else E=j}fb(E|0);return 0}function gs(a,b,c,d,e,f,g,h,j,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;var o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=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;Y=r;r=r+512|0;K=Y+96|0;o=Y+104|0;_=Y+88|0;O=Y+80|0;N=Y+76|0;P=Y+504|0;L=Y+72|0;Q=Y+68|0;T=Y+56|0;X=Y+44|0;V=Y+32|0;U=Y+20|0;W=Y+8|0;M=Y+4|0;S=Y;k[K>>2]=n;k[_>>2]=o;Z=_+4|0;k[Z>>2]=189;k[O>>2]=o;k[N>>2]=o+400;k[T>>2]=0;k[T+4>>2]=0;k[T+8>>2]=0;k[X>>2]=0;k[X+4>>2]=0;k[X+8>>2]=0;k[V>>2]=0;k[V+4>>2]=0;k[V+8>>2]=0;k[U>>2]=0;k[U+4>>2]=0;k[U+8>>2]=0;k[W>>2]=0;k[W+4>>2]=0;k[W+8>>2]=0;x=0;za(2,c|0,d|0,P|0,L|0,Q|0,T|0,X|0,V|0,U|0,M|0);J=x;x=0;a:do{if(J&1)c=Wa()|0;else{k[m>>2]=k[j>>2];G=V+4|0;H=U+4|0;I=U+8|0;J=V+8|0;z=(e&512|0)!=0;A=X+8|0;B=X+4|0;C=W+4|0;D=W+8|0;E=P+3|0;F=T+4|0;y=0;q=0;b:while(1){n=k[a>>2]|0;do{if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[c>>2]|0;if((n|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);c=k[b>>2]|0;do{if(c){n=k[c+12>>2]|0;if((n|0)==(k[c+16>>2]|0)){x=0;n=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[n>>2]|0;if((n|0)!=-1)if(d){w=c;break}else{s=o;R=244;break b}else{k[b>>2]=0;R=16;break}}else R=16}while(0);if((R|0)==16){R=0;if(d){s=o;R=244;break}else w=0}c:do{switch(i[P+y>>0]|0){case 1:{if((y|0)!=3){n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=26;break b}}else n=k[c>>2]|0;x=0;n=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,n|0)|0;R=x;x=0;if(R&1){R=26;break b}if(!n){R=42;break b}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=26;break b}}else{k[c>>2]=d+4;n=k[d>>2]|0}x=0;ra(92,W|0,n|0);R=x;x=0;if(R&1){R=26;break b}else{n=w;e=w;R=44}}else n=o;break}case 0:{if((y|0)==3)n=o;else{n=w;e=w;R=44}break}case 3:{c=i[V>>0]|0;n=(c&1)==0?(c&255)>>>1:k[G>>2]|0;d=i[U>>0]|0;e=(d&1)==0?(d&255)>>>1:k[H>>2]|0;if((n|0)==(0-e|0))n=o;else{if(!n){n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}c=i[U>>0]|0}else{n=k[c>>2]|0;c=d}if((n|0)!=(k[((c&1)==0?H:k[I>>2]|0)>>2]|0)){n=o;break c}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;i[g>>0]=1;w=i[U>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[H>>2]|0)>>>0>1?U:q;break c}p=k[a>>2]|0;s=k[p+12>>2]|0;d=k[p+16>>2]|0;n=(s|0)==(d|0);if(!e){if(n){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}c=i[V>>0]|0}else n=k[s>>2]|0;if((n|0)!=(k[((c&1)==0?G:k[J>>2]|0)>>2]|0)){i[g>>0]=1;n=o;break c}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;w=i[V>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[G>>2]|0)>>>0>1?V:q;break c}if(n){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}d=k[a>>2]|0;c=i[V>>0]|0;p=d;s=k[d+12>>2]|0;d=k[d+16>>2]|0}else n=k[s>>2]|0;e=p+12|0;d=(s|0)==(d|0);if((n|0)==(k[((c&1)==0?G:k[J>>2]|0)>>2]|0)){if(d){x=0;ta(k[(k[p>>2]|0)+40>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[e>>2]=s+4;w=i[V>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[G>>2]|0)>>>0>1?V:q;break c}if(d){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[s>>2]|0;if((n|0)!=(k[((i[U>>0]&1)==0?H:k[I>>2]|0)>>2]|0)){R=107;break b}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;i[g>>0]=1;w=i[U>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[H>>2]|0)>>>0>1?U:q}break}case 2:{if(!(y>>>0<2|(q|0)!=0)?!(z|(y|0)==2&(i[E>>0]|0)!=0):0){n=o;q=0;break c}e=i[X>>0]|0;d=k[A>>2]|0;c=(e&1)==0?B:d;n=c;d:do{if((y|0)!=0?(l[P+(y+-1)>>0]|0)<2:0){v=(e&1)==0;e:do{if((c|0)!=((v?B:d)+((v?(e&255)>>>1:k[B>>2]|0)<<2)|0)){e=c;while(1){x=0;c=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,k[e>>2]|0)|0;v=x;x=0;if(v&1){R=23;break b}if(!c)break;e=e+4|0;n=e;c=i[X>>0]|0;d=k[A>>2]|0;v=(c&1)==0;if((e|0)==((v?B:d)+((v?(c&255)>>>1:k[B>>2]|0)<<2)|0)){e=c;break e}}e=i[X>>0]|0;d=k[A>>2]|0}}while(0);s=(e&1)==0?B:d;c=s;t=n-c>>2;u=i[W>>0]|0;p=(u&1)==0;u=p?(u&255)>>>1:k[C>>2]|0;if(u>>>0>=t>>>0){p=p?C:k[D>>2]|0;v=p+(u<<2)|0;if(!t)c=n;else{p=p+(u-t<<2)|0;while(1){if((k[p>>2]|0)!=(k[s>>2]|0))break d;p=p+4|0;if((p|0)==(v|0)){c=n;break}else s=s+4|0}}}}else c=n}while(0);n=(e&1)==0;n=(n?B:d)+((n?(e&255)>>>1:k[B>>2]|0)<<2)|0;f:do{if((c|0)!=(n|0)){p=w;e=w;n=c;while(1){c=k[a>>2]|0;do{if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=22;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);do{if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=22;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(p|0)==0){c=p;s=p;break}else break f;else{k[b>>2]=0;c=0;R=136;break}}else{c=p;R=136}}while(0);if((R|0)==136){R=0;if(d)break f;else s=0}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=22;break b}}else d=k[e>>2]|0;if((d|0)!=(k[n>>2]|0))break f;d=k[a>>2]|0;e=d+12|0;p=k[e>>2]|0;if((p|0)==(k[d+16>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=22;break b}}else k[e>>2]=p+4;n=n+4|0;d=i[X>>0]|0;w=(d&1)==0;d=(w?B:k[A>>2]|0)+((w?(d&255)>>>1:k[B>>2]|0)<<2)|0;if((n|0)==(d|0)){n=d;break}else{p=c;e=s}}}}while(0);if(z?(w=i[X>>0]|0,v=(w&1)==0,(n|0)!=((v?B:k[A>>2]|0)+((v?(w&255)>>>1:k[B>>2]|0)<<2)|0)):0){R=148;break b}else n=o;break}case 4:{u=k[Q>>2]|0;t=w;p=w;n=o;c=0;g:while(1){d=k[a>>2]|0;do{if(d){e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=25;break b}}else d=k[e>>2]|0;if((d|0)==-1){k[a>>2]=0;e=1;break}else{e=(k[a>>2]|0)==0;break}}else e=1}while(0);do{if(p){d=k[p+12>>2]|0;if((d|0)==(k[p+16>>2]|0)){x=0;d=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(e^(t|0)==0){d=t;s=t;break}else{o=t;break g}else{k[b>>2]=0;d=0;R=162;break}}else{d=t;R=162}}while(0);if((R|0)==162){R=0;if(e){o=d;break}else s=0}e=k[a>>2]|0;o=k[e+12>>2]|0;if((o|0)==(k[e+16>>2]|0)){x=0;e=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=25;break b}}else e=k[o>>2]|0;x=0;o=va(k[(k[h>>2]|0)+12>>2]|0,h|0,2048,e|0)|0;w=x;x=0;if(w&1){R=25;break b}if(o){o=k[m>>2]|0;if((o|0)==(k[K>>2]|0)){x=0;Fa(14,j|0,m|0,K|0);w=x;x=0;if(w&1){R=25;break b}o=k[m>>2]|0}k[m>>2]=o+4;k[o>>2]=e;c=c+1|0}else{w=i[T>>0]|0;if(!((e|0)==(u|0)&((c|0)!=0?(((w&1)==0?(w&255)>>>1:k[F>>2]|0)|0)!=0:0))){o=d;break}if((n|0)==(k[N>>2]|0)){x=0;Fa(13,_|0,O|0,N|0);w=x;x=0;if(w&1){R=25;break b}n=k[O>>2]|0}w=n+4|0;k[O>>2]=w;k[n>>2]=c;n=w;c=0}e=k[a>>2]|0;o=e+12|0;p=k[o>>2]|0;if((p|0)==(k[e+16>>2]|0)){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=25;break b}else{t=d;p=s;continue}}else{k[o>>2]=p+4;t=d;p=s;continue}}if((c|0)!=0?(k[_>>2]|0)!=(n|0):0){if((n|0)==(k[N>>2]|0)){x=0;Fa(13,_|0,O|0,N|0);w=x;x=0;if(w&1){R=26;break b}n=k[O>>2]|0}w=n+4|0;k[O>>2]=w;k[n>>2]=c;n=w}s=k[M>>2]|0;if((s|0)>0){c=k[a>>2]|0;do{if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);do{if(o){c=k[o+12>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;c=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d)break;else{R=206;break b}else{k[b>>2]=0;R=200;break}}else R=200}while(0);if((R|0)==200){R=0;if(d){R=206;break b}else o=0}c=k[a>>2]|0;d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[d>>2]|0;if((c|0)!=(k[L>>2]|0)){R=206;break b}c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[d>>2]=e+4;if((s|0)>0){p=o;e=o;t=s;while(1){c=k[a>>2]|0;do{if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=24;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);do{if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=24;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(p|0)==0){c=p;s=p;break}else{R=231;break b}else{k[b>>2]=0;c=0;R=224;break}}else{c=p;R=224}}while(0);if((R|0)==224){R=0;if(d){R=231;break b}else s=0}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=24;break b}}else d=k[e>>2]|0;x=0;d=va(k[(k[h>>2]|0)+12>>2]|0,h|0,2048,d|0)|0;w=x;x=0;if(w&1){R=24;break b}if(!d){R=231;break b}if((k[m>>2]|0)==(k[K>>2]|0)?(x=0,Fa(14,j|0,m|0,K|0),w=x,x=0,w&1):0){R=24;break b}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=24;break b}}else d=k[e>>2]|0;e=k[m>>2]|0;k[m>>2]=e+4;k[e>>2]=d;d=t;t=t+-1|0;k[M>>2]=t;e=k[a>>2]|0;o=e+12|0;p=k[o>>2]|0;if((p|0)==(k[e+16>>2]|0)){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=24;break b}}else k[o>>2]=p+4;if((d|0)<=1)break;else{p=c;e=s}}}}if((k[m>>2]|0)==(k[j>>2]|0)){R=242;break b}break}default:n=o}}while(0);h:do{if((R|0)==44)while(1){R=0;c=k[a>>2]|0;do{if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=21;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);do{if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=21;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(n|0)==0){p=n;e=n;break}else{n=o;break h}else{k[b>>2]=0;n=0;R=57;break}}else R=57}while(0);if((R|0)==57){R=0;if(d){n=o;break h}else{p=n;e=0}}n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=21;break b}}else n=k[c>>2]|0;x=0;n=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,n|0)|0;w=x;x=0;if(w&1){R=21;break b}if(!n){n=o;break h}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=21;break b}}else{k[c>>2]=d+4;n=k[d>>2]|0}x=0;ra(92,W|0,n|0);R=x;x=0;if(R&1){R=21;break b}else{n=p;R=44}}}while(0);y=y+1|0;if(y>>>0>=4){s=n;R=244;break}else o=n}i:switch(R|0){case 21:{c=Wa()|0;break a}case 22:{c=Wa()|0;break a}case 23:{c=Wa()|0;break a}case 24:{c=Wa()|0;break a}case 25:{c=Wa()|0;break a}case 26:{c=Wa()|0;break a}case 42:{k[f>>2]=k[f>>2]|4;c=0;break}case 107:{k[f>>2]=k[f>>2]|4;c=0;break}case 148:{k[f>>2]=k[f>>2]|4;c=0;break}case 206:{k[f>>2]=k[f>>2]|4;c=0;break}case 231:{k[f>>2]=k[f>>2]|4;c=0;break}case 242:{k[f>>2]=k[f>>2]|4;c=0;break}case 244:{j:do{if(q){o=q+4|0;p=q+8|0;e=1;k:while(1){n=i[q>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[o>>2]|0;if(e>>>0>=n>>>0)break j;n=k[a>>2]|0;do{if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break k}}else n=k[c>>2]|0;if((n|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);n=k[b>>2]|0;do{if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break k}}else n=k[c>>2]|0;if((n|0)!=-1)if(d)break;else{R=271;break k}else{k[b>>2]=0;R=263;break}}else R=263}while(0);if((R|0)==263?(R=0,d):0){R=271;break}n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break}}else n=k[c>>2]|0;if(!(i[q>>0]&1))c=o;else c=k[p>>2]|0;if((n|0)!=(k[c+(e<<2)>>2]|0)){R=271;break}n=e+1|0;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;m=x;x=0;if(m&1){R=20;break}else{e=n;continue}}else{k[d>>2]=e+4;e=n;continue}}if((R|0)==20){c=Wa()|0;break a}else if((R|0)==271){k[f>>2]=k[f>>2]|4;c=0;break i}}}while(0);n=k[_>>2]|0;if((n|0)!=(s|0)?(k[S>>2]=0,cs(T,n,s,S),(k[S>>2]|0)!=0):0){k[f>>2]=k[f>>2]|4;c=0}else c=1;break}}en(W);en(U);en(V);en(X);Sm(T);n=k[_>>2]|0;k[_>>2]=0;if((n|0)!=0?(x=0,qa(k[Z>>2]|0,n|0),_=x,x=0,_&1):0){_=Wa(0)|0;oc(_)}r=Y;return c|0}}while(0);en(W);en(U);en(V);en(X);Sm(T);n=k[_>>2]|0;k[_>>2]=0;if((n|0)!=0?(x=0,qa(k[Z>>2]|0,n|0),_=x,x=0,_&1):0){_=Wa(0)|0;oc(_)}fb(c|0);return 0}function hs(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;v=r;r=r+432|0;h=v+424|0;a=v+24|0;y=v+16|0;q=v+8|0;n=v+4|0;o=v+428|0;j=v;k[y>>2]=a;A=y+4|0;k[A>>2]=189;l=a+400|0;x=0;u=ta(68,e|0)|0;m=x;x=0;if(!(m&1)){k[n>>2]=u;x=0;m=Aa(37,n|0,44212)|0;a=x;x=0;a:do{if(!(a&1)?(i[o>>0]=0,s=k[c>>2]|0,k[j>>2]=s,p=k[e+4>>2]|0,t=s,x=0,k[h>>2]=k[j>>2],p=ua(2,b|0,h|0,d|0,n|0,p|0,f|0,o|0,m|0,y|0,q|0,l|0)|0,e=x,x=0,!(e&1)):0){if(p){if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;if(i[o>>0]|0){x=0;a=Aa(k[(k[m>>2]|0)+44>>2]|0,m|0,45)|0;e=x;x=0;if(e&1)break;x=0;ra(92,g|0,a|0);e=x;x=0;if(e&1)break}x=0;j=Aa(k[(k[m>>2]|0)+44>>2]|0,m|0,48)|0;e=x;x=0;if(e&1)break;a=k[y>>2]|0;l=k[q>>2]|0;h=l+-4|0;b:do{if(a>>>0>>0)do{if((k[a>>2]|0)!=(j|0))break b;a=a+4|0}while(a>>>0>>0)}while(0);x=0;va(33,g|0,a|0,l|0)|0;g=x;x=0;if(g&1)break}a=k[b>>2]|0;do{if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1)break a}else a=k[h>>2]|0;if((a|0)==-1){k[b>>2]=0;h=1;break}else{h=(k[b>>2]|0)==0;break}}else h=1}while(0);do{if(s){a=k[t+12>>2]|0;if((a|0)==(k[t+16>>2]|0)){x=0;a=ta(k[(k[s>>2]|0)+36>>2]|0,t|0)|0;t=x;x=0;if(t&1)break a}else a=k[a>>2]|0;if((a|0)!=-1)if(h)break;else{z=32;break}else{k[c>>2]=0;z=30;break}}else z=30}while(0);if((z|0)==30?h:0)z=32;if((z|0)==32)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(u)|0;a=k[y>>2]|0;k[y>>2]=0;if((a|0)!=0?(x=0,qa(k[A>>2]|0,a|0),A=x,x=0,A&1):0){A=Wa(0)|0;oc(A)}r=v;return h|0}}while(0);h=Wa()|0;zm(u)|0;a=k[y>>2]|0;k[y>>2]=0;if(!a)w=h;else z=38}else{h=Wa()|0;k[y>>2]=0;z=38}if((z|0)==38){x=0;qa(k[A>>2]|0,a|0);A=x;x=0;if(A&1){A=Wa(0)|0;oc(A)}else w=h}fb(w|0);return 0}function is(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;z=r;r=r+112|0;m=z+100|0;n=z+88|0;o=z+76|0;p=z+64|0;q=z+52|0;s=z+48|0;t=z+36|0;u=z+24|0;v=z+12|0;w=z;do{if(a){a=Ss(b,43956)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](m,a);w=k[m>>2]|0;i[c>>0]=w;i[c+1>>0]=w>>8;i[c+2>>0]=w>>16;i[c+3>>0]=w>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;en(n);Mb[k[(k[a>>2]|0)+28>>2]&127](o,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[h>>2]=k[o>>2];k[h+4>>2]=k[o+4>>2];k[h+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;en(o);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[d>>2]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[e>>2]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](p,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}k[f>>2]=k[p>>2];k[f+4>>2]=k[p+4>>2];k[f+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);Mb[k[(k[a>>2]|0)+24>>2]&127](q,a);if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;x=0;ra(93,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;en(q);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(b,43892)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](s,a);s=k[s>>2]|0;i[c>>0]=s;i[c+1>>0]=s>>8;i[c+2>>0]=s>>16;i[c+3>>0]=s>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](t,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[j>>2]=k[t>>2];k[j+4>>2]=k[t+4>>2];k[j+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;en(t);Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;en(u);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[d>>2]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[e>>2]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](v,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}k[f>>2]=k[v>>2];k[f+4>>2]=k[v+4>>2];k[f+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[a>>2]|0)+24>>2]&127](w,a);if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;x=0;ra(93,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[w>>2];k[g+4>>2]=k[w+4>>2];k[g+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;en(w);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}}while(0);k[l>>2]=y;r=z;return}function js(a){a=a|0;return}function ks(a){a=a|0;mj(a);return}function ls(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;D=r;r=r+384|0;u=D+8|0;g=D;j=D+284|0;l=D+72|0;h=D+184|0;F=D+68|0;A=D+80|0;w=D+77|0;B=D+76|0;G=D+56|0;I=D+44|0;H=D+32|0;m=D+28|0;t=D+84|0;z=D+24|0;y=D+20|0;v=D+16|0;k[l>>2]=j;p[u>>3]=f;j=il(j,100,59018,u)|0;do{if(j>>>0>99){x=0;a=Da(3)|0;C=x;x=0;if(!(C&1)?(x=0,p[g>>3]=f,q=Ea(17,l|0,a|0,59018,g|0)|0,C=x,x=0,!(C&1)):0){a=k[l>>2]|0;if(!a){x=0;Ga(6);C=x;x=0;if(C&1){a=0;g=0;C=7;break}a=k[l>>2]|0}h=Pl(q)|0;g=h;if(!h){x=0;Ga(6);C=x;x=0;if(C&1)C=7;else{s=0;C=10}}else{s=h;C=10}}else{a=0;g=0;C=7}}else{g=0;a=0;s=h;q=j;C=10}}while(0);if((C|0)==10){x=0;h=ta(68,d|0)|0;o=x;x=0;if(o&1)C=7;else{k[F>>2]=h;x=0;o=Aa(37,F|0,44220)|0;n=x;x=0;if(!(n&1)?(n=k[l>>2]|0,x=0,Ea(k[(k[o>>2]|0)+32>>2]|0,o|0,n|0,n+q|0,s|0)|0,n=x,x=0,!(n&1)):0){if(!q)n=0;else n=(i[k[l>>2]>>0]|0)==45;k[G>>2]=0;k[G+4>>2]=0;k[G+8>>2]=0;k[I>>2]=0;k[I+4>>2]=0;k[I+8>>2]=0;k[H>>2]=0;k[H+4>>2]=0;k[H+8>>2]=0;x=0;za(3,c|0,n|0,F|0,A|0,w|0,B|0,G|0,I|0,H|0,m|0);c=x;x=0;if(!(c&1)){m=k[m>>2]|0;if((q|0)>(m|0)){c=i[H>>0]|0;j=i[I>>0]|0;j=(q-m<<1|1)+m+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}else{c=i[H>>0]|0;j=i[I>>0]|0;j=m+2+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}if(j>>>0>100){j=Pl(j)|0;l=j;if(!j){x=0;Ga(6);t=x;x=0;if(!(t&1)){j=0;C=26}}else C=26}else{l=0;j=t;C=26}if((C|0)==26){x=0;wa(1,j|0,z|0,y|0,k[d+4>>2]|0,s|0,s+q|0,o|0,n|0,A|0,i[w>>0]|0,i[B>>0]|0,G|0,I|0,H|0,m|0);B=x;x=0;if(!(B&1)?(k[v>>2]=k[b>>2],b=k[z>>2]|0,E=k[y>>2]|0,x=0,k[u>>2]=k[v>>2],E=sa(39,u|0,j|0,b|0,E|0,d|0,e|0)|0,b=x,x=0,!(b&1)):0){if(l){Ql(l);h=k[F>>2]|0}Sm(H);Sm(I);Sm(G);zm(h)|0;if(g)Ql(g);if(a)Ql(a);r=D;return E|0}}j=Wa()|0;if(l){Ql(l);h=k[F>>2]|0}}else j=Wa()|0;Sm(H);Sm(I);Sm(G)}else j=Wa()|0;zm(h)|0}}if((C|0)==7)j=Wa()|0;if(g)Ql(g);if(a)Ql(a);fb(j|0);return 0}function ms(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;D=r;r=r+112|0;o=D+108|0;p=D+96|0;t=D+92|0;u=D+80|0;v=D+68|0;w=D+56|0;y=D+52|0;z=D+40|0;A=D+36|0;B=D+24|0;q=D+12|0;s=D;do{if(a){a=Ss(c,43828)|0;c=k[a>>2]|0;do{if(b){Mb[k[c+44>>2]&127](o,a);b=k[o>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](p,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[p>>2];k[j+4>>2]=k[p+4>>2];k[j+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);n=a;break}}else{Mb[k[c+40>>2]&127](t,a);b=k[t>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[u>>2];k[j+4>>2]=k[u+4>>2];k[j+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;Sm(u);n=a;break}}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[e>>0]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[f>>0]=j;Mb[k[(k[n>>2]|0)+20>>2]&127](v,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}k[g>>2]=k[v>>2];k[g+4>>2]=k[v+4>>2];k[g+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[n>>2]|0)+24>>2]&127](w,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[w>>2];k[h+4>>2]=k[w+4>>2];k[h+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;Sm(w);C=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(c,43764)|0;c=k[a>>2]|0;do{if(b){Mb[k[c+44>>2]&127](y,a);b=k[y>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](z,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[z>>2];k[j+4>>2]=k[z+4>>2];k[j+8>>2]=k[z+8>>2];k[z>>2]=0;k[z+4>>2]=0;k[z+8>>2]=0;Sm(z);m=a;break}}else{Mb[k[c+40>>2]&127](A,a);b=k[A>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](B,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[B>>2];k[j+4>>2]=k[B+4>>2];k[j+8>>2]=k[B+8>>2];k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;Sm(B);m=a;break}}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[e>>0]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[f>>0]=j;Mb[k[(k[m>>2]|0)+20>>2]&127](q,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;Sm(q);Mb[k[(k[m>>2]|0)+24>>2]&127](s,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[s>>2];k[h+4>>2]=k[s+4>>2];k[h+8>>2]=k[s+8>>2];k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;Sm(s);C=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}}while(0);k[l>>2]=C;r=D;return}function ns(a,b,c,d,e,f,g,h,l,m,n,o,p,q,r){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var 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;k[c>>2]=a;N=q+4|0;O=q+8|0;P=q+1|0;H=p+4|0;I=(d&512|0)==0;J=p+8|0;K=p+1|0;L=g+8|0;M=(r|0)>0;A=o+4|0;B=o+8|0;C=o+1|0;D=r+1|0;F=-2-r-((r|0)<0?~r:-1)|0;G=(r|0)>0;z=0;do{switch(i[l+z>>0]|0){case 0:{k[b>>2]=k[c>>2];break}case 1:{k[b>>2]=k[c>>2];x=Vb[k[(k[g>>2]|0)+28>>2]&63](g,32)|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x;break}case 3:{y=i[q>>0]|0;s=(y&1)==0;if((s?(y&255)>>>1:k[N>>2]|0)|0){x=i[(s?P:k[O>>2]|0)>>0]|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x}break}case 2:{u=i[p>>0]|0;s=(u&1)==0;u=s?(u&255)>>>1:k[H>>2]|0;if(!(I|(u|0)==0)){t=s?K:k[J>>2]|0;v=t+u|0;s=k[c>>2]|0;if(u)do{i[s>>0]=i[t>>0]|0;t=t+1|0;s=s+1|0}while((t|0)!=(v|0));k[c>>2]=s}break}case 4:{s=k[c>>2]|0;e=h?e+1|0:e;w=e;v=k[L>>2]|0;a:do{if(e>>>0>>0){t=e;do{u=i[t>>0]|0;if(u<<24>>24<=-1)break a;if(!(j[v+(u<<24>>24<<1)>>1]&2048))break a;t=t+1|0}while(t>>>0>>0)}else t=e}while(0);u=t;if(M){x=-2-u-~(u>>>0>w>>>0?w:u)|0;x=F>>>0>x>>>0?F:x;if(t>>>0>e>>>0&G){u=t;w=r;while(1){u=u+-1|0;y=i[u>>0]|0;v=k[c>>2]|0;k[c>>2]=v+1;i[v>>0]=y;v=(w|0)>1;if(!(u>>>0>e>>>0&v))break;else w=w+-1|0}}else v=G;y=D+x|0;u=t+(x+1)|0;if(v)w=Vb[k[(k[g>>2]|0)+28>>2]&63](g,48)|0;else w=0;t=k[c>>2]|0;k[c>>2]=t+1;if((y|0)>0){v=y;while(1){i[t>>0]=w;t=k[c>>2]|0;k[c>>2]=t+1;if((v|0)>1)v=v+-1|0;else break}}i[t>>0]=m}else u=t;if((u|0)!=(e|0)){y=i[o>>0]|0;t=(y&1)==0;if(!((t?(y&255)>>>1:k[A>>2]|0)|0))t=-1;else t=i[(t?C:k[B>>2]|0)>>0]|0;if((u|0)!=(e|0)){v=0;w=0;while(1){if((w|0)==(t|0)){y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=n;v=v+1|0;y=i[o>>0]|0;t=(y&1)==0;if(v>>>0<(t?(y&255)>>>1:k[A>>2]|0)>>>0){t=i[(t?C:k[B>>2]|0)+v>>0]|0;t=t<<24>>24==127?-1:t<<24>>24;w=0}else{t=w;w=0}}u=u+-1|0;x=i[u>>0]|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x;if((u|0)==(e|0))break;else w=w+1|0}}}else{x=Vb[k[(k[g>>2]|0)+28>>2]&63](g,48)|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x}t=k[c>>2]|0;if((s|0)!=(t|0)?(E=t+-1|0,s>>>0>>0):0){t=E;do{y=i[s>>0]|0;i[s>>0]=i[t>>0]|0;i[t>>0]=y;s=s+1|0;t=t+-1|0}while(s>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);t=i[q>>0]|0;e=(t&1)==0;t=e?(t&255)>>>1:k[N>>2]|0;if(t>>>0>1){s=e?P:k[O>>2]|0;u=s+t|0;e=k[c>>2]|0;if((t|0)!=1){s=s+1|0;do{i[e>>0]=i[s>>0]|0;e=e+1|0;s=s+1|0}while((s|0)!=(u|0))}k[c>>2]=e}switch(d&176|0){case 32:{k[b>>2]=k[c>>2];break}case 16:break;default:k[b>>2]=a}return}function os(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;z=r;r=r+176|0;p=z+56|0;B=z+52|0;w=z+64|0;t=z+61|0;y=z+60|0;C=z+40|0;E=z+28|0;D=z+16|0;l=z+12|0;o=z+68|0;v=z+8|0;u=z+4|0;q=z;a=tn(d)|0;k[B>>2]=a;x=0;s=Aa(37,B|0,44220)|0;n=x;x=0;do{if(n&1)F=13;else{m=i[f>>0]|0;g=(m&1)==0;n=f+4|0;if(!((g?(m&255)>>>1:k[n>>2]|0)|0))m=0;else{g=i[(g?f+1|0:k[f+8>>2]|0)>>0]|0;x=0;h=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,45)|0;m=x;x=0;if(m&1){F=13;break}m=g<<24>>24==h<<24>>24}k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;za(3,c|0,m|0,B|0,w|0,t|0,y|0,C|0,E|0,D|0,l|0);j=x;x=0;if(!(j&1)){j=i[f>>0]|0;c=k[n>>2]|0;g=(j&1)==0?(j&255)>>>1:c;l=k[l>>2]|0;if((g|0)>(l|0)){G=i[D>>0]|0;h=i[E>>0]|0;g=(g-l<<1|1)+l+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((h&1)==0?(h&255)>>>1:k[E+4>>2]|0)|0}else{G=i[D>>0]|0;g=i[E>>0]|0;g=l+2+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((g&1)==0?(g&255)>>>1:k[E+4>>2]|0)|0}if(g>>>0>100){g=Pl(g)|0;h=g;if(!g){x=0;Ga(6);G=x;x=0;if(!(G&1)){j=i[f>>0]|0;c=k[n>>2]|0;g=0;F=17}}else F=17}else{h=0;g=o;F=17}if((F|0)==17){G=(j&1)==0;f=G?f+1|0:k[f+8>>2]|0;x=0;wa(1,g|0,v|0,u|0,k[d+4>>2]|0,f|0,f+(G?(j&255)>>>1:c)|0,s|0,m|0,w|0,i[t>>0]|0,i[y>>0]|0,C|0,E|0,D|0,l|0);G=x;x=0;if(!(G&1)?(k[q>>2]=k[b>>2],G=k[v>>2]|0,A=k[u>>2]|0,x=0,k[p>>2]=k[q>>2],A=sa(39,p|0,g|0,G|0,A|0,d|0,e|0)|0,G=x,x=0,!(G&1)):0){if(h){Ql(h);a=k[B>>2]|0}Sm(D);Sm(E);Sm(C);zm(a)|0;r=z;return A|0}}g=Wa()|0;if(h){Ql(h);a=k[B>>2]|0}}else g=Wa()|0;Sm(D);Sm(E);Sm(C)}}while(0);if((F|0)==13)g=Wa()|0;zm(a)|0;fb(g|0);return 0}function ps(a){a=a|0;return}function qs(a){a=a|0;mj(a);return}function rs(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;D=r;r=r+992|0;u=D+8|0;g=D;j=D+888|0;l=D+880|0;h=D+480|0;F=D+76|0;A=D+884|0;w=D+72|0;B=D+68|0;G=D+56|0;I=D+44|0;H=D+32|0;m=D+28|0;t=D+80|0;z=D+24|0;y=D+20|0;v=D+16|0;k[l>>2]=j;p[u>>3]=f;j=il(j,100,59018,u)|0;do{if(j>>>0>99){x=0;a=Da(3)|0;C=x;x=0;if(!(C&1)?(x=0,p[g>>3]=f,q=Ea(17,l|0,a|0,59018,g|0)|0,C=x,x=0,!(C&1)):0){a=k[l>>2]|0;if(!a){x=0;Ga(6);C=x;x=0;if(C&1){a=0;g=0;C=7;break}a=k[l>>2]|0}h=Pl(q<<2)|0;g=h;if(!h){x=0;Ga(6);C=x;x=0;if(C&1)C=7;else{s=0;C=10}}else{s=h;C=10}}else{a=0;g=0;C=7}}else{g=0;a=0;s=h;q=j;C=10}}while(0);if((C|0)==10){x=0;h=ta(68,d|0)|0;o=x;x=0;if(o&1)C=7;else{k[F>>2]=h;x=0;o=Aa(37,F|0,44212)|0;n=x;x=0;if(!(n&1)?(n=k[l>>2]|0,x=0,Ea(k[(k[o>>2]|0)+48>>2]|0,o|0,n|0,n+q|0,s|0)|0,n=x,x=0,!(n&1)):0){if(!q)n=0;else n=(i[k[l>>2]>>0]|0)==45;k[G>>2]=0;k[G+4>>2]=0;k[G+8>>2]=0;k[I>>2]=0;k[I+4>>2]=0;k[I+8>>2]=0;k[H>>2]=0;k[H+4>>2]=0;k[H+8>>2]=0;x=0;za(4,c|0,n|0,F|0,A|0,w|0,B|0,G|0,I|0,H|0,m|0);c=x;x=0;if(!(c&1)){m=k[m>>2]|0;if((q|0)>(m|0)){c=i[H>>0]|0;j=i[I>>0]|0;j=(q-m<<1|1)+m+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}else{c=i[H>>0]|0;j=i[I>>0]|0;j=m+2+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}if(j>>>0>100){j=Pl(j<<2)|0;l=j;if(!j){x=0;Ga(6);t=x;x=0;if(!(t&1)){j=0;C=26}}else C=26}else{l=0;j=t;C=26}if((C|0)==26){x=0;wa(2,j|0,z|0,y|0,k[d+4>>2]|0,s|0,s+(q<<2)|0,o|0,n|0,A|0,k[w>>2]|0,k[B>>2]|0,G|0,I|0,H|0,m|0);B=x;x=0;if(!(B&1)?(k[v>>2]=k[b>>2],b=k[z>>2]|0,E=k[y>>2]|0,x=0,k[u>>2]=k[v>>2],E=sa(40,u|0,j|0,b|0,E|0,d|0,e|0)|0,b=x,x=0,!(b&1)):0){if(l){Ql(l);h=k[F>>2]|0}en(H);en(I);Sm(G);zm(h)|0;if(g)Ql(g);if(a)Ql(a);r=D;return E|0}}j=Wa()|0;if(l){Ql(l);h=k[F>>2]|0}}else j=Wa()|0;en(H);en(I);Sm(G)}else j=Wa()|0;zm(h)|0}}if((C|0)==7)j=Wa()|0;if(g)Ql(g);if(a)Ql(a);fb(j|0);return 0}function ss(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0;B=r;r=r+112|0;m=B+108|0;n=B+96|0;q=B+92|0;s=B+80|0;t=B+68|0;u=B+56|0;v=B+52|0;w=B+40|0;y=B+36|0;z=B+24|0;o=B+12|0;p=B;do{if(a){a=Ss(c,43956)|0;c=k[a>>2]|0;do{if(b){Mb[k[c+44>>2]&127](m,a);b=k[m>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;en(n);break}}else{Mb[k[c+40>>2]&127](q,a);b=k[q>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](s,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[s>>2];k[j+4>>2]=k[s+4>>2];k[j+8>>2]=k[s+8>>2];k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;en(s);break}}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[e>>2]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[f>>2]=j;Mb[k[(k[a>>2]|0)+20>>2]&127](t,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}k[g>>2]=k[t>>2];k[g+4>>2]=k[t+4>>2];k[g+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;Sm(t);Mb[k[(k[a>>2]|0)+24>>2]&127](u,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;en(u);A=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(c,43892)|0;c=k[a>>2]|0;do{if(b){Mb[k[c+44>>2]&127](v,a);b=k[v>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](w,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[w>>2];k[j+4>>2]=k[w+4>>2];k[j+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;en(w);break}}else{Mb[k[c+40>>2]&127](y,a);b=k[y>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](z,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[z>>2];k[j+4>>2]=k[z+4>>2];k[j+8>>2]=k[z+8>>2];k[z>>2]=0;k[z+4>>2]=0;k[z+8>>2]=0;en(z);break}}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[e>>2]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[f>>2]=j;Mb[k[(k[a>>2]|0)+20>>2]&127](o,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}k[g>>2]=k[o>>2];k[g+4>>2]=k[o+4>>2];k[g+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;Sm(o);Mb[k[(k[a>>2]|0)+24>>2]&127](p,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[p>>2];k[h+4>>2]=k[p+4>>2];k[h+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;en(p);A=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}}while(0);k[l>>2]=A;r=B;return}function ts(a,b,c,d,e,f,g,h,j,l,m,n,o,p,q){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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;k[c>>2]=a;J=p+4|0;K=p+8|0;C=o+4|0;D=(d&512|0)==0;E=o+8|0;F=(q|0)>0;G=n+4|0;H=n+8|0;I=n+1|0;A=(q|0)>0;z=0;do{switch(i[j+z>>0]|0){case 0:{k[b>>2]=k[c>>2];break}case 1:{k[b>>2]=k[c>>2];x=Vb[k[(k[g>>2]|0)+44>>2]&63](g,32)|0;y=k[c>>2]|0;k[c>>2]=y+4;k[y>>2]=x;break}case 3:{y=i[p>>0]|0;r=(y&1)==0;if((r?(y&255)>>>1:k[J>>2]|0)|0){x=k[(r?J:k[K>>2]|0)>>2]|0;y=k[c>>2]|0;k[c>>2]=y+4;k[y>>2]=x}break}case 2:{v=i[o>>0]|0;r=(v&1)==0;v=r?(v&255)>>>1:k[C>>2]|0;if(!(D|(v|0)==0)){r=r?C:k[E>>2]|0;t=r+(v<<2)|0;u=k[c>>2]|0;if(v){s=u;while(1){k[s>>2]=k[r>>2];r=r+4|0;if((r|0)==(t|0))break;else s=s+4|0}}k[c>>2]=u+(v<<2)}break}case 4:{r=k[c>>2]|0;e=h?e+4|0:e;a:do{if(e>>>0>>0){s=e;do{if(!(Qb[k[(k[g>>2]|0)+12>>2]&63](g,2048,k[s>>2]|0)|0))break a;s=s+4|0}while(s>>>0>>0)}else s=e}while(0);if(F){if(s>>>0>e>>>0&A){v=k[c>>2]|0;u=q;while(1){s=s+-4|0;t=v+4|0;k[v>>2]=k[s>>2];w=u+-1|0;u=(u|0)>1;if(s>>>0>e>>>0&u){v=t;u=w}else{v=w;break}}k[c>>2]=t;t=v}else{u=A;t=q}if(u)w=Vb[k[(k[g>>2]|0)+44>>2]&63](g,48)|0;else w=0;x=k[c>>2]|0;u=t+((t|0)<0?~t:-1)|0;if((t|0)>0){v=x;while(1){k[v>>2]=w;if((t|0)>1){v=v+4|0;t=t+-1|0}else break}}k[c>>2]=x+(u+2<<2);k[x+(u+1<<2)>>2]=l}if((s|0)==(e|0)){x=Vb[k[(k[g>>2]|0)+44>>2]&63](g,48)|0;y=k[c>>2]|0;s=y+4|0;k[c>>2]=s;k[y>>2]=x}else{x=i[n>>0]|0;t=(x&1)==0;y=k[G>>2]|0;if(!((t?(x&255)>>>1:y)|0))t=-1;else t=i[(t?I:k[H>>2]|0)>>0]|0;if((s|0)!=(e|0)){w=0;x=0;while(1){u=k[c>>2]|0;if((x|0)==(t|0)){v=u+4|0;k[c>>2]=v;k[u>>2]=m;w=w+1|0;u=i[n>>0]|0;t=(u&1)==0;if(w>>>0<(t?(u&255)>>>1:y)>>>0){t=i[(t?I:k[H>>2]|0)+w>>0]|0;u=v;t=t<<24>>24==127?-1:t<<24>>24;v=0}else{u=v;t=x;v=0}}else v=x;s=s+-4|0;x=k[s>>2]|0;k[c>>2]=u+4;k[u>>2]=x;if((s|0)==(e|0))break;else x=v+1|0}}s=k[c>>2]|0}if((r|0)!=(s|0)?(B=s+-4|0,r>>>0>>0):0){s=B;do{y=k[r>>2]|0;k[r>>2]=k[s>>2];k[s>>2]=y;r=r+4|0;s=s+-4|0}while(r>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);r=i[p>>0]|0;e=(r&1)==0;r=e?(r&255)>>>1:k[J>>2]|0;if(r>>>0>1){s=e?J:k[K>>2]|0;e=s+4|0;s=s+(r<<2)|0;t=k[c>>2]|0;u=s-e|0;if((r|0)!=1){r=t;while(1){k[r>>2]=k[e>>2];e=e+4|0;if((e|0)==(s|0))break;else r=r+4|0}}k[c>>2]=t+(u>>>2<<2)}switch(d&176|0){case 32:{k[b>>2]=k[c>>2];break}case 16:break;default:k[b>>2]=a}return}function us(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;z=r;r=r+480|0;o=z+468|0;B=z+464|0;w=z+472|0;t=z+56|0;y=z+52|0;C=z+40|0;E=z+28|0;D=z+16|0;l=z+12|0;n=z+64|0;v=z+8|0;u=z+4|0;p=z;a=tn(d)|0;k[B>>2]=a;x=0;q=Aa(37,B|0,44212)|0;s=x;x=0;do{if(s&1)F=13;else{m=i[f>>0]|0;g=(m&1)==0;s=f+4|0;if(!((g?(m&255)>>>1:k[s>>2]|0)|0))m=0;else{g=k[(g?s:k[f+8>>2]|0)>>2]|0;x=0;h=Aa(k[(k[q>>2]|0)+44>>2]|0,q|0,45)|0;m=x;x=0;if(m&1){F=13;break}m=(g|0)==(h|0)}k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;za(4,c|0,m|0,B|0,w|0,t|0,y|0,C|0,E|0,D|0,l|0);j=x;x=0;if(!(j&1)){j=i[f>>0]|0;c=k[s>>2]|0;g=(j&1)==0?(j&255)>>>1:c;l=k[l>>2]|0;if((g|0)>(l|0)){G=i[D>>0]|0;h=i[E>>0]|0;g=(g-l<<1|1)+l+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((h&1)==0?(h&255)>>>1:k[E+4>>2]|0)|0}else{G=i[D>>0]|0;g=i[E>>0]|0;g=l+2+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((g&1)==0?(g&255)>>>1:k[E+4>>2]|0)|0}if(g>>>0>100){g=Pl(g<<2)|0;h=g;if(!g){x=0;Ga(6);G=x;x=0;if(!(G&1)){j=i[f>>0]|0;c=k[s>>2]|0;g=0;F=17}}else F=17}else{h=0;g=n;F=17}if((F|0)==17){G=(j&1)==0;f=G?s:k[f+8>>2]|0;x=0;wa(2,g|0,v|0,u|0,k[d+4>>2]|0,f|0,f+((G?(j&255)>>>1:c)<<2)|0,q|0,m|0,w|0,k[t>>2]|0,k[y>>2]|0,C|0,E|0,D|0,l|0);G=x;x=0;if(!(G&1)?(k[p>>2]=k[b>>2],G=k[v>>2]|0,A=k[u>>2]|0,x=0,k[o>>2]=k[p>>2],A=sa(40,o|0,g|0,G|0,A|0,d|0,e|0)|0,G=x,x=0,!(G&1)):0){if(h){Ql(h);a=k[B>>2]|0}en(D);en(E);Sm(C);zm(a)|0;r=z;return A|0}}g=Wa()|0;if(h){Ql(h);a=k[B>>2]|0}}else g=Wa()|0;en(D);en(E);Sm(C)}}while(0);if((F|0)==13)g=Wa()|0;zm(a)|0;fb(g|0);return 0}function vs(a){a=a|0;return}function ws(a){a=a|0;mj(a);return}function xs(a,b,c){a=a|0;b=b|0;c=c|0;a=vk((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0,1)|0;return a>>>((a|0)!=(-1|0)&1)|0}function ys(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,j=0,l=0;h=r;r=r+16|0;j=h;k[j>>2]=0;k[j+4>>2]=0;k[j+8>>2]=0;g=i[f>>0]|0;l=(g&1)==0;b=l?f+1|0:k[f+8>>2]|0;g=l?(g&255)>>>1:k[f+4>>2]|0;f=b+g|0;a:do{if((g|0)>0){while(1){x=0;ra(67,j|0,i[b>>0]|0);l=x;x=0;if(l&1)break;b=b+1|0;if(b>>>0>=f>>>0){g=4;break a}}b=Wa()|0;g=7}else g=4}while(0);b:do{if((g|0)==4){x=0;b=Ea(19,((c|0)==-1?-1:c<<1)|0,d|0,e|0,((i[j>>0]&1)==0?j+1|0:k[j+8>>2]|0)|0)|0;l=x;x=0;if(l&1){b=Wa()|0;g=7;break}k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;l=xl(b)|0;f=b+l|0;c:do{if((l|0)>0){while(1){x=0;ra(67,a|0,i[b>>0]|0);l=x;x=0;if(l&1)break;b=b+1|0;if(b>>>0>=f>>>0)break c}b=Wa()|0;Sm(a);break b}}while(0);Sm(j);r=h;return}}while(0);Sm(j);fb(b|0)}function zs(a,b){a=a|0;b=b|0;return}function As(a){a=a|0;return}function Bs(a){a=a|0;mj(a);return}function Cs(a,b,c){a=a|0;b=b|0;c=c|0;a=vk((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0,1)|0;return a>>>((a|0)!=(-1|0)&1)|0}function Ds(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;v=r;r=r+224|0;n=v+184|0;m=v+192|0;l=v+180|0;o=v+176|0;t=v+168|0;s=v+40|0;q=v+32|0;u=v+28|0;w=v+16|0;j=v+8|0;p=v;k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;k[j+4>>2]=0;k[j>>2]=44696;h=i[f>>0]|0;y=(h&1)==0;g=f+4|0;b=y?g:k[f+8>>2]|0;f=y?(h&255)>>>1:k[g>>2]|0;g=b+(f<<2)|0;h=m+32|0;a:do{if((f|0)>0){b:while(1){k[o>>2]=b;x=0;f=Ha(k[(k[j>>2]|0)+12>>2]|0,j|0,n|0,b|0,g|0,o|0,m|0,h|0,l|0)|0;y=x;x=0;if(y&1){f=12;break}if((f|0)==2?1:(k[o>>2]|0)==(b|0)){f=5;break}if(m>>>0<(k[l>>2]|0)>>>0){b=m;do{x=0;ra(67,w|0,i[b>>0]|0);y=x;x=0;if(y&1){f=11;break b}b=b+1|0}while(b>>>0<(k[l>>2]|0)>>>0)}b=k[o>>2]|0;if(!((f|0)!=2&b>>>0>>0)){f=9;break a}}if((f|0)==5){x=0;qa(190,58955);x=0;b=Wa()|0}else if((f|0)==11)b=Wa()|0;else if((f|0)==12)b=Wa()|0}else f=9}while(0);c:do{if((f|0)==9){x=0;b=Ea(19,((c|0)==-1?-1:c<<1)|0,d|0,e|0,((i[w>>0]&1)==0?w+1|0:k[w+8>>2]|0)|0)|0;y=x;x=0;if(y&1){b=Wa()|0;break}k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[p+4>>2]=0;k[p>>2]=44744;y=xl(b)|0;g=b+y|0;h=g;j=s+128|0;d:do{if((y|0)>0){e:while(1){k[u>>2]=b;x=0;f=Ha(k[(k[p>>2]|0)+16>>2]|0,p|0,t|0,b|0,((h-b|0)>32?b+32|0:g)|0,u|0,s|0,j|0,q|0)|0;y=x;x=0;if(y&1){f=24;break}if((f|0)==2?1:(k[u>>2]|0)==(b|0)){f=18;break}if(s>>>0<(k[q>>2]|0)>>>0){b=s;do{x=0;ra(92,a|0,k[b>>2]|0);y=x;x=0;if(y&1){f=23;break e}b=b+4|0}while(b>>>0<(k[q>>2]|0)>>>0)}b=k[u>>2]|0;if(!((f|0)!=2&b>>>0>>0))break d}if((f|0)==18){x=0;qa(190,58955);x=0;b=Wa()|0}else if((f|0)==23)b=Wa()|0;else if((f|0)==24)b=Wa()|0;en(a);break c}}while(0);Sm(w);r=v;return}}while(0);Sm(w);fb(b|0)}function Es(a,b){a=a|0;b=b|0;return}function Fs(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;k[a+4>>2]=b+-1;k[a>>2]=44196;f=a+8|0;x=0;ra(94,f|0,28);e=x;x=0;if(e&1)b=Wa()|0;else{e=a+144|0;x=0;Fa(5,e|0,58885,1);d=x;x=0;if(d&1)b=Wa()|0;else{c=k[f>>2]|0;d=a+12|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do{b=b+-4|0}while((b|0)!=(c|0));k[d>>2]=b}k[495]=0;k[494]=43124;x=0;ra(95,a|0,1976);d=x;x=0;do{if(((((((((((((!(d&1)?(k[497]=0,k[496]=43164,x=0,ra(96,a|0,1984),d=x,x=0,!(d&1)):0)?(k[499]=0,k[498]=44236,k[500]=0,i[2004]=0,d=Ys()|0,k[500]=d,x=0,ra(97,a|0,1992),d=x,x=0,!(d&1)):0)?(k[503]=0,k[502]=44484,x=0,ra(98,a|0,2008),d=x,x=0,!(d&1)):0)?(k[505]=0,k[504]=44552,x=0,ra(99,a|0,2016),d=x,x=0,!(d&1)):0)?(x=0,ra(100,2024,1),d=x,x=0,!(d&1)):0)?(x=0,ra(101,a|0,2024),d=x,x=0,!(d&1)):0)?(k[511]=0,k[510]=44600,x=0,ra(102,a|0,2040),d=x,x=0,!(d&1)):0)?(k[513]=0,k[512]=44648,x=0,ra(103,a|0,2048),d=x,x=0,!(d&1)):0)?(bu(2056,1),x=0,ra(104,a|0,2056),d=x,x=0,!(d&1)):0)?(cu(2080,1),x=0,ra(105,a|0,2080),d=x,x=0,!(d&1)):0)?(k[529]=0,k[528]=43204,x=0,ra(106,a|0,2112),d=x,x=0,!(d&1)):0)?(k[531]=0,k[530]=43276,x=0,ra(107,a|0,2120),d=x,x=0,!(d&1)):0)?(k[533]=0,k[532]=43348,x=0,ra(108,a|0,2128),d=x,x=0,!(d&1)):0){k[535]=0;k[534]=43408;x=0;ra(109,a|0,2136);d=x;x=0;if(d&1){g=42;break}k[537]=0;k[536]=43716;x=0;ra(110,a|0,2144);d=x;x=0;if(d&1){g=42;break}k[539]=0;k[538]=43780;x=0;ra(111,a|0,2152);d=x;x=0;if(d&1){g=42;break}k[541]=0;k[540]=43844;x=0;ra(112,a|0,2160);d=x;x=0;if(d&1){g=42;break}k[543]=0;k[542]=43908;x=0;ra(113,a|0,2168);d=x;x=0;if(d&1){g=42;break}k[545]=0;k[544]=43972;x=0;ra(114,a|0,2176);d=x;x=0;if(d&1){g=42;break}k[547]=0;k[546]=44008;x=0;ra(115,a|0,2184);d=x;x=0;if(d&1){g=42;break}k[549]=0;k[548]=44044;x=0;ra(116,a|0,2192);d=x;x=0;if(d&1){g=42;break}k[551]=0;k[550]=44080;x=0;ra(117,a|0,2200);d=x;x=0;if(d&1){g=42;break}k[553]=0;k[552]=43468;k[554]=43516;x=0;ra(118,a|0,2208);d=x;x=0;if(d&1){g=42;break}k[557]=0;k[556]=43560;k[558]=43608;x=0;ra(119,a|0,2224);d=x;x=0;if(d&1){g=42;break}k[561]=0;k[560]=44464;x=0;b=Da(3)|0;d=x;x=0;if(d&1){b=Wa()|0;break}k[562]=b;k[560]=43652;x=0;ra(120,a|0,2240);d=x;x=0;if(d&1){g=42;break}k[565]=0;k[564]=44464;x=0;b=Da(3)|0;d=x;x=0;if(d&1){b=Wa()|0;break}k[566]=b;k[564]=43684;x=0;ra(121,a|0,2256);g=x;x=0;if(g&1){g=42;break}k[569]=0;k[568]=44116;x=0;ra(122,a|0,2272);g=x;x=0;if(g&1){g=42;break}k[571]=0;k[570]=44156;x=0;ra(123,a|0,2280);g=x;x=0;if(g&1){g=42;break}return}else g=42}while(0);if((g|0)==42)b=Wa()|0;Sm(e)}Nv(f)}fb(b|0)}function Gs(){var a=0;do{if((i[2288]|0)==0?(Qa(2288)|0)!=0:0){x=0;Da(4)|0;a=x;x=0;if(a&1){a=Wa()|0;Bb(2288);fb(a|0)}else{k[11246]=44980;Ya(2288);break}}}while(0);return k[11246]|0}function Hs(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;ym(b);e=a+8|0;d=k[e>>2]|0;do{if((k[a+12>>2]|0)-d>>2>>>0<=c>>>0){x=0;ra(124,e|0,c+1|0);a=x;x=0;if(!(a&1)){d=k[e>>2]|0;break}d=Wa()|0;if(b)zm(b)|0;fb(d|0)}}while(0);a=k[d+(c<<2)>>2]|0;if(a){zm(a)|0;d=k[e>>2]|0}k[d+(c<<2)>>2]=b;return}function Is(a){a=a|0;var b=0,c=0,d=0,e=0;k[a>>2]=44196;d=a+8|0;e=a+12|0;b=k[d>>2]|0;if((k[e>>2]|0)!=(b|0)){c=0;do{b=k[b+(c<<2)>>2]|0;if(b)zm(b)|0;c=c+1|0;b=k[d>>2]|0}while(c>>>0<(k[e>>2]|0)-b>>2>>>0)}Sm(a+144|0);Nv(d);return}function Js(a){a=a|0;Is(a);mj(a);return}function Ks(a,b){a=a|0;b=b|0;if(Pv(a,b)|0)return k[(k[a+8>>2]|0)+(b<<2)>>2]|0;else{a=Va(4)|0;Aj(a);ub(a|0,640,82)}return 0}function Ls(){Fs(2296,1);k[11245]=2296;return 44980}function Ms(){var a=0;a=Gs()|0;a=k[a>>2]|0;k[11247]=a;ym(a);return 44988}function Ns(){var a=0;do{if((i[2456]|0)==0?(Qa(2456)|0)!=0:0){x=0;Da(5)|0;a=x;x=0;if(a&1){a=Wa()|0;Bb(2456);fb(a|0)}else{k[11248]=44988;Ya(2456);break}}}while(0);return k[11248]|0}function Os(a){a=a|0;var b=0,c=0;x=0;b=Da(6)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}else{c=k[b>>2]|0;k[a>>2]=c;ym(c);return}}function Ps(a,b){a=a|0;b=b|0;b=k[b>>2]|0;k[a>>2]=b;ym(b);return}function Qs(a){a=a|0;zm(k[a>>2]|0)|0;return}function Rs(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;if((k[a>>2]|0)!=-1){k[b>>2]=a;k[b+4>>2]=191;k[b+8>>2]=0;Om(a,b,192)}r=c;return(k[a+4>>2]|0)+-1|0}function Ss(a,b){a=a|0;b=b|0;a=k[a>>2]|0;return Ks(a,Rs(b)|0)|0}function Ts(a){a=a|0;mj(a);return}function Us(a){a=a|0;if(a)Lb[k[(k[a>>2]|0)+4>>2]&255](a);return}function Vs(a){a=a|0;var b=0;b=k[11052]|0;k[11052]=b+1;k[a+4>>2]=b+1;return}function Ws(a){a=a|0;mj(a);return}function Xs(a,b,c){a=a|0;b=b|0;c=c|0;if(c>>>0<128){c=(Ys()|0)+(c<<1)|0;c=(j[c>>1]&b)<<16>>16!=0}else c=0;return c|0}function Ys(){var a=0,b=0;x=0;a=Da(7)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function Zs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=(c-b|0)>>>2;if((b|0)!=(c|0)){e=b;while(1){a=k[e>>2]|0;if(a>>>0<128){a=(Ys()|0)+(a<<1)|0;a=m[a>>1]|0}else a=0;j[d>>1]=a;e=e+4|0;if((e|0)==(c|0))break;else d=d+2|0}}return b+(f<<2)|0}function _s(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:do{if((c|0)==(d|0))c=d;else while(1){a=k[c>>2]|0;if(a>>>0<128?(a=(Ys()|0)+(a<<1)|0,(j[a>>1]&b)<<16>>16!=0):0)break a;c=c+4|0;if((c|0)==(d|0)){c=d;break}}}while(0);return c|0}function $s(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:do{if((c|0)==(d|0))c=d;else while(1){a=k[c>>2]|0;if(a>>>0>=128)break a;a=(Ys()|0)+(a<<1)|0;if(!((j[a>>1]&b)<<16>>16))break a;c=c+4|0;if((c|0)==(d|0)){c=d;break}}}while(0);return c|0}function at(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(bt()|0)+(b<<2)|0;b=k[b>>2]|0}return b|0}function bt(){var a=0,b=0;x=0;a=Da(8)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function ct(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(c-b|0)>>>2;if((b|0)!=(c|0)){d=b;do{a=k[d>>2]|0;if(a>>>0<128){a=(bt()|0)+(a<<2)|0;a=k[a>>2]|0}k[d>>2]=a;d=d+4|0}while((d|0)!=(c|0))}return b+(e<<2)|0}function dt(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(et()|0)+(b<<2)|0;b=k[b>>2]|0}return b|0}function et(){var a=0,b=0;x=0;a=Da(9)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function ft(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(c-b|0)>>>2;if((b|0)!=(c|0)){d=b;do{a=k[d>>2]|0;if(a>>>0<128){a=(et()|0)+(a<<2)|0;a=k[a>>2]|0}k[d>>2]=a;d=d+4|0}while((d|0)!=(c|0))}return b+(e<<2)|0}function gt(a,b){a=a|0;b=b|0;return b<<24>>24|0}function ht(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((b|0)!=(c|0))while(1){k[d>>2]=i[b>>0];b=b+1|0;if((b|0)==(c|0))break;else d=d+4|0}return c|0}function it(a,b,c){a=a|0;b=b|0;c=c|0;return(b>>>0<128?b&255:c)|0}function jt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=(c-b|0)>>>2;if((b|0)!=(c|0)){f=b;a=e;while(1){e=k[f>>2]|0;i[a>>0]=e>>>0<128?e&255:d;f=f+4|0;if((f|0)==(c|0))break;else a=a+1|0}}return b+(g<<2)|0}function kt(a){a=a|0;var b=0;k[a>>2]=44236;b=k[a+8>>2]|0;if((b|0)!=0?(i[a+12>>0]|0)!=0:0)nj(b);return}function lt(a){a=a|0;kt(a);mj(a);return}function mt(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(bt()|0)+((b&255)<<2)|0;b=k[b>>2]&255}return b|0}function nt(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)!=(c|0)){a=b;do{b=i[a>>0]|0;if(b<<24>>24>-1){b=(bt()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}i[a>>0]=b;a=a+1|0}while((a|0)!=(c|0))}return c|0}function ot(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(et()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}return b|0}function pt(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)!=(c|0)){a=b;do{b=i[a>>0]|0;if(b<<24>>24>-1){b=(et()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}i[a>>0]=b;a=a+1|0}while((a|0)!=(c|0))}return c|0}function qt(a,b){a=a|0;b=b|0;return b|0}function rt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((b|0)!=(c|0))while(1){i[d>>0]=i[b>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else d=d+1|0}return c|0}function st(a,b,c){a=a|0;b=b|0;c=c|0;return(b<<24>>24>-1?b:c)|0}function tt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if((b|0)!=(c|0))while(1){a=i[b>>0]|0;i[e>>0]=a<<24>>24>-1?a:d;b=b+1|0;if((b|0)==(c|0))break;else e=e+1|0}return c|0}function ut(a){a=a|0;mj(a);return}function vt(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;k[e>>2]=c;k[h>>2]=f;return 3}function wt(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;k[e>>2]=c;k[h>>2]=f;return 3}function xt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function yt(a){a=a|0;return 1}function zt(a){a=a|0;return 1}function At(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=d-c|0;return(a>>>0>>0?a:e)|0}function Bt(a){a=a|0;return 1}function Ct(a,b){a=a|0;b=b|0;var c=0;k[a+4>>2]=b+-1;k[a>>2]=44304;x=0;b=Da(3)|0;c=x;x=0;if(c&1){c=Wa()|0;fb(c|0)}else{k[a+8>>2]=b;return}}function Dt(a){a=a|0;Gu(a);mj(a);return}function Hl(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,m=0,n=0.0,o=0,q=0,s=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=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;ga=r;r=r+624|0;ba=ga+24|0;da=ga+16|0;ca=ga+588|0;Y=ga+576|0;aa=ga;V=ga+536|0;fa=ga+8|0;ea=ga+528|0;L=(a|0)!=0;N=V+40|0;U=N;V=V+39|0;W=fa+4|0;X=Y+12|0;Y=Y+11|0;Z=ca;_=X;$=_-Z|0;O=-2-Z|0;P=_+2|0;Q=ba+288|0;R=ca+9|0;S=R;T=ca+8|0;f=0;w=b;g=0;b=0;a:while(1){do{if((f|0)>-1)if((g|0)>(2147483647-f|0)){f=mk()|0;k[f>>2]=75;f=-1;break}else{f=g+f|0;break}}while(0);g=i[w>>0]|0;if(!(g<<24>>24)){K=245;break}else h=w;b:while(1){switch(g<<24>>24){case 37:{g=h;K=9;break b}case 0:{g=h;break b}default:{}}J=h+1|0;g=i[J>>0]|0;h=J}c:do{if((K|0)==9)while(1){K=0;if((i[g+1>>0]|0)!=37)break c;h=h+1|0;g=g+2|0;if((i[g>>0]|0)==37)K=9;else break}}while(0);y=h-w|0;if(L?(k[a>>2]&32|0)==0:0)fl(w,y,a)|0;if((h|0)!=(w|0)){w=g;g=y;continue}o=g+1|0;h=i[o>>0]|0;m=(h<<24>>24)+-48|0;if(m>>>0<10){J=(i[g+2>>0]|0)==36;o=J?g+3|0:o;h=i[o>>0]|0;u=J?m:-1;b=J?1:b}else u=-1;g=h<<24>>24;d:do{if((g&-32|0)==32){m=0;while(1){if(!(1<>24)+-32|m;o=o+1|0;h=i[o>>0]|0;g=h<<24>>24;if((g&-32|0)!=32){q=m;g=o;break}}}else{q=0;g=o}}while(0);do{if(h<<24>>24==42){m=g+1|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[e+(h<<2)>>2]=10;b=1;g=g+3|0;h=k[d+((i[m>>0]|0)+-48<<3)>>2]|0}else{if(b){f=-1;break a}if(!L){x=q;g=m;b=0;J=0;break}b=(k[c>>2]|0)+(4-1)&~(4-1);h=k[b>>2]|0;k[c>>2]=b+4;b=0;g=m}if((h|0)<0){x=q|8192;J=0-h|0}else{x=q;J=h}}else{m=(h<<24>>24)+-48|0;if(m>>>0<10){h=0;do{h=(h*10|0)+m|0;g=g+1|0;m=(i[g>>0]|0)+-48|0}while(m>>>0<10);if((h|0)<0){f=-1;break a}else{x=q;J=h}}else{x=q;J=0}}}while(0);e:do{if((i[g>>0]|0)==46){m=g+1|0;h=i[m>>0]|0;if(h<<24>>24!=42){o=(h<<24>>24)+-48|0;if(o>>>0<10){g=m;h=0}else{g=m;o=0;break}while(1){h=(h*10|0)+o|0;g=g+1|0;o=(i[g>>0]|0)+-48|0;if(o>>>0>=10){o=h;break e}}}m=g+2|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+3>>0]|0)==36:0){k[e+(h<<2)>>2]=10;g=g+4|0;o=k[d+((i[m>>0]|0)+-48<<3)>>2]|0;break}if(b){f=-1;break a}if(L){g=(k[c>>2]|0)+(4-1)&~(4-1);o=k[g>>2]|0;k[c>>2]=g+4;g=m}else{g=m;o=0}}else o=-1}while(0);s=0;while(1){h=(i[g>>0]|0)+-65|0;if(h>>>0>57){f=-1;break a}m=g+1|0;h=i[56223+(s*58|0)+h>>0]|0;q=h&255;if((q+-1|0)>>>0<8){g=m;s=q}else{I=m;break}}if(!(h<<24>>24)){f=-1;break}m=(u|0)>-1;do{if(h<<24>>24==19)if(m){f=-1;break a}else K=52;else{if(m){k[e+(u<<2)>>2]=q;G=d+(u<<3)|0;H=k[G+4>>2]|0;K=aa;k[K>>2]=k[G>>2];k[K+4>>2]=H;K=52;break}if(!L){f=0;break a}Ml(aa,q,c)}}while(0);if((K|0)==52?(K=0,!L):0){w=I;g=y;continue}u=i[g>>0]|0;u=(s|0)!=0&(u&15|0)==3?u&-33:u;m=x&-65537;H=(x&8192|0)==0?x:m;f:do{switch(u|0){case 110:switch(s|0){case 0:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 1:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 2:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}case 3:{j[k[aa>>2]>>1]=f;w=I;g=y;continue a}case 4:{i[k[aa>>2]>>0]=f;w=I;g=y;continue a}case 6:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 7:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}default:{w=I;g=y;continue a}}case 112:{s=H|8;o=o>>>0>8?o:8;u=120;K=64;break}case 88:case 120:{s=H;K=64;break}case 111:{m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;if((h|0)==0&(m|0)==0)g=N;else{g=N;do{g=g+-1|0;i[g>>0]=h&7|48;h=uw(h|0,m|0,3)|0;m=M}while(!((h|0)==0&(m|0)==0))}if(!(H&8)){h=H;s=0;q=56703;K=77}else{s=U-g+1|0;h=H;o=(o|0)<(s|0)?s:o;s=0;q=56703;K=77}break}case 105:case 100:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;if((h|0)<0){g=rw(0,0,g|0,h|0)|0;h=M;m=aa;k[m>>2]=g;k[m+4>>2]=h;m=1;q=56703;K=76;break f}if(!(H&2048)){q=H&1;m=q;q=(q|0)==0?56703:56705;K=76}else{m=1;q=56704;K=76}break}case 117:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;m=0;q=56703;K=76;break}case 99:{i[V>>0]=k[aa>>2];w=V;h=1;s=0;u=56703;g=N;break}case 109:{g=mk()|0;g=nk(k[g>>2]|0)|0;K=82;break}case 115:{g=k[aa>>2]|0;g=(g|0)!=0?g:56713;K=82;break}case 67:{k[fa>>2]=k[aa>>2];k[W>>2]=0;k[aa>>2]=fa;o=-1;K=86;break}case 83:{if(!o){Ol(a,32,J,0,H);g=0;K=98}else K=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{n=+p[aa>>3];k[da>>2]=0;p[t>>3]=n;if((k[t+4>>2]|0)>=0)if(!(H&2048)){G=H&1;F=G;G=(G|0)==0?56721:56726}else{F=1;G=56723}else{n=-n;F=1;G=56720}p[t>>3]=n;E=k[t+4>>2]&2146435072;do{if(E>>>0<2146435072|(E|0)==2146435072&0<0){v=+Gk(n,da)*2.0;h=v!=0.0;if(h)k[da>>2]=(k[da>>2]|0)+-1;C=u|32;if((C|0)==97){w=u&32;y=(w|0)==0?G:G+9|0;x=F|2;g=12-o|0;do{if(!(o>>>0>11|(g|0)==0)){n=8.0;do{g=g+-1|0;n=n*16.0}while((g|0)!=0);if((i[y>>0]|0)==45){n=-(n+(-v-n));break}else{n=v+n-n;break}}else n=v}while(0);h=k[da>>2]|0;g=(h|0)<0?0-h|0:h;g=Nl(g,((g|0)<0)<<31>>31,X)|0;if((g|0)==(X|0)){i[Y>>0]=48;g=Y}i[g+-1>>0]=(h>>31&2)+43;s=g+-2|0;i[s>>0]=u+15;q=(o|0)<1;m=(H&8|0)==0;h=ca;while(1){G=~~n;g=h+1|0;i[h>>0]=l[56687+G>>0]|w;n=(n-+(G|0))*16.0;do{if((g-Z|0)==1){if(m&(q&n==0.0))break;i[g>>0]=46;g=h+2|0}}while(0);if(!(n!=0.0))break;else h=g}o=(o|0)!=0&(O+g|0)<(o|0)?P+o-s|0:$-s+g|0;m=o+x|0;Ol(a,32,J,m,H);if(!(k[a>>2]&32))fl(y,x,a)|0;Ol(a,48,J,m,H^65536);g=g-Z|0;if(!(k[a>>2]&32))fl(ca,g,a)|0;h=_-s|0;Ol(a,48,o-(g+h)|0,0,0);if(!(k[a>>2]&32))fl(s,h,a)|0;Ol(a,32,J,m,H^8192);g=(m|0)<(J|0)?J:m;break}g=(o|0)<0?6:o;if(h){h=(k[da>>2]|0)+-28|0;k[da>>2]=h;n=v*268435456.0}else{n=v;h=k[da>>2]|0}E=(h|0)<0?ba:Q;D=E;h=E;do{B=~~n>>>0;k[h>>2]=B;h=h+4|0;n=(n-+(B>>>0))*1.0e9}while(n!=0.0);m=h;h=k[da>>2]|0;if((h|0)>0){q=E;while(1){s=(h|0)>29?29:h;o=m+-4|0;do{if(o>>>0>>0)o=q;else{h=0;do{B=ww(k[o>>2]|0,0,s|0)|0;B=tw(B|0,M|0,h|0,0)|0;h=M;A=Fw(B|0,h|0,1e9,0)|0;k[o>>2]=A;h=Ew(B|0,h|0,1e9,0)|0;o=o+-4|0}while(o>>>0>=q>>>0);if(!h){o=q;break}o=q+-4|0;k[o>>2]=h}}while(0);while(1){if(m>>>0<=o>>>0)break;h=m+-4|0;if(!(k[h>>2]|0))m=h;else break}h=(k[da>>2]|0)-s|0;k[da>>2]=h;if((h|0)>0)q=o;else break}}else o=E;if((h|0)<0){y=((g+25|0)/9|0)+1|0;z=(C|0)==102;w=o;while(1){x=0-h|0;x=(x|0)>9?9:x;do{if(w>>>0>>0){h=(1<>>x;o=0;s=w;do{B=k[s>>2]|0;k[s>>2]=(B>>>x)+o;o=ia(B&h,q)|0;s=s+4|0}while(s>>>0>>0);h=(k[w>>2]|0)==0?w+4|0:w;if(!o){o=h;break}k[m>>2]=o;o=h;m=m+4|0}else o=(k[w>>2]|0)==0?w+4|0:w}while(0);h=z?E:o;m=(m-h>>2|0)>(y|0)?h+(y<<2)|0:m;h=(k[da>>2]|0)+x|0;k[da>>2]=h;if((h|0)>=0){w=o;break}else w=o}}else w=o;do{if(w>>>0>>0){h=(D-w>>2)*9|0;q=k[w>>2]|0;if(q>>>0<10)break;else o=10;do{o=o*10|0;h=h+1|0}while(q>>>0>=o>>>0)}else h=0}while(0);A=(C|0)==103;B=(g|0)!=0;o=g-((C|0)!=102?h:0)+((B&A)<<31>>31)|0;if((o|0)<(((m-D>>2)*9|0)+-9|0)){s=o+9216|0;z=(s|0)/9|0;o=E+(z+-1023<<2)|0;s=((s|0)%9|0)+1|0;if((s|0)<9){q=10;do{q=q*10|0;s=s+1|0}while((s|0)!=9)}else q=10;x=k[o>>2]|0;y=(x>>>0)%(q>>>0)|0;if((y|0)==0?(E+(z+-1022<<2)|0)==(m|0):0)q=w;else K=163;do{if((K|0)==163){K=0;v=(((x>>>0)/(q>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;s=(q|0)/2|0;do{if(y>>>0>>0)n=.5;else{if((y|0)==(s|0)?(E+(z+-1022<<2)|0)==(m|0):0){n=1.0;break}n=1.5}}while(0);do{if(F){if((i[G>>0]|0)!=45)break;v=-v;n=-n}}while(0);s=x-y|0;k[o>>2]=s;if(!(v+n!=v)){q=w;break}C=s+q|0;k[o>>2]=C;if(C>>>0>999999999){h=w;while(1){q=o+-4|0;k[o>>2]=0;if(q>>>0>>0){h=h+-4|0;k[h>>2]=0}C=(k[q>>2]|0)+1|0;k[q>>2]=C;if(C>>>0>999999999)o=q;else{w=h;o=q;break}}}h=(D-w>>2)*9|0;s=k[w>>2]|0;if(s>>>0<10){q=w;break}else q=10;do{q=q*10|0;h=h+1|0}while(s>>>0>=q>>>0);q=w}}while(0);C=o+4|0;w=q;m=m>>>0>C>>>0?C:m}y=0-h|0;while(1){if(m>>>0<=w>>>0){z=0;C=m;break}o=m+-4|0;if(!(k[o>>2]|0))m=o;else{z=1;C=m;break}}do{if(A){g=(B&1^1)+g|0;if((g|0)>(h|0)&(h|0)>-5){u=u+-1|0;g=g+-1-h|0}else{u=u+-2|0;g=g+-1|0}m=H&8;if(m)break;do{if(z){m=k[C+-4>>2]|0;if(!m){o=9;break}if(!((m>>>0)%10|0)){q=10;o=0}else{o=0;break}do{q=q*10|0;o=o+1|0}while(((m>>>0)%(q>>>0)|0|0)==0)}else o=9}while(0);m=((C-D>>2)*9|0)+-9|0;if((u|32|0)==102){m=m-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}else{m=m+h-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}}else m=H&8}while(0);x=g|m;q=(x|0)!=0&1;s=(u|32|0)==102;if(s){h=(h|0)>0?h:0;u=0}else{o=(h|0)<0?y:h;o=Nl(o,((o|0)<0)<<31>>31,X)|0;if((_-o|0)<2)do{o=o+-1|0;i[o>>0]=48}while((_-o|0)<2);i[o+-1>>0]=(h>>31&2)+43;D=o+-2|0;i[D>>0]=u;h=_-D|0;u=D}y=F+1+g+q+h|0;Ol(a,32,J,y,H);if(!(k[a>>2]&32))fl(G,F,a)|0;Ol(a,48,J,y,H^65536);do{if(s){o=w>>>0>E>>>0?E:w;h=o;do{m=Nl(k[h>>2]|0,0,R)|0;do{if((h|0)==(o|0)){if((m|0)!=(R|0))break;i[T>>0]=48;m=T}else{if(m>>>0<=ca>>>0)break;do{m=m+-1|0;i[m>>0]=48}while(m>>>0>ca>>>0)}}while(0);if(!(k[a>>2]&32))fl(m,S-m|0,a)|0;h=h+4|0}while(h>>>0<=E>>>0);do{if(x){if(k[a>>2]&32)break;fl(56755,1,a)|0}}while(0);if((g|0)>0&h>>>0>>0){m=h;while(1){h=Nl(k[m>>2]|0,0,R)|0;if(h>>>0>ca>>>0)do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0);if(!(k[a>>2]&32))fl(h,(g|0)>9?9:g,a)|0;m=m+4|0;h=g+-9|0;if(!((g|0)>9&m>>>0>>0)){g=h;break}else g=h}}Ol(a,48,g+9|0,9,0)}else{s=z?C:w+4|0;if((g|0)>-1){q=(m|0)==0;o=w;do{h=Nl(k[o>>2]|0,0,R)|0;if((h|0)==(R|0)){i[T>>0]=48;h=T}do{if((o|0)==(w|0)){m=h+1|0;if(!(k[a>>2]&32))fl(h,1,a)|0;if(q&(g|0)<1){h=m;break}if(k[a>>2]&32){h=m;break}fl(56755,1,a)|0;h=m}else{if(h>>>0<=ca>>>0)break;do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0)}}while(0);m=S-h|0;if(!(k[a>>2]&32))fl(h,(g|0)>(m|0)?m:g,a)|0;g=g-m|0;o=o+4|0}while(o>>>0>>0&(g|0)>-1)}Ol(a,48,g+18|0,18,0);if(k[a>>2]&32)break;fl(u,_-u|0,a)|0}}while(0);Ol(a,32,J,y,H^8192);g=(y|0)<(J|0)?J:y}else{s=(u&32|0)!=0;q=n!=n|0.0!=0.0;h=q?0:F;o=h+3|0;Ol(a,32,J,o,m);g=k[a>>2]|0;if(!(g&32)){fl(G,h,a)|0;g=k[a>>2]|0}if(!(g&32))fl(q?s?56747:56751:s?56739:56743,3,a)|0;Ol(a,32,J,o,H^8192);g=(o|0)<(J|0)?J:o}}while(0);w=I;continue a}default:{m=H;h=o;s=0;u=56703;g=N}}}while(0);g:do{if((K|0)==64){m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;q=u&32;if(!((h|0)==0&(m|0)==0)){g=N;do{g=g+-1|0;i[g>>0]=l[56687+(h&15)>>0]|q;h=uw(h|0,m|0,4)|0;m=M}while(!((h|0)==0&(m|0)==0));K=aa;if((s&8|0)==0|(k[K>>2]|0)==0&(k[K+4>>2]|0)==0){h=s;s=0;q=56703;K=77}else{h=s;s=2;q=56703+(u>>4)|0;K=77}}else{g=N;h=s;s=0;q=56703;K=77}}else if((K|0)==76){g=Nl(g,h,N)|0;h=H;s=m;K=77}else if((K|0)==82){K=0;H=tl(g,0,o)|0;G=(H|0)==0;w=g;h=G?o:H-g|0;s=0;u=56703;g=G?g+o|0:H}else if((K|0)==86){K=0;h=0;g=0;q=k[aa>>2]|0;while(1){m=k[q>>2]|0;if(!m)break;g=Sk(ea,m)|0;if((g|0)<0|g>>>0>(o-h|0)>>>0)break;h=g+h|0;if(o>>>0>h>>>0)q=q+4|0;else break}if((g|0)<0){f=-1;break a}Ol(a,32,J,h,H);if(!h){g=0;K=98}else{m=0;o=k[aa>>2]|0;while(1){g=k[o>>2]|0;if(!g){g=h;K=98;break g}g=Sk(ea,g)|0;m=g+m|0;if((m|0)>(h|0)){g=h;K=98;break g}if(!(k[a>>2]&32))fl(ea,g,a)|0;if(m>>>0>=h>>>0){g=h;K=98;break}else o=o+4|0}}}}while(0);if((K|0)==98){K=0;Ol(a,32,J,g,H^8192);w=I;g=(J|0)>(g|0)?J:g;continue}if((K|0)==77){K=0;m=(o|0)>-1?h&-65537:h;h=aa;h=(k[h>>2]|0)!=0|(k[h+4>>2]|0)!=0;if((o|0)!=0|h){h=(h&1^1)+(U-g)|0;w=g;h=(o|0)>(h|0)?o:h;u=q;g=N}else{w=N;h=0;u=q;g=N}}q=g-w|0;h=(h|0)<(q|0)?q:h;o=s+h|0;g=(J|0)<(o|0)?o:J;Ol(a,32,g,o,m);if(!(k[a>>2]&32))fl(u,s,a)|0;Ol(a,48,g,o,m^65536);Ol(a,48,h,q,0);if(!(k[a>>2]&32))fl(w,q,a)|0;Ol(a,32,g,o,m^8192);w=I}h:do{if((K|0)==245)if(!a)if(b){f=1;while(1){b=k[e+(f<<2)>>2]|0;if(!b)break;Ml(d+(f<<3)|0,b,c);f=f+1|0;if((f|0)>=10){f=1;break h}}if((f|0)<10)while(1){if(k[e+(f<<2)>>2]|0){f=-1;break h}f=f+1|0;if((f|0)>=10){f=1;break}}else f=1}else f=0}while(0);r=ga;return f|0}function Il(a,b,c){a=a|0;b=b|0;c=c|0;return $k(a,b,c)|0}function Jl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+112|0;g=h;e=g;f=e+112|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(f|0));e=g+4|0;k[e>>2]=a;f=g+8|0;k[f>>2]=-1;k[g+44>>2]=a;k[g+76>>2]=-1;qk(g,0);d=+ok(g,c,1);c=(k[e>>2]|0)-(k[f>>2]|0)+(k[g+108>>2]|0)|0;if(b)k[b>>2]=(c|0)!=0?a+c|0:a;r=h;return+d}function Kl(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;i=r;r=r+112|0;h=i;k[h>>2]=0;f=h+4|0;k[f>>2]=a;k[h+44>>2]=a;g=h+8|0;k[g>>2]=(a|0)<0?-1:a+2147483647|0;k[h+76>>2]=-1;qk(h,0);d=pk(h,c,1,d,e)|0;if(b)k[b>>2]=a+((k[f>>2]|0)+(k[h+108>>2]|0)-(k[g>>2]|0));r=i;return d|0}function Ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a+20|0;e=k[d>>2]|0;a=(k[a+16>>2]|0)-e|0;a=a>>>0>c>>>0?c:a;vw(e|0,b|0,a|0)|0;k[d>>2]=(k[d>>2]|0)+a;return c|0}function Ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0;a:do{if(b>>>0<=20)do{switch(b|0){case 9:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;k[a>>2]=b;break a}case 10:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=0;break a}case 12:{d=(k[c>>2]|0)+(8-1)&~(8-1);b=d;e=k[b>>2]|0;b=k[b+4>>2]|0;k[c>>2]=d+8;d=a;k[d>>2]=e;k[d+4>>2]=b;break a}case 13:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&65535)<<16>>16;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 14:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&65535;k[e+4>>2]=0;break a}case 15:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&255)<<24>>24;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 16:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&255;k[e+4>>2]=0;break a}case 17:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}case 18:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}default:break a}}while(0)}while(0);return}function Nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(b>>>0>0|(b|0)==0&a>>>0>4294967295)while(1){d=Fw(a|0,b|0,10,0)|0;c=c+-1|0;i[c>>0]=d|48;d=Ew(a|0,b|0,10,0)|0;if(b>>>0>9|(b|0)==9&a>>>0>4294967295){a=d;b=M}else{a=d;break}}if(a)while(1){c=c+-1|0;i[c>>0]=(a>>>0)%10|0|48;if(a>>>0<10)break;else a=(a>>>0)/10|0}return c|0}function Ol(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;h=r;r=r+256|0;g=h;do{if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;sw(g|0,b|0,(e>>>0>256?256:e)|0)|0;b=k[a>>2]|0;f=(b&32|0)==0;if(e>>>0>255){d=c-d|0;do{if(f){fl(g,256,a)|0;b=k[a>>2]|0}e=e+-256|0;f=(b&32|0)==0}while(e>>>0>255);if(f)e=d&255;else break}else if(!f)break;fl(g,e,a)|0}}while(0);r=h;return}function Pl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=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;do{if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;h=k[10218]|0;c=h>>>a;if(c&3){a=(c&1^1)+a|0;d=a<<1;c=40912+(d<<2)|0;d=40912+(d+2<<2)|0;e=k[d>>2]|0;f=e+8|0;g=k[f>>2]|0;do{if((c|0)!=(g|0)){if(g>>>0<(k[10222]|0)>>>0)Pa();b=g+12|0;if((k[b>>2]|0)==(e|0)){k[b>>2]=c;k[d>>2]=g;break}else Pa()}else k[10218]=h&~(1<>2]=M|3;M=e+(M|4)|0;k[M>>2]=k[M>>2]|1;M=f;return M|0}g=k[10220]|0;if(o>>>0>g>>>0){if(c){d=2<>>12&16;d=d>>>i;e=d>>>5&8;d=d>>>e;f=d>>>2&4;d=d>>>f;c=d>>>1&2;d=d>>>c;a=d>>>1&1;a=(e|i|f|c|a)+(d>>>a)|0;d=a<<1;c=40912+(d<<2)|0;d=40912+(d+2<<2)|0;f=k[d>>2]|0;i=f+8|0;e=k[i>>2]|0;do{if((c|0)!=(e|0)){if(e>>>0<(k[10222]|0)>>>0)Pa();b=e+12|0;if((k[b>>2]|0)==(f|0)){k[b>>2]=c;k[d>>2]=e;j=k[10220]|0;break}else Pa()}else{k[10218]=h&~(1<>2]=o|3;h=f+o|0;k[f+(o|4)>>2]=g|1;k[f+M>>2]=g;if(j){e=k[10223]|0;c=j>>>3;b=c<<1;d=40912+(b<<2)|0;a=k[10218]|0;c=1<>2]|0;if(b>>>0<(k[10222]|0)>>>0)Pa();else{l=a;m=b}}else{k[10218]=a|c;l=40912+(b+2<<2)|0;m=d}k[l>>2]=e;k[m+12>>2]=e;k[e+8>>2]=m;k[e+12>>2]=d}k[10220]=g;k[10223]=h;M=i;return M|0}a=k[10219]|0;if(a){c=(a&0-a)+-1|0;L=c>>>12&16;c=c>>>L;K=c>>>5&8;c=c>>>K;M=c>>>2&4;c=c>>>M;a=c>>>1&2;c=c>>>a;d=c>>>1&1;d=k[41176+((K|L|M|a|d)+(c>>>d)<<2)>>2]|0;c=(k[d+4>>2]&-8)-o|0;a=d;while(1){b=k[a+16>>2]|0;if(!b){b=k[a+20>>2]|0;if(!b){i=c;break}}a=(k[b+4>>2]&-8)-o|0;M=a>>>0>>0;c=M?a:c;a=b;d=M?b:d}f=k[10222]|0;if(d>>>0>>0)Pa();h=d+o|0;if(d>>>0>=h>>>0)Pa();g=k[d+24>>2]|0;c=k[d+12>>2]|0;do{if((c|0)==(d|0)){a=d+20|0;b=k[a>>2]|0;if(!b){a=d+16|0;b=k[a>>2]|0;if(!b){n=0;break}}while(1){c=b+20|0;e=k[c>>2]|0;if(e){b=e;a=c;continue}c=b+16|0;e=k[c>>2]|0;if(!e)break;else{b=e;a=c}}if(a>>>0>>0)Pa();else{k[a>>2]=0;n=b;break}}else{e=k[d+8>>2]|0;if(e>>>0>>0)Pa();b=e+12|0;if((k[b>>2]|0)!=(d|0))Pa();a=c+8|0;if((k[a>>2]|0)==(d|0)){k[b>>2]=c;k[a>>2]=e;n=c;break}else Pa()}}while(0);do{if(g){b=k[d+28>>2]|0;a=41176+(b<<2)|0;if((d|0)==(k[a>>2]|0)){k[a>>2]=n;if(!n){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(d|0))k[b>>2]=n;else k[g+20>>2]=n;if(!n)break}a=k[10222]|0;if(n>>>0>>0)Pa();k[n+24>>2]=g;b=k[d+16>>2]|0;do{if(b)if(b>>>0>>0)Pa();else{k[n+16>>2]=b;k[b+24>>2]=n;break}}while(0);b=k[d+20>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[n+20>>2]=b;k[b+24>>2]=n;break}}}while(0);if(i>>>0<16){M=i+o|0;k[d+4>>2]=M|3;M=d+(M+4)|0;k[M>>2]=k[M>>2]|1}else{k[d+4>>2]=o|3;k[d+(o|4)>>2]=i|1;k[d+(i+o)>>2]=i;b=k[10220]|0;if(b){f=k[10223]|0;c=b>>>3;b=c<<1;e=40912+(b<<2)|0;a=k[10218]|0;c=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{p=b;q=a}}else{k[10218]=a|c;p=40912+(b+2<<2)|0;q=e}k[p>>2]=f;k[q+12>>2]=f;k[f+8>>2]=q;k[f+12>>2]=e}k[10220]=i;k[10223]=h}M=d+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=k[10219]|0;if(l){c=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)j=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;j=14-(p|q|j)+(v<>>15)|0;j=m>>>(j+7|0)&1|j<<1}else j=0;a=k[41176+(j<<2)>>2]|0;a:do{if(!a){e=0;a=0;v=86}else{g=c;e=0;h=m<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){f=k[i+4>>2]&-8;c=f-m|0;if(c>>>0>>0)if((f|0)==(m|0)){f=i;a=i;v=90;break a}else a=i;else c=g;v=k[i+20>>2]|0;i=k[i+16+(h>>>31<<2)>>2]|0;e=(v|0)==0|(v|0)==(i|0)?e:v;if(!i){v=86;break}else{g=c;h=h<<1}}}}while(0);if((v|0)==86){if((e|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;e=a>>>1&1;e=k[41176+((l|n|p|q|e)+(a>>>e)<<2)>>2]|0;a=0}if(!e){h=c;i=a}else{f=e;v=90}}if((v|0)==90)while(1){v=0;q=(k[f+4>>2]&-8)-m|0;e=q>>>0>>0;c=e?q:c;a=e?f:a;e=k[f+16>>2]|0;if(e){f=e;v=90;continue}f=k[f+20>>2]|0;if(!f){h=c;i=a;break}else v=90}if((i|0)!=0?h>>>0<((k[10220]|0)-m|0)>>>0:0){e=k[10222]|0;if(i>>>0>>0)Pa();g=i+m|0;if(i>>>0>=g>>>0)Pa();f=k[i+24>>2]|0;c=k[i+12>>2]|0;do{if((c|0)==(i|0)){a=i+20|0;b=k[a>>2]|0;if(!b){a=i+16|0;b=k[a>>2]|0;if(!b){o=0;break}}while(1){c=b+20|0;d=k[c>>2]|0;if(d){b=d;a=c;continue}c=b+16|0;d=k[c>>2]|0;if(!d)break;else{b=d;a=c}}if(a>>>0>>0)Pa();else{k[a>>2]=0;o=b;break}}else{d=k[i+8>>2]|0;if(d>>>0>>0)Pa();b=d+12|0;if((k[b>>2]|0)!=(i|0))Pa();a=c+8|0;if((k[a>>2]|0)==(i|0)){k[b>>2]=c;k[a>>2]=d;o=c;break}else Pa()}}while(0);do{if(f){b=k[i+28>>2]|0;a=41176+(b<<2)|0;if((i|0)==(k[a>>2]|0)){k[a>>2]=o;if(!o){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=f+16|0;if((k[b>>2]|0)==(i|0))k[b>>2]=o;else k[f+20>>2]=o;if(!o)break}a=k[10222]|0;if(o>>>0>>0)Pa();k[o+24>>2]=f;b=k[i+16>>2]|0;do{if(b)if(b>>>0>>0)Pa();else{k[o+16>>2]=b;k[b+24>>2]=o;break}}while(0);b=k[i+20>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[o+20>>2]=b;k[b+24>>2]=o;break}}}while(0);b:do{if(h>>>0>=16){k[i+4>>2]=m|3;k[i+(m|4)>>2]=h|1;k[i+(h+m)>>2]=h;b=h>>>3;if(h>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{s=b;t=a}}else{k[10218]=c|b;s=40912+(a+2<<2)|0;t=d}k[s>>2]=g;k[t+12>>2]=g;k[i+(m+8)>>2]=t;k[i+(m+12)>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=41176+(d<<2)|0;k[i+(m+28)>>2]=d;k[i+(m+20)>>2]=0;k[i+(m+16)>>2]=0;a=k[10219]|0;c=1<>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break}b=k[b>>2]|0;c:do{if((k[b+4>>2]&-8|0)!=(h|0)){d=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(h|0)){y=c;break c}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break b}}else y=b}while(0);b=y+8|0;a=k[b>>2]|0;M=k[10222]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[i+(m+8)>>2]=a;k[i+(m+12)>>2]=y;k[i+(m+24)>>2]=0;break}else Pa()}else{M=h+m|0;k[i+4>>2]=M|3;M=i+(M+4)|0;k[M>>2]=k[M>>2]|1}}while(0);M=i+8|0;return M|0}else q=m}else q=m}else q=-1}while(0);c=k[10220]|0;if(c>>>0>=q>>>0){b=c-q|0;a=k[10223]|0;if(b>>>0>15){k[10223]=a+q;k[10220]=b;k[a+(q+4)>>2]=b|1;k[a+c>>2]=b;k[a+4>>2]=q|3}else{k[10220]=0;k[10223]=0;k[a+4>>2]=c|3;M=a+(c+4)|0;k[M>>2]=k[M>>2]|1}M=a+8|0;return M|0}a=k[10221]|0;if(a>>>0>q>>>0){L=a-q|0;k[10221]=L;M=k[10224]|0;k[10224]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}do{if(!(k[10336]|0)){a=hb(30)|0;if(!(a+-1&a)){k[10338]=a;k[10337]=a;k[10339]=-1;k[10340]=-1;k[10341]=0;k[10329]=0;y=(zb(0)|0)&-16^1431655768;k[10336]=y;break}else Pa()}}while(0);i=q+48|0;h=k[10338]|0;j=q+47|0;g=h+j|0;h=0-h|0;l=g&h;if(l>>>0<=q>>>0){M=0;return M|0}a=k[10328]|0;if((a|0)!=0?(t=k[10326]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do{if(!(k[10329]&4)){a=k[10224]|0;e:do{if(a){e=41320;while(1){c=k[e>>2]|0;if(c>>>0<=a>>>0?(r=e+4|0,(c+(k[r>>2]|0)|0)>>>0>a>>>0):0){f=e;a=r;break}e=k[e+8>>2]|0;if(!e){v=174;break e}}c=g-(k[10221]|0)&h;if(c>>>0<2147483647){e=bb(c|0)|0;y=(e|0)==((k[f>>2]|0)+(k[a>>2]|0)|0);a=y?c:0;if(y){if((e|0)!=(-1|0)){w=e;p=a;v=194;break d}}else v=184}else a=0}else v=174}while(0);do{if((v|0)==174){f=bb(0)|0;if((f|0)!=(-1|0)){a=f;c=k[10337]|0;e=c+-1|0;if(!(e&a))c=l;else c=l-a+(e+a&0-c)|0;a=k[10326]|0;e=a+c|0;if(c>>>0>q>>>0&c>>>0<2147483647){y=k[10328]|0;if((y|0)!=0?e>>>0<=a>>>0|e>>>0>y>>>0:0){a=0;break}e=bb(c|0)|0;y=(e|0)==(f|0);a=y?c:0;if(y){w=f;p=a;v=194;break d}else v=184}else a=0}else a=0}}while(0);f:do{if((v|0)==184){f=0-c|0;do{if(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))?(u=k[10338]|0,u=j-c+u&0-u,u>>>0<2147483647):0)if((bb(u|0)|0)==(-1|0)){bb(f|0)|0;break f}else{c=u+c|0;break}}while(0);if((e|0)!=(-1|0)){w=e;p=c;v=194;break d}}}while(0);k[10329]=k[10329]|4;v=191}else{a=0;v=191}}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=bb(l|0)|0,x=bb(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(k[10326]|0)+p|0;k[10326]=a;if(a>>>0>(k[10327]|0)>>>0)k[10327]=a;g=k[10224]|0;g:do{if(g){f=41320;do{a=k[f>>2]|0;c=f+4|0;e=k[c>>2]|0;if((w|0)==(a+e|0)){B=a;C=c;D=e;E=f;v=204;break}f=k[f+8>>2]|0}while((f|0)!=0);if(((v|0)==204?(k[E+12>>2]&8|0)==0:0)?g>>>0>>0&g>>>0>=B>>>0:0){k[C>>2]=D+p;M=(k[10221]|0)+p|0;L=g+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;k[10224]=g+L;k[10221]=K;k[g+(L+4)>>2]=K|1;k[g+(M+4)>>2]=40;k[10225]=k[10340];break}a=k[10222]|0;if(w>>>0>>0){k[10222]=w;a=w}c=w+p|0;f=41320;while(1){if((k[f>>2]|0)==(c|0)){e=f;c=f;v=212;break}f=k[f+8>>2]|0;if(!f){c=41320;break}}if((v|0)==212)if(!(k[c+12>>2]&8)){k[e>>2]=w;n=c+4|0;k[n>>2]=(k[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;j=w+(p+8)|0;j=(j&7|0)==0?0:0-j&7;b=w+(j+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;k[w+(n+4)>>2]=q|3;h:do{if((b|0)!=(g|0)){if((b|0)==(k[10223]|0)){M=(k[10220]|0)+l|0;k[10220]=M;k[10223]=o;k[w+(m+4)>>2]=M|1;k[w+(M+m)>>2]=M;break}h=p+4|0;c=k[w+(h+j)>>2]|0;if((c&3|0)==1){i=c&-8;f=c>>>3;i:do{if(c>>>0>=256){g=k[w+((j|24)+p)>>2]|0;d=k[w+(p+12+j)>>2]|0;do{if((d|0)==(b|0)){e=j|16;d=w+(h+e)|0;c=k[d>>2]|0;if(!c){d=w+(e+p)|0;c=k[d>>2]|0;if(!c){J=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;J=c;break}}else{e=k[w+((j|8)+p)>>2]|0;if(e>>>0>>0)Pa();a=e+12|0;if((k[a>>2]|0)!=(b|0))Pa();c=d+8|0;if((k[c>>2]|0)==(b|0)){k[a>>2]=d;k[c>>2]=e;J=d;break}else Pa()}}while(0);if(!g)break;a=k[w+(p+28+j)>>2]|0;c=41176+(a<<2)|0;do{if((b|0)!=(k[c>>2]|0)){if(g>>>0<(k[10222]|0)>>>0)Pa();a=g+16|0;if((k[a>>2]|0)==(b|0))k[a>>2]=J;else k[g+20>>2]=J;if(!J)break i}else{k[c>>2]=J;if(J)break;k[10219]=k[10219]&~(1<>>0>>0)Pa();k[J+24>>2]=g;b=j|16;a=k[w+(b+p)>>2]|0;do{if(a)if(a>>>0>>0)Pa();else{k[J+16>>2]=a;k[a+24>>2]=J;break}}while(0);b=k[w+(h+b)>>2]|0;if(!b)break;if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[J+20>>2]=b;k[b+24>>2]=J;break}}else{d=k[w+((j|8)+p)>>2]|0;e=k[w+(p+12+j)>>2]|0;c=40912+(f<<1<<2)|0;do{if((d|0)!=(c|0)){if(d>>>0>>0)Pa();if((k[d+12>>2]|0)==(b|0))break;Pa()}}while(0);if((e|0)==(d|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();a=e+8|0;if((k[a>>2]|0)==(b|0)){F=a;break}Pa()}}while(0);k[d+12>>2]=e;k[F>>2]=d}}while(0);b=w+((i|j)+p)|0;e=i+l|0}else e=l;b=b+4|0;k[b>>2]=k[b>>2]&-2;k[w+(m+4)>>2]=e|1;k[w+(e+m)>>2]=e;b=e>>>3;if(e>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0>=(k[10222]|0)>>>0){K=b;L=a;break}Pa()}}while(0);k[K>>2]=o;k[L+12>>2]=o;k[w+(m+8)>>2]=L;k[w+(m+12)>>2]=d;break}b=e>>>8;do{if(!b)d=0;else{if(e>>>0>16777215){d=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=e>>>(d+7|0)&1|d<<1}}while(0);b=41176+(d<<2)|0;k[w+(m+28)>>2]=d;k[w+(m+20)>>2]=0;k[w+(m+16)>>2]=0;a=k[10219]|0;c=1<>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break}b=k[b>>2]|0;j:do{if((k[b+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(e|0)){M=c;break j}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break h}}else M=b}while(0);b=M+8|0;a=k[b>>2]|0;L=k[10222]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){k[a+12>>2]=o;k[b>>2]=o;k[w+(m+8)>>2]=a;k[w+(m+12)>>2]=M;k[w+(m+24)>>2]=0;break}else Pa()}else{M=(k[10221]|0)+l|0;k[10221]=M;k[10224]=o;k[w+(m+4)>>2]=M|1}}while(0);M=w+(n|8)|0;return M|0}else c=41320;while(1){a=k[c>>2]|0;if(a>>>0<=g>>>0?(b=k[c+4>>2]|0,d=a+b|0,d>>>0>g>>>0):0)break;c=k[c+8>>2]|0}e=a+(b+-39)|0;a=a+(b+-47+((e&7|0)==0?0:0-e&7))|0;e=g+16|0;a=a>>>0>>0?g:a;b=a+8|0;c=w+8|0;c=(c&7|0)==0?0:0-c&7;M=p+-40-c|0;k[10224]=w+c;k[10221]=M;k[w+(c+4)>>2]=M|1;k[w+(p+-36)>>2]=40;k[10225]=k[10340];c=a+4|0;k[c>>2]=27;k[b>>2]=k[10330];k[b+4>>2]=k[10331];k[b+8>>2]=k[10332];k[b+12>>2]=k[10333];k[10330]=w;k[10331]=p;k[10333]=0;k[10332]=b;b=a+28|0;k[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;k[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(g|0)){f=a-g|0;k[c>>2]=k[c>>2]&-2;k[g+4>>2]=f|1;k[a>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{G=b;H=a}}else{k[10218]=c|b;G=40912+(a+2<<2)|0;H=d}k[G>>2]=g;k[H+12>>2]=g;k[g+8>>2]=H;k[g+12>>2]=d;break}b=f>>>8;if(b)if(f>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=f>>>(d+7|0)&1|d<<1}else d=0;c=41176+(d<<2)|0;k[g+28>>2]=d;k[g+20>>2]=0;k[e>>2]=0;b=k[10219]|0;a=1<>2]=g;k[g+24>>2]=c;k[g+12>>2]=g;k[g+8>>2]=g;break}b=k[c>>2]|0;k:do{if((k[b+4>>2]&-8|0)!=(f|0)){d=f<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(f|0)){I=c;break k}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=g;k[g+24>>2]=b;k[g+12>>2]=g;k[g+8>>2]=g;break g}}else I=b}while(0);b=I+8|0;a=k[b>>2]|0;M=k[10222]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[g+8>>2]=a;k[g+12>>2]=I;k[g+24>>2]=0;break}else Pa()}}else{M=k[10222]|0;if((M|0)==0|w>>>0>>0)k[10222]=w;k[10330]=w;k[10331]=p;k[10333]=0;k[10227]=k[10336];k[10226]=-1;b=0;do{M=b<<1;L=40912+(M<<2)|0;k[40912+(M+3<<2)>>2]=L;k[40912+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;k[10224]=w+M;k[10221]=L;k[w+(M+4)>>2]=L|1;k[w+(p+-36)>>2]=40;k[10225]=k[10340]}}while(0);b=k[10221]|0;if(b>>>0>q>>>0){L=b-q|0;k[10221]=L;M=k[10224]|0;k[10224]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}}M=mk()|0;k[M>>2]=12;M=0;return M|0}function Ql(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;h=k[10222]|0;if(b>>>0>>0)Pa();c=k[a+-4>>2]|0;d=c&3;if((d|0)==1)Pa();o=c&-8;q=a+(o+-8)|0;do{if(!(c&1)){b=k[b>>2]|0;if(!d)return;i=-8-b|0;l=a+i|0;m=b+o|0;if(l>>>0>>0)Pa();if((l|0)==(k[10223]|0)){b=a+(o+-4)|0;c=k[b>>2]|0;if((c&3|0)!=3){u=l;f=m;break}k[10220]=m;k[b>>2]=c&-2;k[a+(i+4)>>2]=m|1;k[q>>2]=m;return}e=b>>>3;if(b>>>0<256){d=k[a+(i+8)>>2]|0;c=k[a+(i+12)>>2]|0;b=40912+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0>>0)Pa();if((k[d+12>>2]|0)!=(l|0))Pa()}if((c|0)==(d|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();b=c+8|0;if((k[b>>2]|0)==(l|0))g=b;else Pa()}else g=c+8|0;k[d+12>>2]=c;k[g>>2]=d;u=l;f=m;break}g=k[a+(i+24)>>2]|0;d=k[a+(i+12)>>2]|0;do{if((d|0)==(l|0)){c=a+(i+20)|0;b=k[c>>2]|0;if(!b){c=a+(i+16)|0;b=k[c>>2]|0;if(!b){j=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0>>0)Pa();else{k[c>>2]=0;j=b;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Pa();b=e+12|0;if((k[b>>2]|0)!=(l|0))Pa();c=d+8|0;if((k[c>>2]|0)==(l|0)){k[b>>2]=d;k[c>>2]=e;j=d;break}else Pa()}}while(0);if(g){b=k[a+(i+28)>>2]|0;c=41176+(b<<2)|0;if((l|0)==(k[c>>2]|0)){k[c>>2]=j;if(!j){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(l|0))k[b>>2]=j;else k[g+20>>2]=j;if(!j){u=l;f=m;break}}c=k[10222]|0;if(j>>>0>>0)Pa();k[j+24>>2]=g;b=k[a+(i+16)>>2]|0;do{if(b)if(b>>>0>>0)Pa();else{k[j+16>>2]=b;k[b+24>>2]=j;break}}while(0);b=k[a+(i+20)>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[j+20>>2]=b;k[b+24>>2]=j;u=l;f=m;break}else{u=l;f=m}}else{u=l;f=m}}else{u=b;f=o}}while(0);if(u>>>0>=q>>>0)Pa();b=a+(o+-4)|0;c=k[b>>2]|0;if(!(c&1))Pa();if(!(c&2)){if((q|0)==(k[10224]|0)){t=(k[10221]|0)+f|0;k[10221]=t;k[10224]=u;k[u+4>>2]=t|1;if((u|0)!=(k[10223]|0))return;k[10223]=0;k[10220]=0;return}if((q|0)==(k[10223]|0)){t=(k[10220]|0)+f|0;k[10220]=t;k[10223]=u;k[u+4>>2]=t|1;k[u+t>>2]=t;return}f=(c&-8)+f|0;e=c>>>3;do{if(c>>>0>=256){g=k[a+(o+16)>>2]|0;b=k[a+(o|4)>>2]|0;do{if((b|0)==(q|0)){c=a+(o+12)|0;b=k[c>>2]|0;if(!b){c=a+(o+8)|0;b=k[c>>2]|0;if(!b){p=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[c>>2]=0;p=b;break}}else{c=k[a+o>>2]|0;if(c>>>0<(k[10222]|0)>>>0)Pa();d=c+12|0;if((k[d>>2]|0)!=(q|0))Pa();e=b+8|0;if((k[e>>2]|0)==(q|0)){k[d>>2]=b;k[e>>2]=c;p=b;break}else Pa()}}while(0);if(g){b=k[a+(o+20)>>2]|0;c=41176+(b<<2)|0;if((q|0)==(k[c>>2]|0)){k[c>>2]=p;if(!p){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(q|0))k[b>>2]=p;else k[g+20>>2]=p;if(!p)break}c=k[10222]|0;if(p>>>0>>0)Pa();k[p+24>>2]=g;b=k[a+(o+8)>>2]|0;do{if(b)if(b>>>0>>0)Pa();else{k[p+16>>2]=b;k[b+24>>2]=p;break}}while(0);b=k[a+(o+12)>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[p+20>>2]=b;k[b+24>>2]=p;break}}}else{d=k[a+o>>2]|0;c=k[a+(o|4)>>2]|0;b=40912+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0<(k[10222]|0)>>>0)Pa();if((k[d+12>>2]|0)!=(q|0))Pa()}if((c|0)==(d|0)){k[10218]=k[10218]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=c+8|0;if((k[b>>2]|0)==(q|0))n=b;else Pa()}else n=c+8|0;k[d+12>>2]=c;k[n>>2]=d}}while(0);k[u+4>>2]=f|1;k[u+f>>2]=f;if((u|0)==(k[10223]|0)){k[10220]=f;return}}else{k[b>>2]=c&-2;k[u+4>>2]=f|1;k[u+f>>2]=f}b=f>>>3;if(f>>>0<256){c=b<<1;e=40912+(c<<2)|0;d=k[10218]|0;b=1<>2]|0;if(c>>>0<(k[10222]|0)>>>0)Pa();else{r=b;s=c}}else{k[10218]=d|b;r=40912+(c+2<<2)|0;s=e}k[r>>2]=u;k[s+12>>2]=u;k[u+8>>2]=s;k[u+12>>2]=e;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;e=14-(q|r|e)+(s<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=41176+(e<<2)|0;k[u+28>>2]=e;k[u+20>>2]=0;k[u+16>>2]=0;c=k[10219]|0;d=1<>2]|0;b:do{if((k[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){c=b+16+(e>>>31<<2)|0;d=k[c>>2]|0;if(!d)break;if((k[d+4>>2]&-8|0)==(f|0)){t=d;break b}else{e=e<<1;b=d}}if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[c>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u;break a}}else t=b}while(0);b=t+8|0;c=k[b>>2]|0;s=k[10222]|0;if(c>>>0>=s>>>0&t>>>0>=s>>>0){k[c+12>>2]=u;k[b>>2]=u;k[u+8>>2]=c;k[u+12>>2]=t;k[u+24>>2]=0;break}else Pa()}else{k[10219]=c|d;k[b>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u}}while(0);u=(k[10226]|0)+-1|0;k[10226]=u;if(!u)b=41328;else return;while(1){b=k[b>>2]|0;if(!b)break;else b=b+8|0}k[10226]=-1;return}function Rl(a,b){a=a|0;b=b|0;var c=0;if(a){c=ia(b,a)|0;if((b|a)>>>0>65535)c=((c>>>0)/(a>>>0)|0|0)==(b|0)?c:-1}else c=0;b=Pl(c)|0;if(!b)return b|0;if(!(k[b+-4>>2]&3))return b|0;sw(b|0,0,c|0)|0;return b|0}function Sl(a,b){a=a|0;b=b|0;var c=0,d=0;if(!a){a=Pl(b)|0;return a|0}if(b>>>0>4294967231){a=mk()|0;k[a>>2]=12;a=0;return a|0}c=Tl(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(c){a=c+8|0;return a|0}c=Pl(b)|0;if(!c){a=0;return a|0}d=k[a+-4>>2]|0;d=(d&-8)-((d&3|0)==0?8:4)|0;vw(c|0,a|0,(d>>>0>>0?d:b)|0)|0;Ql(a);a=c;return a|0}function Tl(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,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=k[o>>2]|0;i=p&-8;l=a+i|0;h=k[10222]|0;c=p&3;if(!((c|0)!=1&a>>>0>=h>>>0&a>>>0>>0))Pa();d=a+(i|4)|0;e=k[d>>2]|0;if(!(e&1))Pa();if(!c){if(b>>>0<256){a=0;return a|0}if(i>>>0>=(b+4|0)>>>0?(i-b|0)>>>0<=k[10338]<<1>>>0:0)return a|0;a=0;return a|0}if(i>>>0>=b>>>0){c=i-b|0;if(c>>>0<=15)return a|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|3;k[d>>2]=k[d>>2]|1;Ul(a+b|0,c);return a|0}if((l|0)==(k[10224]|0)){c=(k[10221]|0)+i|0;if(c>>>0<=b>>>0){a=0;return a|0}n=c-b|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|1;k[10224]=a+b;k[10221]=n;return a|0}if((l|0)==(k[10223]|0)){d=(k[10220]|0)+i|0;if(d>>>0>>0){a=0;return a|0}c=d-b|0;if(c>>>0>15){k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|1;k[a+d>>2]=c;d=a+(d+4)|0;k[d>>2]=k[d>>2]&-2;d=a+b|0}else{k[o>>2]=p&1|d|2;d=a+(d+4)|0;k[d>>2]=k[d>>2]|1;d=0;c=0}k[10220]=c;k[10223]=d;return a|0}if(e&2){a=0;return a|0}m=(e&-8)+i|0;if(m>>>0>>0){a=0;return a|0}n=m-b|0;f=e>>>3;do{if(e>>>0>=256){g=k[a+(i+24)>>2]|0;f=k[a+(i+12)>>2]|0;do{if((f|0)==(l|0)){d=a+(i+20)|0;c=k[d>>2]|0;if(!c){d=a+(i+16)|0;c=k[d>>2]|0;if(!c){j=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;j=c;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Pa();c=e+12|0;if((k[c>>2]|0)!=(l|0))Pa();d=f+8|0;if((k[d>>2]|0)==(l|0)){k[c>>2]=f;k[d>>2]=e;j=f;break}else Pa()}}while(0);if(g){c=k[a+(i+28)>>2]|0;d=41176+(c<<2)|0;if((l|0)==(k[d>>2]|0)){k[d>>2]=j;if(!j){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=g+16|0;if((k[c>>2]|0)==(l|0))k[c>>2]=j;else k[g+20>>2]=j;if(!j)break}d=k[10222]|0;if(j>>>0>>0)Pa();k[j+24>>2]=g;c=k[a+(i+16)>>2]|0;do{if(c)if(c>>>0>>0)Pa();else{k[j+16>>2]=c;k[c+24>>2]=j;break}}while(0);c=k[a+(i+20)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[j+20>>2]=c;k[c+24>>2]=j;break}}}else{e=k[a+(i+8)>>2]|0;d=k[a+(i+12)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(l|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(l|0))g=c;else Pa()}else g=d+8|0;k[e+12>>2]=d;k[g>>2]=e}}while(0);if(n>>>0<16){k[o>>2]=m|p&1|2;b=a+(m|4)|0;k[b>>2]=k[b>>2]|1;return a|0}else{k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|3;p=a+(m|4)|0;k[p>>2]=k[p>>2]|1;Ul(a+b|0,n);return a|0}return 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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;c=k[a+4>>2]|0;do{if(!(c&1)){j=k[a>>2]|0;if(!(c&3))return;n=a+(0-j)|0;m=j+b|0;i=k[10222]|0;if(n>>>0>>0)Pa();if((n|0)==(k[10223]|0)){d=a+(b+4)|0;c=k[d>>2]|0;if((c&3|0)!=3){t=n;g=m;break}k[10220]=m;k[d>>2]=c&-2;k[a+(4-j)>>2]=m|1;k[q>>2]=m;return}f=j>>>3;if(j>>>0<256){e=k[a+(8-j)>>2]|0;d=k[a+(12-j)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(n|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(n|0))h=c;else Pa()}else h=d+8|0;k[e+12>>2]=d;k[h>>2]=e;t=n;g=m;break}h=k[a+(24-j)>>2]|0;e=k[a+(12-j)>>2]|0;do{if((e|0)==(n|0)){e=16-j|0;d=a+(e+4)|0;c=k[d>>2]|0;if(!c){d=a+e|0;c=k[d>>2]|0;if(!c){l=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;l=c;break}}else{f=k[a+(8-j)>>2]|0;if(f>>>0>>0)Pa();c=f+12|0;if((k[c>>2]|0)!=(n|0))Pa();d=e+8|0;if((k[d>>2]|0)==(n|0)){k[c>>2]=e;k[d>>2]=f;l=e;break}else Pa()}}while(0);if(h){c=k[a+(28-j)>>2]|0;d=41176+(c<<2)|0;if((n|0)==(k[d>>2]|0)){k[d>>2]=l;if(!l){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=h+16|0;if((k[c>>2]|0)==(n|0))k[c>>2]=l;else k[h+20>>2]=l;if(!l){t=n;g=m;break}}e=k[10222]|0;if(l>>>0>>0)Pa();k[l+24>>2]=h;c=16-j|0;d=k[a+c>>2]|0;do{if(d)if(d>>>0>>0)Pa();else{k[l+16>>2]=d;k[d+24>>2]=l;break}}while(0);c=k[a+(c+4)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[l+20>>2]=c;k[c+24>>2]=l;t=n;g=m;break}else{t=n;g=m}}else{t=n;g=m}}else{t=a;g=b}}while(0);i=k[10222]|0;if(q>>>0>>0)Pa();c=a+(b+4)|0;d=k[c>>2]|0;if(!(d&2)){if((q|0)==(k[10224]|0)){s=(k[10221]|0)+g|0;k[10221]=s;k[10224]=t;k[t+4>>2]=s|1;if((t|0)!=(k[10223]|0))return;k[10223]=0;k[10220]=0;return}if((q|0)==(k[10223]|0)){s=(k[10220]|0)+g|0;k[10220]=s;k[10223]=t;k[t+4>>2]=s|1;k[t+s>>2]=s;return}g=(d&-8)+g|0;f=d>>>3;do{if(d>>>0>=256){h=k[a+(b+24)>>2]|0;e=k[a+(b+12)>>2]|0;do{if((e|0)==(q|0)){d=a+(b+20)|0;c=k[d>>2]|0;if(!c){d=a+(b+16)|0;c=k[d>>2]|0;if(!c){p=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;p=c;break}}else{f=k[a+(b+8)>>2]|0;if(f>>>0>>0)Pa();c=f+12|0;if((k[c>>2]|0)!=(q|0))Pa();d=e+8|0;if((k[d>>2]|0)==(q|0)){k[c>>2]=e;k[d>>2]=f;p=e;break}else Pa()}}while(0);if(h){c=k[a+(b+28)>>2]|0;d=41176+(c<<2)|0;if((q|0)==(k[d>>2]|0)){k[d>>2]=p;if(!p){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=h+16|0;if((k[c>>2]|0)==(q|0))k[c>>2]=p;else k[h+20>>2]=p;if(!p)break}d=k[10222]|0;if(p>>>0>>0)Pa();k[p+24>>2]=h;c=k[a+(b+16)>>2]|0;do{if(c)if(c>>>0>>0)Pa();else{k[p+16>>2]=c;k[c+24>>2]=p;break}}while(0);c=k[a+(b+20)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[p+20>>2]=c;k[c+24>>2]=p;break}}}else{e=k[a+(b+8)>>2]|0;d=k[a+(b+12)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(q|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(q|0))o=c;else Pa()}else o=d+8|0;k[e+12>>2]=d;k[o>>2]=e}}while(0);k[t+4>>2]=g|1;k[t+g>>2]=g;if((t|0)==(k[10223]|0)){k[10220]=g;return}}else{k[c>>2]=d&-2;k[t+4>>2]=g|1;k[t+g>>2]=g}c=g>>>3;if(g>>>0<256){d=c<<1;f=40912+(d<<2)|0;e=k[10218]|0;c=1<>2]|0;if(d>>>0<(k[10222]|0)>>>0)Pa();else{r=c;s=d}}else{k[10218]=e|c;r=40912+(d+2<<2)|0;s=f}k[r>>2]=t;k[s+12>>2]=t;k[t+8>>2]=s;k[t+12>>2]=f;return}c=g>>>8;if(c)if(g>>>0>16777215)f=31;else{r=(c+1048320|0)>>>16&8;s=c<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;c=41176+(f<<2)|0;k[t+28>>2]=f;k[t+20>>2]=0;k[t+16>>2]=0;d=k[10219]|0;e=1<>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}c=k[c>>2]|0;a:do{if((k[c+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=c+16+(f>>>31<<2)|0;e=k[d>>2]|0;if(!e)break;if((k[e+4>>2]&-8|0)==(g|0)){c=e;break a}else{f=f<<1;c=e}}if(d>>>0<(k[10222]|0)>>>0)Pa();k[d>>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}}while(0);d=c+8|0;e=k[d>>2]|0;s=k[10222]|0;if(!(e>>>0>=s>>>0&c>>>0>=s>>>0))Pa();k[e+12>>2]=t;k[d>>2]=t;k[t+8>>2]=e;k[t+12>>2]=c;k[t+24>>2]=0;return}function Vl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;d=k[9321]|0;Zl(42048,d,42104);k[10342]=42892;k[10344]=42912;k[10343]=0;a=k[10720]|0;x=0;ra(62,41368+a|0,42048);f=x;x=0;if(f&1){f=Wa()|0;qn(41376);fb(f|0)}k[41368+(a+72)>>2]=0;k[41368+(a+76)>>2]=-1;e=k[9322]|0;_l(42152,e,42112);k[10364]=42972;k[10365]=42992;c=k[10740]|0;x=0;ra(62,41456+c|0,42152);f=x;x=0;if(f&1){f=Wa()|0;qn(41460);fb(f|0)}a=c+72|0;k[41456+a>>2]=0;b=c+76|0;k[41456+b>>2]=-1;f=k[9320]|0;_l(42200,f,42120);k[10385]=42972;k[10386]=42992;x=0;ra(62,41540+c|0,42200);g=x;x=0;if(g&1){g=Wa()|0;qn(41544);fb(g|0)}k[41540+a>>2]=0;k[41540+b>>2]=-1;g=k[41540+((k[(k[10385]|0)+-12>>2]|0)+24)>>2]|0;k[10406]=42972;k[10407]=42992;x=0;ra(62,41624+c|0,g|0);g=x;x=0;if(g&1){g=Wa()|0;qn(41628);fb(g|0)}k[41624+a>>2]=0;k[41624+b>>2]=-1;k[41368+((k[(k[10342]|0)+-12>>2]|0)+72)>>2]=41456;a=41540+((k[(k[10385]|0)+-12>>2]|0)+4)|0;k[a>>2]=k[a>>2]|8192;k[41540+((k[(k[10385]|0)+-12>>2]|0)+72)>>2]=41456;$l(42248,d,42128);k[10427]=42932;k[10429]=42952;k[10428]=0;a=k[10730]|0;x=0;ra(62,41708+a|0,42248);g=x;x=0;if(g&1){g=Wa()|0;vn(41716);fb(g|0)}k[41708+(a+72)>>2]=0;k[41708+(a+76)>>2]=-1;am(42304,e,42136);k[10449]=43012;k[10450]=43032;c=k[10750]|0;x=0;ra(62,41796+c|0,42304);g=x;x=0;if(g&1){g=Wa()|0;vn(41800);fb(g|0)}a=c+72|0;k[41796+a>>2]=0;b=c+76|0;k[41796+b>>2]=-1;am(42352,f,42144);k[10470]=43012;k[10471]=43032;x=0;ra(62,41880+c|0,42352);g=x;x=0;if(g&1){g=Wa()|0;vn(41884);fb(g|0)}k[41880+a>>2]=0;k[41880+b>>2]=-1;g=k[41880+((k[(k[10470]|0)+-12>>2]|0)+24)>>2]|0;k[10491]=43012;k[10492]=43032;x=0;ra(62,41964+c|0,g|0);g=x;x=0;if(g&1){g=Wa()|0;vn(41968);fb(g|0)}else{k[41964+a>>2]=0;k[41964+b>>2]=-1;k[41708+((k[(k[10427]|0)+-12>>2]|0)+72)>>2]=41796;g=41880+((k[(k[10470]|0)+-12>>2]|0)+4)|0;k[g>>2]=k[g>>2]|8192;k[41880+((k[(k[10470]|0)+-12>>2]|0)+72)>>2]=41796;return}}function Wl(a){a=a|0;x=0;ta(70,41456)|0;a=x;x=0;if(((!(a&1)?(x=0,ta(70,41624)|0,a=x,x=0,!(a&1)):0)?(x=0,ta(71,41796)|0,a=x,x=0,!(a&1)):0)?(x=0,ta(71,41964)|0,a=x,x=0,!(a&1)):0)return;a=Wa(0)|0;oc(a)}function Xl(){Vl(0);tb(187,56757,w|0)|0;return}function Yl(){return}function Zl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;zn(a);k[a>>2]=42600;k[a+32>>2]=b;k[a+40>>2]=c;k[a+48>>2]=-1;i[a+52>>0]=0;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;ra(23,a|0,d|0);c=x;x=0;if(c&1){f=Wa()|0;Qs(d);xn(a);fb(f|0)}else{Qs(d);r=e;return}}function _l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;zn(a);k[a>>2]=42536;k[a+32>>2]=b;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;b=Aa(37,d|0,44280)|0;f=x;x=0;if(f&1){f=Wa()|0;Qs(d);xn(a);fb(f|0)}else{Qs(d);k[a+36>>2]=b;k[a+40>>2]=c;f=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=f;r=e;return}}function $l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;On(a);k[a>>2]=42472;k[a+32>>2]=b;k[a+40>>2]=c;k[a+48>>2]=-1;i[a+52>>0]=0;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;ra(21,a|0,d|0);c=x;x=0;if(c&1){f=Wa()|0;Qs(d);Mn(a);fb(f|0)}else{Qs(d);r=e;return}}function am(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;On(a);k[a>>2]=42408;k[a+32>>2]=b;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;b=Aa(37,d|0,44288)|0;f=x;x=0;if(f&1){f=Wa()|0;Qs(d);Mn(a);fb(f|0)}else{Qs(d);k[a+36>>2]=b;k[a+40>>2]=c;f=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=f;r=e;return}}function bm(a){a=a|0;Mn(a);mj(a);return}function cm(a,b){a=a|0;b=b|0;Ob[k[(k[a>>2]|0)+24>>2]&127](a)|0;b=Ss(b,44288)|0;k[a+36>>2]=b;b=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=b;return}function dm(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j;c=a+36|0;d=a+40|0;e=h+8|0;f=h;b=a+32|0;a:while(1){a=k[c>>2]|0;a=Wb[k[(k[a>>2]|0)+20>>2]&31](a,k[d>>2]|0,h,e,g)|0;l=(k[g>>2]|0)-f|0;if((gl(h,1,l,k[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{i=4;break a}}}if((i|0)==4)a=((dl(k[b>>2]|0)|0)!=0)<<31>>31;r=j;return a|0}function em(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do{if(!(i[a+44>>0]|0))if((c|0)>0){d=b;b=0;while(1){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,k[d>>2]|0)|0)==-1)break a;b=b+1|0;if((b|0)<(c|0))d=d+4|0;else break}}else b=0;else b=gl(b,4,c,k[a+32>>2]|0)|0}while(0);return b|0}function fm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+32|0;o=s+16|0;c=s+8|0;n=s+4|0;m=s;p=(b|0)==-1;a:do{if(!p){k[c>>2]=b;if(i[a+44>>0]|0)if((gl(c,4,1,k[a+32>>2]|0)|0)==1){q=11;break}else{c=-1;break}k[n>>2]=o;j=c+4|0;l=a+36|0;e=a+40|0;f=o+8|0;g=o;h=a+32|0;while(1){a=k[l>>2]|0;a=ac[k[(k[a>>2]|0)+12>>2]&15](a,k[e>>2]|0,c,j,m,o,f,n)|0;if((k[m>>2]|0)==(c|0)){c=-1;break a}if((a|0)==3)break;d=(a|0)==1;if(a>>>0>=2){c=-1;break a}a=(k[n>>2]|0)-g|0;if((gl(o,1,a,k[h>>2]|0)|0)!=(a|0)){c=-1;break a}if(d)c=d?k[m>>2]|0:c;else{q=11;break a}}if((gl(c,1,1,k[h>>2]|0)|0)!=1)c=-1;else q=11}else q=11}while(0);if((q|0)==11)c=p?0:b;r=s;return c|0}function gm(a,b){a=a|0;b=b|0;var c=0,d=0;d=Ss(b,44288)|0;c=a+36|0;k[c>>2]=d;d=Ob[k[(k[d>>2]|0)+24>>2]&127](d)|0;b=a+44|0;k[b>>2]=d;c=k[c>>2]|0;c=(Ob[k[(k[c>>2]|0)+28>>2]&127](c)|0)&1;i[a+53>>0]=c;if((k[b>>2]|0)>8)$r(56783);return}function hm(a){a=a|0;Mn(a);mj(a);return}function im(a){a=a|0;return lm(a,0)|0}function jm(a){a=a|0;return lm(a,1)|0}function km(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;j=l+16|0;h=l+8|0;d=l+4|0;e=l;f=a+52|0;c=(i[f>>0]|0)!=0;a:do{if((b|0)==-1)if(c)b=-1;else{b=k[a+48>>2]|0;i[f>>0]=(b|0)!=-1&1}else{g=a+48|0;b:do{if(c){k[d>>2]=k[g>>2];c=k[a+36>>2]|0;switch(ac[k[(k[c>>2]|0)+12>>2]&15](c,k[a+40>>2]|0,d,d+4|0,e,j,j+8|0,h)|0){case 1:case 2:{b=-1;break a}case 3:{i[j>>0]=k[g>>2];k[h>>2]=j+1;break}default:{}}c=a+32|0;while(1){d=k[h>>2]|0;if(d>>>0<=j>>>0)break b;a=d+-1|0;k[h>>2]=a;if((kl(i[a>>0]|0,k[c>>2]|0)|0)==-1){b=-1;break a}}}}while(0);k[g>>2]=b;i[f>>0]=1}}while(0);r=l;return b|0}function lm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+32|0;p=q+16|0;o=q+8|0;l=q+4|0;m=q;e=a+52|0;a:do{if(i[e>>0]|0){d=a+48|0;c=k[d>>2]|0;if(b){k[d>>2]=-1;i[e>>0]=0}}else{c=k[a+44>>2]|0;c=(c|0)>1?c:1;n=a+32|0;if((c|0)>0){e=0;do{d=hl(k[n>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[p+e>>0]=d;e=e+1|0}while((e|0)<(c|0))}b:do{if(!(i[a+53>>0]|0)){g=a+40|0;h=a+36|0;j=o+4|0;c:while(1){s=k[g>>2]|0;e=s;d=k[e>>2]|0;e=k[e+4>>2]|0;t=k[h>>2]|0;f=p+c|0;switch(ac[k[(k[t>>2]|0)+16>>2]&15](t,s,p,f,l,o,j,m)|0){case 2:{c=-1;break a}case 3:break c;case 1:break;default:break b}t=k[g>>2]|0;k[t>>2]=d;k[t+4>>2]=e;if((c|0)==8){c=-1;break a}d=hl(k[n>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[f>>0]=d;c=c+1|0}k[o>>2]=i[p>>0]}else k[o>>2]=i[p>>0]}while(0);if(b){c=k[o>>2]|0;k[a+48>>2]=c;break}while(1){if((c|0)<=0)break;c=c+-1|0;if((kl(i[p+c>>0]|0,k[n>>2]|0)|0)==-1){c=-1;break a}}c=k[o>>2]|0}}while(0);r=q;return c|0}function mm(a){a=a|0;xn(a);mj(a);return}function nm(a,b){a=a|0;b=b|0;Ob[k[(k[a>>2]|0)+24>>2]&127](a)|0;b=Ss(b,44280)|0;k[a+36>>2]=b;b=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=b;return}function om(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j;c=a+36|0;d=a+40|0;e=h+8|0;f=h;b=a+32|0;a:while(1){a=k[c>>2]|0;a=Wb[k[(k[a>>2]|0)+20>>2]&31](a,k[d>>2]|0,h,e,g)|0;l=(k[g>>2]|0)-f|0;if((gl(h,1,l,k[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{i=4;break a}}}if((i|0)==4)a=((dl(k[b>>2]|0)|0)!=0)<<31>>31;r=j;return a|0}function pm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do{if(!(i[a+44>>0]|0))if((c|0)>0){d=b;b=0;while(1){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,l[d>>0]|0)|0)==-1)break a;b=b+1|0;if((b|0)<(c|0))d=d+1|0;else break}}else b=0;else b=gl(b,1,c,k[a+32>>2]|0)|0}while(0);return b|0}function qm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+32|0;o=s+16|0;c=s+8|0;n=s+4|0;m=s;p=(b|0)==-1;a:do{if(!p){i[c>>0]=b;if(i[a+44>>0]|0)if((gl(c,1,1,k[a+32>>2]|0)|0)==1){q=11;break}else{c=-1;break}k[n>>2]=o;l=c+1|0;e=a+36|0;f=a+40|0;g=o+8|0;h=o;j=a+32|0;while(1){a=k[e>>2]|0;a=ac[k[(k[a>>2]|0)+12>>2]&15](a,k[f>>2]|0,c,l,m,o,g,n)|0;if((k[m>>2]|0)==(c|0)){c=-1;break a}if((a|0)==3)break;d=(a|0)==1;if(a>>>0>=2){c=-1;break a}a=(k[n>>2]|0)-h|0;if((gl(o,1,a,k[j>>2]|0)|0)!=(a|0)){c=-1;break a}if(d)c=d?k[m>>2]|0:c;else{q=11;break a}}if((gl(c,1,1,k[j>>2]|0)|0)!=1)c=-1;else q=11}else q=11}while(0);if((q|0)==11)c=p?0:b;r=s;return c|0}function rm(a,b){a=a|0;b=b|0;var c=0,d=0;d=Ss(b,44280)|0;c=a+36|0;k[c>>2]=d;d=Ob[k[(k[d>>2]|0)+24>>2]&127](d)|0;b=a+44|0;k[b>>2]=d;c=k[c>>2]|0;c=(Ob[k[(k[c>>2]|0)+28>>2]&127](c)|0)&1;i[a+53>>0]=c;if((k[b>>2]|0)>8)$r(56783);return}function sm(a){a=a|0;xn(a);mj(a);return}function tm(a){a=a|0;return wm(a,0)|0}function um(a){a=a|0;return wm(a,1)|0}function vm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;j=l+16|0;h=l+4|0;d=l+8|0;e=l;f=a+52|0;c=(i[f>>0]|0)!=0;a:do{if((b|0)==-1)if(c)b=-1;else{b=k[a+48>>2]|0;i[f>>0]=(b|0)!=-1&1}else{g=a+48|0;b:do{if(c){i[d>>0]=k[g>>2];c=k[a+36>>2]|0;switch(ac[k[(k[c>>2]|0)+12>>2]&15](c,k[a+40>>2]|0,d,d+1|0,e,j,j+8|0,h)|0){case 1:case 2:{b=-1;break a}case 3:{i[j>>0]=k[g>>2];k[h>>2]=j+1;break}default:{}}c=a+32|0;while(1){d=k[h>>2]|0;if(d>>>0<=j>>>0)break b;a=d+-1|0;k[h>>2]=a;if((kl(i[a>>0]|0,k[c>>2]|0)|0)==-1){b=-1;break a}}}}while(0);k[g>>2]=b;i[f>>0]=1}}while(0);r=l;return b|0}function wm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0;s=r;r=r+32|0;q=s+16|0;p=s+8|0;m=s+4|0;n=s;e=a+52|0;a:do{if(i[e>>0]|0){d=a+48|0;c=k[d>>2]|0;if(b){k[d>>2]=-1;i[e>>0]=0}}else{c=k[a+44>>2]|0;c=(c|0)>1?c:1;o=a+32|0;if((c|0)>0){e=0;do{d=hl(k[o>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[q+e>>0]=d;e=e+1|0}while((e|0)<(c|0))}b:do{if(!(i[a+53>>0]|0)){g=a+40|0;h=a+36|0;j=p+1|0;c:while(1){t=k[g>>2]|0;e=t;d=k[e>>2]|0;e=k[e+4>>2]|0;u=k[h>>2]|0;f=q+c|0;switch(ac[k[(k[u>>2]|0)+16>>2]&15](u,t,q,f,m,p,j,n)|0){case 2:{c=-1;break a}case 3:break c;case 1:break;default:break b}u=k[g>>2]|0;k[u>>2]=d;k[u+4>>2]=e;if((c|0)==8){c=-1;break a}d=hl(k[o>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[f>>0]=d;c=c+1|0}i[p>>0]=i[q>>0]|0}else i[p>>0]=i[q>>0]|0}while(0);if(b){c=i[p>>0]|0;k[a+48>>2]=c&255}else{while(1){if((c|0)<=0)break;c=c+-1|0;if((kl(l[q+c>>0]|0,k[o>>2]|0)|0)==-1){c=-1;break a}}c=i[p>>0]|0}c=c&255}}while(0);r=s;return c|0}function xm(a){a=a|0;return}function ym(a){a=a|0;a=a+4|0;k[a>>2]=(k[a>>2]|0)+1;return}function zm(a){a=a|0;var b=0,c=0;c=a+4|0;b=k[c>>2]|0;k[c>>2]=b+-1;if(!b){Lb[k[(k[a>>2]|0)+8>>2]&255](a);a=1}else a=0;return a|0}function Am(a,b){a=a|0;b=b|0;k[a>>2]=36868;x=0;ra(86,a+4|0,((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0)|0);a=x;x=0;if(a&1){a=Wa()|0;fb(a|0)}else return}function Bm(a,b){a=a|0;b=b|0;k[a>>2]=36868;x=0;ra(86,a+4|0,b|0);a=x;x=0;if(a&1){a=Wa()|0;fb(a|0)}else return}function Cm(a,b){a=a|0;b=b|0;var c=0,d=0;d=xl(b)|0;c=lj(d+13|0)|0;k[c>>2]=d;k[c+4>>2]=d;k[c+8>>2]=0;c=c+12|0;vw(c|0,b|0,d+1|0)|0;k[a>>2]=c;return}function Dm(a,b,c){a=a|0;b=b|0;c=c|0;k[a>>2]=c;k[a+4>>2]=b;return}function Em(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;_b[k[(k[a>>2]|0)+12>>2]&15](d,a,b);if((k[d+4>>2]|0)==(k[c+4>>2]|0))d=(k[d>>2]|0)==(k[c>>2]|0);else d=0;r=e;return d|0}function Fm(a,b,c){a=a|0;b=b|0;c=c|0;return((k[b>>2]|0)==(c|0)?(k[b+4>>2]|0)==(a|0):0)|0}function Gm(a,b,c){a=a|0;b=b|0;c=c|0;b=nk(c)|0;Qm(a,b,xl(b)|0);return}function Hm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+16|0;f=g;d=k[b>>2]|0;do{if(d){e=i[c>>0]|0;if(!(e&1))e=(e&255)>>>1;else e=k[c+4>>2]|0;if(e){Zm(c,56990)|0;d=k[b>>2]|0}b=k[b+4>>2]|0;_b[k[(k[b>>2]|0)+24>>2]&15](f,b,d);b=i[f>>0]|0;e=(b&1)==0;x=0;va(30,c|0,(e?f+1|0:k[f+8>>2]|0)|0,(e?(b&255)>>>1:k[f+4>>2]|0)|0)|0;b=x;x=0;if(b&1){g=Wa()|0;Sm(f);fb(g|0)}else{Sm(f);break}}}while(0);k[a>>2]=k[c>>2];k[a+4>>2]=k[c+4>>2];k[a+8>>2]=k[c+8>>2];k[c>>2]=0;k[c+4>>2]=0;k[c+8>>2]=0;r=g;return}function Im(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;d=e+12|0;f=e;Qm(f,c,xl(c)|0);x=0;Fa(10,d|0,b|0,f|0);c=x;x=0;do{if(!(c&1)){x=0;ra(87,a|0,d|0);c=x;x=0;if(c&1){e=Wa()|0;Sm(d);d=e;break}else{Sm(d);Sm(f);k[a>>2]=42664;c=k[b+4>>2]|0;f=a+8|0;k[f>>2]=k[b>>2];k[f+4>>2]=c;r=e;return}}else d=Wa()|0}while(0);Sm(f);fb(d|0)}function Jm(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;f=r;r=r+48|0;e=f+24|0;h=f+16|0;g=f;k[h>>2]=b;k[h+4>>2]=c;Pm(g,d);x=0;Fa(10,e|0,h|0,g|0);d=x;x=0;do{if(!(d&1)){x=0;ra(87,a|0,e|0);h=x;x=0;if(h&1){h=Wa()|0;Sm(e);e=h;break}else{Sm(e);Sm(g);k[a>>2]=42664;k[a+8>>2]=b;k[a+12>>2]=c;r=f;return}}else e=Wa()|0}while(0);Sm(g);fb(e|0)}function Km(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=r;r=r+48|0;d=e+24|0;g=e+16|0;f=e;k[g>>2]=b;k[g+4>>2]=c;Qm(f,58898,0);x=0;Fa(10,d|0,g|0,f|0);g=x;x=0;do{if(!(g&1)){x=0;ra(87,a|0,d|0);g=x;x=0;if(g&1){g=Wa()|0;Sm(d);d=g;break}else{Sm(d);Sm(f);k[a>>2]=42664;k[a+8>>2]=b;k[a+12>>2]=c;r=e;return}}else d=Wa()|0}while(0);Sm(f);fb(d|0)}function Lm(a){a=a|0;wj(a);return}function Mm(a){a=a|0;wj(a);mj(a);return}function Nm(a){a=a|0;return}function Om(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;Ab(42676)|0;if((k[a>>2]|0)==1)do{Ma(42704,42676)|0}while((k[a>>2]|0)==1);do{if(!(k[a>>2]|0)){k[a>>2]=1;x=0;ta(72,42676)|0;d=x;x=0;if((((!(d&1)?(x=0,qa(c|0,b|0),d=x,x=0,!(d&1)):0)?(x=0,ta(73,42676)|0,d=x,x=0,!(d&1)):0)?(k[a>>2]=-1,x=0,ta(72,42676)|0,d=x,x=0,!(d&1)):0)?(x=0,ta(74,42704)|0,d=x,x=0,!(d&1)):0)break;d=Wa(0)|0;cb(d|0)|0;x=0;ta(73,42676)|0;d=x;x=0;if((!(d&1)?(k[a>>2]=0,x=0,ta(72,42676)|0,d=x,x=0,!(d&1)):0)?(x=0,ta(74,42704)|0,d=x,x=0,!(d&1)):0){x=0;Ga(5);x=0}b=Wa()|0;x=0;Ga(3);d=x;x=0;if(d&1){d=Wa(0)|0;oc(d)}else fb(b|0)}else lb(42676)|0}while(0);return}function Pm(a,b){a=a|0;b=b|0;if(!(i[b>>0]&1)){k[a>>2]=k[b>>2];k[a+4>>2]=k[b+4>>2];k[a+8>>2]=k[b+8>>2]}else Qm(a,k[b+8>>2]|0,k[b+4>>2]|0);return}function Qm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(c>>>0>4294967279)ij(a);if(c>>>0<11){i[a>>0]=c<<1;a=a+1|0}else{e=c+16&-16;d=lj(e)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=c;a=d}vw(a|0,b|0,c|0)|0;i[a+c>>0]=0;return}function Rm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(b>>>0>4294967279)ij(a);if(b>>>0<11){i[a>>0]=b<<1;a=a+1|0}else{e=b+16&-16;d=lj(e)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=b;a=d}sw(a|0,c|0,b|0)|0;i[a+b>>0]=0;return}function Sm(a){a=a|0;if(i[a>>0]&1)mj(k[a+8>>2]|0);return}function Tm(a,b){a=a|0;b=b|0;var c=0,d=0;if((a|0)!=(b|0)){c=i[b>>0]|0;d=(c&1)==0;Vm(a,d?b+1|0:k[b+8>>2]|0,d?(c&255)>>>1:k[b+4>>2]|0)|0}return a|0}function Um(a,b){a=a|0;b=b|0;return Vm(a,b,xl(b)|0)|0}function Vm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))f=10;else{d=k[a>>2]|0;f=(d&-2)+-1|0;d=d&255}e=(d&1)==0;do{if(f>>>0>=c>>>0){if(e)d=a+1|0;else d=k[a+8>>2]|0;xw(d|0,b|0,c|0)|0;i[d+c>>0]=0;if(!(i[a>>0]&1)){i[a>>0]=c<<1;break}else{k[a+4>>2]=c;break}}else{if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;an(a,f,c-f|0,d,0,d,c,b)}}while(0);return a|0}function Wm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i[a>>0]|0;e=(d&1)==0;if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;do{if(d>>>0>=b>>>0)if(e){i[a+1+b>>0]=0;i[a>>0]=b<<1;break}else{i[(k[a+8>>2]|0)+b>>0]=0;k[a+4>>2]=b;break}else Xm(a,b-d|0,c)|0}while(0);return}function Xm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;if(b){d=i[a>>0]|0;if(!(d&1))e=10;else{d=k[a>>2]|0;e=(d&-2)+-1|0;d=d&255}if(!(d&1))f=(d&255)>>>1;else f=k[a+4>>2]|0;if((e-f|0)>>>0>>0){bn(a,e,b-e+f|0,f,f,0,0);d=i[a>>0]|0}if(!(d&1))e=a+1|0;else e=k[a+8>>2]|0;sw(e+f|0,c|0,b|0)|0;d=f+b|0;if(!(i[a>>0]&1))i[a>>0]=d<<1;else k[a+4>>2]=d;i[e+d>>0]=0}return a|0}function Ym(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>4294967279)ij(a);c=i[a>>0]|0;if(!(c&1))d=10;else{c=k[a>>2]|0;d=(c&-2)+-1|0;c=c&255}if(!(c&1))h=(c&255)>>>1;else h=k[a+4>>2]|0;b=h>>>0>b>>>0?h:b;if(b>>>0<11)g=10;else g=(b+16&-16)+-1|0;a:do{if((g|0)!=(d|0)){do{if((g|0)!=10){b=g+1|0;if(g>>>0<=d>>>0){x=0;b=ta(67,b|0)|0;f=x;x=0;if(f&1){a=Wa(0)|0;cb(a|0)|0;eb();break a}}else b=lj(b)|0;if(!(c&1)){d=1;e=a+1|0;f=0;break}else{d=1;e=k[a+8>>2]|0;f=1;break}}else{b=a+1|0;d=0;e=k[a+8>>2]|0;f=1}}while(0);if(!(c&1))c=(c&255)>>>1;else c=k[a+4>>2]|0;vw(b|0,e|0,c+1|0)|0;if(f)mj(e);if(d){k[a>>2]=g+1|1;k[a+4>>2]=h;k[a+8>>2]=b;break}else{i[a>>0]=h<<1;break}}}while(0);return}function Zm(a,b){a=a|0;b=b|0;return $m(a,b,xl(b)|0)|0}function _m(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i[a>>0]|0;d=(c&1)!=0;if(d){e=(k[a>>2]&-2)+-1|0;f=k[a+4>>2]|0}else{e=10;f=(c&255)>>>1}if((f|0)==(e|0)){bn(a,e,1,e,e,0,0);if(!(i[a>>0]&1))e=7;else e=8}else if(d)e=8;else e=7;if((e|0)==7){i[a>>0]=(f<<1)+2;c=a+1|0;d=f+1|0}else if((e|0)==8){c=k[a+8>>2]|0;d=f+1|0;k[a+4>>2]=d}i[c+f>>0]=b;i[c+d>>0]=0;return}function $m(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))e=10;else{d=k[a>>2]|0;e=(d&-2)+-1|0;d=d&255}if(!(d&1))f=(d&255)>>>1;else f=k[a+4>>2]|0;if((e-f|0)>>>0>=c>>>0){if(c){if(!(d&1))e=a+1|0;else e=k[a+8>>2]|0;vw(e+f|0,b|0,c|0)|0;d=f+c|0;if(!(i[a>>0]&1))i[a>>0]=d<<1;else k[a+4>>2]=d;i[e+d>>0]=0}}else an(a,e,c-e+f|0,f,f,0,c,b);return a|0}function an(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 j=0,l=0,m=0;if((-18-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))m=a+1|0;else m=k[a+8>>2]|0;if(b>>>0<2147483623){j=c+b|0;l=b<<1;j=j>>>0>>0?l:j;j=j>>>0<11?11:j+16&-16}else j=-17;l=lj(j)|0;if(e)vw(l|0,m|0,e|0)|0;if(g)vw(l+e|0,h|0,g|0)|0;c=d-f|0;if((c|0)!=(e|0))vw(l+(g+e)|0,m+(f+e)|0,c-e|0)|0;if((b|0)!=10)mj(m);k[a+8>>2]=l;k[a>>2]=j|1;b=c+g|0;k[a+4>>2]=b;i[l+b>>0]=0;return}function bn(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0;if((-17-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))l=a+1|0;else l=k[a+8>>2]|0;if(b>>>0<2147483623){h=c+b|0;j=b<<1;h=h>>>0>>0?j:h;h=h>>>0<11?11:h+16&-16}else h=-17;j=lj(h)|0;if(e)vw(j|0,l|0,e|0)|0;c=d-f|0;if((c|0)!=(e|0))vw(j+(g+e)|0,l+(f+e)|0,c-e|0)|0;if((b|0)!=10)mj(l);k[a+8>>2]=j;k[a>>2]=h|1;return}function cn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(c>>>0>1073741807)ij(a);if(c>>>0<2){i[a>>0]=c<<1;a=a+4|0}else{e=c+4&-4;d=lj(e<<2)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=c;a=d}Al(a,b,c)|0;k[a+(c<<2)>>2]=0;return}function dn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(b>>>0>1073741807)ij(a);if(b>>>0<2){i[a>>0]=b<<1;a=a+4|0}else{e=b+4&-4;d=lj(e<<2)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=b;a=d}Cl(a,c,b)|0;k[a+(b<<2)>>2]=0;return}function en(a){a=a|0;if(i[a>>0]&1)mj(k[a+8>>2]|0);return}function fn(a,b){a=a|0;b=b|0;return gn(a,b,zl(b)|0)|0}function gn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))f=1;else{d=k[a>>2]|0;f=(d&-2)+-1|0;d=d&255}e=(d&1)==0;do{if(f>>>0>=c>>>0){if(e)d=a+4|0;else d=k[a+8>>2]|0;Bl(d,b,c)|0;k[d+(c<<2)>>2]=0;if(!(i[a>>0]&1)){i[a>>0]=c<<1;break}else{k[a+4>>2]=c;break}}else{if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;kn(a,f,c-f|0,d,0,d,c,b)}}while(0);return a|0}function hn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>1073741807)ij(a);c=i[a>>0]|0;if(!(c&1))d=1;else{c=k[a>>2]|0;d=(c&-2)+-1|0;c=c&255}if(!(c&1))h=(c&255)>>>1;else h=k[a+4>>2]|0;b=h>>>0>b>>>0?h:b;if(b>>>0<2)g=1;else g=(b+4&-4)+-1|0;a:do{if((g|0)!=(d|0)){do{if((g|0)!=1){b=(g<<2)+4|0;if(g>>>0<=d>>>0){x=0;b=ta(67,b|0)|0;f=x;x=0;if(f&1){a=Wa(0)|0;cb(a|0)|0;eb();break a}}else b=lj(b)|0;if(!(c&1)){d=1;e=a+4|0;f=0;break}else{d=1;e=k[a+8>>2]|0;f=1;break}}else{b=a+4|0;d=0;e=k[a+8>>2]|0;f=1}}while(0);if(!(c&1))c=(c&255)>>>1;else c=k[a+4>>2]|0;Al(b,e,c+1|0)|0;if(f)mj(e);if(d){k[a>>2]=g+1|1;k[a+4>>2]=h;k[a+8>>2]=b;break}else{i[a>>0]=h<<1;break}}}while(0);return}function jn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i[a>>0]|0;d=(c&1)!=0;if(d){e=(k[a>>2]&-2)+-1|0;f=k[a+4>>2]|0}else{e=1;f=(c&255)>>>1}if((f|0)==(e|0)){ln(a,e,1,e,e,0,0);if(!(i[a>>0]&1))e=7;else e=8}else if(d)e=8;else e=7;if((e|0)==7){i[a>>0]=(f<<1)+2;c=a+4|0;d=f+1|0}else if((e|0)==8){c=k[a+8>>2]|0;d=f+1|0;k[a+4>>2]=d}k[c+(f<<2)>>2]=b;k[c+(d<<2)>>2]=0;return}function kn(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 j=0,l=0,m=0;if((1073741806-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))m=a+4|0;else m=k[a+8>>2]|0;if(b>>>0<536870887){j=c+b|0;l=b<<1;j=j>>>0>>0?l:j;j=j>>>0<2?2:j+4&-4}else j=1073741807;l=lj(j<<2)|0;if(e)Al(l,m,e)|0;if(g)Al(l+(e<<2)|0,h,g)|0;c=d-f|0;if((c|0)!=(e|0))Al(l+(g+e<<2)|0,m+(f+e<<2)|0,c-e|0)|0;if((b|0)!=1)mj(m);k[a+8>>2]=l;k[a>>2]=j|1;b=c+g|0;k[a+4>>2]=b;k[l+(b<<2)>>2]=0;return}function ln(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0;if((1073741807-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))l=a+4|0;else l=k[a+8>>2]|0;if(b>>>0<536870887){h=c+b|0;j=b<<1;h=h>>>0>>0?j:h;h=h>>>0<2?2:h+4&-4}else h=1073741807;j=lj(h<<2)|0;if(e)Al(j,l,e)|0;c=d-f|0;if((c|0)!=(e|0))Al(j+(g+e<<2)|0,l+(f+e<<2)|0,c-e|0)|0;if((b|0)!=1)mj(l);k[a+8>>2]=j;k[a>>2]=h|1;return}function mn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=b;d=c-e|0;if(d>>>0>4294967279)ij(a);if(d>>>0<11){i[a>>0]=d<<1;f=a+1|0}else{g=d+16&-16;f=lj(g)|0;k[a+8>>2]=f;k[a>>2]=g|1;k[a+4>>2]=d}a=c-e|0;if((b|0)!=(c|0)){d=f;while(1){i[d>>0]=i[b>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else d=d+1|0}}i[f+a>>0]=0;return}function nn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b;d=c-f|0;e=d>>2;if(e>>>0>1073741807)ij(a);if(e>>>0<2){i[a>>0]=d>>>1;a=a+4|0}else{g=e+4&-4;d=lj(g<<2)|0;k[a+8>>2]=d;k[a>>2]=g|1;k[a+4>>2]=e;a=d}e=(c-f|0)>>>2;if((b|0)!=(c|0)){d=a;while(1){k[d>>2]=k[b>>2];b=b+4|0;if((b|0)==(c|0))break;else d=d+4|0}}k[a+(e<<2)>>2]=0;return}function on(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=r;r=r+16|0;d=c;e=(k[a+24>>2]|0)==0;k[a+16>>2]=e&1|b;if(!((e&1|b)&k[a+20>>2])){r=c;return}b=Va(16)|0;Co()|0;k[d>>2]=1;k[d+4>>2]=43112;x=0;Fa(11,b|0,57437,d|0);e=x;x=0;if(e&1){e=Wa()|0;Ua(b|0);fb(e|0)}else ub(b|0,864,112)}function pn(a){a=a|0;var b=0;k[a>>2]=43068;x=0;ra(88,a|0,0);b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else{Qs(a+28|0);Ql(k[a+32>>2]|0);Ql(k[a+36>>2]|0);Ql(k[a+48>>2]|0);Ql(k[a+60>>2]|0);return}}function qn(a){a=a|0;pn(a);return}function rn(a){a=a|0;pn(a);mj(a);return}function sn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=k[a+40>>2]|0;d=a+32|0;e=a+36|0;if(c)do{c=c+-1|0;_b[k[(k[d>>2]|0)+(c<<2)>>2]&15](b,a,k[(k[e>>2]|0)+(c<<2)>>2]|0)}while((c|0)!=0);return}function tn(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;Ps(b,a+28|0);r=c;return k[b>>2]|0}function un(a,b){a=a|0;b=b|0;var c=0;k[a+24>>2]=b;k[a+16>>2]=(b|0)==0&1;k[a+20>>2]=0;k[a+4>>2]=4098;k[a+12>>2]=0;k[a+8>>2]=6;c=a+28|0;b=a+32|0;a=b+40|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(a|0));Os(c);return}function vn(a){a=a|0;pn(a);return}function wn(a){a=a|0;pn(a);mj(a);return}function xn(a){a=a|0;k[a>>2]=42760;Qs(a+4|0);return}function yn(a){a=a|0;k[a>>2]=42760;Qs(a+4|0);mj(a);return}function zn(a){a=a|0;k[a>>2]=42760;Os(a+4|0);a=a+8|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;return}function An(a,b){a=a|0;b=b|0;return}function Bn(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Cn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Dn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function En(a){a=a|0;return 0}function Fn(a){a=a|0;return 0}function Gn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+12|0;g=a+16|0;a:do{if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0<(k[g>>2]|0)>>>0){k[f>>2]=d+1;d=i[d>>0]|0}else{d=Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;if((d|0)==-1)break a;d=d&255}i[e>>0]=d;b=b+1|0;if((b|0)<(c|0))e=e+1|0;else break}}else b=0}while(0);return b|0}function Hn(a){a=a|0;return-1}function In(a){a=a|0;var b=0;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=k[b>>2]|0;k[b>>2]=a+1;a=l[a>>0]|0}return a|0}function Jn(a,b){a=a|0;b=b|0;return-1}function Kn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=a+24|0;g=a+28|0;a:do{if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,l[e>>0]|0)|0)==-1)break a}else{h=i[e>>0]|0;k[f>>2]=d+1;i[d>>0]=h}b=b+1|0;if((b|0)<(c|0))e=e+1|0;else break}}else b=0}while(0);return b|0}function Ln(a,b){a=a|0;b=b|0;return-1}function Mn(a){a=a|0;k[a>>2]=42824;Qs(a+4|0);return}function Nn(a){a=a|0;k[a>>2]=42824;Qs(a+4|0);mj(a);return}function On(a){a=a|0;k[a>>2]=42824;Os(a+4|0);a=a+8|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;return}function Pn(a,b){a=a|0;b=b|0;return}function Qn(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Rn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Sn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Tn(a){a=a|0;return 0}function Un(a){a=a|0;return 0}function Vn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+12|0;g=a+16|0;a:do{if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){d=Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;if((d|0)==-1)break a}else{k[f>>2]=d+4;d=k[d>>2]|0}k[e>>2]=d;b=b+1|0;if((b|0)<(c|0))e=e+4|0;else break}}else b=0}while(0);return b|0}function Wn(a){a=a|0;return-1}function Xn(a){a=a|0;var b=0;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=k[b>>2]|0;k[b>>2]=a+4;a=k[a>>2]|0}return a|0}function Yn(a,b){a=a|0;b=b|0;return-1}function Zn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=a+24|0;g=a+28|0;a:do{if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,k[e>>2]|0)|0)==-1)break a}else{h=k[e>>2]|0;k[f>>2]=d+4;k[d>>2]=h}b=b+1|0;if((b|0)<(c|0))e=e+4|0;else break}}else b=0}while(0);return b|0}function _n(a,b){a=a|0;b=b|0;return-1}function $n(a){a=a|0;pn(a+8|0);return}function ao(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+8)|0);return}function bo(a){a=a|0;pn(a+8|0);mj(a);return}function co(a){a=a|0;bo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function eo(a){a=a|0;var b=0,c=0,d=0,e=0;d=r;r=r+16|0;c=d;a:do{if(k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0){x=0;ra(65,c|0,a|0);b=x;x=0;b:do{if(b&1)b=Wa(0)|0;else{do{if(i[c>>0]|0){b=k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;e=x;x=0;if(!(e&1)){if((b|0)!=-1)break;e=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+e|0,k[a+(e+16)>>2]|1|0);e=x;x=0;if(!(e&1))break}b=Wa(0)|0;ro(c);break b}}while(0);ro(c);break a}}while(0);cb(b|0)|0;x=0;qa(181,a+(k[(k[a>>2]|0)+-12>>2]|0)|0);e=x;x=0;if(!(e&1)){eb();break}b=Wa()|0;x=0;Ga(3);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else fb(b|0)}}while(0);r=d;return a|0}function fo(a){a=a|0;var b=0;b=a+16|0;k[b>>2]=k[b>>2]|1;if(!(k[a+20>>2]&1))return;else vb()}function go(a){a=a|0;pn(a+8|0);return}function ho(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+8)|0);return}function io(a){a=a|0;pn(a+8|0);mj(a);return}function jo(a){a=a|0;io(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function ko(a){a=a|0;var b=0,c=0,d=0,e=0;d=r;r=r+16|0;c=d;a:do{if(k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0){x=0;ra(89,c|0,a|0);b=x;x=0;b:do{if(b&1)b=Wa(0)|0;else{do{if(i[c>>0]|0){b=k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;e=x;x=0;if(!(e&1)){if((b|0)!=-1)break;e=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+e|0,k[a+(e+16)>>2]|1|0);e=x;x=0;if(!(e&1))break}b=Wa(0)|0;zo(c);break b}}while(0);zo(c);break a}}while(0);cb(b|0)|0;x=0;qa(181,a+(k[(k[a>>2]|0)+-12>>2]|0)|0);e=x;x=0;if(!(e&1)){eb();break}b=Wa()|0;x=0;Ga(3);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else fb(b|0)}}while(0);r=d;return a|0}function lo(a,b){a=a|0;b=b|0;return}function mo(a){a=a|0;pn(a+4|0);return}function no(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+4)|0);return}function oo(a){a=a|0;pn(a+4|0);mj(a);return}function po(a){a=a|0;oo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function qo(a,b){a=a|0;b=b|0;var c=0;i[a>>0]=0;k[a+4>>2]=b;c=k[(k[b>>2]|0)+-12>>2]|0;if(!(k[b+(c+16)>>2]|0)){c=k[b+(c+72)>>2]|0;if(c)eo(c)|0;i[a>>0]=1}return}function ro(a){a=a|0;var b=0,c=0;a=a+4|0;c=k[a>>2]|0;b=k[(k[c>>2]|0)+-12>>2]|0;do{if((((k[c+(b+24)>>2]|0)!=0?(k[c+(b+16)>>2]|0)==0:0)?(k[c+(b+4)>>2]&8192|0)!=0:0)?!(gb()|0):0){b=k[a>>2]|0;b=k[b+((k[(k[b>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;c=x;x=0;if(!(c&1)){if((b|0)!=-1)break;b=k[a>>2]|0;c=k[(k[b>>2]|0)+-12>>2]|0;x=0;ra(66,b+c|0,k[b+(c+16)>>2]|1|0);c=x;x=0;if(!(c&1))break}c=Wa(0)|0;cb(c|0)|0;x=0;Ga(3);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}}}while(0);return}function so(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;h=o+20|0;j=o+16|0;m=o+8|0;c=o;x=0;ra(65,m|0,a|0);l=x;x=0;a:do{if(l&1){c=Wa(0)|0;d=a;e=a;n=19}else{do{if(i[m>>0]|0){l=tn(a+(k[(k[a>>2]|0)+-12>>2]|0)|0)|0;k[c>>2]=l;x=0;l=Aa(37,c|0,43392)|0;g=x;x=0;if(g&1){n=Wa(0)|0;Qs(c);c=n}else{Qs(c);e=k[(k[a>>2]|0)+-12>>2]|0;g=k[a+(e+24)>>2]|0;d=a+e|0;e=a+(e+76)|0;c=k[e>>2]|0;do{if((c|0)==-1){c=tn(d)|0;k[h>>2]=c;x=0;c=Aa(37,h|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(h);c=f<<24>>24;k[e>>2]=c;n=10;break}c=Wa(0)|0;Qs(h)}else n=10}while(0);if((n|0)==10){p=k[(k[l>>2]|0)+16>>2]|0;k[j>>2]=g;x=0;k[h>>2]=k[j>>2];c=Ba(p|0,l|0,h|0,d|0,c&255|0,b|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break}c=Wa(0)|0}}ro(m);d=a;e=a;n=19;break a}}while(0);ro(m)}}while(0);do{if((n|0)==19){cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();break}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0)}}while(0);r=o;return a|0}function to(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;h=o+20|0;j=o+16|0;m=o+8|0;c=o;x=0;ra(65,m|0,a|0);l=x;x=0;a:do{if(l&1){c=Wa(0)|0;d=a;e=a;n=19}else{do{if(i[m>>0]|0){l=tn(a+(k[(k[a>>2]|0)+-12>>2]|0)|0)|0;k[c>>2]=l;x=0;l=Aa(37,c|0,43392)|0;g=x;x=0;if(g&1){n=Wa(0)|0;Qs(c);c=n}else{Qs(c);e=k[(k[a>>2]|0)+-12>>2]|0;g=k[a+(e+24)>>2]|0;d=a+e|0;e=a+(e+76)|0;c=k[e>>2]|0;do{if((c|0)==-1){c=tn(d)|0;k[h>>2]=c;x=0;c=Aa(37,h|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(h);c=f<<24>>24;k[e>>2]=c;n=10;break}c=Wa(0)|0;Qs(h)}else n=10}while(0);if((n|0)==10){p=k[(k[l>>2]|0)+24>>2]|0;k[j>>2]=g;x=0;k[h>>2]=k[j>>2];c=Ba(p|0,l|0,h|0,d|0,c&255|0,b|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break}c=Wa(0)|0}}ro(m);d=a;e=a;n=19;break a}}while(0);ro(m)}}while(0);do{if((n|0)==19){cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();break}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0)}}while(0);r=o;return a|0}function uo(a){a=a|0;pn(a+4|0);return}function vo(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+4)|0);return}function wo(a){a=a|0;pn(a+4|0);mj(a);return}function xo(a){a=a|0;wo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function yo(a,b){a=a|0;b=b|0;var c=0;i[a>>0]=0;k[a+4>>2]=b;c=k[(k[b>>2]|0)+-12>>2]|0;if(!(k[b+(c+16)>>2]|0)){c=k[b+(c+72)>>2]|0;if(c)ko(c)|0;i[a>>0]=1}return}function zo(a){a=a|0;var b=0,c=0;a=a+4|0;c=k[a>>2]|0;b=k[(k[c>>2]|0)+-12>>2]|0;do{if((((k[c+(b+24)>>2]|0)!=0?(k[c+(b+16)>>2]|0)==0:0)?(k[c+(b+4)>>2]&8192|0)!=0:0)?!(gb()|0):0){b=k[a>>2]|0;b=k[b+((k[(k[b>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;c=x;x=0;if(!(c&1)){if((b|0)!=-1)break;b=k[a>>2]|0;c=k[(k[b>>2]|0)+-12>>2]|0;x=0;ra(66,b+c|0,k[b+(c+16)>>2]|1|0);c=x;x=0;if(!(c&1))break}c=Wa(0)|0;cb(c|0)|0;x=0;Ga(3);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}}}while(0);return}function Ao(a){a=a|0;return 57453}function Bo(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)!=1&(c|0)<257)Gm(a,b,c);else Qm(a,57462,35);return}function Co(){if((i[1048]|0)==0?(Qa(1048)|0)!=0:0){k[10778]=43084;tb(72,43112,w|0)|0;Ya(1048)}return 43112}function Do(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=r;r=r+16|0;e=d+8|0;f=d;h=c;g=k[h+4>>2]|0;c=f;k[c>>2]=k[h>>2];k[c+4>>2]=g;k[e>>2]=k[f>>2];k[e+4>>2]=k[f+4>>2];Im(a,e,b);k[a>>2]=43048;r=d;return}function Eo(a){a=a|0;Lm(a);return}function Fo(a){a=a|0;Lm(a);mj(a);return}function Go(a){a=a|0;pn(a);mj(a);return}function Ho(a){a=a|0;mj(a);return}function Io(a){a=a|0;return}function Jo(a){a=a|0;return}function Ko(a){a=a|0;mj(a);return}function Lo(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;a:do{if((d|0)==(e|0))g=6;else while(1){if((b|0)==(c|0)){b=-1;break a}a=i[b>>0]|0;f=i[d>>0]|0;if(a<<24>>24>24){b=-1;break a}if(f<<24>>24>24){b=1;break a}b=b+1|0;d=d+1|0;if((d|0)==(e|0)){g=6;break}}}while(0);if((g|0)==6)b=(b|0)!=(c|0)&1;return b|0}function Mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mn(a,c,d);return}function No(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)==(c|0))a=0;else{a=0;do{a=(i[b>>0]|0)+(a<<4)|0;d=a&-268435456;a=(d>>>24|d)^a;b=b+1|0}while((b|0)!=(c|0))}return a|0}function Oo(a){a=a|0;return}function Po(a){a=a|0;mj(a);return}function Qo(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;a:do{if((d|0)==(e|0))g=6;else while(1){if((b|0)==(c|0)){b=-1;break a}a=k[b>>2]|0;f=k[d>>2]|0;if((a|0)<(f|0)){b=-1;break a}if((f|0)<(a|0)){b=1;break a}b=b+4|0;d=d+4|0;if((d|0)==(e|0)){g=6;break}}}while(0);if((g|0)==6)b=(b|0)!=(c|0)&1;return b|0}function Ro(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;nn(a,c,d);return}function So(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)==(c|0))a=0;else{a=0;do{a=(k[b>>2]|0)+(a<<4)|0;d=a&-268435456;a=(d>>>24|d)^a;b=b+4|0}while((b|0)!=(c|0))}return a|0}function To(a){a=a|0;return}function Uo(a){a=a|0;mj(a);return}function Vo(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;q=r;r=r+64|0;o=q+56|0;g=q+52|0;m=q+48|0;h=q+44|0;j=q+40|0;l=q+36|0;n=q+32|0;s=q+8|0;p=q;a:do{if(!(k[d+4>>2]&1)){k[m>>2]=-1;s=k[(k[a>>2]|0)+16>>2]|0;k[h>>2]=k[b>>2];k[j>>2]=k[c>>2];k[g>>2]=k[h>>2];k[o>>2]=k[j>>2];g=Nb[s&63](a,g,o,d,e,m)|0;k[b>>2]=g;switch(k[m>>2]|0){case 0:{i[f>>0]=0;break a}case 1:{i[f>>0]=1;break a}default:{i[f>>0]=1;k[e>>2]=4;break a}}}else{g=tn(d)|0;k[l>>2]=g;x=0;a=Aa(37,l|0,44220)|0;m=x;x=0;do{if(!(m&1)){zm(g)|0;g=tn(d)|0;k[n>>2]=g;x=0;j=Aa(37,n|0,44360)|0;n=x;x=0;if(n&1){s=Wa()|0;zm(g)|0;g=s;break}zm(g)|0;x=0;ra(k[(k[j>>2]|0)+24>>2]|0,s|0,j|0);n=x;x=0;if(!(n&1)){h=s+12|0;x=0;ra(k[(k[j>>2]|0)+28>>2]|0,h|0,j|0);n=x;x=0;if(!(n&1)){k[p>>2]=k[c>>2];x=0;k[o>>2]=k[p>>2];g=na(7,b|0,o|0,s|0,s+24|0,a|0,e|0,1)|0;e=x;x=0;if(e&1){g=Wa()|0;Sm(s+12|0);Sm(s);break}else{i[f>>0]=(g|0)==(s|0)&1;g=k[b>>2]|0;Sm(s+12|0);Sm(s);break a}}}else h=s;g=Wa()|0;j=M;if((s|0)!=(h|0))do{h=h+-12|0;Sm(h)}while((h|0)!=(s|0))}else{s=Wa()|0;zm(g)|0;g=s}}while(0);fb(g|0)}}while(0);r=q;return g|0}function Wo(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Iu(a,i,h,d,e,f)|0;r=g;return a|0}function Xo(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ju(a,i,h,d,e,f)|0;r=g;return a|0}function Yo(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ku(a,i,h,d,e,f)|0;r=g;return a|0}function Zo(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Lu(a,i,h,d,e,f)|0;r=g;return a|0}function _o(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Mu(a,i,h,d,e,f)|0;r=g;return a|0}function $o(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Nu(a,i,h,d,e,f)|0;r=g;return a|0}function ap(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ou(a,i,h,d,e,f)|0;r=g;return a|0}function bp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Pu(a,i,h,d,e,f)|0;r=g;return a|0}function cp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Qu(a,i,h,d,e,f)|0;r=g;return a|0}function dp(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;C=r;r=r+240|0;w=C;q=C+208|0;E=C+32|0;a=C+28|0;D=C+16|0;v=C+12|0;t=C+48|0;u=C+8|0;s=C+4|0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;x=0;d=ta(68,d|0)|0;p=x;x=0;do{if(p&1)a=Wa()|0;else{k[a>>2]=d;x=0;a=Aa(37,a|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,Ea(k[(k[a>>2]|0)+32>>2]|0,a|0,57498,57524,q|0)|0,p=x,x=0,!(p&1)):0){zm(d)|0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;if(!(i[D>>0]&1))a=10;else a=(k[D>>2]&-2)+-1|0;x=0;Fa(8,D|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){o=D+8|0;p=D+1|0;d=(i[D>>0]&1)==0?p:k[o>>2]|0;k[v>>2]=d;k[u>>2]=t;k[s>>2]=0;n=D+4|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){F=29;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){F=29;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;F=19;break}}else F=19}while(0);if((F|0)==19){F=0;if(h){g=0;break}else g=0}h=i[D>>0]|0;h=(h&1)==0?(h&255)>>>1:k[n>>2]|0;if((k[v>>2]|0)==(d+h|0)){x=0;Fa(8,D|0,h<<1|0,0);m=x;x=0;if(m&1){F=29;break}if(!(i[D>>0]&1))d=10;else d=(k[D>>2]&-2)+-1|0;x=0;Fa(8,D|0,d|0,0);m=x;x=0;if(m&1){F=29;break}d=(i[D>>0]&1)==0?p:k[o>>2]|0;k[v>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=29;break}}else h=l[h>>0]|0;if(ep(h&255,16,d,v,s,0,E,t,u,q)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=29;break}else continue}else{k[j>>2]=g+1;continue}}if((F|0)==29){a=Wa()|0;break}x=0;Fa(8,D|0,(k[v>>2]|0)-d|0,0);G=x;x=0;if((!(G&1)?(y=i[D>>0]|0,z=k[o>>2]|0,x=0,A=Da(3)|0,G=x,x=0,!(G&1)):0)?(x=0,k[w>>2]=f,B=Ea(16,((y&1)==0?p:z)|0,A|0,58882,w|0)|0,G=x,x=0,!(G&1)):0){if((B|0)!=1)k[e>>2]=4;if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=30;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;G=x;x=0;if(G&1){F=30;break a}if((a|0)==-1){k[c>>2]=0;F=55;break}}if(!d)F=56}else F=55}while(0);if((F|0)==55?d:0)F=56;if((F|0)==56)k[e>>2]=k[e>>2]|2;G=k[b>>2]|0;Sm(D);Sm(E);r=C;return G|0}else F=30}else F=30}while(0);if((F|0)==30)a=Wa()|0;Sm(D);break}a=Wa()|0;zm(d)|0}}while(0);Sm(E);fb(a|0);return 0}function ep(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0;o=k[d>>2]|0;p=(o|0)==(c|0);do{if(p){m=(i[l+24>>0]|0)==a<<24>>24;if(!m?(i[l+25>>0]|0)!=a<<24>>24:0){n=5;break}k[d>>2]=c+1;i[c>>0]=m?43:45;k[e>>2]=0;m=0}else n=5}while(0);a:do{if((n|0)==5){n=i[g>>0]|0;if(a<<24>>24==f<<24>>24?(((n&1)==0?(n&255)>>>1:k[g+4>>2]|0)|0)!=0:0){m=k[j>>2]|0;if((m-h|0)>=160){m=0;break}b=k[e>>2]|0;k[j>>2]=m+4;k[m>>2]=b;k[e>>2]=0;m=0;break}g=l+26|0;m=l;while(1){if((i[m>>0]|0)==a<<24>>24)break;m=m+1|0;if((m|0)==(g|0)){m=g;break}}m=m-l|0;if((m|0)>23)m=-1;else{switch(b|0){case 10:case 8:{if((m|0)>=(b|0)){m=-1;break a}break}case 16:{if((m|0)>=22){if(p){m=-1;break a}if((o-c|0)>=3){m=-1;break a}if((i[o+-1>>0]|0)!=48){m=-1;break a}k[e>>2]=0;m=i[57498+m>>0]|0;k[d>>2]=o+1;i[o>>0]=m;m=0;break a}break}default:{}}m=i[57498+m>>0]|0;k[d>>2]=o+1;i[o>>0]=m;k[e>>2]=(k[e>>2]|0)+1;m=0}}}while(0);return m|0}function fp(){var a=0,b=0;do{if((i[1968]|0)==0?(Qa(1968)|0)!=0:0){x=0;a=va(31,2147483647,58885,0)|0;b=x;x=0;if(b&1){b=Wa()|0;Bb(1968);fb(b|0)}else{k[11196]=a;Ya(1968);break}}}while(0);return k[11196]|0}function gp(a){a=a|0;return}function hp(a){a=a|0;mj(a);return}function ip(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;q=r;r=r+64|0;o=q+56|0;g=q+52|0;m=q+48|0;h=q+44|0;j=q+40|0;l=q+36|0;n=q+32|0;s=q+8|0;p=q;a:do{if(!(k[d+4>>2]&1)){k[m>>2]=-1;s=k[(k[a>>2]|0)+16>>2]|0;k[h>>2]=k[b>>2];k[j>>2]=k[c>>2];k[g>>2]=k[h>>2];k[o>>2]=k[j>>2];g=Nb[s&63](a,g,o,d,e,m)|0;k[b>>2]=g;switch(k[m>>2]|0){case 0:{i[f>>0]=0;break a}case 1:{i[f>>0]=1;break a}default:{i[f>>0]=1;k[e>>2]=4;break a}}}else{g=tn(d)|0;k[l>>2]=g;x=0;a=Aa(37,l|0,44212)|0;m=x;x=0;do{if(!(m&1)){zm(g)|0;g=tn(d)|0;k[n>>2]=g;x=0;j=Aa(37,n|0,44368)|0;n=x;x=0;if(n&1){s=Wa()|0;zm(g)|0;g=s;break}zm(g)|0;x=0;ra(k[(k[j>>2]|0)+24>>2]|0,s|0,j|0);n=x;x=0;if(!(n&1)){h=s+12|0;x=0;ra(k[(k[j>>2]|0)+28>>2]|0,h|0,j|0);n=x;x=0;if(!(n&1)){k[p>>2]=k[c>>2];x=0;k[o>>2]=k[p>>2];g=na(8,b|0,o|0,s|0,s+24|0,a|0,e|0,1)|0;e=x;x=0;if(e&1){g=Wa()|0;en(s+12|0);en(s);break}else{i[f>>0]=(g|0)==(s|0)&1;g=k[b>>2]|0;en(s+12|0);en(s);break a}}}else h=s;g=Wa()|0;j=M;if((s|0)!=(h|0))do{h=h+-12|0;en(h)}while((h|0)!=(s|0))}else{s=Wa()|0;zm(g)|0;g=s}}while(0);fb(g|0)}}while(0);r=q;return g|0}function jp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Tu(a,i,h,d,e,f)|0;r=g;return a|0}function kp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Uu(a,i,h,d,e,f)|0;r=g;return a|0}function lp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Vu(a,i,h,d,e,f)|0;r=g;return a|0}function mp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Wu(a,i,h,d,e,f)|0;r=g;return a|0}function np(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Xu(a,i,h,d,e,f)|0;r=g;return a|0}function op(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Yu(a,i,h,d,e,f)|0;r=g;return a|0}function pp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Zu(a,i,h,d,e,f)|0;r=g;return a|0}function qp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=_u(a,i,h,d,e,f)|0;r=g;return a|0}function rp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=$u(a,i,h,d,e,f)|0;r=g;return a|0}function sp(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=r;r=r+320|0;v=B;p=B+208|0;D=B+32|0;a=B+28|0;C=B+16|0;u=B+12|0;s=B+48|0;t=B+8|0;q=B+4|0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;d=ta(68,d|0)|0;o=x;x=0;do{if(o&1)a=Wa()|0;else{k[a>>2]=d;x=0;a=Aa(37,a|0,44212)|0;o=x;x=0;if(!(o&1)?(x=0,Ea(k[(k[a>>2]|0)+48>>2]|0,a|0,57498,57524,p|0)|0,o=x,x=0,!(o&1)):0){zm(d)|0;k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);o=x;x=0;a:do{if(!(o&1)){n=C+8|0;o=C+1|0;a=(i[C>>0]&1)==0?o:k[n>>2]|0;k[u>>2]=a;k[t>>2]=s;k[q>>2]=0;m=C+4|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){E=30;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do{if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){E=30;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h){g=j;break}else{g=j;break b}else{k[c>>2]=0;E=20;break}}else E=20}while(0);if((E|0)==20){E=0;if(h){g=0;break}else g=0}h=i[C>>0]|0;h=(h&1)==0?(h&255)>>>1:k[m>>2]|0;if((k[u>>2]|0)==(a+h|0)){x=0;Fa(8,C|0,h<<1|0,0);l=x;x=0;if(l&1){E=30;break}if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);l=x;x=0;if(l&1){E=30;break}a=(i[C>>0]&1)==0?o:k[n>>2]|0;k[u>>2]=a+h}j=d+12|0;h=k[j>>2]|0;l=d+16|0;if((h|0)==(k[l>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=30;break}}else h=k[h>>2]|0;if(tp(h,16,a,u,q,0,D,s,t,p)|0)break;g=k[j>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=30;break}else{g=d;continue}}else{k[j>>2]=g+4;g=d;continue}}if((E|0)==30){a=Wa()|0;break}x=0;Fa(8,C|0,(k[u>>2]|0)-a|0,0);F=x;x=0;if((!(F&1)?(w=i[C>>0]|0,y=k[n>>2]|0,x=0,z=Da(3)|0,F=x,x=0,!(F&1)):0)?(x=0,k[v>>2]=f,A=Ea(16,((w&1)==0?o:y)|0,z|0,58882,v|0)|0,F=x,x=0,!(F&1)):0){if((A|0)!=1)k[e>>2]=4;if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=31;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;F=x;x=0;if(F&1){E=31;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{E=59;break}else{k[c>>2]=0;E=57;break}}else E=57}while(0);if((E|0)==57?d:0)E=59;if((E|0)==59)k[e>>2]=k[e>>2]|2;F=k[b>>2]|0;Sm(C);Sm(D);r=B;return F|0}else E=31}else E=31}while(0);if((E|0)==31)a=Wa()|0;Sm(C);break}a=Wa()|0;zm(d)|0}}while(0);Sm(D);fb(a|0);return 0}function tp(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0;o=k[d>>2]|0;p=(o|0)==(c|0);do{if(p){m=(k[l+96>>2]|0)==(a|0);if(!m?(k[l+100>>2]|0)!=(a|0):0){n=5;break}k[d>>2]=c+1;i[c>>0]=m?43:45;k[e>>2]=0;m=0}else n=5}while(0);a:do{if((n|0)==5){n=i[g>>0]|0;if((a|0)==(f|0)?(((n&1)==0?(n&255)>>>1:k[g+4>>2]|0)|0)!=0:0){m=k[j>>2]|0;if((m-h|0)>=160){m=0;break}b=k[e>>2]|0;k[j>>2]=m+4;k[m>>2]=b;k[e>>2]=0;m=0;break}g=l+104|0;m=l;while(1){if((k[m>>2]|0)==(a|0))break;m=m+4|0;if((m|0)==(g|0)){m=g;break}}m=m-l|0;g=m>>2;if((m|0)>92)m=-1;else{switch(b|0){case 10:case 8:{if((g|0)>=(b|0)){m=-1;break a}break}case 16:{if((m|0)>=88){if(p){m=-1;break a}if((o-c|0)>=3){m=-1;break a}if((i[o+-1>>0]|0)!=48){m=-1;break a}k[e>>2]=0;m=i[57498+g>>0]|0;k[d>>2]=o+1;i[o>>0]=m;m=0;break a}break}default:{}}m=i[57498+g>>0]|0;k[d>>2]=o+1;i[o>>0]=m;k[e>>2]=(k[e>>2]|0)+1;m=0}}}while(0);return m|0}function up(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,j=0,l=0;j=r;r=r+16|0;h=j;b=tn(b)|0;k[h>>2]=b;x=0;e=Aa(37,h|0,44220)|0;l=x;x=0;if((((!(l&1)?(x=0,Ea(k[(k[e>>2]|0)+32>>2]|0,e|0,57498,57524,c|0)|0,l=x,x=0,!(l&1)):0)?(x=0,g=Aa(37,h|0,44360)|0,l=x,x=0,!(l&1)):0)?(x=0,f=ta(k[(k[g>>2]|0)+16>>2]|0,g|0)|0,l=x,x=0,!(l&1)):0)?(i[d>>0]=f,x=0,ra(k[(k[g>>2]|0)+20>>2]|0,a|0,g|0),l=x,x=0,!(l&1)):0){zm(b)|0;r=j;return}l=Wa()|0;zm(b)|0;fb(l|0)}function vp(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,j=0,l=0,m=0,n=0;m=r;r=r+16|0;l=m;b=tn(b)|0;k[l>>2]=b;x=0;f=Aa(37,l|0,44220)|0;n=x;x=0;if(((((!(n&1)?(x=0,Ea(k[(k[f>>2]|0)+32>>2]|0,f|0,57498,57530,c|0)|0,n=x,x=0,!(n&1)):0)?(x=0,j=Aa(37,l|0,44360)|0,n=x,x=0,!(n&1)):0)?(x=0,g=ta(k[(k[j>>2]|0)+12>>2]|0,j|0)|0,n=x,x=0,!(n&1)):0)?(i[d>>0]=g,x=0,h=ta(k[(k[j>>2]|0)+16>>2]|0,j|0)|0,n=x,x=0,!(n&1)):0)?(i[e>>0]=h,x=0,ra(k[(k[j>>2]|0)+20>>2]|0,a|0,j|0),n=x,x=0,!(n&1)):0){zm(b)|0;r=m;return}n=Wa()|0;zm(b)|0;fb(n|0)}function wp(a,b,c,d,e,f,g,h,j,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do{if(a<<24>>24==f<<24>>24)if(i[b>>0]|0){i[b>>0]=0;c=k[e>>2]|0;k[e>>2]=c+1;i[c>>0]=46;c=i[h>>0]|0;if((((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0?(p=k[m>>2]|0,(p-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;p=0}else p=0}else p=-1;else{if(a<<24>>24==g<<24>>24?(g=i[h>>0]|0,(((g&1)==0?(g&255)>>>1:k[h+4>>2]|0)|0)!=0):0){if(!(i[b>>0]|0)){p=-1;break}p=k[m>>2]|0;if((p-j|0)>=160){p=0;break}j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;k[n>>2]=0;p=0;break}f=o+32|0;p=o;while(1){if((i[p>>0]|0)==a<<24>>24)break;p=p+1|0;if((p|0)==(f|0)){p=f;break}}f=p-o|0;if((f|0)>31)p=-1;else{g=i[57498+f>>0]|0;switch(f|0){case 24:case 25:{p=k[e>>2]|0;if((p|0)!=(d|0)?(l[p+-1>>0]&95|0)!=(l[c>>0]&127|0):0){p=-1;break a}k[e>>2]=p+1;i[p>>0]=g;p=0;break a}case 23:case 22:{i[c>>0]=80;p=k[e>>2]|0;k[e>>2]=p+1;i[p>>0]=g;p=0;break a}default:{p=g&95;if((((p|0)==(i[c>>0]|0)?(i[c>>0]=p|128,(i[b>>0]|0)!=0):0)?(i[b>>0]=0,c=i[h>>0]|0,(((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0):0)?(q=k[m>>2]|0,(q-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=q+4;k[q>>2]=j}m=k[e>>2]|0;k[e>>2]=m+1;i[m>>0]=g;if((f|0)>21){p=0;break a}k[n>>2]=(k[n>>2]|0)+1;p=0;break a}}}}}while(0);return p|0}function xp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=r;r=r+16|0;h=i;b=tn(b)|0;k[h>>2]=b;x=0;e=Aa(37,h|0,44212)|0;j=x;x=0;if((((!(j&1)?(x=0,Ea(k[(k[e>>2]|0)+48>>2]|0,e|0,57498,57524,c|0)|0,j=x,x=0,!(j&1)):0)?(x=0,g=Aa(37,h|0,44368)|0,j=x,x=0,!(j&1)):0)?(x=0,f=ta(k[(k[g>>2]|0)+16>>2]|0,g|0)|0,j=x,x=0,!(j&1)):0)?(k[d>>2]=f,x=0,ra(k[(k[g>>2]|0)+20>>2]|0,a|0,g|0),j=x,x=0,!(j&1)):0){zm(b)|0;r=i;return}j=Wa()|0;zm(b)|0;fb(j|0)}function yp(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,l=0,m=0;l=r;r=r+16|0;j=l;b=tn(b)|0;k[j>>2]=b;x=0;f=Aa(37,j|0,44212)|0;m=x;x=0;if(((((!(m&1)?(x=0,Ea(k[(k[f>>2]|0)+48>>2]|0,f|0,57498,57530,c|0)|0,m=x,x=0,!(m&1)):0)?(x=0,i=Aa(37,j|0,44368)|0,m=x,x=0,!(m&1)):0)?(x=0,g=ta(k[(k[i>>2]|0)+12>>2]|0,i|0)|0,m=x,x=0,!(m&1)):0)?(k[d>>2]=g,x=0,h=ta(k[(k[i>>2]|0)+16>>2]|0,i|0)|0,m=x,x=0,!(m&1)):0)?(k[e>>2]=h,x=0,ra(k[(k[i>>2]|0)+20>>2]|0,a|0,i|0),m=x,x=0,!(m&1)):0){zm(b)|0;r=l;return}m=Wa()|0;zm(b)|0;fb(m|0)}function zp(a,b,c,d,e,f,g,h,j,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do{if((a|0)==(f|0))if(i[b>>0]|0){i[b>>0]=0;c=k[e>>2]|0;k[e>>2]=c+1;i[c>>0]=46;c=i[h>>0]|0;if((((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0?(p=k[m>>2]|0,(p-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;p=0}else p=0}else p=-1;else{if((a|0)==(g|0)?(g=i[h>>0]|0,(((g&1)==0?(g&255)>>>1:k[h+4>>2]|0)|0)!=0):0){if(!(i[b>>0]|0)){p=-1;break}p=k[m>>2]|0;if((p-j|0)>=160){p=0;break}j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;k[n>>2]=0;p=0;break}f=o+128|0;p=o;while(1){if((k[p>>2]|0)==(a|0))break;p=p+4|0;if((p|0)==(f|0)){p=f;break}}f=p-o|0;p=f>>2;if((f|0)<=124){g=i[57498+p>>0]|0;switch(p|0){case 24:case 25:{p=k[e>>2]|0;if((p|0)!=(d|0)?(l[p+-1>>0]&95|0)!=(l[c>>0]&127|0):0){p=-1;break a}k[e>>2]=p+1;i[p>>0]=g;p=0;break a}case 23:case 22:{i[c>>0]=80;break}default:{p=g&95;if((((p|0)==(i[c>>0]|0)?(i[c>>0]=p|128,(i[b>>0]|0)!=0):0)?(i[b>>0]=0,c=i[h>>0]|0,(((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0):0)?(q=k[m>>2]|0,(q-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=q+4;k[q>>2]=j}}}m=k[e>>2]|0;k[e>>2]=m+1;i[m>>0]=g;if((f|0)>84)p=0;else{k[n>>2]=(k[n>>2]|0)+1;p=0}}else p=-1}}while(0);return p|0}function Ap(a){a=a|0;return}function Bp(a){a=a|0;mj(a);return}function Cp(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,j=0,l=0,m=0;m=r;r=r+32|0;f=m+20|0;g=m+16|0;h=m+12|0;l=m;a:do{if(!(k[c+4>>2]&1)){l=k[(k[a>>2]|0)+24>>2]|0;k[g>>2]=k[b>>2];k[f>>2]=k[g>>2];f=Wb[l&31](a,f,c,d,e&1)|0}else{f=tn(c)|0;k[h>>2]=f;x=0;g=Aa(37,h|0,44360)|0;j=x;x=0;b:do{if(j&1){m=Wa()|0;zm(f)|0;f=m}else{zm(f)|0;f=k[g>>2]|0;if(e)Mb[k[f+24>>2]&127](l,g);else Mb[k[f+28>>2]&127](l,g);a=i[l>>0]|0;j=(a&1)==0;f=l+1|0;e=l+8|0;h=j?f:l+1|0;f=j?f:k[l+8>>2]|0;j=l+4|0;c=(a&1)==0;c:do{if((f|0)!=((c?h:k[e>>2]|0)+(c?(a&255)>>>1:k[j>>2]|0)|0)){d:while(1){g=i[f>>0]|0;d=k[b>>2]|0;do{if(d){c=d+24|0;a=k[c>>2]|0;if((a|0)!=(k[d+28>>2]|0)){k[c>>2]=a+1;i[a>>0]=g;break}x=0;g=Aa(k[(k[d>>2]|0)+52>>2]|0,d|0,g&255|0)|0;a=x;x=0;if(a&1)break d;if((g|0)==-1)k[b>>2]=0}}while(0);f=f+1|0;a=i[l>>0]|0;c=(a&1)==0;if((f|0)==((c?h:k[e>>2]|0)+(c?(a&255)>>>1:k[j>>2]|0)|0))break c}f=Wa()|0;Sm(l);break b}}while(0);f=k[b>>2]|0;Sm(l);break a}}while(0);fb(f|0)}}while(0);r=m;return f|0}function Dp(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+64|0;f=m;o=m+56|0;p=m+44|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,1,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=md(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Ep(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;if(d&2048){i[a>>0]=43;a=a+1|0}if(d&512){i[a>>0]=35;a=a+1|0}e=i[b>>0]|0;if(e<<24>>24){f=b;while(1){f=f+1|0;b=a+1|0;i[a>>0]=e;e=i[f>>0]|0;if(!(e<<24>>24)){a=b;break}else a=b}}a:do{switch(d&74|0){case 64:{i[a>>0]=111;break}case 8:if(!(d&16384)){i[a>>0]=120;break a}else{i[a>>0]=88;break a}default:if(c){i[a>>0]=100;break a}else{i[a>>0]=117;break a}}}while(0);return}function Fp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do{switch(k[c+4>>2]&176|0){case 16:{c=i[a>>0]|0;switch(c<<24>>24){case 43:case 45:{a=a+1|0;break a}default:{}}if((b-a|0)>1&c<<24>>24==48){switch(i[a+1>>0]|0){case 88:case 120:break;default:{d=7;break a}}a=a+2|0}else d=7;break}case 32:{a=b;break}default:d=7}}while(0);return a|0}function Gp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;s=Ss(g,44220)|0;l=Ss(g,44360)|0;Mb[k[(k[l>>2]|0)+20>>2]&127](v,l);p=i[v>>0]|0;q=v+4|0;a:do{if(!(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0)){x=0;Ea(k[(k[s>>2]|0)+32>>2]|0,s|0,a|0,c|0,d|0)|0;t=x;x=0;if(t&1)t=5;else{g=d+(c-a)|0;k[f>>2]=g;t=29}}else{k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,g|0)|0;p=x;x=0;if(p&1){t=5;break a}j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=g;j=a+1|0;break}default:j=a}b:do{if((c-j|0)>1?(i[j>>0]|0)==48:0){g=j+1|0;switch(i[g>>0]|0){case 88:case 120:break;default:break b}x=0;h=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,48)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+1;i[p>>0]=h;x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,i[g>>0]|0)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+1;i[p>>0]=g;j=j+2|0}}while(0);if((j|0)!=(c|0)?(m=c+-1|0,j>>>0>>0):0){h=j;g=m;do{p=i[h>>0]|0;i[h>>0]=i[g>>0]|0;i[g>>0]=p;h=h+1|0;g=g+-1|0}while(h>>>0>>0)}x=0;m=ta(k[(k[l>>2]|0)+16>>2]|0,l|0)|0;p=x;x=0;if(!(p&1)){n=v+8|0;o=v+1|0;c:do{if(j>>>0>>0){g=0;h=0;p=j;while(1){l=i[((i[v>>0]&1)==0?o:k[n>>2]|0)+h>>0]|0;if(l<<24>>24!=0&(g|0)==(l<<24>>24|0)){g=k[f>>2]|0;k[f>>2]=g+1;i[g>>0]=m;g=i[v>>0]|0;l=0;h=(h>>>0<(((g&1)==0?(g&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+h|0}else l=g;x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,i[p>>0]|0)|0;w=x;x=0;if(w&1)break;w=k[f>>2]|0;k[f>>2]=w+1;i[w>>0]=g;p=p+1|0;if(p>>>0>=c>>>0)break c;else g=l+1|0}g=Wa()|0;break a}}while(0);h=a;g=d+(j-h)|0;a=k[f>>2]|0;if((g|0)==(a|0)){a=h;t=29}else{a=a+-1|0;if(g>>>0>>0)do{w=i[g>>0]|0;i[g>>0]=i[a>>0]|0;i[a>>0]=w;g=g+1|0;a=a+-1|0}while(g>>>0>>0);a=h;g=k[f>>2]|0;t=29}}else t=5}}while(0);if((t|0)==5)g=Wa()|0;else if((t|0)==29){k[e>>2]=(b|0)==(c|0)?g:d+(b-a)|0;Sm(v);r=u;return}Sm(v);fb(g|0)}function Hp(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,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+96|0;g=m+8|0;a=m;o=m+74|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,1,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,22,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=md(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Ip(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+64|0;f=m;o=m+56|0;p=m+44|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,0,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=md(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Jp(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,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+112|0;g=m+8|0;a=m;o=m+75|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,0,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,23,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=md(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Kp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+176|0;t=z+84|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+88|0;s=z+80|0;h=z+118|0;y=z+76|0;w=z+72|0;u=z+68|0;v=z+64|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58898,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do{if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,k[n>>2]=k[c+8>>2],p[n+8>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do{if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do{if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<1)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}}while(0);do{if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(2,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(39,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Lp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;if(c&2048){i[a>>0]=43;a=a+1|0}if(c&1024){i[a>>0]=35;a=a+1|0}g=c&260;e=c>>>14;h=(g|0)==260;if(h)f=0;else{i[a>>0]=46;i[a+1>>0]=42;a=a+2|0;f=1}c=i[b>>0]|0;if(c<<24>>24){d=a;while(1){b=b+1|0;a=d+1|0;i[d>>0]=c;c=i[b>>0]|0;if(!(c<<24>>24))break;else d=a}}a:do{switch(g|0){case 4:if(!(e&1)){i[a>>0]=102;break a}else{i[a>>0]=70;break a}case 256:if(!(e&1)){i[a>>0]=101;break a}else{i[a>>0]=69;break a}default:{c=(e&1|0)!=0;if(h)if(c){i[a>>0]=65;break a}else{i[a>>0]=97;break a}else if(c){i[a>>0]=71;break a}else{i[a>>0]=103;break a}}}}while(0);return f|0}function Mp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0;z=r;r=r+16|0;A=z;y=Ss(g,44220)|0;v=Ss(g,44360)|0;Mb[k[(k[v>>2]|0)+20>>2]&127](A,v);k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,g|0)|0;w=x;x=0;if(w&1)u=8;else{m=k[f>>2]|0;k[f>>2]=m+1;i[m>>0]=g;m=a+1|0;u=10}break}default:{m=a;u=10}}a:do{if((u|0)==10){w=c;b:do{if((w-m|0)>1?(i[m>>0]|0)==48:0){j=m+1|0;switch(i[j>>0]|0){case 88:case 120:break;default:{u=11;break b}}x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,48)|0;t=x;x=0;if(t&1){u=8;break a}t=k[f>>2]|0;k[f>>2]=t+1;i[t>>0]=g;m=m+2|0;x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,i[j>>0]|0)|0;t=x;x=0;if(t&1){u=8;break a}t=k[f>>2]|0;k[f>>2]=t+1;i[t>>0]=g;if(m>>>0>>0){g=m;while(1){j=i[g>>0]|0;x=0;l=Da(3)|0;t=x;x=0;if(t&1)break;x=0;j=Aa(39,j<<24>>24|0,l|0)|0;t=x;x=0;if(t&1)break;if(!j){t=m;break b}g=g+1|0;if(g>>>0>=c>>>0){t=m;break b}}g=Wa()|0;break a}else{t=m;g=m}}else u=11}while(0);c:do{if((u|0)==11)if(m>>>0>>0){g=m;while(1){j=i[g>>0]|0;x=0;l=Da(3)|0;t=x;x=0;if(t&1)break;x=0;j=Aa(40,j<<24>>24|0,l|0)|0;t=x;x=0;if(t&1)break;if(!j){t=m;break c}g=g+1|0;if(g>>>0>=c>>>0){t=m;break c}}g=Wa()|0;break a}else{t=m;g=m}}while(0);q=i[A>>0]|0;s=A+4|0;if(((q&1)==0?(q&255)>>>1:k[s>>2]|0)|0){if((t|0)!=(g|0)?(n=g+-1|0,t>>>0>>0):0){l=t;j=n;do{q=i[l>>0]|0;i[l>>0]=i[j>>0]|0;i[j>>0]=q;l=l+1|0;j=j+-1|0}while(l>>>0>>0)}x=0;n=ta(k[(k[v>>2]|0)+16>>2]|0,v|0)|0;q=x;x=0;if(q&1){u=8;break}o=A+8|0;p=A+1|0;d:do{if(t>>>0>>0){j=0;l=0;q=t;while(1){m=i[((i[A>>0]&1)==0?p:k[o>>2]|0)+l>>0]|0;if(m<<24>>24>0&(j|0)==(m<<24>>24|0)){j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=n;j=i[A>>0]|0;m=0;l=(l>>>0<(((j&1)==0?(j&255)>>>1:k[s>>2]|0)+-1|0)>>>0&1)+l|0}else m=j;x=0;j=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,i[q>>0]|0)|0;B=x;x=0;if(B&1)break;B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=j;q=q+1|0;if(q>>>0>=g>>>0)break d;else j=m+1|0}g=Wa()|0;break a}}while(0);j=d+(t-a)|0;l=k[f>>2]|0;if((j|0)!=(l|0)?(h=l+-1|0,j>>>0>>0):0){do{B=i[j>>0]|0;i[j>>0]=i[h>>0]|0;i[h>>0]=B;j=j+1|0;h=h+-1|0}while(j>>>0>>0);j=y}else j=y}else{x=0;Ea(k[(k[y>>2]|0)+32>>2]|0,y|0,t|0,g|0,k[f>>2]|0)|0;B=x;x=0;if(B&1){u=8;break}k[f>>2]=(k[f>>2]|0)+(g-t);j=y}e:do{if(g>>>0>>0){while(1){h=i[g>>0]|0;if(h<<24>>24==46)break;x=0;h=Aa(k[(k[j>>2]|0)+28>>2]|0,y|0,h|0)|0;B=x;x=0;if(B&1){u=4;break}B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=h;g=g+1|0;if(g>>>0>=c>>>0)break e}if((u|0)==4){g=Wa()|0;break a}x=0;h=ta(k[(k[v>>2]|0)+12>>2]|0,v|0)|0;B=x;x=0;if(B&1){u=8;break a}B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=h;g=g+1|0}}while(0);x=0;Ea(k[(k[y>>2]|0)+32>>2]|0,y|0,g|0,c|0,k[f>>2]|0)|0;B=x;x=0;if(B&1)u=8;else{B=(k[f>>2]|0)+(w-g)|0;k[f>>2]=B;k[e>>2]=(b|0)==(c|0)?B:d+(b-a)|0;Sm(A);r=z;return}}}while(0);if((u|0)==8)g=Wa()|0;Sm(A);fb(g|0)}function Np(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+176|0;t=z+76|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+80|0;s=z+72|0;h=z+110|0;y=z+68|0;w=z+64|0;u=z+60|0;v=z+56|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58899,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do{if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,p[n>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do{if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do{if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<1)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}}while(0);do{if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(2,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(39,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Op(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,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+80|0;j=o;a=o+70|0;m=o+12|0;n=o+32|0;h=o+8|0;l=o+4|0;i[a>>0]=i[58901]|0;i[a+1>>0]=i[58902]|0;i[a+2>>0]=i[58903]|0;i[a+3>>0]=i[58904]|0;i[a+4>>0]=i[58905]|0;i[a+5>>0]=i[58906]|0;f=fp()|0;k[j>>2]=e;a=av(m,20,f,a,j)|0;e=m+a|0;f=Fp(m,e,c)|0;g=tn(c)|0;k[h>>2]=g;x=0;h=Aa(37,h|0,44220)|0;p=x;x=0;if(p&1){p=Wa()|0;zm(g)|0;fb(p|0)}else{zm(g)|0;Zb[k[(k[h>>2]|0)+32>>2]&31](h,m,e,n)|0;p=n+a|0;k[l>>2]=k[b>>2];k[j>>2]=k[l>>2];p=md(j,n,(f|0)==(e|0)?p:n+(f-m)|0,p,c,d)|0;r=o;return p|0}return 0}function Pp(a){a=a|0;return}function Qp(a){a=a|0;mj(a);return}function Rp(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,j=0,l=0;l=r;r=r+32|0;f=l+20|0;g=l+16|0;h=l+12|0;j=l;a:do{if(!(k[c+4>>2]&1)){j=k[(k[a>>2]|0)+24>>2]|0;k[g>>2]=k[b>>2];k[f>>2]=k[g>>2];f=Wb[j&31](a,f,c,d,e&1)|0}else{f=tn(c)|0;k[h>>2]=f;x=0;g=Aa(37,h|0,44368)|0;h=x;x=0;b:do{if(h&1){l=Wa()|0;zm(f)|0;f=l}else{zm(f)|0;f=k[g>>2]|0;if(e)Mb[k[f+24>>2]&127](j,g);else Mb[k[f+28>>2]&127](j,g);a=i[j>>0]|0;c=(a&1)==0;f=j+4|0;e=j+8|0;h=c?f:j+4|0;f=c?f:k[j+8>>2]|0;c=(a&1)==0;c:do{if((f|0)!=((c?h:k[e>>2]|0)+((c?(a&255)>>>1:k[h>>2]|0)<<2)|0)){while(1){g=k[f>>2]|0;d=k[b>>2]|0;if(d){c=d+24|0;a=k[c>>2]|0;if((a|0)==(k[d+28>>2]|0)){x=0;g=Aa(k[(k[d>>2]|0)+52>>2]|0,d|0,g|0)|0;a=x;x=0;if(a&1)break}else{k[c>>2]=a+4;k[a>>2]=g}if((g|0)==-1)k[b>>2]=0}f=f+4|0;a=i[j>>0]|0;c=(a&1)==0;if((f|0)==((c?h:k[e>>2]|0)+((c?(a&255)>>>1:k[h>>2]|0)<<2)|0))break c}f=Wa()|0;en(j);break b}}while(0);f=k[b>>2]|0;en(j);break a}}while(0);fb(f|0)}}while(0);r=l;return f|0}function Sp(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+128|0;f=m;o=m+116|0;p=m+104|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,1,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=cv(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Tp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;s=Ss(g,44212)|0;l=Ss(g,44368)|0;Mb[k[(k[l>>2]|0)+20>>2]&127](v,l);p=i[v>>0]|0;q=v+4|0;a:do{if(!(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0)){x=0;Ea(k[(k[s>>2]|0)+48>>2]|0,s|0,a|0,c|0,d|0)|0;t=x;x=0;if(t&1)t=5;else{g=d+(c-a<<2)|0;k[f>>2]=g;t=28}}else{k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,g|0)|0;p=x;x=0;if(p&1){t=5;break a}j=k[f>>2]|0;k[f>>2]=j+4;k[j>>2]=g;j=a+1|0;break}default:j=a}b:do{if((c-j|0)>1?(i[j>>0]|0)==48:0){g=j+1|0;switch(i[g>>0]|0){case 88:case 120:break;default:{p=j;break b}}x=0;h=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,48)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+4;k[p>>2]=h;x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,i[g>>0]|0)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+4;k[p>>2]=g;p=j+2|0}else p=j}while(0);if((p|0)!=(c|0)?(m=c+-1|0,p>>>0>>0):0){h=p;g=m;do{o=i[h>>0]|0;i[h>>0]=i[g>>0]|0;i[g>>0]=o;h=h+1|0;g=g+-1|0}while(h>>>0>>0)}x=0;l=ta(k[(k[l>>2]|0)+16>>2]|0,l|0)|0;o=x;x=0;if(!(o&1)){m=v+8|0;n=v+1|0;c:do{if(p>>>0>>0){g=0;h=0;o=p;while(1){j=i[((i[v>>0]&1)==0?n:k[m>>2]|0)+h>>0]|0;if(j<<24>>24!=0&(g|0)==(j<<24>>24|0)){g=k[f>>2]|0;k[f>>2]=g+4;k[g>>2]=l;g=i[v>>0]|0;j=0;h=(h>>>0<(((g&1)==0?(g&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+h|0}else j=g;x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,i[o>>0]|0)|0;w=x;x=0;if(w&1)break;w=k[f>>2]|0;k[f>>2]=w+4;k[w>>2]=g;o=o+1|0;if(o>>>0>=c>>>0)break c;else g=j+1|0}g=Wa()|0;break a}}while(0);j=a;g=d+(p-j<<2)|0;h=k[f>>2]|0;if((g|0)!=(h|0)){a=h+-4|0;if(g>>>0>>0){do{w=k[g>>2]|0;k[g>>2]=k[a>>2];k[a>>2]=w;g=g+4|0;a=a+-4|0}while(g>>>0>>0);a=j;g=h;t=28}else{a=j;g=h;t=28}}else{a=j;t=28}}else t=5}}while(0);if((t|0)==5)g=Wa()|0;else if((t|0)==28){k[e>>2]=(b|0)==(c|0)?g:d+(b-a<<2)|0;Sm(v);r=u;return}Sm(v);fb(g|0)}function Up(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,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+224|0;g=m+8|0;a=m;o=m+196|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,1,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,22,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=cv(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Et(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 j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;t=r;r=r+16|0;q=t;o=t+8|0;a:do{if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(k[j>>2]|0))break a;j=j+4|0;if((j|0)==(d|0)){j=d;break}}}}while(0);k[h>>2]=f;k[e>>2]=c;m=g;p=a+8|0;b:do{if(!((f|0)==(g|0)|(c|0)==(d|0))){a=f;l=j;c:while(1){v=b;f=k[v+4>>2]|0;j=q;k[j>>2]=k[v>>2];k[j+4>>2]=f;j=Ak(k[p>>2]|0)|0;x=0;f=Ba(21,a|0,e|0,l-c>>2|0,m-a|0,b|0)|0;v=x;x=0;if(v&1){u=9;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=8;break}switch(f|0){case 0:{n=1;break b}case-1:{j=a;u=14;break c}default:{}}j=(k[h>>2]|0)+f|0;k[h>>2]=j;if((j|0)==(g|0)){u=27;break}if((l|0)==(d|0)){c=k[e>>2]|0;a=j;j=d}else{j=Ak(k[p>>2]|0)|0;x=0;c=va(34,o|0,0,b|0)|0;v=x;x=0;if(v&1){u=35;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=34;break}if((c|0)==-1){n=2;break b}if(c>>>0>(m-(k[h>>2]|0)|0)>>>0){n=1;break b}if(c){j=o;while(1){l=i[j>>0]|0;v=k[h>>2]|0;k[h>>2]=v+1;i[v>>0]=l;c=c+-1|0;if(!c)break;else j=j+1|0}}c=(k[e>>2]|0)+4|0;k[e>>2]=c;d:do{if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(k[j>>2]|0))break d;j=j+4|0;if((j|0)==(d|0)){j=d;break}}}}while(0);a=k[h>>2]|0}if((a|0)==(g|0)|(c|0)==(d|0)){u=47;break b}else l=j}if((u|0)==8){v=Wa(0)|0;oc(v)}else if((u|0)==9){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==14){k[h>>2]=j;e:do{if((c|0)!=(k[e>>2]|0)){while(1){v=k[c>>2]|0;a=Ak(k[p>>2]|0)|0;x=0;j=va(34,j|0,v|0,q|0)|0;v=x;x=0;if(v&1){s=a;break}if((a|0)!=0?(x=0,ta(75,a|0)|0,v=x,x=0,v&1):0){u=18;break}if((j|0)==-1)break e;j=(k[h>>2]|0)+j|0;k[h>>2]=j;c=c+4|0;if((c|0)==(k[e>>2]|0))break e}if((u|0)==18){v=Wa(0)|0;oc(v)}c=Wa()|0;if((s|0)!=0?(x=0,ta(75,s|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}while(0);k[e>>2]=c;n=2;break}else if((u|0)==27){c=k[e>>2]|0;u=47;break}else if((u|0)==34){v=Wa(0)|0;oc(v)}else if((u|0)==35){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}else u=47}while(0);if((u|0)==47)n=(c|0)!=(d|0)&1;r=t;return n|0}function Ft(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 j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;t=r;r=r+16|0;s=t;a:do{if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(i[j>>0]|0))break a;j=j+1|0;if((j|0)==(d|0)){j=d;break}}}}while(0);k[h>>2]=f;k[e>>2]=c;n=g;p=a+8|0;b:do{if(!((f|0)==(g|0)|(c|0)==(d|0))){a=f;m=j;c:while(1){l=b;j=k[l+4>>2]|0;f=s;k[f>>2]=k[l>>2];k[f+4>>2]=j;f=m;j=Ak(k[p>>2]|0)|0;x=0;l=Ba(22,a|0,e|0,f-c|0,n-a>>2|0,b|0)|0;v=x;x=0;if(v&1){u=9;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=8;break}switch(l|0){case 0:{o=2;break b}case-1:{j=a;u=14;break c}default:{}}a=(k[h>>2]|0)+(l<<2)|0;k[h>>2]=a;if((a|0)==(g|0)){u=31;break}c=k[e>>2]|0;if((m|0)==(d|0))j=d;else{j=Ak(k[p>>2]|0)|0;x=0;c=Ea(20,a|0,c|0,1,b|0)|0;v=x;x=0;if(v&1){u=38;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=37;break}if(c){o=2;break b}k[h>>2]=(k[h>>2]|0)+4;c=(k[e>>2]|0)+1|0;k[e>>2]=c;d:do{if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(i[j>>0]|0))break d;j=j+1|0;if((j|0)==(d|0)){j=d;break}}}}while(0);a=k[h>>2]|0}if((a|0)==(g|0)|(c|0)==(d|0)){u=47;break b}else m=j}if((u|0)==8){v=Wa(0)|0;oc(v)}else if((u|0)==9){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==14){k[h>>2]=j;e:do{if((c|0)!=(k[e>>2]|0)){a=j;f:while(1){j=Ak(k[p>>2]|0)|0;x=0;a=Ea(20,a|0,c|0,f-c|0,s|0)|0;v=x;x=0;if(v&1){u=19;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=18;break}switch(a|0){case-1:{u=25;break f}case-2:{u=26;break f}case 0:{c=c+1|0;break}default:c=c+a|0}a=(k[h>>2]|0)+4|0;k[h>>2]=a;if((c|0)==(k[e>>2]|0)){q=c;break e}}if((u|0)==18){v=Wa(0)|0;oc(v)}else if((u|0)==19){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==25){k[e>>2]=c;o=2;break b}else if((u|0)==26){k[e>>2]=c;o=1;break b}}else q=c}while(0);k[e>>2]=q;o=(q|0)!=(d|0)&1;break}else if((u|0)==31){c=k[e>>2]|0;u=47;break}else if((u|0)==37){v=Wa(0)|0;oc(v)}else if((u|0)==38){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}else u=47}while(0);if((u|0)==47)o=(c|0)!=(d|0)&1;r=t;return o|0}function Gt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=r;r=r+16|0;f=g;k[e>>2]=c;c=Ak(k[a+8>>2]|0)|0;x=0;a=va(34,f|0,0,b|0)|0;b=x;x=0;if(b&1){f=Wa()|0;if((c|0)!=0?(x=0,ta(75,c|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}fb(f|0)}if((c|0)!=0?(x=0,ta(75,c|0)|0,b=x,x=0,b&1):0){b=Wa(0)|0;oc(b)}switch(a|0){case 0:case-1:{f=2;break}default:{a=a+-1|0;if(a>>>0<=(d-(k[e>>2]|0)|0)>>>0)if(!a)f=0;else while(1){b=i[f>>0]|0;d=k[e>>2]|0;k[e>>2]=d+1;i[d>>0]=b;a=a+-1|0;if(!a){f=0;break}else f=f+1|0}else f=1}}r=g;return f|0}function Ht(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=a+8|0;x=0;c=ta(75,k[b>>2]|0)|0;d=x;x=0;do{if(d&1)e=16;else{x=0;d=va(35,0,0,4)|0;a=x;x=0;if(a&1){a=Wa(0)|0;if(!c)break;x=0;ta(75,c|0)|0;g=x;x=0;if(!(g&1))break;g=Wa(0)|0;oc(g)}if((c|0)!=0?(x=0,ta(75,c|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}if(!d){a=k[b>>2]|0;if(a){x=0;a=ta(75,a|0)|0;g=x;x=0;if(g&1){e=16;break}if((a|0)!=0?(x=0,ta(75,a|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}else f=0}else f=1}else f=-1;return f|0}}while(0);if((e|0)==16)a=Wa(0)|0;oc(a);return 0}function It(a){a=a|0;return 0}function Jt(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,l=0,m=0,n=0;j=d;i=a+8|0;a:do{if((c|0)==(d|0)|(e|0)==0)a=0;else{a=0;h=0;while(1){g=Ak(k[i>>2]|0)|0;x=0;f=va(36,c|0,j-c|0,b|0)|0;n=x;x=0;if(n&1){m=g;break}if((g|0)!=0?(x=0,ta(75,g|0)|0,n=x,x=0,n&1):0){l=5;break}switch(f|0){case-2:case-1:break a;case 0:{c=c+1|0;f=1;break}default:c=c+f|0}a=f+a|0;h=h+1|0;if((c|0)==(d|0)|h>>>0>=e>>>0)break a}if((l|0)==5){n=Wa(0)|0;oc(n)}a=Wa()|0;if((m|0)!=0?(x=0,ta(75,m|0)|0,n=x,x=0,n&1):0){n=Wa(0)|0;oc(n)}fb(a|0)}}while(0);return a|0}function Kt(a){a=a|0;var b=0,c=0;a=k[a+8>>2]|0;if(a){x=0;a=ta(75,a|0)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}if((a|0)!=0?(x=0,ta(75,a|0)|0,c=x,x=0,c&1):0){c=Wa(0)|0;oc(c)}else b=4}else b=1;return b|0}function Lt(a){a=a|0;mj(a);return}function Mt(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;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Rv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Nt(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;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Sv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Ot(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function Pt(a){a=a|0;return 0}function Qt(a){a=a|0;return 0}function Rt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Tv(c,d,e,1114111,0)|0}function St(a){a=a|0;return 4}function Tt(a){a=a|0;mj(a);return}function Ut(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;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Uv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Vt(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;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Vv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Wt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function Xt(a){a=a|0;return 0}function Yt(a){a=a|0;return 0}function Zt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Wv(c,d,e,1114111,0)|0}function _t(a){a=a|0;return 4}function $t(a){a=a|0;mj(a);return}function au(a){a=a|0;mj(a);return}function bu(a,b){a=a|0;b=b|0;k[a+4>>2]=b+-1;k[a>>2]=44384;i[a+8>>0]=46;i[a+9>>0]=44;a=a+12|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function cu(a,b){a=a|0;b=b|0;k[a+4>>2]=b+-1;k[a>>2]=44424;k[a+8>>2]=46;k[a+12>>2]=44;a=a+16|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function du(a){a=a|0;k[a>>2]=44384;Sm(a+12|0);return}function eu(a){a=a|0;du(a);mj(a);return}function fu(a){a=a|0;k[a>>2]=44424;Sm(a+16|0);return}function gu(a){a=a|0;fu(a);mj(a);return}function hu(a){a=a|0;return i[a+8>>0]|0}function iu(a){a=a|0;return k[a+8>>2]|0}function ju(a){a=a|0;return i[a+9>>0]|0}function ku(a){a=a|0;return k[a+12>>2]|0}function lu(a,b){a=a|0;b=b|0;Pm(a,b+12|0);return}function mu(a,b){a=a|0;b=b|0;Pm(a,b+16|0);return}function nu(a,b){a=a|0;b=b|0;Qm(a,59024,4);return}function ou(a,b){a=a|0;b=b|0;cn(a,44996,zl(44996)|0);return}function pu(a,b){a=a|0;b=b|0;Qm(a,59029,5);return}function qu(a,b){a=a|0;b=b|0;cn(a,45016,zl(45016)|0);return}function ru(a){a=a|0;switch(k[a+4>>2]&74|0){case 64:{a=8;break}case 8:{a=16;break}case 0:{a=0;break}default:a=10}return a|0}function su(a){a=a|0;do{if((i[2464]|0)==0?(Qa(2464)|0)!=0:0){if((i[2472]|0)==0?(Qa(2472)|0)!=0:0){a=45040;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=45208);tb(193,0,w|0)|0;Ya(2472)}x=0;Aa(41,45040,59035)|0;a=x;x=0;if(((((((((((((!(a&1)?(x=0,Aa(41,45052,59042)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45064,59049)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45076,59057)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45088,59067)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45100,59076)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45112,59083)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45124,59092)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45136,59096)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45148,59100)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45160,59104)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45172,59108)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45184,59112)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45196,59116)|0,a=x,x=0,!(a&1)):0){k[11302]=45040;Ya(2464);break}a=Wa()|0;Bb(2464);fb(a|0)}}while(0);return k[11302]|0}function tu(a){a=a|0;do{if((i[2480]|0)==0?(Qa(2480)|0)!=0:0){if((i[2488]|0)==0?(Qa(2488)|0)!=0:0){a=45212;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=45380);tb(194,0,w|0)|0;Ya(2488)}x=0;Aa(42,45212,45380)|0;a=x;x=0;if(((((((((((((!(a&1)?(x=0,Aa(42,45224,45408)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45236,45436)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45248,45468)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45260,45508)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45272,45544)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45284,45572)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45296,45608)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45308,45624)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45320,45640)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45332,45656)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45344,45672)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45356,45688)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45368,45704)|0,a=x,x=0,!(a&1)):0){k[11430]=45212;Ya(2480);break}a=Wa()|0;Bb(2480);fb(a|0)}}while(0);return k[11430]|0}function uu(a){a=a|0;a:do{if((i[2496]|0)==0?(Qa(2496)|0)!=0:0){if((i[2504]|0)==0?(Qa(2504)|0)!=0:0){a=45724;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=46012);tb(195,0,w|0)|0;Ya(2504)}x=0;Aa(41,45724,59120)|0;a=x;x=0;do{if((((((((((((((!(a&1)?(x=0,Aa(41,45736,59128)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45748,59137)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45760,59143)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45772,59149)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45784,59153)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45796,59158)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45808,59163)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45820,59170)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45832,59180)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45844,59188)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45856,59197)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45868,59206)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45880,59210)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45892,59214)|0,a=x,x=0,!(a&1)):0){x=0;Aa(41,45904,59218)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45916,59149)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45928,59222)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45940,59226)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45952,59230)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45964,59234)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45976,59238)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45988,59242)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,46e3,59246)|0;a=x;x=0;if(a&1)break;k[11503]=45724;Ya(2496);break a}}while(0);a=Wa()|0;Bb(2496);fb(a|0)}}while(0);return k[11503]|0}function vu(a){a=a|0;a:do{if((i[2512]|0)==0?(Qa(2512)|0)!=0:0){if((i[2520]|0)==0?(Qa(2520)|0)!=0:0){a=46016;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=46304);tb(196,0,w|0)|0;Ya(2520)}x=0;Aa(42,46016,46304)|0;a=x;x=0;do{if((((((((((((((!(a&1)?(x=0,Aa(42,46028,46336)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46040,46372)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46052,46396)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46064,46420)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46076,46436)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46088,46456)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46100,46476)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46112,46504)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46124,46544)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46136,46576)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46148,46612)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46160,46648)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46172,46664)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46184,46680)|0,a=x,x=0,!(a&1)):0){x=0;Aa(42,46196,46696)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46208,46420)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46220,46712)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46232,46728)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46244,46744)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46256,46760)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46268,46776)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46280,46792)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46292,46808)|0;a=x;x=0;if(a&1)break;k[11706]=46016;Ya(2512);break a}}while(0);a=Wa()|0;Bb(2512);fb(a|0)}}while(0);return k[11706]|0}function wu(a){a=a|0;do{if((i[2528]|0)==0?(Qa(2528)|0)!=0:0){if((i[2536]|0)==0?(Qa(2536)|0)!=0:0){a=46828;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=47116);tb(197,0,w|0)|0;Ya(2536)}x=0;Aa(41,46828,59250)|0;a=x;x=0;if(!(a&1)?(x=0,Aa(41,46840,59253)|0,a=x,x=0,!(a&1)):0){k[11779]=46828;Ya(2528);break}a=Wa()|0;Bb(2528);fb(a|0)}}while(0);return k[11779]|0}function xu(a){a=a|0;do{if((i[2544]|0)==0?(Qa(2544)|0)!=0:0){if((i[2552]|0)==0?(Qa(2552)|0)!=0:0){a=47120;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=47408);tb(198,0,w|0)|0;Ya(2552)}x=0;Aa(42,47120,47408)|0;a=x;x=0;if(!(a&1)?(x=0,Aa(42,47132,47420)|0,a=x,x=0,!(a&1)):0){k[11858]=47120;Ya(2544);break}a=Wa()|0;Bb(2544);fb(a|0)}}while(0);return k[11858]|0}function yu(a){a=a|0;do{if((i[2560]|0)==0?(Qa(2560)|0)!=0:0){x=0;Fa(5,47436,59256,8);a=x;x=0;if(a&1){a=Wa()|0;Bb(2560);fb(a|0)}else{tb(199,47436,w|0)|0;Ya(2560);break}}}while(0);return 47436}function zu(a){a=a|0;var b=0;do{if((i[2568]|0)==0?(Qa(2568)|0)!=0:0){x=0;a=ta(76,47448)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47484,47448,a|0),b=x,x=0,!(b&1)):0){tb(200,47484,w|0)|0;Ya(2568);break}b=Wa()|0;Bb(2568);fb(b|0)}}while(0);return 47484}function Au(a){a=a|0;do{if((i[2576]|0)==0?(Qa(2576)|0)!=0:0){x=0;Fa(5,47496,59265,8);a=x;x=0;if(a&1){a=Wa()|0;Bb(2576);fb(a|0)}else{tb(199,47496,w|0)|0;Ya(2576);break}}}while(0);return 47496}function Bu(a){a=a|0;var b=0;do{if((i[2584]|0)==0?(Qa(2584)|0)!=0:0){x=0;a=ta(76,47508)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47544,47508,a|0),b=x,x=0,!(b&1)):0){tb(200,47544,w|0)|0;Ya(2584);break}b=Wa()|0;Bb(2584);fb(b|0)}}while(0);return 47544}function Cu(a){a=a|0;do{if((i[2592]|0)==0?(Qa(2592)|0)!=0:0){x=0;Fa(5,47556,59274,20);a=x;x=0;if(a&1){a=Wa()|0;Bb(2592);fb(a|0)}else{tb(199,47556,w|0)|0;Ya(2592);break}}}while(0);return 47556}function Du(a){a=a|0;var b=0;do{if((i[2600]|0)==0?(Qa(2600)|0)!=0:0){x=0;a=ta(76,47568)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47652,47568,a|0),b=x,x=0,!(b&1)):0){tb(200,47652,w|0)|0;Ya(2600);break}b=Wa()|0;Bb(2600);fb(b|0)}}while(0);return 47652}function Eu(a){a=a|0;do{if((i[2608]|0)==0?(Qa(2608)|0)!=0:0){x=0;Fa(5,47664,59295,11);a=x;x=0;if(a&1){a=Wa()|0;Bb(2608);fb(a|0)}else{tb(199,47664,w|0)|0;Ya(2608);break}}}while(0);return 47664}function Fu(a){a=a|0;var b=0;do{if((i[2616]|0)==0?(Qa(2616)|0)!=0:0){x=0;a=ta(76,47676)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47724,47676,a|0),b=x,x=0,!(b&1)):0){tb(200,47724,w|0)|0;Ya(2616);break}b=Wa()|0;Bb(2616);fb(b|0)}}while(0);return 47724}function Gu(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=44304;a=a+8|0;b=k[a>>2]|0;x=0;c=Da(3)|0;d=x;x=0;do{if(!(d&1)){if((b|0)!=(c|0)?(x=0,qa(188,k[a>>2]|0),d=x,x=0,d&1):0)break;return}}while(0);d=Wa(0)|0;oc(d)}function Hu(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+112|0;j=z;n=(d-c|0)/12|0;do{if(n>>>0>100){j=Pl(n)|0;if((j|0)==0?(x=0,Ga(6),y=x,x=0,y&1):0){h=0;q=6;break}h=j;q=11}else{h=0;q=11}}while(0);a:do{if((q|0)==11){if((c|0)==(d|0))m=0;else{q=c;o=0;p=j;while(1){m=i[q>>0]|0;if(!(m&1))m=(m&255)>>>1;else m=k[q+4>>2]|0;if(!m){i[p>>0]=2;m=o+1|0;n=n+-1|0}else{i[p>>0]=1;m=o}q=q+12|0;if((q|0)==(d|0))break;else{o=m;p=p+1|0}}}w=(c|0)==(d|0);y=(c|0)==(d|0);v=0;s=m;b:while(1){m=k[a>>2]|0;do{if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;u=x;x=0;if(u&1){q=5;break b}if((m|0)==-1){k[a>>2]=0;m=0;break}else{m=k[a>>2]|0;break}}}else m=0}while(0);q=(m|0)==0;o=k[b>>2]|0;if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;m=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;u=x;x=0;if(u&1){q=5;break}if((m|0)==-1){k[b>>2]=0;o=0}}}else o=0;p=(o|0)==0;m=k[a>>2]|0;if(!((n|0)!=0&(q^p))){q=64;break}o=k[m+12>>2]|0;if((o|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;u=x;x=0;if(u&1){q=5;break}}else m=l[o>>0]|0;m=m&255;if(!g){x=0;m=Aa(k[(k[e>>2]|0)+12>>2]|0,e|0,m|0)|0;u=x;x=0;if(u&1){q=5;break}}u=v+1|0;if(w){m=0;q=s}else{p=0;t=c;q=s;s=j;while(1){do{if((i[s>>0]|0)==1){if(!(i[t>>0]&1))o=t+1|0;else o=k[t+8>>2]|0;o=i[o+v>>0]|0;if(!g){x=0;o=Aa(k[(k[e>>2]|0)+12>>2]|0,e|0,o|0)|0;A=x;x=0;if(A&1){q=4;break b}}if(m<<24>>24!=o<<24>>24){i[s>>0]=0;o=p;n=n+-1|0;break}o=i[t>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[t+4>>2]|0;if((o|0)==(u|0)){i[s>>0]=2;o=1;q=q+1|0;n=n+-1|0}else o=1}else o=p}while(0);t=t+12|0;if((t|0)==(d|0)){m=o;break}else{p=o;s=s+1|0}}}if(!m){v=u;s=q;continue}m=k[a>>2]|0;o=m+12|0;p=k[o>>2]|0;if((p|0)==(k[m+16>>2]|0)){x=0;ta(k[(k[m>>2]|0)+40>>2]|0,m|0)|0;A=x;x=0;if(A&1){q=5;break}}else k[o>>2]=p+1;if((q+n|0)>>>0<2|y){v=u;s=q;continue}else{m=c;p=q;q=j}while(1){if((i[q>>0]|0)==2){o=i[m>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[m+4>>2]|0;if((o|0)!=(u|0)){i[q>>0]=0;p=p+-1|0}}m=m+12|0;if((m|0)==(d|0)){v=u;s=p;continue b}else q=q+1|0}}if((q|0)==4){c=Wa()|0;break}else if((q|0)==5){c=Wa()|0;break}else if((q|0)==64){do{if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;A=x;x=0;if(A&1){q=6;break a}if((m|0)==-1){k[a>>2]=0;m=0;break}else{m=k[a>>2]|0;break}}}else m=0}while(0);n=(m|0)==0;do{if(!p){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;m=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;A=x;x=0;if(A&1){q=6;break a}if((m|0)==-1){k[b>>2]=0;q=76;break}}if(!n)q=77}else q=76}while(0);if((q|0)==76?n:0)q=77;if((q|0)==77)k[f>>2]=k[f>>2]|2;c:do{if((c|0)==(d|0))q=81;else while(1){if((i[j>>0]|0)==2)break c;c=c+12|0;if((c|0)==(d|0)){q=81;break}else j=j+1|0}}while(0);if((q|0)==81){k[f>>2]=k[f>>2]|4;c=d}if(h)Ql(h);r=z;return c|0}}}while(0);if((q|0)==6)c=Wa()|0;if(h)Ql(h);fb(c|0);return 0}function Iu(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(21,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ju(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;g=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(g)break;else break b;x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(g)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(g){h=0;break}else h=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+g}j=a+12|0;g=k[j>>2]|0;m=a+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else g=l[g>>0]|0;if(ep(g&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(22,d|0,k[u>>2]|0,e|0,t|0)|0;g=M;E=x;x=0;if(!(E&1)){E=f;k[E>>2]=d;k[E+4>>2]=g;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ku(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,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=r;r=r+240|0;t=B+202|0;g=B+200|0;D=B+24|0;C=B+12|0;v=B+8|0;z=B+40|0;A=B+4|0;w=B;u=ru(d)|0;up(D,d,t,g);k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);s=x;x=0;a:do{if(!(s&1)){p=C+8|0;q=C+1|0;d=(i[C>>0]&1)==0?q:k[p>>2]|0;k[v>>2]=d;k[A>>2]=z;k[w>>2]=0;s=C+4|0;o=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){E=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;m=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;n=x;x=0;if(n&1){E=24;break b}if((m|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;E=16;break}}else E=16}while(0);if((E|0)==16){E=0;if(h){g=0;break}else g=0}h=i[C>>0]|0;h=(h&1)==0?(h&255)>>>1:k[s>>2]|0;if((k[v>>2]|0)==(d+h|0)){x=0;Fa(8,C|0,h<<1|0,0);n=x;x=0;if(n&1){E=24;break}if(!(i[C>>0]&1))d=10;else d=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,d|0,0);n=x;x=0;if(n&1){E=24;break}d=(i[C>>0]&1)==0?q:k[p>>2]|0;k[v>>2]=d+h}m=a+12|0;h=k[m>>2]|0;n=a+16|0;if((h|0)==(k[n>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=24;break}}else h=l[h>>0]|0;if(ep(h&255,u,d,v,w,o,D,z,A,t)|0)break;g=k[m>>2]|0;if((g|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=24;break}else continue}else{k[m>>2]=g+1;continue}}if((E|0)==24){a=Wa()|0;break}F=i[D>>0]|0;if((((F&1)==0?(F&255)>>>1:k[D+4>>2]|0)|0)!=0?(y=k[A>>2]|0,(y-z|0)<160):0){F=k[w>>2]|0;k[A>>2]=y+4;k[y>>2]=F}x=0;d=Ea(23,d|0,k[v>>2]|0,e|0,u|0)|0;F=x;x=0;if(!(F&1)){j[f>>1]=d;cs(D,z,k[A>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;F=x;x=0;if(F&1){E=25;break a}if((a|0)==-1){k[c>>2]=0;E=49;break}}if(!d)E=50}else E=49}while(0);if((E|0)==49?d:0)E=50;if((E|0)==50)k[e>>2]=k[e>>2]|2;F=k[b>>2]|0;Sm(C);Sm(D);r=B;return F|0}else E=25}else E=25}while(0);if((E|0)==25)a=Wa()|0;Sm(C);Sm(D);fb(a|0);return 0}function Lu(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(24,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Mu(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(25,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Nu(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;g=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(g)break;else break b;x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(g)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(g){h=0;break}else h=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+g}j=a+12|0;g=k[j>>2]|0;m=a+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else g=l[g>>0]|0;if(ep(g&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(26,d|0,k[u>>2]|0,e|0,t|0)|0;g=M;E=x;x=0;if(!(E&1)){E=f;k[E>>2]=d;k[E+4>>2]=g;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ou(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.0,h=0,j=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do{if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;p=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16}while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,p,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(1,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){o[f>>2]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49}while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25}while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Pu(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.0,h=0,j=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do{if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;o=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16}while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,o,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(2,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){p[f>>3]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49}while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25}while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Qu(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.0,h=0,j=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do{if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;o=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16}while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,o,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(3,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){p[f>>3]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49}while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25}while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Ru(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=Ak(b)|0;b=pl(a,c,f)|0;if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}r=e;return b|0}function Su(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;y=r;r=r+112|0;j=y;m=(d-c|0)/12|0;do{if(m>>>0>100){j=Pl(m)|0;if((j|0)==0?(x=0,Ga(6),w=x,x=0,w&1):0){h=0;o=6;break}h=j;o=11}else{h=0;o=11}}while(0);a:do{if((o|0)==11){if((c|0)==(d|0))l=0;else{p=c;n=0;o=j;while(1){l=i[p>>0]|0;if(!(l&1))l=(l&255)>>>1;else l=k[p+4>>2]|0;if(!l){i[o>>0]=2;l=n+1|0;m=m+-1|0}else{i[o>>0]=1;l=n}p=p+12|0;if((p|0)==(d|0))break;else{n=l;o=o+1|0}}}v=(c|0)==(d|0);w=(c|0)==(d|0);u=0;q=m;b:while(1){m=k[a>>2]|0;do{if(m){n=k[m+12>>2]|0;if((n|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;t=x;x=0;if(t&1){o=5;break b}}else m=k[n>>2]|0;if((m|0)==-1){k[a>>2]=0;p=1;break}else{p=(k[a>>2]|0)==0;break}}else p=1}while(0);n=k[b>>2]|0;if(n){m=k[n+12>>2]|0;if((m|0)==(k[n+16>>2]|0)){x=0;m=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;t=x;x=0;if(t&1){o=5;break}}else m=k[m>>2]|0;if((m|0)==-1){k[b>>2]=0;n=0;o=1}else o=0}else{n=0;o=1}m=k[a>>2]|0;if(!((q|0)!=0&(p^o))){o=66;break}n=k[m+12>>2]|0;if((n|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;t=x;x=0;if(t&1){o=5;break}}else m=k[n>>2]|0;if(!g){x=0;m=Aa(k[(k[e>>2]|0)+28>>2]|0,e|0,m|0)|0;t=x;x=0;if(t&1){o=5;break}}t=u+1|0;if(v){m=0;p=q}else{p=0;s=c;o=q;q=j;while(1){do{if((i[q>>0]|0)==1){if(!(i[s>>0]&1))n=s+4|0;else n=k[s+8>>2]|0;n=k[n+(u<<2)>>2]|0;if(!g){x=0;n=Aa(k[(k[e>>2]|0)+28>>2]|0,e|0,n|0)|0;z=x;x=0;if(z&1){o=4;break b}}if((m|0)!=(n|0)){i[q>>0]=0;n=p;o=o+-1|0;break}n=i[s>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[s+4>>2]|0;if((n|0)==(t|0)){i[q>>0]=2;n=1;l=l+1|0;o=o+-1|0}else n=1}else n=p}while(0);s=s+12|0;if((s|0)==(d|0)){m=n;p=o;break}else{p=n;q=q+1|0}}}if(!m){u=t;q=p;continue}m=k[a>>2]|0;n=m+12|0;o=k[n>>2]|0;if((o|0)==(k[m+16>>2]|0)){x=0;ta(k[(k[m>>2]|0)+40>>2]|0,m|0)|0;z=x;x=0;if(z&1){o=5;break}}else k[n>>2]=o+4;if((l+p|0)>>>0<2|w){u=t;q=p;continue}else{m=c;o=j}while(1){if((i[o>>0]|0)==2){n=i[m>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[m+4>>2]|0;if((n|0)!=(t|0)){i[o>>0]=0;l=l+-1|0}}m=m+12|0;if((m|0)==(d|0)){u=t;q=p;continue b}else o=o+1|0}}if((o|0)==4){c=Wa()|0;break}else if((o|0)==5){c=Wa()|0;break}else if((o|0)==66){do{if(m){l=k[m+12>>2]|0;if((l|0)==(k[m+16>>2]|0)){x=0;l=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;z=x;x=0;if(z&1){o=6;break a}}else l=k[l>>2]|0;if((l|0)==-1){k[a>>2]=0;m=1;break}else{m=(k[a>>2]|0)==0;break}}else m=1}while(0);do{if(n){l=k[n+12>>2]|0;if((l|0)==(k[n+16>>2]|0)){x=0;l=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;z=x;x=0;if(z&1){o=6;break a}}else l=k[l>>2]|0;if((l|0)!=-1)if(m)break;else{o=81;break}else{k[b>>2]=0;o=79;break}}else o=79}while(0);if((o|0)==79?m:0)o=81;if((o|0)==81)k[f>>2]=k[f>>2]|2;c:do{if((c|0)==(d|0))o=85;else while(1){if((i[j>>0]|0)==2)break c;c=c+12|0;if((c|0)==(d|0)){o=85;break}else j=j+1|0}}while(0);if((o|0)==85){k[f>>2]=k[f>>2]|4;c=d}if(h)Ql(h);r=y;return c|0}}}while(0);if((o|0)==6)c=Wa()|0;if(h)Ql(h);fb(c|0);return 0}function Tu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do{if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(21,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Uu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;g=0;j=1}else j=0}else{g=0;j=1}h=k[c>>2]|0;do{if(h){d=k[h+12>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;d=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;l=x;x=0;if(l&1){C=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(j){h=0;break}else h=0}d=i[A>>0]|0;d=(d&1)==0?(d&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+d|0)){x=0;Fa(8,A|0,d<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+d}j=g+12|0;d=k[j>>2]|0;l=g+16|0;if((d|0)==(k[l>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}}else d=k[d>>2]|0;if(tp(d,s,a,t,u,m,B,w,y,q)|0)break;d=k[j>>2]|0;if((d|0)==(k[l>>2]|0)){x=0;ta(k[(k[g>>2]|0)+40>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}else continue}else{k[j>>2]=d+4;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(22,a|0,k[t>>2]|0,e|0,s|0)|0;d=M;D=x;x=0;if(!(D&1)){D=f;k[D>>2]=a;k[D+4>>2]=d;cs(B,w,k[y>>2]|0,e);if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Vu(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,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+320|0;s=A+208|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;xp(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;a=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=a;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}l=k[c>>2]|0;do{if(l){g=k[l+12>>2]|0;if((g|0)==(k[l+16>>2]|0)){x=0;g=ta(k[(k[l>>2]|0)+36>>2]|0,l|0)|0;m=x;x=0;if(m&1){D=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=l;break b}else{k[c>>2]=0;D=17;break}}else D=17}while(0);if((D|0)==17){D=0;if(h){g=0;break}else l=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(a+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=25;break}if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);m=x;x=0;if(m&1){D=25;break}a=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=a+g}h=d+12|0;g=k[h>>2]|0;m=d+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=25;break}}else g=k[g>>2]|0;if(tp(g,t,a,u,v,n,C,y,z,s)|0){g=l;break}g=k[h>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((D|0)==25){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;a=Ea(23,a|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){j[f>>1]=a;cs(C,y,k[z>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{D=53;break}else{k[c>>2]=0;D=51;break}}else D=51}while(0);if((D|0)==51?d:0)D=53;if((D|0)==53)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=26}else D=26}while(0);if((D|0)==26)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Wu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do{if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(24,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Xu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do{if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(25,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Yu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;g=0;j=1}else j=0}else{g=0;j=1}h=k[c>>2]|0;do{if(h){d=k[h+12>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;d=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;l=x;x=0;if(l&1){C=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(j){h=0;break}else h=0}d=i[A>>0]|0;d=(d&1)==0?(d&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+d|0)){x=0;Fa(8,A|0,d<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+d}j=g+12|0;d=k[j>>2]|0;l=g+16|0;if((d|0)==(k[l>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}}else d=k[d>>2]|0;if(tp(d,s,a,t,u,m,B,w,y,q)|0)break;d=k[j>>2]|0;if((d|0)==(k[l>>2]|0)){x=0;ta(k[(k[g>>2]|0)+40>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}else continue}else{k[j>>2]=d+4;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(26,a|0,k[t>>2]|0,e|0,s|0)|0;d=M;D=x;x=0;if(!(D&1)){D=f;k[D>>2]=a;k[D+4>>2]=d;cs(B,w,k[y>>2]|0,e);if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Zu(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.0,h=0,j=0,l=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do{if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;p=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do{if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17}while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,p,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(1,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){o[f>>2]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51}while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26}while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function _u(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.0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do{if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;o=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do{if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17}while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,o,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(2,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){p[f>>3]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51}while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26}while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function $u(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.0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do{if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;o=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do{if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17}while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,o,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(3,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){p[f>>3]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51}while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26}while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function av(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;f=r;r=r+16|0;g=f;k[g>>2]=e;e=Ak(c)|0;c=ol(a,b,d,g)|0;if((e|0)!=0?(x=0,ta(75,e|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}r=f;return c|0}function bv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=Ak(b)|0;x=0;b=va(37,a|0,c|0,f|0)|0;a=x;x=0;if(a&1){b=Wa()|0;if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}fb(b|0)}else{if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}r=e;return b|0}return 0}function cv(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,j=0,l=0,m=0,n=0,o=0;n=r;r=r+16|0;m=n;g=k[a>>2]|0;a:do{if(!g)g=0;else{o=b;j=d-o>>2;l=e+12|0;h=k[l>>2]|0;j=(h|0)>(j|0)?h-j|0:0;h=c;o=h-o|0;e=o>>2;if((o|0)>0?(Qb[k[(k[g>>2]|0)+48>>2]&63](g,b,e)|0)!=(e|0):0){k[a>>2]=0;g=0;break}do{if((j|0)>0){dn(m,j,f);x=0;e=va(k[(k[g>>2]|0)+48>>2]|0,g|0,((i[m>>0]&1)==0?m+4|0:k[m+8>>2]|0)|0,j|0)|0;o=x;x=0;if(o&1){o=Wa()|0;en(m);fb(o|0)}if((e|0)==(j|0)){en(m);break}else{k[a>>2]=0;en(m);g=0;break a}}}while(0);o=d-h|0;d=o>>2;if((o|0)>0?(Qb[k[(k[g>>2]|0)+48>>2]&63](g,c,d)|0)!=(d|0):0){k[a>>2]=0;g=0;break}k[l>>2]=0}}while(0);r=n;return g|0}function dv(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,m=0,n=0,o=0,p=0,q=0,r=0;f=k[a>>2]|0;do{if(f){if((k[f+12>>2]|0)==(k[f+16>>2]|0))if((Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0)==-1){k[a>>2]=0;f=0;break}else{f=k[a>>2]|0;break}}else f=0}while(0);g=(f|0)==0;f=k[b>>2]|0;do{if(f){if((k[f+12>>2]|0)==(k[f+16>>2]|0)?(Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0)==-1:0){k[b>>2]=0;r=11;break}if(g)r=13;else r=12}else r=11}while(0);if((r|0)==11)if(g)r=12;else{f=0;r=13}a:do{if((r|0)==12){k[c>>2]=k[c>>2]|6;f=0}else if((r|0)==13){g=k[a>>2]|0;h=k[g+12>>2]|0;if((h|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=l[h>>0]|0;h=g&255;if(h<<24>>24>-1?(q=d+8|0,(j[(k[q>>2]|0)+(g<<24>>24<<1)>>1]&2048)!=0):0){m=(Qb[k[(k[d>>2]|0)+36>>2]&63](d,h,0)|0)<<24>>24;g=k[a>>2]|0;h=g+12|0;i=k[h>>2]|0;if((i|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;o=e;n=f;e=f;f=m}else{k[h>>2]=i+1;o=e;n=f;e=f;f=m}while(1){f=f+-48|0;p=o+-1|0;g=k[a>>2]|0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0))if((Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1){k[a>>2]=0;g=0;break}else{g=k[a>>2]|0;break}}else g=0}while(0);i=(g|0)==0;if(e)if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;h=0;e=0}else{h=n;e=n}else h=n;else{h=n;e=0}g=k[a>>2]|0;if(!((o|0)>1&(i^(e|0)==0)))break;i=k[g+12>>2]|0;if((i|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=l[i>>0]|0;i=g&255;if(i<<24>>24<=-1)break a;if(!(j[(k[q>>2]|0)+(g<<24>>24<<1)>>1]&2048))break a;f=((Qb[k[(k[d>>2]|0)+36>>2]&63](d,i,0)|0)<<24>>24)+(f*10|0)|0;g=k[a>>2]|0;i=g+12|0;m=k[i>>2]|0;if((m|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;o=p;n=h;continue}else{k[i>>2]=m+1;o=p;n=h;continue}}do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0))if((Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1){k[a>>2]=0;g=0;break}else{g=k[a>>2]|0;break}}else g=0}while(0);g=(g|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)?(Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0)==-1:0){k[b>>2]=0;r=50;break}if(g)break a}else r=50}while(0);if((r|0)==50?!g:0)break;k[c>>2]=k[c>>2]|2;break}k[c>>2]=k[c>>2]|4;f=0}}while(0);return f|0}function ev(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,l=0,m=0,n=0,o=0;f=k[a>>2]|0;do{if(f){g=k[f+12>>2]|0;if((g|0)==(k[f+16>>2]|0))f=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else f=k[g>>2]|0;if((f|0)==-1){k[a>>2]=0;h=1;break}else{h=(k[a>>2]|0)==0;break}}else h=1}while(0);g=k[b>>2]|0;do{if(g){f=k[g+12>>2]|0;if((f|0)==(k[g+16>>2]|0))f=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else f=k[f>>2]|0;if((f|0)!=-1)if(h){o=17;break}else{o=16;break}else{k[b>>2]=0;o=14;break}}else o=14}while(0);if((o|0)==14)if(h)o=16;else{g=0;o=17}a:do{if((o|0)==16){k[c>>2]=k[c>>2]|6;f=0}else if((o|0)==17){f=k[a>>2]|0;h=k[f+12>>2]|0;if((h|0)==(k[f+16>>2]|0))f=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else f=k[h>>2]|0;if(!(Qb[k[(k[d>>2]|0)+12>>2]&63](d,2048,f)|0)){k[c>>2]=k[c>>2]|4;f=0;break}f=(Qb[k[(k[d>>2]|0)+52>>2]&63](d,f,0)|0)<<24>>24;h=k[a>>2]|0;i=h+12|0;j=k[i>>2]|0;if((j|0)==(k[h+16>>2]|0)){Ob[k[(k[h>>2]|0)+40>>2]&127](h)|0;m=e;l=g;i=g}else{k[i>>2]=j+4;m=e;l=g;i=g}while(1){f=f+-48|0;n=m+-1|0;g=k[a>>2]|0;do{if(g){h=k[g+12>>2]|0;if((h|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=k[h>>2]|0;if((g|0)==-1){k[a>>2]=0;j=1;break}else{j=(k[a>>2]|0)==0;break}}else j=1}while(0);do{if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)==-1){k[b>>2]=0;i=0;e=0;g=1;break}else{i=l;e=l;g=(l|0)==0;break}}else{i=l;e=0;g=1}}while(0);h=k[a>>2]|0;if(!((m|0)>1&(j^g)))break;g=k[h+12>>2]|0;if((g|0)==(k[h+16>>2]|0))g=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else g=k[g>>2]|0;if(!(Qb[k[(k[d>>2]|0)+12>>2]&63](d,2048,g)|0))break a;f=((Qb[k[(k[d>>2]|0)+52>>2]&63](d,g,0)|0)<<24>>24)+(f*10|0)|0;g=k[a>>2]|0;h=g+12|0;j=k[h>>2]|0;if((j|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;m=n;l=i;i=e;continue}else{k[h>>2]=j+4;m=n;l=i;i=e;continue}}do{if(h){g=k[h+12>>2]|0;if((g|0)==(k[h+16>>2]|0))g=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else g=k[g>>2]|0;if((g|0)==-1){k[a>>2]=0;h=1;break}else{h=(k[a>>2]|0)==0;break}}else h=1}while(0);do{if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)!=-1)if(h)break a;else break;else{k[b>>2]=0;o=60;break}}else o=60}while(0);if((o|0)==60?!h:0)break;k[c>>2]=k[c>>2]|2}}while(0);return f|0}function fv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g|0;h=Sl(d?h:0,e)|0;if(!h)ak();do{if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}}while(0);k[f>>2]=201;k[b>>2]=i+g;k[c>>2]=(k[a>>2]|0)+e;return}function gv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g>>2;h=Sl(d?h:0,e)|0;if(!h)ak();do{if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}}while(0);k[f>>2]=201;k[b>>2]=i+(g<<2);k[c>>2]=(k[a>>2]|0)+(e>>>2<<2);return}function hv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=b;d=i[a>>0]|0;if(!(d&1)){e=10;j=(d&255)>>>1}else{d=k[a>>2]|0;e=(d&-2)+-1|0;j=k[a+4>>2]|0;d=d&255}h=c-f|0;do{if((c|0)!=(b|0)){if((e-j|0)>>>0>>0){bn(a,e,j+h-e|0,j,j,0,0);d=i[a>>0]|0}if(!(d&1))g=a+1|0;else g=k[a+8>>2]|0;f=c+(j-f)|0;if((b|0)!=(c|0)){d=b;e=g+j|0;while(1){i[e>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(c|0))break;else e=e+1|0}}i[g+f>>0]=0;d=j+h|0;if(!(i[a>>0]&1)){i[a>>0]=d<<1;break}else{k[a+4>>2]=d;break}}}while(0);return a|0}function iv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g>>2;h=Sl(d?h:0,e)|0;if(!h)ak();do{if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}}while(0);k[f>>2]=201;k[b>>2]=i+(g<<2);k[c>>2]=(k[a>>2]|0)+(e>>>2<<2);return}function jv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=b;d=i[a>>0]|0;if(!(d&1)){e=1;j=(d&255)>>>1}else{d=k[a>>2]|0;e=(d&-2)+-1|0;j=k[a+4>>2]|0;d=d&255}h=c-f>>2;do{if(h){if((e-j|0)>>>0>>0){ln(a,e,j+h-e|0,j,j,0,0);d=i[a>>0]|0}if(!(d&1))g=a+4|0;else g=k[a+8>>2]|0;f=j+((c-f|0)>>>2)|0;if((b|0)!=(c|0)){d=b;e=g+(j<<2)|0;while(1){k[e>>2]=k[d>>2];d=d+4|0;if((d|0)==(c|0))break;else e=e+4|0}}k[g+(f<<2)>>2]=0;d=j+h|0;if(!(i[a>>0]&1)){i[a>>0]=d<<1;break}else{k[a+4>>2]=d;break}}}while(0);return a|0}function kv(a,b){a=a|0;b=b|0;var c=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;i[a+128>>0]=0;do{if(b){x=0;ra(125,a|0,b|0);c=x;x=0;if(c&1){c=Wa()|0;Nv(a);fb(c|0)}else{cw(a,b);break}}}while(0);return}function lv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43148)|0);return}function mv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43188)|0);return}function nv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44220)|0);return}function ov(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44212)|0);return}function pv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44280)|0);return}function qv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44288)|0);return}function rv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44344)|0);return}function sv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44352)|0);return}function tv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44360)|0);return}function uv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44368)|0);return}function vv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43260)|0);return}function wv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43332)|0);return}function xv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43392)|0);return}function yv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43452)|0);return}function zv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43764)|0);return}function Av(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43828)|0);return}function Bv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43892)|0);return}function Cv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43956)|0);return}function Dv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43992)|0);return}function Ev(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44028)|0);return}function Fv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44064)|0);return}function Gv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44100)|0);return}function Hv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43544)|0);return}function Iv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43636)|0);return}function Jv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43668)|0);return}function Kv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43700)|0);return}function Lv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44140)|0);return}function Mv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44180)|0);return}function Nv(a){a=a|0;var b=0,c=0,d=0;c=k[a>>2]|0;do{if(c){d=a+4|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do{b=b+-4|0}while((b|0)!=(c|0));k[d>>2]=b}if((a+16|0)==(c|0)){i[a+128>>0]=0;break}else{mj(c);break}}}while(0);return}function Ov(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;g=a+4|0;c=k[g>>2]|0;d=k[a>>2]|0;e=c-d>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0?(f=d+(b<<2)|0,(c|0)!=(f|0)):0){do{c=c+-4|0}while((c|0)!=(f|0));k[g>>2]=c}}else bw(a,b-e|0);return}function Pv(a,b){a=a|0;b=b|0;var c=0;c=k[a+8>>2]|0;if((k[a+12>>2]|0)-c>>2>>>0>b>>>0)c=(k[c+(b<<2)>>2]|0)!=0;else c=0;return c|0}function Qv(a){a=a|0;var b=0,c=0;c=a+4|0;b=k[c>>2]|0;c=k[c+4>>2]|0;a=(k[a>>2]|0)+(c>>1)|0;if(c&1)b=k[(k[a>>2]|0)+b>>2]|0;Lb[b&255](a);return}function Rv(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 l=0,n=0;k[c>>2]=a;k[f>>2]=d;if(h&2)if((e-d|0)<3)a=1;else{k[f>>2]=d+1;i[d>>0]=-17;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=-69;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=-65;l=4}else l=4;a:do{if((l|0)==4){n=b;a=k[c>>2]|0;if(a>>>0>>0)while(1){h=j[a>>1]|0;l=h&65535;if(l>>>0>g>>>0){a=2;break a}do{if((h&65535)<128){a=k[f>>2]|0;if((e-a|0)<1){a=1;break a}k[f>>2]=a+1;i[a>>0]=h}else{if((h&65535)<2048){a=k[f>>2]|0;if((e-a|0)<2){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>6|192;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((h&65535)<55296){a=k[f>>2]|0;if((e-a|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>12|224;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>6&63|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((h&65535)>=56320){if((h&65535)<57344){a=2;break a}a=k[f>>2]|0;if((e-a|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>12|224;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>6&63|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((n-a|0)<4){a=1;break a}a=a+2|0;h=m[a>>1]|0;if((h&64512|0)!=56320){a=2;break a}if((e-(k[f>>2]|0)|0)<4){a=1;break a}d=l&960;if(((d<<10)+65536|l<<10&64512|h&1023)>>>0>g>>>0){a=2;break a}k[c>>2]=a;a=(d>>>6)+1|0;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=a>>>2|240;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>2&15|a<<4&48|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l<<4&48|h>>>6&15|128;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=h&63|128}}while(0);a=(k[c>>2]|0)+2|0;k[c>>2]=a;if(a>>>0>=b>>>0){a=0;break}}else a=0}}while(0);return a|0}function Sv(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 m=0,n=0,o=0,p=0,q=0,r=0;k[c>>2]=a;k[f>>2]=d;if(h&4){a=k[c>>2]|0;h=b;if((((h-a|0)>2?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)?(i[a+2>>0]|0)==-65:0){k[c>>2]=a+3;m=k[f>>2]|0}else m=d}else{m=d;h=b}q=e;d=k[c>>2]|0;a=d>>>0>>0;a:do{if(a&m>>>0>>0)while(1){a=i[d>>0]|0;o=a&255;if(o>>>0>g>>>0){a=2;break a}do{if(a<<24>>24>-1){j[m>>1]=a&255;k[c>>2]=d+1}else{if((a&255)<194){a=2;break a}if((a&255)<224){if((h-d|0)<2){a=1;break a}a=l[d+1>>0]|0;if((a&192|0)!=128){a=2;break a}a=a&63|o<<6&1984;if(a>>>0>g>>>0){a=2;break a}j[m>>1]=a;k[c>>2]=d+2;break}if((a&255)<240){if((h-d|0)<3){a=1;break a}n=i[d+1>>0]|0;a=i[d+2>>0]|0;switch(o|0){case 224:{if((n&-32)<<24>>24!=-96){a=2;break a}break}case 237:{if((n&-32)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}a=a&255;if((a&192|0)!=128){a=2;break a}a=(n&255)<<6&4032|o<<12|a&63;if((a&65535)>>>0>g>>>0){a=2;break a}j[m>>1]=a;k[c>>2]=d+3;break}if((a&255)>=245){a=2;break a}if((h-d|0)<4){a=1;break a}n=i[d+1>>0]|0;a=i[d+2>>0]|0;d=i[d+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){a=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}p=a&255;if((p&192|0)!=128){a=2;break a}a=d&255;if((a&192|0)!=128){a=2;break a}if((q-m|0)<4){a=1;break a}o=o&7;d=n&255;n=p<<6;a=a&63;if((d<<12&258048|o<<18|n&4032|a)>>>0>g>>>0){a=2;break a}j[m>>1]=d<<2&60|p>>>4&3|((d>>>4&3|o<<2)<<6)+16320|55296;p=m+2|0;k[f>>2]=p;j[p>>1]=a|n&960|56320;k[c>>2]=(k[c>>2]|0)+4}}while(0);m=(k[f>>2]|0)+2|0;k[f>>2]=m;d=k[c>>2]|0;a=d>>>0>>0;if(!(a&m>>>0>>0)){r=39;break}}else r=39}while(0);if((r|0)==39)a=a&1;return a|0}function Tv(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,j=0,k=0,m=0,n=0;n=b;if((((e&4|0)!=0?(n-a|0)>2:0)?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)e=(i[a+2>>0]|0)==-65?a+3|0:a;else e=a;a:do{if((c|0)!=0&e>>>0>>0){m=e;f=0;b:while(1){e=i[m>>0]|0;k=e&255;if(k>>>0>d>>>0){e=m;f=42;break a}do{if(e<<24>>24>-1)e=m+1|0;else{if((e&255)<194){e=m;f=42;break a}if((e&255)<224){if((n-m|0)<2){e=m;f=42;break a}e=l[m+1>>0]|0;if((e&192|0)!=128){e=m;f=42;break a}if((e&63|k<<6&1984)>>>0>d>>>0){e=m;f=42;break a}e=m+2|0;break}if((e&255)<240){e=m;if((n-e|0)<3){e=m;f=42;break a}h=i[m+1>>0]|0;g=i[m+2>>0]|0;switch(k|0){case 224:{if((h&-32)<<24>>24!=-96){f=20;break b}break}case 237:{if((h&-32)<<24>>24!=-128){f=22;break b}break}default:if((h&-64)<<24>>24!=-128){f=24;break b}}e=g&255;if((e&192|0)!=128){e=m;f=42;break a}if(((h&255)<<6&4032|k<<12&61440|e&63)>>>0>d>>>0){e=m;f=42;break a}e=m+3|0;break}if((e&255)>=245){e=m;f=42;break a}e=m;if((c-f|0)>>>0<2|(n-e|0)<4){e=m;f=42;break a}j=i[m+1>>0]|0;g=i[m+2>>0]|0;h=i[m+3>>0]|0;switch(k|0){case 240:{if((j+112&255)>=48){f=32;break b}break}case 244:{if((j&-16)<<24>>24!=-128){f=34;break b}break}default:if((j&-64)<<24>>24!=-128){f=36;break b}}g=g&255;if((g&192|0)!=128){e=m;f=42;break a}e=h&255;if((e&192|0)!=128){e=m;f=42;break a}if(((j&255)<<12&258048|k<<18&1835008|g<<6&4032|e&63)>>>0>d>>>0){e=m;f=42;break a}e=m+4|0;f=f+1|0}}while(0);f=f+1|0;if(!(f>>>0>>0&e>>>0>>0)){f=42;break a}else m=e}if((f|0)==20){e=e-a|0;break}else if((f|0)==22){e=e-a|0;break}else if((f|0)==24){e=e-a|0;break}else if((f|0)==32){e=e-a|0;break}else if((f|0)==34){e=e-a|0;break}else if((f|0)==36){e=e-a|0;break}}else f=42}while(0);if((f|0)==42)e=e-a|0;return e|0}function Uv(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 j=0,l=0;k[c>>2]=a;k[f>>2]=d;l=e;if(h&2)if((l-d|0)<3)a=1;else{k[f>>2]=d+1;i[d>>0]=-17;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=-69;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=-65;j=4}else j=4;a:do{if((j|0)==4){a=k[c>>2]|0;if(a>>>0>>0)while(1){h=k[a>>2]|0;if(h>>>0>g>>>0|(h&-2048|0)==55296){a=2;break a}do{if(h>>>0>=128){if(h>>>0<2048){a=k[f>>2]|0;if((l-a|0)<2){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>6|192;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}a=k[f>>2]|0;e=l-a|0;if(h>>>0<65536){if((e|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>12|224;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>6&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}else{if((e|0)<4){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>18|240;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>12&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>6&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}}else{a=k[f>>2]|0;if((l-a|0)<1){a=1;break a}k[f>>2]=a+1;i[a>>0]=h}}while(0);a=(k[c>>2]|0)+4|0;k[c>>2]=a;if(a>>>0>=b>>>0){a=0;break}}else a=0}}while(0);return a|0}function Vv(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 j=0,m=0,n=0,o=0,p=0,q=0;k[c>>2]=a;k[f>>2]=d;if(h&4){a=k[c>>2]|0;h=b;if((((h-a|0)>2?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)?(i[a+2>>0]|0)==-65:0){k[c>>2]=a+3;d=k[f>>2]|0;p=h}else p=h}else p=b;h=k[c>>2]|0;a=h>>>0>>0;a:do{if(a&d>>>0>>0)while(1){a=i[h>>0]|0;o=a&255;do{if(a<<24>>24>-1){if(o>>>0>g>>>0){a=2;break a}k[d>>2]=o;k[c>>2]=h+1}else{if((a&255)<194){a=2;break a}if((a&255)<224){if((p-h|0)<2){a=1;break a}a=l[h+1>>0]|0;if((a&192|0)!=128){a=2;break a}a=a&63|o<<6&1984;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+2;break}if((a&255)<240){if((p-h|0)<3){a=1;break a}j=i[h+1>>0]|0;a=i[h+2>>0]|0;switch(o|0){case 224:{if((j&-32)<<24>>24!=-96){a=2;break a}break}case 237:{if((j&-32)<<24>>24!=-128){a=2;break a}break}default:if((j&-64)<<24>>24!=-128){a=2;break a}}a=a&255;if((a&192|0)!=128){a=2;break a}a=(j&255)<<6&4032|o<<12&61440|a&63;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+3;break}if((a&255)>=245){a=2;break a}if((p-h|0)<4){a=1;break a}n=i[h+1>>0]|0;a=i[h+2>>0]|0;j=i[h+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){a=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}m=a&255;if((m&192|0)!=128){a=2;break a}a=j&255;if((a&192|0)!=128){a=2;break a}a=(n&255)<<12&258048|o<<18&1835008|m<<6&4032|a&63;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+4}}while(0);d=(k[f>>2]|0)+4|0;k[f>>2]=d;h=k[c>>2]|0;a=h>>>0>>0;if(!(a&d>>>0>>0)){q=38;break}}else q=38}while(0);if((q|0)==38)a=a&1;return a|0}function Wv(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,j=0,k=0,m=0,n=0;n=b;if((((e&4|0)!=0?(n-a|0)>2:0)?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)e=(i[a+2>>0]|0)==-65?a+3|0:a;else e=a;a:do{if((c|0)!=0&e>>>0>>0){k=e;m=0;b:while(1){e=i[k>>0]|0;j=e&255;do{if(e<<24>>24>-1){if(j>>>0>d>>>0){e=k;f=42;break a}e=k+1|0}else{if((e&255)<194){e=k;f=42;break a}if((e&255)<224){if((n-k|0)<2){e=k;f=42;break a}e=l[k+1>>0]|0;if((e&192|0)!=128){e=k;f=42;break a}if((e&63|j<<6&1984)>>>0>d>>>0){e=k;f=42;break a}e=k+2|0;break}if((e&255)<240){e=k;if((n-e|0)<3){e=k;f=42;break a}g=i[k+1>>0]|0;f=i[k+2>>0]|0;switch(j|0){case 224:{if((g&-32)<<24>>24!=-96){f=20;break b}break}case 237:{if((g&-32)<<24>>24!=-128){f=22;break b}break}default:if((g&-64)<<24>>24!=-128){f=24;break b}}e=f&255;if((e&192|0)!=128){e=k;f=42;break a}if(((g&255)<<6&4032|j<<12&61440|e&63)>>>0>d>>>0){e=k;f=42;break a}e=k+3|0;break}if((e&255)>=245){e=k;f=42;break a}e=k;if((n-e|0)<4){e=k;f=42;break a}h=i[k+1>>0]|0;f=i[k+2>>0]|0;g=i[k+3>>0]|0;switch(j|0){case 240:{if((h+112&255)>=48){f=32;break b}break}case 244:{if((h&-16)<<24>>24!=-128){f=34;break b}break}default:if((h&-64)<<24>>24!=-128){f=36;break b}}f=f&255;if((f&192|0)!=128){e=k;f=42;break a}e=g&255;if((e&192|0)!=128){e=k;f=42;break a}if(((h&255)<<12&258048|j<<18&1835008|f<<6&4032|e&63)>>>0>d>>>0){e=k;f=42;break a}e=k+4|0}}while(0);m=m+1|0;if(!(m>>>0>>0&e>>>0>>0)){f=42;break a}else k=e}if((f|0)==20){e=e-a|0;break}else if((f|0)==22){e=e-a|0;break}else if((f|0)==24){e=e-a|0;break}else if((f|0)==32){e=e-a|0;break}else if((f|0)==34){e=e-a|0;break}else if((f|0)==36){e=e-a|0;break}}else f=42}while(0);if((f|0)==42)e=e-a|0;return e|0}function Xv(a){a=a|0;Sm(45196);Sm(45184);Sm(45172);Sm(45160);Sm(45148);Sm(45136);Sm(45124);Sm(45112);Sm(45100);Sm(45088);Sm(45076);Sm(45064);Sm(45052);Sm(45040);return}function Yv(a){a=a|0;en(45368);en(45356);en(45344);en(45332);en(45320);en(45308);en(45296);en(45284);en(45272);en(45260);en(45248);en(45236);en(45224);en(45212);return}function Zv(a){a=a|0;Sm(46e3);Sm(45988);Sm(45976);Sm(45964);Sm(45952);Sm(45940);Sm(45928);Sm(45916);Sm(45904);Sm(45892);Sm(45880);Sm(45868);Sm(45856);Sm(45844);Sm(45832);Sm(45820);Sm(45808);Sm(45796);Sm(45784);Sm(45772);Sm(45760);Sm(45748);Sm(45736);Sm(45724);return}function _v(a){a=a|0;en(46292);en(46280);en(46268);en(46256);en(46244);en(46232);en(46220);en(46208);en(46196);en(46184);en(46172);en(46160);en(46148);en(46136);en(46124);en(46112);en(46100);en(46088);en(46076);en(46064);en(46052);en(46040);en(46028);en(46016);return}function $v(a){a=a|0;Sm(47104);Sm(47092);Sm(47080);Sm(47068);Sm(47056);Sm(47044);Sm(47032);Sm(47020);Sm(47008);Sm(46996);Sm(46984);Sm(46972);Sm(46960);Sm(46948);Sm(46936);Sm(46924);Sm(46912);Sm(46900);Sm(46888);Sm(46876);Sm(46864);Sm(46852);Sm(46840);Sm(46828);return}function aw(a){a=a|0;en(47396);en(47384);en(47372);en(47360);en(47348);en(47336);en(47324);en(47312);en(47300);en(47288);en(47276);en(47264);en(47252);en(47240);en(47228);en(47216);en(47204);en(47192);en(47180);en(47168);en(47156);en(47144);en(47132);en(47120);return}function bw(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+32|0;h=i;f=k[a+8>>2]|0;c=k[a+4>>2]|0;if(f-c>>2>>>0>>0){d=k[a>>2]|0;g=c-d>>2;e=g+b|0;if(e>>>0>1073741823)jj(a);c=f-d|0;if(c>>2>>>0<536870911){c=c>>1;c=c>>>0>>0?e:c}else c=1073741823;dw(h,c,g,a+16|0);g=h+8|0;f=k[g>>2]|0;sw(f|0,0,b<<2|0)|0;k[g>>2]=f+(b<<2);ew(a,h);fw(h)}else cw(a,b);r=i;return}function cw(a,b){a=a|0;b=b|0;var c=0;c=a+4|0;a=b;b=k[c>>2]|0;do{k[b>>2]=0;b=(k[c>>2]|0)+4|0;k[c>>2]=b;a=a+-1|0}while((a|0)!=0);return}function dw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;k[a+12>>2]=0;k[a+16>>2]=d;do{if(b){e=d+112|0;if(b>>>0<29&(i[e>>0]|0)==0){i[e>>0]=1;break}else{d=lj(b<<2)|0;break}}else d=0}while(0);k[a>>2]=d;c=d+(c<<2)|0;k[a+8>>2]=c;k[a+4>>2]=c;k[a+12>>2]=d+(b<<2);return}function ew(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=k[a>>2]|0;f=a+4|0;c=b+4|0;e=(k[f>>2]|0)-d|0;g=(k[c>>2]|0)+(0-(e>>2)<<2)|0;k[c>>2]=g;vw(g|0,d|0,e|0)|0;e=k[a>>2]|0;k[a>>2]=k[c>>2];k[c>>2]=e;e=b+8|0;d=k[f>>2]|0;k[f>>2]=k[e>>2];k[e>>2]=d;e=a+8|0;a=b+12|0;d=k[e>>2]|0;k[e>>2]=k[a>>2];k[a>>2]=d;k[b>>2]=k[c>>2];return}function fw(a){a=a|0;var b=0,c=0,d=0;c=k[a+4>>2]|0;d=a+8|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do{b=b+-4|0}while((b|0)!=(c|0));k[d>>2]=b}c=k[a>>2]|0;do{if(c){b=k[a+16>>2]|0;if((b|0)==(c|0)){i[b+112>>0]=0;break}else{mj(c);break}}}while(0);return}function gw(a,b){a=a|0;b=b|0;var c=0;if(b>>>0>1073741823)jj(a);c=a+128|0;if(b>>>0<29&(i[c>>0]|0)==0){i[c>>0]=1;c=a+16|0}else c=lj(b<<2)|0;k[a+4>>2]=c;k[a>>2]=c;k[a+8>>2]=c+(b<<2);return}function hw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do{if((a|0)!=(b|0)){e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}else{k[c>>2]=4;d=0.0}}while(0);r=h;return+d}function iw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do{if((a|0)!=(b|0)){e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}else{k[c>>2]=4;d=0.0}}while(0);r=h;return+d}function jw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do{if((a|0)==(b|0)){k[c>>2]=4;d=0.0}else{e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}}while(0);r=h;return+d}function kw(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;h=r;r=r+16|0;g=h;do{if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;d=0;a=0;break}e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;a=fk(a,g,d,fp()|0)|0;d=k[e>>2]|0;if(!d)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0;a=0;break}if((d|0)==34){k[c>>2]=4;d=-1;a=-1}else d=M}else{k[c>>2]=4;d=0;a=0}}while(0);M=d;r=h;return a|0}function lw(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,j=0;j=r;r=r+16|0;h=j;do{if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>4294967295|(e|0)==34){k[c>>2]=4;a=-1;break}else break}else{k[c>>2]=4;a=0}}while(0);r=j;return a|0}function mw(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,j=0;j=r;r=r+16|0;h=j;do{if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>4294967295|(e|0)==34){k[c>>2]=4;a=-1;break}else break}else{k[c>>2]=4;a=0}}while(0);r=j;return a|0}function nw(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,j=0;j=r;r=r+16|0;h=j;do{if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>65535|(e|0)==34){k[c>>2]=4;a=-1;break}else{a=a&65535;break}}else{k[c>>2]=4;a=0}}while(0);r=j;return a|0}function ow(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;i=r;r=r+16|0;h=i;do{if((a|0)!=(b|0)){f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=gk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;d=0;a=0;break}if((e|0)==34){k[c>>2]=4;h=(d|0)>0|(d|0)==0&a>>>0>0;M=h?2147483647:-2147483648;r=i;return(h?-1:0)|0}}else{k[c>>2]=4;d=0;a=0}}while(0);M=d;r=i;return a|0}function pw(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;i=r;r=r+16|0;h=i;a:do{if((a|0)==(b|0)){k[c>>2]=4;a=0}else{f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=gk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}do{if((e|0)==34){k[c>>2]=4;if((d|0)>0|(d|0)==0&a>>>0>0){a=2147483647;break a}}else{if((d|0)<-1|(d|0)==-1&a>>>0<2147483648){k[c>>2]=4;break}if((d|0)>0|(d|0)==0&a>>>0>2147483647){k[c>>2]=4;a=2147483647;break a}else break a}}while(0);a=-2147483648}}while(0);r=i;return a|0}function qw(){}function rw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return(M=d,a-c>>>0|0)|0}function sw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+c|0;if((c|0)>=20){b=b&255;f=a&3;g=b|b<<8|b<<16|b<<24;e=d&~3;if(f){f=a+4-f|0;while((a|0)<(f|0)){i[a>>0]=b;a=a+1|0}}while((a|0)<(e|0)){k[a>>2]=g;a=a+4|0}}while((a|0)<(d|0)){i[a>>0]=b;a=a+1|0}return a-c|0}function tw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(M=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function uw(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b>>>c;return a>>>c|(b&(1<>>c-32|0}function vw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((c|0)>=4096)return db(a|0,b|0,c|0)|0;d=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return d|0;i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){k[a>>2]=k[b>>2];a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}return d|0}function ww(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b<>>32-c;return a<0){a=a-1|0;b=b-1|0;c=c-1|0;i[a>>0]=i[b>>0]|0}a=d}else vw(a,b,c)|0;return a|0}function yw(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b>>c;return a>>>c|(b&(1<>c-32|0}function zw(a){a=a|0;var b=0;b=i[v+(a&255)>>0]|0;if((b|0)<8)return b|0;b=i[v+(a>>8&255)>>0]|0;if((b|0)<8)return b+8|0;b=i[v+(a>>16&255)>>0]|0;if((b|0)<8)return b+16|0;return(i[v+(a>>>24)>>0]|0)+24|0}function Aw(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=ia(e,f)|0;d=a>>>16;a=(c>>>16)+(ia(e,d)|0)|0;e=b>>>16;b=ia(e,f)|0;return(M=(a>>>16)+(ia(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Bw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=rw(j^a,i^b,j,i)|0;g=M;a=f^j;b=e^i;return rw((Gw(h,g,rw(f^c,e^d,f,e)|0,M,0)|0)^a,M^b,a,b)|0}function Cw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=r;r=r+16|0;h=e|0;g=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=d>>31|((d|0)<0?-1:0)<<1;i=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=rw(g^a,f^b,g,f)|0;b=M;Gw(a,b,rw(j^c,i^d,j,i)|0,M,h)|0;d=rw(k[h>>2]^g,k[h+4>>2]^f,g,f)|0;c=M;r=e;return(M=c,d)|0}function Dw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Aw(e,f)|0;a=M;return(M=(ia(b,f)|0)+(ia(d,e)|0)+a|a&0,c|0|0)|0}function Ew(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Gw(a,b,c,d,0)|0}function Fw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=r;r=r+16|0;e=f|0;Gw(a,b,c,d,e)|0;r=f;return(M=k[e+4>>2]|0,k[e>>2]|0)|0}function Gw(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,l=0,m=0,n=0,o=0,p=0;l=a;i=b;j=i;g=c;n=d;h=n;if(!j){f=(e|0)!=0;if(!h){if(f){k[e>>2]=(l>>>0)%(g>>>0);k[e+4>>2]=0}n=0;e=(l>>>0)/(g>>>0)>>>0;return(M=n,e)|0}else{if(!f){n=0;e=0;return(M=n,e)|0}k[e>>2]=a|0;k[e+4>>2]=b&0;n=0;e=0;return(M=n,e)|0}}f=(h|0)==0;do{if(g){if(!f){f=(ka(h|0)|0)-(ka(j|0)|0)|0;if(f>>>0<=31){m=f+1|0;h=31-f|0;b=f-31>>31;g=m;a=l>>>(m>>>0)&b|j<>>(m>>>0)&b;f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;n=0;e=0;return(M=n,e)|0}f=g-1|0;if(f&g){h=(ka(g|0)|0)+33-(ka(j|0)|0)|0;p=64-h|0;m=32-h|0;i=m>>31;o=h-32|0;b=o>>31;g=h;a=m-1>>31&j>>>(o>>>0)|(j<>>(h>>>0))&b;b=b&j>>>(h>>>0);f=l<>>(o>>>0))&i|l<>31;break}if(e){k[e>>2]=f&l;k[e+4>>2]=0}if((g|0)==1){o=i|b&0;p=a|0|0;return(M=o,p)|0}else{p=zw(g|0)|0;o=j>>>(p>>>0)|0;p=j<<32-p|l>>>(p>>>0)|0;return(M=o,p)|0}}else{if(f){if(e){k[e>>2]=(j>>>0)%(g>>>0);k[e+4>>2]=0}o=0;p=(j>>>0)/(g>>>0)>>>0;return(M=o,p)|0}if(!l){if(e){k[e>>2]=0;k[e+4>>2]=(j>>>0)%(h>>>0)}o=0;p=(j>>>0)/(h>>>0)>>>0;return(M=o,p)|0}f=h-1|0;if(!(f&h)){if(e){k[e>>2]=a|0;k[e+4>>2]=f&j|b&0}o=0;p=j>>>((zw(h|0)|0)>>>0);return(M=o,p)|0}f=(ka(h|0)|0)-(ka(j|0)|0)|0;if(f>>>0<=30){b=f+1|0;h=31-f|0;g=b;a=j<>>(b>>>0);b=j>>>(b>>>0);f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;o=0;p=0;return(M=o,p)|0}}while(0);if(!g){j=h;i=0;h=0}else{m=c|0|0;l=n|d&0;j=tw(m|0,l|0,-1,-1)|0;c=M;i=h;h=0;do{d=i;i=f>>>31|i<<1;f=h|f<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;rw(j,c,d,n)|0;p=M;o=p>>31|((p|0)<0?-1:0)<<1;h=o&1;a=rw(d,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=M;g=g-1|0}while((g|0)!=0);j=i;i=0}g=0;if(e){k[e>>2]=a;k[e+4>>2]=b}o=(f|0)>>>31|(j|g)<<1|(g<<1|f>>>31)&0|i;p=(f<<1|0>>>31)&-2|h;return(M=o,p)|0}function Hw(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return Ib[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function Iw(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Jb[a&15](b|0,c|0,d|0,e|0,f|0)}function Jw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;return Kb[a&3](b|0,c|0,d|0,e|0,f|0,+g)|0}function Kw(a,b){a=a|0;b=b|0;Lb[a&255](b|0)}function Lw(a,b,c){a=a|0;b=b|0;c=c|0;Mb[a&127](b|0,c|0)}function Mw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Nb[a&63](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Nw(a,b){a=a|0;b=b|0;return Ob[a&127](b|0)|0}function Ow(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|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;return Pb[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0)|0}function Pw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Qb[a&63](b|0,c|0,d|0)|0}function Qw(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){a=a|0;b=b|0;c=c|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;n=n|0;o=o|0;p=p|0;Rb[a&3](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)}function Rw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Sb[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function Sw(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;Tb[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Tw(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|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;Ub[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Uw(a,b,c){a=a|0;b=b|0;c=c|0;return Vb[a&63](b|0,c|0)|0}function Vw(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 Wb[a&31](b|0,c|0,d|0,e|0,f|0)|0}function Ww(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return+Xb[a&3](b|0,c|0,d|0)}function Xw(a){a=a|0;return Yb[a&15]()|0}function Yw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Zb[a&31](b|0,c|0,d|0,e|0)|0}function Zw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_b[a&15](b|0,c|0,d|0)}function _w(a){a=a|0;$b[a&7]()}function $w(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return ac[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function ax(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return bc[a&7](b|0,c|0,d|0,e|0,+f)|0}function bx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;cc[a&63](b|0,c|0,d|0,e|0)}function cx(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;la(0);return 0}function dx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;la(1)}function ex(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;la(2);return 0}function fx(a){a=a|0;la(3)}function gx(a,b){a=a|0;b=b|0;la(4)}function hx(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;la(5);return 0}function ix(a){a=a|0;la(6);return 0}function jx(a){a=a|0;return lb(a|0)|0}function kx(a){a=a|0;return Ab(a|0)|0}function lx(a){a=a|0;return qb(a|0)|0}function mx(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|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;la(7);return 0}function nx(a,b,c){a=a|0;b=b|0;c=c|0;la(8);return 0}function ox(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a=a|0;b=b|0;c=c|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;n=n|0;o=o|0;la(9)}function px(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;la(10)}function qx(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;la(11)}function rx(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;la(12)}function sx(a,b){a=a|0;b=b|0;la(13);return 0}function tx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;la(14);return 0}function ux(a,b,c){a=a|0;b=b|0;c=c|0;la(15);return 0.0}function vx(){la(16);return 0}function wx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;la(17);return 0}function xx(a,b,c){a=a|0;b=b|0;c=c|0;la(18)}function yx(a,b,c){a=a|0;b=b|0;c=c|0;ub(a|0,b|0,c|0)}function zx(){la(19)}function Ax(){yb()}function Bx(){eb()}function Cx(){vb()}function Dx(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;la(20);return 0}function Ex(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;la(21);return 0}function Fx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;la(22)}function ni(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8900]|0;k[a+4580>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+256;g=a+160|0;e=a+156|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function oi(a){a=a|0;var b=0,c=0;k[a>>2]=35660;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function pi(a){a=a|0;var b=0,c=0;k[a>>2]=35660;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function qi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;zi(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function si(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);ti(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function ti(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;h=a+172|0;y=(k[h>>2]|0)+4|0;if((k[a+28>>2]|0)==1)j=k[a+20>>2]|0;else j=1;b=ia(j<<1,y)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))w=6;if((w|0)==6?(x=0,c=ta(67,b|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[D>>2]|0)+1|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!j)w=19;else{if(!(j>>>0>1073741823?(x=0,qa(178,z|0),v=x,x=0,v&1):0))w=17;if((w|0)==17?(d=j<<2,x=0,e=ta(67,d|0)|0,v=x,x=0,!(v&1)):0){k[z>>2]=e;w=e+(j<<2)|0;k[z+8>>2]=w;sw(e|0,0,d|0)|0;k[B>>2]=w;w=19;break}c=Wa()|0;b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}}while(0);if((w|0)==19){l=a+8|0;b=k[l>>2]|0;b:do{if((b|0)>0){m=a+4596|0;n=ia(j,y)|0;o=n+1|0;p=a+4600|0;q=a+160|0;s=a+168|0;t=a+164|0;u=a+156|0;v=a+88|0;g=a+4592|0;if((j|0)>0)f=0;else{f=0;while(1){e=k[C>>2]|0;c=e+1|0;k[m>>2]=c;d=e+o|0;k[p>>2]=d;if(!(f&1))c=o;else{k[m>>2]=d;k[p>>2]=c;c=1}j=k[q>>2]|0;if((j|0)<=(f|0)?(f|0)<((k[s>>2]|0)+j|0):0){j=k[v>>2]|0;x=0;Ja(k[(k[j>>2]|0)+8>>2]|0,j|0,e+(c+((k[u>>2]|0)-n))|0,k[t>>2]|0,y|0);j=x;x=0;if(j&1)break;b=k[l>>2]|0}f=f+1|0;if((f|0)>=(b|0)){w=50;break b}}c=Wa()|0;break}c:while(1){c=k[C>>2]|0;b=c+1|0;k[m>>2]=b;c=c+o|0;k[p>>2]=c;if(f&1){k[m>>2]=c;k[p>>2]=b;b=c}e=k[z>>2]|0;c=b;d=0;do{k[g>>2]=k[e+(d<<2)>>2];w=k[h>>2]|0;i[c+w>>0]=i[c+(w+-1)>>0]|0;i[(k[p>>2]|0)+-1>>0]=i[k[m>>2]>>0]|0;x=0;ra(83,a|0,0);w=x;x=0;if(w&1){w=38;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[g>>2];c=(k[m>>2]|0)+y|0;k[m>>2]=c;b=k[p>>2]|0;k[p>>2]=b+y;d=d+1|0}while((d|0)<(j|0));w=k[q>>2]|0;if(((w|0)<=(f|0)?(f|0)<((k[s>>2]|0)+w|0):0)?(w=k[v>>2]|0,x=0,Ja(k[(k[w>>2]|0)+8>>2]|0,w|0,b+(y+((k[u>>2]|0)-n))|0,k[t>>2]|0,y|0),w=x,x=0,w&1):0){w=30;break}f=f+1|0;if((f|0)>=(k[l>>2]|0)){w=50;break b}}if((w|0)==30){c=Wa()|0;break}else if((w|0)==38){c=Wa()|0;break}}else w=50}while(0);do{if((w|0)==50){x=0;qa(183,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);r=A;return}}while(0);b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}function ui(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=a+4596|0;c=k[p>>2]|0;t=a+172|0;b=k[t>>2]|0;if((b|0)<=0)return;q=a+4600|0;r=a+4604|0;s=a+4592|0;h=c;f=l[c+-1>>0]|0;c=l[c>>0]|0;o=0;while(1){m=k[q>>2]|0;g=i[m+(o+-1)>>0]|0;n=g&255;e=o+1|0;d=l[h+e>>0]|0;j=k[r>>2]|0;h=c-f|0;f=f-n|0;j=((((i[j+(d-c)>>0]|0)*9|0)+(i[j+h>>0]|0)|0)*9|0)+(i[j+f>>0]|0)|0;m=m+o|0;if(!j){b=wi(a,g,m,b-o|0)|0;c=b+o|0;if((c|0)!=(k[t>>2]|0)){n=xi(a,n,l[(k[p>>2]|0)+c>>0]|0)|0;i[(k[q>>2]|0)+c>>0]=n;n=k[s>>2]|0;k[s>>2]=(n|0)<1?0:n+-1|0;b=b+1|0}e=b+o|0;d=k[p>>2]|0;c=l[d+(e+-1)>>0]|0;d=l[d+e>>0]|0}else{b=c-n>>31;if((b^f|0)<0)b=c;else b=n+((b^h|0)<0?0:h)|0;n=vi(a,j,l[m>>0]|0,b,0)|0;i[(k[q>>2]|0)+o>>0]=n}b=k[t>>2]|0;if((b|0)<=(e|0))break;h=k[p>>2]|0;f=c;c=d;o=e}return}function vi(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&255;return a|0}a=c&~(e>>31);a=a&255;return a|0}function wi(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,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;sw(c|0,b|0,e|0)|0;return e|0}function xi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b-c|0;g=a+128|0;d=a+136|0;if((((f|0)>-1?f:0-f|0)|0)>(k[d>>2]|0)){b=ia(yi(a,a+4568|0)|0,c-b>>31|1)|0;e=k[d>>2]|0;f=e<<1|1;b=(ia(b,f)|0)+c|0;if((b|0)>=(0-e|0)){d=k[g>>2]|0;if((d+e|0)<(b|0))b=b-(ia(k[a+132>>2]|0,f)|0)|0}else{b=(ia(k[a+132>>2]|0,f)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&255;return a|0}a=d&~(b>>31);a=a&255;return a|0}else{c=yi(a,a+4580|0)|0;f=k[d>>2]|0;e=f<<1|1;b=(ia(e,c)|0)+b|0;if((b|0)>=(0-f|0)){d=k[g>>2]|0;if((d+f|0)<(b|0))b=b-(ia(k[a+132>>2]|0,e)|0)|0}else{b=(ia(k[a+132>>2]|0,e)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&255;return a|0}a=d&~(b>>31);a=a&255;return a|0}return 0}function yi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do{if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function zi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do{if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0}while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Ai(a){a=a|0;mj(a);return}function Bi(a){a=a|0;return 50767}function Ci(a,b,c){a=a|0;b=b|0;c=c|0;Qm(a,50754,12);return}function Di(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+16|0;s=q;k[s>>2]=0;t=s+4|0;k[t>>2]=0;k[s+8>>2]=0;o=s+8|0;x=0;e=ta(67,1)|0;n=x;x=0;a:do{if((!(n&1)?(n=e+1|0,i[e>>0]=c,k[s>>2]=e,k[t>>2]=n,k[o>>2]=n,x=0,ra(84,s|0,b&65535|0),n=x,x=0,!(n&1)):0)?(x=0,ra(84,s|0,a&65535|0),n=x,x=0,!(n&1)):0){l=d&255;e=k[t>>2]|0;c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);n=x;x=0;if(n&1){p=52;break}a=k[s>>2]|0;c=k[o>>2]|0;b=a}j=b;e=c-j|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;c=k[t>>2]|0;h=c-j|0;if(!e){e=0;g=0}else p=12}else{h=k[t>>2]|0;e=2147483647;c=h;h=h-j|0;p=12}if((p|0)==12){x=0;g=ta(67,e|0)|0;n=x;x=0;if(n&1){p=52;break}}i[g+h>>0]=l;m=c-j|0;n=g+(h-m)|0;vw(n|0,b|0,m|0)|0;k[s>>2]=n;k[t>>2]=g+(h+1);k[o>>2]=g+e;if(a)mj(a)}else{i[e>>0]=l;k[t>>2]=(k[t>>2]|0)+1}b:do{if((d|0)>0){n=0;while(1){n=n+1|0;m=n&255;e=k[t>>2]|0;b=k[o>>2]|0;if(e>>>0>=b>>>0){a=k[s>>2]|0;c=a;g=e-c+1|0;if((g|0)<0){x=0;qa(178,s|0);l=x;x=0;if(l&1)break;a=k[s>>2]|0;c=a;b=k[o>>2]|0}l=a;e=b-l|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;b=k[t>>2]|0;h=b-l|0;if(!e){j=0;g=0}else p=25}else{h=k[t>>2]|0;e=2147483647;b=h;h=h-l|0;p=25}if((p|0)==25){p=0;x=0;g=ta(67,e|0)|0;j=x;x=0;if(j&1)break;else j=e}i[g+h>>0]=m;e=g+(h+1)|0;l=b-l|0;m=g+(h-l)|0;vw(m|0,a|0,l|0)|0;k[s>>2]=m;k[t>>2]=e;k[o>>2]=g+j;if(c){mj(c);e=k[t>>2]|0}}else{i[e>>0]=m;e=(k[t>>2]|0)+1|0;k[t>>2]=e}c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);m=x;x=0;if(m&1)break;a=k[s>>2]|0;c=k[o>>2]|0;b=a}l=b;e=c-l|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;g=k[t>>2]|0;h=g-l|0;if(!e){j=0;c=0}else p=36}else{h=k[t>>2]|0;e=2147483647;g=h;h=h-l|0;p=36}if((p|0)==36){p=0;x=0;c=ta(67,e|0)|0;m=x;x=0;if(m&1)break;else j=e}i[c+h>>0]=17;e=c+(h+1)|0;l=g-l|0;m=c+(h-l)|0;vw(m|0,b|0,l|0)|0;k[s>>2]=m;k[t>>2]=e;k[o>>2]=c+j;if(a){mj(a);e=k[t>>2]|0}}else{i[e>>0]=17;e=(k[t>>2]|0)+1|0;k[t>>2]=e}c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);m=x;x=0;if(m&1)break;a=k[s>>2]|0;c=k[o>>2]|0;b=a}j=b;e=c-j|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;c=k[t>>2]|0;h=c-j|0;if(!e){e=0;g=0}else p=48}else{h=k[t>>2]|0;e=2147483647;c=h;h=h-j|0;p=48}if((p|0)==48){p=0;x=0;g=ta(67,e|0)|0;m=x;x=0;if(m&1)break}i[g+h>>0]=0;l=c-j|0;m=g+(h-l)|0;vw(m|0,b|0,l|0)|0;k[s>>2]=m;k[t>>2]=g+(h+1);k[o>>2]=g+e;if(a)mj(a)}else{i[e>>0]=0;k[t>>2]=(k[t>>2]|0)+1}if((n|0)>=(d|0))break b}f=Wa()|0;break a}}while(0);x=0;h=ta(67,20)|0;d=x;x=0;if(!(d&1)){k[h>>2]=36800;i[h+4>>0]=-9;a=h+8|0;k[a>>2]=0;g=h+12|0;k[g>>2]=0;c=h+16|0;k[c>>2]=0;e=k[t>>2]|0;d=k[s>>2]|0;b=e-d|0;do{if((e|0)!=(d|0)){if(!((b|0)<0?(x=0,qa(178,a|0),d=x,x=0,d&1):0))p=62;if((p|0)==62?(x=0,f=ta(67,b|0)|0,d=x,x=0,!(d&1)):0){k[g>>2]=f;k[a>>2]=f;k[c>>2]=f+b;e=k[s>>2]|0;c=k[t>>2]|0;if((e|0)==(c|0))break;do{i[f>>0]=i[e>>0]|0;f=(k[g>>2]|0)+1|0;k[g>>2]=f;e=e+1|0}while((e|0)!=(c|0));e=k[s>>2]|0;break}f=Wa()|0;e=k[a>>2]|0;if(e){if((k[g>>2]|0)!=(e|0))k[g>>2]=e;mj(e)}mj(h);break a}}while(0);if(!e){r=q;return h|0}if((k[t>>2]|0)!=(e|0))k[t>>2]=e;mj(e);r=q;return h|0}else p=52}else p=52}while(0);if((p|0)==52)f=Wa()|0;e=k[s>>2]|0;if(!e)fb(f|0);if((k[t>>2]|0)!=(e|0))k[t>>2]=e;mj(e);fb(f|0);return 0}function Ei(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;p=t+28|0;v=t+16|0;s=t+4|0;q=t;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;n=lj(5)|0;k[v>>2]=n;o=v+8|0;k[o>>2]=n+5;i[n>>0]=74;i[n+1>>0]=70;i[n+2>>0]=73;i[n+3>>0]=70;i[n+4>>0]=0;k[w>>2]=n+5;x=0;ra(84,v|0,k[a>>2]&65535|0);n=x;x=0;a:do{if(!(n&1)){l=k[a+4>>2]&255;b=k[w>>2]|0;d=k[o>>2]|0;if(b>>>0>=d>>>0){e=k[v>>2]|0;f=e;g=b-f+1|0;if((g|0)<0){x=0;qa(178,v|0);n=x;x=0;if(n&1){u=43;break}f=k[v>>2]|0;d=k[o>>2]|0;e=f}j=e;b=d-j|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;d=k[w>>2]|0;h=d-j|0;if(!b){b=0;g=0}else u=10}else{h=k[w>>2]|0;b=2147483647;d=h;h=h-j|0;u=10}if((u|0)==10){x=0;g=ta(67,b|0)|0;n=x;x=0;if(n&1){u=43;break}}i[g+h>>0]=l;m=d-j|0;n=g+(h-m)|0;vw(n|0,e|0,m|0)|0;k[v>>2]=n;k[w>>2]=g+(h+1);k[o>>2]=g+b;if(f)mj(f)}else{i[b>>0]=l;k[w>>2]=(k[w>>2]|0)+1}x=0;ra(84,v|0,k[a+8>>2]&65535|0);n=x;x=0;if(!(n&1)?(x=0,ra(84,v|0,k[a+12>>2]&65535|0),n=x,x=0,!(n&1)):0){n=a+16|0;m=k[n>>2]&255;b=k[w>>2]|0;e=k[o>>2]|0;if(b>>>0>=e>>>0){f=k[v>>2]|0;d=f;g=b-d+1|0;if((g|0)<0){x=0;qa(178,v|0);l=x;x=0;if(l&1){u=43;break}f=k[v>>2]|0;d=f;e=k[o>>2]|0}l=f;b=e-l|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;g=k[w>>2]|0;h=g-l|0;if(!b){j=0;e=0}else u=23}else{h=k[w>>2]|0;b=2147483647;g=h;h=h-l|0;u=23}if((u|0)==23){x=0;e=ta(67,b|0)|0;j=x;x=0;if(j&1){u=43;break}else j=b}i[e+h>>0]=m;b=e+(h+1)|0;l=g-l|0;m=e+(h-l)|0;vw(m|0,f|0,l|0)|0;k[v>>2]=m;k[w>>2]=b;k[o>>2]=e+j;if(d){mj(d);b=k[w>>2]|0}}else{i[b>>0]=m;b=(k[w>>2]|0)+1|0;k[w>>2]=b}m=a+20|0;l=k[m>>2]&255;d=k[o>>2]|0;if(b>>>0>=d>>>0){e=k[v>>2]|0;f=e;g=b-f+1|0;if((g|0)<0){x=0;qa(178,v|0);j=x;x=0;if(j&1){u=43;break}f=k[v>>2]|0;d=k[o>>2]|0;e=f}j=e;b=d-j|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;d=k[w>>2]|0;h=d-j|0;if(!b){b=0;g=0}else u=34}else{h=k[w>>2]|0;b=2147483647;d=h;h=h-j|0;u=34}if((u|0)==34){x=0;g=ta(67,b|0)|0;y=x;x=0;if(y&1){u=43;break}}i[g+h>>0]=l;l=d-j|0;y=g+(h-l)|0;vw(y|0,e|0,l|0)|0;k[v>>2]=y;k[w>>2]=g+(h+1);k[o>>2]=g+b;if(f)mj(f)}else{i[b>>0]=l;k[w>>2]=(k[w>>2]|0)+1}b=k[n>>2]|0;do{if((b|0)>0){if(!(k[a+24>>2]|0)){k[q>>2]=k[w>>2];y=0+(ia(b*3|0,k[m>>2]|0)|0)|0;x=0;k[p>>2]=k[q>>2];Ea(15,v|0,p|0,0,y|0)|0;y=x;x=0;if(y&1){u=43;break a}else break}d=Va(16)|0;x=0;Fa(5,s|0,50792,57);y=x;x=0;if(!(y&1)){x=0;b=Da(1)|0;y=x;x=0;if(!(y&1)?(x=0,Ja(36,d|0,1,b|0,s|0),y=x,x=0,!(y&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;b=Wa()|0;Sm(s);if(!c){c=b;break a}}else b=Wa()|0;Ua(d|0);c=b;break a}}while(0);x=0;h=ta(67,20)|0;y=x;x=0;if(!(y&1)){k[h>>2]=36800;i[h+4>>0]=-32;f=h+8|0;k[f>>2]=0;g=h+12|0;k[g>>2]=0;d=h+16|0;k[d>>2]=0;b=k[w>>2]|0;y=k[v>>2]|0;e=b-y|0;do{if((b|0)!=(y|0)){if(!((e|0)<0?(x=0,qa(178,f|0),y=x,x=0,y&1):0))u=53;if((u|0)==53?(x=0,c=ta(67,e|0)|0,y=x,x=0,!(y&1)):0){k[g>>2]=c;k[f>>2]=c;k[d>>2]=c+e;b=k[v>>2]|0;d=k[w>>2]|0;if((b|0)==(d|0))break;do{i[c>>0]=i[b>>0]|0;c=(k[g>>2]|0)+1|0;k[g>>2]=c;b=b+1|0}while((b|0)!=(d|0));b=k[v>>2]|0;break}b=Wa()|0;c=k[f>>2]|0;if(c){if((k[g>>2]|0)!=(c|0))k[g>>2]=c;mj(c)}mj(h);u=44;break a}}while(0);if(!b){r=t;return h|0}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return h|0}else u=43}else u=43}else u=43}while(0);if((u|0)==43){b=Wa()|0;u=44}if((u|0)==44)c=b;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0);return 0}function Fi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;h=r;r=r+16|0;l=h;k[l>>2]=0;m=l+4|0;k[m>>2]=0;k[l+8>>2]=0;x=0;b=ta(67,1)|0;g=x;x=0;a:do{if((((((!(g&1)?(g=b+1|0,i[b>>0]=1,k[l>>2]=b,k[m>>2]=g,k[l+8>>2]=g,x=0,ra(84,l|0,k[a>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+4>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+8>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+12>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+16>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,j=ta(67,20)|0,g=x,x=0,!(g&1)):0){k[j>>2]=36800;i[j+4>>0]=-8;e=j+8|0;k[e>>2]=0;g=j+12|0;k[g>>2]=0;a=j+16|0;k[a>>2]=0;b=k[m>>2]|0;n=k[l>>2]|0;d=b-n|0;do{if((b|0)!=(n|0)){if(!((d|0)<0?(x=0,qa(178,e|0),n=x,x=0,n&1):0))f=11;if((f|0)==11?(x=0,c=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[g>>2]=c;k[e>>2]=c;k[a>>2]=c+d;b=k[l>>2]|0;a=k[m>>2]|0;if((b|0)==(a|0))break;do{i[c>>0]=i[b>>0]|0;c=(k[g>>2]|0)+1|0;k[g>>2]=c;b=b+1|0}while((b|0)!=(a|0));b=k[l>>2]|0;break}c=Wa()|0;b=k[e>>2]|0;if(b){if((k[g>>2]|0)!=(b|0))k[g>>2]=b;mj(b)}mj(j);break a}}while(0);if(!b){r=h;return j|0}if((k[m>>2]|0)!=(b|0))k[m>>2]=b;mj(b);r=h;return j|0}else f=25}while(0);if((f|0)==25)c=Wa()|0;b=k[l>>2]|0;if(!b)fb(c|0);if((k[m>>2]|0)!=(b|0))k[m>>2]=b;mj(b);fb(c|0);return 0}function Gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;f=lj(5)|0;i[f>>0]=109;i[f+1>>0]=114;i[f+2>>0]=102;i[f+3>>0]=120;i[f+4>>0]=a;x=0;e=ta(67,20)|0;d=x;x=0;if(d&1){e=Wa()|0;mj(f);fb(e|0)}k[e>>2]=36800;i[e+4>>0]=-24;a=e+8|0;k[a>>2]=0;b=e+12|0;k[b>>2]=0;c=e+16|0;k[c>>2]=0;x=0;d=ta(67,5)|0;g=x;x=0;if(!(g&1)){k[b>>2]=d;k[a>>2]=d;k[c>>2]=d+5;i[d>>0]=109;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=f+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=d+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=d+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;i[g>>0]=i[d+1>>0]|0;k[b>>2]=(k[b>>2]|0)+1;mj(f);return e|0}g=Wa()|0;mj(e);mj(f);fb(g|0);return 0}function Hi(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;s=v+8|0;x=0;e=ta(67,1)|0;q=x;x=0;a:do{if(!(q&1)){h=e+1|0;q=h;i[e>>0]=b;k[v>>2]=e;k[w>>2]=q;k[s>>2]=q;if((b|0)>0){g=h;q=0;do{p=q+a&255;if(g>>>0>=h>>>0){e=k[v>>2]|0;j=e;g=g-j+1|0;if((g|0)<0){x=0;qa(178,v|0);o=x;x=0;if(o&1){t=28;break}j=k[v>>2]|0;h=k[s>>2]|0;o=j}else o=e;n=o;e=h-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;h=k[w>>2]|0;l=h-n|0;if(!e){m=0;g=0}else t=13}else{l=k[w>>2]|0;e=2147483647;h=l;l=l-n|0;t=13}if((t|0)==13){t=0;x=0;g=ta(67,e|0)|0;m=x;x=0;if(m&1){t=28;break}else m=e}i[g+l>>0]=p;e=g+(l+1)|0;n=h-n|0;p=g+(l-n)|0;vw(p|0,o|0,n|0)|0;k[v>>2]=p;k[w>>2]=e;k[s>>2]=g+m;if(j){mj(j);e=k[w>>2]|0}}else{i[g>>0]=p;e=(k[w>>2]|0)+1|0;k[w>>2]=e}h=k[s>>2]|0;if(e>>>0>=h>>>0){j=k[v>>2]|0;g=j;l=e-g+1|0;if((l|0)<0){x=0;qa(178,v|0);p=x;x=0;if(p&1){t=28;break}j=k[v>>2]|0;g=j;h=k[s>>2]|0}n=j;e=h-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?l:e;l=k[w>>2]|0;h=l-n|0;if(!e){e=0;m=0}else t=24}else{h=k[w>>2]|0;e=2147483647;l=h;h=h-n|0;t=24}if((t|0)==24){t=0;x=0;m=ta(67,e|0)|0;p=x;x=0;if(p&1){t=28;break}}i[m+h>>0]=0;o=l-n|0;p=m+(h-o)|0;vw(p|0,j|0,o|0)|0;k[v>>2]=p;k[w>>2]=m+(h+1);k[s>>2]=m+e;if(g)mj(g)}else{i[e>>0]=0;k[w>>2]=(k[w>>2]|0)+1}q=q+1|0;g=k[w>>2]|0;h=k[s>>2]|0}while((q|0)<(b|0));if((t|0)==28){f=Wa()|0;break}e=c&255;if(g>>>0>>0){i[g>>0]=e;g=(k[w>>2]|0)+1|0;k[w>>2]=g}else t=37}else{g=h;e=c&255;t=37}if((t|0)==37){j=k[v>>2]|0;l=j;m=g-l+1|0;if((m|0)<0){x=0;qa(178,v|0);c=x;x=0;if(c&1){t=29;break}l=k[v>>2]|0;h=k[s>>2]|0;j=l}p=j;g=h-p|0;if(g>>>0<1073741823){g=g<<1;g=g>>>0>>0?m:g;m=k[w>>2]|0;n=m-p|0;if(!g){o=0;h=0}else t=43}else{n=k[w>>2]|0;g=2147483647;m=n;n=n-p|0;t=43}if((t|0)==43){x=0;h=ta(67,g|0)|0;c=x;x=0;if(c&1){t=29;break}else o=g}i[h+n>>0]=e;g=h+(n+1)|0;a=m-p|0;c=h+(n-a)|0;vw(c|0,j|0,a|0)|0;k[v>>2]=c;k[w>>2]=g;k[s>>2]=h+o;if(l){mj(l);g=k[w>>2]|0}}p=d&255;e=k[s>>2]|0;if(g>>>0>=e>>>0){h=k[v>>2]|0;j=h;g=g-j+1|0;if((g|0)<0){x=0;qa(178,v|0);d=x;x=0;if(d&1){t=29;break}j=k[v>>2]|0;e=k[s>>2]|0;h=j}o=h;e=e-o|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;l=k[w>>2]|0;m=l-o|0;if(!e){n=0;g=0}else t=54}else{m=k[w>>2]|0;e=2147483647;l=m;m=m-o|0;t=54}if((t|0)==54){x=0;g=ta(67,e|0)|0;d=x;x=0;if(d&1){t=29;break}else n=e}i[g+m>>0]=p;e=g+(m+1)|0;c=l-o|0;d=g+(m-c)|0;vw(d|0,h|0,c|0)|0;k[v>>2]=d;k[w>>2]=e;k[s>>2]=g+n;if(j){mj(j);e=k[w>>2]|0}}else{i[g>>0]=p;e=(k[w>>2]|0)+1|0;k[w>>2]=e}g=k[s>>2]|0;if(e>>>0>=g>>>0){h=k[v>>2]|0;j=h;l=e-j+1|0;if((l|0)<0){x=0;qa(178,v|0);d=x;x=0;if(d&1){t=29;break}j=k[v>>2]|0;g=k[s>>2]|0;h=j}n=h;e=g-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?l:e;g=k[w>>2]|0;m=g-n|0;if(!e){e=0;l=0}else t=65}else{m=k[w>>2]|0;e=2147483647;g=m;m=m-n|0;t=65}if((t|0)==65){x=0;l=ta(67,e|0)|0;d=x;x=0;if(d&1){t=29;break}}i[l+m>>0]=0;c=g-n|0;d=l+(m-c)|0;vw(d|0,h|0,c|0)|0;k[v>>2]=d;k[w>>2]=l+(m+1);k[s>>2]=l+e;if(j)mj(j)}else{i[e>>0]=0;k[w>>2]=(k[w>>2]|0)+1}x=0;m=ta(67,20)|0;s=x;x=0;if(!(s&1)){k[m>>2]=36800;i[m+4>>0]=-38;j=m+8|0;k[j>>2]=0;l=m+12|0;k[l>>2]=0;g=m+16|0;k[g>>2]=0;e=k[w>>2]|0;s=k[v>>2]|0;h=e-s|0;do{if((e|0)!=(s|0)){if(!((h|0)<0?(x=0,qa(178,j|0),s=x,x=0,s&1):0))t=72;if((t|0)==72?(x=0,f=ta(67,h|0)|0,s=x,x=0,!(s&1)):0){k[l>>2]=f;k[j>>2]=f;k[g>>2]=f+h;e=k[v>>2]|0;g=k[w>>2]|0;if((e|0)==(g|0))break;do{i[f>>0]=i[e>>0]|0;f=(k[l>>2]|0)+1|0;k[l>>2]=f;e=e+1|0}while((e|0)!=(g|0));e=k[v>>2]|0;break}f=Wa()|0;e=k[j>>2]|0;if(e){if((k[l>>2]|0)!=(e|0))k[l>>2]=e;mj(e)}mj(m);break a}}while(0);if(!e){r=u;return m|0}if((k[w>>2]|0)!=(e|0))k[w>>2]=e;mj(e);r=u;return m|0}else t=29}else t=29}while(0);if((t|0)==29)f=Wa()|0;e=k[v>>2]|0;if(!e)fb(f|0);if((k[w>>2]|0)!=(e|0))k[w>>2]=e;mj(e);fb(f|0);return 0}function Ii(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=(b&65535)>>>8&255;o=a+4|0;c=k[o>>2]|0;p=a+8|0;d=k[p>>2]|0;if(c>>>0>=d>>>0){e=k[a>>2]|0;f=e;g=c-f+1|0;if((g|0)<0){jj(a);f=k[a>>2]|0;d=k[p>>2]|0;e=f}m=e;c=d-m|0;if(c>>>0<1073741823){c=c<<1;c=c>>>0>>0?g:c;g=k[o>>2]|0;d=g-m|0;if(!c){l=0;j=0;h=d;c=g}else q=8}else{d=k[o>>2]|0;c=2147483647;g=d;d=d-m|0;q=8}if((q|0)==8){l=c;j=lj(c)|0;h=d;c=g}i[j+h>>0]=n;d=j+(h+1)|0;m=c-m|0;n=j+(h-m)|0;vw(n|0,e|0,m|0)|0;k[a>>2]=n;k[o>>2]=d;k[p>>2]=j+l;if(f){mj(f);d=k[o>>2]|0}}else{i[c>>0]=n;d=(k[o>>2]|0)+1|0;k[o>>2]=d}m=b&255;c=k[p>>2]|0;if(d>>>0>>0){i[d>>0]=m;k[o>>2]=(k[o>>2]|0)+1;return}e=k[a>>2]|0;f=e;d=d-f+1|0;if((d|0)<0){jj(a);f=k[a>>2]|0;c=k[p>>2]|0;e=f}l=e;c=c-l|0;if(c>>>0<1073741823){c=c<<1;c=c>>>0>>0?d:c;g=k[o>>2]|0;d=g-l|0;if(!c){j=0;h=0;c=g}else q=18}else{d=k[o>>2]|0;c=2147483647;g=d;d=d-l|0;q=18}if((q|0)==18){j=c;h=lj(c)|0;c=g}i[h+d>>0]=m;b=c-l|0;q=h+(d-b)|0;vw(q|0,e|0,b|0)|0;k[a>>2]=q;k[o>>2]=h+(d+1);k[p>>2]=h+j;if(!f)return;mj(f);return}function Ji(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=k[a>>2]|0;q=k[b>>2]|0;p=q;j=e;n=c;l=d-n|0;if((l|0)<=0){r=q;return r|0}o=a+8|0;b=k[o>>2]|0;r=a+4|0;m=k[r>>2]|0;f=m;if((l|0)<=(b-f|0)){h=f-p|0;if((l|0)>(h|0)){g=c+h|0;if((g|0)==(d|0))b=m;else{f=g;b=m;do{i[b>>0]=i[f>>0]|0;b=(k[r>>2]|0)+1|0;k[r>>2]=b;f=f+1|0}while((f|0)!=(d|0))}if((h|0)>0)h=b;else{r=q;return r|0}}else{h=m;g=d}e=h-(e+(l-j+p))|0;b=q+e|0;if(b>>>0>>0){f=h;do{i[f>>0]=i[b>>0]|0;b=b+1|0;f=(k[r>>2]|0)+1|0;k[r>>2]=f}while((b|0)!=(m|0))}xw(h+(0-e)|0,q|0,e|0)|0;xw(q|0,c|0,g-n|0)|0;r=q;return r|0}f=f-j+l|0;if((f|0)<0){jj(a);b=k[o>>2]|0;e=k[a>>2]|0}g=e;b=b-g|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?f:b;f=p-g|0;if(!b){g=0;l=0}else h=15}else{b=2147483647;f=p-g|0;h=15}if((h|0)==15){g=b;l=lj(b)|0}j=l+f|0;b=j;h=l+g|0;if((c|0)!=(d|0)){e=c;g=j;do{i[g>>0]=i[e>>0]|0;g=b+1|0;b=g;e=e+1|0}while((e|0)!=(d|0));e=k[a>>2]|0}c=p-e|0;d=l+(f-c)|0;vw(d|0,e|0,c|0)|0;p=(k[r>>2]|0)-p|0;c=b;vw(c|0,q|0,p|0)|0;b=k[a>>2]|0;k[a>>2]=d;k[r>>2]=c+p;k[o>>2]=h;if(!b){r=j;return r|0}mj(b);r=j;return r|0}function Ki(a){a=a|0;var b=0;k[a>>2]=36800;b=k[a+8>>2]|0;if(!b)return;a=a+12|0;if((k[a>>2]|0)!=(b|0))k[a>>2]=b;mj(b);return}function Li(a){a=a|0;var b=0,c=0;k[a>>2]=36800;b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Ni(b,-1);Ni(b,i[a+4>>0]|0);e=a+12|0;d=a+8|0;a=(k[e>>2]|0)-(k[d>>2]|0)+2|0;Ni(b,(a&65535)>>>8&255);Ni(b,a&255);a=k[d>>2]|0;if((k[e>>2]|0)==(a|0))return;else c=0;do{Ni(b,i[a+c>>0]|0);c=c+1|0;a=k[d>>2]|0}while(c>>>0<((k[e>>2]|0)-a|0)>>>0);return}function Ni(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=k[a+4>>2]|0;if(e){c=e+24|0;d=k[c>>2]|0;if((d|0)==(k[e+28>>2]|0)){Vb[k[(k[e>>2]|0)+52>>2]&63](e,b&255)|0;return}else{k[c>>2]=d+1;i[d>>0]=b;return}}c=a+16|0;d=k[c>>2]|0;if(d>>>0<(k[a+12>>2]|0)>>>0){k[c>>2]=d+1;i[(k[a+8>>2]|0)+d>>0]=b;return}c=Va(16)|0;x=0;d=Da(1)|0;b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}x=0;Fa(7,c|0,4,d|0);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}function Oi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;e=(b|0)<4095?(b+128|0)/256|0:16;f=(c*3|0)+2+e|0;d=c+1|0;f=(f|0)<(d|0)|(f|0)>(b|0)?d:f;k[a+4>>2]=f;d=(e<<2|3)+(c*5|0)|0;d=(d|0)>(b|0)|(d|0)<(f|0)?f:d;k[a+8>>2]=d;c=(c*7|0)+4+(e*17|0)|0;k[a+12>>2]=(c|0)>(b|0)|(c|0)<(d|0)?d:c;k[a>>2]=b;k[a+16>>2]=64;return}function Pi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;l=r;r=r+128|0;h=l+100|0;d=l+16|0;c=l+112|0;j=l+4|0;m=l;e=d;f=a+20|0;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));k[d+16>>2]=k[a+4>>2];f=zc(c,d,a+56|0)|0;c=k[(k[f>>2]|0)+16>>2]|0;a=a+8|0;x=0;k[h>>2]=k[a>>2];k[h+4>>2]=k[a+4>>2];k[h+8>>2]=k[a+8>>2];c=Aa(c|0,f|0,h|0)|0;a=x;x=0;do{if(a&1)c=Wa()|0;else{e=b+4|0;k[j>>2]=k[e>>2];k[j+4>>2]=k[e+4>>2];k[j+8>>2]=k[e+8>>2];e=b+16|0;a=k[e>>2]|0;h=j+8|0;k[h>>2]=(k[h>>2]|0)-a;h=j+4|0;k[h>>2]=(k[h>>2]|0)+a;h=k[(k[f>>2]|0)+12>>2]|0;k[m>>2]=c;x=0;c=Ea(h|0,f|0,m|0,j|0,((i[b>>0]|0)==0?0:(k[b+8>>2]|0)+a|0)|0)|0;j=x;x=0;if(j&1){c=Wa()|0;d=k[m>>2]|0;k[m>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}d=k[m>>2]|0;k[m>>2]=0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d);if(!(k[b+4>>2]|0))k[e>>2]=(k[e>>2]|0)+c;if(!f){r=l;return}Lb[k[(k[f>>2]|0)+4>>2]&255](f);r=l;return}}while(0);if(!f)fb(c|0);Lb[k[(k[f>>2]|0)+4>>2]&255](f);fb(c|0)}function Qi(a,b){a=a|0;b=b|0;k[a>>2]=k[b>>2];k[a+4>>2]=k[b+4>>2];k[a+8>>2]=k[b+8>>2];i[a+12>>0]=0;b=a+16|0;a=b+100|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function Ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+32|0;t=u+4|0;o=u+16|0;v=u;Si(a);p=a+16|0;e=k[a+24>>2]|0;a:do{if((e+-2|0)>>>0<=14){q=a+40|0;c=k[q>>2]|0;if(c>>>0>2)c=5;else{s=a+32|0;f=k[s>>2]|0;switch(f|0){case 0:{c=1;break a}case 4:{if((c|0)==2){c=2;break a}break}case 3:break;default:if(c){c=2;break a}}n=a+100|0;c=a+108|0;d=k[c>>2]|0;if((d|0)<1){d=k[p>>2]|0;k[c>>2]=d;c=k[a+20>>2]|0;k[a+112>>2]=c}else c=k[a+112>>2]|0;j=Dw(c|0,((c|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;h=(e+7|0)/8|0;h=Dw(j|0,M|0,h|0,((h|0)<0)<<31>>31|0)|0;j=b+4|0;c=k[j>>2]|0;g=b+8|0;if((c|0)!=0?(l=k[g>>2]|0,m=Dw(f|0,((f|0)<0)<<31>>31|0,h|0,M|0)|0,e=M,0<(e|0)|0==(e|0)&l>>>0>>0):0){c=Va(16)|0;x=0;d=Da(1)|0;v=x;x=0;if(!(v&1)?(x=0,Fa(7,c|0,3,d|0),v=x,x=0,!(v&1)):0)ub(c|0,824,96);v=Wa()|0;Ua(c|0);fb(v|0)}l=a+52|0;m=a+12|0;if((f|0)>0)f=0;else{r=u;return}while(1){Ti(a,(f|0)==0);d=xc(o,p,l)|0;e=k[(k[d>>2]|0)+8>>2]|0;x=0;k[t>>2]=k[b>>2];k[t+4>>2]=k[b+4>>2];k[t+8>>2]=k[b+8>>2];e=Aa(e|0,d|0,t|0)|0;w=x;x=0;if(w&1){e=32;break}w=k[(k[d>>2]|0)+16>>2]|0;k[v>>2]=e;x=0;oa(w|0,d|0,v|0,n|0,a|0,(i[m>>0]|0)!=0|0);w=x;x=0;if(w&1){e=30;break}e=k[v>>2]|0;k[v>>2]=0;if(e)Lb[k[(k[e>>2]|0)+4>>2]&255](e);if(!c)c=0;else{c=c+h|0;k[j>>2]=c;k[g>>2]=(k[g>>2]|0)-h}e=(k[q>>2]|0)==0;f=(e&1)+f|0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d);if(!e){e=34;break}if((f|0)>=(k[s>>2]|0)){e=34;break}}if((e|0)==30){c=Wa()|0;e=k[v>>2]|0;k[v>>2]=0;if(e)Lb[k[(k[e>>2]|0)+4>>2]&255](e)}else if((e|0)==32){c=Wa()|0;if(!d){w=c;fb(w|0)}}else if((e|0)==34){r=u;return}Lb[k[(k[d>>2]|0)+4>>2]&255](d);w=c;fb(w|0)}}else c=2}while(0);d=Va(16)|0;x=0;e=Da(1)|0;w=x;x=0;if(!(w&1)?(x=0,Fa(7,d|0,c|0,e|0),w=x,x=0,!(w&1)):0)ub(d|0,824,96);w=Wa()|0;Ua(d|0);fb(w|0)}function Si(a){a=a|0;var b=0,c=0,d=0,e=0;if((Wi(a)|0)<<24>>24!=-40){b=Va(16)|0;x=0;c=Da(1)|0;e=x;x=0;if(!(e&1)?(x=0,Fa(7,b|0,5,c|0),e=x,x=0,!(e&1)):0)ub(b|0,824,96);e=Wa()|0;Ua(b|0);fb(e|0)}b=Wi(a)|0;if(b<<24>>24==-38)return;while(1){d=((Vi(a)|0)&255)<<8;d=d|(Vi(a)|0)&255;b=Xi(a,b)|0;c=-2-b+d|0;if((c|0)<0)break;if((c|0)>0){b=d+-2-b|0;c=0;do{Vi(a)|0;c=c+1|0}while((c|0)!=(b|0))}b=Wi(a)|0;if(b<<24>>24==-38){e=8;break}}if((e|0)==8)return;b=Va(16)|0;x=0;c=Da(1)|0;e=x;x=0;if(!(e&1)?(x=0,Fa(7,b|0,5,c|0),e=x,x=0,!(e&1)):0)ub(b|0,824,96);e=Wa()|0;Ua(b|0);fb(e|0)}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if(!b){if((Vi(a)|0)<<24>>24!=-1){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,12,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}if((Vi(a)|0)<<24>>24!=-38){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}Vi(a)|0;Vi(a)|0;c=Vi(a)|0;d=c&255;do{if(c<<24>>24==1){Vi(a)|0;c=0;e=20}else{if((d|0)==(k[a+32>>2]|0)){b=Vi(a)|0;if(!(c<<24>>24))break;else{c=0;e=20;break}}b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,2,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}while(0);if((e|0)==20)while(1){Vi(a)|0;c=c+1|0;b=Vi(a)|0;if((c|0)==(d|0))break;else e=20}k[a+36>>2]=b&255;e=Vi(a)|0;c=a+40|0;k[c>>2]=e&255;if((e&255)>=3){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}if((Vi(a)|0)<<24>>24){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}d=a+28|0;if(k[d>>2]|0)return;b=k[a+108>>2]|0;if(!b)b=k[a+16>>2]|0;if(!(k[c>>2]|0))c=1;else c=k[a+32>>2]|0;e=ia(c,b)|0;a=ia(e,((k[a+24>>2]|0)+7|0)/8|0)|0;k[d>>2]=a;return}function Ui(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((c|0)<=0)return;n=b+4|0;o=b+8|0;q=0;do{p=Vi(a)|0;d=k[n>>2]|0;e=k[o>>2]|0;if(d>>>0>=e>>>0){f=k[b>>2]|0;g=f;h=d-g+1|0;if((h|0)<0){jj(b);g=k[b>>2]|0;e=k[o>>2]|0;f=g}m=f;d=e-m|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?h:d;h=k[n>>2]|0;e=h-m|0;if(!d){l=0;j=0;d=h}else r=10}else{e=k[n>>2]|0;d=2147483647;h=e;e=e-m|0;r=10}if((r|0)==10){r=0;l=d;j=lj(d)|0;d=h}i[j+e>>0]=p;m=d-m|0;p=j+(e-m)|0;vw(p|0,f|0,m|0)|0;k[b>>2]=p;k[n>>2]=j+(e+1);k[o>>2]=j+l;if(g)mj(g)}else{i[d>>0]=p;k[n>>2]=(k[n>>2]|0)+1}q=q+1|0}while((q|0)!=(c|0));return}function Vi(a){a=a|0;var b=0,c=0,d=0,e=0;c=k[a>>2]|0;if(c){a=c+12|0;b=k[a>>2]|0;if((b|0)==(k[c+16>>2]|0))a=Ob[k[(k[c>>2]|0)+40>>2]&127](c)|0;else{k[a>>2]=b+1;a=l[b>>0]|0}e=a&255;return e|0}d=a+8|0;e=k[d>>2]|0;if(e){a=a+4|0;b=k[a>>2]|0;c=i[b>>0]|0;if(!b){e=c;return e|0}k[a>>2]=b+1;k[d>>2]=e+-1;e=c;return e|0}a=Va(16)|0;x=0;b=Da(1)|0;e=x;x=0;if(e&1){e=Wa()|0;Ua(a|0);fb(e|0)}x=0;Fa(7,a|0,4,b|0);e=x;x=0;if(e&1){e=Wa()|0;Ua(a|0);fb(e|0)}else ub(a|0,824,96);return 0}function Wi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=r;r=r+176|0;b=c+152|0;i=c+16|0;g=c;h=Vi(a)|0;d=h&255;if(h<<24>>24==-1){do{b=Vi(a)|0}while(b<<24>>24==-1);r=c;return b|0}h=i+56|0;f=i+4|0;k[i>>2]=36160;k[h>>2]=36180;x=0;ra(62,i+56|0,f|0);e=x;x=0;if(e&1){i=Wa()|0;qn(h);fb(i|0)}k[i+128>>2]=0;k[i+132>>2]=-1;k[i>>2]=36200;k[i+56>>2]=36220;x=0;qa(180,f|0);e=x;x=0;do{if(e&1)b=Wa()|0;else{k[f>>2]=36236;e=i+36|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[i+52>>2]=16;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;x=0;ra(63,f|0,b|0);c=x;x=0;if(c&1){i=Wa()|0;Sm(b);Sm(e);xn(f);b=i;break}Sm(b);k[i+((k[(k[i>>2]|0)+-12>>2]|0)+76)>>2]=48;x=0;b=va(28,i|0,50907,62)|0;c=x;x=0;if(!(c&1)?(c=b+((k[(k[b>>2]|0)+-12>>2]|0)+4)|0,k[c>>2]=k[c>>2]&-75|8,c=b+((k[(k[b>>2]|0)+-12>>2]|0)+4)|0,k[c>>2]=k[c>>2]|16384,k[b+((k[(k[b>>2]|0)+-12>>2]|0)+12)>>2]=2,x=0,Aa(38,b|0,d|0)|0,d=x,x=0,!(d&1)):0){c=Va(16)|0;x=0;ra(64,g|0,f|0);d=x;x=0;if(!(d&1)){x=0;b=Da(1)|0;d=x;x=0;if(!(d&1)?(x=0,Ja(36,c|0,12,b|0,g|0),d=x,x=0,!(d&1)):0){x=0;Fa(6,c|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(g);if(!a){g=b;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}else b=Wa()|0;Ua(c|0);g=b;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}g=Wa()|0;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}while(0);i=b;qn(h);fb(i|0);return 0}function Xi(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,l=0,m=0,n=0;c=r;r=r+320|0;h=c+300|0;l=c+152|0;i=c+288|0;m=c+16|0;j=c;switch(b<<24>>24){case-9:{n=(Vi(a)|0)&255;k[a+24>>2]=n;n=((Vi(a)|0)&255)<<8|(Vi(a)|0)&255;m=((Vi(a)|0)&255)<<8|(Vi(a)|0)&255;k[a+16>>2]=m;k[a+20>>2]=n;n=(Vi(a)|0)&255;k[a+32>>2]=n;n=6;r=c;return n|0}case-8:{n=Yi(a)|0;r=c;return n|0}case-24:{n=Zi(a)|0;r=c;return n|0}case-53:case-54:case-55:case-57:case-58:case-59:case-61:case-62:case-63:case-64:{g=l+56|0;e=l+4|0;k[l>>2]=36160;k[g>>2]=36180;x=0;ra(62,l+56|0,e|0);m=x;x=0;if(m&1){n=Wa()|0;qn(g);fb(n|0)}k[l+128>>2]=0;k[l+132>>2]=-1;k[l>>2]=36200;k[l+56>>2]=36220;x=0;qa(180,e|0);m=x;x=0;do{if(m&1)a=Wa()|0;else{k[e>>2]=36236;f=l+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[l+52>>2]=16;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;x=0;ra(63,e|0,h|0);m=x;x=0;if(m&1){a=Wa()|0;Sm(h);Sm(f);xn(e);break}Sm(h);x=0;a=va(28,l|0,50970,26)|0;m=x;x=0;do{if((!(m&1)?(x=0,d=Aa(38,a|0,b&255|0)|0,m=x,x=0,!(m&1)):0)?(x=0,va(28,d|0,50997,18)|0,m=x,x=0,!(m&1)):0){d=Va(16)|0;x=0;ra(64,i|0,e|0);m=x;x=0;if(!(m&1)){x=0;a=Da(1)|0;m=x;x=0;if(!(m&1)?(x=0,Ja(36,d|0,10,a|0,i|0),m=x,x=0,!(m&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;a=Wa()|0;Sm(i);if(!c)break}else a=Wa()|0;Ua(d|0)}else n=20}while(0);if((n|0)==20)a=Wa()|0;k[l>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);n=a;fb(n|0)}}while(0);n=a;qn(g);fb(n|0)}case-25:case-32:case-2:{n=0;r=c;return n|0}default:{i=m+56|0;f=m+4|0;k[m>>2]=36160;k[i>>2]=36180;x=0;ra(62,m+56|0,f|0);l=x;x=0;if(l&1){n=Wa()|0;qn(i);fb(n|0)}k[m+128>>2]=0;k[m+132>>2]=-1;k[m>>2]=36200;k[m+56>>2]=36220;x=0;qa(180,f|0);l=x;x=0;do{if(l&1)a=Wa()|0;else{k[f>>2]=36236;g=m+36|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[m+52>>2]=16;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;x=0;ra(63,f|0,h|0);l=x;x=0;if(l&1){a=Wa()|0;Sm(h);Sm(g);xn(f);break}Sm(h);x=0;a=va(28,m|0,51016,20)|0;l=x;x=0;do{if((!(l&1)?(x=0,e=Aa(38,a|0,b&255|0)|0,l=x,x=0,!(l&1)):0)?(x=0,va(28,e|0,51037,13)|0,l=x,x=0,!(l&1)):0){d=Va(16)|0;x=0;ra(64,j|0,f|0);l=x;x=0;if(!(l&1)){x=0;a=Da(1)|0;l=x;x=0;if(!(l&1)?(x=0,Ja(36,d|0,11,a|0,j|0),l=x,x=0,!(l&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;a=Wa()|0;Sm(j);if(!c)break}else a=Wa()|0;Ua(d|0)}else n=40}while(0);if((n|0)==40)a=Wa()|0;k[m>>2]=36200;k[i>>2]=36220;k[f>>2]=36236;Sm(g);xn(f);qn(i);n=a;fb(n|0)}}while(0);n=a;qn(i);fb(n|0)}}return 0}function Yi(a){a=a|0;var b=0;if((Vi(a)|0)<<24>>24!=1){a=1;return a|0}b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+52>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+56>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+60>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+64>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+68>>2]=b;a=11;return a|0}function Zi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;c=r;r=r+16|0;e=c;k[e>>2]=0;f=e+4|0;k[f>>2]=0;k[e+8>>2]=0;x=0;Fa(9,a|0,e|0,4);b=x;x=0;a:do{if(b&1)d=3;else{b=k[e>>2]|0;b:do{if(!(yl(b,51051,4)|0)){x=0;b=ta(69,a|0)|0;g=x;x=0;if(g&1){d=3;break a}b=b&255;switch(b|0){case 3:case 2:case 1:case 0:{k[a+44>>2]=b;a=5;b=k[e>>2]|0;break b}case 5:case 4:{b=Va(16)|0;x=0;a=Da(1)|0;g=x;x=0;if(!(g&1)?(x=0,Fa(7,b|0,7,a|0),g=x,x=0,!(g&1)):0){x=0;Fa(6,b|0,824,96);x=0;d=3;break a}a=Wa()|0;Ua(b|0);break a}default:{b=Va(16)|0;x=0;a=Da(1)|0;g=x;x=0;if(!(g&1)?(x=0,Fa(7,b|0,5,a|0),g=x,x=0,!(g&1)):0){x=0;Fa(6,b|0,824,96);x=0;d=3;break a}a=Wa()|0;Ua(b|0);break a}}}else a=4}while(0);if(!b){r=c;return a|0}if((k[f>>2]|0)!=(b|0))k[f>>2]=b;mj(b);r=c;return a|0}}while(0);if((d|0)==3)a=Wa()|0;b=k[e>>2]|0;if(!b)fb(a|0);if((k[f>>2]|0)!=(b|0))k[f>>2]=b;mj(b);fb(a|0);return 0}function _i(a){a=a|0;var b=0,c=0,d=0;d=k[(k[a>>2]|0)+-12>>2]|0;k[a+d>>2]=36200;b=a+(d+56)|0;k[b>>2]=36220;c=a+(d+4)|0;k[c>>2]=36236;Sm(a+(d+36)|0);xn(c);qn(b);return}function $i(a){a=a|0;return}function aj(a){a=a|0;mj(a);return}function bj(a){a=a|0;i[a>>0]=0;a=a+4|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;k[a+24>>2]=0;k[a+28>>2]=0;return}function cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;e=r;r=r+16|0;f=e;b=Gi(b)|0;k[f>>2]=b;c=a+28|0;d=k[c>>2]|0;if(d>>>0<(k[a+32>>2]|0)>>>0){k[d>>2]=b;k[c>>2]=d+4;k[f>>2]=0;r=e;return}x=0;ra(57,a+24|0,f|0);a=x;x=0;if(a&1){b=Wa()|0;c=k[f>>2]|0;k[f>>2]=0;if(!c)fb(b|0);Lb[k[(k[c>>2]|0)+4>>2]&255](c);fb(b|0)}else{b=k[f>>2]|0;k[f>>2]=0;if(!b){r=e;return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);r=e;return}}function dj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=a+4|0;k[d>>2]=k[b>>2];k[d+4>>2]=k[b+4>>2];k[d+8>>2]=k[b+8>>2];Ni(a,-1);Ni(a,-40);d=a+28|0;e=a+24|0;b=k[e>>2]|0;if((k[d>>2]|0)==(b|0)){Ni(a,-1);Ni(a,-39);a=a+16|0;a=k[a>>2]|0;return a|0}else c=0;do{f=k[b+(c<<2)>>2]|0;Mb[k[(k[f>>2]|0)+8>>2]&127](f,a);c=c+1|0;b=k[e>>2]|0}while(c>>>0<(k[d>>2]|0)-b>>2>>>0);Ni(a,-1);Ni(a,-39);f=a+16|0;f=k[f>>2]|0;return f|0}function ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;m=r;r=r+48|0;h=m+32|0;e=m+12|0;i=m+8|0;l=m+4|0;n=m;d=c+36|0;do{if(((((k[d>>2]|0)==0?(k[c+40>>2]|0)==0:0)?(k[c+44>>2]|0)==0:0)?(k[c+48>>2]|0)==0:0)?(k[c+52>>2]|0)==0:0){d=k[c+8>>2]|0;if((d|0)<=12){f=a+28|0;g=a+32|0;break}Oi(e,(1<>2]|0);d=Fi(e)|0;k[i>>2]=d;f=a+28|0;e=k[f>>2]|0;g=a+32|0;if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[i>>2]=0;break}x=0;ra(57,a+24|0,i|0);h=x;x=0;if(!(h&1)){d=k[i>>2]|0;k[i>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[i>>2]|0;k[i>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}else j=6}while(0);do{if((j|0)==6){d=Fi(d)|0;k[h>>2]=d;f=a+28|0;e=k[f>>2]|0;g=a+32|0;if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[h>>2]=0;break}x=0;ra(57,a+24|0,h|0);j=x;x=0;if(!(j&1)){d=k[h>>2]|0;k[h>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[h>>2]|0;k[h>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}}while(0);d=a+20|0;e=(k[d>>2]|0)+1|0;k[d>>2]=e;d=k[c+24>>2]|0;h=(d|0)==0?1:k[c+16>>2]|0;d=Hi(e,h,k[c+20>>2]|0,d)|0;k[l>>2]=d;e=k[f>>2]|0;do{if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[l>>2]=0}else{x=0;ra(57,a+24|0,l|0);j=x;x=0;if(!(j&1)){d=k[l>>2]|0;k[l>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[l>>2]|0;k[l>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}}while(0);i=lj(104)|0;k[i>>2]=36820;k[i+4>>2]=h;e=i+8|0;k[e>>2]=k[b>>2];k[e+4>>2]=k[b+4>>2];k[e+8>>2]=k[b+8>>2];e=i+20|0;d=e+84|0;do{k[e>>2]=k[c>>2];e=e+4|0;c=c+4|0}while((e|0)<(d|0));k[n>>2]=i;c=k[f>>2]|0;if(c>>>0<(k[g>>2]|0)>>>0){k[c>>2]=i;k[f>>2]=c+4;k[n>>2]=0;r=m;return}x=0;ra(57,a+24|0,n|0);a=x;x=0;if(a&1){c=Wa()|0;d=k[n>>2]|0;k[n>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}else{c=k[n>>2]|0;k[n>>2]=0;if(!c){r=m;return}Lb[k[(k[c>>2]|0)+4>>2]&255](c);r=m;return}}function fj(a,b,c,d,e,f,g,h,j,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,s=0,t=0,u=0;p=r;r=r+96|0;o=p;n=sc(a,b,o,0)|0;if(n){e=n;r=p;return e|0}i[o+32>>0]=0;s=k[o+8>>2]|0;u=k[o>>2]|0;t=k[o+4>>2]|0;n=ia(t,u)|0;q=k[o+16>>2]|0;n=ia(ia(n,(s|0)<9?1:2)|0,q)|0;k[d>>2]=n;n=Pl(n)|0;k[c>>2]=n;k[e>>2]=u;k[f>>2]=t;k[g>>2]=s;k[h>>2]=k[o+12>>2];k[j>>2]=q;k[l>>2]=k[o+20>>2];k[m>>2]=k[o+24>>2];e=tc(n,k[d>>2]|0,a,b,0,0)|0;r=p;return e|0}function gj(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,l=0,m=0,n=0;m=r;r=r+96|0;j=m+4|0;g=m;l=j;n=l+84|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(n|0));k[j+16>>2]=f;k[j+8>>2]=e;k[j>>2]=c;k[j+4>>2]=d;c=Pl(b)|0;k[h>>2]=c;k[g>>2]=0;c=rc(h,b,g,a,b,j,0)|0;k[i>>2]=k[g>>2];r=m;return c|0}function hj(a,b){a=a|0;b=b|0;var c=0;c=r;r=r+16|0;k[c>>2]=b;b=k[9320]|0;ml(b,a,c)|0;el(10,b)|0;Pa()}function ij(a){a=a|0;Ta(51337,51366,1164,51442)}function jj(a){a=a|0;Ta(51463,51486,303,51442)}function kj(){var a=0,b=0;a=r;r=r+16|0;if(!(mb(37024,4)|0)){b=ib(k[9255]|0)|0;r=a;return b|0}else hj(51562,a);return 0}function lj(a){a=a|0;var b=0;b=(a|0)==0?1:a;a=Pl(b)|0;a:do{if(!a){while(1){a=uj()|0;if(!a)break;$b[a&7]();a=Pl(b)|0;if(a)break a}b=Va(4)|0;k[b>>2]=36844;ub(b|0,592,78)}}while(0);return a|0}function mj(a){a=a|0;Ql(a);return}function nj(a){a=a|0;mj(a);return}function oj(a){a=a|0;k[a>>2]=36844;return}function pj(a){a=a|0;return}function qj(a){a=a|0;mj(a);return}function rj(a){a=a|0;return 51611}function sj(a){a=a|0;var b=0;b=r;r=r+16|0;x=0;Ga(a|0);a=x;x=0;if(!(a&1)){x=0;ra(85,51626,b|0);x=0}a=Wa(0)|0;cb(a|0)|0;x=0;ra(85,51666,b+8|0);x=0;a=Wa(0)|0;x=0;Ga(3);b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else oc(a)}function tj(){var a=0,b=0,c=0;x=0;a=Da(2)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}if(((a|0)!=0?(b=k[a>>2]|0,(b|0)!=0):0)?(c=b+48|0,(k[c>>2]&-256|0)==1126902528?(k[c+4>>2]|0)==1129074247:0):0)sj(k[b+12>>2]|0);c=k[9208]|0;k[9208]=c+0;sj(c)}function uj(){var a=0;a=k[9214]|0;k[9214]=a+0;return a|0}function vj(a){a=a|0;return}function wj(a){a=a|0;k[a>>2]=36868;dk(a+4|0);return}function xj(a){a=a|0;wj(a);mj(a);return}function yj(a){a=a|0;return k[a+4>>2]|0}function zj(a){a=a|0;return}function Aj(a){a=a|0;k[a>>2]=36888;return}function Bj(a){a=a|0;return}function Cj(a){a=a|0;mj(a);return}function Dj(a){a=a|0;return 51716}function Ej(a){a=a|0;return}function Fj(a){a=a|0;return}function Gj(a){a=a|0;return}function Hj(a){a=a|0;mj(a);return}function Ij(a){a=a|0;mj(a);return}function Jj(a){a=a|0;mj(a);return}function Kj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+64|0;f=g;if((a|0)!=(b|0))if((b|0)!=0?(e=Qj(b,656,672,0)|0,(e|0)!=0):0){b=f;d=b+56|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(d|0));k[f>>2]=e;k[f+8>>2]=a;k[f+12>>2]=-1;k[f+48>>2]=1;cc[k[(k[e>>2]|0)+28>>2]&63](e,f,k[c>>2]|0,1);if((k[f+24>>2]|0)==1){k[c>>2]=k[f+16>>2];b=1}else b=0}else b=0;else b=1;r=g;return b|0}function Lj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=b+16|0;e=k[a>>2]|0;do{if(e){if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}else{k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1}}while(0);return}function Mj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Lj(0,b,c,d);return}function Nj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Lj(0,b,c,d);else{a=k[a+8>>2]|0;cc[k[(k[a>>2]|0)+28>>2]&63](a,b,c,d)}return}function Oj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=k[a+4>>2]|0;e=f>>8;if(f&1)e=k[(k[c>>2]|0)+e>>2]|0;a=k[a>>2]|0;cc[k[(k[a>>2]|0)+28>>2]&63](a,b,c+e|0,(f&2|0)!=0?d:2);return}function Pj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do{if((a|0)!=(k[b+8>>2]|0)){f=k[a+12>>2]|0;e=a+16+(f<<3)|0;Oj(a+16|0,b,c,d);if((f|0)>1){f=b+54|0;a=a+24|0;do{Oj(a,b,c,d);if(i[f>>0]|0)break a;a=a+8|0}while(a>>>0>>0)}}else Lj(0,b,c,d)}while(0);return}function Qj(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,l=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+64|0;p=q;o=k[a>>2]|0;n=a+(k[o+-8>>2]|0)|0;o=k[o+-4>>2]|0;k[p>>2]=c;k[p+4>>2]=a;k[p+8>>2]=b;k[p+12>>2]=d;d=p+16|0;a=p+20|0;b=p+24|0;e=p+28|0;f=p+32|0;g=p+40|0;h=(o|0)==(c|0);l=d;m=l+36|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(m|0));j[d+36>>1]=0;i[d+38>>0]=0;a:do{if(h){k[p+48>>2]=1;Sb[k[(k[c>>2]|0)+20>>2]&15](c,p,n,n,1,0);d=(k[b>>2]|0)==1?n:0}else{Jb[k[(k[o>>2]|0)+24>>2]&15](o,p,n,1,0);switch(k[p+36>>2]|0){case 0:{d=(k[g>>2]|0)==1&(k[e>>2]|0)==1&(k[f>>2]|0)==1?k[a>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((k[b>>2]|0)!=1?!((k[g>>2]|0)==0&(k[e>>2]|0)==1&(k[f>>2]|0)==1):0){d=0;break}d=k[d>>2]|0}}while(0);r=q;return d|0}function Rj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;i[b+53>>0]=1;do{if((k[b+4>>2]|0)==(d|0)){i[b+52>>0]=1;d=b+16|0;a=k[d>>2]|0;if(!a){k[d>>2]=c;k[b+24>>2]=e;k[b+36>>2]=1;if(!((e|0)==1?(k[b+48>>2]|0)==1:0))break;i[b+54>>0]=1;break}if((a|0)!=(c|0)){e=b+36|0;k[e>>2]=(k[e>>2]|0)+1;i[b+54>>0]=1;break}a=b+24|0;d=k[a>>2]|0;if((d|0)==2){k[a>>2]=e;d=e}if((d|0)==1?(k[b+48>>2]|0)==1:0)i[b+54>>0]=1}}while(0);return}function Sj(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do{if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){q=k[a+12>>2]|0;h=a+16+(q<<3)|0;Uj(a+16|0,b,c,d,e);f=a+24|0;if((q|0)<=1)break;g=k[a+8>>2]|0;if((g&2|0)==0?(j=b+36|0,(k[j>>2]|0)!=1):0){if(!(g&1)){g=b+54|0;while(1){if(i[g>>0]|0)break a;if((k[j>>2]|0)==1)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+24|0;a=b+54|0;while(1){if(i[a>>0]|0)break a;if((k[j>>2]|0)==1?(k[g>>2]|0)==1:0)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+54|0;while(1){if(i[g>>0]|0)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}if((k[b+16>>2]|0)!=(c|0)?(p=b+20|0,(k[p>>2]|0)!=(c|0)):0){k[b+32>>2]=d;m=b+44|0;if((k[m>>2]|0)==4)break;g=k[a+12>>2]|0;h=a+16+(g<<3)|0;j=b+52|0;d=b+53|0;n=b+54|0;l=a+8|0;o=b+24|0;b:do{if((g|0)>0){g=0;f=0;a=a+16|0;while(1){i[j>>0]=0;i[d>>0]=0;Tj(a,b,c,c,1,e);if(i[n>>0]|0){q=20;break b}do{if(i[d>>0]|0){if(!(i[j>>0]|0))if(!(k[l>>2]&1)){f=1;q=20;break b}else{f=1;break}if((k[o>>2]|0)==1)break b;if(!(k[l>>2]&2))break b;else{g=1;f=1}}}while(0);a=a+8|0;if(a>>>0>=h>>>0){q=20;break}}}else{g=0;f=0;q=20}}while(0);do{if((q|0)==20){if((!g?(k[p>>2]=c,c=b+40|0,k[c>>2]=(k[c>>2]|0)+1,(k[b+36>>2]|0)==1):0)?(k[o>>2]|0)==2:0){i[n>>0]=1;if(f)break}else q=24;if((q|0)==24?f:0)break;k[m>>2]=4;break a}}while(0);k[m>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}}while(0);return}function Tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=k[a+4>>2]|0;g=h>>8;if(h&1)g=k[(k[d>>2]|0)+g>>2]|0;a=k[a>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,d+g|0,(h&2|0)!=0?e:2,f);return}function Uj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=k[a+4>>2]|0;f=g>>8;if(g&1)f=k[(k[c>>2]|0)+f>>2]|0;a=k[a>>2]|0;Jb[k[(k[a>>2]|0)+24>>2]&15](a,b,c+f|0,(g&2|0)!=0?d:2,e);return}function Vj(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,j=0;a:do{if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){h=k[a+8>>2]|0;Jb[k[(k[h>>2]|0)+24>>2]&15](h,b,c,d,e);break}if((k[b+16>>2]|0)!=(c|0)?(g=b+20|0,(k[g>>2]|0)!=(c|0)):0){k[b+32>>2]=d;d=b+44|0;if((k[d>>2]|0)==4)break;f=b+52|0;i[f>>0]=0;j=b+53|0;i[j>>0]=0;a=k[a+8>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,c,1,e);if(i[j>>0]|0){if(!(i[f>>0]|0)){f=1;h=13}}else{f=0;h=13}do{if((h|0)==13){k[g>>2]=c;j=b+40|0;k[j>>2]=(k[j>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0){i[b+54>>0]=1;if(f)break}else h=16;if((h|0)==16?f:0)break;k[d>>2]=4;break a}}while(0);k[d>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}}while(0);return}function Wj(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;do{if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(g=b+28|0,(k[g>>2]|0)!=1):0)k[g>>2]=d}else if((a|0)==(k[b>>2]|0)){if((k[b+16>>2]|0)!=(c|0)?(f=b+20|0,(k[f>>2]|0)!=(c|0)):0){k[b+32>>2]=d;k[f>>2]=c;e=b+40|0;k[e>>2]=(k[e>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0)i[b+54>>0]=1;k[b+44>>2]=4;break}if((d|0)==1)k[b+32>>2]=1}}while(0);return}function Xj(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,j=0,l=0,m=0,n=0,o=0,p=0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);else{m=b+52|0;n=i[m>>0]|0;o=b+53|0;p=i[o>>0]|0;l=k[a+12>>2]|0;g=a+16+(l<<3)|0;i[m>>0]=0;i[o>>0]=0;Tj(a+16|0,b,c,d,e,f);a:do{if((l|0)>1){h=b+24|0;j=a+8|0;l=b+54|0;a=a+24|0;do{if(i[l>>0]|0)break a;if(!(i[m>>0]|0)){if((i[o>>0]|0)!=0?(k[j>>2]&1|0)==0:0)break a}else{if((k[h>>2]|0)==1)break a;if(!(k[j>>2]&2))break a}i[m>>0]=0;i[o>>0]=0;Tj(a,b,c,d,e,f);a=a+8|0}while(a>>>0>>0)}}while(0);i[m>>0]=n;i[o>>0]=p}return}function Yj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);else{a=k[a+8>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,d,e,f)}return}function Zj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);return}function _j(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;k[d>>2]=k[c>>2];a=Qb[k[(k[a>>2]|0)+16>>2]&63](a,b,d)|0;if(a)k[c>>2]=k[d>>2];r=e;return a&1|0}function $j(a){a=a|0;if(!a)a=0;else a=(Qj(a,656,704,0)|0)!=0;return a&1|0}function ak(){var a=0;a=Va(4)|0;oj(a);ub(a|0,592,78)}function bk(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+48|0;g=e+32|0;c=e+24|0;h=e+16|0;f=e;e=e+36|0;a=kj()|0;if((a|0)!=0?(d=k[a>>2]|0,(d|0)!=0):0){a=d+48|0;b=k[a>>2]|0;a=k[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){k[c>>2]=k[9257];hj(51919,c)}if((b|0)==1126902529&(a|0)==1129074247)a=k[d+44>>2]|0;else a=d+80|0;k[e>>2]=a;d=k[d>>2]|0;a=k[d+4>>2]|0;if(Qb[k[(k[608>>2]|0)+16>>2]&63](608,d,e)|0){h=k[e>>2]|0;e=k[9257]|0;h=Ob[k[(k[h>>2]|0)+8>>2]&127](h)|0;k[f>>2]=e;k[f+4>>2]=a;k[f+8>>2]=h;hj(51833,f)}else{k[h>>2]=k[9257];k[h+4>>2]=a;hj(51878,h)}}hj(51957,g)}function ck(){var a=0;a=r;r=r+16|0;if(!(Oa(37020,184)|0)){r=a;return}else hj(51730,a)}function dk(a){a=a|0;var b=0,c=0;c=(k[a>>2]|0)+-4|0;b=k[c>>2]|0;k[c>>2]=b+-1;if((b+-1|0)<0)mj((k[a>>2]|0)+-12|0);return}function ek(a){a=a|0;var b=0;b=r;r=r+16|0;Ql(a);if(!(sb(k[9255]|0,0)|0)){r=b;return}else hj(51780,b)}function fk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=rl(a,b,c)|0;return a|0}function gk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=sl(a,b,c)|0;return a|0}function hk(){return 37296}function ik(){return 37300}function jk(){return 37304}function kk(a){a=a|0;return((a|0)==32|(a+-9|0)>>>0<5)&1|0}function lk(a){a=a|0;if((a+-48|0)>>>0<10)a=1;else a=((a|32)+-97|0)>>>0<6;return a&1|0}function mk(){var a=0;if(!(k[9258]|0))a=37308;else{a=(kb()|0)+60|0;a=k[a>>2]|0}return a|0}function nk(a){a=a|0;var b=0,c=0;b=0;while(1){if((l[51978+b>>0]|0)==(a|0)){c=2;break}b=b+1|0;if((b|0)==87){b=87;a=52066;c=5;break}}if((c|0)==2)if(!b)a=52066;else{a=52066;c=5}if((c|0)==5)while(1){c=a;while(1){a=c+1|0;if(!(i[c>>0]|0))break;else c=a}b=b+-1|0;if(!b)break;else c=5}return a|0}function ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0.0,g=0,h=0,j=0.0,m=0,n=0,o=0,p=0.0,q=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0;K=r;r=r+512|0;G=K;switch(b|0){case 0:{J=24;I=-149;y=4;break}case 1:{J=53;I=-1074;y=4;break}case 2:{J=53;I=-1074;y=4;break}default:d=0.0}a:do{if((y|0)==4){D=a+4|0;A=a+100|0;do{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0}while((kk(b)|0)!=0);b:do{switch(b|0){case 43:case 45:{e=1-(((b|0)==45&1)<<1)|0;b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;H=e;break b}else{b=rk(a)|0;H=e;break b}}default:H=1}}while(0);e=b;b=0;do{if((e|32|0)!=(i[53870+b>>0]|0))break;do{if(b>>>0<7){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0;break}else{e=rk(a)|0;break}}}while(0);b=b+1|0}while(b>>>0<8);c:do{switch(b|0){case 8:break;case 3:{y=23;break}default:{g=(c|0)!=0;if(g&b>>>0>3)if((b|0)==8)break c;else{y=23;break c}d:do{if(!b){b=0;do{if((e|32|0)!=(i[56747+b>>0]|0))break d;do{if(b>>>0<2){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0;break}else{e=rk(a)|0;break}}}while(0);b=b+1|0}while(b>>>0<3)}}while(0);switch(b|0){case 3:{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==40)b=1;else{if(!(k[A>>2]|0)){d=B;break a}k[D>>2]=(k[D>>2]|0)+-1;d=B;break a}while(1){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0}else e=rk(a)|0;if(!((e+-48|0)>>>0<10|(e+-65|0)>>>0<26)?!((e|0)==95|(e+-97|0)>>>0<26):0)break;b=b+1|0}if((e|0)==41){d=B;break a}e=(k[A>>2]|0)==0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if(!g){J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0;break a}if(!b){d=B;break a}while(1){b=b+-1|0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if(!b){d=B;break a}}}case 0:{do{if((e|0)==48){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|32|0)!=120){if(!(k[A>>2]|0)){b=48;break}k[D>>2]=(k[D>>2]|0)+-1;b=48;break}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=0}else{b=rk(a)|0;g=0}e:while(1){switch(b|0){case 46:{y=74;break e}case 48:break;default:{w=0;h=0;v=0;e=0;m=g;n=0;u=0;j=1.0;g=0;d=0.0;break e}}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=1;continue}else{b=rk(a)|0;g=1;continue}}if((y|0)==74){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48){g=0;e=0;do{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;g=tw(g|0,e|0,-1,-1)|0;e=M}while((b|0)==48);w=0;h=0;v=g;m=1;n=1;u=0;j=1.0;g=0;d=0.0}else{w=0;h=0;v=0;e=0;m=g;n=1;u=0;j=1.0;g=0;d=0.0}}while(1){s=b+-48|0;o=b|32;if(s>>>0>=10){t=(b|0)==46;if(!(t|(o+-97|0)>>>0<6)){o=v;s=w;break}if(t)if(!n){t=h;e=w;s=w;n=1;o=u;f=j}else{o=v;s=w;b=46;break}else y=86}else y=86;if((y|0)==86){y=0;b=(b|0)>57?o+-87|0:s;do{if(!((w|0)<0|(w|0)==0&h>>>0<8)){if((w|0)<0|(w|0)==0&h>>>0<14){q=j*.0625;o=u;f=q;d=d+q*+(b|0);break}if((u|0)!=0|(b|0)==0){o=u;f=j}else{o=1;f=j;d=d+j*.5}}else{o=u;f=j;g=b+(g<<4)|0}}while(0);h=tw(h|0,w|0,1,0)|0;t=v;s=M;m=1}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;w=s;v=t;b=l[b>>0]|0;u=o;j=f;continue}else{w=s;v=t;b=rk(a)|0;u=o;j=f;continue}}if(!m){b=(k[A>>2]|0)==0;if(!b)k[D>>2]=(k[D>>2]|0)+-1;if(c){if(!b?(x=k[D>>2]|0,k[D>>2]=x+-1,(n|0)!=0):0)k[D>>2]=x+-2}else qk(a,0);d=+(H|0)*0.0;break a}m=(n|0)==0;n=m?h:o;m=m?s:e;if((s|0)<0|(s|0)==0&h>>>0<8){e=s;do{g=g<<4;h=tw(h|0,e|0,1,0)|0;e=M}while((e|0)<0|(e|0)==0&h>>>0<8)}if((b|32|0)==112){e=Dl(a,c)|0;b=M;if((e|0)==0&(b|0)==-2147483648){if(!c){qk(a,0);d=0.0;break a}if(!(k[A>>2]|0)){e=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;e=0;b=0}}}else if(!(k[A>>2]|0)){e=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;e=0;b=0}G=ww(n|0,m|0,2)|0;G=tw(G|0,M|0,-32,-1)|0;b=tw(G|0,M|0,e|0,b|0)|0;e=M;if(!g){d=+(H|0)*0.0;break a}if((e|0)>0|(e|0)==0&b>>>0>(0-I|0)>>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}G=I+-106|0;F=((G|0)<0)<<31>>31;if((e|0)<(F|0)|(e|0)==(F|0)&b>>>0>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((g|0)>-1){do{F=!(d>=.5);G=F&1|g<<1;g=G^1;d=d+(F?d:d+-1.0);b=tw(b|0,e|0,-1,-1)|0;e=M}while((G|0)>-1);h=b;j=d}else{h=b;j=d}b=rw(32,0,I|0,((I|0)<0)<<31>>31|0)|0;b=tw(h|0,e|0,b|0,M|0)|0;I=M;if(0>(I|0)|0==(I|0)&J>>>0>b>>>0)if((b|0)<0){b=0;y=127}else y=125;else{b=J;y=125}if((y|0)==125)if((b|0)<53)y=127;else{e=b;f=+(H|0);d=0.0}if((y|0)==127){d=+(H|0);e=b;f=d;d=+Ck(+Hk(1.0,84-b|0),d)}J=(g&1|0)==0&(j!=0.0&(e|0)<32);d=f*(J?0.0:j)+(d+f*+(((J&1)+g|0)>>>0))-d;if(!(d!=0.0)){J=mk()|0;k[J>>2]=34}d=+Ik(d,h);break a}else b=e}while(0);E=I+J|0;F=0-E|0;g=0;f:while(1){switch(b|0){case 46:{y=138;break f}case 48:break;default:{e=0;o=0;n=0;break f}}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=1;continue}else{b=rk(a)|0;g=1;continue}}if((y|0)==138){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48){e=0;b=0;while(1){e=tw(e|0,b|0,-1,-1)|0;g=M;b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48)b=g;else{o=g;g=1;n=1;break}}}else{e=0;o=0;n=1}}k[G>>2]=0;m=b+-48|0;h=(b|0)==46;g:do{if(h|m>>>0<10){z=G+496|0;w=0;t=0;u=h;y=o;s=g;x=n;g=0;h=0;n=0;h:while(1){do{if(u)if(!x){e=w;o=t;x=1}else{o=y;b=w;m=t;break h}else{u=tw(w|0,t|0,1,0)|0;t=M;v=(b|0)!=48;if((h|0)>=125){if(!v){o=y;w=u;break}k[z>>2]=k[z>>2]|1;o=y;w=u;break}o=G+(h<<2)|0;if(g)m=b+-48+((k[o>>2]|0)*10|0)|0;k[o>>2]=m;g=g+1|0;m=(g|0)==9;o=y;w=u;s=1;g=m?0:g;h=(m&1)+h|0;n=v?u:n}}while(0);b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;m=b+-48|0;u=(b|0)==46;if(!(u|m>>>0<10)){m=x;y=161;break g}else y=o}s=(s|0)!=0;y=169}else{w=0;t=0;s=g;m=n;g=0;h=0;n=0;y=161}}while(0);do{if((y|0)==161){z=(m|0)==0;e=z?w:e;o=z?t:o;s=(s|0)!=0;if(!((b|32|0)==101&s))if((b|0)>-1){b=w;m=t;y=169;break}else{b=w;m=t;y=171;break}m=Dl(a,c)|0;b=M;if((m|0)==0&(b|0)==-2147483648){if(!c){qk(a,0);d=0.0;break}if(!(k[A>>2]|0)){m=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;m=0;b=0}}e=tw(m|0,b|0,e|0,o|0)|0;s=w;o=M;m=t;y=173}}while(0);if((y|0)==169)if(k[A>>2]|0){k[D>>2]=(k[D>>2]|0)+-1;if(s){s=b;y=173}else y=172}else y=171;if((y|0)==171)if(s){s=b;y=173}else y=172;do{if((y|0)==172){J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0}else if((y|0)==173){b=k[G>>2]|0;if(!b){d=+(H|0)*0.0;break}if(((m|0)<0|(m|0)==0&s>>>0<10)&((e|0)==(s|0)&(o|0)==(m|0))?J>>>0>30|(b>>>J|0)==0:0){d=+(H|0)*+(b>>>0);break}a=(I|0)/-2|0;D=((a|0)<0)<<31>>31;if((o|0)>(D|0)|(o|0)==(D|0)&e>>>0>a>>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=I+-106|0;D=((a|0)<0)<<31>>31;if((o|0)<(D|0)|(o|0)==(D|0)&e>>>0>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(g){if((g|0)<9){m=G+(h<<2)|0;b=k[m>>2]|0;do{b=b*10|0;g=g+1|0}while((g|0)!=9);k[m>>2]=b}h=h+1|0}if((n|0)<9?(n|0)<=(e|0)&(e|0)<18:0){if((e|0)==9){d=+(H|0)*+((k[G>>2]|0)>>>0);break}if((e|0)<9){d=+(H|0)*+((k[G>>2]|0)>>>0)/+(k[37312+(8-e<<2)>>2]|0);break}a=J+27+(ia(e,-3)|0)|0;b=k[G>>2]|0;if((a|0)>30|(b>>>a|0)==0){d=+(H|0)*+(b>>>0)*+(k[37312+(e+-10<<2)>>2]|0);break}}b=(e|0)%9|0;if(!b){g=0;b=0}else{s=(e|0)>-1?b:b+9|0;m=k[37312+(8-s<<2)>>2]|0;if(h){n=1e9/(m|0)|0;g=0;b=0;o=0;do{A=G+(o<<2)|0;D=k[A>>2]|0;a=((D>>>0)/(m>>>0)|0)+b|0;k[A>>2]=a;b=ia((D>>>0)%(m>>>0)|0,n)|0;a=(o|0)==(g|0)&(a|0)==0;o=o+1|0;e=a?e+-9|0:e;g=a?o&127:g}while((o|0)!=(h|0));if(b){k[G+(h<<2)>>2]=b;h=h+1|0}}else{g=0;h=0}b=0;e=9-s+e|0}i:while(1){t=(e|0)<18;u=(e|0)==18;v=G+(g<<2)|0;do{if(!t){if(!u)break i;if((k[v>>2]|0)>>>0>=9007199){e=18;break i}}m=0;n=h+127|0;while(1){s=n&127;o=G+(s<<2)|0;n=ww(k[o>>2]|0,0,29)|0;n=tw(n|0,M|0,m|0,0)|0;m=M;if(m>>>0>0|(m|0)==0&n>>>0>1e9){a=Ew(n|0,m|0,1e9,0)|0;n=Fw(n|0,m|0,1e9,0)|0;m=a}else m=0;k[o>>2]=n;a=(s|0)==(g|0);h=(s|0)!=(h+127&127|0)|a?h:(n|0)==0?s:h;if(a)break;else n=s+-1|0}b=b+-29|0}while((m|0)==0);g=g+127&127;if((g|0)==(h|0)){a=h+127&127;h=G+((h+126&127)<<2)|0;k[h>>2]=k[h>>2]|k[G+(a<<2)>>2];h=a}k[G+(g<<2)>>2]=m;e=e+9|0}j:while(1){w=h+1&127;v=G+((h+127&127)<<2)|0;while(1){t=(e|0)==18;u=(e|0)>27?9:1;s=t^1;while(1){n=g&127;o=(n|0)==(h|0);do{if(!o){m=k[G+(n<<2)>>2]|0;if(m>>>0<9007199){y=219;break}if(m>>>0>9007199)break;m=g+1&127;if((m|0)==(h|0)){y=219;break}m=k[G+(m<<2)>>2]|0;if(m>>>0<254740991){y=219;break}if(!(m>>>0>254740991|s)){e=n;break j}}else y=219}while(0);if((y|0)==219?(y=0,t):0){y=220;break j}b=b+u|0;if((g|0)==(h|0))g=h;else break}s=(1<>>u;n=g;m=0;o=g;while(1){D=G+(o<<2)|0;a=k[D>>2]|0;g=(a>>>u)+m|0;k[D>>2]=g;m=ia(a&s,t)|0;g=(o|0)==(n|0)&(g|0)==0;o=o+1&127;e=g?e+-9|0:e;g=g?o:n;if((o|0)==(h|0))break;else n=g}if(!m)continue;if((w|0)!=(g|0))break;k[v>>2]=k[v>>2]|1}k[G+(h<<2)>>2]=m;h=w}if((y|0)==220)if(o){k[G+(w+-1<<2)>>2]=0;e=h;h=w}else e=n;d=+((k[G+(e<<2)>>2]|0)>>>0);e=g+1&127;if((e|0)==(h|0)){h=g+2&127;k[G+(h+-1<<2)>>2]=0}q=+(H|0);f=q*(d*1.0e9+ +((k[G+(e<<2)>>2]|0)>>>0));t=b+53|0;o=t-I|0;s=(o|0)<(J|0);e=s&1;n=s?(o|0)<0?0:o:J;if((n|0)<53){L=+Ck(+Hk(1.0,105-n|0),f);j=+Ek(f,+Hk(1.0,53-n|0));p=L;d=j;j=L+(f-j)}else{p=0.0;d=0.0;j=f}m=g+2&127;do{if((m|0)==(h|0))f=d;else{m=k[G+(m<<2)>>2]|0;do{if(m>>>0>=5e8){if(m>>>0>5e8){d=q*.75+d;break}if((g+3&127|0)==(h|0)){d=q*.5+d;break}else{d=q*.75+d;break}}else{if((m|0)==0?(g+3&127|0)==(h|0):0)break;d=q*.25+d}}while(0);if((53-n|0)<=1){f=d;break}if(+Ek(d,1.0)!=0.0){f=d;break}f=d+1.0}}while(0);d=j+f-p;do{if((t&2147483647|0)>(-2-E|0)){if(+X(+d)>=9007199254740992.0){e=s&(n|0)==(o|0)?0:e;b=b+1|0;d=d*.5}if((b+50|0)<=(F|0)?!(f!=0.0&(e|0)!=0):0)break;J=mk()|0;k[J>>2]=34}}while(0);d=+Ik(d,b)}}while(0);break a}default:{if(k[A>>2]|0)k[D>>2]=(k[D>>2]|0)+-1;J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0;break a}}}}}while(0);if((y|0)==23){e=(k[A>>2]|0)==0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if((c|0)!=0&b>>>0>3)do{if(!e)k[D>>2]=(k[D>>2]|0)+-1;b=b+-1|0}while(b>>>0>3)}d=+(H|0)*C}}while(0);r=K;return+d}function pk(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,j=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do{if(b>>>0>36){e=mk()|0;k[e>>2]=22;e=0;d=0}else{r=a+4|0;q=a+100|0;do{f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((kk(f)|0)!=0);b:do{switch(f|0){case 43:case 45:{g=((f|0)==45)<<31>>31;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0;p=g;break b}else{f=rk(a)|0;p=g;break b}}default:p=0}}while(0);g=(b|0)==0;do{if((b&-17|0)==0&(f|0)==48){f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;if((f|32|0)!=120)if(g){b=8;n=46;break}else{n=32;break}b=k[r>>2]|0;if(b>>>0<(k[q>>2]|0)>>>0){k[r>>2]=b+1;f=l[b>>0]|0}else f=rk(a)|0;if((l[53879+(f+1)>>0]|0)>15){d=(k[q>>2]|0)==0;if(!d)k[r>>2]=(k[r>>2]|0)+-1;if(!c){qk(a,0);e=0;d=0;break a}if(d){e=0;d=0;break a}k[r>>2]=(k[r>>2]|0)+-1;e=0;d=0;break a}else{b=16;n=46}}else{b=g?10:b;if((l[53879+(f+1)>>0]|0)>>>0>>0)n=32;else{if(k[q>>2]|0)k[r>>2]=(k[r>>2]|0)+-1;qk(a,0);e=mk()|0;k[e>>2]=22;e=0;d=0;break a}}}while(0);if((n|0)==32)if((b|0)==10){b=f+-48|0;if(b>>>0<10){f=0;while(1){g=(f*10|0)+b|0;b=k[r>>2]|0;if(b>>>0<(k[q>>2]|0)>>>0){k[r>>2]=b+1;f=l[b>>0]|0}else f=rk(a)|0;b=f+-48|0;if(!(b>>>0<10&g>>>0<429496729)){b=g;break}else f=g}g=0}else{b=0;g=0}c=f+-48|0;if(c>>>0<10){while(1){h=Dw(b|0,g|0,10,0)|0;j=M;m=((c|0)<0)<<31>>31;o=~m;if(j>>>0>o>>>0|(j|0)==(o|0)&h>>>0>~c>>>0){h=b;break}b=tw(h|0,j|0,c|0,m|0)|0;g=M;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;c=f+-48|0;if(!(c>>>0<10&(g>>>0<429496729|(g|0)==429496729&b>>>0<2576980378))){h=b;break}}if(c>>>0>9){f=h;b=p}else{b=10;n=72}}else{f=b;b=p}}else n=46;c:do{if((n|0)==46){if(!(b+-1&b)){n=i[54136+((b*23|0)>>>5&7)>>0]|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(c>>>0>>0){f=0;while(1){h=c|f<>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(!(h>>>0<134217728&c>>>0>>0))break;else f=h}c=0}else{c=0;h=0}j=uw(-1,-1,n|0)|0;m=M;if((g&255)>>>0>=b>>>0|(c>>>0>m>>>0|(c|0)==(m|0)&h>>>0>j>>>0)){g=c;n=72;break}else f=c;while(1){h=ww(h|0,f|0,n|0)|0;c=M;h=g&255|h;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;if((g&255)>>>0>=b>>>0|(c>>>0>m>>>0|(c|0)==(m|0)&h>>>0>j>>>0)){g=c;n=72;break c}else f=c}}g=i[53879+(f+1)>>0]|0;c=g&255;if(c>>>0>>0){f=0;while(1){h=c+(ia(f,b)|0)|0;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(!(h>>>0<119304647&c>>>0>>0))break;else f=h}c=0}else{h=0;c=0}if((g&255)>>>0>>0){n=Ew(-1,-1,b|0,0)|0;o=M;m=c;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&h>>>0>n>>>0){g=m;n=72;break c}c=Dw(h|0,m|0,b|0,0)|0;j=M;g=g&255;if(j>>>0>4294967295|(j|0)==-1&c>>>0>~g>>>0){g=m;n=72;break c}h=tw(g|0,0,c|0,j|0)|0;c=M;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;if((g&255)>>>0>=b>>>0){g=c;n=72;break}else m=c}}else{g=c;n=72}}}while(0);if((n|0)==72)if((l[53879+(f+1)>>0]|0)>>>0>>0){do{f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((l[53879+(f+1)>>0]|0)>>>0>>0);g=mk()|0;k[g>>2]=34;g=e;f=d;b=(d&1|0)==0&0==0?p:0}else{f=h;b=p}if(k[q>>2]|0)k[r>>2]=(k[r>>2]|0)+-1;if(!(g>>>0>>0|(g|0)==(e|0)&f>>>0>>0)){if(!((d&1|0)!=0|0!=0|(b|0)!=0)){r=mk()|0;k[r>>2]=34;d=tw(d|0,e|0,-1,-1)|0;e=M;break}if(g>>>0>e>>>0|(g|0)==(e|0)&f>>>0>d>>>0){r=mk()|0;k[r>>2]=34;break}}d=((b|0)<0)<<31>>31;d=rw(f^b|0,g^d|0,b|0,d|0)|0;e=M}}while(0);M=e;return d|0}function qk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;k[a+104>>2]=b;c=k[a+4>>2]|0;d=k[a+8>>2]|0;e=d-c|0;k[a+108>>2]=e;if((b|0)!=0&(e|0)>(b|0))k[a+100>>2]=c+b;else k[a+100>>2]=d;return}function rk(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;c=a+104|0;f=k[c>>2]|0;if((f|0)!=0?(k[a+108>>2]|0)>=(f|0):0)g=4;else{b=cl(a)|0;if((b|0)>=0){e=k[c>>2]|0;c=a+8|0;if(e){d=k[c>>2]|0;f=k[a+4>>2]|0;c=d;e=e-(k[a+108>>2]|0)+-1|0;if((c-f|0)>(e|0))k[a+100>>2]=f+e;else g=9}else{d=k[c>>2]|0;c=d;g=9}if((g|0)==9)k[a+100>>2]=c;c=k[a+4>>2]|0;if(d){a=a+108|0;k[a>>2]=d+1-c+(k[a>>2]|0)}c=c+-1|0;if((l[c>>0]|0|0)!=(b|0))i[c>>0]=b}else g=4}if((g|0)==4){k[a+100>>2]=0;b=-1}return b|0}function sk(a){a=a|0;var b=0;if(a>>>0>4294963200){b=mk()|0;k[b>>2]=0-a;a=-1}return a|0}function tk(a){a=a|0;return 0}function uk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return d|0}function vk(a,b){a=a|0;b=b|0;return-1|0}function wk(a){a=a|0;Ql(a);return}function xk(a,b){a=a|0;b=b|0;return(a+-48|0)>>>0<10|0}function yk(a,b){a=a|0;b=b|0;return lk(a)|0}function zk(a,b,c){a=a|0;b=b|0;c=c|0;if(((i[b>>0]|0)!=0?(vl(b,58885)|0)!=0:0)?(vl(b,54145)|0)!=0:0)c=0;else if(!c)c=Rl(1,4)|0;return c|0}function Ak(a){a=a|0;var b=0,c=0;b=(kb()|0)+176|0;c=k[b>>2]|0;if(a)k[b>>2]=a;return c|0}function Bk(a,b){a=+a;b=+b;var c=0,d=0;p[t>>3]=a;d=k[t>>2]|0;c=k[t+4>>2]|0;p[t>>3]=b;c=k[t+4>>2]&-2147483648|c&2147483647;k[t>>2]=d;k[t+4>>2]=c;return+ +p[t>>3]}function Ck(a,b){a=+a;b=+b;return+ +Bk(a,b)}function Dk(a,b){a=+a;b=+b;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;p[t>>3]=a;c=k[t>>2]|0;j=k[t+4>>2]|0;p[t>>3]=b;l=k[t>>2]|0;m=k[t+4>>2]|0;d=uw(c|0,j|0,52)|0;d=d&2047;h=uw(l|0,m|0,52)|0;h=h&2047;n=j&-2147483648;g=ww(l|0,m|0,1)|0;i=M;a:do{if(!((g|0)==0&(i|0)==0)?(f=m&2147483647,!(f>>>0>2146435072|(f|0)==2146435072&l>>>0>0|(d|0)==2047)):0){e=ww(c|0,j|0,1)|0;f=M;if(!(f>>>0>i>>>0|(f|0)==(i|0)&e>>>0>g>>>0))return+((e|0)==(g|0)&(f|0)==(i|0)?a*0.0:a);if(!d){d=ww(c|0,j|0,12)|0;e=M;if((e|0)>-1|(e|0)==-1&d>>>0>4294967295){f=d;d=0;do{d=d+-1|0;f=ww(f|0,e|0,1)|0;e=M}while((e|0)>-1|(e|0)==-1&f>>>0>4294967295)}else d=0;c=ww(c|0,j|0,1-d|0)|0;e=M}else e=j&1048575|1048576;if(!h){f=ww(l|0,m|0,12)|0;g=M;if((g|0)>-1|(g|0)==-1&f>>>0>4294967295){h=0;do{h=h+-1|0;f=ww(f|0,g|0,1)|0;g=M}while((g|0)>-1|(g|0)==-1&f>>>0>4294967295)}else h=0;l=ww(l|0,m|0,1-h|0)|0;j=M}else j=m&1048575|1048576;i=rw(c|0,e|0,l|0,j|0)|0;g=M;f=(g|0)>-1|(g|0)==-1&i>>>0>4294967295;b:do{if((d|0)>(h|0)){while(1){if(f)if((c|0)==(l|0)&(e|0)==(j|0))break;else{c=i;e=g}c=ww(c|0,e|0,1)|0;e=M;d=d+-1|0;i=rw(c|0,e|0,l|0,j|0)|0;g=M;f=(g|0)>-1|(g|0)==-1&i>>>0>4294967295;if((d|0)<=(h|0))break b}b=a*0.0;break a}}while(0);if(f)if((c|0)==(l|0)&(e|0)==(j|0)){b=a*0.0;break}else{e=g;c=i}if(e>>>0<1048576|(e|0)==1048576&c>>>0<0)do{c=ww(c|0,e|0,1)|0;e=M;d=d+-1|0}while(e>>>0<1048576|(e|0)==1048576&c>>>0<0);if((d|0)>0){m=tw(c|0,e|0,0,-1048576)|0;c=M;d=ww(d|0,0,52)|0;c=c|M;d=m|d}else{d=uw(c|0,e|0,1-d|0)|0;c=M}k[t>>2]=d;k[t+4>>2]=c|n;b=+p[t>>3]}else o=3}while(0);if((o|0)==3){b=a*b;b=b/b}return+b}function Ek(a,b){a=+a;b=+b;return+ +Dk(a,b)}function Fk(a,b){a=+a;b=b|0;var c=0,d=0,e=0;p[t>>3]=a;c=k[t>>2]|0;d=k[t+4>>2]|0;e=uw(c|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{if(a!=0.0){a=+Fk(a*18446744073709551616.0,b);c=(k[b>>2]|0)+-64|0}else c=0;k[b>>2]=c;break}case 2047:break;default:{k[b>>2]=e+-1022;k[t>>2]=c;k[t+4>>2]=d&-2146435073|1071644672;a=+p[t>>3]}}return+a}function Gk(a,b){a=+a;b=b|0;return+ +Fk(a,b)}function Hk(a,b){a=+a;b=b|0;var c=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;c=b+-1023|0;if((c|0)>1023){c=b+-2046|0;c=(c|0)>1023?1023:c;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;c=b+1022|0;if((c|0)<-1022){c=b+2044|0;c=(c|0)<-1022?-1022:c;a=a*2.2250738585072014e-308}}else c=b;c=ww(c+1023|0,0,52)|0;b=M;k[t>>2]=c;k[t+4>>2]=b;return+(a*+p[t>>3])}function Ik(a,b){a=+a;b=b|0;return+ +Hk(a,b)}function Jk(a,b,c){a=a|0;b=b|0;c=c|0;return Kk(0,a,b,(c|0)!=0?c:37344)|0}function Kk(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,j=0,l=0;j=r;r=r+16|0;e=j;g=(d|0)==0?37348:d;d=k[g>>2]|0;a:do{if(!b)if(!d)d=0;else h=15;else{f=(a|0)==0?e:a;if(!c)d=-2;else{if(!d){d=i[b>>0]|0;e=d&255;if(d<<24>>24>-1){k[f>>2]=e;d=d<<24>>24!=0&1;break}d=e+-194|0;if(d>>>0>50){h=15;break}d=k[37076+(d<<2)>>2]|0;e=c+-1|0;if(e){b=b+1|0;h=9}}else{e=c;h=9}b:do{if((h|0)==9){a=i[b>>0]|0;l=(a&255)>>>3;if((l+-16|l+(d>>26))>>>0>7){h=15;break a}while(1){b=b+1|0;d=(a&255)+-128|d<<6;e=e+-1|0;if((d|0)>=0)break;if(!e)break b;a=i[b>>0]|0;if((a&-64)<<24>>24!=-128){h=15;break a}}k[g>>2]=0;k[f>>2]=d;d=c-e|0;break a}}while(0);k[g>>2]=d;d=-2}}}while(0);if((h|0)==15){k[g>>2]=0;d=mk()|0;k[d>>2]=84;d=-1}r=j;return d|0}function Lk(a){a=a|0;if(!a)a=1;else a=(k[a>>2]|0)==0;return a&1|0}function Mk(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,l=0,m=0,n=0,o=0;n=r;r=r+1040|0;j=n+8|0;m=n;i=k[b>>2]|0;k[m>>2]=i;l=(a|0)!=0;d=l?d:256;a=l?a:j;f=i;a:do{if((d|0)!=0&(i|0)!=0){h=d;i=f;d=0;while(1){f=c>>>2;g=f>>>0>=h>>>0;if(!(c>>>0>131|g)){f=i;break a}f=g?h:f;c=c-f|0;f=Nk(a,m,f,e)|0;if((f|0)==-1){d=c;break}o=(a|0)==(j|0);i=o?0:f;g=h-i|0;a=o?a:a+(f<<2)|0;d=f+d|0;f=k[m>>2]|0;if((h|0)!=(i|0)&(f|0)!=0){h=g;i=f}else{h=g;break a}}c=d;h=0;f=k[m>>2]|0;d=-1}else{h=d;d=0}}while(0);b:do{if((f|0)!=0?(h|0)!=0&(c|0)!=0:0){g=f;f=a;while(1){a=Kk(f,g,c,e)|0;if((a+2|0)>>>0<3)break;g=(k[m>>2]|0)+a|0;k[m>>2]=g;h=h+-1|0;d=d+1|0;if(!((h|0)!=0&(c|0)!=(a|0)))break b;else{c=c-a|0;f=f+4|0}}switch(a|0){case-1:{d=-1;break b}case 0:{k[m>>2]=0;break b}default:{k[e>>2]=0;break b}}}}while(0);if(l)k[b>>2]=k[m>>2];r=n;return d|0}function Nk(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,j=0,m=0;e=k[b>>2]|0;if((d|0)!=0?(f=k[d>>2]|0,(f|0)!=0):0)if(!a){d=c;g=e;m=16}else{k[d>>2]=0;j=a;d=c;h=f;m=37}else if(!a){d=c;m=7}else{f=a;d=c;m=6}a:while(1)if((m|0)==6){if(!d){m=26;break}else a=f;while(1){f=i[e>>0]|0;do{if(((f&255)+-1|0)>>>0<127?d>>>0>4&(e&3|0)==0:0){g=e;while(1){e=k[g>>2]|0;if((e+-16843009|e)&-2139062144){f=e;e=g;m=32;break}k[a>>2]=e&255;k[a+4>>2]=l[g+1>>0];k[a+8>>2]=l[g+2>>0];e=g+4|0;f=a+16|0;k[a+12>>2]=l[g+3>>0];d=d+-4|0;if(d>>>0>4){a=f;g=e}else{m=31;break}}if((m|0)==31){a=f;f=i[e>>0]|0;break}else if((m|0)==32){f=f&255;break}}}while(0);f=f&255;if((f+-1|0)>>>0>=127)break;e=e+1|0;k[a>>2]=f;d=d+-1|0;if(!d){m=26;break a}else a=a+4|0}f=f+-194|0;if(f>>>0>50){m=48;break}j=a;h=k[37076+(f<<2)>>2]|0;e=e+1|0;m=37;continue}else if((m|0)==7){f=i[e>>0]|0;if(((f&255)+-1|0)>>>0<127?(e&3|0)==0:0){f=k[e>>2]|0;if(!((f+-16843009|f)&-2139062144))do{e=e+4|0;d=d+-4|0;f=k[e>>2]|0}while(((f+-16843009|f)&-2139062144|0)==0);f=f&255}f=f&255;if((f+-1|0)>>>0<127){d=d+-1|0;e=e+1|0;m=7;continue}f=f+-194|0;if(f>>>0>50){m=48;break}f=k[37076+(f<<2)>>2]|0;g=e+1|0;m=16;continue}else if((m|0)==16){m=(l[g>>0]|0)>>>3;if((m+-16|m+(f>>26))>>>0>7){m=17;break}e=g+1|0;if(f&33554432){if((i[e>>0]&-64)<<24>>24!=-128){m=20;break}e=g+2|0;if(f&524288){if((i[e>>0]&-64)<<24>>24!=-128){m=23;break}e=g+3|0}}d=d+-1|0;m=7;continue}else if((m|0)==37){f=l[e>>0]|0;m=f>>>3;if((m+-16|m+(h>>26))>>>0>7){m=38;break}g=e+1|0;a=f+-128|h<<6;if((a|0)<0){f=l[g>>0]|0;if((f&192|0)!=128){m=41;break}g=e+2|0;a=f+-128|a<<6;if((a|0)<0){f=l[g>>0]|0;if((f&192|0)!=128){m=44;break}a=f+-128|a<<6;e=e+3|0}else e=g}else e=g;k[j>>2]=a;f=j+4|0;d=d+-1|0;m=6;continue}if((m|0)==17){e=g+-1|0;m=47}else if((m|0)==20){e=g+-1|0;m=47}else if((m|0)==23){e=g+-1|0;m=47}else if((m|0)==26)k[b>>2]=e;else if((m|0)==38){a=j;f=h;e=e+-1|0;m=47}else if((m|0)==41){d=j;c=e+-1|0;m=52}else if((m|0)==44){d=j;c=e+-1|0;m=52}if((m|0)==47)if(!f)m=48;else{d=a;c=e;m=52}if((m|0)==48)if(!(i[e>>0]|0)){if(a){k[a>>2]=0;k[b>>2]=0}c=c-d|0}else{d=a;c=e;m=52}if((m|0)==52){m=mk()|0;k[m>>2]=84;if(!d)c=-1;else{k[b>>2]=c;c=-1}}return c|0}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+16|0;d=g;a:do{if(!b)d=0;else{do{if(c){f=(a|0)==0?d:a;d=i[b>>0]|0;a=d&255;if(d<<24>>24>-1){k[f>>2]=a;d=d<<24>>24!=0&1;break a}d=a+-194|0;if(d>>>0<=50){a=b+1|0;e=k[37076+(d<<2)>>2]|0;if(c>>>0<4?(e&-2147483648>>>((c*6|0)+-6|0)|0)!=0:0)break;d=l[a>>0]|0;c=d>>>3;if((c+-16|c+(e>>26))>>>0<=7){d=d+-128|e<<6;if((d|0)>=0){k[f>>2]=d;d=2;break a}a=l[b+2>>0]|0;if((a&192|0)==128){a=a+-128|d<<6;if((a|0)>=0){k[f>>2]=a;d=3;break a}d=l[b+3>>0]|0;if((d&192|0)==128){k[f>>2]=d+-128|a<<6;d=4;break a}}}}}}while(0);d=mk()|0;k[d>>2]=84;d=-1}}while(0);r=g;return d|0}function Pk(a,b,c){a=a|0;b=b|0;c=c|0;do{if(a){if(b>>>0<128){i[a>>0]=b;a=1;break}if(b>>>0<2048){i[a>>0]=b>>>6|192;i[a+1>>0]=b&63|128;a=2;break}if(b>>>0<55296|(b&-8192|0)==57344){i[a>>0]=b>>>12|224;i[a+1>>0]=b>>>6&63|128;i[a+2>>0]=b&63|128;a=3;break}if((b+-65536|0)>>>0<1048576){i[a>>0]=b>>>18|240;i[a+1>>0]=b>>>12&63|128;i[a+2>>0]=b>>>6&63|128;i[a+3>>0]=b&63|128;a=4;break}else{a=mk()|0;k[a>>2]=84;a=-1;break}}else a=1}while(0);return a|0}function Qk(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,l=0,m=0,n=0;l=r;r=r+272|0;h=l+8|0;j=l;g=k[b>>2]|0;k[j>>2]=g;i=(a|0)!=0;e=i?d:256;d=i?a:h;a=g;a:do{if((e|0)!=0&(g|0)!=0){g=e;f=a;e=0;while(1){a=c>>>0>=g>>>0;if(!(a|c>>>0>32)){a=f;break a}a=a?g:c;c=c-a|0;a=Rk(d,j,a,0)|0;if((a|0)==-1){e=c;break}n=(d|0)==(h|0);m=n?0:a;f=g-m|0;d=n?d:d+a|0;e=a+e|0;a=k[j>>2]|0;if((g|0)!=(m|0)&(a|0)!=0){g=f;f=a}else{g=f;break a}}c=e;g=0;a=k[j>>2]|0;e=-1}else{g=e;e=0}}while(0);b:do{if((a|0)!=0?(g|0)!=0&(c|0)!=0:0){f=a;a=d;while(1){d=Pk(a,k[f>>2]|0,0)|0;if((d+1|0)>>>0<2)break;f=(k[j>>2]|0)+4|0;k[j>>2]=f;c=c+-1|0;e=e+1|0;if(!((g|0)!=(d|0)&(c|0)!=0))break b;else{g=g-d|0;a=a+d|0}}if(!d)k[j>>2]=0;else e=-1}}while(0);if(i)k[b>>2]=k[j>>2];r=l;return e|0}function Rk(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;h=r;r=r+16|0;g=h;a:do{if(!a){a=k[b>>2]|0;d=k[a>>2]|0;if(!d)c=0;else{c=0;do{if(d>>>0>127){d=Pk(g,d,0)|0;if((d|0)==-1){c=-1;break a}}else d=1;c=d+c|0;a=a+4|0;d=k[a>>2]|0}while((d|0)!=0)}}else{b:do{if(c>>>0>3){d=c;e=k[b>>2]|0;while(1){f=k[e>>2]|0;if((f+-1|0)>>>0>126){if(!f)break;f=Pk(a,f,0)|0;if((f|0)==-1){c=-1;break a}a=a+f|0;d=d-f|0}else{i[a>>0]=f;a=a+1|0;d=d+-1|0;e=k[b>>2]|0}e=e+4|0;k[b>>2]=e;if(d>>>0<=3)break b}i[a>>0]=0;k[b>>2]=0;c=c-d|0;break a}else d=c}while(0);if(d){e=k[b>>2]|0;while(1){f=k[e>>2]|0;if((f+-1|0)>>>0>126){if(!f){e=19;break}f=Pk(g,f,0)|0;if((f|0)==-1){c=-1;break a}if(d>>>0>>0){e=22;break}Pk(a,k[e>>2]|0,0)|0;a=a+f|0;d=d-f|0}else{i[a>>0]=f;a=a+1|0;d=d+-1|0;e=k[b>>2]|0}e=e+4|0;k[b>>2]=e;if(!d)break a}if((e|0)==19){i[a>>0]=0;k[b>>2]=0;c=c-d|0;break}else if((e|0)==22){c=c-d|0;break}}}}while(0);r=h;return c|0}function Sk(a,b){a=a|0;b=b|0;if(!a)a=0;else a=Pk(a,b,0)|0;return a|0}function Tk(a){a=a|0;return 0}function Uk(a){a=a|0;return}function Vk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;g=b&255;i[h>>0]=g;d=a+16|0;e=k[d>>2]|0;if(!e)if(!(bl(a)|0)){e=k[d>>2]|0;f=4}else c=-1;else f=4;do{if((f|0)==4){d=a+20|0;f=k[d>>2]|0;if(f>>>0>>0?(c=b&255,(c|0)!=(i[a+75>>0]|0)):0){k[d>>2]=f+1;i[f>>0]=g;break}if((Qb[k[a+36>>2]&63](a,h,1)|0)==1)c=l[h>>0]|0;else c=-1}}while(0);r=j;return c|0}function Wk(a){a=a|0;var b=0,c=0;b=r;r=r+16|0;c=b;k[c>>2]=k[a+60>>2];a=sk(wb(6,c|0)|0)|0;r=b;return a|0}function Xk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;l=r;r=r+48|0;f=l+16|0;e=l;d=l+32|0;k[d>>2]=b;g=d+4|0;j=a+48|0;m=k[j>>2]|0;k[g>>2]=c-((m|0)!=0&1);h=a+44|0;k[d+8>>2]=k[h>>2];k[d+12>>2]=m;if(!(k[9258]|0)){k[f>>2]=k[a+60>>2];k[f+4>>2]=d;k[f+8>>2]=2;d=sk(Eb(145,f|0)|0)|0}else{xb(185,a|0);k[e>>2]=k[a+60>>2];k[e+4>>2]=d;k[e+8>>2]=2;d=sk(Eb(145,e|0)|0)|0;pb(0)}if((d|0)>=1){g=k[g>>2]|0;if(d>>>0>g>>>0){f=k[h>>2]|0;e=a+4|0;k[e>>2]=f;k[a+8>>2]=f+(d-g);if(!(k[j>>2]|0))d=c;else{k[e>>2]=f+1;i[b+(c+-1)>>0]=i[f>>0]|0;d=c}}}else{k[a>>2]=k[a>>2]|d&48^16;k[a+8>>2]=0;k[a+4>>2]=0}r=l;return d|0}function Yk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;f=e;d=e+20|0;k[f>>2]=k[a+60>>2];k[f+4>>2]=0;k[f+8>>2]=b;k[f+12>>2]=d;k[f+16>>2]=c;if((sk(Db(140,f|0)|0)|0)<0){k[d>>2]=-1;a=-1}else a=k[d>>2]|0;r=e;return a|0}function Zk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;p=r;r=r+48|0;m=p+16|0;l=p;d=p+32|0;n=a+28|0;e=k[n>>2]|0;k[d>>2]=e;o=a+20|0;e=(k[o>>2]|0)-e|0;k[d+4>>2]=e;k[d+8>>2]=b;k[d+12>>2]=c;i=a+60|0;j=a+44|0;b=2;e=e+c|0;while(1){if(!(k[9258]|0)){k[m>>2]=k[i>>2];k[m+4>>2]=d;k[m+8>>2]=b;g=sk(Fb(146,m|0)|0)|0}else{xb(186,a|0);k[l>>2]=k[i>>2];k[l+4>>2]=d;k[l+8>>2]=b;g=sk(Fb(146,l|0)|0)|0;pb(0)}if((e|0)==(g|0)){e=6;break}if((g|0)<0){e=8;break}e=e-g|0;f=k[d+4>>2]|0;if(g>>>0<=f>>>0)if((b|0)==2){k[n>>2]=(k[n>>2]|0)+g;h=f;b=2}else h=f;else{h=k[j>>2]|0;k[n>>2]=h;k[o>>2]=h;h=k[d+12>>2]|0;g=g-f|0;d=d+8|0;b=b+-1|0}k[d>>2]=(k[d>>2]|0)+g;k[d+4>>2]=h-g}if((e|0)==6){m=k[j>>2]|0;k[a+16>>2]=m+(k[a+48>>2]|0);a=m;k[n>>2]=a;k[o>>2]=a}else if((e|0)==8){k[a+16>>2]=0;k[n>>2]=0;k[o>>2]=0;k[a>>2]=k[a>>2]|32;if((b|0)==2)c=0;else c=c-(k[d+4>>2]|0)|0}r=p;return c|0}function _k(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+80|0;d=e;k[a+36>>2]=8;if((k[a>>2]&64|0)==0?(k[d>>2]=k[a+60>>2],k[d+4>>2]=21505,k[d+8>>2]=e+12,(nb(54,d|0)|0)!=0):0)i[a+75>>0]=-1;d=Zk(a,b,c)|0;r=e;return d|0}function $k(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+84|0;f=k[d>>2]|0;g=c+256|0;e=tl(f,0,g)|0;e=(e|0)==0?g:e-f|0;c=e>>>0>>0?e:c;vw(b|0,f|0,c|0)|0;k[a+4>>2]=f+c;b=f+e|0;k[a+8>>2]=b;k[d>>2]=b;return c|0}function al(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=a+20|0;c=a+44|0;if((k[b>>2]|0)>>>0>(k[c>>2]|0)>>>0)Qb[k[a+36>>2]&63](a,0,0)|0;k[a+16>>2]=0;k[a+28>>2]=0;k[b>>2]=0;b=k[a>>2]|0;if(b&20)if(!(b&4))b=-1;else{k[a>>2]=b|32;b=-1}else{b=k[c>>2]|0;k[a+8>>2]=b;k[a+4>>2]=b;b=0}return b|0}function bl(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=k[a>>2]|0;if(!(b&8)){k[a+8>>2]=0;k[a+4>>2]=0;b=k[a+44>>2]|0;k[a+28>>2]=b;k[a+20>>2]=b;k[a+16>>2]=b+(k[a+48>>2]|0);b=0}else{k[a>>2]=b|32;b=-1}return b|0}function cl(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;if((k[a+8>>2]|0)==0?(al(a)|0)!=0:0)b=-1;else if((Qb[k[a+32>>2]&63](a,b,1)|0)==1)b=l[b>>0]|0;else b=-1;r=c;return b|0}function dl(a){a=a|0;var b=0,c=0;do{if(a){if((k[a+76>>2]|0)<=-1){b=Gl(a)|0;break}c=(Tk(a)|0)==0;b=Gl(a)|0;if(!c)Uk(a)}else{if(!(k[9323]|0))b=0;else b=dl(k[9323]|0)|0;Na(37060);a=k[9264]|0;if(a)do{if((k[a+76>>2]|0)>-1)c=Tk(a)|0;else c=0;if((k[a+20>>2]|0)>>>0>(k[a+28>>2]|0)>>>0)b=Gl(a)|0|b;if(c)Uk(a);a=k[a+56>>2]|0}while((a|0)!=0);ob(37060)}}while(0);return b|0}function el(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;if((k[b+76>>2]|0)>=0?(Tk(b)|0)!=0:0){if((i[b+75>>0]|0)!=(a|0)?(d=b+20|0,e=k[d>>2]|0,e>>>0<(k[b+16>>2]|0)>>>0):0){k[d>>2]=e+1;i[e>>0]=a;c=a&255}else c=Vk(b,a)|0;Uk(b)}else g=3;do{if((g|0)==3){if((i[b+75>>0]|0)!=(a|0)?(f=b+20|0,c=k[f>>2]|0,c>>>0<(k[b+16>>2]|0)>>>0):0){k[f>>2]=c+1;i[c>>0]=a;c=a&255;break}c=Vk(b,a)|0}}while(0);return c|0}function fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=c+16|0;e=k[d>>2]|0;if(!e)if(!(bl(c)|0)){e=k[d>>2]|0;f=4}else d=0;else f=4;a:do{if((f|0)==4){g=c+20|0;f=k[g>>2]|0;if((e-f|0)>>>0>>0){d=Qb[k[c+36>>2]&63](c,a,b)|0;break}b:do{if((i[c+75>>0]|0)>-1){d=b;while(1){if(!d){e=f;d=0;break b}e=d+-1|0;if((i[a+e>>0]|0)==10)break;else d=e}if((Qb[k[c+36>>2]&63](c,a,d)|0)>>>0>>0)break a;b=b-d|0;a=a+d|0;e=k[g>>2]|0}else{e=f;d=0}}while(0);vw(e|0,a|0,b|0)|0;k[g>>2]=(k[g>>2]|0)+b;d=d+b|0}}while(0);return d|0}function gl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ia(c,b)|0;if((k[d+76>>2]|0)>-1){f=(Tk(d)|0)==0;a=fl(a,e,d)|0;if(!f)Uk(d)}else a=fl(a,e,d)|0;if((a|0)!=(e|0))c=(a>>>0)/(b>>>0)|0;return c|0}function hl(a){a=a|0;var b=0,c=0,d=0;if((k[a+76>>2]|0)>=0?(Tk(a)|0)!=0:0){b=a+4|0;c=k[b>>2]|0;if(c>>>0<(k[a+8>>2]|0)>>>0){k[b>>2]=c+1;b=l[c>>0]|0}else b=cl(a)|0}else d=3;do{if((d|0)==3){b=a+4|0;c=k[b>>2]|0;if(c>>>0<(k[a+8>>2]|0)>>>0){k[b>>2]=c+1;b=l[c>>0]|0;break}else{b=cl(a)|0;break}}}while(0);return b|0}function il(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=ol(a,b,c,f)|0;r=e;return d|0}function jl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=r;r=r+16|0;e=d;k[e>>2]=c;c=pl(a,b,e)|0;r=d;return c|0}function kl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;do{if((a|0)!=-1){if((k[b+76>>2]|0)>-1)e=Tk(b)|0;else e=0;if(!((k[b+8>>2]|0)==0?(al(b)|0)!=0:0))f=6;if((f|0)==6?(c=b+4|0,d=k[c>>2]|0,d>>>0>((k[b+44>>2]|0)+-8|0)>>>0):0){f=d+-1|0;k[c>>2]=f;i[f>>0]=a;k[b>>2]=k[b>>2]&-17;if(!e)break;Uk(b);break}if(e){Uk(b);a=-1}else a=-1}else a=-1}while(0);return a|0}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;d=h;e=Pl(240)|0;do{if(e){k[d>>2]=k[c>>2];d=ol(e,240,b,d)|0;if(d>>>0<240){b=Sl(e,d+1|0)|0;k[a>>2]=(b|0)!=0?b:e;break}Ql(e);if((d|0)>=0?(g=d+1|0,f=Pl(g)|0,k[a>>2]=f,(f|0)!=0):0)d=ol(f,g,b,c)|0;else d=-1}else d=-1}while(0);r=h;return d|0}function ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+224|0;n=s+80|0;q=s+96|0;p=s;o=s+136|0;d=q;e=d+40|0;do{k[d>>2]=0;d=d+4|0}while((d|0)<(e|0));k[n>>2]=k[c>>2];if((Hl(0,b,n,p,q)|0)<0)c=-1;else{if((k[a+76>>2]|0)>-1)l=Tk(a)|0;else l=0;c=k[a>>2]|0;m=c&32;if((i[a+74>>0]|0)<1)k[a>>2]=c&-33;c=a+48|0;if(!(k[c>>2]|0)){e=a+44|0;f=k[e>>2]|0;k[e>>2]=o;g=a+28|0;k[g>>2]=o;h=a+20|0;k[h>>2]=o;k[c>>2]=80;j=a+16|0;k[j>>2]=o+80;d=Hl(a,b,n,p,q)|0;if(f){Qb[k[a+36>>2]&63](a,0,0)|0;d=(k[h>>2]|0)==0?-1:d;k[e>>2]=f;k[c>>2]=0;k[j>>2]=0;k[g>>2]=0;k[h>>2]=0}}else d=Hl(a,b,n,p,q)|0;c=k[a>>2]|0;k[a>>2]=c|m;if(l)Uk(a);c=(c&32|0)==0?d:-1}r=s;return c|0}function nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,m=0.0,n=0,q=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,N=0,O=0,P=0,Q=0;P=r;r=r+304|0;G=P+16|0;I=P+8|0;H=P+33|0;J=P;y=P+32|0;if((k[a+76>>2]|0)>-1)O=Tk(a)|0;else O=0;d=i[b>>0]|0;a:do{if(d<<24>>24){K=a+4|0;L=a+100|0;F=a+108|0;z=a+8|0;A=H+10|0;B=H+33|0;C=I+4|0;D=H+46|0;E=H+94|0;f=d;d=0;g=b;s=0;e=0;b=0;b:while(1){c:do{if(!(kk(f&255)|0)){f=(i[g>>0]|0)==37;d:do{if(f){n=g+1|0;h=i[n>>0]|0;e:do{switch(h<<24>>24){case 37:break d;case 42:{x=0;h=g+2|0;break}default:{h=(h&255)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[G>>2]=k[c>>2];while(1){x=(k[G>>2]|0)+(4-1)&~(4-1);f=k[x>>2]|0;k[G>>2]=x+4;if(h>>>0>1)h=h+-1|0;else break}x=f;h=g+3|0;break e}h=(k[c>>2]|0)+(4-1)&~(4-1);x=k[h>>2]|0;k[c>>2]=h+4;h=n}}}while(0);f=i[h>>0]|0;g=f&255;if((g+-48|0)>>>0<10){f=0;while(1){n=(f*10|0)+-48+g|0;h=h+1|0;f=i[h>>0]|0;g=f&255;if((g+-48|0)>>>0>=10)break;else f=n}}else n=0;if(f<<24>>24==109){h=h+1|0;q=i[h>>0]|0;f=(x|0)!=0&1;e=0;b=0}else{q=f;f=0}g=h+1|0;switch(q&255|0){case 104:{w=(i[g>>0]|0)==104;g=w?h+2|0:g;h=w?-2:-1;break}case 108:{w=(i[g>>0]|0)==108;g=w?h+2|0:g;h=w?3:1;break}case 106:{h=3;break}case 116:case 122:{h=1;break}case 76:{h=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:{g=h;h=0;break}default:{N=152;break b}}q=l[g>>0]|0;t=(q&47|0)==3;q=t?q|32:q;t=t?1:h;switch(q|0){case 99:{w=s;v=(n|0)<1?1:n;break}case 91:{w=s;v=n;break}case 110:{if(!x){h=s;break c}switch(t|0){case-2:{i[x>>0]=s;h=s;break c}case-1:{j[x>>1]=s;h=s;break c}case 0:{k[x>>2]=s;h=s;break c}case 1:{k[x>>2]=s;h=s;break c}case 3:{h=x;k[h>>2]=s;k[h+4>>2]=((s|0)<0)<<31>>31;h=s;break c}default:{h=s;break c}}}default:{qk(a,0);do{h=k[K>>2]|0;if(h>>>0<(k[L>>2]|0)>>>0){k[K>>2]=h+1;h=l[h>>0]|0}else h=rk(a)|0}while((kk(h)|0)!=0);h=k[K>>2]|0;if(k[L>>2]|0){h=h+-1|0;k[K>>2]=h}w=(k[F>>2]|0)+s+h-(k[z>>2]|0)|0;v=n}}qk(a,v);h=k[K>>2]|0;n=k[L>>2]|0;if(h>>>0>>0)k[K>>2]=h+1;else{if((rk(a)|0)<0){N=152;break b}n=k[L>>2]|0}if(n)k[K>>2]=(k[K>>2]|0)+-1;f:do{switch(q|0){case 91:case 99:case 115:{u=(q|0)==99;g:do{if((q&239|0)==99){sw(H|0,-1,257)|0;i[H>>0]=0;if((q|0)==115){i[B>>0]=0;i[A>>0]=0;i[A+1>>0]=0;i[A+2>>0]=0;i[A+3>>0]=0;i[A+4>>0]=0}}else{Q=g+1|0;s=(i[Q>>0]|0)==94;h=s&1;q=s?Q:g;g=s?g+2|0:Q;sw(H|0,s&1|0,257)|0;i[H>>0]=0;switch(i[g>>0]|0){case 45:{s=(h^1)&255;i[D>>0]=s;g=q+2|0;break}case 93:{s=(h^1)&255;i[E>>0]=s;g=q+2|0;break}default:s=(h^1)&255}while(1){h=i[g>>0]|0;h:do{switch(h<<24>>24){case 0:{N=152;break b}case 93:break g;case 45:{q=g+1|0;h=i[q>>0]|0;switch(h<<24>>24){case 93:case 0:{h=45;break h}default:{}}g=i[g+-1>>0]|0;if((g&255)<(h&255)){g=g&255;do{g=g+1|0;i[H+g>>0]=s;h=i[q>>0]|0}while((g|0)<(h&255|0));g=q}else g=q;break}default:{}}}while(0);i[H+((h&255)+1)>>0]=s;g=g+1|0}}}while(0);q=u?v+1|0:31;s=(t|0)==1;t=(f|0)!=0;i:do{if(s){if(t){b=Pl(q<<2)|0;if(!b){e=0;N=152;break b}}else b=x;k[I>>2]=0;k[C>>2]=0;e=0;j:while(1){n=(b|0)==0;do{k:while(1){h=k[K>>2]|0;if(h>>>0<(k[L>>2]|0)>>>0){k[K>>2]=h+1;h=l[h>>0]|0}else h=rk(a)|0;if(!(i[H+(h+1)>>0]|0))break j;i[y>>0]=h;switch(Kk(J,y,1,I)|0){case-1:{e=0;N=152;break b}case-2:break;default:break k}}if(!n){k[b+(e<<2)>>2]=k[J>>2];e=e+1|0}}while(!(t&(e|0)==(q|0)));e=q<<1|1;h=Sl(b,e<<2)|0;if(!h){e=0;N=152;break b}Q=q;q=e;b=h;e=Q}if(!(Lk(I)|0)){e=0;N=152;break b}else{n=e;e=0}}else{if(t){e=Pl(q)|0;if(!e){e=0;b=0;N=152;break b}else h=0;while(1){do{b=k[K>>2]|0;if(b>>>0<(k[L>>2]|0)>>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=h;b=0;break i}i[e+h>>0]=b;h=h+1|0}while((h|0)!=(q|0));b=q<<1|1;h=Sl(e,b)|0;if(!h){b=0;N=152;break b}else{Q=q;q=b;e=h;h=Q}}}if(!x){e=n;while(1){b=k[K>>2]|0;if(b>>>0>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=0;e=0;b=0;break i}e=k[L>>2]|0}}else{e=0;while(1){b=k[K>>2]|0;if(b>>>0>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=e;e=x;b=0;break i}i[x+e>>0]=b;n=k[L>>2]|0;e=e+1|0}}}}while(0);h=k[K>>2]|0;if(k[L>>2]|0){h=h+-1|0;k[K>>2]=h}h=h-(k[z>>2]|0)+(k[F>>2]|0)|0;if(!h)break b;if(!((h|0)==(v|0)|u^1))break b;do{if(t)if(s){k[x>>2]=b;break}else{k[x>>2]=e;break}}while(0);if(!u){if(b)k[b+(n<<2)>>2]=0;if(!e){e=0;break f}i[e+n>>0]=0}break}case 120:case 88:case 112:{h=16;N=134;break}case 111:{h=8;N=134;break}case 117:case 100:{h=10;N=134;break}case 105:{h=0;N=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{m=+ok(a,t,0);if((k[F>>2]|0)==((k[z>>2]|0)-(k[K>>2]|0)|0))break b;if(x)switch(t|0){case 0:{o[x>>2]=m;break f}case 1:{p[x>>3]=m;break f}case 2:{p[x>>3]=m;break f}default:break f}break}default:{}}}while(0);l:do{if((N|0)==134){N=0;h=pk(a,h,0,-1,-1)|0;if((k[F>>2]|0)==((k[z>>2]|0)-(k[K>>2]|0)|0))break b;if((x|0)!=0&(q|0)==112){k[x>>2]=h;break}if(x)switch(t|0){case-2:{i[x>>0]=h;break l}case-1:{j[x>>1]=h;break l}case 0:{k[x>>2]=h;break l}case 1:{k[x>>2]=h;break l}case 3:{Q=x;k[Q>>2]=h;k[Q+4>>2]=M;break l}default:break l}}}while(0);d=((x|0)!=0&1)+d|0;h=(k[F>>2]|0)+w+(k[K>>2]|0)-(k[z>>2]|0)|0;break c}}while(0);g=g+(f&1)|0;qk(a,0);f=k[K>>2]|0;if(f>>>0<(k[L>>2]|0)>>>0){k[K>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;if((f|0)!=(l[g>>0]|0)){N=21;break b}h=s+1|0}else{while(1){f=g+1|0;if(!(kk(l[f>>0]|0)|0))break;else g=f}qk(a,0);do{f=k[K>>2]|0;if(f>>>0<(k[L>>2]|0)>>>0){k[K>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((kk(f)|0)!=0);f=k[K>>2]|0;if(k[L>>2]|0){f=f+-1|0;k[K>>2]=f}h=(k[F>>2]|0)+s+f-(k[z>>2]|0)|0}}while(0);g=g+1|0;f=i[g>>0]|0;if(!(f<<24>>24))break a;else s=h}if((N|0)==21){if(k[L>>2]|0)k[K>>2]=(k[K>>2]|0)+-1;if((d|0)!=0|(f|0)>-1)break;else{d=0;N=153}}else if((N|0)==152)if(!d){d=f;N=153}if((N|0)==153){f=d;d=-1}if(f){Ql(e);Ql(b)}}else d=0}while(0);if(O)Uk(a);r=P;return d|0}function ol(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,j=0,l=0,m=0;m=r;r=r+128|0;e=m+112|0;l=m;f=l;g=37352;h=f+112|0;do{k[f>>2]=k[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if((b+-1|0)>>>0>2147483646)if(!b){b=1;j=4}else{b=mk()|0;k[b>>2]=75;b=-1}else{e=a;j=4}if((j|0)==4){j=-2-e|0;j=b>>>0>j>>>0?j:b;k[l+48>>2]=j;a=l+20|0;k[a>>2]=e;k[l+44>>2]=e;b=e+j|0;e=l+16|0;k[e>>2]=b;k[l+28>>2]=b;b=ml(l,c,d)|0;if(j){c=k[a>>2]|0;i[c+(((c|0)==(k[e>>2]|0))<<31>>31)>>0]=0}}r=m;return b|0}function pl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=r;r=r+112|0;d=f;e=d;g=e+112|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[d+32>>2]=29;k[d+44>>2]=a;k[d+76>>2]=-1;k[d+84>>2]=a;g=nl(d,b,c)|0;r=f;return g|0}function ql(a,b,c){a=a|0;b=b|0;c=c|0;return+ +Jl(a,b,2)}function rl(a,b,c){a=a|0;b=b|0;c=c|0;a=Kl(a,b,c,-1,-1)|0;return a|0}function sl(a,b,c){a=a|0;b=b|0;c=c|0;a=Kl(a,b,c,0,-2147483648)|0;return a|0}function tl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b&255;d=(c|0)!=0;a:do{if(d&(a&3|0)!=0){e=b&255;while(1){if((i[a>>0]|0)==e<<24>>24){g=6;break a}a=a+1|0;c=c+-1|0;d=(c|0)!=0;if(!(d&(a&3|0)!=0)){g=5;break}}}else g=5}while(0);if((g|0)==5)if(d)g=6;else c=0;b:do{if((g|0)==6){e=b&255;if((i[a>>0]|0)!=e<<24>>24){d=ia(f,16843009)|0;c:do{if(c>>>0>3)while(1){f=k[a>>2]^d;if((f&-2139062144^-2139062144)&f+-16843009)break;a=a+4|0;c=c+-4|0;if(c>>>0<=3){g=11;break c}}else g=11}while(0);if((g|0)==11)if(!c){c=0;break}while(1){if((i[a>>0]|0)==e<<24>>24)break b;a=a+1|0;c=c+-1|0;if(!c){c=0;break}}}}}while(0);return((c|0)!=0?a:0)|0}function ul(a,b){a=a|0;b=b|0;var c=0,d=0;c=b;a:do{if(!((c^a)&3)){if(c&3)do{c=i[b>>0]|0;i[a>>0]=c;if(!(c<<24>>24))break a;b=b+1|0;a=a+1|0}while((b&3|0)!=0);c=k[b>>2]|0;if(!((c&-2139062144^-2139062144)&c+-16843009)){d=a;while(1){b=b+4|0;a=d+4|0;k[d>>2]=c;c=k[b>>2]|0;if((c&-2139062144^-2139062144)&c+-16843009)break;else d=a}}d=8}else d=8}while(0);if((d|0)==8){d=i[b>>0]|0;i[a>>0]=d;if(d<<24>>24)do{b=b+1|0;a=a+1|0;d=i[b>>0]|0;i[a>>0]=d}while(d<<24>>24!=0)}return a|0}function vl(a,b){a=a|0;b=b|0;var c=0,d=0;d=i[a>>0]|0;c=i[b>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=c<<24>>24)b=d;else{do{a=a+1|0;b=b+1|0;d=i[a>>0]|0;c=i[b>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=c<<24>>24));b=d}return(b&255)-(c&255)|0}function wl(a,b){a=a|0;b=b|0;ul(a,b)|0;return a|0}function xl(a){a=a|0;var b=0,c=0,d=0;d=a;a:do{if(!(d&3))c=4;else{b=a;a=d;while(1){if(!(i[b>>0]|0))break a;b=b+1|0;a=b;if(!(a&3)){a=b;c=4;break}}}}while(0);if((c|0)==4){while(1){b=k[a>>2]|0;if(!((b&-2139062144^-2139062144)&b+-16843009))a=a+4|0;else break}if((b&255)<<24>>24)do{a=a+1|0}while((i[a>>0]|0)!=0)}return a-d|0}function yl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(!c)b=0;else{d=i[a>>0]|0;a:do{if(!(d<<24>>24))d=0;else while(1){c=c+-1|0;e=i[b>>0]|0;if(!(d<<24>>24==e<<24>>24&((c|0)!=0&e<<24>>24!=0)))break a;a=a+1|0;b=b+1|0;d=i[a>>0]|0;if(!(d<<24>>24)){d=0;break}}}while(0);b=(d&255)-(l[b>>0]|0)|0}return b|0}function zl(a){a=a|0;var b=0;b=a;while(1)if(!(k[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(c){d=a;while(1){c=c+-1|0;k[d>>2]=k[b>>2];if(!c)break;else{b=b+4|0;d=d+4|0}}}return a|0}function Bl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=(c|0)==0;if(a-b>>2>>>0>>0){if(!d)do{c=c+-1|0;k[a+(c<<2)>>2]=k[b+(c<<2)>>2]}while((c|0)!=0)}else if(!d){d=b;b=a;while(1){c=c+-1|0;k[b>>2]=k[d>>2];if(!c)break;else{d=d+4|0;b=b+4|0}}}return a|0}function Cl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(c){d=a;while(1){c=c+-1|0;k[d>>2]=b;if(!c)break;else d=d+4|0}}return a|0}function Dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=a+4|0;c=k[g>>2]|0;h=a+100|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0;switch(c|0){case 43:case 45:{d=(c|0)==45&1;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0;if((b|0)!=0&(c+-48|0)>>>0>9?(k[h>>2]|0)!=0:0){k[g>>2]=(k[g>>2]|0)+-1;f=d}else f=d;break}default:f=0}if((c+-48|0)>>>0>9)if(!(k[h>>2]|0)){d=-2147483648;c=0}else{k[g>>2]=(k[g>>2]|0)+-1;d=-2147483648;c=0}else{d=0;do{d=c+-48+(d*10|0)|0;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10&(d|0)<214748364);b=((d|0)<0)<<31>>31;if((c+-48|0)>>>0<10){do{b=Dw(d|0,b|0,10,0)|0;d=M;c=tw(c|0,((c|0)<0)<<31>>31|0,-48,-1)|0;d=tw(c|0,M|0,b|0,d|0)|0;b=M;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&d>>>0<2061584302));e=d}else e=d;if((c+-48|0)>>>0<10)do{c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10);if(k[h>>2]|0)k[g>>2]=(k[g>>2]|0)+-1;a=(f|0)!=0;c=rw(0,0,e|0,b|0)|0;d=a?M:b;c=a?c:e}M=d;return c|0}function El(a){a=a|0;if(!(k[a+68>>2]|0))Uk(a);return}function Fl(a){a=a|0;if(!(k[a+68>>2]|0))Uk(a);return}function Gl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=a+20|0;f=a+28|0;if((k[b>>2]|0)>>>0>(k[f>>2]|0)>>>0?(Qb[k[a+36>>2]&63](a,0,0)|0,(k[b>>2]|0)==0):0)b=-1;else{g=a+4|0;c=k[g>>2]|0;d=a+8|0;e=k[d>>2]|0;if(c>>>0>>0)Qb[k[a+40>>2]&63](a,c-e|0,1)|0;k[a+16>>2]=0;k[f>>2]=0;k[b>>2]=0;k[d>>2]=0;k[g>>2]=0;b=0}return b|0}var Ib=[cx,_q,cr,Yr,as,fs,hs,Hu,Su,cx,cx,cx,cx,cx,cx,cx];var Jb=[dx,si,gi,Wh,Kh,yh,mh,ah,Lg,Wj,Vj,Sj,dx,dx,dx,dx];var Kb=[ex,ls,rs,ex];var Lb=[fx,oi,pi,ci,di,Sh,Th,Gh,Hh,uh,vh,ih,jh,Yg,Zg,Hg,Ig,ug,vg,ig,jg,Yf,Zf,Mf,Nf,Af,Bf,Ie,Je,ve,we,Dc,Ec,Zd,be,_d,mo,oo,no,po,ud,vd,_i,wd,nd,od,Sc,Tc,_c,$c,fd,gd,xd,yd,Ed,Fd,Ld,Md,Sd,Td,te,ue,Re,Se,Ye,Ze,df,ef,lf,mf,Wg,Xg,Nm,Ai,Ki,Li,$i,aj,pj,qj,wj,xj,Bj,Cj,Ej,Hj,Fj,Gj,Ij,Jj,Mn,bm,hm,xn,mm,sm,Lm,Mm,yn,Nn,$n,bo,ao,co,go,io,ho,jo,uo,wo,vo,xo,Eo,Fo,pn,Go,Ho,Io,Ko,Us,Oo,Po,To,Uo,gp,hp,Ap,Bp,Pp,Qp,aq,bq,zq,Aq,Xq,Zq,ar,br,er,fr,pr,qr,Ar,Br,Lr,Mr,Wr,Xr,ds,es,js,ks,ps,qs,vs,ws,As,Bs,Is,Js,kt,lt,Gu,Dt,du,eu,fu,gu,Jo,Ts,Ws,ut,Lt,Tt,$t,au,bj,Si,jj,Cc,zn,fo,ie,Og,ek,El,Fl,Wl,wk,Zr,$r,Vs,Qv,Xv,Yv,Zv,_v,$v,aw,Sm,en,Ql,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx];var Mb=[gx,ri,fi,Vh,Jh,xh,lh,$g,Kg,wg,kg,_f,Of,Cf,Ke,xe,Fc,An,Mi,Pi,cm,gm,nm,rm,Pn,ir,jr,kr,lr,nr,or,tr,ur,vr,wr,yr,zr,Er,Fr,Gr,Hr,Jr,Kr,Pr,Qr,Rr,Sr,Ur,Vr,zs,Es,lu,nu,pu,mu,ou,qu,uc,cj,Qi,Ri,Ti,un,Mc,Oc,qo,on,_m,he,Be,tf,Gf,Sf,cg,og,Ag,Ng,ch,oh,Ah,Mh,Yh,ii,ui,Ii,hj,Cm,Am,sn,yo,Bm,Ym,jn,hn,kv,lv,mv,nv,ov,pv,Ct,qv,rv,sv,tv,uv,vv,wv,xv,yv,zv,Av,Bv,Cv,Dv,Ev,Fv,Gv,Hv,Iv,Jv,Kv,Lv,Mv,Ov,gw,gx,gx];var Nb=[hx,Vo,Wo,Xo,Yo,Zo,_o,$o,ap,bp,cp,dp,ip,jp,kp,lp,mp,np,op,pp,qp,rp,sp,Hp,Jp,Up,Wp,dq,eq,fq,hq,jq,Cq,Dq,Eq,Gq,Iq,os,us,md,cv,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx];var Ob=[ix,En,Fn,rd,In,Bi,rj,yj,Dj,Wk,dm,Un,Wn,Xn,Tn,im,jm,om,Hn,tm,um,Ao,cq,su,uu,wu,Cu,Eu,yu,Au,Bq,tu,vu,xu,Du,Fu,zu,Bu,gr,hr,mr,rr,sr,xr,Cr,Dr,Ir,Nr,Or,Tr,Ht,It,Kt,hu,ju,iu,ku,yt,zt,Bt,Pt,Qt,St,Xt,Yt,_t,Ei,lj,tn,Vi,eo,ko,jx,kx,lx,Ak,zl,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix];var Pb=[mx,_r,gs,mx];var Qb=[nx,Bn,Gn,Kn,Em,Fm,Kj,Ll,Zk,Yk,Xk,_k,Qn,Vn,em,Zn,pm,No,So,xs,Cs,nt,pt,st,Xs,ct,ft,it,Nc,Il,$m,zk,hv,jv,Pk,Ok,Jk,ll,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx];var Rb=[ox,ns,ts,ox];var Sb=[px,pd,Zj,Yj,Xj,Rn,Cn,ys,Ds,px,px,px,px,px,px,px];var Tb=[qx,Gp,Mp,Tp,Yp,qx,qx,qx];var Ub=[rx,bs,is,ms,ss,rx,rx,rx];var Vb=[sx,qi,ei,Uh,Ih,wh,kh,_g,Jg,yg,mg,ag,Qf,Ef,Me,ze,Hc,sd,td,Yn,fm,km,_n,Jn,qm,vm,Ln,mt,ot,qt,at,dt,gt,dj,yc,Ac,so,Ss,to,yk,xk,Um,fn,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx];var Wb=[tx,Lo,Qo,Cp,Dp,Ip,Op,Rp,Sp,Vp,_p,tt,Gt,Jt,jt,xt,At,Ot,Rt,Wt,Zt,Qk,Mk,tx,tx,tx,tx,tx,tx,tx,tx,tx];var Xb=[ux,jw,iw,hw];var Yb=[vx,vc,kj,fp,Ls,Ms,Ns,hk,jk,ik,vx,vx,vx,vx,vx,vx];var Zb=[wx,xg,lg,$f,Pf,Df,Le,ye,Gc,rt,Zs,_s,$s,ht,Di,Ji,Ru,bv,Nk,uk,Kk,pw,ow,nw,mw,lw,kw,wx,wx,wx,wx,wx];var _b=[xx,Dm,Ci,Bo,ej,Qm,yx,Km,Wm,Ui,Hm,Do,fv,gv,iv,cn];var $b=[zx,Ax,bk,Bx,ck,Cx,ak,zx];var ac=[Dx,lq,Kq,Et,Ft,vt,wt,Mt,Nt,Ut,Vt,Dx,Dx,Dx,Dx,Dx];var bc=[Ex,Kp,Np,Xp,Zp,Ex,Ex,Ex];var cc=[Fx,ce,de,$d,ae,qd,Uc,Vc,ad,bd,hd,id,zd,Ad,Gd,Hd,Nd,Od,Ud,Vd,Te,Ue,_e,$e,ff,gf,nf,of,Mj,Nj,Pj,Sn,Dn,Mo,Ro,nc,Jm,Ic,Jc,Kc,Lc,Pc,Qc,Rc,Ne,Oe,Pe,Qe,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx];return{_jpegls_encode:gj,___cxa_can_catch:_j,_free:Ql,_jpegls_decode:fj,___cxa_is_pointer_type:$j,_i64Add:tw,_memmove:xw,_i64Subtract:rw,_memset:sw,_malloc:Pl,_memcpy:vw,_bitshift64Lshr:uw,_bitshift64Shl:ww,__GLOBAL__I_000101:Xl,__GLOBAL__sub_I_jpegls_cpp:Bc,__GLOBAL__sub_I_iostream_cpp:Yl,runPostSets:qw,_emscripten_replace_memory:Hb,stackAlloc:dc,stackSave:ec,stackRestore:fc,establishStackSpace:gc,setThrew:hc,setTempRet0:kc,getTempRet0:lc,dynCall_iiiiiiii:Hw,dynCall_viiiii:Iw,dynCall_iiiiiid:Jw,dynCall_vi:Kw,dynCall_vii:Lw,dynCall_iiiiiii:Mw,dynCall_ii:Nw,dynCall_iiiiiiiiiiii:Ow,dynCall_iiii:Pw,dynCall_viiiiiiiiiiiiiii:Qw,dynCall_viiiiii:Rw,dynCall_viiiiiii:Sw,dynCall_viiiiiiiiii:Tw,dynCall_iii:Uw,dynCall_iiiiii:Vw,dynCall_diii:Ww,dynCall_i:Xw,dynCall_iiiii:Yw,dynCall_viii:Zw,dynCall_v:_w,dynCall_iiiiiiiii:$w,dynCall_iiiiid:ax,dynCall_viiii:bx}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _jpegls_encode=Module["_jpegls_encode"]=asm["_jpegls_encode"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var _jpegls_decode=Module["_jpegls_decode"]=asm["_jpegls_decode"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memmove=Module["_memmove"]=asm["_memmove"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var __GLOBAL__sub_I_iostream_cpp=Module["__GLOBAL__sub_I_iostream_cpp"]=asm["__GLOBAL__sub_I_iostream_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var __GLOBAL__sub_I_jpegls_cpp=Module["__GLOBAL__sub_I_jpegls_cpp"]=asm["__GLOBAL__sub_I_jpegls_cpp"];var __GLOBAL__I_000101=Module["__GLOBAL__I_000101"]=asm["__GLOBAL__I_000101"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=asm["dynCall_iiiiiiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=asm["dynCall_iiiiiid"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=asm["dynCall_iiiiiiiiiiii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=asm["dynCall_viiiiiiiiiiiiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=asm["dynCall_viiiiiiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_diii=Module["dynCall_diii"]=asm["dynCall_diii"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_iiiiid=Module["dynCall_iiiiid"]=asm["dynCall_iiiiid"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",function(){process["exit"](status)});console.log(" ");setTimeout(function(){process["exit"](status)},500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach(function(decorator){output=decorator(output,what)})}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run();return Module};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=CharLS}}).call(this)}).call(this,require("_process"),"/lib")},{_process:33,fs:5,path:32}],2:[function(require,module,exports){var ColorSpace={Unkown:0,Grayscale:1,AdobeRGB:2,RGB:3,CYMK:4};var JpegImage=function jpegImage(){"use strict";var dctZigZag=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);var dctCos1=4017;var dctSin1=799;var dctCos3=3406;var dctSin3=2276;var dctCos6=1567;var dctSin6=3784;var dctSqrt2=5793;var dctSqrt1d2=2896;function constructor(){}function buildHuffmanTable(codeLengths,values){var k=0,code=[],i,j,length=16;while(length>0&&!codeLengths[length-1])length--;code.push({children:[],index:0});var p=code[0],q;for(i=0;i0){p=code.pop()}p.index++;code.push(p);while(code.length<=i){code.push(q={children:[],index:0});p.children[p.index]=q.children;p=q}k++}if(i+10){bitsCount--;return bitsData>>bitsCount&1}bitsData=data[offset++];if(bitsData==255){var nextByte=data[offset++];if(nextByte){throw"unexpected marker: "+(bitsData<<8|nextByte).toString(16)}}bitsCount=7;return bitsData>>>7}function decodeHuffman(tree){var node=tree;var bit;while((bit=readBit())!==null){node=node[bit];if(typeof node==="number")return node;if(typeof node!=="object")throw"invalid huffman sequence"}return null}function receive(length){var n=0;while(length>0){var bit=readBit();if(bit===null)return;n=n<<1|bit;length--}return n}function receiveAndExtend(length){var n=receive(length);if(n>=1<>4;if(s===0){if(r<15)break;k+=16;continue}k+=r;var z=dctZigZag[k];component.blockData[offset+z]=receiveAndExtend(s);k++}}function decodeDCFirst(component,offset){var t=decodeHuffman(component.huffmanTableDC);var diff=t===0?0:receiveAndExtend(t)<0){eobrun--;return}var k=spectralStart,e=spectralEnd;while(k<=e){var rs=decodeHuffman(component.huffmanTableAC);var s=rs&15,r=rs>>4;if(s===0){if(r<15){eobrun=receive(r)+(1<>4;if(s===0){if(r<15){eobrun=receive(r)+(1<=65488&&marker<=65495){offset+=2}else{break}}return offset-startOffset}function quantizeAndInverse(component,blockBufferOffset,p){var qt=component.quantizationTable;var v0,v1,v2,v3,v4,v5,v6,v7,t;var i;for(i=0;i<64;i++){p[i]=component.blockData[blockBufferOffset+i]*qt[i]}for(i=0;i<8;++i){var row=8*i;if(p[1+row]===0&&p[2+row]===0&&p[3+row]===0&&p[4+row]===0&&p[5+row]===0&&p[6+row]===0&&p[7+row]===0){t=dctSqrt2*p[0+row]+512>>10;p[0+row]=t;p[1+row]=t;p[2+row]=t;p[3+row]=t;p[4+row]=t;p[5+row]=t;p[6+row]=t;p[7+row]=t;continue}v0=dctSqrt2*p[0+row]+128>>8;v1=dctSqrt2*p[4+row]+128>>8;v2=p[2+row];v3=p[6+row];v4=dctSqrt1d2*(p[1+row]-p[7+row])+128>>8;v7=dctSqrt1d2*(p[1+row]+p[7+row])+128>>8;v5=p[3+row]<<4;v6=p[5+row]<<4;t=v0-v1+1>>1;v0=v0+v1+1>>1;v1=t;t=v2*dctSin6+v3*dctCos6+128>>8;v2=v2*dctCos6-v3*dctSin6+128>>8;v3=t;t=v4-v6+1>>1;v4=v4+v6+1>>1;v6=t;t=v7+v5+1>>1;v5=v7-v5+1>>1;v7=t;t=v0-v3+1>>1;v0=v0+v3+1>>1;v3=t;t=v1-v2+1>>1;v1=v1+v2+1>>1;v2=t;t=v4*dctSin3+v7*dctCos3+2048>>12;v4=v4*dctCos3-v7*dctSin3+2048>>12;v7=t;t=v5*dctSin1+v6*dctCos1+2048>>12;v5=v5*dctCos1-v6*dctSin1+2048>>12;v6=t;p[0+row]=v0+v7;p[7+row]=v0-v7;p[1+row]=v1+v6;p[6+row]=v1-v6;p[2+row]=v2+v5;p[5+row]=v2-v5;p[3+row]=v3+v4;p[4+row]=v3-v4}for(i=0;i<8;++i){var col=i;if(p[1*8+col]===0&&p[2*8+col]===0&&p[3*8+col]===0&&p[4*8+col]===0&&p[5*8+col]===0&&p[6*8+col]===0&&p[7*8+col]===0){t=dctSqrt2*p[i+0]+8192>>14;p[0*8+col]=t;p[1*8+col]=t;p[2*8+col]=t;p[3*8+col]=t;p[4*8+col]=t;p[5*8+col]=t;p[6*8+col]=t;p[7*8+col]=t;continue}v0=dctSqrt2*p[0*8+col]+2048>>12;v1=dctSqrt2*p[4*8+col]+2048>>12;v2=p[2*8+col];v3=p[6*8+col];v4=dctSqrt1d2*(p[1*8+col]-p[7*8+col])+2048>>12;v7=dctSqrt1d2*(p[1*8+col]+p[7*8+col])+2048>>12;v5=p[3*8+col];v6=p[5*8+col];t=v0-v1+1>>1;v0=v0+v1+1>>1;v1=t;t=v2*dctSin6+v3*dctCos6+2048>>12;v2=v2*dctCos6-v3*dctSin6+2048>>12;v3=t;t=v4-v6+1>>1;v4=v4+v6+1>>1;v6=t;t=v7+v5+1>>1;v5=v7-v5+1>>1;v7=t;t=v0-v3+1>>1;v0=v0+v3+1>>1;v3=t;t=v1-v2+1>>1;v1=v1+v2+1>>1;v2=t;t=v4*dctSin3+v7*dctCos3+2048>>12;v4=v4*dctCos3-v7*dctSin3+2048>>12;v7=t;t=v5*dctSin1+v6*dctCos1+2048>>12;v5=v5*dctCos1-v6*dctSin1+2048>>12;v6=t;p[0*8+col]=v0+v7;p[7*8+col]=v0-v7;p[1*8+col]=v1+v6;p[6*8+col]=v1-v6;p[2*8+col]=v2+v5;p[5*8+col]=v2-v5;p[3*8+col]=v3+v4;p[4*8+col]=v3-v4}for(i=0;i<64;++i){var index=blockBufferOffset+i;var q=p[i];q=q<=-2056/component.bitConversion?0:q>=2024/component.bitConversion?255/component.bitConversion:q+2056/component.bitConversion>>4;component.blockData[index]=q}}function buildComponentData(frame,component){var lines=[];var blocksPerLine=component.blocksPerLine;var blocksPerColumn=component.blocksPerColumn;var samplesPerLine=blocksPerLine<<3;var computationBuffer=new Int32Array(64);var i,j,ll=0;for(var blockRow=0;blockRow=255?255:a|0}constructor.prototype={load:function load(path){var handleData=function(data){this.parse(data);if(this.onload)this.onload()}.bind(this);if(path.indexOf("data:")>-1){var offset=path.indexOf("base64,")+7;var data=atob(path.substring(offset));var arr=new Uint8Array(data.length);for(var i=data.length-1;i>=0;i--){arr[i]=data.charCodeAt(i)}handleData(data)}else{var xhr=new XMLHttpRequest;xhr.open("GET",path,true);xhr.responseType="arraybuffer";xhr.onload=function(){var data=new Uint8Array(xhr.response);handleData(data)}.bind(this);xhr.send(null)}},parse:function parse(data){function readUint16(){var value=data[offset]<<8|data[offset+1];offset+=2;return value}function readDataBlock(){var length=readUint16();var array=data.subarray(offset,offset+length-2);offset+=array.length;return array}function prepareComponents(frame){var mcusPerLine=Math.ceil(frame.samplesPerLine/8/frame.maxH);var mcusPerColumn=Math.ceil(frame.scanLines/8/frame.maxV);for(var i=0;i>4===0){for(j=0;j<64;j++){var z=dctZigZag[j];tableData[z]=data[offset++]}}else if(quantizationTableSpec>>4===1){for(j=0;j<64;j++){var zz=dctZigZag[j];tableData[zz]=readUint16()}}else throw"DQT: invalid table spec";quantizationTables[quantizationTableSpec&15]=tableData}break;case 65472:case 65473:case 65474:if(frame){throw"Only single frame JPEGs supported"}readUint16();frame={};frame.extended=fileMarker===65473;frame.progressive=fileMarker===65474;frame.precision=data[offset++];frame.scanLines=readUint16();frame.samplesPerLine=readUint16();frame.components=[];frame.componentIds={};var componentsCount=data[offset++],componentId;var maxH=0,maxV=0;for(i=0;i>4;var v=data[offset+1]&15;if(maxH>4===0?huffmanTablesDC:huffmanTablesAC)[huffmanTableSpec&15]=buildHuffmanTable(codeLengths,huffmanValues)}break;case 65501:readUint16();resetInterval=readUint16();break;case 65498:var scanLength=readUint16();var selectorsCount=data[offset++];var components=[],component;for(i=0;i>4];component.huffmanTableAC=huffmanTablesAC[tableSpec&15];components.push(component)}var spectralStart=data[offset++];var spectralEnd=data[offset++];var successiveApproximation=data[offset++];var processed=decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successiveApproximation>>4,successiveApproximation&15);offset+=processed;break;default:if(data[offset-3]==255&&data[offset-2]>=192&&data[offset-2]<=254){offset-=3;break}throw"unknown JPEG marker "+fileMarker.toString(16)}fileMarker=readUint16()}this.width=frame.samplesPerLine;this.height=frame.scanLines;this.jfif=jfif;this.adobe=adobe;this.components=[];switch(frame.components.length){case 1:this.colorspace=ColorSpace.Grayscale;break;case 3:if(this.adobe)this.colorspace=ColorSpace.AdobeRGB;else this.colorspace=ColorSpace.RGB;break;case 4:this.colorspace=ColorSpace.CYMK;break;default:this.colorspace=ColorSpace.Unknown}for(var i=0;i>24&255,tbox>>16&255,tbox>>8&255,tbox&255);warn("Unsupported header type "+tbox+" ("+headerType+")");break}if(jumpDataLength){position+=dataLength}}},parseImageProperties:function JpxImage_parseImageProperties(stream){var newByte=stream.getByte();while(newByte>=0){var oldByte=newByte;newByte=stream.getByte();var code=oldByte<<8|newByte;if(code===65361){stream.skip(4);var Xsiz=stream.getInt32()>>>0;var Ysiz=stream.getInt32()>>>0;var XOsiz=stream.getInt32()>>>0;var YOsiz=stream.getInt32()>>>0;stream.skip(16);var Csiz=stream.getUint16();this.width=Xsiz-XOsiz;this.height=Ysiz-YOsiz;this.componentsCount=Csiz;this.bitsPerComponent=8;return}}throw new Error("JPX Error: No size marker found in JPX stream")},parseCodestream:function JpxImage_parseCodestream(data,start,end){var context={};try{var doNotRecover=false;var position=start;while(position+1>5;spqcds=[];while(j>3;spqcd.mu=0}else{spqcd.epsilon=data[j]>>3;spqcd.mu=(data[j]&7)<<8|data[j+1];j+=2}spqcds.push(spqcd)}qcd.SPqcds=spqcds;if(context.mainHeader){context.QCD=qcd}else{context.currentTile.QCD=qcd;context.currentTile.QCC=[]}break;case 65373:length=readUint16(data,position);var qcc={};j=position+2;var cqcc;if(context.SIZ.Csiz<257){cqcc=data[j++]}else{cqcc=readUint16(data,j);j+=2}sqcd=data[j++];switch(sqcd&31){case 0:spqcdSize=8;scalarExpounded=true;break;case 1:spqcdSize=16;scalarExpounded=false;break;case 2:spqcdSize=16;scalarExpounded=true;break;default:throw new Error("JPX Error: Invalid SQcd value "+sqcd)}qcc.noQuantization=spqcdSize===8;qcc.scalarExpounded=scalarExpounded;qcc.guardBits=sqcd>>5;spqcds=[];while(j>3;spqcd.mu=0}else{spqcd.epsilon=data[j]>>3;spqcd.mu=(data[j]&7)<<8|data[j+1];j+=2}spqcds.push(spqcd)}qcc.SPqcds=spqcds;if(context.mainHeader){context.QCC[cqcc]=qcc}else{context.currentTile.QCC[cqcc]=qcc}break;case 65362:length=readUint16(data,position);var cod={};j=position+2;var scod=data[j++];cod.entropyCoderWithCustomPrecincts=!!(scod&1);cod.sopMarkerUsed=!!(scod&2);cod.ephMarkerUsed=!!(scod&4);cod.progressionOrder=data[j++];cod.layersCount=readUint16(data,j);j+=2;cod.multipleComponentTransform=data[j++];cod.decompositionLevelsCount=data[j++];cod.xcb=(data[j++]&15)+2;cod.ycb=(data[j++]&15)+2;var blockStyle=data[j++];cod.selectiveArithmeticCodingBypass=!!(blockStyle&1);cod.resetContextProbabilities=!!(blockStyle&2);cod.terminationOnEachCodingPass=!!(blockStyle&4);cod.verticalyStripe=!!(blockStyle&8);cod.predictableTermination=!!(blockStyle&16);cod.segmentationSymbolUsed=!!(blockStyle&32);cod.reversibleTransformation=data[j++];if(cod.entropyCoderWithCustomPrecincts){var precinctsSizes=[];while(j>4})}cod.precinctsSizes=precinctsSizes}var unsupported=[];if(cod.selectiveArithmeticCodingBypass){unsupported.push("selectiveArithmeticCodingBypass")}if(cod.resetContextProbabilities){unsupported.push("resetContextProbabilities")}if(cod.terminationOnEachCodingPass){unsupported.push("terminationOnEachCodingPass")}if(cod.verticalyStripe){unsupported.push("verticalyStripe")}if(cod.predictableTermination){unsupported.push("predictableTermination")}if(unsupported.length>0){doNotRecover=true;throw new Error("JPX Error: Unsupported COD options ("+unsupported.join(", ")+")")}if(context.mainHeader){context.COD=cod}else{context.currentTile.COD=cod;context.currentTile.COC=[]}break;case 65424:length=readUint16(data,position);tile={};tile.index=readUint16(data,position+2);tile.length=readUint32(data,position+4);tile.dataEnd=tile.length+position-2;tile.partIndex=data[position+8];tile.partsCount=data[position+9];context.mainHeader=false;if(tile.partIndex===0){tile.COD=context.COD;tile.COC=context.COC.slice(0);tile.QCD=context.QCD;tile.QCC=context.QCC.slice(0)}context.currentTile=tile;break;case 65427:tile=context.currentTile;if(tile.partIndex===0){initializeTile(context,tile.index);buildPackets(context)}length=tile.dataEnd-position;parseTilePackets(context,data,position,length);break;case 65365:case 65367:case 65368:case 65380:length=readUint16(data,position);break;case 65363:throw new Error("JPX Error: Codestream code 0xFF53 (COC) is "+"not implemented");default:throw new Error("JPX Error: Unknown codestream code: "+code.toString(16))}position+=length}}catch(e){if(doNotRecover||this.failOnCorruptedImage){throw e}else{warn("Trying to recover from "+e.message)}}this.tiles=transformComponents(context);this.width=context.SIZ.Xsiz-context.SIZ.XOsiz;this.height=context.SIZ.Ysiz-context.SIZ.YOsiz;this.componentsCount=context.SIZ.Csiz}};function calculateComponentDimensions(component,siz){component.x0=Math.ceil(siz.XOsiz/component.XRsiz);component.x1=Math.ceil(siz.Xsiz/component.XRsiz);component.y0=Math.ceil(siz.YOsiz/component.YRsiz);component.y1=Math.ceil(siz.Ysiz/component.YRsiz);component.width=component.x1-component.x0;component.height=component.y1-component.y0}function calculateTileGrids(context,components){var siz=context.SIZ;var tile,tiles=[];var numXtiles=Math.ceil((siz.Xsiz-siz.XTOsiz)/siz.XTsiz);var numYtiles=Math.ceil((siz.Ysiz-siz.YTOsiz)/siz.YTsiz);for(var q=0;q0?Math.min(codOrCoc.xcb,result.PPx-1):Math.min(codOrCoc.xcb,result.PPx);result.ycb_=r>0?Math.min(codOrCoc.ycb,result.PPy-1):Math.min(codOrCoc.ycb,result.PPy);return result}function buildPrecincts(context,resolution,dimensions){var precinctWidth=1<resolution.trx0?Math.ceil(resolution.trx1/precinctWidth)-Math.floor(resolution.trx0/precinctWidth):0;var numprecinctshigh=resolution.try1>resolution.try0?Math.ceil(resolution.try1/precinctHeight)-Math.floor(resolution.try0/precinctHeight):0;var numprecincts=numprecinctswide*numprecinctshigh;resolution.precinctParameters={precinctWidth:precinctWidth,precinctHeight:precinctHeight,numprecinctswide:numprecinctswide,numprecinctshigh:numprecinctshigh,numprecincts:numprecincts,precinctWidthInSubband:precinctWidthInSubband,precinctHeightInSubband:precinctHeightInSubband}}function buildCodeblocks(context,subband,dimensions){var xcb_=dimensions.xcb_;var ycb_=dimensions.ycb_;var codeblockWidth=1<>xcb_;var cby0=subband.tby0>>ycb_;var cbx1=subband.tbx1+codeblockWidth-1>>xcb_;var cby1=subband.tby1+codeblockHeight-1>>ycb_;var precinctParameters=subband.resolution.precinctParameters;var codeblocks=[];var precincts=[];var i,j,codeblock,precinctNumber;for(j=cby0;jprecinct.cbxMax){precinct.cbxMax=i}if(jprecinct.cbyMax){precinct.cbyMax=j}}else{precincts[precinctNumber]=precinct={cbxMin:i,cbyMin:j,cbxMax:i,cbyMax:j}}codeblock.precinct=precinct}}subband.codeblockParameters={codeblockWidth:xcb_,codeblockHeight:ycb_,numcodeblockwide:cbx1-cbx0+1,numcodeblockhigh:cby1-cby0+1};subband.codeblocks=codeblocks;subband.precincts=precincts}function createPacket(resolution,precinctNumber,layerNumber){var precinctCodeblocks=[];var subbands=resolution.subbands;for(var i=0,ii=subbands.length;icomponent.codingStyleParameters.decompositionLevelsCount){continue}var resolution=component.resolutions[r];var numprecincts=resolution.precinctParameters.numprecincts;for(;kcomponent.codingStyleParameters.decompositionLevelsCount){continue}var resolution=component.resolutions[r];var numprecincts=resolution.precinctParameters.numprecincts;for(;kcomponent.codingStyleParameters.decompositionLevelsCount){continue}var resolution=component.resolutions[r];var numprecincts=resolution.precinctParameters.numprecincts;if(p>=numprecincts){continue}for(;l=0;--r){var resolution=component.resolutions[r];var widthCurrentResolution=scale*resolution.precinctParameters.precinctWidth;var heightCurrentResolution=scale*resolution.precinctParameters.precinctHeight;minWidthCurrentComponent=Math.min(minWidthCurrentComponent,widthCurrentResolution);minHeightCurrentComponent=Math.min(minHeightCurrentComponent,heightCurrentResolution);maxNumWideCurrentComponent=Math.max(maxNumWideCurrentComponent,resolution.precinctParameters.numprecinctswide);maxNumHighCurrentComponent=Math.max(maxNumHighCurrentComponent,resolution.precinctParameters.numprecinctshigh);sizePerResolution[r]={width:widthCurrentResolution,height:heightCurrentResolution};scale<<=1}minWidth=Math.min(minWidth,minWidthCurrentComponent);minHeight=Math.min(minHeight,minHeightCurrentComponent);maxNumWide=Math.max(maxNumWide,maxNumWideCurrentComponent);maxNumHigh=Math.max(maxNumHigh,maxNumHighCurrentComponent);sizePerComponent[c]={resolutions:sizePerResolution,minWidth:minWidthCurrentComponent,minHeight:minHeightCurrentComponent,maxNumWide:maxNumWideCurrentComponent,maxNumHigh:maxNumHighCurrentComponent}}return{components:sizePerComponent,minWidth:minWidth,minHeight:minHeight,maxNumWide:maxNumWide,maxNumHigh:maxNumHigh}}function buildPackets(context){var siz=context.SIZ;var tileIndex=context.currentTile.index;var tile=context.tiles[tileIndex];var componentsCount=siz.Csiz;for(var c=0;c=data.length){throw new Error("Unexpected EOF")}var b=data[offset+position];position++;if(skipNextBit){buffer=buffer<<7|b;bufferSize+=7;skipNextBit=false}else{buffer=buffer<<8|b;bufferSize+=8}if(b===255){skipNextBit=true}}bufferSize-=count;return buffer>>>bufferSize&(1<=data.length){return}if(inclusionTree.isAboveThreshold()){break}if(inclusionTree.isKnown()){inclusionTree.nextLevel();continue}if(readBits(1)){inclusionTree.setKnown();if(inclusionTree.isLeaf()){codeblock.included=true;codeblockIncluded=firstTimeInclusion=true;break}else{inclusionTree.nextLevel()}}else{inclusionTree.incrementValue()}}}if(!codeblockIncluded){continue}if(firstTimeInclusion){zeroBitPlanesTree=precinct.zeroBitPlanesTree;zeroBitPlanesTree.reset(codeblockColumn,codeblockRow);while(true){if(position>=data.length){return}if(readBits(1)){valueReady=!zeroBitPlanesTree.nextLevel();if(valueReady){break}}else{zeroBitPlanesTree.incrementValue()}}codeblock.zeroBitPlanes=zeroBitPlanesTree.value}var codingpasses=readCodingpasses();while(readBits(1)){codeblock.Lblock++}var codingpassesLog2=log2(codingpasses);var bits=(codingpasses<1<0){var packetItem=queue.shift();codeblock=packetItem.codeblock;if(codeblock["data"]===undefined){codeblock.data=[]}codeblock.data.push({data:data,start:offset+position,end:offset+position+packetItem.dataLength,codingpasses:packetItem.codingpasses});position+=packetItem.dataLength}}catch(e){return}}return position}function copyCoefficients(coefficients,levelWidth,levelHeight,subband,delta,mb,reversible,segmentationSymbolUsed){var x0=subband.tbx0;var y0=subband.tby0;var width=subband.tbx1-subband.tbx0;var codeblocks=subband.codeblocks;var right=subband.type.charAt(0)==="H"?1:0;var bottom=subband.type.charAt(1)==="H"?levelWidth:0;for(var i=0,ii=codeblocks.length;i=mb){coefficients[pos]=n}else{coefficients[pos]=n*(1<0?1-i:0)}else{mu=spqcds[b].mu;epsilon=spqcds[b].epsilon;b++}var subband=resolution.subbands[j];var gainLog2=SubbandsGainLog2[subband.type];var delta=reversible?1:Math.pow(2,precision+gainLog2-epsilon)*(1+mu/2048);var mb=guardBits+epsilon-1;copyCoefficients(coefficients,width,height,subband,delta,mb,reversible,segmentationSymbolUsed)}subbandCoefficients.push({width:width,height:height,items:coefficients})}var result=transform.calculate(subbandCoefficients,component.tcx0,component.tcy0);return{left:component.tcx0,top:component.tcy0,width:result.width,height:result.height,items:result.items}}function transformComponents(context){var siz=context.SIZ;var components=context.components;var componentsCount=siz.Csiz;var resultImages=[];for(var i=0,ii=context.tiles.length;i=max?255:r>>shift;out[pos++]=g<=0?0:g>=max?255:g>>shift;out[pos++]=b<=0?0:b>=max?255:b>>shift}}else{for(j=0;j>2);r=g+y2;b=g+y1;out[pos++]=r<=0?0:r>=max?255:r>>shift;out[pos++]=g<=0?0:g>=max?255:g>>shift;out[pos++]=b<=0?0:b>=max?255:b>>shift}}if(fourComponents){for(j=0,pos=3;j=maxK?255:k+offset>>shift}}}else{for(c=0;c=max?255:val+offset>>shift;pos+=componentsCount}}else{var isSigned=components[c].isSigned;var items=transformedTiles[c].items;if(isSigned){for(pos=c,j=0,jj=items.length;j>=1;j>>=1;currentLevel++}currentLevel--;level=this.levels[currentLevel];level.items[level.index]=value;this.currentLevel=currentLevel;delete this.value},incrementValue:function TagTree_incrementValue(){var level=this.levels[this.currentLevel];level.items[level.index]++},nextLevel:function TagTree_nextLevel(){var currentLevel=this.currentLevel;var level=this.levels[currentLevel];var value=level.items[level.index];currentLevel--;if(currentLevel<0){this.value=value;return false}this.currentLevel=currentLevel;level=this.levels[currentLevel];level.items[level.index]=value;return true}};return TagTree}();var InclusionTree=function InclusionTreeClosure(){function InclusionTree(width,height){var levelsLength=log2(Math.max(width,height))+1;this.levels=[];for(var i=0;i>=1;j>>=1;currentLevel++}this.currentLevel=this.levels.length-1;this.minValue=this.levels[this.currentLevel].items[0];return},incrementValue:function InclusionTree_incrementValue(){var level=this.levels[this.currentLevel];level.items[level.index]=level.items[level.index]+1;if(level.items[level.index]>this.minValue){this.minValue=level.items[level.index]}},nextLevel:function InclusionTree_nextLevel(){var currentLevel=this.currentLevel;currentLevel--;if(currentLevel<0){return false}else{this.currentLevel=currentLevel;var level=this.levels[currentLevel];if(level.items[level.index]this.minValue){this.minValue=level.items[level.index]}return true}},isLeaf:function InclusionTree_isLeaf(){return this.currentLevel===0},isAboveThreshold:function InclusionTree_isAboveThreshold(){var levelindex=this.currentLevel;var level=this.levels[levelindex];return level.items[level.index]>this.currentStopValue},isKnown:function InclusionTree_isKnown(){var levelindex=this.currentLevel;var level=this.levels[levelindex];return level.status[level.index]>0},setKnown:function InclusionTree_setKnown(){var levelindex=this.currentLevel;var level=this.levels[levelindex];level.status[level.index]=1;return}};return InclusionTree}();var BitModel=function BitModelClosure(){var UNIFORM_CONTEXT=17;var RUNLENGTH_CONTEXT=18;var LLAndLHContextsLabel=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]);var HLContextLabel=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]);var HHContextLabel=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);function BitModel(width,height,subband,zeroBitPlanes,mb){this.width=width;this.height=height;this.contextLabelTable=subband==="HH"?HHContextLabel:subband==="HL"?HLContextLabel:LLAndLHContextsLabel;var coefficientCount=width*height;this.neighborsSignificance=new Uint8Array(coefficientCount);this.coefficentsSign=new Uint8Array(coefficientCount);this.coefficentsMagnitude=mb>14?new Uint32Array(coefficientCount):mb>6?new Uint16Array(coefficientCount):new Uint8Array(coefficientCount);this.processingFlags=new Uint8Array(coefficientCount);var bitsDecoded=new Uint8Array(coefficientCount);if(zeroBitPlanes!==0){for(var i=0;i0;var right=column+10){i=index-width;if(left){neighborsSignificance[i-1]+=16}if(right){neighborsSignificance[i+1]+=16}neighborsSignificance[i]+=4}if(row+1=height){break}processingFlags[index]&=processedInverseMask;if(coefficentsMagnitude[index]||!neighborsSignificance[index]){continue}var contextLabel=labels[neighborsSignificance[index]];var decision=decoder.readBit(contexts,contextLabel);if(decision){var sign=this.decodeSignBit(i,j,index);coefficentsSign[index]=sign;coefficentsMagnitude[index]=1;this.setNeighborsSignificance(i,j,index);processingFlags[index]|=firstMagnitudeBitMask}bitsDecoded[index]++;processingFlags[index]|=processedMask}}}},decodeSignBit:function BitModel_decodeSignBit(row,column,index){var width=this.width,height=this.height;var coefficentsMagnitude=this.coefficentsMagnitude;var coefficentsSign=this.coefficentsSign;var contribution,sign0,sign1,significance1;var contextLabel,decoded;significance1=column>0&&coefficentsMagnitude[index-1]!==0;if(column+10&&coefficentsMagnitude[index-width]!==0;if(row+1=0){contextLabel=9+contribution;decoded=this.decoder.readBit(this.contexts,contextLabel)}else{contextLabel=9-contribution;decoded=this.decoder.readBit(this.contexts,contextLabel)^1}return decoded},runMagnitudeRefinementPass:function BitModel_runMagnitudeRefinementPass(){var decoder=this.decoder;var width=this.width,height=this.height;var coefficentsMagnitude=this.coefficentsMagnitude;var neighborsSignificance=this.neighborsSignificance;var contexts=this.contexts;var bitsDecoded=this.bitsDecoded;var processingFlags=this.processingFlags;var processedMask=1;var firstMagnitudeBitMask=2;var length=width*height;var width4=width*4;for(var index0=0,indexNext;index0>1;offset=offset|0;var j,n,current,next;var alpha=-1.586134342059924;var beta=-.052980118572961;var gamma=.882911075530934;var delta=.443506852043971;var K=1.230174104914001;var K_=1/K;j=offset-3;for(n=len+4;n--;j+=2){x[j]*=K_}j=offset-2;current=delta*x[j-1];for(n=len+3;n--;j+=2){next=delta*x[j+1];x[j]=K*x[j]-current-next;if(n--){j+=2;current=delta*x[j+1];x[j]=K*x[j]-current-next}else{break}}j=offset-1;current=gamma*x[j-1];for(n=len+2;n--;j+=2){next=gamma*x[j+1];x[j]-=current+next;if(n--){j+=2;current=gamma*x[j+1];x[j]-=current+next}else{break}}j=offset;current=beta*x[j-1];for(n=len+1;n--;j+=2){next=beta*x[j+1];x[j]-=current+next;if(n--){j+=2;current=beta*x[j+1];x[j]-=current+next}else{break}}if(len!==0){j=offset+1;current=alpha*x[j-1];for(n=len;n--;j+=2){next=alpha*x[j+1];x[j]-=current+next;if(n--){j+=2;current=alpha*x[j+1];x[j]-=current+next}else{break}}}};return IrreversibleTransform}();var ReversibleTransform=function ReversibleTransformClosure(){function ReversibleTransform(){Transform.call(this)}ReversibleTransform.prototype=Object.create(Transform.prototype);ReversibleTransform.prototype.filter=function reversibleTransformFilter(x,offset,length){var len=length>>1;offset=offset|0;var j,n;for(j=offset,n=len+1;n--;j+=2){x[j]-=x[j-1]+x[j+1]+2>>2}for(j=offset+1,n=len;n--;j+=2){x[j]+=x[j-1]+x[j+1]>>1}};return ReversibleTransform}();return JpxImage}();"use strict";var ArithmeticDecoder=function ArithmeticDecoderClosure(){var QeTable=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];function ArithmeticDecoder(data,start,end){this.data=data;this.bp=start;this.dataEnd=end;this.chigh=data[start];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}ArithmeticDecoder.prototype={byteIn:function ArithmeticDecoder_byteIn(){var data=this.data;var bp=this.bp;if(data[bp]===255){var b1=data[bp+1];if(b1>143){this.clow+=65280;this.ct=8}else{bp++;this.clow+=data[bp]<<9;this.ct=7;this.bp=bp}}else{bp++;this.clow+=bp65535){this.chigh+=this.clow>>16;this.clow&=65535}},readBit:function ArithmeticDecoder_readBit(contexts,pos){var cx_index=contexts[pos]>>1,cx_mps=contexts[pos]&1;var qeTableIcx=QeTable[cx_index];var qeIcx=qeTableIcx.qe;var d;var a=this.a-qeIcx;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while((a&32768)===0);this.a=a;contexts[pos]=cx_index<<1|cx_mps;return d}};return ArithmeticDecoder}();"use strict";var globalScope=typeof window==="undefined"?this:window;var isWorker=typeof window==="undefined";var FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];var TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};var ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};var AnnotationType={WIDGET:1,TEXT:2,LINK:3};var StreamType={UNKNOWN:0,FLATE:1,LZW:2,DCT:3,JPX:4,JBIG:5,A85:6,AHX:7,CCF:8,RL:9};var FontType={UNKNOWN:0,TYPE1:1,TYPE1C:2,CIDFONTTYPE0:3,CIDFONTTYPE0C:4,TRUETYPE:5,CIDFONTTYPE2:6,TYPE3:7,OPENTYPE:8,TYPE0:9,MMTYPE1:10};if(!globalScope.PDFJS){globalScope.PDFJS={}}var PDFJS=PDFJS||{};PDFJS.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var OPS=PDFJS.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91};function info(msg){if(PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos){console.log("Info: "+msg)}}function warn(msg){if(PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings){console.log("Warning: "+msg)}}function error(msg){if(arguments.length>1){var logArguments=["Error:"];logArguments.push.apply(logArguments,arguments);console.log.apply(console,logArguments);msg=[].join.call(arguments," ")}else{console.log("Error: "+msg)}console.log(backtrace());UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown);throw new Error(msg)}function backtrace(){try{throw new Error}catch(e){return e.stack?e.stack.split("\n").slice(2).join("\n"):""}}function assert(cond,msg){if(!cond){error(msg)}}var UNSUPPORTED_FEATURES=PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"};var UnsupportedManager=PDFJS.UnsupportedManager=function UnsupportedManagerClosure(){var listeners=[];return{listen:function(cb){listeners.push(cb)},notify:function(featureId){warn('Unsupported feature "'+featureId+'"');for(var i=0,ii=listeners.length;i=0?i:pathLength;i=baseUrl.lastIndexOf("?",pathLength);pathLength=i>=0?i:pathLength;var prefixLength=baseUrl.lastIndexOf("/",pathLength);return baseUrl.substring(0,prefixLength+1)+url}}function isValidUrl(url,allowRelative){if(!url){return false}var protocol=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url);if(!protocol){return allowRelative}protocol=protocol[0].toLowerCase();switch(protocol){case"http":case"https":case"ftp":case"mailto":case"tel":return true;default:return false}}PDFJS.isValidUrl=isValidUrl;function shadow(obj,prop,value){Object.defineProperty(obj,prop,{value:value,enumerable:true,configurable:true,writable:false});return value}PDFJS.shadow=shadow;var PasswordResponses=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};var PasswordException=function PasswordExceptionClosure(){function PasswordException(msg,code){this.name="PasswordException";this.message=msg;this.code=code}PasswordException.prototype=new Error;PasswordException.constructor=PasswordException;return PasswordException}();PDFJS.PasswordException=PasswordException;var UnknownErrorException=function UnknownErrorExceptionClosure(){function UnknownErrorException(msg,details){this.name="UnknownErrorException";this.message=msg;this.details=details}UnknownErrorException.prototype=new Error;UnknownErrorException.constructor=UnknownErrorException;return UnknownErrorException}();PDFJS.UnknownErrorException=UnknownErrorException;var InvalidPDFException=function InvalidPDFExceptionClosure(){function InvalidPDFException(msg){this.name="InvalidPDFException";this.message=msg}InvalidPDFException.prototype=new Error;InvalidPDFException.constructor=InvalidPDFException;return InvalidPDFException}();PDFJS.InvalidPDFException=InvalidPDFException;var MissingPDFException=function MissingPDFExceptionClosure(){function MissingPDFException(msg){this.name="MissingPDFException";this.message=msg}MissingPDFException.prototype=new Error;MissingPDFException.constructor=MissingPDFException;return MissingPDFException}();PDFJS.MissingPDFException=MissingPDFException;var UnexpectedResponseException=function UnexpectedResponseExceptionClosure(){function UnexpectedResponseException(msg,status){this.name="UnexpectedResponseException";this.message=msg;this.status=status}UnexpectedResponseException.prototype=new Error;UnexpectedResponseException.constructor=UnexpectedResponseException;return UnexpectedResponseException}();PDFJS.UnexpectedResponseException=UnexpectedResponseException;var NotImplementedException=function NotImplementedExceptionClosure(){function NotImplementedException(msg){this.message=msg}NotImplementedException.prototype=new Error;NotImplementedException.prototype.name="NotImplementedException";NotImplementedException.constructor=NotImplementedException;return NotImplementedException}();var MissingDataException=function MissingDataExceptionClosure(){function MissingDataException(begin,end){this.begin=begin;this.end=end;this.message="Missing data ["+begin+", "+end+")"}MissingDataException.prototype=new Error;MissingDataException.prototype.name="MissingDataException";MissingDataException.constructor=MissingDataException;return MissingDataException}();var XRefParseException=function XRefParseExceptionClosure(){function XRefParseException(msg){this.message=msg}XRefParseException.prototype=new Error;XRefParseException.prototype.name="XRefParseException";XRefParseException.constructor=XRefParseException;return XRefParseException}();function bytesToString(bytes){assert(bytes!==null&&typeof bytes==="object"&&bytes.length!==undefined,"Invalid argument for bytesToString");var length=bytes.length;var MAX_ARGUMENT_COUNT=8192;if(length>24&255,value>>16&255,value>>8&255,value&255)}function log2(x){var n=1,i=0;while(x>n){n<<=1;i++}return i}function readInt8(data,start){return data[start]<<24>>24}function readUint16(data,offset){return data[offset]<<8|data[offset+1]}function readUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0}function isLittleEndian(){var buffer8=new Uint8Array(2);buffer8[0]=1;var buffer16=new Uint16Array(buffer8.buffer);return buffer16[0]===1}Object.defineProperty(PDFJS,"isLittleEndian",{configurable:true,get:function PDFJS_isLittleEndian(){return shadow(PDFJS,"isLittleEndian",isLittleEndian())}});function hasCanvasTypedArrays(){var canvas=document.createElement("canvas");canvas.width=canvas.height=1;var ctx=canvas.getContext("2d");var imageData=ctx.createImageData(1,1);return typeof imageData.data.buffer!=="undefined"}Object.defineProperty(PDFJS,"hasCanvasTypedArrays",{configurable:true,get:function PDFJS_hasCanvasTypedArrays(){return shadow(PDFJS,"hasCanvasTypedArrays",hasCanvasTypedArrays())}});var Uint32ArrayView=function Uint32ArrayViewClosure(){function Uint32ArrayView(buffer,length){this.buffer=buffer;this.byteLength=buffer.length;this.length=length===undefined?this.byteLength>>2:length;ensureUint32ArrayViewProps(this.length)}Uint32ArrayView.prototype=Object.create(null);var uint32ArrayViewSetters=0;function createUint32ArrayProp(index){return{get:function(){var buffer=this.buffer,offset=index<<2;return(buffer[offset]|buffer[offset+1]<<8|buffer[offset+2]<<16|buffer[offset+3]<<24)>>>0},set:function(value){var buffer=this.buffer,offset=index<<2;buffer[offset]=value&255;buffer[offset+1]=value>>8&255;buffer[offset+2]=value>>16&255;buffer[offset+3]=value>>>24&255}}}function ensureUint32ArrayViewProps(length){while(uint32ArrayViewSettersrect[2]){r[0]=rect[2];r[2]=rect[0]}if(rect[1]>rect[3]){r[1]=rect[3];r[3]=rect[1]}return r};Util.intersect=function Util_intersect(rect1,rect2){function compare(a,b){return a-b}var orderedX=[rect1[0],rect1[2],rect2[0],rect2[2]].sort(compare),orderedY=[rect1[1],rect1[3],rect2[1],rect2[3]].sort(compare),result=[];rect1=Util.normalizeRect(rect1);rect2=Util.normalizeRect(rect2);if(orderedX[0]===rect1[0]&&orderedX[1]===rect2[0]||orderedX[0]===rect2[0]&&orderedX[1]===rect1[0]){result[0]=orderedX[1];result[2]=orderedX[2]}else{return false}if(orderedY[0]===rect1[1]&&orderedY[1]===rect2[1]||orderedY[0]===rect2[1]&&orderedY[1]===rect1[1]){result[1]=orderedY[1];result[3]=orderedY[2]}else{return false}return result};Util.sign=function Util_sign(num){return num<0?-1:1};Util.appendToArray=function Util_appendToArray(arr1,arr2){Array.prototype.push.apply(arr1,arr2)};Util.prependToArray=function Util_prependToArray(arr1,arr2){Array.prototype.unshift.apply(arr1,arr2)};Util.extendObj=function extendObj(obj1,obj2){for(var key in obj2){obj1[key]=obj2[key]}};Util.getInheritableProperty=function Util_getInheritableProperty(dict,name){while(dict&&!dict.has(name)){dict=dict.get("Parent")}if(!dict){return null}return dict.get(name)};Util.inherit=function Util_inherit(sub,base,prototype){sub.prototype=Object.create(base.prototype);sub.prototype.constructor=sub;for(var prop in prototype){sub.prototype[prop]=prototype[prop]}};Util.loadScript=function Util_loadScript(src,callback){var script=document.createElement("script");var loaded=false;script.setAttribute("src",src);if(callback){script.onload=function(){if(!loaded){callback()}loaded=true}}document.getElementsByTagName("head")[0].appendChild(script)};return Util}();var PageViewport=PDFJS.PageViewport=function PageViewportClosure(){function PageViewport(viewBox,scale,rotation,offsetX,offsetY,dontFlip){this.viewBox=viewBox;this.scale=scale;this.rotation=rotation;this.offsetX=offsetX;this.offsetY=offsetY;var centerX=(viewBox[2]+viewBox[0])/2;var centerY=(viewBox[3]+viewBox[1])/2;var rotateA,rotateB,rotateC,rotateD;rotation=rotation%360;rotation=rotation<0?rotation+360:rotation;switch(rotation){case 180:rotateA=-1;rotateB=0;rotateC=0;rotateD=1;break;case 90:rotateA=0;rotateB=1;rotateC=1;rotateD=0;break;case 270:rotateA=0;rotateB=-1;rotateC=-1;rotateD=0;break;default:rotateA=1;rotateB=0;rotateC=0;rotateD=-1;break}if(dontFlip){rotateC=-rotateC;rotateD=-rotateD}var offsetCanvasX,offsetCanvasY;var width,height;if(rotateA===0){offsetCanvasX=Math.abs(centerY-viewBox[1])*scale+offsetX;offsetCanvasY=Math.abs(centerX-viewBox[0])*scale+offsetY;width=Math.abs(viewBox[3]-viewBox[1])*scale;height=Math.abs(viewBox[2]-viewBox[0])*scale}else{offsetCanvasX=Math.abs(centerX-viewBox[0])*scale+offsetX;offsetCanvasY=Math.abs(centerY-viewBox[1])*scale+offsetY;width=Math.abs(viewBox[2]-viewBox[0])*scale;height=Math.abs(viewBox[3]-viewBox[1])*scale}this.transform=[rotateA*scale,rotateB*scale,rotateC*scale,rotateD*scale,offsetCanvasX-rotateA*scale*centerX-rotateC*scale*centerY,offsetCanvasY-rotateB*scale*centerX-rotateD*scale*centerY];this.width=width;this.height=height;this.fontScale=scale}PageViewport.prototype={clone:function PageViewPort_clone(args){args=args||{};var scale="scale"in args?args.scale:this.scale;var rotation="rotation"in args?args.rotation:this.rotation;return new PageViewport(this.viewBox.slice(),scale,rotation,this.offsetX,this.offsetY,args.dontFlip)},convertToViewportPoint:function PageViewport_convertToViewportPoint(x,y){return Util.applyTransform([x,y],this.transform)},convertToViewportRectangle:function PageViewport_convertToViewportRectangle(rect){var tl=Util.applyTransform([rect[0],rect[1]],this.transform);var br=Util.applyTransform([rect[2],rect[3]],this.transform);return[tl[0],tl[1],br[0],br[1]]},convertToPdfPoint:function PageViewport_convertToPdfPoint(x,y){return Util.applyInverseTransform([x,y],this.transform)}};return PageViewport}();var PDFStringTranslateTable=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function stringToPDFString(str){var i,n=str.length,strBuf=[];if(str[0]==="þ"&&str[1]==="ÿ"){for(i=2;i0){var handler=this.handlers.shift();var nextStatus=handler.thisPromise._status;var nextValue=handler.thisPromise._value;try{if(nextStatus===STATUS_RESOLVED){if(typeof handler.onResolve==="function"){nextValue=handler.onResolve(nextValue)}}else if(typeof handler.onReject==="function"){nextValue=handler.onReject(nextValue);nextStatus=STATUS_RESOLVED;if(handler.thisPromise._unhandledRejection){this.removeUnhandeledRejection(handler.thisPromise)}}}catch(ex){nextStatus=STATUS_REJECTED;nextValue=ex}handler.nextPromise._updateStatus(nextStatus,nextValue);if(Date.now()>=timeoutAt){break}}if(this.handlers.length>0){setTimeout(this.runHandlers.bind(this),0);return}this.running=false},addUnhandledRejection:function addUnhandledRejection(promise){this.unhandledRejections.push({promise:promise,time:Date.now()});this.scheduleRejectionCheck()},removeUnhandeledRejection:function removeUnhandeledRejection(promise){promise._unhandledRejection=false;for(var i=0;iREJECTION_TIMEOUT){var unhandled=this.unhandledRejections[i].promise._value;var msg="Unhandled rejection: "+unhandled;if(unhandled.stack){msg+="\n"+unhandled.stack}warn(msg);this.unhandledRejections.splice(i);i--}}if(this.unhandledRejections.length){this.scheduleRejectionCheck()}}.bind(this),REJECTION_TIMEOUT)}};function Promise(resolver){this._status=STATUS_PENDING;this._handlers=[];try{resolver.call(this,this._resolve.bind(this),this._reject.bind(this))}catch(e){this._reject(e)}}Promise.all=function Promise_all(promises){var resolveAll,rejectAll;var deferred=new Promise(function(resolve,reject){resolveAll=resolve;rejectAll=reject});var unresolved=promises.length;var results=[];if(unresolved===0){resolveAll(results);return deferred}function reject(reason){if(deferred._status===STATUS_REJECTED){return}results=[];rejectAll(reason)}for(var i=0,ii=promises.length;ilongest){longest=name.length}}for(i=0,ii=times.length;i>2,d2=(b1&3)<<4|b2>>4;var d3=i+1>6:64;var d4=i+2>4!==4092||current===65476){switch(current){case 65476:this.huffTable.read(this.stream,this.HuffTab);break;case 65484:throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)");case 65499:this.quantTable.read(this.stream,jpeg.lossless.Decoder.TABLE);break;case 65501:this.restartInterval=this.readNumber();break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:this.readApp();break;case 65534:this.readComment();break;default:if(current>>8!==255){throw new Error("ERROR: format throw new IOException! (decode)")}}current=this.stream.get16()}if(current<65472||current>65479){throw new Error("ERROR: could not handle arithmetic code!")}this.frame.read(this.stream);current=this.stream.get16();do{while(current!==65498){switch(current){case 65476:this.huffTable.read(this.stream,this.HuffTab);break;case 65484:throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)");case 65499:this.quantTable.read(this.stream,jpeg.lossless.Decoder.TABLE);break;case 65501:this.restartInterval=this.readNumber();break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:this.readApp();break;case 65534:this.readComment();break;default:if(current>>8!==255){throw new Error("ERROR: format throw new IOException! (Parser.decode)")}}current=this.stream.get16()}this.precision=this.frame.precision;this.components=this.frame.components;if(!this.numBytes){this.numBytes=parseInt(Math.ceil(this.precision/8))}if(this.numBytes==1){this.mask=255}else{this.mask=65535}this.scan.read(this.stream);this.numComp=this.scan.numComp;this.selection=this.scan.selection;if(this.numBytes===1){if(this.numComp===3){this.getter=this.getValueRGB;this.setter=this.setValueRGB;this.output=this.outputRGB}else{this.getter=this.getValue8;this.setter=this.setValue8;this.output=this.outputSingle}}else{this.getter=this.getValue16;this.setter=this.setValue16;this.output=this.outputSingle}switch(this.selection){case 2:this.selector=this.select2;break;case 3:this.selector=this.select3;break;case 4:this.selector=this.select4;break;case 5:this.selector=this.select5;break;case 6:this.selector=this.select6;break;case 7:this.selector=this.select7;break;default:this.selector=this.select1;break}this.scanComps=this.scan.components;this.quantTables=this.quantTable.quantTables;for(i=0;i=jpeg.lossless.Decoder.RESTART_MARKER_BEGIN&¤t<=jpeg.lossless.Decoder.RESTART_MARKER_END)){break}}if(current===65500&&scanNum===1){this.readNumber();current=this.stream.get16()}}while(current!==65497&&(this.xLoc>1)};jpeg.lossless.Decoder.prototype.select6=function(compOffset){return this.getPreviousY(compOffset)+(this.getPreviousX(compOffset)-this.getPreviousXY(compOffset)>>1)};jpeg.lossless.Decoder.prototype.select7=function(compOffset){return(this.getPreviousX(compOffset)+this.getPreviousY(compOffset))/2};jpeg.lossless.Decoder.prototype.decodeRGB=function(prev,temp,index){var value,actab,dctab,qtab,ctrC,i,k,j;prev[0]=this.selector(0);prev[1]=this.selector(1);prev[2]=this.selector(2);for(ctrC=0;ctrC=65280){return value}prev[ctrC]=this.IDCT_Source[0]=prev[ctrC]+this.getn(index,value,temp,index);this.IDCT_Source[0]*=qtab[0];for(j=1;j<64;j+=1){value=this.getHuffmanValue(actab,temp,index);if(value>=65280){return value}j+=value>>4;if((value&15)===0){if(value>>4===0){break}}else{this.IDCT_Source[jpeg.lossless.Decoder.IDCT_P[j]]=this.getn(index,value&15,temp,index)*qtab[j]}}}}return 0};jpeg.lossless.Decoder.prototype.decodeSingle=function(prev,temp,index){var value,i,n,nRestart;if(this.restarting){this.restarting=false;prev[0]=1<=65280){return value}n=this.getn(prev,value,temp,index);nRestart=n>>8;if(nRestart>=jpeg.lossless.Decoder.RESTART_MARKER_BEGIN&&nRestart<=jpeg.lossless.Decoder.RESTART_MARKER_END){return nRestart}prev[0]+=n}return 0};jpeg.lossless.Decoder.prototype.getHuffmanValue=function(table,temp,index){var code,input,mask;mask=65535;if(index[0]<8){temp[0]<<=8;input=this.stream.get8();if(input===255){this.marker=this.stream.get8();if(this.marker!==0){this.markerIndex=9}}temp[0]|=input}else{index[0]-=8}code=table[temp[0]>>index[0]];if((code&jpeg.lossless.Decoder.MSB)!==0){if(this.markerIndex!==0){this.markerIndex=0;return 65280|this.marker}temp[0]&=mask>>16-index[0];temp[0]<<=8;input=this.stream.get8();if(input===255){this.marker=this.stream.get8();if(this.marker!==0){this.markerIndex=9}}temp[0]|=input;code=table[(code&255)*256+(temp[0]>>index[0])];index[0]+=8}index[0]+=8-(code>>8);if(index[0]<0){throw new Error("index="+index[0]+" temp="+temp[0]+" code="+code+" in HuffmanValue()")}if(index[0]>16-index[0];return code&255};jpeg.lossless.Decoder.prototype.getn=function(PRED,n,temp,index){var result,one,n_one,mask,input;one=1;n_one=-1;mask=65535;if(n===0){return 0}if(n===16){if(PRED[0]>=0){return-32768}else{return 32768}}index[0]-=n;if(index[0]>=0){if(index[0]>index[0];temp[0]&=mask>>16-index[0]}else{temp[0]<<=8;input=this.stream.get8();if(input===255){this.marker=this.stream.get8();if(this.marker!==0){this.markerIndex=9}}temp[0]|=input;index[0]+=8;if(index[0]<0){if(this.markerIndex!==0){this.markerIndex=0;return(65280|this.marker)<<8}temp[0]<<=8;input=this.stream.get8();if(input===255){this.marker=this.stream.get8();if(this.marker!==0){this.markerIndex=9}}temp[0]|=input;index[0]+=8}if(index[0]<0){throw new Error("index="+index[0]+" in getn()")}if(index[0]>index[0];temp[0]&=mask>>16-index[0]}if(result0){return this.getter(this.yLoc*this.xDim+this.xLoc-1,compOffset)}else if(this.yLoc>0){return this.getPreviousY(compOffset)}else{return 1<0&&this.yLoc>0){return this.getter((this.yLoc-1)*this.xDim+this.xLoc-1,compOffset)}else{return this.getPreviousY(compOffset)}};jpeg.lossless.Decoder.prototype.getPreviousY=function(compOffset){if(this.yLoc>0){return this.getter((this.yLoc-1)*this.xDim+this.xLoc,compOffset)}else{return this.getPreviousX(compOffset)}};jpeg.lossless.Decoder.prototype.isLastPixel=function(){return this.xLoc===this.xDim-1&&this.yLoc===this.yDim-1};jpeg.lossless.Decoder.prototype.outputSingle=function(PRED){if(this.xLoc=this.xDim){this.yLoc+=1;this.xLoc=0}}};jpeg.lossless.Decoder.prototype.outputRGB=function(PRED){var offset=this.yLoc*this.xDim+this.xLoc;if(this.xLoc=this.xDim){this.yLoc+=1;this.xLoc=0}}};jpeg.lossless.Decoder.prototype.setValue8=function(index,val){this.outputData[index]=val};jpeg.lossless.Decoder.prototype.getValue8=function(index){return this.outputData[index]};var littleEndian=function(){var buffer=new ArrayBuffer(2);new DataView(buffer).setInt16(0,256,true);return new Int16Array(buffer)[0]===256}();if(littleEndian){jpeg.lossless.Decoder.prototype.setValue16=jpeg.lossless.Decoder.prototype.setValue8;jpeg.lossless.Decoder.prototype.getValue16=jpeg.lossless.Decoder.prototype.getValue8}else{jpeg.lossless.Decoder.prototype.setValue16=function(index,val){this.outputData[index]=(val&255)<<8|val>>8&255};jpeg.lossless.Decoder.prototype.getValue16=function(index){var val=this.outputData[index];return(val&255)<<8|val>>8&255}}jpeg.lossless.Decoder.prototype.setValueRGB=function(index,val,compOffset){this.outputData[index*3+compOffset]=val};jpeg.lossless.Decoder.prototype.getValueRGB=function(index,compOffset){return this.outputData[index*3+compOffset]};jpeg.lossless.Decoder.prototype.readApp=function(){var count=0,length=this.stream.get16();count+=2;while(countlength){throw new Error("ERROR: frame format error")}c=data.get8();count+=1;if(count>=length){throw new Error("ERROR: frame format error [c>=Lf]")}temp=data.get8();count+=1;if(!this.components[c]){this.components[c]=new jpeg.lossless.ComponentSpec}this.components[c].hSamp=temp>>4;this.components[c].vSamp=temp&15;this.components[c].quantTableSel=data.get8();count+=1}if(count!==length){throw new Error("ERROR: frame format error [Lf!=count]")}return 1};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.FrameHeader}},{"./component-spec.js":6,"./data-stream.js":7}],10:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.DataStream=jpeg.lossless.DataStream||(typeof require!=="undefined"?require("./data-stream.js"):null);jpeg.lossless.Utils=jpeg.lossless.Utils||(typeof require!=="undefined"?require("./utils.js"):null);jpeg.lossless.HuffmanTable=jpeg.lossless.HuffmanTable||function(){this.l=jpeg.lossless.Utils.createArray(4,2,16);this.th=[];this.v=jpeg.lossless.Utils.createArray(4,2,16,200);this.tc=jpeg.lossless.Utils.createArray(4,2);this.tc[0][0]=0;this.tc[1][0]=0;this.tc[2][0]=0;this.tc[3][0]=0;this.tc[0][1]=0;this.tc[1][1]=0;this.tc[2][1]=0;this.tc[3][1]=0;this.th[0]=0;this.th[1]=0;this.th[2]=0;this.th[3]=0};jpeg.lossless.HuffmanTable.MSB=2147483648;jpeg.lossless.HuffmanTable.prototype.read=function(data,HuffTab){var count=0,length,temp,t,c,i,j;length=data.get16();count+=2;while(count3){throw new Error("ERROR: Huffman table ID > 3")}c=temp>>4;if(c>2){throw new Error("ERROR: Huffman table [Table class > 2 ]")}this.th[t]=1;this.tc[t][c]=1;for(i=0;i<16;i+=1){this.l[t][c][i]=data.get8();count+=1}for(i=0;i<16;i+=1){for(j=0;jlength){throw new Error("ERROR: Huffman table format error [count>Lh]")}this.v[t][c][i][j]=data.get8();count+=1}}}if(count!==length){throw new Error("ERROR: Huffman table format error [count!=Lf]")}for(i=0;i<4;i+=1){for(j=0;j<2;j+=1){if(this.tc[i][j]!==0){this.buildHuffTable(HuffTab[i][j],this.l[i][j],this.v[i][j])}}}return 1};jpeg.lossless.HuffmanTable.prototype.buildHuffTable=function(tab,L,V){var currentTable,temp,k,i,j,n;temp=256;k=0;for(i=0;i<8;i+=1){for(j=0;j>i+1;n+=1){tab[k]=V[i][j]|i+1<<8;k+=1}}}for(i=1;k<256;i+=1,k+=1){tab[k]=i|jpeg.lossless.HuffmanTable.MSB}currentTable=1;k=0;for(i=8;i<16;i+=1){for(j=0;j>i-7;n+=1){tab[currentTable*256+k]=V[i][j]|i+1<<8;k+=1}if(k>=256){if(k>256){throw new Error("ERROR: Huffman table error(1)!")}k=0;currentTable+=1}}}};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.HuffmanTable}},{"./data-stream.js":7,"./utils.js":15}],11:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.ComponentSpec=jpeg.lossless.ComponentSpec||(typeof require!=="undefined"?require("./component-spec.js"):null);jpeg.lossless.DataStream=jpeg.lossless.DataStream||(typeof require!=="undefined"?require("./data-stream.js"):null);jpeg.lossless.Decoder=jpeg.lossless.Decoder||(typeof require!=="undefined"?require("./decoder.js"):null);jpeg.lossless.FrameHeader=jpeg.lossless.FrameHeader||(typeof require!=="undefined"?require("./frame-header.js"):null);jpeg.lossless.HuffmanTable=jpeg.lossless.HuffmanTable||(typeof require!=="undefined"?require("./huffman-table.js"):null);jpeg.lossless.QuantizationTable=jpeg.lossless.QuantizationTable||(typeof require!=="undefined"?require("./quantization-table.js"):null);jpeg.lossless.ScanComponent=jpeg.lossless.ScanComponent||(typeof require!=="undefined"?require("./scan-component.js"):null);jpeg.lossless.ScanHeader=jpeg.lossless.ScanHeader||(typeof require!=="undefined"?require("./scan-header.js"):null);jpeg.lossless.Utils=jpeg.lossless.Utils||(typeof require!=="undefined"?require("./utils.js"):null);var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg}},{"./component-spec.js":6,"./data-stream.js":7,"./decoder.js":8,"./frame-header.js":9,"./huffman-table.js":10,"./quantization-table.js":12,"./scan-component.js":13,"./scan-header.js":14,"./utils.js":15}],12:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.DataStream=jpeg.lossless.DataStream||(typeof require!=="undefined"?require("./data-stream.js"):null);jpeg.lossless.Utils=jpeg.lossless.Utils||(typeof require!=="undefined"?require("./utils.js"):null);jpeg.lossless.QuantizationTable=jpeg.lossless.QuantizationTable||function(){this.precision=[];this.tq=[];this.quantTables=jpeg.lossless.Utils.createArray(4,64);this.tq[0]=0;this.tq[1]=0;this.tq[2]=0;this.tq[3]=0};jpeg.lossless.QuantizationTable.enhanceQuantizationTable=function(qtab,table){var i;for(i=0;i<8;i+=1){qtab[table[0*8+i]]*=90;qtab[table[4*8+i]]*=90;qtab[table[2*8+i]]*=118;qtab[table[6*8+i]]*=49;qtab[table[5*8+i]]*=71;qtab[table[1*8+i]]*=126;qtab[table[7*8+i]]*=25;qtab[table[3*8+i]]*=106}for(i=0;i<8;i+=1){qtab[table[0+8*i]]*=90;qtab[table[4+8*i]]*=90;qtab[table[2+8*i]]*=118;qtab[table[6+8*i]]*=49;qtab[table[5+8*i]]*=71;qtab[table[1+8*i]]*=126;qtab[table[7+8*i]]*=25;qtab[table[3+8*i]]*=106}for(i=0;i<64;i+=1){qtab[i]>>=6}};jpeg.lossless.QuantizationTable.prototype.read=function(data,table){var count=0,length,temp,t,i;length=data.get16();count+=2;while(count3){throw new Error("ERROR: Quantization table ID > 3")}this.precision[t]=temp>>4;if(this.precision[t]===0){this.precision[t]=8}else if(this.precision[t]===1){this.precision[t]=16}else{throw new Error("ERROR: Quantization table precision error")}this.tq[t]=1;if(this.precision[t]===8){for(i=0;i<64;i+=1){if(count>length){throw new Error("ERROR: Quantization table format error")}this.quantTables[t][i]=data.get8();count+=1}jpeg.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t],table)}else{for(i=0;i<64;i+=1){if(count>length){throw new Error("ERROR: Quantization table format error")}this.quantTables[t][i]=data.get16();count+=2}jpeg.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t],table)}}if(count!==length){throw new Error("ERROR: Quantization table error [count!=Lq]")}return 1};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.QuantizationTable}},{"./data-stream.js":7,"./utils.js":15}],13:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.ScanComponent=jpeg.lossless.ScanComponent||function(){this.acTabSel=0;this.dcTabSel=0;this.scanCompSel=0};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.ScanComponent}},{}],14:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.DataStream=jpeg.lossless.DataStream||(typeof require!=="undefined"?require("./data-stream.js"):null);jpeg.lossless.ScanComponent=jpeg.lossless.ScanComponent||(typeof require!=="undefined"?require("./scan-component.js"):null);jpeg.lossless.ScanHeader=jpeg.lossless.ScanHeader||function(){this.ah=0;this.al=0;this.numComp=0;this.selection=0;this.spectralEnd=0;this.components=[]};jpeg.lossless.ScanHeader.prototype.read=function(data){var count=0,length,i,temp;length=data.get16();count+=2;this.numComp=data.get8();count+=1;for(i=0;ilength){throw new Error("ERROR: scan header format error")}this.components[i].scanCompSel=data.get8();count+=1;temp=data.get8();count+=1;this.components[i].dcTabSel=temp>>4;this.components[i].acTabSel=temp&15}this.selection=data.get8();count+=1;this.spectralEnd=data.get8();count+=1;temp=data.get8();this.ah=temp>>4;this.al=temp&15;count+=1;if(count!==length){throw new Error("ERROR: scan header format error [count!=Ns]")}return 1};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.ScanHeader}},{"./data-stream.js":7,"./scan-component.js":13}],15:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.Utils=jpeg.lossless.Utils||{};jpeg.lossless.Utils.createArray=function(length){var arr=new Array(length||0),i=length;if(arguments.length>1){var args=Array.prototype.slice.call(arguments,1);while(i--)arr[length-1-i]=jpeg.lossless.Utils.createArray.apply(this,args)}return arr};jpeg.lossless.Utils.makeCRCTable=function(){var c;var crcTable=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?3988292384^c>>>1:c>>>1}crcTable[n]=c}return crcTable};jpeg.lossless.Utils.crc32=function(dataView){var uint8view=new Uint8Array(dataView.buffer);var crcTable=jpeg.lossless.Utils.crcTable||(jpeg.lossless.Utils.crcTable=jpeg.lossless.Utils.makeCRCTable());var crc=0^-1;for(var i=0;i>>8^crcTable[(crc^uint8view[i])&255]}return(crc^-1)>>>0};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.Utils}},{}],16:[function(require,module,exports){"use strict";var assign=require("./lib/utils/common").assign;var deflate=require("./lib/deflate");var inflate=require("./lib/inflate");var constants=require("./lib/zlib/constants");var pako={};assign(pako,deflate,inflate,constants);module.exports=pako},{"./lib/deflate":17,"./lib/inflate":18,"./lib/utils/common":19,"./lib/zlib/constants":22}],17:[function(require,module,exports){"use strict";var zlib_deflate=require("./zlib/deflate");var utils=require("./utils/common");var strings=require("./utils/strings");var msg=require("./zlib/messages");var ZStream=require("./zlib/zstream");var toString=Object.prototype.toString;var Z_NO_FLUSH=0;var Z_FINISH=4;var Z_OK=0;var Z_STREAM_END=1;var Z_SYNC_FLUSH=2;var Z_DEFAULT_COMPRESSION=-1;var Z_DEFAULT_STRATEGY=0;var Z_DEFLATED=8;function Deflate(options){if(!(this instanceof Deflate))return new Deflate(options);this.options=utils.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>0){opt.windowBits=-opt.windowBits}else if(opt.gzip&&opt.windowBits>0&&opt.windowBits<16){opt.windowBits+=16}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new ZStream;this.strm.avail_out=0;var status=zlib_deflate.deflateInit2(this.strm,opt.level,opt.method,opt.windowBits,opt.memLevel,opt.strategy);if(status!==Z_OK){throw new Error(msg[status])}if(opt.header){zlib_deflate.deflateSetHeader(this.strm,opt.header)}if(opt.dictionary){var dict;if(typeof opt.dictionary==="string"){dict=strings.string2buf(opt.dictionary)}else if(toString.call(opt.dictionary)==="[object ArrayBuffer]"){dict=new Uint8Array(opt.dictionary)}else{dict=opt.dictionary}status=zlib_deflate.deflateSetDictionary(this.strm,dict);if(status!==Z_OK){throw new Error(msg[status])}this._dict_set=true}}Deflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?Z_FINISH:Z_NO_FLUSH;if(typeof data==="string"){strm.input=strings.string2buf(data)}else if(toString.call(data)==="[object ArrayBuffer]"){strm.input=new Uint8Array(data)}else{strm.input=data}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_deflate.deflate(strm,_mode);if(status!==Z_STREAM_END&&status!==Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.avail_out===0||strm.avail_in===0&&(_mode===Z_FINISH||_mode===Z_SYNC_FLUSH)){if(this.options.to==="string"){this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output,strm.next_out)))}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}while((strm.avail_in>0||strm.avail_out===0)&&status!==Z_STREAM_END);if(_mode===Z_FINISH){status=zlib_deflate.deflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===Z_OK}if(_mode===Z_SYNC_FLUSH){this.onEnd(Z_OK);strm.avail_out=0;return true}return true};Deflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Deflate.prototype.onEnd=function(status){if(status===Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function deflate(input,options){var deflator=new Deflate(options);deflator.push(input,true);if(deflator.err){throw deflator.msg||msg[deflator.err]}return deflator.result}function deflateRaw(input,options){options=options||{};options.raw=true;return deflate(input,options)}function gzip(input,options){options=options||{};options.gzip=true;return deflate(input,options)}exports.Deflate=Deflate;exports.deflate=deflate;exports.deflateRaw=deflateRaw;exports.gzip=gzip},{"./utils/common":19,"./utils/strings":20,"./zlib/deflate":24,"./zlib/messages":29,"./zlib/zstream":31}],18:[function(require,module,exports){"use strict";var zlib_inflate=require("./zlib/inflate");var utils=require("./utils/common");var strings=require("./utils/strings");var c=require("./zlib/constants");var msg=require("./zlib/messages");var ZStream=require("./zlib/zstream");var GZheader=require("./zlib/gzheader");var toString=Object.prototype.toString;function Inflate(options){if(!(this instanceof Inflate))return new Inflate(options);this.options=utils.assign({chunkSize:16384,windowBits:0,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>=0&&opt.windowBits<16){opt.windowBits=-opt.windowBits;if(opt.windowBits===0){opt.windowBits=-15}}if(opt.windowBits>=0&&opt.windowBits<16&&!(options&&options.windowBits)){opt.windowBits+=32}if(opt.windowBits>15&&opt.windowBits<48){if((opt.windowBits&15)===0){opt.windowBits|=15}}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new ZStream;this.strm.avail_out=0;var status=zlib_inflate.inflateInit2(this.strm,opt.windowBits);if(status!==c.Z_OK){throw new Error(msg[status])}this.header=new GZheader;zlib_inflate.inflateGetHeader(this.strm,this.header);if(opt.dictionary){if(typeof opt.dictionary==="string"){opt.dictionary=strings.string2buf(opt.dictionary)}else if(toString.call(opt.dictionary)==="[object ArrayBuffer]"){opt.dictionary=new Uint8Array(opt.dictionary)}if(opt.raw){status=zlib_inflate.inflateSetDictionary(this.strm,opt.dictionary);if(status!==c.Z_OK){throw new Error(msg[status])}}}}Inflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var dictionary=this.options.dictionary;var status,_mode;var next_out_utf8,tail,utf8str;var allowBufError=false;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?c.Z_FINISH:c.Z_NO_FLUSH;if(typeof data==="string"){strm.input=strings.binstring2buf(data)}else if(toString.call(data)==="[object ArrayBuffer]"){strm.input=new Uint8Array(data)}else{strm.input=data}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_inflate.inflate(strm,c.Z_NO_FLUSH);if(status===c.Z_NEED_DICT&&dictionary){status=zlib_inflate.inflateSetDictionary(this.strm,dictionary)}if(status===c.Z_BUF_ERROR&&allowBufError===true){status=c.Z_OK;allowBufError=false}if(status!==c.Z_STREAM_END&&status!==c.Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.next_out){if(strm.avail_out===0||status===c.Z_STREAM_END||strm.avail_in===0&&(_mode===c.Z_FINISH||_mode===c.Z_SYNC_FLUSH)){if(this.options.to==="string"){next_out_utf8=strings.utf8border(strm.output,strm.next_out);tail=strm.next_out-next_out_utf8;utf8str=strings.buf2string(strm.output,next_out_utf8);strm.next_out=tail;strm.avail_out=chunkSize-tail;if(tail){utils.arraySet(strm.output,strm.output,next_out_utf8,tail,0)}this.onData(utf8str)}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}if(strm.avail_in===0&&strm.avail_out===0){allowBufError=true}}while((strm.avail_in>0||strm.avail_out===0)&&status!==c.Z_STREAM_END);if(status===c.Z_STREAM_END){_mode=c.Z_FINISH}if(_mode===c.Z_FINISH){status=zlib_inflate.inflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===c.Z_OK}if(_mode===c.Z_SYNC_FLUSH){this.onEnd(c.Z_OK);strm.avail_out=0;return true}return true};Inflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Inflate.prototype.onEnd=function(status){if(status===c.Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function inflate(input,options){var inflator=new Inflate(options);inflator.push(input,true);if(inflator.err){throw inflator.msg||msg[inflator.err]}return inflator.result}function inflateRaw(input,options){options=options||{};options.raw=true;return inflate(input,options)}exports.Inflate=Inflate;exports.inflate=inflate;exports.inflateRaw=inflateRaw;exports.ungzip=inflate},{"./utils/common":19,"./utils/strings":20,"./zlib/constants":22,"./zlib/gzheader":25,"./zlib/inflate":27,"./zlib/messages":29,"./zlib/zstream":31}],19:[function(require,module,exports){"use strict";var TYPED_OK=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Int32Array!=="undefined";function _has(obj,key){return Object.prototype.hasOwnProperty.call(obj,key)}exports.assign=function(obj){var sources=Array.prototype.slice.call(arguments,1);while(sources.length){var source=sources.shift();if(!source){continue}if(typeof source!=="object"){throw new TypeError(source+"must be non-object")}for(var p in source){if(_has(source,p)){obj[p]=source[p]}}}return obj};exports.shrinkBuf=function(buf,size){if(buf.length===size){return buf}if(buf.subarray){return buf.subarray(0,size)}buf.length=size;return buf};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray){dest.set(src.subarray(src_offs,src_offs+len),dest_offs);return}for(var i=0;i=252?6:q>=248?5:q>=240?4:q>=224?3:q>=192?2:1}_utf8len[254]=_utf8len[254]=1;exports.string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]=240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}}return buf};function buf2binstring(buf,len){if(len<65534){if(buf.subarray&&STR_APPLY_UIA_OK||!buf.subarray&&STR_APPLY_OK){return String.fromCharCode.apply(null,utils.shrinkBuf(buf,len))}}var result="";for(var i=0;i4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i1){utf16buf[out++]=65533;continue}if(c<65536){utf16buf[out++]=c}else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}return buf2binstring(utf16buf,out)};exports.utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length){max=buf.length}pos=max-1;while(pos>=0&&(buf[pos]&192)===128){pos--}if(pos<0){return max}if(pos===0){return max}return pos+_utf8len[buf[pos]]>max?pos:max}},{"./common":19}],21:[function(require,module,exports){"use strict";function adler32(adler,buf,len,pos){var s1=adler&65535|0,s2=adler>>>16&65535|0,n=0;while(len!==0){n=len>2e3?2e3:len;len-=n;do{s1=s1+buf[pos++]|0;s2=s2+s1|0}while(--n);s1%=65521;s2%=65521}return s1|s2<<16|0}module.exports=adler32},{}],22:[function(require,module,exports){"use strict";module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],23:[function(require,module,exports){"use strict";function makeTable(){var c,table=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?3988292384^c>>>1:c>>>1}table[n]=c}return table}var crcTable=makeTable();function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc^=-1;for(var i=pos;i>>8^t[(crc^buf[i])&255]}return crc^-1}module.exports=crc32},{}],24:[function(require,module,exports){"use strict";var utils=require("../utils/common");var trees=require("./trees");var adler32=require("./adler32");var crc32=require("./crc32");var msg=require("./messages");var Z_NO_FLUSH=0;var Z_PARTIAL_FLUSH=1;var Z_FULL_FLUSH=3;var Z_FINISH=4;var Z_BLOCK=5;var Z_OK=0;var Z_STREAM_END=1;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_BUF_ERROR=-5;var Z_DEFAULT_COMPRESSION=-1;var Z_FILTERED=1;var Z_HUFFMAN_ONLY=2;var Z_RLE=3;var Z_FIXED=4;var Z_DEFAULT_STRATEGY=0;var Z_UNKNOWN=2;var Z_DEFLATED=8;var MAX_MEM_LEVEL=9;var MAX_WBITS=15;var DEF_MEM_LEVEL=8;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var MIN_MATCH=3;var MAX_MATCH=258;var MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1;var PRESET_DICT=32;var INIT_STATE=42;var EXTRA_STATE=69;var NAME_STATE=73;var COMMENT_STATE=91;var HCRC_STATE=103;var BUSY_STATE=113;var FINISH_STATE=666;var BS_NEED_MORE=1;var BS_BLOCK_DONE=2;var BS_FINISH_STARTED=3;var BS_FINISH_DONE=4;var OS_CODE=3;function err(strm,errorCode){strm.msg=msg[errorCode];return errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}function flush_pending(strm){var s=strm.state;var len=s.pending;if(len>strm.avail_out){len=strm.avail_out}if(len===0){return}utils.arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out);strm.next_out+=len;s.pending_out+=len;strm.total_out+=len;strm.avail_out-=len;s.pending-=len;if(s.pending===0){s.pending_out=0}}function flush_block_only(s,last){trees._tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last);s.block_start=s.strstart;flush_pending(s.strm)}function put_byte(s,b){s.pending_buf[s.pending++]=b}function putShortMSB(s,b){s.pending_buf[s.pending++]=b>>>8&255;s.pending_buf[s.pending++]=b&255}function read_buf(strm,buf,start,size){var len=strm.avail_in;if(len>size){len=size}if(len===0){return 0}strm.avail_in-=len;utils.arraySet(buf,strm.input,strm.next_in,len,start);if(strm.state.wrap===1){strm.adler=adler32(strm.adler,buf,len,start)}else if(strm.state.wrap===2){strm.adler=crc32(strm.adler,buf,len,start)}strm.next_in+=len;strm.total_in+=len;return len}function longest_match(s,cur_match){var chain_length=s.max_chain_length;var scan=s.strstart;var match;var len;var best_len=s.prev_length;var nice_match=s.nice_match;var limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0;var _win=s.window;var wmask=s.w_mask;var prev=s.prev;var strend=s.strstart+MAX_MATCH;var scan_end1=_win[scan+best_len-1];var scan_end=_win[scan+best_len];if(s.prev_length>=s.good_match){chain_length>>=2}if(nice_match>s.lookahead){nice_match=s.lookahead}do{match=cur_match;if(_win[match+best_len]!==scan_end||_win[match+best_len-1]!==scan_end1||_win[match]!==_win[scan]||_win[++match]!==_win[scan+1]){continue}scan+=2;match++;do{}while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&scanbest_len){s.match_start=cur_match;best_len=len;if(len>=nice_match){break}scan_end1=_win[scan+best_len-1];scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&--chain_length!==0);if(best_len<=s.lookahead){return best_len}return s.lookahead}function fill_window(s){var _w_size=s.w_size;var p,n,m,more,str;do{more=s.window_size-s.lookahead-s.strstart;if(s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){utils.arraySet(s.window,s.window,_w_size,_w_size,0);s.match_start-=_w_size;s.strstart-=_w_size;s.block_start-=_w_size;n=s.hash_size;p=n;do{m=s.head[--p];s.head[p]=m>=_w_size?m-_w_size:0}while(--n);n=_w_size;p=n;do{m=s.prev[--p];s.prev[p]=m>=_w_size?m-_w_size:0}while(--n);more+=_w_size}if(s.strm.avail_in===0){break}n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more);s.lookahead+=n;if(s.lookahead+s.insert>=MIN_MATCH){str=s.strstart-s.insert;s.ins_h=s.window[str];s.ins_h=(s.ins_h<s.pending_buf_size-5){max_block_size=s.pending_buf_size-5}for(;;){if(s.lookahead<=1){fill_window(s);if(s.lookahead===0&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}s.strstart+=s.lookahead;s.lookahead=0;var max_start=s.block_start+max_block_size;if(s.strstart===0||s.strstart>=max_start){s.lookahead=s.strstart-max_start;s.strstart=max_start;flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.strstart>s.block_start){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_NEED_MORE}function deflate_fast(s,flush){var hash_head;var bflush;for(;;){if(s.lookahead=MIN_MATCH){s.ins_h=(s.ins_h<=MIN_MATCH){bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;if(s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do{s.strstart++;s.ins_h=(s.ins_h<=MIN_MATCH){s.ins_h=(s.ins_h<4096)){s.match_length=MIN_MATCH-1}}if(s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH;bflush=trees._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH);s.lookahead-=s.prev_length-1;s.prev_length-=2;do{if(++s.strstart<=max_insert){s.ins_h=(s.ins_h<=MIN_MATCH&&s.strstart>0){scan=s.strstart-1;prev=_win[scan];if(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]){strend=s.strstart+MAX_MATCH;do{}while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&scans.lookahead){s.match_length=s.lookahead}}}if(s.match_length>=MIN_MATCH){bflush=trees._tr_tally(s,1,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;s.strstart+=s.match_length;s.match_length=0}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_huff(s,flush){var bflush;for(;;){if(s.lookahead===0){fill_window(s);if(s.lookahead===0){if(flush===Z_NO_FLUSH){return BS_NEED_MORE}break}}s.match_length=0;bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++;if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function Config(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length;this.max_lazy=max_lazy;this.nice_length=nice_length;this.max_chain=max_chain;this.func=func}var configuration_table;configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)];function lm_init(s){s.window_size=2*s.w_size;zero(s.head);s.max_lazy_match=configuration_table[s.level].max_lazy;s.good_match=configuration_table[s.level].good_length;s.nice_match=configuration_table[s.level].nice_length;s.max_chain_length=configuration_table[s.level].max_chain;s.strstart=0;s.block_start=0;s.lookahead=0;s.insert=0;s.match_length=s.prev_length=MIN_MATCH-1;s.match_available=0;s.ins_h=0}function DeflateState(){this.strm=null;this.status=0;this.pending_buf=null;this.pending_buf_size=0;this.pending_out=0;this.pending=0;this.wrap=0;this.gzhead=null;this.gzindex=0;this.method=Z_DEFLATED;this.last_flush=-1;this.w_size=0;this.w_bits=0;this.w_mask=0;this.window=null;this.window_size=0;this.prev=null;this.head=null;this.ins_h=0;this.hash_size=0;this.hash_bits=0;this.hash_mask=0;this.hash_shift=0;this.block_start=0;this.match_length=0;this.prev_match=0;this.match_available=0;this.strstart=0;this.match_start=0;this.lookahead=0;this.prev_length=0;this.max_chain_length=0;this.max_lazy_match=0;this.level=0;this.strategy=0;this.good_match=0;this.nice_match=0;this.dyn_ltree=new utils.Buf16(HEAP_SIZE*2);this.dyn_dtree=new utils.Buf16((2*D_CODES+1)*2);this.bl_tree=new utils.Buf16((2*BL_CODES+1)*2);zero(this.dyn_ltree);zero(this.dyn_dtree);zero(this.bl_tree);this.l_desc=null;this.d_desc=null;this.bl_desc=null;this.bl_count=new utils.Buf16(MAX_BITS+1);this.heap=new utils.Buf16(2*L_CODES+1);zero(this.heap);this.heap_len=0;this.heap_max=0;this.depth=new utils.Buf16(2*L_CODES+1);zero(this.depth);this.l_buf=0;this.lit_bufsize=0;this.last_lit=0;this.d_buf=0;this.opt_len=0;this.static_len=0;this.matches=0;this.insert=0;this.bi_buf=0;this.bi_valid=0}function deflateResetKeep(strm){var s;if(!strm||!strm.state){return err(strm,Z_STREAM_ERROR)}strm.total_in=strm.total_out=0;strm.data_type=Z_UNKNOWN;s=strm.state;s.pending=0;s.pending_out=0;if(s.wrap<0){s.wrap=-s.wrap}s.status=s.wrap?INIT_STATE:BUSY_STATE;strm.adler=s.wrap===2?0:1;s.last_flush=Z_NO_FLUSH;trees._tr_init(s);return Z_OK}function deflateReset(strm){var ret=deflateResetKeep(strm);if(ret===Z_OK){lm_init(strm.state)}return ret}function deflateSetHeader(strm,head){if(!strm||!strm.state){return Z_STREAM_ERROR}if(strm.state.wrap!==2){return Z_STREAM_ERROR}strm.state.gzhead=head;return Z_OK}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm){return Z_STREAM_ERROR}var wrap=1;if(level===Z_DEFAULT_COMPRESSION){level=6}if(windowBits<0){wrap=0;windowBits=-windowBits}else if(windowBits>15){wrap=2;windowBits-=16}if(memLevel<1||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||windowBits<8||windowBits>15||level<0||level>9||strategy<0||strategy>Z_FIXED){return err(strm,Z_STREAM_ERROR)}if(windowBits===8){windowBits=9}var s=new DeflateState;strm.state=s;s.strm=strm;s.wrap=wrap;s.gzhead=null;s.w_bits=windowBits;s.w_size=1<Z_BLOCK||flush<0){return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR}s=strm.state;if(!strm.output||!strm.input&&strm.avail_in!==0||s.status===FINISH_STATE&&flush!==Z_FINISH){return err(strm,strm.avail_out===0?Z_BUF_ERROR:Z_STREAM_ERROR)}s.strm=strm;old_flush=s.last_flush;s.last_flush=flush;if(s.status===INIT_STATE){if(s.wrap===2){strm.adler=0;put_byte(s,31);put_byte(s,139);put_byte(s,8);if(!s.gzhead){put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,OS_CODE);s.status=BUSY_STATE}else{put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(!s.gzhead.extra?0:4)+(!s.gzhead.name?0:8)+(!s.gzhead.comment?0:16));put_byte(s,s.gzhead.time&255);put_byte(s,s.gzhead.time>>8&255);put_byte(s,s.gzhead.time>>16&255);put_byte(s,s.gzhead.time>>24&255);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,s.gzhead.os&255);if(s.gzhead.extra&&s.gzhead.extra.length){put_byte(s,s.gzhead.extra.length&255);put_byte(s,s.gzhead.extra.length>>8&255)}if(s.gzhead.hcrc){strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0)}s.gzindex=0;s.status=EXTRA_STATE}}else{var header=Z_DEFLATED+(s.w_bits-8<<4)<<8;var level_flags=-1;if(s.strategy>=Z_HUFFMAN_ONLY||s.level<2){level_flags=0}else if(s.level<6){level_flags=1}else if(s.level===6){level_flags=2}else{level_flags=3}header|=level_flags<<6;if(s.strstart!==0){header|=PRESET_DICT}header+=31-header%31;s.status=BUSY_STATE;putShortMSB(s,header);if(s.strstart!==0){putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}strm.adler=1}}if(s.status===EXTRA_STATE){if(s.gzhead.extra){beg=s.pending;while(s.gzindex<(s.gzhead.extra.length&65535)){if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){break}}put_byte(s,s.gzhead.extra[s.gzindex]&255);s.gzindex++}if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(s.gzindex===s.gzhead.extra.length){s.gzindex=0;s.status=NAME_STATE}}else{s.status=NAME_STATE}}if(s.status===NAME_STATE){if(s.gzhead.name){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindexbeg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.gzindex=0;s.status=COMMENT_STATE}}else{s.status=COMMENT_STATE}}if(s.status===COMMENT_STATE){if(s.gzhead.comment){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindexbeg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.status=HCRC_STATE}}else{s.status=HCRC_STATE}}if(s.status===HCRC_STATE){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size){flush_pending(strm)}if(s.pending+2<=s.pending_buf_size){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);strm.adler=0;s.status=BUSY_STATE}}else{s.status=BUSY_STATE}}if(s.pending!==0){flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}else if(strm.avail_in===0&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH){return err(strm,Z_BUF_ERROR)}if(s.status===FINISH_STATE&&strm.avail_in!==0){return err(strm,Z_BUF_ERROR)}if(strm.avail_in!==0||s.lookahead!==0||flush!==Z_NO_FLUSH&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,flush):s.strategy===Z_RLE?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if(bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE){s.status=FINISH_STATE}if(bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED){if(strm.avail_out===0){s.last_flush=-1}return Z_OK}if(bstate===BS_BLOCK_DONE){if(flush===Z_PARTIAL_FLUSH){trees._tr_align(s)}else if(flush!==Z_BLOCK){trees._tr_stored_block(s,0,0,false);if(flush===Z_FULL_FLUSH){zero(s.head);if(s.lookahead===0){s.strstart=0;s.block_start=0;s.insert=0}}}flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}}if(flush!==Z_FINISH){return Z_OK}if(s.wrap<=0){return Z_STREAM_END}if(s.wrap===2){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);put_byte(s,strm.adler>>16&255);put_byte(s,strm.adler>>24&255);put_byte(s,strm.total_in&255);put_byte(s,strm.total_in>>8&255);put_byte(s,strm.total_in>>16&255);put_byte(s,strm.total_in>>24&255)}else{putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}flush_pending(strm);if(s.wrap>0){s.wrap=-s.wrap}return s.pending!==0?Z_OK:Z_STREAM_END}function deflateEnd(strm){var status;if(!strm||!strm.state){return Z_STREAM_ERROR}status=strm.state.status;if(status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE){return err(strm,Z_STREAM_ERROR)}strm.state=null;return status===BUSY_STATE?err(strm,Z_DATA_ERROR):Z_OK}function deflateSetDictionary(strm,dictionary){var dictLength=dictionary.length;var s;var str,n;var wrap;var avail;var next;var input;var tmpDict;if(!strm||!strm.state){return Z_STREAM_ERROR}s=strm.state;wrap=s.wrap;if(wrap===2||wrap===1&&s.status!==INIT_STATE||s.lookahead){return Z_STREAM_ERROR}if(wrap===1){strm.adler=adler32(strm.adler,dictionary,dictLength,0)}s.wrap=0;if(dictLength>=s.w_size){if(wrap===0){zero(s.head);s.strstart=0;s.block_start=0;s.insert=0}tmpDict=new utils.Buf8(s.w_size);utils.arraySet(tmpDict,dictionary,dictLength-s.w_size,s.w_size,0);dictionary=tmpDict;dictLength=s.w_size}avail=strm.avail_in;next=strm.next_in;input=strm.input;strm.avail_in=dictLength;strm.next_in=0;strm.input=dictionary;fill_window(s);while(s.lookahead>=MIN_MATCH){str=s.strstart;n=s.lookahead-(MIN_MATCH-1);do{s.ins_h=(s.ins_h<>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op===0){output[_out++]=here&65535}else if(op&16){len=here&65535;op&=15;if(op){if(bits>>=op;bits-=op}if(bits<15){hold+=input[_in++]<>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op&16){dist=here&65535;op&=15;if(bitsdmax){strm.msg="invalid distance too far back";state.mode=BAD;break top}hold>>>=op;bits-=op;op=_out-beg;if(dist>op){op=dist-op;if(op>whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break top}}from=0;from_source=s_window;if(wnext===0){from+=wsize-op;if(op2){output[_out++]=from_source[from++];output[_out++]=from_source[from++];output[_out++]=from_source[from++];len-=3}if(len){output[_out++]=from_source[from++];if(len>1){output[_out++]=from_source[from++]}}}else{from=_out-dist;do{output[_out++]=output[from++];output[_out++]=output[from++];output[_out++]=output[from++];len-=3}while(len>2);if(len){output[_out++]=output[from++];if(len>1){output[_out++]=output[from++]}}}}else if((op&64)===0){here=dcode[(here&65535)+(hold&(1<>3;_in-=len;bits-=len<<3;hold&=(1<>>24&255)+(q>>>8&65280)+((q&65280)<<8)+((q&255)<<24)}function InflateState(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;this.flags=0;this.dmax=0;this.check=0;this.total=0;this.head=null;this.wbits=0;this.wsize=0;this.whave=0;this.wnext=0;this.window=null;this.hold=0;this.bits=0;this.length=0;this.offset=0;this.extra=0;this.lencode=null;this.distcode=null;this.lenbits=0;this.distbits=0;this.ncode=0;this.nlen=0;this.ndist=0;this.have=0;this.next=null;this.lens=new utils.Buf16(320);this.work=new utils.Buf16(288);this.lendyn=null;this.distdyn=null;this.sane=0;this.back=0;this.was=0}function inflateResetKeep(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;strm.total_in=strm.total_out=state.total=0;strm.msg="";if(state.wrap){strm.adler=state.wrap&1}state.mode=HEAD;state.last=0;state.havedict=0;state.dmax=32768;state.head=null;state.hold=0;state.bits=0;state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS);state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS);state.sane=1;state.back=-1;return Z_OK}function inflateReset(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;state.wsize=0;state.whave=0;state.wnext=0;return inflateResetKeep(strm)}function inflateReset2(strm,windowBits){var wrap;var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if(windowBits<0){wrap=0;windowBits=-windowBits}else{wrap=(windowBits>>4)+1;if(windowBits<48){windowBits&=15}}if(windowBits&&(windowBits<8||windowBits>15)){return Z_STREAM_ERROR}if(state.window!==null&&state.wbits!==windowBits){state.window=null}state.wrap=wrap;state.wbits=windowBits;return inflateReset(strm)}function inflateInit2(strm,windowBits){var ret;var state;if(!strm){return Z_STREAM_ERROR}state=new InflateState;strm.state=state;state.window=null;ret=inflateReset2(strm,windowBits);if(ret!==Z_OK){strm.state=null}return ret}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}var virgin=true;var lenfix,distfix;function fixedtables(state){if(virgin){var sym;lenfix=new utils.Buf32(512);distfix=new utils.Buf32(32);sym=0;while(sym<144){state.lens[sym++]=8}while(sym<256){state.lens[sym++]=9}while(sym<280){state.lens[sym++]=7}while(sym<288){state.lens[sym++]=8}inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9});sym=0;while(sym<32){state.lens[sym++]=5}inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5});virgin=false}state.lencode=lenfix;state.lenbits=9;state.distcode=distfix;state.distbits=5}function updatewindow(strm,src,end,copy){var dist;var state=strm.state;if(state.window===null){state.wsize=1<=state.wsize){utils.arraySet(state.window,src,end-state.wsize,state.wsize,0);state.wnext=0;state.whave=state.wsize}else{dist=state.wsize-state.wnext;if(dist>copy){dist=copy}utils.arraySet(state.window,src,end-copy,dist,state.wnext);copy-=dist;if(copy){utils.arraySet(state.window,src,end-copy,copy,0);state.wnext=copy;state.whave=state.wsize}else{state.wnext+=dist;if(state.wnext===state.wsize){state.wnext=0}if(state.whave>>8&255;state.check=crc32(state.check,hbuf,2,0);hold=0;bits=0;state.mode=FLAGS;break}state.flags=0;if(state.head){state.head.done=false}if(!(state.wrap&1)||(((hold&255)<<8)+(hold>>8))%31){strm.msg="incorrect header check";state.mode=BAD;break}if((hold&15)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}hold>>>=4;bits-=4;len=(hold&15)+8;if(state.wbits===0){state.wbits=len}else if(len>state.wbits){strm.msg="invalid window size";state.mode=BAD;break}state.dmax=1<>8&1}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=TIME;case TIME:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<>>8&255;hbuf[2]=hold>>>16&255;hbuf[3]=hold>>>24&255;state.check=crc32(state.check,hbuf,4,0)}hold=0;bits=0;state.mode=OS;case OS:while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<>8}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=EXLEN;case EXLEN:if(state.flags&1024){while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0}else if(state.head){state.head.extra=null}state.mode=EXTRA;case EXTRA:if(state.flags&1024){copy=state.length;if(copy>have){copy=have}if(copy){if(state.head){len=state.head.extra_len-state.length;if(!state.head.extra){state.head.extra=new Array(state.head.extra_len)}utils.arraySet(state.head.extra,input,next,copy,len)}if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;state.length-=copy}if(state.length){break inf_leave}}state.length=0;state.mode=NAME;case NAME:if(state.flags&2048){if(have===0){break inf_leave}copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536){state.head.name+=String.fromCharCode(len)}}while(len&©>9&1;state.head.done=true}strm.adler=state.check=0;state.mode=TYPE;break;case DICTID:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<>>=bits&7;bits-=bits&7;state.mode=CHECK;break}while(bits<3){if(have===0){break inf_leave}have--;hold+=input[next++]<>>=1;bits-=1;switch(hold&3){case 0:state.mode=STORED;break;case 1:fixedtables(state);state.mode=LEN_;if(flush===Z_TREES){hold>>>=2;bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type";state.mode=BAD}hold>>>=2;bits-=2;break;case STORED:hold>>>=bits&7;bits-=bits&7;while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<>>16^65535)){strm.msg="invalid stored block lengths";state.mode=BAD;break}state.length=hold&65535;hold=0;bits=0;state.mode=COPY_;if(flush===Z_TREES){break inf_leave}case COPY_:state.mode=COPY;case COPY:copy=state.length;if(copy){if(copy>have){copy=have}if(copy>left){copy=left}if(copy===0){break inf_leave}utils.arraySet(output,input,next,copy,put);have-=copy;next+=copy;left-=copy;put+=copy;state.length-=copy;break}state.mode=TYPE;break;case TABLE:while(bits<14){if(have===0){break inf_leave}have--;hold+=input[next++]<>>=5;bits-=5;state.ndist=(hold&31)+1;hold>>>=5;bits-=5;state.ncode=(hold&15)+4;hold>>>=4;bits-=4;if(state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols";state.mode=BAD;break}state.have=0;state.mode=LENLENS;case LENLENS:while(state.have>>=3;bits-=3}while(state.have<19){state.lens[order[state.have++]]=0}state.lencode=state.lendyn;state.lenbits=7;opts={bits:state.lenbits};ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid code lengths set";state.mode=BAD;break}state.have=0;state.mode=CODELENS;case CODELENS:while(state.have>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>>=here_bits;bits-=here_bits;state.lens[state.have++]=here_val}else{if(here_val===16){n=here_bits+2;while(bits>>=here_bits;bits-=here_bits;if(state.have===0){strm.msg="invalid bit length repeat";state.mode=BAD;break}len=state.lens[state.have-1];copy=3+(hold&3);hold>>>=2;bits-=2}else if(here_val===17){n=here_bits+3;while(bits>>=here_bits;bits-=here_bits;len=0;copy=3+(hold&7);hold>>>=3;bits-=3}else{n=here_bits+7;while(bits>>=here_bits;bits-=here_bits;len=0;copy=11+(hold&127);hold>>>=7;bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat";state.mode=BAD;break}while(copy--){state.lens[state.have++]=len}}}if(state.mode===BAD){break}if(state.lens[256]===0){strm.msg="invalid code -- missing end-of-block";state.mode=BAD;break}state.lenbits=9;opts={bits:state.lenbits};ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid literal/lengths set";state.mode=BAD;break}state.distbits=6;state.distcode=state.distdyn;opts={bits:state.distbits};ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts);state.distbits=opts.bits;if(ret){strm.msg="invalid distances set";state.mode=BAD;break}state.mode=LEN_;if(flush===Z_TREES){break inf_leave}case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;inflate_fast(strm,_out);put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;if(state.mode===TYPE){state.back=-1}break}state.back=0;for(;;){here=state.lencode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;state.length=here_val;if(here_op===0){state.mode=LIT;break}if(here_op&32){state.back=-1;state.mode=TYPE;break}if(here_op&64){strm.msg="invalid literal/length code";state.mode=BAD;break}state.extra=here_op&15;state.mode=LENEXT;case LENEXT:if(state.extra){n=state.extra;while(bits>>=state.extra;bits-=state.extra;state.back+=state.extra}state.was=state.length;state.mode=DIST;case DIST:for(;;){here=state.distcode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;if(here_op&64){strm.msg="invalid distance code";state.mode=BAD;break}state.offset=here_val;state.extra=here_op&15;state.mode=DISTEXT;case DISTEXT:if(state.extra){n=state.extra;while(bits>>=state.extra;bits-=state.extra;state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back";state.mode=BAD;break}state.mode=MATCH;case MATCH:if(left===0){break inf_leave}copy=_out-left;if(state.offset>copy){copy=state.offset-copy;if(copy>state.whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break}}if(copy>state.wnext){copy-=state.wnext;from=state.wsize-copy}else{from=state.wnext-copy}if(copy>state.length){copy=state.length}from_source=state.window}else{from_source=output;from=put-state.offset;copy=state.length}if(copy>left){copy=left}left-=copy;state.length-=copy;do{output[put++]=from_source[from++]}while(--copy);if(state.length===0){state.mode=LEN}break;case LIT:if(left===0){break inf_leave}output[put++]=state.length;left--;state.mode=LEN;break;case CHECK:if(state.wrap){while(bits<32){if(have===0){break inf_leave}have--;hold|=input[next++]<=1;max--){if(count[max]!==0){break}}if(root>max){root=max}if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min0&&(type===CODES||max!==1)){return-1}offs[1]=0;for(len=1;lenENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}for(;;){here_bits=len-drop;if(work[sym]end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<>drop)+fill]=here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<>=1}if(incr!==0){huff&=incr-1;huff+=incr}else{huff=0}sym++;if(--count[len]===0){if(len===max){break}len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0){drop=root}next+=min;curr=len-drop;left=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}low=huff&mask;table[low]=root<<24|curr<<16|next-table_index|0}}if(huff!==0){table[next+huff]=len-drop<<24|64<<16|0}opts.bits=root;return 0}},{"../utils/common":19}],29:[function(require,module,exports){"use strict";module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],30:[function(require,module,exports){"use strict";var utils=require("../utils/common");var Z_FIXED=4;var Z_BINARY=0;var Z_TEXT=1;var Z_UNKNOWN=2;function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;var MIN_MATCH=3;var MAX_MATCH=258;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var Buf_size=16;var MAX_BL_BITS=7;var END_BLOCK=256;var REP_3_6=16;var REPZ_3_10=17;var REPZ_11_138=18;var extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var DIST_CODE_LEN=512;var static_ltree=new Array((L_CODES+2)*2);zero(static_ltree);var static_dtree=new Array(D_CODES*2);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);function StaticTreeDesc(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree;this.extra_bits=extra_bits;this.extra_base=extra_base;this.elems=elems;this.max_length=max_length;this.has_stree=static_tree&&static_tree.length}var static_l_desc;var static_d_desc;var static_bl_desc;function TreeDesc(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;this.max_code=0;this.stat_desc=stat_desc}function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=w&255;s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size}else{s.bi_buf|=value<>>=1;res<<=1}while(--len>0);return res>>>1}function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&255;s.bi_buf>>=8;s.bi_valid-=8}}function gen_bitlen(s,desc){var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;var n,m;var bits;var xbits;var f;var overflow=0;for(bits=0;bits<=MAX_BITS;bits++){s.bl_count[bits]=0}tree[s.heap[s.heap_max]*2+1]=0;for(h=s.heap_max+1;hmax_length){bits=max_length;overflow++}tree[n*2+1]=bits;if(n>max_code){continue}s.bl_count[bits]++;xbits=0;if(n>=base){xbits=extra[n-base]}f=tree[n*2];s.opt_len+=f*(bits+xbits);if(has_stree){s.static_len+=f*(stree[n*2+1]+xbits)}}if(overflow===0){return}do{bits=max_length-1;while(s.bl_count[bits]===0){bits--}s.bl_count[bits]--;s.bl_count[bits+1]+=2;s.bl_count[max_length]--;overflow-=2}while(overflow>0);for(bits=max_length;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code){continue}if(tree[m*2+1]!==bits){s.opt_len+=(bits-tree[m*2+1])*tree[m*2];tree[m*2+1]=bits}n--}}}function gen_codes(tree,max_code,bl_count){var next_code=new Array(MAX_BITS+1);var code=0;var bits;var n;for(bits=1;bits<=MAX_BITS;bits++){next_code[bits]=code=code+bl_count[bits-1]<<1}for(n=0;n<=max_code;n++){var len=tree[n*2+1];if(len===0){continue}tree[n*2]=bi_reverse(next_code[len]++,len)}}function tr_static_init(){var n;var bits;var length;var code;var dist;var bl_count=new Array(MAX_BITS+1);length=0;for(code=0;code>=7;for(;code8){put_short(s,s.bi_buf)}else if(s.bi_valid>0){s.pending_buf[s.pending++]=s.bi_buf}s.bi_buf=0;s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s);if(header){put_short(s,len);put_short(s,~len)}utils.arraySet(s.pending_buf,s.window,buf,len,s.pending);s.pending+=len}function smaller(tree,n,m,depth){var _n2=n*2;var _m2=m*2;return tree[_n2]>1;n>=1;n--){pqdownheap(s,tree,n)}node=elems;do{n=s.heap[1];s.heap[1]=s.heap[s.heap_len--];pqdownheap(s,tree,1);m=s.heap[1];s.heap[--s.heap_max]=n;s.heap[--s.heap_max]=m;tree[node*2]=tree[n*2]+tree[m*2];s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]=tree[m*2+1]=node;s.heap[1]=node++;pqdownheap(s,tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1];gen_bitlen(s,desc);gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}tree[(max_code+1)*2+1]=65535;for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count=3;max_blindex--){if(s.bl_tree[bl_order[max_blindex]*2+1]!==0){break}}s.opt_len+=3*(max_blindex+1)+5+5+4;return max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;send_bits(s,lcodes-257,5);send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);for(rank=0;rank>>=1){if(black_mask&1&&s.dyn_ltree[n*2]!==0){return Z_BINARY}}if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0){return Z_TEXT}for(n=32;n0){if(s.strm.data_type===Z_UNKNOWN){s.strm.data_type=detect_data_type(s)}build_tree(s,s.l_desc);build_tree(s,s.d_desc);max_blindex=build_bl_tree(s);opt_lenb=s.opt_len+3+7>>>3;static_lenb=s.static_len+3+7>>>3;if(static_lenb<=opt_lenb){opt_lenb=static_lenb}}else{opt_lenb=static_lenb=stored_len+5}if(stored_len+4<=opt_lenb&&buf!==-1){_tr_stored_block(s,buf,stored_len,last)}else if(s.strategy===Z_FIXED||static_lenb===opt_lenb){send_bits(s,(STATIC_TREES<<1)+(last?1:0),3);compress_block(s,static_ltree,static_dtree)}else{send_bits(s,(DYN_TREES<<1)+(last?1:0),3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree)}init_block(s);if(last){bi_windup(s)}}function _tr_tally(s,dist,lc){s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&255;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&255;s.pending_buf[s.l_buf+s.last_lit]=lc&255;s.last_lit++;if(dist===0){s.dyn_ltree[lc*2]++}else{s.matches++;dist--;s.dyn_ltree[(_length_code[lc]+LITERALS+1)*2]++;s.dyn_dtree[d_code(dist)*2]++}return s.last_lit===s.lit_bufsize-1}exports._tr_init=_tr_init;exports._tr_stored_block=_tr_stored_block;exports._tr_flush_block=_tr_flush_block;exports._tr_tally=_tr_tally;exports._tr_align=_tr_align},{"../utils/common":19}],31:[function(require,module,exports){"use strict";function ZStream(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}module.exports=ZStream},{}],32:[function(require,module,exports){(function(process){(function(){"use strict";function assertPath(path){if(typeof path!=="string"){throw new TypeError("Path must be a string. Received "+JSON.stringify(path))}}function normalizeStringPosix(path,allowAboveRoot){var res="";var lastSegmentLength=0;var lastSlash=-1;var dots=0;var code;for(var i=0;i<=path.length;++i){if(i2){var lastSlashIndex=res.lastIndexOf("/");if(lastSlashIndex!==res.length-1){if(lastSlashIndex===-1){res="";lastSegmentLength=0}else{res=res.slice(0,lastSlashIndex);lastSegmentLength=res.length-1-res.lastIndexOf("/")}lastSlash=i;dots=0;continue}}else if(res.length===2||res.length===1){res="";lastSegmentLength=0;lastSlash=i;dots=0;continue}}if(allowAboveRoot){if(res.length>0)res+="/..";else res="..";lastSegmentLength=2}}else{if(res.length>0)res+="/"+path.slice(lastSlash+1,i);else res=path.slice(lastSlash+1,i);lastSegmentLength=i-lastSlash-1}lastSlash=i;dots=0}else if(code===46&&dots!==-1){++dots}else{dots=-1}}return res}function _format(sep,pathObject){var dir=pathObject.dir||pathObject.root;var base=pathObject.base||(pathObject.name||"")+(pathObject.ext||"");if(!dir){return base}if(dir===pathObject.root){return dir+base}return dir+sep+base}var posix={resolve:function resolve(){var resolvedPath="";var resolvedAbsolute=false;var cwd;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path;if(i>=0)path=arguments[i];else{if(cwd===undefined)cwd=process.cwd();path=cwd}assertPath(path);if(path.length===0){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charCodeAt(0)===47}resolvedPath=normalizeStringPosix(resolvedPath,!resolvedAbsolute);if(resolvedAbsolute){if(resolvedPath.length>0)return"/"+resolvedPath;else return"/"}else if(resolvedPath.length>0){return resolvedPath}else{return"."}},normalize:function normalize(path){assertPath(path);if(path.length===0)return".";var isAbsolute=path.charCodeAt(0)===47;var trailingSeparator=path.charCodeAt(path.length-1)===47;path=normalizeStringPosix(path,!isAbsolute);if(path.length===0&&!isAbsolute)path=".";if(path.length>0&&trailingSeparator)path+="/";if(isAbsolute)return"/"+path;return path},isAbsolute:function isAbsolute(path){assertPath(path);return path.length>0&&path.charCodeAt(0)===47},join:function join(){if(arguments.length===0)return".";var joined;for(var i=0;i0){if(joined===undefined)joined=arg;else joined+="/"+arg}}if(joined===undefined)return".";return posix.normalize(joined)},relative:function relative(from,to){assertPath(from);assertPath(to);if(from===to)return"";from=posix.resolve(from);to=posix.resolve(to);if(from===to)return"";var fromStart=1;for(;fromStartlength){if(to.charCodeAt(toStart+i)===47){return to.slice(toStart+i+1)}else if(i===0){return to.slice(toStart+i)}}else if(fromLen>length){if(from.charCodeAt(fromStart+i)===47){lastCommonSep=i}else if(i===0){lastCommonSep=0}}break}var fromCode=from.charCodeAt(fromStart+i);var toCode=to.charCodeAt(toStart+i);if(fromCode!==toCode)break;else if(fromCode===47)lastCommonSep=i}var out="";for(i=fromStart+lastCommonSep+1;i<=fromEnd;++i){if(i===fromEnd||from.charCodeAt(i)===47){if(out.length===0)out+="..";else out+="/.."}}if(out.length>0)return out+to.slice(toStart+lastCommonSep);else{toStart+=lastCommonSep;if(to.charCodeAt(toStart)===47)++toStart;return to.slice(toStart)}},_makeLong:function _makeLong(path){return path},dirname:function dirname(path){assertPath(path);if(path.length===0)return".";var code=path.charCodeAt(0);var hasRoot=code===47;var end=-1;var matchedSlash=true;for(var i=path.length-1;i>=1;--i){code=path.charCodeAt(i);if(code===47){if(!matchedSlash){end=i;break}}else{matchedSlash=false}}if(end===-1)return hasRoot?"/":".";if(hasRoot&&end===1)return"//";return path.slice(0,end)},basename:function basename(path,ext){if(ext!==undefined&&typeof ext!=="string")throw new TypeError('"ext" argument must be a string');assertPath(path);var start=0;var end=-1;var matchedSlash=true;var i;if(ext!==undefined&&ext.length>0&&ext.length<=path.length){if(ext.length===path.length&&ext===path)return"";var extIdx=ext.length-1;var firstNonSlashEnd=-1;for(i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(code===47){if(!matchedSlash){start=i+1;break}}else{if(firstNonSlashEnd===-1){matchedSlash=false;firstNonSlashEnd=i+1}if(extIdx>=0){if(code===ext.charCodeAt(extIdx)){if(--extIdx===-1){end=i}}else{extIdx=-1;end=firstNonSlashEnd}}}}if(start===end)end=firstNonSlashEnd;else if(end===-1)end=path.length;return path.slice(start,end)}else{for(i=path.length-1;i>=0;--i){if(path.charCodeAt(i)===47){if(!matchedSlash){start=i+1;break}}else if(end===-1){matchedSlash=false;end=i+1}}if(end===-1)return"";return path.slice(start,end)}},extname:function extname(path){assertPath(path);var startDot=-1;var startPart=0;var end=-1;var matchedSlash=true;var preDotState=0;for(var i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(code===47){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===46){if(startDot===-1)startDot=i;else if(preDotState!==1)preDotState=1}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){return""}return path.slice(startDot,end)},format:function format(pathObject){if(pathObject===null||typeof pathObject!=="object"){throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof pathObject)}return _format("/",pathObject)},parse:function parse(path){assertPath(path);var ret={root:"",dir:"",base:"",ext:"",name:""};if(path.length===0)return ret;var code=path.charCodeAt(0);var isAbsolute=code===47;var start;if(isAbsolute){ret.root="/";start=1}else{start=0}var startDot=-1;var startPart=0;var end=-1;var matchedSlash=true;var i=path.length-1;var preDotState=0;for(;i>=start;--i){code=path.charCodeAt(i);if(code===47){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===46){if(startDot===-1)startDot=i;else if(preDotState!==1)preDotState=1}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){if(end!==-1){if(startPart===0&&isAbsolute)ret.base=ret.name=path.slice(1,end);else ret.base=ret.name=path.slice(startPart,end)}}else{if(startPart===0&&isAbsolute){ret.name=path.slice(1,startDot);ret.base=path.slice(1,end)}else{ret.name=path.slice(startPart,startDot);ret.base=path.slice(startPart,end)}ret.ext=path.slice(startDot,end)}if(startPart>0)ret.dir=path.slice(0,startPart-1);else if(isAbsolute)ret.dir="/";return ret},sep:"/",delimiter:":",win32:null,posix:null};posix.posix=posix;module.exports=posix}).call(this)}).call(this,require("_process"))},{_process:33}],33:[function(require,module,exports){var process=module.exports={};var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){cachedSetTimeout=setTimeout}else{cachedSetTimeout=defaultSetTimout}}catch(e){cachedSetTimeout=defaultSetTimout}try{if(typeof clearTimeout==="function"){cachedClearTimeout=clearTimeout}else{cachedClearTimeout=defaultClearTimeout}}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){return setTimeout(fun,0)}if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0)}try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){return clearTimeout(marker)}if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker)}try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex1){for(var i=1;i/g;var REGEXP_QUOTE=/"/g;var REGEXP_ATTR_NAME=/[^a-zA-Z0-9_:\.\-]/gim;var REGEXP_ATTR_VALUE_1=/&#([a-zA-Z0-9]*);?/gim;var REGEXP_ATTR_VALUE_COLON=/:?/gim;var REGEXP_ATTR_VALUE_NEWLINE=/&newline;?/gim;var REGEXP_DEFAULT_ON_TAG_ATTR_1=/\/\*|\*\//gm;var REGEXP_DEFAULT_ON_TAG_ATTR_2=/^[\s"'`]*((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi;var REGEXP_DEFAULT_ON_TAG_ATTR_3=/\/\*|\*\//gm;var REGEXP_DEFAULT_ON_TAG_ATTR_4=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi;var REGEXP_DEFAULT_ON_TAG_ATTR_5=/^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/gi;var REGEXP_DEFAULT_ON_TAG_ATTR_6=/^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//gi;function defaultOnTagAttr(tag,attr,value){if(attr==="href"||attr==="src"){REGEXP_DEFAULT_ON_TAG_ATTR_1.lastIndex=0;if(REGEXP_DEFAULT_ON_TAG_ATTR_1.test(value)){return"#"}REGEXP_DEFAULT_ON_TAG_ATTR_2.lastIndex=0;if(REGEXP_DEFAULT_ON_TAG_ATTR_2.test(value)){return"#"}REGEXP_DEFAULT_ON_TAG_ATTR_5.lastIndex=0;if(REGEXP_DEFAULT_ON_TAG_ATTR_5.test(value)){REGEXP_DEFAULT_ON_TAG_ATTR_6.lastIndex=0;if(!REGEXP_DEFAULT_ON_TAG_ATTR_6.test(value)){return"#"}}}else if(attr==="style"){REGEXP_DEFAULT_ON_TAG_ATTR_3.lastIndex=0;if(REGEXP_DEFAULT_ON_TAG_ATTR_3.test(value)){return"#"}REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex=0;if(REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)){return""}}}function defaultOnIgnoreTag(tag,html,options){return noTag(html)}function noTag(text){return text.replace(REGEXP_LT,"<").replace(REGEXP_GT,">")}function clearNonPrintableCharacter(str){var str2="";for(var i=0,len=str.length;i":">")}else{var attrs=this.filterAttributes(tagName,tag.slice(i+1,tag.length-1).trim());rethtml+=tag.slice(0,spos)+tagName+(attrs.length>0?" "+attrs:"")+">"}}else{var options={isClosing:spos===2,position:targetPos,originalPosition:currentPos-tag.length+1};var tagHtml=this.onIgnoreTag(tagName,tag,options);if(typeof tagHtml==="undefined"){tagHtml=noTag(tag)}rethtml+=tagHtml}return rethtml};FilterXSS.prototype.process=function(html){"use strict";var rethtml="";var lastPos=0;var tagStart=false;var quoteStart=false;var currentPos=0;var len=0;for(currentPos=0,len=html.length;currentPos"){rethtml+=noTag(html.slice(lastPos,tagStart));rethtml+=this.addNewTag(html.slice(tagStart,currentPos+1),currentPos,rethtml.length);lastPos=currentPos+1;tagStart=false;continue}if(c==='"'||c==="'"){quoteStart=c;continue}}else{if(c===quoteStart){quoteStart=false;continue}}}}if(lastPos>>0)}if(u=0,h=W(e[(e[I>>2]|0)+16>>2]|0,I|0)|0,d=u,u=0,d&1){P=8;break}g=x+8|0,v=x+1|0;i:do if(E>>>0>>0){for(a=0,c=0,d=E;m=p[(p[x>>0]&1?e[g>>2]|0:v)+c>>0]|0,m<<24>>24>0&(a|0)==(m<<24>>24|0)?(a=e[o>>2]|0,e[o>>2]=a+4,e[a>>2]=h,a=p[x>>0]|0,m=0,c=(c>>>0<((a&1?e[y>>2]|0:(a&255)>>>1)+-1|0)>>>0&1)+c|0):m=a,u=0,a=c0(e[(e[_>>2]|0)+44>>2]|0,_|0,p[d>>0]|0)|0,M=u,u=0,!(M&1);){if(M=e[o>>2]|0,e[o>>2]=M+4,e[M>>2]=a,d=d+1|0,d>>>0>=l>>>0)break i;a=m+1|0}l=R()|0;break e}while(0);if(a=f+(E-r<<2)|0,m=e[o>>2]|0,(a|0)!=(m|0))if(c=m+-4|0,a>>>0>>0){do M=e[a>>2]|0,e[a>>2]=e[c>>2],e[c>>2]=M,a=a+4|0,c=c+-4|0;while(a>>>0>>0);h=_,a=m}else h=_,a=m;else h=_}else{if(u=0,Me(e[(e[_>>2]|0)+48>>2]|0,_|0,E|0,l|0,e[o>>2]|0)|0,M=u,u=0,M&1){P=8;break}a=(e[o>>2]|0)+(l-E<<2)|0,e[o>>2]=a,h=_}i:do if(l>>>0>>0){for(;;){if(a=p[l>>0]|0,a<<24>>24==46){c=l;break}if(u=0,c=c0(e[(e[h>>2]|0)+44>>2]|0,_|0,a|0)|0,M=u,u=0,M&1){P=4;break}if(M=e[o>>2]|0,a=M+4|0,e[o>>2]=a,e[M>>2]=c,l=l+1|0,l>>>0>=n>>>0)break i}if((P|0)==4){l=R()|0;break e}if(u=0,l=W(e[(e[I>>2]|0)+12>>2]|0,I|0)|0,M=u,u=0,M&1){P=8;break e}M=e[o>>2]|0,a=M+4|0,e[o>>2]=a,e[M>>2]=l,l=c+1|0}while(0);if(u=0,Me(e[(e[_>>2]|0)+48>>2]|0,_|0,l|0,n|0,a|0)|0,M=u,u=0,M&1)P=8;else{M=(e[o>>2]|0)+(A-l<<2)|0,e[o>>2]=M,e[s>>2]=(t|0)==(n|0)?M:f+(t-r<<2)|0,V(x),C=w;return}}while(0);(P|0)==8&&(l=R()|0),V(x),B(l|0)}function uc(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=+s;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0;x=C,C=C+352|0,P=x+304|0,v=x+48|0,g=x+32|0,c=x+24|0,o=x+8|0,h=x,y=x+308|0,E=x+72|0,a=x+76|0,w=x+68|0,_=x+64|0,I=x+60|0,A=x+56|0,m=h,e[m>>2]=37,e[m+4>>2]=0,m=Br(h+1|0,58899,e[n+4>>2]|0)|0,e[E>>2]=y,r=g2()|0,m?(e[o>>2]=e[n+8>>2],t0[o+8>>3]=s,o=N2(y,30,r,h,o)|0):(t0[c>>3]=s,o=N2(y,30,r,h,c)|0);e:do if((o|0)>29){u=0,r=Te(3)|0,o=u,u=0,o=o&1,m?!o&&(u=0,e[g>>2]=e[n+8>>2],t0[g+8>>3]=s,l=Me(17,E|0,r|0,h|0,g|0)|0,d=u,u=0,!(d&1))&&(M=12):!o&&(u=0,t0[v>>3]=s,d=Me(17,E|0,r|0,h|0,v|0)|0,v=u,u=0,!(v&1))&&(l=d,M=12);do if((M|0)==12){if(r=e[E>>2]|0,r)o=r;else{if(u=0,be(6),d=u,u=0,d&1)break;o=e[E>>2]|0}r=o,h=o,M=16;break e}while(0);r=R()|0}else r=e[E>>2]|0,h=0,l=o,M=16;while(0);if((M|0)==16){c=r+l|0,m=r1(r,c,n)|0;do if((r|0)==(y|0))r=y,o=0,M=22;else{if(l=S2(l<<3)|0,!l){if(u=0,be(6),M=u,u=0,M&1){o=0,M=20;break}r=e[E>>2]|0}o=l,a=l,M=22}while(0);do if((M|0)==22)if(u=0,l=W(68,n|0)|0,E=u,u=0,E&1)M=20;else{if(e[I>>2]=l,u=0,u1(4,r|0,m|0,c|0,a|0,w|0,_|0,I|0),I=u,u=0,I&1){r=R()|0,ne(l)|0;break}if(ne(l)|0,e[A>>2]=e[t>>2],M=e[w>>2]|0,r=e[_>>2]|0,u=0,e[P>>2]=e[A>>2],r=N1(40,P|0,a|0,M|0,r|0,n|0,f|0)|0,M=u,u=0,M&1)M=20;else return e[t>>2]=r,o&&ye(o),h&&ye(h),C=x,r|0}while(0);(M|0)==20&&(r=R()|0),o&&ye(o),h&&ye(h)}return B(r|0),0}function ac(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;if(v=C,C=C+192|0,c=v,r=v+180|0,h=v+160|0,g=v+12|0,a=v+8|0,m=v+4|0,p[r>>0]=p[58901]|0,p[r+1>>0]=p[58902]|0,p[r+2>>0]=p[58903]|0,p[r+3>>0]=p[58904]|0,p[r+4>>0]=p[58905]|0,p[r+5>>0]=p[58906]|0,o=g2()|0,e[c>>2]=s,r=N2(h,20,o,r,c)|0,s=h+r|0,o=r1(h,s,n)|0,l=We(n)|0,e[a>>2]=l,u=0,a=c0(37,a|0,44212)|0,d=u,u=0,d&1)d=R()|0,ne(l)|0,B(d|0);else return ne(l)|0,ff[e[(e[a>>2]|0)+48>>2]&31](a,h,s,g)|0,d=g+(r<<2)|0,e[m>>2]=e[t>>2],e[c>>2]=e[m>>2],d=Mi(c,g,(o|0)==(s|0)?d:g+(o-h<<2)|0,d,n,f)|0,C=v,d|0;return 0}function B1(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0;M=C,C=C+32|0,P=M+16|0,E=M+12|0,_=M+8|0,I=M+4|0,A=M,c=We(f)|0,e[_>>2]=c,u=0,_=c0(37,_|0,44220)|0,y=u,u=0,y&1&&(M=R()|0,ne(c)|0,B(M|0)),ne(c)|0,e[s>>2]=0,y=_+8|0,c=e[t>>2]|0;e:do if((l|0)!=(a|0)){i:for(;;){m=c,c?(e[c+12>>2]|0)==(e[c+16>>2]|0)&&(V0[e[(e[c>>2]|0)+36>>2]&127](c)|0)==-1&&(e[t>>2]=0,c=0,m=0):c=0,v=(c|0)==0,g=e[n>>2]|0,h=g;do if(g){if((e[g+12>>2]|0)==(e[g+16>>2]|0)&&(V0[e[(e[g>>2]|0)+36>>2]&127](g)|0)==-1){e[n>>2]=0,h=0,x=12;break}if(!v){x=13;break i}}else x=12;while(0);if((x|0)==12)if(x=0,v){x=13;break}else g=0;r:do if((ge[e[(e[_>>2]|0)+36>>2]&63](_,p[l>>0]|0,0)|0)<<24>>24==37){if(g=l+1|0,(g|0)==(a|0)){x=17;break i}switch(d=ge[e[(e[_>>2]|0)+36>>2]&63](_,p[g>>0]|0,0)|0,d<<24>>24){case 48:case 69:{if(v=l+2|0,(v|0)==(a|0)){x=20;break i}l=g,g=ge[e[(e[_>>2]|0)+36>>2]&63](_,p[v>>0]|0,0)|0,c=d;break}default:g=d,c=0}d=e[(e[r>>2]|0)+36>>2]|0,e[I>>2]=m,e[A>>2]=h,e[E>>2]=e[I>>2],e[P>>2]=e[A>>2],d=H1[d&15](r,E,P,f,s,o,g,c)|0,e[t>>2]=d,l=l+2|0}else{if(m=p[l>>0]|0,m<<24>>24>-1&&(w=e[y>>2]|0,(F[w+(m<<24>>24<<1)>>1]&8192)!=0)){do{if(l=l+1|0,(l|0)==(a|0)){l=a;break}if(m=p[l>>0]|0,m<<24>>24<=-1)break}while(F[w+(m<<24>>24<<1)>>1]&8192);for(m=g;;){c?(e[c+12>>2]|0)==(e[c+16>>2]|0)&&(V0[e[(e[c>>2]|0)+36>>2]&127](c)|0)==-1&&(e[t>>2]=0,c=0):c=0,h=(c|0)==0;do if(g){if((e[g+12>>2]|0)!=(e[g+16>>2]|0))if(h){d=m;break}else break r;if((V0[e[(e[g>>2]|0)+36>>2]&127](g)|0)!=-1)if(h^(m|0)==0){d=m,g=m;break}else break r;else{e[n>>2]=0,m=0,x=39;break}}else x=39;while(0);if((x|0)==39){if(x=0,h)break r;d=m,g=0}if(h=c+12|0,m=e[h>>2]|0,v=c+16|0,(m|0)==(e[v>>2]|0)?m=V0[e[(e[c>>2]|0)+36>>2]&127](c)|0:m=z[m>>0]|0,(m&255)<<24>>24<=-1||!(F[(e[y>>2]|0)+(m<<24>>24<<1)>>1]&8192))break r;if(m=e[h>>2]|0,(m|0)==(e[v>>2]|0)){V0[e[(e[c>>2]|0)+40>>2]&127](c)|0,m=d;continue}else{e[h>>2]=m+1,m=d;continue}}}if(h=c+12|0,m=e[h>>2]|0,g=c+16|0,(m|0)==(e[g>>2]|0)?m=V0[e[(e[c>>2]|0)+36>>2]&127](c)|0:m=z[m>>0]|0,d=F2[e[(e[_>>2]|0)+12>>2]&63](_,m&255)|0,d<<24>>24!=(F2[e[(e[_>>2]|0)+12>>2]&63](_,p[l>>0]|0)|0)<<24>>24){x=57;break i}m=e[h>>2]|0,(m|0)==(e[g>>2]|0)?V0[e[(e[c>>2]|0)+40>>2]&127](c)|0:e[h>>2]=m+1,l=l+1|0}while(0);if(c=e[t>>2]|0,!((l|0)!=(a|0)&(e[s>>2]|0)==0))break e}if((x|0)==13){e[s>>2]=4;break}else if((x|0)==17){e[s>>2]=4;break}else if((x|0)==20){e[s>>2]=4;break}else if((x|0)==57){e[s>>2]=4,c=e[t>>2]|0;break}}while(0);c?(e[c+12>>2]|0)==(e[c+16>>2]|0)&&(V0[e[(e[c>>2]|0)+36>>2]&127](c)|0)==-1&&(e[t>>2]=0,c=0):c=0,l=(c|0)==0,m=e[n>>2]|0;do if(m){if((e[m+12>>2]|0)==(e[m+16>>2]|0)&&(V0[e[(e[m>>2]|0)+36>>2]&127](m)|0)==-1){e[n>>2]=0,x=67;break}l||(x=68)}else x=67;while(0);return(x|0)==67&&l&&(x=68),(x|0)==68&&(e[s>>2]=e[s>>2]|2),C=M,c|0}function cc(r){r=r|0}function hc(r){r=r|0,H(r)}function Sc(r){return r=r|0,2}function mc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=B1(r,c,a,f,s,o,58907,58915)|0,C=l,r|0}function pc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,g=r+8|0,g=V0[e[(e[g>>2]|0)+20>>2]&127](g)|0,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],n=p[g>>0]|0,v=(n&1)==0,t=v?g+1|0:e[g+8>>2]|0,n=t+(v?(n&255)>>>1:e[g+4>>2]|0)|0,e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=B1(r,c,a,f,s,o,t,n)|0,C=l,r|0}function gc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;if(m=C,C=C+16|0,a=m+8|0,l=m+4|0,c=m,f=We(f)|0,e[l>>2]=f,u=0,l=c0(37,l|0,44220)|0,h=u,u=0,h&1)h=R()|0,ne(f)|0,B(h|0);else return ne(f)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],so(r,o+24|0,t,a,s,l),C=m,e[t>>2]|0;return 0}function so(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0;l=C,C=C+16|0,a=l+4|0,c=l,r=r+8|0,r=V0[e[e[r>>2]>>2]&127](r)|0,e[c>>2]=e[f>>2],e[a>>2]=e[c>>2],n=(Qr(n,a,r,r+168|0,o,s,0)|0)-r|0,(n|0)<168&&(e[t>>2]=((n|0)/12|0|0)%7|0),C=l}function vc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;if(m=C,C=C+16|0,a=m+8|0,l=m+4|0,c=m,f=We(f)|0,e[l>>2]=f,u=0,l=c0(37,l|0,44220)|0,h=u,u=0,h&1)h=R()|0,ne(f)|0,B(h|0);else return ne(f)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],oo(r,o+16|0,t,a,s,l),C=m,e[t>>2]|0;return 0}function oo(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0;l=C,C=C+16|0,a=l+4|0,c=l,r=r+8|0,r=V0[e[(e[r>>2]|0)+4>>2]&127](r)|0,e[c>>2]=e[f>>2],e[a>>2]=e[c>>2],n=(Qr(n,a,r,r+288|0,o,s,0)|0)-r|0,(n|0)<288&&(e[t>>2]=((n|0)/12|0|0)%12|0),C=l}function dc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;if(m=C,C=C+16|0,a=m+8|0,l=m+4|0,c=m,f=We(f)|0,e[l>>2]=f,u=0,l=c0(37,l|0,44220)|0,h=u,u=0,h&1)h=R()|0,ne(f)|0,B(h|0);else return ne(f)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],lo(r,o+20|0,t,a,s,l),C=m,e[t>>2]|0;return 0}function lo(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,4)|0,e[s>>2]&4||((r|0)<69?r=r+2e3|0:r=(r+-69|0)>>>0<31?r+1900|0:r,e[t>>2]=r+-1900),C=l}function kc(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0,Re=0,De=0,oe=0,L0=0,me=0,P0=0,F0=0,u2=0,h2=0,i2=0,S0=0,N0=0,ce=0;S0=C,C=C+144|0,c=S0+132|0,a=S0+116|0,L0=S0+128|0,_=S0+124|0,ve=S0+120|0,me=S0+112|0,P0=S0+108|0,F0=S0+104|0,u2=S0+100|0,h2=S0+96|0,i2=S0+92|0,m=S0+88|0,h=S0+84|0,g=S0+80|0,v=S0+76|0,d=S0+72|0,y=S0+68|0,E=S0+64|0,P=S0+60|0,I=S0+56|0,A=S0+52|0,w=S0+48|0,x=S0+44|0,M=S0+40|0,U=S0+36|0,q=S0+32|0,Q=S0+28|0,r0=S0+24|0,i0=S0+20|0,J=S0+16|0,w0=S0+12|0,le=S0+8|0,Re=S0+4|0,De=S0,e[s>>2]=0,oe=We(f)|0,e[L0>>2]=oe,u=0,L0=c0(37,L0|0,44220)|0,ce=u,u=0,ce&1&&(ce=R()|0,ne(oe)|0,B(ce|0)),ne(oe)|0;do switch(l<<24>>24|0){case 65:case 97:{e[_>>2]=e[n>>2],e[c>>2]=e[_>>2],so(r,o+24|0,t,c,s,L0),N0=28;break}case 104:case 66:case 98:{e[ve>>2]=e[n>>2],e[c>>2]=e[ve>>2],oo(r,o+16|0,t,c,s,L0),N0=28;break}case 99:{N0=r+8|0,N0=V0[e[(e[N0>>2]|0)+12>>2]&127](N0)|0,e[me>>2]=e[t>>2],e[P0>>2]=e[n>>2],l=p[N0>>0]|0,n=(l&1)==0,ce=n?N0+1|0:e[N0+8>>2]|0,N0=ce+(n?(l&255)>>>1:e[N0+4>>2]|0)|0,e[a>>2]=e[me>>2],e[c>>2]=e[P0>>2],N0=B1(r,a,c,f,s,o,ce,N0)|0,e[t>>2]=N0,N0=28;break}case 101:case 100:{e[F0>>2]=e[n>>2],e[c>>2]=e[F0>>2],_c(r,o+12|0,t,c,s,L0),N0=28;break}case 68:{e[u2>>2]=e[t>>2],e[h2>>2]=e[n>>2],e[a>>2]=e[u2>>2],e[c>>2]=e[h2>>2],N0=B1(r,a,c,f,s,o,58915,58923)|0,e[t>>2]=N0,N0=28;break}case 70:{e[i2>>2]=e[t>>2],e[m>>2]=e[n>>2],e[a>>2]=e[i2>>2],e[c>>2]=e[m>>2],N0=B1(r,a,c,f,s,o,58923,58931)|0,e[t>>2]=N0,N0=28;break}case 72:{e[h>>2]=e[n>>2],e[c>>2]=e[h>>2],Tc(r,o+8|0,t,c,s,L0),N0=28;break}case 73:{e[g>>2]=e[n>>2],e[c>>2]=e[g>>2],wc(r,o+8|0,t,c,s,L0),N0=28;break}case 106:{e[v>>2]=e[n>>2],e[c>>2]=e[v>>2],Cc(r,o+28|0,t,c,s,L0),N0=28;break}case 109:{e[d>>2]=e[n>>2],e[c>>2]=e[d>>2],Ac(r,o+16|0,t,c,s,L0),N0=28;break}case 77:{e[y>>2]=e[n>>2],e[c>>2]=e[y>>2],Dc(r,o+4|0,t,c,s,L0),N0=28;break}case 116:case 110:{e[E>>2]=e[n>>2],e[c>>2]=e[E>>2],yc(r,t,c,s,L0),N0=28;break}case 112:{e[P>>2]=e[n>>2],e[c>>2]=e[P>>2],Ic(r,o+8|0,t,c,s,L0),N0=28;break}case 114:{e[I>>2]=e[t>>2],e[A>>2]=e[n>>2],e[a>>2]=e[I>>2],e[c>>2]=e[A>>2],N0=B1(r,a,c,f,s,o,58931,58942)|0,e[t>>2]=N0,N0=28;break}case 82:{e[w>>2]=e[t>>2],e[x>>2]=e[n>>2],e[a>>2]=e[w>>2],e[c>>2]=e[x>>2],N0=B1(r,a,c,f,s,o,58942,58947)|0,e[t>>2]=N0,N0=28;break}case 83:{e[M>>2]=e[n>>2],e[c>>2]=e[M>>2],Ec(r,o,t,c,s,L0),N0=28;break}case 84:{e[U>>2]=e[t>>2],e[q>>2]=e[n>>2],e[a>>2]=e[U>>2],e[c>>2]=e[q>>2],N0=B1(r,a,c,f,s,o,58947,58955)|0,e[t>>2]=N0,N0=28;break}case 119:{e[Q>>2]=e[n>>2],e[c>>2]=e[Q>>2],Pc(r,o+24|0,t,c,s,L0),N0=28;break}case 120:{ce=e[(e[r>>2]|0)+20>>2]|0,e[r0>>2]=e[t>>2],e[i0>>2]=e[n>>2],e[a>>2]=e[r0>>2],e[c>>2]=e[i0>>2],a=lr[ce&63](r,a,c,f,s,o)|0;break}case 88:{N0=r+8|0,N0=V0[e[(e[N0>>2]|0)+24>>2]&127](N0)|0,e[J>>2]=e[t>>2],e[w0>>2]=e[n>>2],l=p[N0>>0]|0,n=(l&1)==0,ce=n?N0+1|0:e[N0+8>>2]|0,N0=ce+(n?(l&255)>>>1:e[N0+4>>2]|0)|0,e[a>>2]=e[J>>2],e[c>>2]=e[w0>>2],N0=B1(r,a,c,f,s,o,ce,N0)|0,e[t>>2]=N0,N0=28;break}case 121:{e[le>>2]=e[n>>2],e[c>>2]=e[le>>2],lo(r,o+20|0,t,c,s,L0),N0=28;break}case 89:{e[Re>>2]=e[n>>2],e[c>>2]=e[Re>>2],Lc(r,o+20|0,t,c,s,L0),N0=28;break}case 37:{e[De>>2]=e[n>>2],e[c>>2]=e[De>>2],Rc(r,t,c,s,L0),N0=28;break}default:e[s>>2]=e[s>>2]|4,N0=28}while(0);return(N0|0)==28&&(a=e[t>>2]|0),C=S0,a|0}function _c(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,2)|0,n=e[s>>2]|0,(r+-1|0)>>>0<31&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Tc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,2)|0,n=e[s>>2]|0,(r|0)<24&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function wc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,2)|0,n=e[s>>2]|0,(r+-1|0)>>>0<12&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Cc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,3)|0,n=e[s>>2]|0,(r|0)<366&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Ac(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,2)|0,n=e[s>>2]|0,(r|0)<13&(n&4|0)==0?e[t>>2]=r+-1:e[s>>2]=n|4,C=l}function Dc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,2)|0,n=e[s>>2]|0,(r|0)<60&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function yc(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0;l=s+8|0;e:for(;;){s=e[t>>2]|0;do if(s){if((e[s+12>>2]|0)==(e[s+16>>2]|0))if((V0[e[(e[s>>2]|0)+36>>2]&127](s)|0)==-1){e[t>>2]=0,s=0;break}else{s=e[t>>2]|0;break}}else s=0;while(0);s=(s|0)==0,r=e[n>>2]|0;do if(r){if((e[r+12>>2]|0)!=(e[r+16>>2]|0)){if(s)break;break e}if((V0[e[(e[r>>2]|0)+36>>2]&127](r)|0)!=-1){if(s)break;break e}else{e[n>>2]=0,a=12;break}}else a=12;while(0);if((a|0)==12)if(a=0,s){r=0;break}else r=0;if(s=e[t>>2]|0,o=e[s+12>>2]|0,(o|0)==(e[s+16>>2]|0)?s=V0[e[(e[s>>2]|0)+36>>2]&127](s)|0:s=z[o>>0]|0,(s&255)<<24>>24<=-1||!(F[(e[l>>2]|0)+(s<<24>>24<<1)>>1]&8192))break;if(s=e[t>>2]|0,r=s+12|0,o=e[r>>2]|0,(o|0)==(e[s+16>>2]|0)){V0[e[(e[s>>2]|0)+40>>2]&127](s)|0;continue}else{e[r>>2]=o+1;continue}}s=e[t>>2]|0;do if(s){if((e[s+12>>2]|0)==(e[s+16>>2]|0))if((V0[e[(e[s>>2]|0)+36>>2]&127](s)|0)==-1){e[t>>2]=0,s=0;break}else{s=e[t>>2]|0;break}}else s=0;while(0);s=(s|0)==0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)&&(V0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1){e[n>>2]=0,a=32;break}s||(a=33)}else a=32;while(0);(a|0)==32&&s&&(a=33),(a|0)==33&&(e[f>>2]=e[f>>2]|2)}function Ic(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;h=C,C=C+16|0,a=h+4|0,c=h,m=r+8|0,m=V0[e[(e[m>>2]|0)+8>>2]&127](m)|0,r=p[m>>0]|0,r&1?l=e[m+4>>2]|0:l=(r&255)>>>1,r=p[m+12>>0]|0,r&1?r=e[m+16>>2]|0:r=(r&255)>>>1;do if((l|0)!=(0-r|0)){if(e[c>>2]=e[f>>2],e[a>>2]=e[c>>2],r=Qr(n,a,m,m+24|0,o,s,0)|0,l=e[t>>2]|0,(r|0)==(m|0)&(l|0)==12){e[t>>2]=0;break}(l|0)<12&(r-m|0)==12&&(e[t>>2]=l+12)}else e[s>>2]=e[s>>2]|4;while(0);C=h}function Ec(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,2)|0,n=e[s>>2]|0,(r|0)<61&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Pc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,1)|0,n=e[s>>2]|0,(r|0)<7&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Lc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=D1(n,r,s,o,4)|0,e[s>>2]&4||(e[t>>2]=r+-1900),C=l}function Rc(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0;r=e[t>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0))if((V0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1){e[t>>2]=0,r=0;break}else{r=e[t>>2]|0;break}}else r=0;while(0);o=(r|0)==0,r=e[n>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)&&(V0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1){e[n>>2]=0,a=11;break}o?(l=r,a=13):a=12}else a=11;while(0);(a|0)==11&&(o?a=12:(l=0,a=13));e:do if((a|0)==12)e[f>>2]=e[f>>2]|6;else if((a|0)==13){if(r=e[t>>2]|0,o=e[r+12>>2]|0,(o|0)==(e[r+16>>2]|0)?r=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=z[o>>0]|0,(ge[e[(e[s>>2]|0)+36>>2]&63](s,r&255,0)|0)<<24>>24!=37){e[f>>2]=e[f>>2]|4;break}r=e[t>>2]|0,o=r+12|0,s=e[o>>2]|0,(s|0)==(e[r+16>>2]|0)?(V0[e[(e[r>>2]|0)+40>>2]&127](r)|0,r=e[t>>2]|0,r?a=21:r=0):(e[o>>2]=s+1,a=21);do if((a|0)==21&&(e[r+12>>2]|0)==(e[r+16>>2]|0))if((V0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1){e[t>>2]=0,r=0;break}else{r=e[t>>2]|0;break}while(0);r=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)&&(V0[e[(e[l>>2]|0)+36>>2]&127](l)|0)==-1){e[n>>2]=0,a=30;break}if(r)break e}else a=30;while(0);if((a|0)==30&&!r)break;e[f>>2]=e[f>>2]|2}while(0)}function Q1(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0;w=C,C=C+32|0,E=w+16|0,y=w+12|0,A=w+8|0,P=w+4|0,I=w,c=We(f)|0,e[A>>2]=c,u=0,A=c0(37,A|0,44212)|0,d=u,u=0,d&1&&(w=R()|0,ne(c)|0,B(w|0)),ne(c)|0,e[s>>2]=0,c=e[t>>2]|0;e:do if((l|0)!=(a|0)){i:for(;;){h=c,c?(m=e[c+12>>2]|0,(m|0)==(e[c+16>>2]|0)?m=V0[e[(e[c>>2]|0)+36>>2]&127](c)|0:m=e[m>>2]|0,(m|0)==-1?(e[t>>2]=0,c=0,v=1,d=0):(v=0,d=h)):(c=0,v=1,d=h),g=e[n>>2]|0,m=g;do if(g)if(h=e[g+12>>2]|0,(h|0)==(e[g+16>>2]|0)?h=V0[e[(e[g>>2]|0)+36>>2]&127](g)|0:h=e[h>>2]|0,(h|0)!=-1){if(v)break;_=17;break i}else{e[n>>2]=0,m=0,_=15;break}else _=15;while(0);if((_|0)==15)if(_=0,v){_=17;break}else g=0;r:do if((ge[e[(e[A>>2]|0)+52>>2]&63](A,e[l>>2]|0,0)|0)<<24>>24==37){if(h=l+4|0,(h|0)==(a|0)){_=21;break i}switch(v=ge[e[(e[A>>2]|0)+52>>2]&63](A,e[h>>2]|0,0)|0,v<<24>>24){case 48:case 69:{if(g=l+8|0,(g|0)==(a|0)){_=24;break i}l=h,h=ge[e[(e[A>>2]|0)+52>>2]&63](A,e[g>>2]|0,0)|0,c=v;break}default:h=v,c=0}v=e[(e[r>>2]|0)+36>>2]|0,e[P>>2]=d,e[I>>2]=m,e[y>>2]=e[P>>2],e[E>>2]=e[I>>2],d=H1[v&15](r,y,E,f,s,o,h,c)|0,e[t>>2]=d,l=l+8|0}else{if(!(ge[e[(e[A>>2]|0)+12>>2]&63](A,8192,e[l>>2]|0)|0)){if(h=c+12|0,m=e[h>>2]|0,g=c+16|0,(m|0)==(e[g>>2]|0)?m=V0[e[(e[c>>2]|0)+36>>2]&127](c)|0:m=e[m>>2]|0,d=F2[e[(e[A>>2]|0)+28>>2]&63](A,m)|0,(d|0)!=(F2[e[(e[A>>2]|0)+28>>2]&63](A,e[l>>2]|0)|0)){_=61;break i}m=e[h>>2]|0,(m|0)==(e[g>>2]|0)?V0[e[(e[c>>2]|0)+40>>2]&127](c)|0:e[h>>2]=m+4,l=l+4|0;break}do if(l=l+4|0,(l|0)==(a|0)){l=a;break}while(ge[e[(e[A>>2]|0)+12>>2]&63](A,8192,e[l>>2]|0)|0);for(m=g,v=g;;){c?(h=e[c+12>>2]|0,(h|0)==(e[c+16>>2]|0)?h=V0[e[(e[c>>2]|0)+36>>2]&127](c)|0:h=e[h>>2]|0,(h|0)==-1?(e[t>>2]=0,g=1,c=0):g=0):(g=1,c=0);do if(v)if(h=e[v+12>>2]|0,(h|0)==(e[v+16>>2]|0)?h=V0[e[(e[v>>2]|0)+36>>2]&127](v)|0:h=e[h>>2]|0,(h|0)!=-1)if(g^(m|0)==0){d=m,v=m;break}else break r;else{e[n>>2]=0,m=0,_=44;break}else _=44;while(0);if((_|0)==44){if(_=0,g)break r;d=m,v=0}if(h=c+12|0,m=e[h>>2]|0,g=c+16|0,(m|0)==(e[g>>2]|0)?m=V0[e[(e[c>>2]|0)+36>>2]&127](c)|0:m=e[m>>2]|0,!(ge[e[(e[A>>2]|0)+12>>2]&63](A,8192,m)|0))break r;if(m=e[h>>2]|0,(m|0)==(e[g>>2]|0)){V0[e[(e[c>>2]|0)+40>>2]&127](c)|0,m=d;continue}else{e[h>>2]=m+4,m=d;continue}}}while(0);if(c=e[t>>2]|0,!((l|0)!=(a|0)&(e[s>>2]|0)==0))break e}if((_|0)==17){e[s>>2]=4;break}else if((_|0)==21){e[s>>2]=4;break}else if((_|0)==24){e[s>>2]=4;break}else if((_|0)==61){e[s>>2]=4,c=e[t>>2]|0;break}}while(0);c?(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)?l=V0[e[(e[c>>2]|0)+36>>2]&127](c)|0:l=e[l>>2]|0,(l|0)==-1?(e[t>>2]=0,c=0,h=1):h=0):(c=0,h=1),l=e[n>>2]|0;do if(l)if(m=e[l+12>>2]|0,(m|0)==(e[l+16>>2]|0)?l=V0[e[(e[l>>2]|0)+36>>2]&127](l)|0:l=e[m>>2]|0,(l|0)!=-1){if(h)break;_=76;break}else{e[n>>2]=0,_=74;break}else _=74;while(0);return(_|0)==74&&h&&(_=76),(_|0)==76&&(e[s>>2]=e[s>>2]|2),C=w,c|0}function Fc(r){r=r|0}function Oc(r){r=r|0,H(r)}function xc(r){return r=r|0,2}function Mc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Q1(r,c,a,f,s,o,44788,44820)|0,C=l,r|0}function qc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,d=r+8|0,d=V0[e[(e[d>>2]|0)+20>>2]&127](d)|0,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],g=p[d>>0]|0,v=(g&1)==0,n=d+4|0,t=v?n:e[d+8>>2]|0,n=t+((v?(g&255)>>>1:e[n>>2]|0)<<2)|0,e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Q1(r,c,a,f,s,o,t,n)|0,C=l,r|0}function Nc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;if(m=C,C=C+16|0,a=m+8|0,l=m+4|0,c=m,f=We(f)|0,e[l>>2]=f,u=0,l=c0(37,l|0,44212)|0,h=u,u=0,h&1)h=R()|0,ne(f)|0,B(h|0);else return ne(f)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],uo(r,o+24|0,t,a,s,l),C=m,e[t>>2]|0;return 0}function uo(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0;l=C,C=C+16|0,a=l+4|0,c=l,r=r+8|0,r=V0[e[e[r>>2]>>2]&127](r)|0,e[c>>2]=e[f>>2],e[a>>2]=e[c>>2],n=(Gr(n,a,r,r+168|0,o,s,0)|0)-r|0,(n|0)<168&&(e[t>>2]=((n|0)/12|0|0)%7|0),C=l}function Uc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;if(m=C,C=C+16|0,a=m+8|0,l=m+4|0,c=m,f=We(f)|0,e[l>>2]=f,u=0,l=c0(37,l|0,44212)|0,h=u,u=0,h&1)h=R()|0,ne(f)|0,B(h|0);else return ne(f)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],ao(r,o+16|0,t,a,s,l),C=m,e[t>>2]|0;return 0}function ao(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0;l=C,C=C+16|0,a=l+4|0,c=l,r=r+8|0,r=V0[e[(e[r>>2]|0)+4>>2]&127](r)|0,e[c>>2]=e[f>>2],e[a>>2]=e[c>>2],n=(Gr(n,a,r,r+288|0,o,s,0)|0)-r|0,(n|0)<288&&(e[t>>2]=((n|0)/12|0|0)%12|0),C=l}function Bc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;if(m=C,C=C+16|0,a=m+8|0,l=m+4|0,c=m,f=We(f)|0,e[l>>2]=f,u=0,l=c0(37,l|0,44212)|0,h=u,u=0,h&1)h=R()|0,ne(f)|0,B(h|0);else return ne(f)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],co(r,o+20|0,t,a,s,l),C=m,e[t>>2]|0;return 0}function co(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,4)|0,e[s>>2]&4||((r|0)<69?r=r+2e3|0:r=(r+-69|0)>>>0<31?r+1900|0:r,e[t>>2]=r+-1900),C=l}function Qc(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0,Re=0,De=0,oe=0,L0=0,me=0,P0=0,F0=0,u2=0,h2=0,i2=0,S0=0,N0=0,ce=0;S0=C,C=C+144|0,c=S0+132|0,a=S0+116|0,L0=S0+128|0,_=S0+124|0,ve=S0+120|0,me=S0+112|0,P0=S0+108|0,F0=S0+104|0,u2=S0+100|0,h2=S0+96|0,i2=S0+92|0,m=S0+88|0,h=S0+84|0,g=S0+80|0,v=S0+76|0,d=S0+72|0,y=S0+68|0,E=S0+64|0,P=S0+60|0,I=S0+56|0,A=S0+52|0,w=S0+48|0,x=S0+44|0,M=S0+40|0,U=S0+36|0,q=S0+32|0,Q=S0+28|0,r0=S0+24|0,i0=S0+20|0,J=S0+16|0,w0=S0+12|0,le=S0+8|0,Re=S0+4|0,De=S0,e[s>>2]=0,oe=We(f)|0,e[L0>>2]=oe,u=0,L0=c0(37,L0|0,44212)|0,ce=u,u=0,ce&1&&(ce=R()|0,ne(oe)|0,B(ce|0)),ne(oe)|0;do switch(l<<24>>24|0){case 65:case 97:{e[_>>2]=e[n>>2],e[c>>2]=e[_>>2],uo(r,o+24|0,t,c,s,L0),N0=28;break}case 104:case 66:case 98:{e[ve>>2]=e[n>>2],e[c>>2]=e[ve>>2],ao(r,o+16|0,t,c,s,L0),N0=28;break}case 99:{ce=r+8|0,ce=V0[e[(e[ce>>2]|0)+12>>2]&127](ce)|0,e[me>>2]=e[t>>2],e[P0>>2]=e[n>>2],l=p[ce>>0]|0,n=(l&1)==0,N0=ce+4|0,ce=n?N0:e[ce+8>>2]|0,N0=ce+((n?(l&255)>>>1:e[N0>>2]|0)<<2)|0,e[a>>2]=e[me>>2],e[c>>2]=e[P0>>2],N0=Q1(r,a,c,f,s,o,ce,N0)|0,e[t>>2]=N0,N0=28;break}case 101:case 100:{e[F0>>2]=e[n>>2],e[c>>2]=e[F0>>2],Gc(r,o+12|0,t,c,s,L0),N0=28;break}case 68:{e[u2>>2]=e[t>>2],e[h2>>2]=e[n>>2],e[a>>2]=e[u2>>2],e[c>>2]=e[h2>>2],N0=Q1(r,a,c,f,s,o,44820,44852)|0,e[t>>2]=N0,N0=28;break}case 70:{e[i2>>2]=e[t>>2],e[m>>2]=e[n>>2],e[a>>2]=e[i2>>2],e[c>>2]=e[m>>2],N0=Q1(r,a,c,f,s,o,44852,44884)|0,e[t>>2]=N0,N0=28;break}case 72:{e[h>>2]=e[n>>2],e[c>>2]=e[h>>2],Hc(r,o+8|0,t,c,s,L0),N0=28;break}case 73:{e[g>>2]=e[n>>2],e[c>>2]=e[g>>2],Vc(r,o+8|0,t,c,s,L0),N0=28;break}case 106:{e[v>>2]=e[n>>2],e[c>>2]=e[v>>2],zc(r,o+28|0,t,c,s,L0),N0=28;break}case 109:{e[d>>2]=e[n>>2],e[c>>2]=e[d>>2],Yc(r,o+16|0,t,c,s,L0),N0=28;break}case 77:{e[y>>2]=e[n>>2],e[c>>2]=e[y>>2],Xc(r,o+4|0,t,c,s,L0),N0=28;break}case 116:case 110:{e[E>>2]=e[n>>2],e[c>>2]=e[E>>2],jc(r,t,c,s,L0),N0=28;break}case 112:{e[P>>2]=e[n>>2],e[c>>2]=e[P>>2],Wc(r,o+8|0,t,c,s,L0),N0=28;break}case 114:{e[I>>2]=e[t>>2],e[A>>2]=e[n>>2],e[a>>2]=e[I>>2],e[c>>2]=e[A>>2],N0=Q1(r,a,c,f,s,o,44884,44928)|0,e[t>>2]=N0,N0=28;break}case 82:{e[w>>2]=e[t>>2],e[x>>2]=e[n>>2],e[a>>2]=e[w>>2],e[c>>2]=e[x>>2],N0=Q1(r,a,c,f,s,o,44928,44948)|0,e[t>>2]=N0,N0=28;break}case 83:{e[M>>2]=e[n>>2],e[c>>2]=e[M>>2],Zc(r,o,t,c,s,L0),N0=28;break}case 84:{e[U>>2]=e[t>>2],e[q>>2]=e[n>>2],e[a>>2]=e[U>>2],e[c>>2]=e[q>>2],N0=Q1(r,a,c,f,s,o,44948,44980)|0,e[t>>2]=N0,N0=28;break}case 119:{e[Q>>2]=e[n>>2],e[c>>2]=e[Q>>2],Kc(r,o+24|0,t,c,s,L0),N0=28;break}case 120:{ce=e[(e[r>>2]|0)+20>>2]|0,e[r0>>2]=e[t>>2],e[i0>>2]=e[n>>2],e[a>>2]=e[r0>>2],e[c>>2]=e[i0>>2],a=lr[ce&63](r,a,c,f,s,o)|0;break}case 88:{ce=r+8|0,ce=V0[e[(e[ce>>2]|0)+24>>2]&127](ce)|0,e[J>>2]=e[t>>2],e[w0>>2]=e[n>>2],l=p[ce>>0]|0,n=(l&1)==0,N0=ce+4|0,ce=n?N0:e[ce+8>>2]|0,N0=ce+((n?(l&255)>>>1:e[N0>>2]|0)<<2)|0,e[a>>2]=e[J>>2],e[c>>2]=e[w0>>2],N0=Q1(r,a,c,f,s,o,ce,N0)|0,e[t>>2]=N0,N0=28;break}case 121:{e[le>>2]=e[n>>2],e[c>>2]=e[le>>2],co(r,o+20|0,t,c,s,L0),N0=28;break}case 89:{e[Re>>2]=e[n>>2],e[c>>2]=e[Re>>2],Jc(r,o+20|0,t,c,s,L0),N0=28;break}case 37:{e[De>>2]=e[n>>2],e[c>>2]=e[De>>2],$c(r,t,c,s,L0),N0=28;break}default:e[s>>2]=e[s>>2]|4,N0=28}while(0);return(N0|0)==28&&(a=e[t>>2]|0),C=S0,a|0}function Gc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,2)|0,n=e[s>>2]|0,(r+-1|0)>>>0<31&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Hc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,2)|0,n=e[s>>2]|0,(r|0)<24&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Vc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,2)|0,n=e[s>>2]|0,(r+-1|0)>>>0<12&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function zc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,3)|0,n=e[s>>2]|0,(r|0)<366&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Yc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,2)|0,n=e[s>>2]|0,(r|0)<13&(n&4|0)==0?e[t>>2]=r+-1:e[s>>2]=n|4,C=l}function Xc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,2)|0,n=e[s>>2]|0,(r|0)<60&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function jc(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0;e:for(;;){r=e[t>>2]|0;do if(r)if(o=e[r+12>>2]|0,(o|0)==(e[r+16>>2]|0)?r=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[o>>2]|0,(r|0)==-1){e[t>>2]=0,l=1;break}else{l=(e[t>>2]|0)==0;break}else l=1;while(0);o=e[n>>2]|0;do if(o)if(r=e[o+12>>2]|0,(r|0)==(e[o+16>>2]|0)?r=V0[e[(e[o>>2]|0)+36>>2]&127](o)|0:r=e[r>>2]|0,(r|0)!=-1)if(l){l=o;break}else{l=o;break e}else{e[n>>2]=0,a=15;break}else a=15;while(0);if((a|0)==15)if(a=0,l){l=0;break}else l=0;if(r=e[t>>2]|0,o=e[r+12>>2]|0,(o|0)==(e[r+16>>2]|0)?r=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[o>>2]|0,!(ge[e[(e[s>>2]|0)+12>>2]&63](s,8192,r)|0))break;if(r=e[t>>2]|0,o=r+12|0,l=e[o>>2]|0,(l|0)==(e[r+16>>2]|0)){V0[e[(e[r>>2]|0)+40>>2]&127](r)|0;continue}else{e[o>>2]=l+4;continue}}r=e[t>>2]|0;do if(r)if(o=e[r+12>>2]|0,(o|0)==(e[r+16>>2]|0)?r=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[o>>2]|0,(r|0)==-1){e[t>>2]=0,o=1;break}else{o=(e[t>>2]|0)==0;break}else o=1;while(0);do if(l)if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)?r=V0[e[(e[l>>2]|0)+36>>2]&127](l)|0:r=e[r>>2]|0,(r|0)!=-1){if(o)break;a=39;break}else{e[n>>2]=0,a=37;break}else a=37;while(0);(a|0)==37&&o&&(a=39),(a|0)==39&&(e[f>>2]=e[f>>2]|2)}function Wc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;h=C,C=C+16|0,a=h+4|0,c=h,m=r+8|0,m=V0[e[(e[m>>2]|0)+8>>2]&127](m)|0,r=p[m>>0]|0,r&1?l=e[m+4>>2]|0:l=(r&255)>>>1,r=p[m+12>>0]|0,r&1?r=e[m+16>>2]|0:r=(r&255)>>>1;do if((l|0)!=(0-r|0)){if(e[c>>2]=e[f>>2],e[a>>2]=e[c>>2],r=Gr(n,a,m,m+24|0,o,s,0)|0,l=e[t>>2]|0,(r|0)==(m|0)&(l|0)==12){e[t>>2]=0;break}(l|0)<12&(r-m|0)==12&&(e[t>>2]=l+12)}else e[s>>2]=e[s>>2]|4;while(0);C=h}function Zc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,2)|0,n=e[s>>2]|0,(r|0)<61&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Kc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,1)|0,n=e[s>>2]|0,(r|0)<7&(n&4|0)==0?e[t>>2]=r:e[s>>2]=n|4,C=l}function Jc(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[f>>2],e[r>>2]=e[a>>2],r=y1(n,r,s,o,4)|0,e[s>>2]&4||(e[t>>2]=r+-1900),C=l}function $c(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0;r=e[t>>2]|0;do if(r)if(o=e[r+12>>2]|0,(o|0)==(e[r+16>>2]|0)?r=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[o>>2]|0,(r|0)==-1){e[t>>2]=0,l=1;break}else{l=(e[t>>2]|0)==0;break}else l=1;while(0);o=e[n>>2]|0;do if(o)if(r=e[o+12>>2]|0,(r|0)==(e[o+16>>2]|0)?r=V0[e[(e[o>>2]|0)+36>>2]&127](o)|0:r=e[r>>2]|0,(r|0)!=-1)if(l){a=o,c=17;break}else{c=16;break}else{e[n>>2]=0,c=14;break}else c=14;while(0);(c|0)==14&&(l?c=16:(a=0,c=17));e:do if((c|0)==16)e[f>>2]=e[f>>2]|6;else if((c|0)==17){if(r=e[t>>2]|0,o=e[r+12>>2]|0,(o|0)==(e[r+16>>2]|0)?r=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[o>>2]|0,(ge[e[(e[s>>2]|0)+52>>2]&63](s,r,0)|0)<<24>>24!=37){e[f>>2]=e[f>>2]|4;break}r=e[t>>2]|0,o=r+12|0,l=e[o>>2]|0,(l|0)==(e[r+16>>2]|0)?(V0[e[(e[r>>2]|0)+40>>2]&127](r)|0,r=e[t>>2]|0,r?c=25:o=1):(e[o>>2]=l+4,c=25);do if((c|0)==25)if(o=e[r+12>>2]|0,(o|0)==(e[r+16>>2]|0)?r=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[o>>2]|0,(r|0)==-1){e[t>>2]=0,o=1;break}else{o=(e[t>>2]|0)==0;break}while(0);do if(a)if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)?r=V0[e[(e[a>>2]|0)+36>>2]&127](a)|0:r=e[r>>2]|0,(r|0)!=-1){if(o)break e;break}else{e[n>>2]=0,c=37;break}else c=37;while(0);if((c|0)==37&&!o)break;e[f>>2]=e[f>>2]|2}while(0)}function bc(r){r=r|0,Or(r+8|0)}function Or(r){r=r|0;var t=0,n=0,f=0;t=e[r>>2]|0,u=0,n=Te(3)|0,f=u,u=0;do if(!(f&1)){if((t|0)!=(n|0)&&(u=0,A0(188,e[r>>2]|0),f=u,u=0,f&1))break;return}while(0);f=R(0)|0,ie(f)}function eh(r){r=r|0,Or(r+8|0),H(r)}function ih(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0;if(c=C,C=C+112|0,a=c+4|0,n=c,e[n>>2]=a+100,ho(r+8|0,a,n,s,o,l),s=e[n>>2]|0,n=e[t>>2]|0,(a|0)!=(s|0))do{l=p[a>>0]|0;do if(n)if(f=n+24|0,o=e[f>>2]|0,(o|0)==(e[n+28>>2]|0)){t=(F2[e[(e[n>>2]|0)+52>>2]&63](n,l&255)|0)==-1,n=t?0:n;break}else{e[f>>2]=o+1,p[o>>0]=l;break}else n=0;while(0);a=a+1|0}while((a|0)!=(s|0));return C=c,n|0}function ho(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0;m=C,C=C+16|0,c=m,p[c>>0]=37,l=c+1|0,p[l>>0]=s,a=c+2|0,p[a>>0]=o,p[c+3>>0]=0,o<<24>>24&&(p[l>>0]=o,p[a>>0]=s),r=t+(Ju(t|0,(e[n>>2]|0)-t|0,c|0,f|0,e[r>>2]|0)|0)|0,e[n>>2]=r,C=m}function rh(r){r=r|0,Or(r+8|0)}function th(r){r=r|0,Or(r+8|0),H(r)}function nh(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0;if(a=C,C=C+416|0,f=a+8|0,n=a,e[n>>2]=f+400,fh(r+8|0,f,n,s,o,l),r=e[n>>2]|0,n=e[t>>2]|0,(f|0)!=(r|0)){s=f;do f=e[s>>2]|0,n?(o=n+24|0,l=e[o>>2]|0,(l|0)==(e[n+28>>2]|0)?f=F2[e[(e[n>>2]|0)+52>>2]&63](n,f)|0:(e[o>>2]=l+4,e[l>>2]=f),n=(f|0)==-1?0:n):n=0,s=s+4|0;while((s|0)!=(r|0))}return C=a,n|0}function fh(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;if(l=C,C=C+128|0,m=l+16|0,h=l+12|0,a=l,c=l+8|0,e[h>>2]=m+100,ho(r,m,h,f,s,o),s=a,e[s>>2]=0,e[s+4>>2]=0,e[c>>2]=m,s=(e[n>>2]|0)-t>>2,o=s1(e[r>>2]|0)|0,u=0,s=Me(18,t|0,c|0,s|0,a|0)|0,r=u,u=0,r&1&&(s=R()|0,o|0&&(u=0,W(75,o|0)|0,h=u,u=0,h&1)&&(h=R(0)|0,ie(h)),B(s|0)),o|0&&(u=0,W(75,o|0)|0,h=u,u=0,h&1)&&(h=R(0)|0,ie(h)),(s|0)==-1)xr(58955);else{e[n>>2]=t+(s<<2),C=l;return}}function sh(r){r=r|0}function oh(r){r=r|0,H(r)}function lh(r){return r=r|0,127}function uh(r){return r=r|0,127}function ah(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function ch(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function hh(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Sh(r,t){r=r|0,t=t|0,Nn(r,1,45)}function mh(r){return r=r|0,0}function ph(r,t){r=r|0,t=t|0,p[r>>0]=2,p[r+1>>0]=3,p[r+2>>0]=0,p[r+3>>0]=4}function gh(r,t){r=r|0,t=t|0,p[r>>0]=2,p[r+1>>0]=3,p[r+2>>0]=0,p[r+3>>0]=4}function vh(r){r=r|0}function dh(r){r=r|0,H(r)}function kh(r){return r=r|0,127}function _h(r){return r=r|0,127}function Th(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function wh(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Ch(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Ah(r,t){r=r|0,t=t|0,Nn(r,1,45)}function Dh(r){return r=r|0,0}function yh(r,t){r=r|0,t=t|0,p[r>>0]=2,p[r+1>>0]=3,p[r+2>>0]=0,p[r+3>>0]=4}function Ih(r,t){r=r|0,t=t|0,p[r>>0]=2,p[r+1>>0]=3,p[r+2>>0]=0,p[r+3>>0]=4}function Eh(r){r=r|0}function Ph(r){r=r|0,H(r)}function Lh(r){return r=r|0,2147483647}function Rh(r){return r=r|0,2147483647}function Fh(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Oh(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function xh(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Mh(r,t){r=r|0,t=t|0,Qn(r,1,45)}function qh(r){return r=r|0,0}function Nh(r,t){r=r|0,t=t|0,p[r>>0]=2,p[r+1>>0]=3,p[r+2>>0]=0,p[r+3>>0]=4}function Uh(r,t){r=r|0,t=t|0,p[r>>0]=2,p[r+1>>0]=3,p[r+2>>0]=0,p[r+3>>0]=4}function Bh(r){r=r|0}function Qh(r){r=r|0,H(r)}function Gh(r){return r=r|0,2147483647}function Hh(r){return r=r|0,2147483647}function Vh(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function zh(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Yh(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Xh(r,t){r=r|0,t=t|0,Qn(r,1,45)}function jh(r){return r=r|0,0}function Wh(r,t){r=r|0,t=t|0,p[r>>0]=2,p[r+1>>0]=3,p[r+2>>0]=0,p[r+3>>0]=4}function Zh(r,t){r=r|0,t=t|0,p[r>>0]=2,p[r+1>>0]=3,p[r+2>>0]=0,p[r+3>>0]=4}function Kh(r){r=r|0}function Jh(r){r=r|0,H(r)}function $h(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;if(U=C,C=C+240|0,x=U+24|0,M=U,r=U+136|0,Q=U+16|0,w=U+12|0,q=U+8|0,g=U+134|0,c=U+4|0,_=U+124|0,e[Q>>2]=r,r0=Q+4|0,e[r0>>2]=189,m=r+100|0,u=0,a=W(68,s|0)|0,A=u,u=0,A&1)c=R()|0,e[Q>>2]=0,a=189,J=45;else{e[q>>2]=a,u=0,r=c0(37,q|0,44220)|0,A=u,u=0;e:do if(!(A&1)&&(p[g>>0]=0,e[c>>2]=e[n>>2],h=e[s+4>>2]|0,u=0,e[x>>2]=e[c>>2],h=Pr(1,t|0,x|0,f|0,q|0,h|0,o|0,g|0,r|0,Q|0,w|0,m|0)|0,A=u,u=0,!(A&1))){i:do if(h){if(u=0,Me(e[(e[r>>2]|0)+32>>2]|0,r|0,58976,58986,_|0)|0,A=u,u=0,A&1){J=10;break e}c=e[w>>2]|0,m=e[Q>>2]|0,r=c-m|0,(r|0)>98?(r=S2(r+2|0)|0,a=r,r?J=13:(u=0,be(6),A=u,u=0,A&1||(r=0,J=13))):(a=0,r=x,J=13);do if((J|0)==13){if(p[g>>0]|0&&(p[r>>0]=45,r=r+1|0),I=_+10|0,A=_,m>>>0>>0){h=_+1|0,f=h+1|0,s=f+1|0,g=s+1|0,v=g+1|0,d=v+1|0,y=d+1|0,E=y+1|0,P=E+1|0;do{c=p[m>>0]|0;do if((p[_>>0]|0)!=c<<24>>24)if((p[h>>0]|0)!=c<<24>>24)if((p[f>>0]|0)!=c<<24>>24)if((p[s>>0]|0)!=c<<24>>24)if((p[g>>0]|0)==c<<24>>24)c=g;else{if((p[v>>0]|0)==c<<24>>24){c=v;break}if((p[d>>0]|0)==c<<24>>24){c=d;break}if((p[y>>0]|0)==c<<24>>24){c=y;break}if((p[E>>0]|0)==c<<24>>24){c=E;break}c=(p[P>>0]|0)==c<<24>>24?P:I}else c=s;else c=f;else c=h;else c=_;while(0);p[r>>0]=p[58976+(c-A)>>0]|0,m=m+1|0,r=r+1|0}while(m>>>0<(e[w>>2]|0)>>>0)}if(p[r>>0]=0,e[M>>2]=l,(pl(x,58987,M)|0)!=1&&(u=0,A0(190,58991),l=u,u=0,l&1))break;a&&ye(a);break i}while(0);if(r=R()|0,!a){c=r,a=Q;break e}ye(a),c=r,a=Q;break e}while(0);r=e[t>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,r=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1){J=10;break e}if((r|0)==-1){e[t>>2]=0,r=0;break}else{r=e[t>>2]|0;break}}}else r=0;while(0);a=(r|0)==0,r=e[n>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,r=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1){J=10;break e}if((r|0)==-1){e[n>>2]=0,J=37;break}}a||(J=38)}else J=37;while(0);return(J|0)==37&&a&&(J=38),(J|0)==38&&(e[o>>2]=e[o>>2]|2),a=e[t>>2]|0,ne(e[q>>2]|0)|0,r=e[Q>>2]|0,e[Q>>2]=0,r|0&&(u=0,A0(e[r0>>2]|0,r|0),J=u,u=0,J&1)&&(J=R(0)|0,ie(J)),C=U,a|0}else J=10;while(0);(J|0)==10&&(c=R()|0,a=Q),ne(e[q>>2]|0)|0,r=e[a>>2]|0,e[a>>2]=0,r?(a=e[r0>>2]|0,J=45):i0=c}return(J|0)==45&&(u=0,A0(a|0,r|0),J=u,u=0,J&1?(J=R(0)|0,ie(J)):i0=c),B(i0|0),0}function bh(r){r=r|0}function eS(r,t,n,f,s,o,l,a,c,m,h){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0;var g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0,Re=0,De=0,oe=0,L0=0,me=0,P0=0,F0=0,u2=0,h2=0,i2=0,S0=0,N0=0,ce=0,je=0,Be=0,Ze=0,m2=0,t2=0,V1=0,d2=0;t2=C,C=C+512|0,L0=t2+88|0,y=t2+96|0,d2=t2+80|0,u2=t2+72|0,F0=t2+68|0,h2=t2+500|0,me=t2+497|0,i2=t2+496|0,ce=t2+56|0,m2=t2+44|0,Be=t2+32|0,je=t2+20|0,Ze=t2+8|0,P0=t2+4|0,N0=t2,e[L0>>2]=h,e[d2>>2]=y,V1=d2+4|0,e[V1>>2]=189,e[u2>>2]=y,e[F0>>2]=y+400,e[ce>>2]=0,e[ce+4>>2]=0,e[ce+8>>2]=0,e[m2>>2]=0,e[m2+4>>2]=0,e[m2+8>>2]=0,e[Be>>2]=0,e[Be+4>>2]=0,e[Be+8>>2]=0,e[je>>2]=0,e[je+4>>2]=0,e[je+8>>2]=0,e[Ze>>2]=0,e[Ze+4>>2]=0,e[Ze+8>>2]=0,u=0,Ei(1,n|0,f|0,h2|0,me|0,i2|0,ce|0,m2|0,Be|0,je|0,P0|0),oe=u,u=0;e:do if(oe&1)a=R()|0;else{e[m>>2]=e[c>>2],J=a+8|0,w0=Be+4|0,ve=je+4|0,le=je+8|0,Re=je+1|0,De=Be+8|0,oe=Be+1|0,_=(s&512|0)!=0,w=m2+8|0,x=m2+1|0,M=m2+4|0,U=Ze+4|0,q=Ze+8|0,Q=Ze+1|0,r0=h2+3|0,i0=ce+4|0,A=0,d=0;i:for(;;){h=e[r>>2]|0;do if(h){if((e[h+12>>2]|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,I=u,u=0,I&1){S0=24;break i}if((h|0)==-1){e[r>>2]=0,h=0;break}else{h=e[r>>2]|0;break}}}else h=0;while(0);h=(h|0)==0,a=e[t>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0))if(h){I=a;break}else{S0=235;break i}if(u=0,n=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,I=u,u=0,I&1){S0=24;break i}if((n|0)!=-1)if(h){I=a;break}else{S0=235;break i}else{e[t>>2]=0,S0=15;break}}else S0=15;while(0);if((S0|0)==15)if(S0=0,h){S0=235;break}else I=0;r:do switch(p[h2+A>>0]|0){case 1:{if((A|0)!=3){if(h=e[r>>2]|0,a=e[h+12>>2]|0,(a|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,S0=u,u=0,S0&1){S0=24;break i}}else h=z[a>>0]|0;if((h&255)<<24>>24<=-1){S0=40;break i}if(!(F[(e[J>>2]|0)+(h<<24>>24<<1)>>1]&8192)){S0=40;break i}if(h=e[r>>2]|0,a=h+12|0,n=e[a>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,S0=u,u=0,S0&1){S0=24;break i}}else e[a>>2]=n+1,h=z[n>>0]|0;if(u=0,b(67,Ze|0,h&255|0),S0=u,u=0,S0&1){S0=24;break i}else h=I,f=I,S0=42}break}case 0:{(A|0)!=3&&(h=I,f=I,S0=42);break}case 3:{if(a=p[Be>>0]|0,h=a&1?e[w0>>2]|0:(a&255)>>>1,n=p[je>>0]|0,f=n&1?e[ve>>2]|0:(n&255)>>>1,(h|0)!=(0-f|0)){if(!h){if(h=e[r>>2]|0,a=e[h+12>>2]|0,(a|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,I=u,u=0,I&1){S0=24;break i}a=p[je>>0]|0}else h=z[a>>0]|0,a=n;if((h&255)<<24>>24!=(p[(a&1?e[le>>2]|0:Re)>>0]|0))break r;if(h=e[r>>2]|0,a=h+12|0,n=e[a>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,I=u,u=0,I&1){S0=24;break i}}else e[a>>2]=n+1;p[l>>0]=1,I=p[je>>0]|0,d=(I&1?e[ve>>2]|0:(I&255)>>>1)>>>0>1?je:d;break r}if(s=e[r>>2]|0,g=e[s+12>>2]|0,n=e[s+16>>2]|0,h=(g|0)==(n|0),!f){if(h){if(u=0,h=W(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,I=u,u=0,I&1){S0=24;break i}a=p[Be>>0]|0}else h=z[g>>0]|0;if((h&255)<<24>>24!=(p[(a&1?e[De>>2]|0:oe)>>0]|0)){p[l>>0]=1;break r}if(h=e[r>>2]|0,a=h+12|0,n=e[a>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,I=u,u=0,I&1){S0=24;break i}}else e[a>>2]=n+1;I=p[Be>>0]|0,d=(I&1?e[w0>>2]|0:(I&255)>>>1)>>>0>1?Be:d;break r}if(h){if(u=0,h=W(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,I=u,u=0,I&1){S0=24;break i}n=e[r>>2]|0,a=p[Be>>0]|0,s=n,g=e[n+12>>2]|0,n=e[n+16>>2]|0}else h=z[g>>0]|0;if(f=s+12|0,n=(g|0)==(n|0),(h&255)<<24>>24==(p[(a&1?e[De>>2]|0:oe)>>0]|0)){if(n){if(u=0,W(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,I=u,u=0,I&1){S0=24;break i}}else e[f>>2]=g+1;I=p[Be>>0]|0,d=(I&1?e[w0>>2]|0:(I&255)>>>1)>>>0>1?Be:d;break r}if(n){if(u=0,h=W(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,I=u,u=0,I&1){S0=24;break i}}else h=z[g>>0]|0;if((h&255)<<24>>24!=(p[(p[je>>0]&1?e[le>>2]|0:Re)>>0]|0)){S0=104;break i}if(h=e[r>>2]|0,a=h+12|0,n=e[a>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,I=u,u=0,I&1){S0=24;break i}}else e[a>>2]=n+1;p[l>>0]=1,I=p[je>>0]|0,d=(I&1?e[ve>>2]|0:(I&255)>>>1)>>>0>1?je:d}break}case 2:{if(!(A>>>0<2|(d|0)!=0)&&!(_|(A|0)==2&(p[r0>>0]|0)!=0)){d=0;break r}E=p[m2>>0]|0,h=(E&1)==0,P=e[w>>2]|0,n=h?x:P,v=n;t:do if(A|0&&(z[h2+(A+-1)>>0]|0)<2){g=h?(E&255)>>>1:e[M>>2]|0,f=n+g|0,s=e[J>>2]|0;n:do if(!g)a=v;else{g=n,a=v;do{if(h=p[g>>0]|0,h<<24>>24<=-1||!(F[s+(h<<24>>24<<1)>>1]&8192))break n;g=g+1|0,a=g}while((g|0)!=(f|0))}while(0);if(f=a-v|0,s=p[Ze>>0]|0,h=(s&1)==0,s=h?(s&255)>>>1:e[U>>2]|0,s>>>0>=f>>>0){if(h=h?Q:e[q>>2]|0,g=h+s|0,(a|0)!=(v|0))for(h=h+(s-f)|0;;){if((p[h>>0]|0)!=(p[n>>0]|0)){a=v;break t}if(h=h+1|0,(h|0)==(g|0))break;n=n+1|0}}else a=v}else a=v;while(0);h=(E&1)==0,h=(h?x:P)+(h?(E&255)>>>1:e[M>>2]|0)|0;t:do if((a|0)!=(h|0))for(s=I,f=I,h=a;;){a=e[r>>2]|0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,a=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,I=u,u=0,I&1){S0=21;break i}if((a|0)==-1){e[r>>2]=0,a=0;break}else{a=e[r>>2]|0;break}}}else a=0;while(0);n=(a|0)==0;do if(f){if((e[f+12>>2]|0)!=(e[f+16>>2]|0))if(n){a=s,g=f;break}else break t;if(u=0,a=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,I=u,u=0,I&1){S0=21;break i}if((a|0)!=-1)if(n^(s|0)==0){a=s,g=s;break}else break t;else{e[t>>2]=0,a=0,S0=131;break}}else a=s,S0=131;while(0);if((S0|0)==131){if(S0=0,n)break t;g=0}if(n=e[r>>2]|0,f=e[n+12>>2]|0,(f|0)==(e[n+16>>2]|0)){if(u=0,n=W(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,I=u,u=0,I&1){S0=21;break i}}else n=z[f>>0]|0;if((n&255)<<24>>24!=(p[h>>0]|0))break t;if(n=e[r>>2]|0,f=n+12|0,s=e[f>>2]|0,(s|0)==(e[n+16>>2]|0)){if(u=0,W(e[(e[n>>2]|0)+40>>2]|0,n|0)|0,I=u,u=0,I&1){S0=21;break i}}else e[f>>2]=s+1;if(h=h+1|0,n=p[m2>>0]|0,I=(n&1)==0,n=(I?x:e[w>>2]|0)+(I?(n&255)>>>1:e[M>>2]|0)|0,(h|0)==(n|0)){h=n;break}else s=a,f=g}while(0);if(_&&(I=p[m2>>0]|0,P=(I&1)==0,(h|0)!=((P?x:e[w>>2]|0)+(P?(I&255)>>>1:e[M>>2]|0)|0))){S0=143;break i}break}case 4:{v=p[i2>>0]|0,a=I,s=I,h=0;t:for(;;){n=e[r>>2]|0;do if(n){if((e[n+12>>2]|0)==(e[n+16>>2]|0)){if(u=0,n=W(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,I=u,u=0,I&1){S0=23;break i}if((n|0)==-1){e[r>>2]=0,n=0;break}else{n=e[r>>2]|0;break}}}else n=0;while(0);f=(n|0)==0;do if(s){if((e[s+12>>2]|0)!=(e[s+16>>2]|0))if(f){g=a;break}else{f=a;break t}if(u=0,n=W(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,I=u,u=0,I&1){S0=23;break i}if((n|0)!=-1)if(f^(a|0)==0){g=a,s=a;break}else{f=a;break t}else{e[t>>2]=0,a=0,S0=156;break}}else S0=156;while(0);if((S0|0)==156)if(S0=0,f){f=a;break}else g=a,s=0;if(a=e[r>>2]|0,n=e[a+12>>2]|0,(n|0)==(e[a+16>>2]|0)){if(u=0,a=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,I=u,u=0,I&1){S0=23;break i}}else a=z[n>>0]|0;if(n=a&255,n<<24>>24>-1&&F[(e[J>>2]|0)+(a<<24>>24<<1)>>1]&2048){if(a=e[m>>2]|0,(a|0)==(e[L0>>2]|0)){if(u=0,u0(12,c|0,m|0,L0|0),I=u,u=0,I&1){S0=23;break i}a=e[m>>2]|0}e[m>>2]=a+1,p[a>>0]=n,h=h+1|0}else{if(I=p[ce>>0]|0,!(n<<24>>24==v<<24>>24&(h|0?((I&1?e[i0>>2]|0:(I&255)>>>1)|0)!=0:0))){f=g;break}if((y|0)==(e[F0>>2]|0)){if(u=0,u0(13,d2|0,u2|0,F0|0),I=u,u=0,I&1){S0=23;break i}y=e[u2>>2]|0}I=y+4|0,e[u2>>2]=I,e[y>>2]=h,y=I,h=0}if(a=e[r>>2]|0,n=a+12|0,f=e[n>>2]|0,(f|0)==(e[a+16>>2]|0))if(u=0,W(e[(e[a>>2]|0)+40>>2]|0,a|0)|0,I=u,u=0,I&1){S0=23;break i}else{a=g;continue}else{e[n>>2]=f+1,a=g;continue}}if(h|0&&(e[d2>>2]|0)!=(y|0)){if((y|0)==(e[F0>>2]|0)){if(u=0,u0(13,d2|0,u2|0,F0|0),I=u,u=0,I&1){S0=24;break i}y=e[u2>>2]|0}I=y+4|0,e[u2>>2]=I,e[y>>2]=h,y=I}if(g=e[P0>>2]|0,(g|0)>0){h=e[r>>2]|0;do if(h){if((e[h+12>>2]|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,I=u,u=0,I&1){S0=24;break i}if((h|0)==-1){e[r>>2]=0,h=0;break}else{h=e[r>>2]|0;break}}}else h=0;while(0);h=(h|0)==0;do if(f){if((e[f+12>>2]|0)==(e[f+16>>2]|0)){if(u=0,a=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,I=u,u=0,I&1){S0=24;break i}if((a|0)==-1){e[t>>2]=0,S0=193;break}}if(!h){S0=198;break i}}else S0=193;while(0);if((S0|0)==193)if(S0=0,h){S0=198;break i}else f=0;if(h=e[r>>2]|0,a=e[h+12>>2]|0,(a|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,I=u,u=0,I&1){S0=24;break i}}else h=z[a>>0]|0;if((h&255)<<24>>24!=(p[me>>0]|0)){S0=198;break i}if(h=e[r>>2]|0,a=h+12|0,n=e[a>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,I=u,u=0,I&1){S0=24;break i}}else e[a>>2]=n+1;if((g|0)>0)for(s=f,n=f,v=g;;){h=e[r>>2]|0;do if(h){if((e[h+12>>2]|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,I=u,u=0,I&1){S0=22;break i}if((h|0)==-1){e[r>>2]=0,h=0;break}else{h=e[r>>2]|0;break}}}else h=0;while(0);a=(h|0)==0;do if(n){if((e[n+12>>2]|0)!=(e[n+16>>2]|0))if(a){h=s,g=n;break}else{S0=222;break i}if(u=0,h=W(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,I=u,u=0,I&1){S0=22;break i}if((h|0)!=-1)if(a^(s|0)==0){h=s,g=s;break}else{S0=222;break i}else{e[t>>2]=0,h=0,S0=215;break}}else h=s,S0=215;while(0);if((S0|0)==215)if(S0=0,a){S0=222;break i}else g=0;if(a=e[r>>2]|0,n=e[a+12>>2]|0,(n|0)==(e[a+16>>2]|0)){if(u=0,a=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,I=u,u=0,I&1){S0=22;break i}}else a=z[n>>0]|0;if((a&255)<<24>>24<=-1){S0=222;break i}if(!(F[(e[J>>2]|0)+(a<<24>>24<<1)>>1]&2048)){S0=222;break i}if((e[m>>2]|0)==(e[L0>>2]|0)&&(u=0,u0(12,c|0,m|0,L0|0),I=u,u=0,I&1)){S0=22;break i}if(a=e[r>>2]|0,n=e[a+12>>2]|0,(n|0)==(e[a+16>>2]|0)){if(u=0,a=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,I=u,u=0,I&1){S0=22;break i}}else a=z[n>>0]|0;if(n=e[m>>2]|0,e[m>>2]=n+1,p[n>>0]=a,a=v,v=v+-1|0,e[P0>>2]=v,n=e[r>>2]|0,f=n+12|0,s=e[f>>2]|0,(s|0)==(e[n+16>>2]|0)){if(u=0,W(e[(e[n>>2]|0)+40>>2]|0,n|0)|0,I=u,u=0,I&1){S0=22;break i}}else e[f>>2]=s+1;if((a|0)<=1)break;s=h,n=g}}if((e[m>>2]|0)==(e[c>>2]|0)){S0=233;break i}break}default:}while(0);r:do if((S0|0)==42)for(;;){S0=0,a=e[r>>2]|0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,a=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,I=u,u=0,I&1){S0=20;break i}if((a|0)==-1){e[r>>2]=0,a=0;break}else{a=e[r>>2]|0;break}}}else a=0;while(0);n=(a|0)==0;do if(f){if((e[f+12>>2]|0)!=(e[f+16>>2]|0))if(n){s=h;break}else break r;if(u=0,a=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,I=u,u=0,I&1){S0=20;break i}if((a|0)!=-1)if(n^(h|0)==0){s=h,f=h;break}else break r;else{e[t>>2]=0,h=0,S0=54;break}}else S0=54;while(0);if((S0|0)==54){if(S0=0,n)break r;s=h,f=0}if(h=e[r>>2]|0,a=e[h+12>>2]|0,(a|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,I=u,u=0,I&1){S0=20;break i}}else h=z[a>>0]|0;if((h&255)<<24>>24<=-1||!(F[(e[J>>2]|0)+(h<<24>>24<<1)>>1]&8192))break r;if(h=e[r>>2]|0,a=h+12|0,n=e[a>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,S0=u,u=0,S0&1){S0=20;break i}}else e[a>>2]=n+1,h=z[n>>0]|0;if(u=0,b(67,Ze|0,h&255|0),S0=u,u=0,S0&1){S0=20;break i}else h=s,S0=42}while(0);if(A=A+1|0,A>>>0>=4){S0=235;break}}i:switch(S0|0){case 20:{a=R()|0;break e}case 21:{a=R()|0;break e}case 22:{a=R()|0;break e}case 23:{a=R()|0;break e}case 24:{a=R()|0;break e}case 40:{e[o>>2]=e[o>>2]|4,a=0;break}case 104:{e[o>>2]=e[o>>2]|4,a=0;break}case 143:{e[o>>2]=e[o>>2]|4,a=0;break}case 198:{e[o>>2]=e[o>>2]|4,a=0;break}case 222:{e[o>>2]=e[o>>2]|4,a=0;break}case 233:{e[o>>2]=e[o>>2]|4,a=0;break}case 235:{r:do if(d){s=d+1|0,g=d+8|0,v=d+4|0,n=1;t:for(;;){if(h=p[d>>0]|0,h&1?h=e[v>>2]|0:h=(h&255)>>>1,n>>>0>=h>>>0)break r;h=e[r>>2]|0;do if(h){if((e[h+12>>2]|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,m=u,u=0,m&1){S0=19;break t}if((h|0)==-1){e[r>>2]=0,h=0;break}else{h=e[r>>2]|0;break}}}else h=0;while(0);a=(h|0)==0,h=e[t>>2]|0;do if(h){if((e[h+12>>2]|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,m=u,u=0,m&1){S0=19;break t}if((h|0)==-1){e[t>>2]=0,S0=253;break}}if(!a){S0=260;break t}}else S0=253;while(0);if((S0|0)==253&&(S0=0,a)){S0=260;break}if(h=e[r>>2]|0,a=e[h+12>>2]|0,(a|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,m=u,u=0,m&1){S0=19;break}}else h=z[a>>0]|0;if(p[d>>0]&1?a=e[g>>2]|0:a=s,(h&255)<<24>>24!=(p[a+n>>0]|0)){S0=260;break}if(h=n+1|0,a=e[r>>2]|0,n=a+12|0,f=e[n>>2]|0,(f|0)==(e[a+16>>2]|0))if(u=0,W(e[(e[a>>2]|0)+40>>2]|0,a|0)|0,m=u,u=0,m&1){S0=19;break}else{n=h;continue}else{e[n>>2]=f+1,n=h;continue}}if((S0|0)==19){a=R()|0;break e}else if((S0|0)==260){e[o>>2]=e[o>>2]|4,a=0;break i}}while(0);h=e[d2>>2]|0,(h|0)!=(y|0)&&(e[N0>>2]=0,R2(ce,h,y,N0),(e[N0>>2]|0)!=0)?(e[o>>2]=e[o>>2]|4,a=0):a=1;break}}return V(Ze),V(je),V(Be),V(m2),V(ce),h=e[d2>>2]|0,e[d2>>2]=0,h|0&&(u=0,A0(e[V1>>2]|0,h|0),d2=u,u=0,d2&1)&&(d2=R(0)|0,ie(d2)),C=t2,a|0}while(0);return V(Ze),V(je),V(Be),V(m2),V(ce),h=e[d2>>2]|0,e[d2>>2]=0,h|0&&(u=0,A0(e[V1>>2]|0,h|0),d2=u,u=0,d2&1)&&(d2=R(0)|0,ie(d2)),B(a|0),0}function xr(r){r=r|0;var t=0;t=B0(8)|0,u=0,b(90,t|0,r|0),r=u,u=0,r&1?(r=R()|0,Q0(t|0),B(r|0)):Se(t|0,616,80)}function iS(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0;if(A=C,C=C+144|0,a=A+24|0,r=A+32|0,_=A+16|0,y=A+8|0,g=A+4|0,v=A+28|0,c=A,e[_>>2]=r,M=_+4|0,e[M>>2]=189,m=r+100|0,u=0,I=W(68,s|0)|0,h=u,u=0,h&1)a=R()|0,e[_>>2]=0,x=36;else{e[g>>2]=I,u=0,h=c0(37,g|0,44220)|0,r=u,u=0;e:do if(!(r&1)&&(p[v>>0]=0,E=e[n>>2]|0,e[c>>2]=E,d=e[s+4>>2]|0,P=E,u=0,e[a>>2]=e[c>>2],d=Pr(1,t|0,a|0,f|0,g|0,d|0,o|0,v|0,h|0,_|0,y|0,m|0)|0,s=u,u=0,!(s&1))){if(d){if(p[l>>0]&1?(p[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(p[l+1>>0]=0,p[l>>0]=0),p[v>>0]|0&&(u=0,r=c0(e[(e[h>>2]|0)+28>>2]|0,h|0,45)|0,s=u,u=0,s&1||(u=0,b(67,l|0,r|0),s=u,u=0,s&1))||(u=0,c=c0(e[(e[h>>2]|0)+28>>2]|0,h|0,48)|0,s=u,u=0,s&1))break;r=e[_>>2]|0,m=e[y>>2]|0,a=m+-1|0;i:do if(r>>>0>>0)do{if((p[r>>0]|0)!=c<<24>>24)break i;r=r+1|0}while(r>>>0>>0);while(0);if(u=0,ee(32,l|0,r|0,m|0)|0,l=u,u=0,l&1)break}r=e[t>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,r=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1)break e;if((r|0)==-1){e[t>>2]=0,r=0;break}else{r=e[t>>2]|0;break}}}else r=0;while(0);a=(r|0)==0;do if(E){if((e[P+12>>2]|0)==(e[P+16>>2]|0)){if(u=0,r=W(e[(e[E>>2]|0)+36>>2]|0,P|0)|0,P=u,u=0,P&1)break e;if((r|0)==-1){e[n>>2]=0,x=29;break}}a||(x=30)}else x=29;while(0);return(x|0)==29&&a&&(x=30),(x|0)==30&&(e[o>>2]=e[o>>2]|2),a=e[t>>2]|0,ne(I)|0,r=e[_>>2]|0,e[_>>2]=0,r|0&&(u=0,A0(e[M>>2]|0,r|0),M=u,u=0,M&1)&&(M=R(0)|0,ie(M)),C=A,a|0}while(0);a=R()|0,ne(I)|0,r=e[_>>2]|0,e[_>>2]=0,r?x=36:w=a}return(x|0)==36&&(u=0,A0(e[M>>2]|0,r|0),M=u,u=0,M&1?(M=R(0)|0,ie(M)):w=a),B(w|0),0}function rS(r,t,n,f,s,o,l,a,c,m){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0;var h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0;x=C,C=C+112|0,h=x+100|0,g=x+88|0,v=x+76|0,d=x+64|0,y=x+52|0,E=x+48|0,P=x+36|0,I=x+24|0,A=x+12|0,_=x;do if(r)if(r=I2(t,43828)|0,Ae[e[(e[r>>2]|0)+44>>2]&127](h,r),_=e[h>>2]|0,p[n>>0]=_,p[n+1>>0]=_>>8,p[n+2>>0]=_>>16,p[n+3>>0]=_>>24,Ae[e[(e[r>>2]|0)+32>>2]&127](g,r),p[c>>0]&1?(p[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(p[c+1>>0]=0,p[c>>0]=0),u=0,b(91,c|0,0),n=u,u=0,n&1&&(n=R(0)|0,ie(n)),e[c>>2]=e[g>>2],e[c+4>>2]=e[g+4>>2],e[c+8>>2]=e[g+8>>2],e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,V(g),Ae[e[(e[r>>2]|0)+28>>2]&127](v,r),p[a>>0]&1?(p[e[a+8>>2]>>0]=0,e[a+4>>2]=0):(p[a+1>>0]=0,p[a>>0]=0),u=0,b(91,a|0,0),n=u,u=0,n&1&&(n=R(0)|0,ie(n)),e[a>>2]=e[v>>2],e[a+4>>2]=e[v+4>>2],e[a+8>>2]=e[v+8>>2],e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,V(v),a=V0[e[(e[r>>2]|0)+12>>2]&127](r)|0,p[f>>0]=a,a=V0[e[(e[r>>2]|0)+16>>2]&127](r)|0,p[s>>0]=a,Ae[e[(e[r>>2]|0)+20>>2]&127](d,r),p[o>>0]&1?(p[e[o+8>>2]>>0]=0,e[o+4>>2]=0):(p[o+1>>0]=0,p[o>>0]=0),u=0,b(91,o|0,0),s=u,u=0,s&1&&(s=R(0)|0,ie(s)),e[o>>2]=e[d>>2],e[o+4>>2]=e[d+4>>2],e[o+8>>2]=e[d+8>>2],e[d>>2]=0,e[d+4>>2]=0,e[d+8>>2]=0,V(d),Ae[e[(e[r>>2]|0)+24>>2]&127](y,r),p[l>>0]&1?(p[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(p[l+1>>0]=0,p[l>>0]=0),u=0,b(91,l|0,0),s=u,u=0,s&1)s=R(0)|0,ie(s);else{e[l>>2]=e[y>>2],e[l+4>>2]=e[y+4>>2],e[l+8>>2]=e[y+8>>2],e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,V(y),w=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}else if(r=I2(t,43764)|0,Ae[e[(e[r>>2]|0)+44>>2]&127](E,r),E=e[E>>2]|0,p[n>>0]=E,p[n+1>>0]=E>>8,p[n+2>>0]=E>>16,p[n+3>>0]=E>>24,Ae[e[(e[r>>2]|0)+32>>2]&127](P,r),p[c>>0]&1?(p[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(p[c+1>>0]=0,p[c>>0]=0),u=0,b(91,c|0,0),n=u,u=0,n&1&&(n=R(0)|0,ie(n)),e[c>>2]=e[P>>2],e[c+4>>2]=e[P+4>>2],e[c+8>>2]=e[P+8>>2],e[P>>2]=0,e[P+4>>2]=0,e[P+8>>2]=0,V(P),Ae[e[(e[r>>2]|0)+28>>2]&127](I,r),p[a>>0]&1?(p[e[a+8>>2]>>0]=0,e[a+4>>2]=0):(p[a+1>>0]=0,p[a>>0]=0),u=0,b(91,a|0,0),n=u,u=0,n&1&&(n=R(0)|0,ie(n)),e[a>>2]=e[I>>2],e[a+4>>2]=e[I+4>>2],e[a+8>>2]=e[I+8>>2],e[I>>2]=0,e[I+4>>2]=0,e[I+8>>2]=0,V(I),a=V0[e[(e[r>>2]|0)+12>>2]&127](r)|0,p[f>>0]=a,a=V0[e[(e[r>>2]|0)+16>>2]&127](r)|0,p[s>>0]=a,Ae[e[(e[r>>2]|0)+20>>2]&127](A,r),p[o>>0]&1?(p[e[o+8>>2]>>0]=0,e[o+4>>2]=0):(p[o+1>>0]=0,p[o>>0]=0),u=0,b(91,o|0,0),s=u,u=0,s&1&&(s=R(0)|0,ie(s)),e[o>>2]=e[A>>2],e[o+4>>2]=e[A+4>>2],e[o+8>>2]=e[A+8>>2],e[A>>2]=0,e[A+4>>2]=0,e[A+8>>2]=0,V(A),Ae[e[(e[r>>2]|0)+24>>2]&127](_,r),p[l>>0]&1?(p[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(p[l+1>>0]=0,p[l>>0]=0),u=0,b(91,l|0,0),s=u,u=0,s&1)s=R(0)|0,ie(s);else{e[l>>2]=e[_>>2],e[l+4>>2]=e[_+4>>2],e[l+8>>2]=e[_+8>>2],e[_>>2]=0,e[_+4>>2]=0,e[_+8>>2]=0,V(_),w=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}while(0);e[m>>2]=w,C=x}function R2(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0;s=p[r>>0]|0,l=r+4|0,o=e[l>>2]|0;e:do if((s&1?o:(s&255)>>>1)|0){if((t|0)!=(n|0)){if(s=n+-4|0,s>>>0>t>>>0){o=t;do a=e[o>>2]|0,e[o>>2]=e[s>>2],e[s>>2]=a,o=o+4|0,s=s+-4|0;while(o>>>0>>0)}s=p[r>>0]|0,o=e[l>>2]|0}a=(s&1)==0,l=a?r+1|0:e[r+8>>2]|0,n=n+-4|0,r=l+(a?(s&255)>>>1:o)|0,o=p[l>>0]|0,s=o<<24>>24<1|o<<24>>24==127;i:do if(n>>>0>t>>>0){for(;!(!s&&(o<<24>>24|0)!=(e[t>>2]|0));)if(l=(r-l|0)>1?l+1|0:l,t=t+4|0,o=p[l>>0]|0,s=o<<24>>24<1|o<<24>>24==127,t>>>0>=n>>>0)break i;e[f>>2]=4;break e}while(0);!s&&((e[n>>2]|0)+-1|0)>>>0>=o<<24>>24>>>0&&(e[f>>2]=4)}while(0)}function tS(r){r=r|0}function nS(r){r=r|0,H(r)}function fS(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;if(U=C,C=C+576|0,_=U+424|0,M=U,r=U+24|0,Q=U+16|0,w=U+12|0,q=U+8|0,g=U+464|0,c=U+4|0,x=U+468|0,e[Q>>2]=r,i0=Q+4|0,e[i0>>2]=189,m=r+400|0,u=0,a=W(68,s|0)|0,A=u,u=0,A&1)c=R()|0,e[Q>>2]=0,a=189,J=47;else{e[q>>2]=a,u=0,r=c0(37,q|0,44212)|0,A=u,u=0;e:do if(!(A&1)&&(p[g>>0]=0,e[c>>2]=e[n>>2],h=e[s+4>>2]|0,u=0,e[_>>2]=e[c>>2],h=Pr(2,t|0,_|0,f|0,q|0,h|0,o|0,g|0,r|0,Q|0,w|0,m|0)|0,A=u,u=0,!(A&1))){i:do if(h){if(u=0,Me(e[(e[r>>2]|0)+48>>2]|0,r|0,59007,59017,_|0)|0,A=u,u=0,A&1){J=10;break e}c=e[w>>2]|0,m=e[Q>>2]|0,r=c-m|0,(r|0)>392?(r=S2((r>>2)+2|0)|0,a=r,r?J=13:(u=0,be(6),A=u,u=0,A&1||(r=0,J=13))):(a=0,r=x,J=13);do if((J|0)==13){if(p[g>>0]|0&&(p[r>>0]=45,r=r+1|0),I=_+40|0,A=_,m>>>0>>0){h=_+4|0,f=h+4|0,s=f+4|0,g=s+4|0,v=g+4|0,d=v+4|0,y=d+4|0,E=y+4|0,P=E+4|0;do{c=e[m>>2]|0;do if((e[_>>2]|0)!=(c|0))if((e[h>>2]|0)!=(c|0))if((e[f>>2]|0)!=(c|0))if((e[s>>2]|0)!=(c|0))if((e[g>>2]|0)==(c|0))c=g;else{if((e[v>>2]|0)==(c|0)){c=v;break}if((e[d>>2]|0)==(c|0)){c=d;break}if((e[y>>2]|0)==(c|0)){c=y;break}if((e[E>>2]|0)==(c|0)){c=E;break}c=(e[P>>2]|0)==(c|0)?P:I}else c=s;else c=f;else c=h;else c=_;while(0);p[r>>0]=p[59007+(c-A>>2)>>0]|0,m=m+4|0,r=r+1|0}while(m>>>0<(e[w>>2]|0)>>>0)}if(p[r>>0]=0,e[M>>2]=l,(pl(x,58987,M)|0)!=1&&(u=0,A0(190,58991),l=u,u=0,l&1))break;a&&ye(a);break i}while(0);if(r=R()|0,!a){c=r,a=Q;break e}ye(a),c=r,a=Q;break e}while(0);r=e[t>>2]|0;do if(r){if(a=e[r+12>>2]|0,(a|0)==(e[r+16>>2]|0)){if(u=0,r=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1){J=10;break e}}else r=e[a>>2]|0;if((r|0)==-1){e[t>>2]=0,c=1;break}else{c=(e[t>>2]|0)==0;break}}else c=1;while(0);r=e[n>>2]|0;do if(r){if(a=e[r+12>>2]|0,(a|0)==(e[r+16>>2]|0)){if(u=0,r=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1){J=10;break e}}else r=e[a>>2]|0;if((r|0)!=-1){if(c)break;J=40;break}else{e[n>>2]=0,J=38;break}}else J=38;while(0);return(J|0)==38&&c&&(J=40),(J|0)==40&&(e[o>>2]=e[o>>2]|2),a=e[t>>2]|0,ne(e[q>>2]|0)|0,r=e[Q>>2]|0,e[Q>>2]=0,r|0&&(u=0,A0(e[i0>>2]|0,r|0),J=u,u=0,J&1)&&(J=R(0)|0,ie(J)),C=U,a|0}else J=10;while(0);(J|0)==10&&(c=R()|0,a=Q),ne(e[q>>2]|0)|0,r=e[a>>2]|0,e[a>>2]=0,r?(a=e[i0>>2]|0,J=47):r0=c}return(J|0)==47&&(u=0,A0(a|0,r|0),J=u,u=0,J&1?(J=R(0)|0,ie(J)):r0=c),B(r0|0),0}function sS(r,t,n,f,s,o,l,a,c,m,h){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0;var g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0,Re=0,De=0,oe=0,L0=0,me=0,P0=0,F0=0,u2=0,h2=0,i2=0,S0=0,N0=0,ce=0,je=0,Be=0,Ze=0;je=C,C=C+512|0,le=je+96|0,g=je+104|0,Ze=je+88|0,L0=je+80|0,oe=je+76|0,me=je+504|0,Re=je+72|0,P0=je+68|0,h2=je+56|0,ce=je+44|0,S0=je+32|0,i2=je+20|0,N0=je+8|0,De=je+4|0,u2=je,e[le>>2]=h,e[Ze>>2]=g,Be=Ze+4|0,e[Be>>2]=189,e[L0>>2]=g,e[oe>>2]=g+400,e[h2>>2]=0,e[h2+4>>2]=0,e[h2+8>>2]=0,e[ce>>2]=0,e[ce+4>>2]=0,e[ce+8>>2]=0,e[S0>>2]=0,e[S0+4>>2]=0,e[S0+8>>2]=0,e[i2>>2]=0,e[i2+4>>2]=0,e[i2+8>>2]=0,e[N0>>2]=0,e[N0+4>>2]=0,e[N0+8>>2]=0,u=0,Ei(2,n|0,f|0,me|0,Re|0,P0|0,h2|0,ce|0,S0|0,i2|0,De|0),ve=u,u=0;e:do if(ve&1)n=R()|0;else{e[m>>2]=e[c>>2],i0=S0+4|0,J=i2+4|0,w0=i2+8|0,ve=S0+8|0,w=(s&512|0)!=0,x=ce+8|0,M=ce+4|0,U=N0+4|0,q=N0+8|0,Q=me+3|0,r0=h2+4|0,_=0,d=0;i:for(;;){h=e[r>>2]|0;do if(h){if(n=e[h+12>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,A=u,u=0,A&1){F0=26;break i}}else h=e[n>>2]|0;if((h|0)==-1){e[r>>2]=0,f=1;break}else{f=(e[r>>2]|0)==0;break}}else f=1;while(0);n=e[t>>2]|0;do if(n){if(h=e[n+12>>2]|0,(h|0)==(e[n+16>>2]|0)){if(u=0,h=W(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,A=u,u=0,A&1){F0=26;break i}}else h=e[h>>2]|0;if((h|0)!=-1)if(f){A=n;break}else{y=g,F0=244;break i}else{e[t>>2]=0,F0=16;break}}else F0=16;while(0);if((F0|0)==16)if(F0=0,f){y=g,F0=244;break}else A=0;r:do switch(p[me+_>>0]|0){case 1:{if((_|0)!=3){if(h=e[r>>2]|0,n=e[h+12>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,F0=u,u=0,F0&1){F0=26;break i}}else h=e[n>>2]|0;if(u=0,h=ee(e[(e[a>>2]|0)+12>>2]|0,a|0,8192,h|0)|0,F0=u,u=0,F0&1){F0=26;break i}if(!h){F0=42;break i}if(h=e[r>>2]|0,n=h+12|0,f=e[n>>2]|0,(f|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,F0=u,u=0,F0&1){F0=26;break i}}else e[n>>2]=f+4,h=e[f>>2]|0;if(u=0,b(92,N0|0,h|0),F0=u,u=0,F0&1){F0=26;break i}else h=A,s=A,F0=44}else h=g;break}case 0:{(_|0)==3?h=g:(h=A,s=A,F0=44);break}case 3:{if(n=p[S0>>0]|0,h=n&1?e[i0>>2]|0:(n&255)>>>1,f=p[i2>>0]|0,s=f&1?e[J>>2]|0:(f&255)>>>1,(h|0)==(0-s|0))h=g;else{if(!h){if(h=e[r>>2]|0,n=e[h+12>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,A=u,u=0,A&1){F0=26;break i}n=p[i2>>0]|0}else h=e[n>>2]|0,n=f;if((h|0)!=(e[(n&1?e[w0>>2]|0:J)>>2]|0)){h=g;break r}if(h=e[r>>2]|0,n=h+12|0,f=e[n>>2]|0,(f|0)==(e[h+16>>2]|0)){if(u=0,W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,A=u,u=0,A&1){F0=26;break i}}else e[n>>2]=f+4;p[l>>0]=1,A=p[i2>>0]|0,h=g,d=(A&1?e[J>>2]|0:(A&255)>>>1)>>>0>1?i2:d;break r}if(v=e[r>>2]|0,y=e[v+12>>2]|0,f=e[v+16>>2]|0,h=(y|0)==(f|0),!s){if(h){if(u=0,h=W(e[(e[v>>2]|0)+36>>2]|0,v|0)|0,A=u,u=0,A&1){F0=26;break i}n=p[S0>>0]|0}else h=e[y>>2]|0;if((h|0)!=(e[(n&1?e[ve>>2]|0:i0)>>2]|0)){p[l>>0]=1,h=g;break r}if(h=e[r>>2]|0,n=h+12|0,f=e[n>>2]|0,(f|0)==(e[h+16>>2]|0)){if(u=0,W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,A=u,u=0,A&1){F0=26;break i}}else e[n>>2]=f+4;A=p[S0>>0]|0,h=g,d=(A&1?e[i0>>2]|0:(A&255)>>>1)>>>0>1?S0:d;break r}if(h){if(u=0,h=W(e[(e[v>>2]|0)+36>>2]|0,v|0)|0,A=u,u=0,A&1){F0=26;break i}f=e[r>>2]|0,n=p[S0>>0]|0,v=f,y=e[f+12>>2]|0,f=e[f+16>>2]|0}else h=e[y>>2]|0;if(s=v+12|0,f=(y|0)==(f|0),(h|0)==(e[(n&1?e[ve>>2]|0:i0)>>2]|0)){if(f){if(u=0,W(e[(e[v>>2]|0)+40>>2]|0,v|0)|0,A=u,u=0,A&1){F0=26;break i}}else e[s>>2]=y+4;A=p[S0>>0]|0,h=g,d=(A&1?e[i0>>2]|0:(A&255)>>>1)>>>0>1?S0:d;break r}if(f){if(u=0,h=W(e[(e[v>>2]|0)+36>>2]|0,v|0)|0,A=u,u=0,A&1){F0=26;break i}}else h=e[y>>2]|0;if((h|0)!=(e[(p[i2>>0]&1?e[w0>>2]|0:J)>>2]|0)){F0=107;break i}if(h=e[r>>2]|0,n=h+12|0,f=e[n>>2]|0,(f|0)==(e[h+16>>2]|0)){if(u=0,W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,A=u,u=0,A&1){F0=26;break i}}else e[n>>2]=f+4;p[l>>0]=1,A=p[i2>>0]|0,h=g,d=(A&1?e[J>>2]|0:(A&255)>>>1)>>>0>1?i2:d}break}case 2:{if(!(_>>>0<2|(d|0)!=0)&&!(w|(_|0)==2&(p[Q>>0]|0)!=0)){h=g,d=0;break r}s=p[ce>>0]|0,f=e[x>>2]|0,n=s&1?f:M,h=n;t:do if(_|0&&(z[me+(_+-1)>>0]|0)<2){I=(s&1)==0;n:do if((n|0)!=((I?M:f)+((I?(s&255)>>>1:e[M>>2]|0)<<2)|0)){for(s=n;;){if(u=0,n=ee(e[(e[a>>2]|0)+12>>2]|0,a|0,8192,e[s>>2]|0)|0,I=u,u=0,I&1){F0=23;break i}if(!n)break;if(s=s+4|0,h=s,n=p[ce>>0]|0,f=e[x>>2]|0,I=(n&1)==0,(s|0)==((I?M:f)+((I?(n&255)>>>1:e[M>>2]|0)<<2)|0)){s=n;break n}}s=p[ce>>0]|0,f=e[x>>2]|0}while(0);if(y=s&1?f:M,n=y,E=h-n>>2,P=p[N0>>0]|0,v=(P&1)==0,P=v?(P&255)>>>1:e[U>>2]|0,P>>>0>=E>>>0)if(v=v?U:e[q>>2]|0,I=v+(P<<2)|0,!E)n=h;else for(v=v+(P-E<<2)|0;;){if((e[v>>2]|0)!=(e[y>>2]|0))break t;if(v=v+4|0,(v|0)==(I|0)){n=h;break}else y=y+4|0}}else n=h;while(0);h=(s&1)==0,h=(h?M:f)+((h?(s&255)>>>1:e[M>>2]|0)<<2)|0;t:do if((n|0)!=(h|0))for(v=A,s=A,h=n;;){n=e[r>>2]|0;do if(n){if(f=e[n+12>>2]|0,(f|0)==(e[n+16>>2]|0)){if(u=0,n=W(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,A=u,u=0,A&1){F0=22;break i}}else n=e[f>>2]|0;if((n|0)==-1){e[r>>2]=0,f=1;break}else{f=(e[r>>2]|0)==0;break}}else f=1;while(0);do if(s){if(n=e[s+12>>2]|0,(n|0)==(e[s+16>>2]|0)){if(u=0,n=W(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,A=u,u=0,A&1){F0=22;break i}}else n=e[n>>2]|0;if((n|0)!=-1)if(f^(v|0)==0){n=v,y=v;break}else break t;else{e[t>>2]=0,n=0,F0=136;break}}else n=v,F0=136;while(0);if((F0|0)==136){if(F0=0,f)break t;y=0}if(f=e[r>>2]|0,s=e[f+12>>2]|0,(s|0)==(e[f+16>>2]|0)){if(u=0,f=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,A=u,u=0,A&1){F0=22;break i}}else f=e[s>>2]|0;if((f|0)!=(e[h>>2]|0))break t;if(f=e[r>>2]|0,s=f+12|0,v=e[s>>2]|0,(v|0)==(e[f+16>>2]|0)){if(u=0,W(e[(e[f>>2]|0)+40>>2]|0,f|0)|0,A=u,u=0,A&1){F0=22;break i}}else e[s>>2]=v+4;if(h=h+4|0,f=p[ce>>0]|0,A=(f&1)==0,f=(A?M:e[x>>2]|0)+((A?(f&255)>>>1:e[M>>2]|0)<<2)|0,(h|0)==(f|0)){h=f;break}else v=n,s=y}while(0);if(w&&(A=p[ce>>0]|0,I=(A&1)==0,(h|0)!=((I?M:e[x>>2]|0)+((I?(A&255)>>>1:e[M>>2]|0)<<2)|0))){F0=148;break i}else h=g;break}case 4:{P=e[P0>>2]|0,E=A,v=A,h=g,n=0;t:for(;;){f=e[r>>2]|0;do if(f){if(s=e[f+12>>2]|0,(s|0)==(e[f+16>>2]|0)){if(u=0,f=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,A=u,u=0,A&1){F0=25;break i}}else f=e[s>>2]|0;if((f|0)==-1){e[r>>2]=0,s=1;break}else{s=(e[r>>2]|0)==0;break}}else s=1;while(0);do if(v){if(f=e[v+12>>2]|0,(f|0)==(e[v+16>>2]|0)){if(u=0,f=W(e[(e[v>>2]|0)+36>>2]|0,v|0)|0,A=u,u=0,A&1){F0=25;break i}}else f=e[f>>2]|0;if((f|0)!=-1)if(s^(E|0)==0){f=E,y=E;break}else{g=E;break t}else{e[t>>2]=0,f=0,F0=162;break}}else f=E,F0=162;while(0);if((F0|0)==162)if(F0=0,s){g=f;break}else y=0;if(s=e[r>>2]|0,g=e[s+12>>2]|0,(g|0)==(e[s+16>>2]|0)){if(u=0,s=W(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,A=u,u=0,A&1){F0=25;break i}}else s=e[g>>2]|0;if(u=0,g=ee(e[(e[a>>2]|0)+12>>2]|0,a|0,2048,s|0)|0,A=u,u=0,A&1){F0=25;break i}if(g){if(g=e[m>>2]|0,(g|0)==(e[le>>2]|0)){if(u=0,u0(14,c|0,m|0,le|0),A=u,u=0,A&1){F0=25;break i}g=e[m>>2]|0}e[m>>2]=g+4,e[g>>2]=s,n=n+1|0}else{if(A=p[h2>>0]|0,!((s|0)==(P|0)&(n|0?((A&1?e[r0>>2]|0:(A&255)>>>1)|0)!=0:0))){g=f;break}if((h|0)==(e[oe>>2]|0)){if(u=0,u0(13,Ze|0,L0|0,oe|0),A=u,u=0,A&1){F0=25;break i}h=e[L0>>2]|0}A=h+4|0,e[L0>>2]=A,e[h>>2]=n,h=A,n=0}if(s=e[r>>2]|0,g=s+12|0,v=e[g>>2]|0,(v|0)==(e[s+16>>2]|0))if(u=0,W(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,A=u,u=0,A&1){F0=25;break i}else{E=f,v=y;continue}else{e[g>>2]=v+4,E=f,v=y;continue}}if(n|0&&(e[Ze>>2]|0)!=(h|0)){if((h|0)==(e[oe>>2]|0)){if(u=0,u0(13,Ze|0,L0|0,oe|0),A=u,u=0,A&1){F0=26;break i}h=e[L0>>2]|0}A=h+4|0,e[L0>>2]=A,e[h>>2]=n,h=A}if(y=e[De>>2]|0,(y|0)>0){n=e[r>>2]|0;do if(n){if(f=e[n+12>>2]|0,(f|0)==(e[n+16>>2]|0)){if(u=0,n=W(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,A=u,u=0,A&1){F0=26;break i}}else n=e[f>>2]|0;if((n|0)==-1){e[r>>2]=0,f=1;break}else{f=(e[r>>2]|0)==0;break}}else f=1;while(0);do if(g){if(n=e[g+12>>2]|0,(n|0)==(e[g+16>>2]|0)){if(u=0,n=W(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,A=u,u=0,A&1){F0=26;break i}}else n=e[n>>2]|0;if((n|0)!=-1){if(f)break;F0=206;break i}else{e[t>>2]=0,F0=200;break}}else F0=200;while(0);if((F0|0)==200)if(F0=0,f){F0=206;break i}else g=0;if(n=e[r>>2]|0,f=e[n+12>>2]|0,(f|0)==(e[n+16>>2]|0)){if(u=0,n=W(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,A=u,u=0,A&1){F0=26;break i}}else n=e[f>>2]|0;if((n|0)!=(e[Re>>2]|0)){F0=206;break i}if(n=e[r>>2]|0,f=n+12|0,s=e[f>>2]|0,(s|0)==(e[n+16>>2]|0)){if(u=0,W(e[(e[n>>2]|0)+40>>2]|0,n|0)|0,A=u,u=0,A&1){F0=26;break i}}else e[f>>2]=s+4;if((y|0)>0)for(v=g,s=g,E=y;;){n=e[r>>2]|0;do if(n){if(f=e[n+12>>2]|0,(f|0)==(e[n+16>>2]|0)){if(u=0,n=W(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,A=u,u=0,A&1){F0=24;break i}}else n=e[f>>2]|0;if((n|0)==-1){e[r>>2]=0,f=1;break}else{f=(e[r>>2]|0)==0;break}}else f=1;while(0);do if(s){if(n=e[s+12>>2]|0,(n|0)==(e[s+16>>2]|0)){if(u=0,n=W(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,A=u,u=0,A&1){F0=24;break i}}else n=e[n>>2]|0;if((n|0)!=-1)if(f^(v|0)==0){n=v,y=v;break}else{F0=231;break i}else{e[t>>2]=0,n=0,F0=224;break}}else n=v,F0=224;while(0);if((F0|0)==224)if(F0=0,f){F0=231;break i}else y=0;if(f=e[r>>2]|0,s=e[f+12>>2]|0,(s|0)==(e[f+16>>2]|0)){if(u=0,f=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,A=u,u=0,A&1){F0=24;break i}}else f=e[s>>2]|0;if(u=0,f=ee(e[(e[a>>2]|0)+12>>2]|0,a|0,2048,f|0)|0,A=u,u=0,A&1){F0=24;break i}if(!f){F0=231;break i}if((e[m>>2]|0)==(e[le>>2]|0)&&(u=0,u0(14,c|0,m|0,le|0),A=u,u=0,A&1)){F0=24;break i}if(f=e[r>>2]|0,s=e[f+12>>2]|0,(s|0)==(e[f+16>>2]|0)){if(u=0,f=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,A=u,u=0,A&1){F0=24;break i}}else f=e[s>>2]|0;if(s=e[m>>2]|0,e[m>>2]=s+4,e[s>>2]=f,f=E,E=E+-1|0,e[De>>2]=E,s=e[r>>2]|0,g=s+12|0,v=e[g>>2]|0,(v|0)==(e[s+16>>2]|0)){if(u=0,W(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,A=u,u=0,A&1){F0=24;break i}}else e[g>>2]=v+4;if((f|0)<=1)break;v=n,s=y}}if((e[m>>2]|0)==(e[c>>2]|0)){F0=242;break i}break}default:h=g}while(0);r:do if((F0|0)==44)for(;;){F0=0,n=e[r>>2]|0;do if(n){if(f=e[n+12>>2]|0,(f|0)==(e[n+16>>2]|0)){if(u=0,n=W(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,A=u,u=0,A&1){F0=21;break i}}else n=e[f>>2]|0;if((n|0)==-1){e[r>>2]=0,f=1;break}else{f=(e[r>>2]|0)==0;break}}else f=1;while(0);do if(s){if(n=e[s+12>>2]|0,(n|0)==(e[s+16>>2]|0)){if(u=0,n=W(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,A=u,u=0,A&1){F0=21;break i}}else n=e[n>>2]|0;if((n|0)!=-1)if(f^(h|0)==0){v=h,s=h;break}else{h=g;break r}else{e[t>>2]=0,h=0,F0=57;break}}else F0=57;while(0);if((F0|0)==57)if(F0=0,f){h=g;break r}else v=h,s=0;if(h=e[r>>2]|0,n=e[h+12>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,A=u,u=0,A&1){F0=21;break i}}else h=e[n>>2]|0;if(u=0,h=ee(e[(e[a>>2]|0)+12>>2]|0,a|0,8192,h|0)|0,A=u,u=0,A&1){F0=21;break i}if(!h){h=g;break r}if(h=e[r>>2]|0,n=h+12|0,f=e[n>>2]|0,(f|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,F0=u,u=0,F0&1){F0=21;break i}}else e[n>>2]=f+4,h=e[f>>2]|0;if(u=0,b(92,N0|0,h|0),F0=u,u=0,F0&1){F0=21;break i}else h=v,F0=44}while(0);if(_=_+1|0,_>>>0>=4){y=h,F0=244;break}else g=h}i:switch(F0|0){case 21:{n=R()|0;break e}case 22:{n=R()|0;break e}case 23:{n=R()|0;break e}case 24:{n=R()|0;break e}case 25:{n=R()|0;break e}case 26:{n=R()|0;break e}case 42:{e[o>>2]=e[o>>2]|4,n=0;break}case 107:{e[o>>2]=e[o>>2]|4,n=0;break}case 148:{e[o>>2]=e[o>>2]|4,n=0;break}case 206:{e[o>>2]=e[o>>2]|4,n=0;break}case 231:{e[o>>2]=e[o>>2]|4,n=0;break}case 242:{e[o>>2]=e[o>>2]|4,n=0;break}case 244:{r:do if(d){g=d+4|0,v=d+8|0,s=1;t:for(;;){if(h=p[d>>0]|0,h&1?h=e[g>>2]|0:h=(h&255)>>>1,s>>>0>=h>>>0)break r;h=e[r>>2]|0;do if(h){if(n=e[h+12>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,m=u,u=0,m&1){F0=20;break t}}else h=e[n>>2]|0;if((h|0)==-1){e[r>>2]=0,f=1;break}else{f=(e[r>>2]|0)==0;break}}else f=1;while(0);h=e[t>>2]|0;do if(h){if(n=e[h+12>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,m=u,u=0,m&1){F0=20;break t}}else h=e[n>>2]|0;if((h|0)!=-1){if(f)break;F0=271;break t}else{e[t>>2]=0,F0=263;break}}else F0=263;while(0);if((F0|0)==263&&(F0=0,f)){F0=271;break}if(h=e[r>>2]|0,n=e[h+12>>2]|0,(n|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,m=u,u=0,m&1){F0=20;break}}else h=e[n>>2]|0;if(p[d>>0]&1?n=e[v>>2]|0:n=g,(h|0)!=(e[n+(s<<2)>>2]|0)){F0=271;break}if(h=s+1|0,n=e[r>>2]|0,f=n+12|0,s=e[f>>2]|0,(s|0)==(e[n+16>>2]|0))if(u=0,W(e[(e[n>>2]|0)+40>>2]|0,n|0)|0,m=u,u=0,m&1){F0=20;break}else{s=h;continue}else{e[f>>2]=s+4,s=h;continue}}if((F0|0)==20){n=R()|0;break e}else if((F0|0)==271){e[o>>2]=e[o>>2]|4,n=0;break i}}while(0);h=e[Ze>>2]|0,(h|0)!=(y|0)&&(e[u2>>2]=0,R2(h2,h,y,u2),(e[u2>>2]|0)!=0)?(e[o>>2]=e[o>>2]|4,n=0):n=1;break}}return b0(N0),b0(i2),b0(S0),b0(ce),V(h2),h=e[Ze>>2]|0,e[Ze>>2]=0,h|0&&(u=0,A0(e[Be>>2]|0,h|0),Ze=u,u=0,Ze&1)&&(Ze=R(0)|0,ie(Ze)),C=je,n|0}while(0);return b0(N0),b0(i2),b0(S0),b0(ce),V(h2),h=e[Ze>>2]|0,e[Ze>>2]=0,h|0&&(u=0,A0(e[Be>>2]|0,h|0),Ze=u,u=0,Ze&1)&&(Ze=R(0)|0,ie(Ze)),B(n|0),0}function oS(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0;if(A=C,C=C+432|0,a=A+424|0,r=A+24|0,w=A+16|0,y=A+8|0,g=A+4|0,v=A+428|0,c=A,e[w>>2]=r,M=w+4|0,e[M>>2]=189,m=r+400|0,u=0,I=W(68,s|0)|0,h=u,u=0,h&1)a=R()|0,e[w>>2]=0,x=38;else{e[g>>2]=I,u=0,h=c0(37,g|0,44212)|0,r=u,u=0;e:do if(!(r&1)&&(p[v>>0]=0,E=e[n>>2]|0,e[c>>2]=E,d=e[s+4>>2]|0,P=E,u=0,e[a>>2]=e[c>>2],d=Pr(2,t|0,a|0,f|0,g|0,d|0,o|0,v|0,h|0,w|0,y|0,m|0)|0,s=u,u=0,!(s&1))){if(d){if(p[l>>0]&1?e[e[l+8>>2]>>2]=0:p[l>>0]=0,e[l+4>>2]=0,p[v>>0]|0&&(u=0,r=c0(e[(e[h>>2]|0)+44>>2]|0,h|0,45)|0,s=u,u=0,s&1||(u=0,b(92,l|0,r|0),s=u,u=0,s&1))||(u=0,c=c0(e[(e[h>>2]|0)+44>>2]|0,h|0,48)|0,s=u,u=0,s&1))break;r=e[w>>2]|0,m=e[y>>2]|0,a=m+-4|0;i:do if(r>>>0>>0)do{if((e[r>>2]|0)!=(c|0))break i;r=r+4|0}while(r>>>0>>0);while(0);if(u=0,ee(33,l|0,r|0,m|0)|0,l=u,u=0,l&1)break}r=e[t>>2]|0;do if(r){if(a=e[r+12>>2]|0,(a|0)==(e[r+16>>2]|0)){if(u=0,r=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1)break e}else r=e[a>>2]|0;if((r|0)==-1){e[t>>2]=0,a=1;break}else{a=(e[t>>2]|0)==0;break}}else a=1;while(0);do if(E){if(r=e[P+12>>2]|0,(r|0)==(e[P+16>>2]|0)){if(u=0,r=W(e[(e[E>>2]|0)+36>>2]|0,P|0)|0,P=u,u=0,P&1)break e}else r=e[r>>2]|0;if((r|0)!=-1){if(a)break;x=32;break}else{e[n>>2]=0,x=30;break}}else x=30;while(0);return(x|0)==30&&a&&(x=32),(x|0)==32&&(e[o>>2]=e[o>>2]|2),a=e[t>>2]|0,ne(I)|0,r=e[w>>2]|0,e[w>>2]=0,r|0&&(u=0,A0(e[M>>2]|0,r|0),M=u,u=0,M&1)&&(M=R(0)|0,ie(M)),C=A,a|0}while(0);a=R()|0,ne(I)|0,r=e[w>>2]|0,e[w>>2]=0,r?x=38:_=a}return(x|0)==38&&(u=0,A0(e[M>>2]|0,r|0),M=u,u=0,M&1?(M=R(0)|0,ie(M)):_=a),B(_|0),0}function lS(r,t,n,f,s,o,l,a,c,m){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0;var h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0;x=C,C=C+112|0,h=x+100|0,g=x+88|0,v=x+76|0,d=x+64|0,y=x+52|0,E=x+48|0,P=x+36|0,I=x+24|0,A=x+12|0,_=x;do if(r)if(r=I2(t,43956)|0,Ae[e[(e[r>>2]|0)+44>>2]&127](h,r),_=e[h>>2]|0,p[n>>0]=_,p[n+1>>0]=_>>8,p[n+2>>0]=_>>16,p[n+3>>0]=_>>24,Ae[e[(e[r>>2]|0)+32>>2]&127](g,r),p[c>>0]&1?e[e[c+8>>2]>>2]=0:p[c>>0]=0,e[c+4>>2]=0,u=0,b(93,c|0,0),n=u,u=0,n&1&&(n=R(0)|0,ie(n)),e[c>>2]=e[g>>2],e[c+4>>2]=e[g+4>>2],e[c+8>>2]=e[g+8>>2],e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,b0(g),Ae[e[(e[r>>2]|0)+28>>2]&127](v,r),p[a>>0]&1?e[e[a+8>>2]>>2]=0:p[a>>0]=0,e[a+4>>2]=0,u=0,b(93,a|0,0),n=u,u=0,n&1&&(n=R(0)|0,ie(n)),e[a>>2]=e[v>>2],e[a+4>>2]=e[v+4>>2],e[a+8>>2]=e[v+8>>2],e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,b0(v),a=V0[e[(e[r>>2]|0)+12>>2]&127](r)|0,e[f>>2]=a,a=V0[e[(e[r>>2]|0)+16>>2]&127](r)|0,e[s>>2]=a,Ae[e[(e[r>>2]|0)+20>>2]&127](d,r),p[o>>0]&1?(p[e[o+8>>2]>>0]=0,e[o+4>>2]=0):(p[o+1>>0]=0,p[o>>0]=0),u=0,b(91,o|0,0),s=u,u=0,s&1&&(s=R(0)|0,ie(s)),e[o>>2]=e[d>>2],e[o+4>>2]=e[d+4>>2],e[o+8>>2]=e[d+8>>2],e[d>>2]=0,e[d+4>>2]=0,e[d+8>>2]=0,V(d),Ae[e[(e[r>>2]|0)+24>>2]&127](y,r),p[l>>0]&1?e[e[l+8>>2]>>2]=0:p[l>>0]=0,e[l+4>>2]=0,u=0,b(93,l|0,0),s=u,u=0,s&1)s=R(0)|0,ie(s);else{e[l>>2]=e[y>>2],e[l+4>>2]=e[y+4>>2],e[l+8>>2]=e[y+8>>2],e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,b0(y),w=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}else if(r=I2(t,43892)|0,Ae[e[(e[r>>2]|0)+44>>2]&127](E,r),E=e[E>>2]|0,p[n>>0]=E,p[n+1>>0]=E>>8,p[n+2>>0]=E>>16,p[n+3>>0]=E>>24,Ae[e[(e[r>>2]|0)+32>>2]&127](P,r),p[c>>0]&1?e[e[c+8>>2]>>2]=0:p[c>>0]=0,e[c+4>>2]=0,u=0,b(93,c|0,0),n=u,u=0,n&1&&(n=R(0)|0,ie(n)),e[c>>2]=e[P>>2],e[c+4>>2]=e[P+4>>2],e[c+8>>2]=e[P+8>>2],e[P>>2]=0,e[P+4>>2]=0,e[P+8>>2]=0,b0(P),Ae[e[(e[r>>2]|0)+28>>2]&127](I,r),p[a>>0]&1?e[e[a+8>>2]>>2]=0:p[a>>0]=0,e[a+4>>2]=0,u=0,b(93,a|0,0),n=u,u=0,n&1&&(n=R(0)|0,ie(n)),e[a>>2]=e[I>>2],e[a+4>>2]=e[I+4>>2],e[a+8>>2]=e[I+8>>2],e[I>>2]=0,e[I+4>>2]=0,e[I+8>>2]=0,b0(I),a=V0[e[(e[r>>2]|0)+12>>2]&127](r)|0,e[f>>2]=a,a=V0[e[(e[r>>2]|0)+16>>2]&127](r)|0,e[s>>2]=a,Ae[e[(e[r>>2]|0)+20>>2]&127](A,r),p[o>>0]&1?(p[e[o+8>>2]>>0]=0,e[o+4>>2]=0):(p[o+1>>0]=0,p[o>>0]=0),u=0,b(91,o|0,0),s=u,u=0,s&1&&(s=R(0)|0,ie(s)),e[o>>2]=e[A>>2],e[o+4>>2]=e[A+4>>2],e[o+8>>2]=e[A+8>>2],e[A>>2]=0,e[A+4>>2]=0,e[A+8>>2]=0,V(A),Ae[e[(e[r>>2]|0)+24>>2]&127](_,r),p[l>>0]&1?e[e[l+8>>2]>>2]=0:p[l>>0]=0,e[l+4>>2]=0,u=0,b(93,l|0,0),s=u,u=0,s&1)s=R(0)|0,ie(s);else{e[l>>2]=e[_>>2],e[l+4>>2]=e[_+4>>2],e[l+8>>2]=e[_+8>>2],e[_>>2]=0,e[_+4>>2]=0,e[_+8>>2]=0,b0(_),w=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}while(0);e[m>>2]=w,C=x}function uS(r){r=r|0}function aS(r){r=r|0,H(r)}function cS(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=+o;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0;q=C,C=C+384|0,P=q+8|0,l=q,c=q+284|0,m=q+72|0,a=q+184|0,r0=q+68|0,x=q+80|0,A=q+77|0,M=q+76|0,i0=q+56|0,w0=q+44|0,J=q+32|0,h=q+28|0,E=q+84|0,w=q+24|0,_=q+20|0,I=q+16|0,e[m>>2]=c,t0[P>>3]=o,c=ml(c,100,59018,P)|0;do if(c>>>0>99)if(u=0,r=Te(3)|0,U=u,u=0,!(U&1)&&(u=0,t0[l>>3]=o,d=Me(17,m|0,r|0,59018,l|0)|0,U=u,u=0,!(U&1))){if(r=e[m>>2]|0,!r){if(u=0,be(6),U=u,u=0,U&1){r=0,l=0,U=7;break}r=e[m>>2]|0}a=S2(d)|0,l=a,a?(y=a,U=10):(u=0,be(6),U=u,u=0,U&1?U=7:(y=0,U=10))}else r=0,l=0,U=7;else l=0,r=0,y=a,d=c,U=10;while(0);if((U|0)==10)if(u=0,a=W(68,f|0)|0,v=u,u=0,v&1)U=7;else{if(e[r0>>2]=a,u=0,v=c0(37,r0|0,44220)|0,g=u,u=0,!(g&1)&&(g=e[m>>2]|0,u=0,Me(e[(e[v>>2]|0)+32>>2]|0,v|0,g|0,g+d|0,y|0)|0,g=u,u=0,!(g&1))){if(d?g=(p[e[m>>2]>>0]|0)==45:g=0,e[i0>>2]=0,e[i0+4>>2]=0,e[i0+8>>2]=0,e[w0>>2]=0,e[w0+4>>2]=0,e[w0+8>>2]=0,e[J>>2]=0,e[J+4>>2]=0,e[J+8>>2]=0,u=0,Ei(3,n|0,g|0,r0|0,x|0,A|0,M|0,i0|0,w0|0,J|0,h|0),n=u,u=0,n&1)c=R()|0;else{if(h=e[h>>2]|0,(d|0)>(h|0)?(n=p[J>>0]|0,c=p[w0>>0]|0,c=(d-h<<1|1)+h+(n&1?e[J+4>>2]|0:(n&255)>>>1)+(c&1?e[w0+4>>2]|0:(c&255)>>>1)|0):(n=p[J>>0]|0,c=p[w0>>0]|0,c=h+2+(n&1?e[J+4>>2]|0:(n&255)>>>1)+(c&1?e[w0+4>>2]|0:(c&255)>>>1)|0),c>>>0>100?(c=S2(c)|0,m=c,c?U=26:(u=0,be(6),E=u,u=0,E&1||(c=0,U=26))):(m=0,c=E,U=26),(U|0)==26&&(u=0,Lr(1,c|0,w|0,_|0,e[f+4>>2]|0,y|0,y+d|0,v|0,g|0,x|0,p[A>>0]|0,p[M>>0]|0,i0|0,w0|0,J|0,h|0),M=u,u=0,!(M&1)&&(e[I>>2]=e[t>>2],t=e[w>>2]|0,Q=e[_>>2]|0,u=0,e[P>>2]=e[I>>2],Q=N1(39,P|0,c|0,t|0,Q|0,f|0,s|0)|0,t=u,u=0,!(t&1))))return m&&(ye(m),a=e[r0>>2]|0),V(J),V(w0),V(i0),ne(a)|0,l&&ye(l),r&&ye(r),C=q,Q|0;c=R()|0,m&&(ye(m),a=e[r0>>2]|0)}V(J),V(w0),V(i0)}else c=R()|0;ne(a)|0}return(U|0)==7&&(c=R()|0),l&&ye(l),r&&ye(r),B(c|0),0}function hS(r,t,n,f,s,o,l,a,c,m){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0;var h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;Q=C,C=C+112|0,v=Q+108|0,d=Q+96|0,P=Q+92|0,I=Q+80|0,A=Q+68|0,_=Q+56|0,w=Q+52|0,x=Q+40|0,M=Q+36|0,U=Q+24|0,y=Q+12|0,E=Q;do if(r){r=I2(n,43828)|0,n=e[r>>2]|0;do if(t)if(Ae[e[n+44>>2]&127](v,r),t=e[v>>2]|0,p[f>>0]=t,p[f+1>>0]=t>>8,p[f+2>>0]=t>>16,p[f+3>>0]=t>>24,Ae[e[(e[r>>2]|0)+32>>2]&127](d,r),p[c>>0]&1?(p[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(p[c+1>>0]=0,p[c>>0]=0),u=0,b(91,c|0,0),f=u,u=0,f&1)c=R(0)|0,ie(c);else{e[c>>2]=e[d>>2],e[c+4>>2]=e[d+4>>2],e[c+8>>2]=e[d+8>>2],e[d>>2]=0,e[d+4>>2]=0,e[d+8>>2]=0,V(d),g=r;break}else if(Ae[e[n+40>>2]&127](P,r),t=e[P>>2]|0,p[f>>0]=t,p[f+1>>0]=t>>8,p[f+2>>0]=t>>16,p[f+3>>0]=t>>24,Ae[e[(e[r>>2]|0)+28>>2]&127](I,r),p[c>>0]&1?(p[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(p[c+1>>0]=0,p[c>>0]=0),u=0,b(91,c|0,0),f=u,u=0,f&1)c=R(0)|0,ie(c);else{e[c>>2]=e[I>>2],e[c+4>>2]=e[I+4>>2],e[c+8>>2]=e[I+8>>2],e[I>>2]=0,e[I+4>>2]=0,e[I+8>>2]=0,V(I),g=r;break}while(0);if(c=V0[e[(e[r>>2]|0)+12>>2]&127](r)|0,p[s>>0]=c,c=V0[e[(e[r>>2]|0)+16>>2]&127](r)|0,p[o>>0]=c,Ae[e[(e[g>>2]|0)+20>>2]&127](A,r),p[l>>0]&1?(p[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(p[l+1>>0]=0,p[l>>0]=0),u=0,b(91,l|0,0),o=u,u=0,o&1&&(o=R(0)|0,ie(o)),e[l>>2]=e[A>>2],e[l+4>>2]=e[A+4>>2],e[l+8>>2]=e[A+8>>2],e[A>>2]=0,e[A+4>>2]=0,e[A+8>>2]=0,V(A),Ae[e[(e[g>>2]|0)+24>>2]&127](_,r),p[a>>0]&1?(p[e[a+8>>2]>>0]=0,e[a+4>>2]=0):(p[a+1>>0]=0,p[a>>0]=0),u=0,b(91,a|0,0),o=u,u=0,o&1)o=R(0)|0,ie(o);else{e[a>>2]=e[_>>2],e[a+4>>2]=e[_+4>>2],e[a+8>>2]=e[_+8>>2],e[_>>2]=0,e[_+4>>2]=0,e[_+8>>2]=0,V(_),q=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}}else{r=I2(n,43764)|0,n=e[r>>2]|0;do if(t)if(Ae[e[n+44>>2]&127](w,r),t=e[w>>2]|0,p[f>>0]=t,p[f+1>>0]=t>>8,p[f+2>>0]=t>>16,p[f+3>>0]=t>>24,Ae[e[(e[r>>2]|0)+32>>2]&127](x,r),p[c>>0]&1?(p[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(p[c+1>>0]=0,p[c>>0]=0),u=0,b(91,c|0,0),f=u,u=0,f&1)c=R(0)|0,ie(c);else{e[c>>2]=e[x>>2],e[c+4>>2]=e[x+4>>2],e[c+8>>2]=e[x+8>>2],e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,V(x),h=r;break}else if(Ae[e[n+40>>2]&127](M,r),t=e[M>>2]|0,p[f>>0]=t,p[f+1>>0]=t>>8,p[f+2>>0]=t>>16,p[f+3>>0]=t>>24,Ae[e[(e[r>>2]|0)+28>>2]&127](U,r),p[c>>0]&1?(p[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(p[c+1>>0]=0,p[c>>0]=0),u=0,b(91,c|0,0),f=u,u=0,f&1)c=R(0)|0,ie(c);else{e[c>>2]=e[U>>2],e[c+4>>2]=e[U+4>>2],e[c+8>>2]=e[U+8>>2],e[U>>2]=0,e[U+4>>2]=0,e[U+8>>2]=0,V(U),h=r;break}while(0);if(c=V0[e[(e[r>>2]|0)+12>>2]&127](r)|0,p[s>>0]=c,c=V0[e[(e[r>>2]|0)+16>>2]&127](r)|0,p[o>>0]=c,Ae[e[(e[h>>2]|0)+20>>2]&127](y,r),p[l>>0]&1?(p[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(p[l+1>>0]=0,p[l>>0]=0),u=0,b(91,l|0,0),o=u,u=0,o&1&&(o=R(0)|0,ie(o)),e[l>>2]=e[y>>2],e[l+4>>2]=e[y+4>>2],e[l+8>>2]=e[y+8>>2],e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,V(y),Ae[e[(e[h>>2]|0)+24>>2]&127](E,r),p[a>>0]&1?(p[e[a+8>>2]>>0]=0,e[a+4>>2]=0):(p[a+1>>0]=0,p[a>>0]=0),u=0,b(91,a|0,0),o=u,u=0,o&1)o=R(0)|0,ie(o);else{e[a>>2]=e[E>>2],e[a+4>>2]=e[E+4>>2],e[a+8>>2]=e[E+8>>2],e[E>>2]=0,e[E+4>>2]=0,e[E+8>>2]=0,V(E),q=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}}while(0);e[m>>2]=q,C=Q}function SS(r,t,n,f,s,o,l,a,c,m,h,g,v,d,y){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0,g=g|0,v=v|0,d=d|0,y=y|0;var E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0,Re=0,De=0,oe=0,L0=0,me=0,P0=0,F0=0;e[n>>2]=r,me=d+4|0,P0=d+8|0,F0=d+1|0,ve=v+4|0,le=(f&512|0)==0,Re=v+8|0,De=v+1|0,oe=l+8|0,L0=(y|0)>0,U=g+4|0,q=g+8|0,Q=g+1|0,r0=y+1|0,J=-2-y-((y|0)<0?~y:-1)|0,w0=(y|0)>0,M=0;do{switch(p[c+M>>0]|0){case 0:{e[t>>2]=e[n>>2];break}case 1:{e[t>>2]=e[n>>2],w=F2[e[(e[l>>2]|0)+28>>2]&63](l,32)|0,x=e[n>>2]|0,e[n>>2]=x+1,p[x>>0]=w;break}case 3:{x=p[d>>0]|0,E=(x&1)==0,(E?(x&255)>>>1:e[me>>2]|0)|0&&(w=p[(E?F0:e[P0>>2]|0)>>0]|0,x=e[n>>2]|0,e[n>>2]=x+1,p[x>>0]=w);break}case 2:{if(I=p[v>>0]|0,E=(I&1)==0,I=E?(I&255)>>>1:e[ve>>2]|0,!(le|(I|0)==0)){if(P=E?De:e[Re>>2]|0,A=P+I|0,E=e[n>>2]|0,I)do p[E>>0]=p[P>>0]|0,P=P+1|0,E=E+1|0;while((P|0)!=(A|0));e[n>>2]=E}break}case 4:{E=e[n>>2]|0,s=a?s+1|0:s,_=s,A=e[oe>>2]|0;e:do if(s>>>0>>0){P=s;do{if(I=p[P>>0]|0,I<<24>>24<=-1||!(F[A+(I<<24>>24<<1)>>1]&2048))break e;P=P+1|0}while(P>>>0>>0)}else P=s;while(0);if(I=P,L0){if(w=-2-I-~(I>>>0>_>>>0?_:I)|0,w=J>>>0>w>>>0?J:w,P>>>0>s>>>0&w0)for(I=P,_=y;I=I+-1|0,x=p[I>>0]|0,A=e[n>>2]|0,e[n>>2]=A+1,p[A>>0]=x,A=(_|0)>1,I>>>0>s>>>0&A;)_=_+-1|0;else A=w0;if(x=r0+w|0,I=P+(w+1)|0,A?_=F2[e[(e[l>>2]|0)+28>>2]&63](l,48)|0:_=0,P=e[n>>2]|0,e[n>>2]=P+1,(x|0)>0)for(A=x;p[P>>0]=_,P=e[n>>2]|0,e[n>>2]=P+1,(A|0)>1;)A=A+-1|0;p[P>>0]=m}else I=P;if((I|0)!=(s|0)){if(x=p[g>>0]|0,P=(x&1)==0,(P?(x&255)>>>1:e[U>>2]|0)|0?P=p[(P?Q:e[q>>2]|0)>>0]|0:P=-1,(I|0)!=(s|0))for(A=0,_=0;(_|0)==(P|0)&&(x=e[n>>2]|0,e[n>>2]=x+1,p[x>>0]=h,A=A+1|0,x=p[g>>0]|0,P=(x&1)==0,A>>>0<(P?(x&255)>>>1:e[U>>2]|0)>>>0?(P=p[(P?Q:e[q>>2]|0)+A>>0]|0,P=P<<24>>24==127?-1:P<<24>>24,_=0):(P=_,_=0)),I=I+-1|0,w=p[I>>0]|0,x=e[n>>2]|0,e[n>>2]=x+1,p[x>>0]=w,(I|0)!=(s|0);)_=_+1|0}else w=F2[e[(e[l>>2]|0)+28>>2]&63](l,48)|0,x=e[n>>2]|0,e[n>>2]=x+1,p[x>>0]=w;if(P=e[n>>2]|0,(E|0)!=(P|0)&&(i0=P+-1|0,E>>>0>>0)){P=i0;do x=p[E>>0]|0,p[E>>0]=p[P>>0]|0,p[P>>0]=x,E=E+1|0,P=P+-1|0;while(E>>>0

>>0)}break}default:}M=M+1|0}while((M|0)!=4);if(P=p[d>>0]|0,s=(P&1)==0,P=s?(P&255)>>>1:e[me>>2]|0,P>>>0>1){if(E=s?F0:e[P0>>2]|0,I=E+P|0,s=e[n>>2]|0,(P|0)!=1){E=E+1|0;do p[s>>0]=p[E>>0]|0,s=s+1|0,E=E+1|0;while((E|0)!=(I|0))}e[n>>2]=s}switch(f&176|0){case 32:{e[t>>2]=e[n>>2];break}case 16:break;default:e[t>>2]=r}}function mS(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;x=C,C=C+176|0,d=x+56|0,U=x+52|0,_=x+64|0,P=x+61|0,w=x+60|0,q=x+40|0,r0=x+28|0,Q=x+16|0,m=x+12|0,v=x+68|0,A=x+8|0,I=x+4|0,y=x,r=We(f)|0,e[U>>2]=r,u=0,E=c0(37,U|0,44220)|0,g=u,u=0;do if(g&1)i0=13;else{if(h=p[o>>0]|0,l=(h&1)==0,g=o+4|0,!((l?(h&255)>>>1:e[g>>2]|0)|0))h=0;else{if(l=p[(l?o+1|0:e[o+8>>2]|0)>>0]|0,u=0,a=c0(e[(e[E>>2]|0)+28>>2]|0,E|0,45)|0,h=u,u=0,h&1){i0=13;break}h=l<<24>>24==a<<24>>24}if(e[q>>2]=0,e[q+4>>2]=0,e[q+8>>2]=0,e[r0>>2]=0,e[r0+4>>2]=0,e[r0+8>>2]=0,e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,u=0,Ei(3,n|0,h|0,U|0,_|0,P|0,w|0,q|0,r0|0,Q|0,m|0),c=u,u=0,c&1)l=R()|0;else{if(c=p[o>>0]|0,n=e[g>>2]|0,l=c&1?n:(c&255)>>>1,m=e[m>>2]|0,(l|0)>(m|0)?(J=p[Q>>0]|0,a=p[r0>>0]|0,l=(l-m<<1|1)+m+(J&1?e[Q+4>>2]|0:(J&255)>>>1)+(a&1?e[r0+4>>2]|0:(a&255)>>>1)|0):(J=p[Q>>0]|0,l=p[r0>>0]|0,l=m+2+(J&1?e[Q+4>>2]|0:(J&255)>>>1)+(l&1?e[r0+4>>2]|0:(l&255)>>>1)|0),l>>>0>100?(l=S2(l)|0,a=l,l?i0=17:(u=0,be(6),J=u,u=0,J&1||(c=p[o>>0]|0,n=e[g>>2]|0,l=0,i0=17))):(a=0,l=v,i0=17),(i0|0)==17&&(J=(c&1)==0,o=J?o+1|0:e[o+8>>2]|0,u=0,Lr(1,l|0,A|0,I|0,e[f+4>>2]|0,o|0,o+(J?(c&255)>>>1:n)|0,E|0,h|0,_|0,p[P>>0]|0,p[w>>0]|0,q|0,r0|0,Q|0,m|0),J=u,u=0,!(J&1)&&(e[y>>2]=e[t>>2],J=e[A>>2]|0,M=e[I>>2]|0,u=0,e[d>>2]=e[y>>2],M=N1(39,d|0,l|0,J|0,M|0,f|0,s|0)|0,J=u,u=0,!(J&1))))return a&&(ye(a),r=e[U>>2]|0),V(Q),V(r0),V(q),ne(r)|0,C=x,M|0;l=R()|0,a&&(ye(a),r=e[U>>2]|0)}V(Q),V(r0),V(q)}while(0);return(i0|0)==13&&(l=R()|0),ne(r)|0,B(l|0),0}function pS(r){r=r|0}function gS(r){r=r|0,H(r)}function vS(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=+o;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0;q=C,C=C+992|0,P=q+8|0,l=q,c=q+888|0,m=q+880|0,a=q+480|0,r0=q+76|0,x=q+884|0,A=q+72|0,M=q+68|0,i0=q+56|0,w0=q+44|0,J=q+32|0,h=q+28|0,E=q+80|0,w=q+24|0,_=q+20|0,I=q+16|0,e[m>>2]=c,t0[P>>3]=o,c=ml(c,100,59018,P)|0;do if(c>>>0>99)if(u=0,r=Te(3)|0,U=u,u=0,!(U&1)&&(u=0,t0[l>>3]=o,d=Me(17,m|0,r|0,59018,l|0)|0,U=u,u=0,!(U&1))){if(r=e[m>>2]|0,!r){if(u=0,be(6),U=u,u=0,U&1){r=0,l=0,U=7;break}r=e[m>>2]|0}a=S2(d<<2)|0,l=a,a?(y=a,U=10):(u=0,be(6),U=u,u=0,U&1?U=7:(y=0,U=10))}else r=0,l=0,U=7;else l=0,r=0,y=a,d=c,U=10;while(0);if((U|0)==10)if(u=0,a=W(68,f|0)|0,v=u,u=0,v&1)U=7;else{if(e[r0>>2]=a,u=0,v=c0(37,r0|0,44212)|0,g=u,u=0,!(g&1)&&(g=e[m>>2]|0,u=0,Me(e[(e[v>>2]|0)+48>>2]|0,v|0,g|0,g+d|0,y|0)|0,g=u,u=0,!(g&1))){if(d?g=(p[e[m>>2]>>0]|0)==45:g=0,e[i0>>2]=0,e[i0+4>>2]=0,e[i0+8>>2]=0,e[w0>>2]=0,e[w0+4>>2]=0,e[w0+8>>2]=0,e[J>>2]=0,e[J+4>>2]=0,e[J+8>>2]=0,u=0,Ei(4,n|0,g|0,r0|0,x|0,A|0,M|0,i0|0,w0|0,J|0,h|0),n=u,u=0,n&1)c=R()|0;else{if(h=e[h>>2]|0,(d|0)>(h|0)?(n=p[J>>0]|0,c=p[w0>>0]|0,c=(d-h<<1|1)+h+(n&1?e[J+4>>2]|0:(n&255)>>>1)+(c&1?e[w0+4>>2]|0:(c&255)>>>1)|0):(n=p[J>>0]|0,c=p[w0>>0]|0,c=h+2+(n&1?e[J+4>>2]|0:(n&255)>>>1)+(c&1?e[w0+4>>2]|0:(c&255)>>>1)|0),c>>>0>100?(c=S2(c<<2)|0,m=c,c?U=26:(u=0,be(6),E=u,u=0,E&1||(c=0,U=26))):(m=0,c=E,U=26),(U|0)==26&&(u=0,Lr(2,c|0,w|0,_|0,e[f+4>>2]|0,y|0,y+(d<<2)|0,v|0,g|0,x|0,e[A>>2]|0,e[M>>2]|0,i0|0,w0|0,J|0,h|0),M=u,u=0,!(M&1)&&(e[I>>2]=e[t>>2],t=e[w>>2]|0,Q=e[_>>2]|0,u=0,e[P>>2]=e[I>>2],Q=N1(40,P|0,c|0,t|0,Q|0,f|0,s|0)|0,t=u,u=0,!(t&1))))return m&&(ye(m),a=e[r0>>2]|0),b0(J),b0(w0),V(i0),ne(a)|0,l&&ye(l),r&&ye(r),C=q,Q|0;c=R()|0,m&&(ye(m),a=e[r0>>2]|0)}b0(J),b0(w0),V(i0)}else c=R()|0;ne(a)|0}return(U|0)==7&&(c=R()|0),l&&ye(l),r&&ye(r),B(c|0),0}function dS(r,t,n,f,s,o,l,a,c,m){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0;var h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0;U=C,C=C+112|0,h=U+108|0,g=U+96|0,y=U+92|0,E=U+80|0,P=U+68|0,I=U+56|0,A=U+52|0,_=U+40|0,w=U+36|0,x=U+24|0,v=U+12|0,d=U;do if(r){r=I2(n,43956)|0,n=e[r>>2]|0;do if(t)if(Ae[e[n+44>>2]&127](h,r),t=e[h>>2]|0,p[f>>0]=t,p[f+1>>0]=t>>8,p[f+2>>0]=t>>16,p[f+3>>0]=t>>24,Ae[e[(e[r>>2]|0)+32>>2]&127](g,r),p[c>>0]&1?e[e[c+8>>2]>>2]=0:p[c>>0]=0,e[c+4>>2]=0,u=0,b(93,c|0,0),f=u,u=0,f&1)c=R(0)|0,ie(c);else{e[c>>2]=e[g>>2],e[c+4>>2]=e[g+4>>2],e[c+8>>2]=e[g+8>>2],e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,b0(g);break}else if(Ae[e[n+40>>2]&127](y,r),t=e[y>>2]|0,p[f>>0]=t,p[f+1>>0]=t>>8,p[f+2>>0]=t>>16,p[f+3>>0]=t>>24,Ae[e[(e[r>>2]|0)+28>>2]&127](E,r),p[c>>0]&1?e[e[c+8>>2]>>2]=0:p[c>>0]=0,e[c+4>>2]=0,u=0,b(93,c|0,0),f=u,u=0,f&1)c=R(0)|0,ie(c);else{e[c>>2]=e[E>>2],e[c+4>>2]=e[E+4>>2],e[c+8>>2]=e[E+8>>2],e[E>>2]=0,e[E+4>>2]=0,e[E+8>>2]=0,b0(E);break}while(0);if(c=V0[e[(e[r>>2]|0)+12>>2]&127](r)|0,e[s>>2]=c,c=V0[e[(e[r>>2]|0)+16>>2]&127](r)|0,e[o>>2]=c,Ae[e[(e[r>>2]|0)+20>>2]&127](P,r),p[l>>0]&1?(p[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(p[l+1>>0]=0,p[l>>0]=0),u=0,b(91,l|0,0),o=u,u=0,o&1&&(o=R(0)|0,ie(o)),e[l>>2]=e[P>>2],e[l+4>>2]=e[P+4>>2],e[l+8>>2]=e[P+8>>2],e[P>>2]=0,e[P+4>>2]=0,e[P+8>>2]=0,V(P),Ae[e[(e[r>>2]|0)+24>>2]&127](I,r),p[a>>0]&1?e[e[a+8>>2]>>2]=0:p[a>>0]=0,e[a+4>>2]=0,u=0,b(93,a|0,0),o=u,u=0,o&1)o=R(0)|0,ie(o);else{e[a>>2]=e[I>>2],e[a+4>>2]=e[I+4>>2],e[a+8>>2]=e[I+8>>2],e[I>>2]=0,e[I+4>>2]=0,e[I+8>>2]=0,b0(I),M=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}}else{r=I2(n,43892)|0,n=e[r>>2]|0;do if(t)if(Ae[e[n+44>>2]&127](A,r),t=e[A>>2]|0,p[f>>0]=t,p[f+1>>0]=t>>8,p[f+2>>0]=t>>16,p[f+3>>0]=t>>24,Ae[e[(e[r>>2]|0)+32>>2]&127](_,r),p[c>>0]&1?e[e[c+8>>2]>>2]=0:p[c>>0]=0,e[c+4>>2]=0,u=0,b(93,c|0,0),f=u,u=0,f&1)c=R(0)|0,ie(c);else{e[c>>2]=e[_>>2],e[c+4>>2]=e[_+4>>2],e[c+8>>2]=e[_+8>>2],e[_>>2]=0,e[_+4>>2]=0,e[_+8>>2]=0,b0(_);break}else if(Ae[e[n+40>>2]&127](w,r),t=e[w>>2]|0,p[f>>0]=t,p[f+1>>0]=t>>8,p[f+2>>0]=t>>16,p[f+3>>0]=t>>24,Ae[e[(e[r>>2]|0)+28>>2]&127](x,r),p[c>>0]&1?e[e[c+8>>2]>>2]=0:p[c>>0]=0,e[c+4>>2]=0,u=0,b(93,c|0,0),f=u,u=0,f&1)c=R(0)|0,ie(c);else{e[c>>2]=e[x>>2],e[c+4>>2]=e[x+4>>2],e[c+8>>2]=e[x+8>>2],e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,b0(x);break}while(0);if(c=V0[e[(e[r>>2]|0)+12>>2]&127](r)|0,e[s>>2]=c,c=V0[e[(e[r>>2]|0)+16>>2]&127](r)|0,e[o>>2]=c,Ae[e[(e[r>>2]|0)+20>>2]&127](v,r),p[l>>0]&1?(p[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(p[l+1>>0]=0,p[l>>0]=0),u=0,b(91,l|0,0),o=u,u=0,o&1&&(o=R(0)|0,ie(o)),e[l>>2]=e[v>>2],e[l+4>>2]=e[v+4>>2],e[l+8>>2]=e[v+8>>2],e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,V(v),Ae[e[(e[r>>2]|0)+24>>2]&127](d,r),p[a>>0]&1?e[e[a+8>>2]>>2]=0:p[a>>0]=0,e[a+4>>2]=0,u=0,b(93,a|0,0),o=u,u=0,o&1)o=R(0)|0,ie(o);else{e[a>>2]=e[d>>2],e[a+4>>2]=e[d+4>>2],e[a+8>>2]=e[d+8>>2],e[d>>2]=0,e[d+4>>2]=0,e[d+8>>2]=0,b0(d),M=V0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}}while(0);e[m>>2]=M,C=U}function kS(r,t,n,f,s,o,l,a,c,m,h,g,v,d,y){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0,g=g|0,v=v|0,d=d|0,y=y|0;var E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0,Re=0,De=0,oe=0;e[n>>2]=r,De=d+4|0,oe=d+8|0,r0=v+4|0,i0=(f&512|0)==0,J=v+8|0,w0=(y|0)>0,ve=g+4|0,le=g+8|0,Re=g+1|0,q=(y|0)>0,U=0;do{switch(p[c+U>>0]|0){case 0:{e[t>>2]=e[n>>2];break}case 1:{e[t>>2]=e[n>>2],x=F2[e[(e[l>>2]|0)+44>>2]&63](l,32)|0,M=e[n>>2]|0,e[n>>2]=M+4,e[M>>2]=x;break}case 3:{M=p[d>>0]|0,E=(M&1)==0,(E?(M&255)>>>1:e[De>>2]|0)|0&&(x=e[(E?De:e[oe>>2]|0)>>2]|0,M=e[n>>2]|0,e[n>>2]=M+4,e[M>>2]=x);break}case 2:{if(_=p[v>>0]|0,E=(_&1)==0,_=E?(_&255)>>>1:e[r0>>2]|0,!(i0|(_|0)==0)){if(E=E?r0:e[J>>2]|0,I=E+(_<<2)|0,A=e[n>>2]|0,_)for(P=A;e[P>>2]=e[E>>2],E=E+4|0,(E|0)!=(I|0);)P=P+4|0;e[n>>2]=A+(_<<2)}break}case 4:{E=e[n>>2]|0,s=a?s+4|0:s;e:do if(s>>>0>>0){P=s;do{if(!(ge[e[(e[l>>2]|0)+12>>2]&63](l,2048,e[P>>2]|0)|0))break e;P=P+4|0}while(P>>>0>>0)}else P=s;while(0);if(w0){if(P>>>0>s>>>0&q){for(_=e[n>>2]|0,A=y;;)if(P=P+-4|0,I=_+4|0,e[_>>2]=e[P>>2],w=A+-1|0,A=(A|0)>1,P>>>0>s>>>0&A)_=I,A=w;else{_=w;break}e[n>>2]=I,I=_}else A=q,I=y;if(A?w=F2[e[(e[l>>2]|0)+44>>2]&63](l,48)|0:w=0,x=e[n>>2]|0,A=I+((I|0)<0?~I:-1)|0,(I|0)>0)for(_=x;e[_>>2]=w,(I|0)>1;)_=_+4|0,I=I+-1|0;e[n>>2]=x+(A+2<<2),e[x+(A+1<<2)>>2]=m}if((P|0)==(s|0))x=F2[e[(e[l>>2]|0)+44>>2]&63](l,48)|0,M=e[n>>2]|0,P=M+4|0,e[n>>2]=P,e[M>>2]=x;else{if(x=p[g>>0]|0,I=(x&1)==0,M=e[ve>>2]|0,(I?(x&255)>>>1:M)|0?I=p[(I?Re:e[le>>2]|0)>>0]|0:I=-1,(P|0)!=(s|0))for(w=0,x=0;A=e[n>>2]|0,(x|0)==(I|0)?(_=A+4|0,e[n>>2]=_,e[A>>2]=h,w=w+1|0,A=p[g>>0]|0,I=(A&1)==0,w>>>0<(I?(A&255)>>>1:M)>>>0?(I=p[(I?Re:e[le>>2]|0)+w>>0]|0,A=_,I=I<<24>>24==127?-1:I<<24>>24,_=0):(A=_,I=x,_=0)):_=x,P=P+-4|0,x=e[P>>2]|0,e[n>>2]=A+4,e[A>>2]=x,(P|0)!=(s|0);)x=_+1|0;P=e[n>>2]|0}if((E|0)!=(P|0)&&(Q=P+-4|0,E>>>0>>0)){P=Q;do M=e[E>>2]|0,e[E>>2]=e[P>>2],e[P>>2]=M,E=E+4|0,P=P+-4|0;while(E>>>0

>>0)}break}default:}U=U+1|0}while((U|0)!=4);if(E=p[d>>0]|0,s=(E&1)==0,E=s?(E&255)>>>1:e[De>>2]|0,E>>>0>1){if(P=s?De:e[oe>>2]|0,s=P+4|0,P=P+(E<<2)|0,I=e[n>>2]|0,A=P-s|0,(E|0)!=1)for(E=I;e[E>>2]=e[s>>2],s=s+4|0,(s|0)!=(P|0);)E=E+4|0;e[n>>2]=I+(A>>>2<<2)}switch(f&176|0){case 32:{e[t>>2]=e[n>>2];break}case 16:break;default:e[t>>2]=r}}function _S(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;x=C,C=C+480|0,v=x+468|0,U=x+464|0,_=x+472|0,P=x+56|0,w=x+52|0,q=x+40|0,r0=x+28|0,Q=x+16|0,m=x+12|0,g=x+64|0,A=x+8|0,I=x+4|0,d=x,r=We(f)|0,e[U>>2]=r,u=0,y=c0(37,U|0,44212)|0,E=u,u=0;do if(E&1)i0=13;else{if(h=p[o>>0]|0,l=(h&1)==0,E=o+4|0,!((l?(h&255)>>>1:e[E>>2]|0)|0))h=0;else{if(l=e[(l?E:e[o+8>>2]|0)>>2]|0,u=0,a=c0(e[(e[y>>2]|0)+44>>2]|0,y|0,45)|0,h=u,u=0,h&1){i0=13;break}h=(l|0)==(a|0)}if(e[q>>2]=0,e[q+4>>2]=0,e[q+8>>2]=0,e[r0>>2]=0,e[r0+4>>2]=0,e[r0+8>>2]=0,e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,u=0,Ei(4,n|0,h|0,U|0,_|0,P|0,w|0,q|0,r0|0,Q|0,m|0),c=u,u=0,c&1)l=R()|0;else{if(c=p[o>>0]|0,n=e[E>>2]|0,l=c&1?n:(c&255)>>>1,m=e[m>>2]|0,(l|0)>(m|0)?(J=p[Q>>0]|0,a=p[r0>>0]|0,l=(l-m<<1|1)+m+(J&1?e[Q+4>>2]|0:(J&255)>>>1)+(a&1?e[r0+4>>2]|0:(a&255)>>>1)|0):(J=p[Q>>0]|0,l=p[r0>>0]|0,l=m+2+(J&1?e[Q+4>>2]|0:(J&255)>>>1)+(l&1?e[r0+4>>2]|0:(l&255)>>>1)|0),l>>>0>100?(l=S2(l<<2)|0,a=l,l?i0=17:(u=0,be(6),J=u,u=0,J&1||(c=p[o>>0]|0,n=e[E>>2]|0,l=0,i0=17))):(a=0,l=g,i0=17),(i0|0)==17&&(J=(c&1)==0,o=J?E:e[o+8>>2]|0,u=0,Lr(2,l|0,A|0,I|0,e[f+4>>2]|0,o|0,o+((J?(c&255)>>>1:n)<<2)|0,y|0,h|0,_|0,e[P>>2]|0,e[w>>2]|0,q|0,r0|0,Q|0,m|0),J=u,u=0,!(J&1)&&(e[d>>2]=e[t>>2],J=e[A>>2]|0,M=e[I>>2]|0,u=0,e[v>>2]=e[d>>2],M=N1(40,v|0,l|0,J|0,M|0,f|0,s|0)|0,J=u,u=0,!(J&1))))return a&&(ye(a),r=e[U>>2]|0),b0(Q),b0(r0),V(q),ne(r)|0,C=x,M|0;l=R()|0,a&&(ye(a),r=e[U>>2]|0)}b0(Q),b0(r0),V(q)}while(0);return(i0|0)==13&&(l=R()|0),ne(r)|0,B(l|0),0}function TS(r){r=r|0}function wS(r){r=r|0,H(r)}function CS(r,t,n){return r=r|0,t=t|0,n=n|0,r=tl(p[t>>0]&1?e[t+8>>2]|0:t+1|0,1)|0,r>>>((r|0)!=-1&1)|0}function AS(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0;a=C,C=C+16|0,c=a,e[c>>2]=0,e[c+4>>2]=0,e[c+8>>2]=0,l=p[o>>0]|0,m=(l&1)==0,t=m?o+1|0:e[o+8>>2]|0,l=m?(l&255)>>>1:e[o+4>>2]|0,o=t+l|0;e:do if((l|0)>0){for(;u=0,b(67,c|0,p[t>>0]|0),m=u,u=0,!(m&1);)if(t=t+1|0,t>>>0>=o>>>0){l=4;break e}t=R()|0,l=7}else l=4;while(0);e:do if((l|0)==4){if(u=0,t=Me(19,((n|0)==-1?-1:n<<1)|0,f|0,s|0,(p[c>>0]&1?e[c+8>>2]|0:c+1|0)|0)|0,m=u,u=0,m&1){t=R()|0,l=7;break}e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,m=gi(t)|0,o=t+m|0;i:do if((m|0)>0){for(;u=0,b(67,r|0,p[t>>0]|0),m=u,u=0,!(m&1);)if(t=t+1|0,t>>>0>=o>>>0)break i;t=R()|0,V(r);break e}while(0);V(c),C=a;return}while(0);V(c),B(t|0)}function DS(r,t){r=r|0,t=t|0}function yS(r){r=r|0}function IS(r){r=r|0,H(r)}function ES(r,t,n){return r=r|0,t=t|0,n=n|0,r=tl(p[t>>0]&1?e[t+8>>2]|0:t+1|0,1)|0,r>>>((r|0)!=-1&1)|0}function PS(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0;A=C,C=C+224|0,g=A+184|0,h=A+192|0,m=A+180|0,v=A+176|0,P=A+168|0,E=A+40|0,y=A+32|0,I=A+28|0,_=A+16|0,c=A+8|0,d=A,e[_>>2]=0,e[_+4>>2]=0,e[_+8>>2]=0,e[c+4>>2]=0,e[c>>2]=44696,a=p[o>>0]|0,w=(a&1)==0,l=o+4|0,t=w?l:e[o+8>>2]|0,o=w?(a&255)>>>1:e[l>>2]|0,l=t+(o<<2)|0,a=h+32|0;e:do if((o|0)>0){i:for(;;){if(e[v>>2]=t,u=0,o=vs(e[(e[c>>2]|0)+12>>2]|0,c|0,g|0,t|0,l|0,v|0,h|0,a|0,m|0)|0,w=u,u=0,w&1){o=12;break}if((o|0)==2||(e[v>>2]|0)==(t|0)){o=5;break}if(h>>>0<(e[m>>2]|0)>>>0){t=h;do{if(u=0,b(67,_|0,p[t>>0]|0),w=u,u=0,w&1){o=11;break i}t=t+1|0}while(t>>>0<(e[m>>2]|0)>>>0)}if(t=e[v>>2]|0,!((o|0)!=2&t>>>0>>0)){o=9;break e}}(o|0)==5?(u=0,A0(190,58955),u=0,t=R()|0):((o|0)==11||(o|0)==12)&&(t=R()|0)}else o=9;while(0);e:do if((o|0)==9){if(u=0,t=Me(19,((n|0)==-1?-1:n<<1)|0,f|0,s|0,(p[_>>0]&1?e[_+8>>2]|0:_+1|0)|0)|0,w=u,u=0,w&1){t=R()|0;break}e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[d+4>>2]=0,e[d>>2]=44744,w=gi(t)|0,l=t+w|0,a=l,c=E+128|0;i:do if((w|0)>0){r:for(;;){if(e[I>>2]=t,u=0,o=vs(e[(e[d>>2]|0)+16>>2]|0,d|0,P|0,t|0,((a-t|0)>32?t+32|0:l)|0,I|0,E|0,c|0,y|0)|0,w=u,u=0,w&1){o=24;break}if((o|0)==2||(e[I>>2]|0)==(t|0)){o=18;break}if(E>>>0<(e[y>>2]|0)>>>0){t=E;do{if(u=0,b(92,r|0,e[t>>2]|0),w=u,u=0,w&1){o=23;break r}t=t+4|0}while(t>>>0<(e[y>>2]|0)>>>0)}if(t=e[I>>2]|0,!((o|0)!=2&t>>>0>>0))break i}(o|0)==18?(u=0,A0(190,58955),u=0,t=R()|0):((o|0)==23||(o|0)==24)&&(t=R()|0),b0(r);break e}while(0);V(_),C=A;return}while(0);V(_),B(t|0)}function LS(r,t){r=r|0,t=t|0}function RS(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0;if(e[r+4>>2]=t+-1,e[r>>2]=44196,o=r+8|0,u=0,b(94,o|0,28),s=u,u=0,s&1)t=R()|0;else{if(s=r+144|0,u=0,u0(5,s|0,58885,1),f=u,u=0,f&1)t=R()|0;else{if(n=e[o>>2]|0,f=r+12|0,t=e[f>>2]|0,(t|0)!=(n|0)){do t=t+-4|0;while((t|0)!=(n|0));e[f>>2]=t}e[495]=0,e[494]=43124,u=0,b(95,r|0,1976),f=u,u=0;do if(!(f&1)&&(e[497]=0,e[496]=43164,u=0,b(96,r|0,1984),f=u,u=0,!(f&1))&&(e[499]=0,e[498]=44236,e[500]=0,p[2004]=0,f=fr()|0,e[500]=f,u=0,b(97,r|0,1992),f=u,u=0,!(f&1))&&(e[503]=0,e[502]=44484,u=0,b(98,r|0,2008),f=u,u=0,!(f&1))&&(e[505]=0,e[504]=44552,u=0,b(99,r|0,2016),f=u,u=0,!(f&1))&&(u=0,b(100,2024,1),f=u,u=0,!(f&1))&&(u=0,b(101,r|0,2024),f=u,u=0,!(f&1))&&(e[511]=0,e[510]=44600,u=0,b(102,r|0,2040),f=u,u=0,!(f&1))&&(e[513]=0,e[512]=44648,u=0,b(103,r|0,2048),f=u,u=0,!(f&1))&&(Kp(2056,1),u=0,b(104,r|0,2056),f=u,u=0,!(f&1))&&(Jp(2080,1),u=0,b(105,r|0,2080),f=u,u=0,!(f&1))&&(e[529]=0,e[528]=43204,u=0,b(106,r|0,2112),f=u,u=0,!(f&1))&&(e[531]=0,e[530]=43276,u=0,b(107,r|0,2120),f=u,u=0,!(f&1))&&(e[533]=0,e[532]=43348,u=0,b(108,r|0,2128),f=u,u=0,!(f&1))){if(e[535]=0,e[534]=43408,u=0,b(109,r|0,2136),f=u,u=0,f&1){l=42;break}if(e[537]=0,e[536]=43716,u=0,b(110,r|0,2144),f=u,u=0,f&1){l=42;break}if(e[539]=0,e[538]=43780,u=0,b(111,r|0,2152),f=u,u=0,f&1){l=42;break}if(e[541]=0,e[540]=43844,u=0,b(112,r|0,2160),f=u,u=0,f&1){l=42;break}if(e[543]=0,e[542]=43908,u=0,b(113,r|0,2168),f=u,u=0,f&1){l=42;break}if(e[545]=0,e[544]=43972,u=0,b(114,r|0,2176),f=u,u=0,f&1){l=42;break}if(e[547]=0,e[546]=44008,u=0,b(115,r|0,2184),f=u,u=0,f&1){l=42;break}if(e[549]=0,e[548]=44044,u=0,b(116,r|0,2192),f=u,u=0,f&1){l=42;break}if(e[551]=0,e[550]=44080,u=0,b(117,r|0,2200),f=u,u=0,f&1){l=42;break}if(e[553]=0,e[552]=43468,e[554]=43516,u=0,b(118,r|0,2208),f=u,u=0,f&1){l=42;break}if(e[557]=0,e[556]=43560,e[558]=43608,u=0,b(119,r|0,2224),f=u,u=0,f&1){l=42;break}if(e[561]=0,e[560]=44464,u=0,t=Te(3)|0,f=u,u=0,f&1){t=R()|0;break}if(e[562]=t,e[560]=43652,u=0,b(120,r|0,2240),f=u,u=0,f&1){l=42;break}if(e[565]=0,e[564]=44464,u=0,t=Te(3)|0,f=u,u=0,f&1){t=R()|0;break}if(e[566]=t,e[564]=43684,u=0,b(121,r|0,2256),l=u,u=0,l&1){l=42;break}if(e[569]=0,e[568]=44116,u=0,b(122,r|0,2272),l=u,u=0,l&1){l=42;break}if(e[571]=0,e[570]=44156,u=0,b(123,r|0,2280),l=u,u=0,l&1){l=42;break}return}else l=42;while(0);(l|0)==42&&(t=R()|0),V(s)}Xn(o)}B(t|0)}function OS(){var r=0;do if(!(p[2288]|0)&&Y0(2288)|0)if(u=0,Te(4)|0,r=u,u=0,r&1)r=R()|0,U2(2288),B(r|0);else{e[11246]=44980,X0(2288);break}while(0);return e[11246]|0}function l2(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;Nr(t),s=r+8|0,f=e[s>>2]|0;do if((e[r+12>>2]|0)-f>>2>>>0<=n>>>0){if(u=0,b(124,s|0,n+1|0),r=u,u=0,!(r&1)){f=e[s>>2]|0;break}f=R()|0,t&&ne(t)|0,B(f|0)}while(0);r=e[f+(n<<2)>>2]|0,r&&(ne(r)|0,f=e[s>>2]|0),e[f+(n<<2)>>2]=t}function So(r){r=r|0;var t=0,n=0,f=0,s=0;if(e[r>>2]=44196,f=r+8|0,s=r+12|0,t=e[f>>2]|0,(e[s>>2]|0)!=(t|0)){n=0;do t=e[t+(n<<2)>>2]|0,t&&ne(t)|0,n=n+1|0,t=e[f>>2]|0;while(n>>>0<(e[s>>2]|0)-t>>2>>>0)}V(r+144|0),Xn(f)}function xS(r){r=r|0,So(r),H(r)}function MS(r,t){return r=r|0,t=t|0,Dv(r,t)|0?e[(e[r+8>>2]|0)+(t<<2)>>2]|0:(r=B0(4)|0,Ek(r),Se(r|0,640,82),0)}function qS(){return RS(2296,1),e[11245]=2296,44980}function NS(){var r=0;return r=OS()|0,r=e[r>>2]|0,e[11247]=r,Nr(r),44988}function US(){var r=0;do if(!(p[2456]|0)&&Y0(2456)|0)if(u=0,Te(5)|0,r=u,u=0,r&1)r=R()|0,U2(2456),B(r|0);else{e[11248]=44988,X0(2456);break}while(0);return e[11248]|0}function On(r){r=r|0;var t=0,n=0;if(u=0,t=Te(6)|0,n=u,u=0,n&1)n=R(0)|0,ie(n);else{n=e[t>>2]|0,e[r>>2]=n,Nr(n);return}}function nr(r,t){r=r|0,t=t|0,t=e[t>>2]|0,e[r>>2]=t,Nr(t)}function T2(r){r=r|0,ne(e[r>>2]|0)|0}function s2(r){r=r|0;var t=0,n=0;return n=C,C=C+16|0,t=n,(e[r>>2]|0)!=-1&&(e[t>>2]=r,e[t+4>>2]=191,e[t+8>>2]=0,am(r,t,192)),C=n,(e[r+4>>2]|0)+-1|0}function I2(r,t){return r=r|0,t=t|0,r=e[r>>2]|0,MS(r,s2(t)|0)|0}function BS(r){r=r|0,H(r)}function QS(r){r=r|0,r&&W0[e[(e[r>>2]|0)+4>>2]&255](r)}function GS(r){r=r|0;var t=0;t=e[11052]|0,e[11052]=t+1,e[r+4>>2]=t+1}function HS(r){r=r|0,H(r)}function VS(r,t,n){return r=r|0,t=t|0,n=n|0,n>>>0<128?(n=(fr()|0)+(n<<1)|0,n=(F[n>>1]&t)<<16>>16!=0):n=0,n|0}function fr(){var r=0,t=0;if(u=0,r=Te(7)|0,t=u,u=0,t&1)t=R(0)|0,ie(t);else return e[r>>2]|0;return 0}function zS(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;if(o=(n-t|0)>>>2,(t|0)!=(n|0))for(s=t;r=e[s>>2]|0,r>>>0<128?(r=(fr()|0)+(r<<1)|0,r=$[r>>1]|0):r=0,F[f>>1]=r,s=s+4|0,(s|0)!=(n|0);)f=f+2|0;return t+(o<<2)|0}function YS(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;e:do if((n|0)==(f|0))n=f;else for(;;){if(r=e[n>>2]|0,r>>>0<128&&(r=(fr()|0)+(r<<1)|0,(F[r>>1]&t)<<16>>16!=0))break e;if(n=n+4|0,(n|0)==(f|0)){n=f;break}}while(0);return n|0}function XS(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;e:do if((n|0)==(f|0))n=f;else for(;;){if(r=e[n>>2]|0,r>>>0>=128||(r=(fr()|0)+(r<<1)|0,!((F[r>>1]&t)<<16>>16)))break e;if(n=n+4|0,(n|0)==(f|0)){n=f;break}}while(0);return n|0}function jS(r,t){return r=r|0,t=t|0,t>>>0<128&&(t=(Mr()|0)+(t<<2)|0,t=e[t>>2]|0),t|0}function Mr(){var r=0,t=0;if(u=0,r=Te(8)|0,t=u,u=0,t&1)t=R(0)|0,ie(t);else return e[r>>2]|0;return 0}function WS(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;if(s=(n-t|0)>>>2,(t|0)!=(n|0)){f=t;do r=e[f>>2]|0,r>>>0<128&&(r=(Mr()|0)+(r<<2)|0,r=e[r>>2]|0),e[f>>2]=r,f=f+4|0;while((f|0)!=(n|0))}return t+(s<<2)|0}function ZS(r,t){return r=r|0,t=t|0,t>>>0<128&&(t=(qr()|0)+(t<<2)|0,t=e[t>>2]|0),t|0}function qr(){var r=0,t=0;if(u=0,r=Te(9)|0,t=u,u=0,t&1)t=R(0)|0,ie(t);else return e[r>>2]|0;return 0}function KS(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;if(s=(n-t|0)>>>2,(t|0)!=(n|0)){f=t;do r=e[f>>2]|0,r>>>0<128&&(r=(qr()|0)+(r<<2)|0,r=e[r>>2]|0),e[f>>2]=r,f=f+4|0;while((f|0)!=(n|0))}return t+(s<<2)|0}function JS(r,t){return r=r|0,t=t|0,t<<24>>24|0}function $S(r,t,n,f){if(r=r|0,t=t|0,n=n|0,f=f|0,(t|0)!=(n|0))for(;e[f>>2]=p[t>>0],t=t+1|0,(t|0)!=(n|0);)f=f+4|0;return n|0}function bS(r,t,n){return r=r|0,t=t|0,n=n|0,(t>>>0<128?t&255:n)|0}function e9(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0;if(l=(n-t|0)>>>2,(t|0)!=(n|0))for(o=t,r=s;s=e[o>>2]|0,p[r>>0]=s>>>0<128?s&255:f,o=o+4|0,(o|0)!=(n|0);)r=r+1|0;return t+(l<<2)|0}function mo(r){r=r|0;var t=0;e[r>>2]=44236,t=e[r+8>>2]|0,t|0&&p[r+12>>0]|0&&kk(t)}function i9(r){r=r|0,mo(r),H(r)}function r9(r,t){return r=r|0,t=t|0,t<<24>>24>-1&&(t=(Mr()|0)+((t&255)<<2)|0,t=e[t>>2]&255),t|0}function t9(r,t,n){if(r=r|0,t=t|0,n=n|0,(t|0)!=(n|0)){r=t;do t=p[r>>0]|0,t<<24>>24>-1&&(t=(Mr()|0)+(t<<24>>24<<2)|0,t=e[t>>2]&255),p[r>>0]=t,r=r+1|0;while((r|0)!=(n|0))}return n|0}function n9(r,t){return r=r|0,t=t|0,t<<24>>24>-1&&(t=(qr()|0)+(t<<24>>24<<2)|0,t=e[t>>2]&255),t|0}function f9(r,t,n){if(r=r|0,t=t|0,n=n|0,(t|0)!=(n|0)){r=t;do t=p[r>>0]|0,t<<24>>24>-1&&(t=(qr()|0)+(t<<24>>24<<2)|0,t=e[t>>2]&255),p[r>>0]=t,r=r+1|0;while((r|0)!=(n|0))}return n|0}function s9(r,t){return r=r|0,t=t|0,t|0}function o9(r,t,n,f){if(r=r|0,t=t|0,n=n|0,f=f|0,(t|0)!=(n|0))for(;p[f>>0]=p[t>>0]|0,t=t+1|0,(t|0)!=(n|0);)f=f+1|0;return n|0}function l9(r,t,n){return r=r|0,t=t|0,n=n|0,(t<<24>>24>-1?t:n)|0}function u9(r,t,n,f,s){if(r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,(t|0)!=(n|0))for(;r=p[t>>0]|0,p[s>>0]=r<<24>>24>-1?r:f,t=t+1|0,(t|0)!=(n|0);)s=s+1|0;return n|0}function a9(r){r=r|0,H(r)}function c9(r,t,n,f,s,o,l,a){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,e[s>>2]=n,e[a>>2]=o,3}function h9(r,t,n,f,s,o,l,a){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,e[s>>2]=n,e[a>>2]=o,3}function S9(r,t,n,f,s){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,e[s>>2]=n,3}function m9(r){return r=r|0,1}function p9(r){return r=r|0,1}function g9(r,t,n,f,s){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,r=f-n|0,(r>>>0>>0?r:s)|0}function v9(r){return r=r|0,1}function d9(r,t){r=r|0,t=t|0;var n=0;if(e[r+4>>2]=t+-1,e[r>>2]=44304,u=0,t=Te(3)|0,n=u,u=0,n&1)n=R()|0,B(n|0);else{e[r+8>>2]=t;return}}function k9(r){r=r|0,Uo(r),H(r)}function xn(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0,Re=0,De=0,oe=0,L0=0,me=0,P0=0,F0=0,u2=0,h2=0,i2=0,S0=0,N0=0,ce=0,je=0,Be=0,Ze=0,m2=0,t2=0,V1=0,d2=0,R1=0;R1=C,C=C+624|0,Ze=R1+24|0,t2=R1+16|0,m2=R1+588|0,S0=R1+576|0,Be=R1,u2=R1+536|0,d2=R1+8|0,V1=R1+528|0,ve=(r|0)!=0,le=u2+40|0,F0=le,u2=u2+39|0,h2=d2+4|0,i2=S0+12|0,S0=S0+11|0,N0=m2,ce=i2,je=ce-N0|0,Re=-2-N0|0,De=ce+2|0,oe=Ze+288|0,L0=m2+9|0,me=L0,P0=m2+8|0,o=0,E=t,l=0,t=0;e:for(;;){do if((o|0)>-1)if((l|0)>(2147483647-o|0)){o=r2()|0,e[o>>2]=75,o=-1;break}else{o=l+o|0;break}while(0);if(l=p[E>>0]|0,l<<24>>24)a=E;else{w0=245;break}i:for(;;){switch(l<<24>>24){case 37:{l=a,w0=9;break i}case 0:{l=a;break i}default:}J=a+1|0,l=p[J>>0]|0,a=J}i:do if((w0|0)==9)for(;;){if(w0=0,(p[l+1>>0]|0)!=37)break i;if(a=a+1|0,l=l+2|0,(p[l>>0]|0)==37)w0=9;else break}while(0);if(I=a-E|0,ve&&!(e[r>>2]&32|0)&&P2(E,I,r)|0,(a|0)!=(E|0)){E=l,l=I;continue}h=l+1|0,a=p[h>>0]|0,c=(a<<24>>24)+-48|0,c>>>0<10?(J=(p[l+2>>0]|0)==36,h=J?l+3|0:h,a=p[h>>0]|0,d=J?c:-1,t=J?1:t):d=-1,l=a<<24>>24;i:do if((l&-32|0)==32)for(c=0;;){if(!(1<>24)+-32|c,h=h+1|0,a=p[h>>0]|0,l=a<<24>>24,(l&-32|0)!=32){g=c,l=h;break}}else g=0,l=h;while(0);do if(a<<24>>24==42){if(c=l+1|0,a=(p[c>>0]|0)+-48|0,a>>>0<10&&(p[l+2>>0]|0)==36)e[s+(a<<2)>>2]=10,t=1,l=l+3|0,a=e[f+((p[c>>0]|0)+-48<<3)>>2]|0;else{if(t){o=-1;break e}if(!ve){P=g,l=c,t=0,J=0;break}t=(e[n>>2]|0)+(4-1)&~(4-1),a=e[t>>2]|0,e[n>>2]=t+4,t=0,l=c}(a|0)<0?(P=g|8192,J=0-a|0):(P=g,J=a)}else if(c=(a<<24>>24)+-48|0,c>>>0<10){a=0;do a=(a*10|0)+c|0,l=l+1|0,c=(p[l>>0]|0)+-48|0;while(c>>>0<10);if((a|0)<0){o=-1;break e}else P=g,J=a}else P=g,J=0;while(0);i:do if((p[l>>0]|0)==46){if(c=l+1|0,a=p[c>>0]|0,a<<24>>24!=42){if(h=(a<<24>>24)+-48|0,h>>>0<10)l=c,a=0;else{l=c,h=0;break}for(;;)if(a=(a*10|0)+h|0,l=l+1|0,h=(p[l>>0]|0)+-48|0,h>>>0>=10){h=a;break i}}if(c=l+2|0,a=(p[c>>0]|0)+-48|0,a>>>0<10&&(p[l+3>>0]|0)==36){e[s+(a<<2)>>2]=10,l=l+4|0,h=e[f+((p[c>>0]|0)+-48<<3)>>2]|0;break}if(t){o=-1;break e}ve?(l=(e[n>>2]|0)+(4-1)&~(4-1),h=e[l>>2]|0,e[n>>2]=l+4,l=c):(l=c,h=0)}else h=-1;while(0);for(v=0;;){if(a=(p[l>>0]|0)+-65|0,a>>>0>57){o=-1;break e}if(c=l+1|0,a=p[56223+(v*58|0)+a>>0]|0,g=a&255,(g+-1|0)>>>0<8)l=c,v=g;else{i0=c;break}}if(!(a<<24>>24)){o=-1;break}c=(d|0)>-1;do if(a<<24>>24==19)if(c){o=-1;break e}else w0=52;else{if(c){e[s+(d<<2)>>2]=g,Q=f+(d<<3)|0,r0=e[Q+4>>2]|0,w0=Be,e[w0>>2]=e[Q>>2],e[w0+4>>2]=r0,w0=52;break}if(!ve){o=0;break e}go(Be,g,n)}while(0);if((w0|0)==52&&(w0=0,!ve)){E=i0,l=I;continue}d=p[l>>0]|0,d=(v|0)!=0&(d&15|0)==3?d&-33:d,c=P&-65537,r0=P&8192|0?c:P;i:do switch(d|0){case 110:switch(v|0){case 0:{e[e[Be>>2]>>2]=o,E=i0,l=I;continue e}case 1:{e[e[Be>>2]>>2]=o,E=i0,l=I;continue e}case 2:{E=e[Be>>2]|0,e[E>>2]=o,e[E+4>>2]=((o|0)<0)<<31>>31,E=i0,l=I;continue e}case 3:{F[e[Be>>2]>>1]=o,E=i0,l=I;continue e}case 4:{p[e[Be>>2]>>0]=o,E=i0,l=I;continue e}case 6:{e[e[Be>>2]>>2]=o,E=i0,l=I;continue e}case 7:{E=e[Be>>2]|0,e[E>>2]=o,e[E+4>>2]=((o|0)<0)<<31>>31,E=i0,l=I;continue e}default:{E=i0,l=I;continue e}}case 112:{v=r0|8,h=h>>>0>8?h:8,d=120,w0=64;break}case 88:case 120:{v=r0,w0=64;break}case 111:{if(c=Be,a=e[c>>2]|0,c=e[c+4>>2]|0,(a|0)==0&(c|0)==0)l=le;else{l=le;do l=l+-1|0,p[l>>0]=a&7|48,a=K1(a|0,c|0,3)|0,c=f0;while(!((a|0)==0&(c|0)==0))}r0&8?(v=F0-l+1|0,a=r0,h=(h|0)<(v|0)?v:h,v=0,g=56703,w0=77):(a=r0,v=0,g=56703,w0=77);break}case 105:case 100:{if(a=Be,l=e[a>>2]|0,a=e[a+4>>2]|0,(a|0)<0){l=J2(0,0,l|0,a|0)|0,a=f0,c=Be,e[c>>2]=l,e[c+4>>2]=a,c=1,g=56703,w0=76;break i}r0&2048?(c=1,g=56704,w0=76):(g=r0&1,c=g,g=g|0?56705:56703,w0=76);break}case 117:{a=Be,l=e[a>>2]|0,a=e[a+4>>2]|0,c=0,g=56703,w0=76;break}case 99:{p[u2>>0]=e[Be>>2],E=u2,a=1,v=0,d=56703,l=le;break}case 109:{l=r2()|0,l=el(e[l>>2]|0)|0,w0=82;break}case 115:{l=e[Be>>2]|0,l=l|0?l:56713,w0=82;break}case 67:{e[d2>>2]=e[Be>>2],e[h2>>2]=0,e[Be>>2]=d2,h=-1,w0=86;break}case 83:{h?w0=86:(M2(r,32,J,0,r0),l=0,w0=98);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{m=+t0[Be>>3],e[t2>>2]=0,t0[v0>>3]=m,(e[v0+4>>2]|0)>=0?r0&2048?(q=1,Q=56723):(Q=r0&1,q=Q,Q=Q|0?56726:56721):(m=-m,q=1,Q=56720),t0[v0>>3]=m,U=e[v0+4>>2]&2146435072;do if(U>>>0<2146435072|(U|0)==2146435072&0<0){if(y=+c_(m,t2)*2,a=y!=0,a&&(e[t2>>2]=(e[t2>>2]|0)+-1),x=d|32,(x|0)==97){E=d&32,I=E|0?Q+9|0:Q,P=q|2,l=12-h|0;do if(h>>>0>11|(l|0)==0)m=y;else{m=8;do l=l+-1|0,m=m*16;while(l|0);if((p[I>>0]|0)==45){m=-(m+(-y-m));break}else{m=y+m-m;break}}while(0);for(a=e[t2>>2]|0,l=(a|0)<0?0-a|0:a,l=Ri(l,((l|0)<0)<<31>>31,i2)|0,(l|0)==(i2|0)&&(p[S0>>0]=48,l=S0),p[l+-1>>0]=(a>>31&2)+43,v=l+-2|0,p[v>>0]=d+15,g=(h|0)<1,c=(r0&8|0)==0,a=m2;;){Q=~~m,l=a+1|0,p[a>>0]=z[56687+Q>>0]|E,m=(m-+(Q|0))*16;do if((l-N0|0)==1){if(c&(g&m==0))break;p[l>>0]=46,l=a+2|0}while(0);if(m==0)break;a=l}h=(h|0)!=0&(Re+l|0)<(h|0)?De+h-v|0:je-v+l|0,c=h+P|0,M2(r,32,J,c,r0),e[r>>2]&32||P2(I,P,r)|0,M2(r,48,J,c,r0^65536),l=l-N0|0,e[r>>2]&32||P2(m2,l,r)|0,a=ce-v|0,M2(r,48,h-(l+a)|0,0,0),e[r>>2]&32||P2(v,a,r)|0,M2(r,32,J,c,r0^8192),l=(c|0)<(J|0)?J:c;break}l=(h|0)<0?6:h,a?(a=(e[t2>>2]|0)+-28|0,e[t2>>2]=a,m=y*268435456):(m=y,a=e[t2>>2]|0),U=(a|0)<0?Ze:oe,M=U,a=U;do w=~~m>>>0,e[a>>2]=w,a=a+4|0,m=(m-+(w>>>0))*1e9;while(m!=0);if(c=a,a=e[t2>>2]|0,(a|0)>0)for(g=U;;){v=(a|0)>29?29:a,h=c+-4|0;do if(h>>>0>>0)h=g;else{a=0;do w=f2(e[h>>2]|0,0,v|0)|0,w=E2(w|0,f0|0,a|0,0)|0,a=f0,_=jn(w|0,a|0,1e9,0)|0,e[h>>2]=_,a=Vr(w|0,a|0,1e9,0)|0,h=h+-4|0;while(h>>>0>=g>>>0);if(!a){h=g;break}h=g+-4|0,e[h>>2]=a}while(0);for(;!(c>>>0<=h>>>0);)if(a=c+-4|0,!(e[a>>2]|0))c=a;else break;if(a=(e[t2>>2]|0)-v|0,e[t2>>2]=a,(a|0)>0)g=h;else break}else h=U;if((a|0)<0)for(I=((l+25|0)/9|0)+1|0,A=(x|0)==102,E=h;;){P=0-a|0,P=(P|0)>9?9:P;do if(E>>>0>>0){a=(1<>>P,h=0,v=E;do w=e[v>>2]|0,e[v>>2]=(w>>>P)+h,h=K(w&a,g)|0,v=v+4|0;while(v>>>0>>0);if(a=e[E>>2]|0?E:E+4|0,!h){h=a;break}e[c>>2]=h,h=a,c=c+4|0}else h=e[E>>2]|0?E:E+4|0;while(0);if(a=A?U:h,c=(c-a>>2|0)>(I|0)?a+(I<<2)|0:c,a=(e[t2>>2]|0)+P|0,e[t2>>2]=a,(a|0)>=0){E=h;break}else E=h}else E=h;do if(E>>>0>>0){if(a=(M-E>>2)*9|0,g=e[E>>2]|0,g>>>0<10)break;h=10;do h=h*10|0,a=a+1|0;while(g>>>0>=h>>>0)}else a=0;while(0);if(_=(x|0)==103,w=(l|0)!=0,h=l-((x|0)!=102?a:0)+((w&_)<<31>>31)|0,(h|0)<(((c-M>>2)*9|0)+-9|0)){if(v=h+9216|0,A=(v|0)/9|0,h=U+(A+-1023<<2)|0,v=((v|0)%9|0)+1|0,(v|0)<9){g=10;do g=g*10|0,v=v+1|0;while((v|0)!=9)}else g=10;P=e[h>>2]|0,I=(P>>>0)%(g>>>0)|0,!(I|0)&&(U+(A+-1022<<2)|0)==(c|0)?g=E:w0=163;do if((w0|0)==163){w0=0,y=((P>>>0)/(g>>>0)|0)&1|0?9007199254740994:9007199254740992,v=(g|0)/2|0;do if(I>>>0>>0)m=.5;else{if((I|0)==(v|0)&&(U+(A+-1022<<2)|0)==(c|0)){m=1;break}m=1.5}while(0);do if(q){if((p[Q>>0]|0)!=45)break;y=-y,m=-m}while(0);if(v=P-I|0,e[h>>2]=v,y+m==y){g=E;break}if(x=v+g|0,e[h>>2]=x,x>>>0>999999999)for(a=E;;)if(g=h+-4|0,e[h>>2]=0,g>>>0>>0&&(a=a+-4|0,e[a>>2]=0),x=(e[g>>2]|0)+1|0,e[g>>2]=x,x>>>0>999999999)h=g;else{E=a,h=g;break}if(a=(M-E>>2)*9|0,v=e[E>>2]|0,v>>>0<10){g=E;break}else g=10;do g=g*10|0,a=a+1|0;while(v>>>0>=g>>>0);g=E}while(0);x=h+4|0,E=g,c=c>>>0>x>>>0?x:c}for(I=0-a|0;;){if(c>>>0<=E>>>0){A=0,x=c;break}if(h=c+-4|0,!(e[h>>2]|0))c=h;else{A=1,x=c;break}}do if(_){if(l=(w&1^1)+l|0,(l|0)>(a|0)&(a|0)>-5?(d=d+-1|0,l=l+-1-a|0):(d=d+-2|0,l=l+-1|0),c=r0&8,c)break;do if(A){if(c=e[x+-4>>2]|0,!c){h=9;break}if(!((c>>>0)%10|0))g=10,h=0;else{h=0;break}do g=g*10|0,h=h+1|0;while(!((c>>>0)%(g>>>0)|0|0))}else h=9;while(0);if(c=((x-M>>2)*9|0)+-9|0,(d|32|0)==102){c=c-h|0,c=(c|0)<0?0:c,l=(l|0)<(c|0)?l:c,c=0;break}else{c=c+a-h|0,c=(c|0)<0?0:c,l=(l|0)<(c|0)?l:c,c=0;break}}else c=r0&8;while(0);if(P=l|c,g=(P|0)!=0&1,v=(d|32|0)==102,v)a=(a|0)>0?a:0,d=0;else{if(h=(a|0)<0?I:a,h=Ri(h,((h|0)<0)<<31>>31,i2)|0,(ce-h|0)<2)do h=h+-1|0,p[h>>0]=48;while((ce-h|0)<2);p[h+-1>>0]=(a>>31&2)+43,M=h+-2|0,p[M>>0]=d,a=ce-M|0,d=M}I=q+1+l+g+a|0,M2(r,32,J,I,r0),e[r>>2]&32||P2(Q,q,r)|0,M2(r,48,J,I,r0^65536);do if(v){h=E>>>0>U>>>0?U:E,a=h;do{c=Ri(e[a>>2]|0,0,L0)|0;do if((a|0)==(h|0)){if((c|0)!=(L0|0))break;p[P0>>0]=48,c=P0}else{if(c>>>0<=m2>>>0)break;do c=c+-1|0,p[c>>0]=48;while(c>>>0>m2>>>0)}while(0);e[r>>2]&32||P2(c,me-c|0,r)|0,a=a+4|0}while(a>>>0<=U>>>0);do if(P){if(e[r>>2]&32)break;P2(56755,1,r)|0}while(0);if((l|0)>0&a>>>0>>0)for(c=a;;){if(a=Ri(e[c>>2]|0,0,L0)|0,a>>>0>m2>>>0)do a=a+-1|0,p[a>>0]=48;while(a>>>0>m2>>>0);if(e[r>>2]&32||P2(a,(l|0)>9?9:l,r)|0,c=c+4|0,a=l+-9|0,(l|0)>9&c>>>0>>0)l=a;else{l=a;break}}M2(r,48,l+9|0,9,0)}else{if(v=A?x:E+4|0,(l|0)>-1){g=(c|0)==0,h=E;do{a=Ri(e[h>>2]|0,0,L0)|0,(a|0)==(L0|0)&&(p[P0>>0]=48,a=P0);do if((h|0)==(E|0)){if(c=a+1|0,e[r>>2]&32||P2(a,1,r)|0,g&(l|0)<1){a=c;break}if(e[r>>2]&32){a=c;break}P2(56755,1,r)|0,a=c}else{if(a>>>0<=m2>>>0)break;do a=a+-1|0,p[a>>0]=48;while(a>>>0>m2>>>0)}while(0);c=me-a|0,e[r>>2]&32||P2(a,(l|0)>(c|0)?c:l,r)|0,l=l-c|0,h=h+4|0}while(h>>>0>>0&(l|0)>-1)}if(M2(r,48,l+18|0,18,0),e[r>>2]&32)break;P2(d,ce-d|0,r)|0}while(0);M2(r,32,J,I,r0^8192),l=(I|0)<(J|0)?J:I}else v=(d&32|0)!=0,g=m!=m|!1,a=g?0:q,h=a+3|0,M2(r,32,J,h,c),l=e[r>>2]|0,l&32||(P2(Q,a,r)|0,l=e[r>>2]|0),l&32||P2(g?v?56747:56751:v?56739:56743,3,r)|0,M2(r,32,J,h,r0^8192),l=(h|0)<(J|0)?J:h;while(0);E=i0;continue e}default:c=r0,a=h,v=0,d=56703,l=le}while(0);i:do if((w0|0)==64)if(c=Be,a=e[c>>2]|0,c=e[c+4>>2]|0,g=d&32,(a|0)==0&(c|0)==0)l=le,a=v,v=0,g=56703,w0=77;else{l=le;do l=l+-1|0,p[l>>0]=z[56687+(a&15)>>0]|g,a=K1(a|0,c|0,4)|0,c=f0;while(!((a|0)==0&(c|0)==0));w0=Be,(v&8|0)==0|(e[w0>>2]|0)==0&(e[w0+4>>2]|0)==0?(a=v,v=0,g=56703,w0=77):(a=v,v=2,g=56703+(d>>4)|0,w0=77)}else if((w0|0)==76)l=Ri(l,a,le)|0,a=r0,v=c,w0=77;else if((w0|0)==82)w0=0,r0=dl(l,0,h)|0,Q=(r0|0)==0,E=l,a=Q?h:r0-l|0,v=0,d=56703,l=Q?l+h|0:r0;else if((w0|0)==86){for(w0=0,a=0,l=0,g=e[Be>>2]|0;c=e[g>>2]|0,!(!c||(l=ul(V1,c)|0,(l|0)<0|l>>>0>(h-a|0)>>>0));)if(a=l+a|0,h>>>0>a>>>0)g=g+4|0;else break;if((l|0)<0){o=-1;break e}if(M2(r,32,J,a,r0),!a)l=0,w0=98;else for(c=0,h=e[Be>>2]|0;;){if(l=e[h>>2]|0,!l){l=a,w0=98;break i}if(l=ul(V1,l)|0,c=l+c|0,(c|0)>(a|0)){l=a,w0=98;break i}if(e[r>>2]&32||P2(V1,l,r)|0,c>>>0>=a>>>0){l=a,w0=98;break}else h=h+4|0}}while(0);if((w0|0)==98){w0=0,M2(r,32,J,l,r0^8192),E=i0,l=(J|0)>(l|0)?J:l;continue}(w0|0)==77&&(w0=0,c=(h|0)>-1?a&-65537:a,a=Be,a=(e[a>>2]|0)!=0|(e[a+4>>2]|0)!=0,(h|0)!=0|a?(a=(a&1^1)+(F0-l)|0,E=l,a=(h|0)>(a|0)?h:a,d=g,l=le):(E=le,a=0,d=g,l=le)),g=l-E|0,a=(a|0)<(g|0)?g:a,h=v+a|0,l=(J|0)<(h|0)?h:J,M2(r,32,l,h,c),e[r>>2]&32||P2(d,v,r)|0,M2(r,48,l,h,c^65536),M2(r,48,a,g,0),e[r>>2]&32||P2(E,g,r)|0,M2(r,32,l,h,c^8192),E=i0}e:do if((w0|0)==245&&!r)if(t){for(o=1;t=e[s+(o<<2)>>2]|0,!!t;)if(go(f+(o<<3)|0,t,n),o=o+1|0,(o|0)>=10){o=1;break e}if((o|0)<10)for(;;){if(e[s+(o<<2)>>2]|0){o=-1;break e}if(o=o+1|0,(o|0)>=10){o=1;break}}else o=1}else o=0;while(0);return C=R1,o|0}function _9(r,t,n){return r=r|0,t=t|0,n=n|0,w_(r,t,n)|0}function T9(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0;a=C,C=C+112|0,l=a,s=l,o=s+112|0;do e[s>>2]=0,s=s+4|0;while((s|0)<(o|0));return s=l+4|0,e[s>>2]=r,o=l+8|0,e[o>>2]=-1,e[l+44>>2]=r,e[l+76>>2]=-1,n1(l,0),f=+il(l,n,1),n=(e[s>>2]|0)-(e[o>>2]|0)+(e[l+108>>2]|0)|0,t&&(e[t>>2]=n|0?r+n|0:r),C=a,+f}function po(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0;return c=C,C=C+112|0,a=c,e[a>>2]=0,o=a+4|0,e[o>>2]=r,e[a+44>>2]=r,l=a+8|0,e[l>>2]=(r|0)<0?-1:r+2147483647|0,e[a+76>>2]=-1,n1(a,0),f=rl(a,n,1,f,s)|0,t&&(e[t>>2]=r+((e[o>>2]|0)+(e[a+108>>2]|0)-(e[l>>2]|0))),C=c,f|0}function w9(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;return f=r+20|0,s=e[f>>2]|0,r=(e[r+16>>2]|0)-s|0,r=r>>>0>n>>>0?n:r,qe(s|0,t|0,r|0)|0,e[f>>2]=(e[f>>2]|0)+r,n|0}function go(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;e:do if(t>>>0<=20)do switch(t|0){case 9:{f=(e[n>>2]|0)+(4-1)&~(4-1),t=e[f>>2]|0,e[n>>2]=f+4,e[r>>2]=t;break e}case 10:{f=(e[n>>2]|0)+(4-1)&~(4-1),t=e[f>>2]|0,e[n>>2]=f+4,f=r,e[f>>2]=t,e[f+4>>2]=((t|0)<0)<<31>>31;break e}case 11:{f=(e[n>>2]|0)+(4-1)&~(4-1),t=e[f>>2]|0,e[n>>2]=f+4,f=r,e[f>>2]=t,e[f+4>>2]=0;break e}case 12:{f=(e[n>>2]|0)+(8-1)&~(8-1),t=f,s=e[t>>2]|0,t=e[t+4>>2]|0,e[n>>2]=f+8,f=r,e[f>>2]=s,e[f+4>>2]=t;break e}case 13:{s=(e[n>>2]|0)+(4-1)&~(4-1),f=e[s>>2]|0,e[n>>2]=s+4,f=(f&65535)<<16>>16,s=r,e[s>>2]=f,e[s+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{s=(e[n>>2]|0)+(4-1)&~(4-1),f=e[s>>2]|0,e[n>>2]=s+4,s=r,e[s>>2]=f&65535,e[s+4>>2]=0;break e}case 15:{s=(e[n>>2]|0)+(4-1)&~(4-1),f=e[s>>2]|0,e[n>>2]=s+4,f=(f&255)<<24>>24,s=r,e[s>>2]=f,e[s+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{s=(e[n>>2]|0)+(4-1)&~(4-1),f=e[s>>2]|0,e[n>>2]=s+4,s=r,e[s>>2]=f&255,e[s+4>>2]=0;break e}case 17:{s=(e[n>>2]|0)+(8-1)&~(8-1),o=+t0[s>>3],e[n>>2]=s+8,t0[r>>3]=o;break e}case 18:{s=(e[n>>2]|0)+(8-1)&~(8-1),o=+t0[s>>3],e[n>>2]=s+8,t0[r>>3]=o;break e}default:break e}while(0);while(0)}function Ri(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;if(t>>>0>0|(t|0)==0&r>>>0>4294967295)for(;;)if(f=jn(r|0,t|0,10,0)|0,n=n+-1|0,p[n>>0]=f|48,f=Vr(r|0,t|0,10,0)|0,t>>>0>9|(t|0)==9&r>>>0>4294967295)r=f,t=f0;else{r=f;break}if(r)for(;n=n+-1|0,p[n>>0]=(r>>>0)%10|0|48,!(r>>>0<10);)r=(r>>>0)/10|0;return n|0}function M2(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0;a=C,C=C+256|0,l=a;do if((n|0)>(f|0)&(s&73728|0)==0){if(s=n-f|0,we(l|0,t|0,(s>>>0>256?256:s)|0)|0,t=e[r>>2]|0,o=(t&32|0)==0,s>>>0>255){f=n-f|0;do o&&(P2(l,256,r)|0,t=e[r>>2]|0),s=s+-256|0,o=(t&32|0)==0;while(s>>>0>255);if(o)s=f&255;else break}else if(!o)break;P2(l,s,r)|0}while(0);C=a}function S2(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0,Re=0,De=0,oe=0,L0=0,me=0,P0=0;do if(r>>>0<245){if(d=r>>>0<11?16:r+11&-8,r=d>>>3,a=e[10218]|0,n=a>>>r,n&3){r=(n&1^1)+r|0,f=r<<1,n=40912+(f<<2)|0,f=40912+(f+2<<2)|0,s=e[f>>2]|0,o=s+8|0,l=e[o>>2]|0;do if((n|0)!=(l|0))if(l>>>0<(e[10222]|0)>>>0&&G0(),t=l+12|0,(e[t>>2]|0)==(s|0)){e[t>>2]=n,e[f>>2]=l;break}else G0();else e[10218]=a&~(1<>2]=P0|3,P0=s+(P0|4)|0,e[P0>>2]=e[P0>>2]|1,P0=o,P0|0}if(l=e[10220]|0,d>>>0>l>>>0){if(n){f=2<>>12&16,f=f>>>c,s=f>>>5&8,f=f>>>s,o=f>>>2&4,f=f>>>o,n=f>>>1&2,f=f>>>n,r=f>>>1&1,r=(s|c|o|n|r)+(f>>>r)|0,f=r<<1,n=40912+(f<<2)|0,f=40912+(f+2<<2)|0,o=e[f>>2]|0,c=o+8|0,s=e[c>>2]|0;do if((n|0)!=(s|0))if(s>>>0<(e[10222]|0)>>>0&&G0(),t=s+12|0,(e[t>>2]|0)==(o|0)){e[t>>2]=n,e[f>>2]=s,m=e[10220]|0;break}else G0();else e[10218]=a&~(1<>2]=d|3,a=o+d|0,e[o+(d|4)>>2]=l|1,e[o+P0>>2]=l,m&&(s=e[10223]|0,n=m>>>3,t=n<<1,f=40912+(t<<2)|0,r=e[10218]|0,n=1<>2]|0,t>>>0<(e[10222]|0)>>>0?G0():(h=r,g=t)):(e[10218]=r|n,h=40912+(t+2<<2)|0,g=f),e[h>>2]=s,e[g+12>>2]=s,e[s+8>>2]=g,e[s+12>>2]=f),e[10220]=l,e[10223]=a,P0=c,P0|0}if(r=e[10219]|0,r){for(n=(r&0-r)+-1|0,me=n>>>12&16,n=n>>>me,L0=n>>>5&8,n=n>>>L0,P0=n>>>2&4,n=n>>>P0,r=n>>>1&2,n=n>>>r,f=n>>>1&1,f=e[41176+((L0|me|P0|r|f)+(n>>>f)<<2)>>2]|0,n=(e[f+4>>2]&-8)-d|0,r=f;;){if(t=e[r+16>>2]|0,!t&&(t=e[r+20>>2]|0,!t)){c=n;break}r=(e[t+4>>2]&-8)-d|0,P0=r>>>0>>0,n=P0?r:n,r=t,f=P0?t:f}o=e[10222]|0,f>>>0>>0&&G0(),a=f+d|0,f>>>0>=a>>>0&&G0(),l=e[f+24>>2]|0,n=e[f+12>>2]|0;do if((n|0)==(f|0)){if(r=f+20|0,t=e[r>>2]|0,!t&&(r=f+16|0,t=e[r>>2]|0,!t)){v=0;break}for(;;){if(n=t+20|0,s=e[n>>2]|0,s){t=s,r=n;continue}if(n=t+16|0,s=e[n>>2]|0,s)t=s,r=n;else break}if(r>>>0>>0)G0();else{e[r>>2]=0,v=t;break}}else if(s=e[f+8>>2]|0,s>>>0>>0&&G0(),t=s+12|0,(e[t>>2]|0)!=(f|0)&&G0(),r=n+8|0,(e[r>>2]|0)==(f|0)){e[t>>2]=n,e[r>>2]=s,v=n;break}else G0();while(0);do if(l){if(t=e[f+28>>2]|0,r=41176+(t<<2)|0,(f|0)==(e[r>>2]|0)){if(e[r>>2]=v,!v){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&G0(),t=l+16|0,(e[t>>2]|0)==(f|0)?e[t>>2]=v:e[l+20>>2]=v,!v)break;r=e[10222]|0,v>>>0>>0&&G0(),e[v+24>>2]=l,t=e[f+16>>2]|0;do if(t)if(t>>>0>>0)G0();else{e[v+16>>2]=t,e[t+24>>2]=v;break}while(0);if(t=e[f+20>>2]|0,t)if(t>>>0<(e[10222]|0)>>>0)G0();else{e[v+20>>2]=t,e[t+24>>2]=v;break}}while(0);return c>>>0<16?(P0=c+d|0,e[f+4>>2]=P0|3,P0=f+(P0+4)|0,e[P0>>2]=e[P0>>2]|1):(e[f+4>>2]=d|3,e[f+(d|4)>>2]=c|1,e[f+(c+d)>>2]=c,t=e[10220]|0,t&&(o=e[10223]|0,n=t>>>3,t=n<<1,s=40912+(t<<2)|0,r=e[10218]|0,n=1<>2]|0,r>>>0<(e[10222]|0)>>>0?G0():(y=t,E=r)):(e[10218]=r|n,y=40912+(t+2<<2)|0,E=s),e[y>>2]=o,e[E+12>>2]=o,e[o+8>>2]=E,e[o+12>>2]=s),e[10220]=c,e[10223]=a),P0=f+8|0,P0|0}else E=d}else E=d}else if(r>>>0<=4294967231)if(r=r+11|0,g=r&-8,h=e[10219]|0,h){n=0-g|0,r=r>>>8,r?g>>>0>16777215?m=31:(E=(r+1048320|0)>>>16&8,w=r<>>16&4,w=w<>>16&2,m=14-(y|E|m)+(w<>>15)|0,m=g>>>(m+7|0)&1|m<<1):m=0,r=e[41176+(m<<2)>>2]|0;e:do if(!r)s=0,r=0,w=86;else for(l=n,s=0,a=g<<((m|0)==31?0:25-(m>>>1)|0),c=r,r=0;;){if(o=e[c+4>>2]&-8,n=o-g|0,n>>>0>>0)if((o|0)==(g|0)){o=c,r=c,w=90;break e}else r=c;else n=l;if(w=e[c+20>>2]|0,c=e[c+16+(a>>>31<<2)>>2]|0,s=(w|0)==0|(w|0)==(c|0)?s:w,c)l=n,a=a<<1;else{w=86;break}}while(0);if((w|0)==86){if((s|0)==0&(r|0)==0){if(r=2<>>12&16,r=r>>>v,h=r>>>5&8,r=r>>>h,y=r>>>2&4,r=r>>>y,E=r>>>1&2,r=r>>>E,s=r>>>1&1,s=e[41176+((h|v|y|E|s)+(r>>>s)<<2)>>2]|0,r=0}s?(o=s,w=90):(a=n,c=r)}if((w|0)==90)for(;;){if(w=0,E=(e[o+4>>2]&-8)-g|0,s=E>>>0>>0,n=s?E:n,r=s?o:r,s=e[o+16>>2]|0,s){o=s,w=90;continue}if(o=e[o+20>>2]|0,o)w=90;else{a=n,c=r;break}}if(c|0&&a>>>0<((e[10220]|0)-g|0)>>>0){s=e[10222]|0,c>>>0>>0&&G0(),l=c+g|0,c>>>0>=l>>>0&&G0(),o=e[c+24>>2]|0,n=e[c+12>>2]|0;do if((n|0)==(c|0)){if(r=c+20|0,t=e[r>>2]|0,!t&&(r=c+16|0,t=e[r>>2]|0,!t)){d=0;break}for(;;){if(n=t+20|0,f=e[n>>2]|0,f){t=f,r=n;continue}if(n=t+16|0,f=e[n>>2]|0,f)t=f,r=n;else break}if(r>>>0>>0)G0();else{e[r>>2]=0,d=t;break}}else if(f=e[c+8>>2]|0,f>>>0>>0&&G0(),t=f+12|0,(e[t>>2]|0)!=(c|0)&&G0(),r=n+8|0,(e[r>>2]|0)==(c|0)){e[t>>2]=n,e[r>>2]=f,d=n;break}else G0();while(0);do if(o){if(t=e[c+28>>2]|0,r=41176+(t<<2)|0,(c|0)==(e[r>>2]|0)){if(e[r>>2]=d,!d){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&G0(),t=o+16|0,(e[t>>2]|0)==(c|0)?e[t>>2]=d:e[o+20>>2]=d,!d)break;r=e[10222]|0,d>>>0>>0&&G0(),e[d+24>>2]=o,t=e[c+16>>2]|0;do if(t)if(t>>>0>>0)G0();else{e[d+16>>2]=t,e[t+24>>2]=d;break}while(0);if(t=e[c+20>>2]|0,t)if(t>>>0<(e[10222]|0)>>>0)G0();else{e[d+20>>2]=t,e[t+24>>2]=d;break}}while(0);e:do if(a>>>0>=16){if(e[c+4>>2]=g|3,e[c+(g|4)>>2]=a|1,e[c+(a+g)>>2]=a,t=a>>>3,a>>>0<256){r=t<<1,f=40912+(r<<2)|0,n=e[10218]|0,t=1<>2]|0,r>>>0<(e[10222]|0)>>>0?G0():(I=t,A=r)):(e[10218]=n|t,I=40912+(r+2<<2)|0,A=f),e[I>>2]=l,e[A+12>>2]=l,e[c+(g+8)>>2]=A,e[c+(g+12)>>2]=f;break}if(t=a>>>8,t?a>>>0>16777215?f=31:(me=(t+1048320|0)>>>16&8,P0=t<>>16&4,P0=P0<>>16&2,f=14-(L0|me|f)+(P0<>>15)|0,f=a>>>(f+7|0)&1|f<<1):f=0,t=41176+(f<<2)|0,e[c+(g+28)>>2]=f,e[c+(g+20)>>2]=0,e[c+(g+16)>>2]=0,r=e[10219]|0,n=1<>2]=l,e[c+(g+24)>>2]=t,e[c+(g+12)>>2]=l,e[c+(g+8)>>2]=l;break}t=e[t>>2]|0;i:do if((e[t+4>>2]&-8|0)!=(a|0)){for(f=a<<((f|0)==31?0:25-(f>>>1)|0);r=t+16+(f>>>31<<2)|0,n=e[r>>2]|0,!!n;)if((e[n+4>>2]&-8|0)==(a|0)){U=n;break i}else f=f<<1,t=n;if(r>>>0<(e[10222]|0)>>>0)G0();else{e[r>>2]=l,e[c+(g+24)>>2]=t,e[c+(g+12)>>2]=l,e[c+(g+8)>>2]=l;break e}}else U=t;while(0);if(t=U+8|0,r=e[t>>2]|0,P0=e[10222]|0,r>>>0>=P0>>>0&U>>>0>=P0>>>0){e[r+12>>2]=l,e[t>>2]=l,e[c+(g+8)>>2]=r,e[c+(g+12)>>2]=U,e[c+(g+24)>>2]=0;break}else G0()}else P0=a+g|0,e[c+4>>2]=P0|3,P0=c+(P0+4)|0,e[P0>>2]=e[P0>>2]|1;while(0);return P0=c+8|0,P0|0}else E=g}else E=g;else E=-1;while(0);if(n=e[10220]|0,n>>>0>=E>>>0)return t=n-E|0,r=e[10223]|0,t>>>0>15?(e[10223]=r+E,e[10220]=t,e[r+(E+4)>>2]=t|1,e[r+n>>2]=t,e[r+4>>2]=E|3):(e[10220]=0,e[10223]=0,e[r+4>>2]=n|3,P0=r+(n+4)|0,e[P0>>2]=e[P0>>2]|1),P0=r+8|0,P0|0;if(r=e[10221]|0,r>>>0>E>>>0)return me=r-E|0,e[10221]=me,P0=e[10224]|0,e[10224]=P0+E,e[P0+(E+4)>>2]=me|1,e[P0+4>>2]=E|3,P0=P0+8|0,P0|0;do if(!(e[10336]|0))if(r=bu(30)|0,r+-1&r)G0();else{e[10338]=r,e[10337]=r,e[10339]=-1,e[10340]=-1,e[10341]=0,e[10329]=0,U=(l6(0)|0)&-16^1431655768,e[10336]=U;break}while(0);if(c=E+48|0,a=e[10338]|0,m=E+47|0,l=a+m|0,a=0-a|0,h=l&a,h>>>0<=E>>>0||(r=e[10328]|0,r|0&&(A=e[10326]|0,U=A+h|0,U>>>0<=A>>>0|U>>>0>r>>>0)))return P0=0,P0|0;e:do if(e[10329]&4)r=0,w=191;else{r=e[10224]|0;i:do if(r){for(s=41320;;){if(n=e[s>>2]|0,n>>>0<=r>>>0&&(P=s+4|0,(n+(e[P>>2]|0)|0)>>>0>r>>>0)){o=s,r=P;break}if(s=e[s+8>>2]|0,!s){w=174;break i}}if(n=l-(e[10221]|0)&a,n>>>0<2147483647)if(s=ci(n|0)|0,U=(s|0)==((e[o>>2]|0)+(e[r>>2]|0)|0),r=U?n:0,U){if((s|0)!=-1){x=s,y=r,w=194;break e}}else w=184;else r=0}else w=174;while(0);do if((w|0)==174)if(o=ci(0)|0,(o|0)!=-1)if(r=o,n=e[10337]|0,s=n+-1|0,s&r?n=h-r+(s+r&0-n)|0:n=h,r=e[10326]|0,s=r+n|0,n>>>0>E>>>0&n>>>0<2147483647){if(U=e[10328]|0,U|0&&s>>>0<=r>>>0|s>>>0>U>>>0){r=0;break}if(s=ci(n|0)|0,U=(s|0)==(o|0),r=U?n:0,U){x=o,y=r,w=194;break e}else w=184}else r=0;else r=0;while(0);i:do if((w|0)==184){o=0-n|0;do if(c>>>0>n>>>0&(n>>>0<2147483647&(s|0)!=-1)&&(_=e[10338]|0,_=m-n+_&0-_,_>>>0<2147483647))if((ci(_|0)|0)==-1){ci(o|0)|0;break i}else{n=_+n|0;break}while(0);if((s|0)!=-1){x=s,y=n,w=194;break e}}while(0);e[10329]=e[10329]|4,w=191}while(0);if((w|0)==191&&h>>>0<2147483647&&(x=ci(h|0)|0,M=ci(0)|0,x>>>0>>0&((x|0)!=-1&(M|0)!=-1))&&(q=M-x|0,Q=q>>>0>(E+40|0)>>>0,Q)&&(y=Q?q:r,w=194),(w|0)==194){r=(e[10326]|0)+y|0,e[10326]=r,r>>>0>(e[10327]|0)>>>0&&(e[10327]=r),l=e[10224]|0;e:do if(l){o=41320;do{if(r=e[o>>2]|0,n=o+4|0,s=e[n>>2]|0,(x|0)==(r+s|0)){r0=r,i0=n,J=s,w0=o,w=204;break}o=e[o+8>>2]|0}while(o|0);if((w|0)==204&&!(e[w0+12>>2]&8|0)&&l>>>0>>0&l>>>0>=r0>>>0){e[i0>>2]=J+y,P0=(e[10221]|0)+y|0,me=l+8|0,me=me&7|0?0-me&7:0,L0=P0-me|0,e[10224]=l+me,e[10221]=L0,e[l+(me+4)>>2]=L0|1,e[l+(P0+4)>>2]=40,e[10225]=e[10340];break}for(r=e[10222]|0,x>>>0>>0&&(e[10222]=x,r=x),n=x+y|0,o=41320;;){if((e[o>>2]|0)==(n|0)){s=o,n=o,w=212;break}if(o=e[o+8>>2]|0,!o){n=41320;break}}if((w|0)==212)if(e[n+12>>2]&8)n=41320;else{e[s>>2]=x,v=n+4|0,e[v>>2]=(e[v>>2]|0)+y,v=x+8|0,v=v&7|0?0-v&7:0,m=x+(y+8)|0,m=m&7|0?0-m&7:0,t=x+(m+y)|0,g=v+E|0,d=x+g|0,h=t-(x+v)-E|0,e[x+(v+4)>>2]=E|3;i:do if((t|0)!=(l|0)){if((t|0)==(e[10223]|0)){P0=(e[10220]|0)+h|0,e[10220]=P0,e[10223]=d,e[x+(g+4)>>2]=P0|1,e[x+(P0+g)>>2]=P0;break}if(a=y+4|0,n=e[x+(a+m)>>2]|0,(n&3|0)==1){c=n&-8,o=n>>>3;r:do if(n>>>0>=256){l=e[x+((m|24)+y)>>2]|0,f=e[x+(y+12+m)>>2]|0;do if((f|0)==(t|0)){if(s=m|16,f=x+(a+s)|0,n=e[f>>2]|0,!n&&(f=x+(s+y)|0,n=e[f>>2]|0,!n)){oe=0;break}for(;;){if(s=n+20|0,o=e[s>>2]|0,o){n=o,f=s;continue}if(s=n+16|0,o=e[s>>2]|0,o)n=o,f=s;else break}if(f>>>0>>0)G0();else{e[f>>2]=0,oe=n;break}}else if(s=e[x+((m|8)+y)>>2]|0,s>>>0>>0&&G0(),r=s+12|0,(e[r>>2]|0)!=(t|0)&&G0(),n=f+8|0,(e[n>>2]|0)==(t|0)){e[r>>2]=f,e[n>>2]=s,oe=f;break}else G0();while(0);if(!l)break;r=e[x+(y+28+m)>>2]|0,n=41176+(r<<2)|0;do if((t|0)!=(e[n>>2]|0)){if(l>>>0<(e[10222]|0)>>>0&&G0(),r=l+16|0,(e[r>>2]|0)==(t|0)?e[r>>2]=oe:e[l+20>>2]=oe,!oe)break r}else{if(e[n>>2]=oe,oe)break;e[10219]=e[10219]&~(1<>>0>>0&&G0(),e[oe+24>>2]=l,t=m|16,r=e[x+(t+y)>>2]|0;do if(r)if(r>>>0>>0)G0();else{e[oe+16>>2]=r,e[r+24>>2]=oe;break}while(0);if(t=e[x+(a+t)>>2]|0,!t)break;if(t>>>0<(e[10222]|0)>>>0)G0();else{e[oe+20>>2]=t,e[t+24>>2]=oe;break}}else{f=e[x+((m|8)+y)>>2]|0,s=e[x+(y+12+m)>>2]|0,n=40912+(o<<1<<2)|0;do if((f|0)!=(n|0)){if(f>>>0>>0&&G0(),(e[f+12>>2]|0)==(t|0))break;G0()}while(0);if((s|0)==(f|0)){e[10218]=e[10218]&~(1<>>0>>0&&G0(),r=s+8|0,(e[r>>2]|0)==(t|0)){ve=r;break}G0()}while(0);e[f+12>>2]=s,e[ve>>2]=f}while(0);t=x+((c|m)+y)|0,s=c+h|0}else s=h;if(t=t+4|0,e[t>>2]=e[t>>2]&-2,e[x+(g+4)>>2]=s|1,e[x+(s+g)>>2]=s,t=s>>>3,s>>>0<256){r=t<<1,f=40912+(r<<2)|0,n=e[10218]|0,t=1<>2]|0,r>>>0>=(e[10222]|0)>>>0){L0=t,me=r;break}G0()}while(0);e[L0>>2]=d,e[me+12>>2]=d,e[x+(g+8)>>2]=me,e[x+(g+12)>>2]=f;break}t=s>>>8;do if(!t)f=0;else{if(s>>>0>16777215){f=31;break}L0=(t+1048320|0)>>>16&8,me=t<>>16&4,me=me<>>16&2,f=14-(oe|L0|f)+(me<>>15)|0,f=s>>>(f+7|0)&1|f<<1}while(0);if(t=41176+(f<<2)|0,e[x+(g+28)>>2]=f,e[x+(g+20)>>2]=0,e[x+(g+16)>>2]=0,r=e[10219]|0,n=1<>2]=d,e[x+(g+24)>>2]=t,e[x+(g+12)>>2]=d,e[x+(g+8)>>2]=d;break}t=e[t>>2]|0;r:do if((e[t+4>>2]&-8|0)!=(s|0)){for(f=s<<((f|0)==31?0:25-(f>>>1)|0);r=t+16+(f>>>31<<2)|0,n=e[r>>2]|0,!!n;)if((e[n+4>>2]&-8|0)==(s|0)){P0=n;break r}else f=f<<1,t=n;if(r>>>0<(e[10222]|0)>>>0)G0();else{e[r>>2]=d,e[x+(g+24)>>2]=t,e[x+(g+12)>>2]=d,e[x+(g+8)>>2]=d;break i}}else P0=t;while(0);if(t=P0+8|0,r=e[t>>2]|0,me=e[10222]|0,r>>>0>=me>>>0&P0>>>0>=me>>>0){e[r+12>>2]=d,e[t>>2]=d,e[x+(g+8)>>2]=r,e[x+(g+12)>>2]=P0,e[x+(g+24)>>2]=0;break}else G0()}else P0=(e[10221]|0)+h|0,e[10221]=P0,e[10224]=d,e[x+(g+4)>>2]=P0|1;while(0);return P0=x+(v|8)|0,P0|0}for(;r=e[n>>2]|0,!(r>>>0<=l>>>0&&(t=e[n+4>>2]|0,f=r+t|0,f>>>0>l>>>0));)n=e[n+8>>2]|0;if(s=r+(t+-39)|0,r=r+(t+-47+(s&7|0?0-s&7:0))|0,s=l+16|0,r=r>>>0>>0?l:r,t=r+8|0,n=x+8|0,n=n&7|0?0-n&7:0,P0=y+-40-n|0,e[10224]=x+n,e[10221]=P0,e[x+(n+4)>>2]=P0|1,e[x+(y+-36)>>2]=40,e[10225]=e[10340],n=r+4|0,e[n>>2]=27,e[t>>2]=e[10330],e[t+4>>2]=e[10331],e[t+8>>2]=e[10332],e[t+12>>2]=e[10333],e[10330]=x,e[10331]=y,e[10333]=0,e[10332]=t,t=r+28|0,e[t>>2]=7,(r+32|0)>>>0>>0)do P0=t,t=t+4|0,e[t>>2]=7;while((P0+8|0)>>>0>>0);if((r|0)!=(l|0)){if(o=r-l|0,e[n>>2]=e[n>>2]&-2,e[l+4>>2]=o|1,e[r>>2]=o,t=o>>>3,o>>>0<256){r=t<<1,f=40912+(r<<2)|0,n=e[10218]|0,t=1<>2]|0,r>>>0<(e[10222]|0)>>>0?G0():(le=t,Re=r)):(e[10218]=n|t,le=40912+(r+2<<2)|0,Re=f),e[le>>2]=l,e[Re+12>>2]=l,e[l+8>>2]=Re,e[l+12>>2]=f;break}if(t=o>>>8,t?o>>>0>16777215?f=31:(me=(t+1048320|0)>>>16&8,P0=t<>>16&4,P0=P0<>>16&2,f=14-(L0|me|f)+(P0<>>15)|0,f=o>>>(f+7|0)&1|f<<1):f=0,n=41176+(f<<2)|0,e[l+28>>2]=f,e[l+20>>2]=0,e[s>>2]=0,t=e[10219]|0,r=1<>2]=l,e[l+24>>2]=n,e[l+12>>2]=l,e[l+8>>2]=l;break}t=e[n>>2]|0;i:do if((e[t+4>>2]&-8|0)!=(o|0)){for(f=o<<((f|0)==31?0:25-(f>>>1)|0);r=t+16+(f>>>31<<2)|0,n=e[r>>2]|0,!!n;)if((e[n+4>>2]&-8|0)==(o|0)){De=n;break i}else f=f<<1,t=n;if(r>>>0<(e[10222]|0)>>>0)G0();else{e[r>>2]=l,e[l+24>>2]=t,e[l+12>>2]=l,e[l+8>>2]=l;break e}}else De=t;while(0);if(t=De+8|0,r=e[t>>2]|0,P0=e[10222]|0,r>>>0>=P0>>>0&De>>>0>=P0>>>0){e[r+12>>2]=l,e[t>>2]=l,e[l+8>>2]=r,e[l+12>>2]=De,e[l+24>>2]=0;break}else G0()}}else{P0=e[10222]|0,(P0|0)==0|x>>>0>>0&&(e[10222]=x),e[10330]=x,e[10331]=y,e[10333]=0,e[10227]=e[10336],e[10226]=-1,t=0;do P0=t<<1,me=40912+(P0<<2)|0,e[40912+(P0+3<<2)>>2]=me,e[40912+(P0+2<<2)>>2]=me,t=t+1|0;while((t|0)!=32);P0=x+8|0,P0=P0&7|0?0-P0&7:0,me=y+-40-P0|0,e[10224]=x+P0,e[10221]=me,e[x+(P0+4)>>2]=me|1,e[x+(y+-36)>>2]=40,e[10225]=e[10340]}while(0);if(t=e[10221]|0,t>>>0>E>>>0)return me=t-E|0,e[10221]=me,P0=e[10224]|0,e[10224]=P0+E,e[P0+(E+4)>>2]=me|1,e[P0+4>>2]=E|3,P0=P0+8|0,P0|0}return P0=r2()|0,e[P0>>2]=12,P0=0,P0|0}function ye(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0;if(r){t=r+-8|0,a=e[10222]|0,t>>>0>>0&&G0(),n=e[r+-4>>2]|0,f=n&3,(f|0)==1&&G0(),d=n&-8,E=r+(d+-8)|0;do if(n&1)_=t,o=d;else{if(t=e[t>>2]|0,!f)return;if(c=-8-t|0,h=r+c|0,g=t+d|0,h>>>0>>0&&G0(),(h|0)==(e[10223]|0)){if(t=r+(d+-4)|0,n=e[t>>2]|0,(n&3|0)!=3){_=h,o=g;break}e[10220]=g,e[t>>2]=n&-2,e[r+(c+4)>>2]=g|1,e[E>>2]=g;return}if(s=t>>>3,t>>>0<256){if(f=e[r+(c+8)>>2]|0,n=e[r+(c+12)>>2]|0,t=40912+(s<<1<<2)|0,(f|0)!=(t|0)&&(f>>>0>>0&&G0(),(e[f+12>>2]|0)!=(h|0)&&G0()),(n|0)==(f|0)){e[10218]=e[10218]&~(1<>>0>>0&&G0(),t=n+8|0,(e[t>>2]|0)==(h|0)?l=t:G0()):l=n+8|0,e[f+12>>2]=n,e[l>>2]=f,_=h,o=g;break}l=e[r+(c+24)>>2]|0,f=e[r+(c+12)>>2]|0;do if((f|0)==(h|0)){if(n=r+(c+20)|0,t=e[n>>2]|0,!t&&(n=r+(c+16)|0,t=e[n>>2]|0,!t)){m=0;break}for(;;){if(f=t+20|0,s=e[f>>2]|0,s){t=s,n=f;continue}if(f=t+16|0,s=e[f>>2]|0,s)t=s,n=f;else break}if(n>>>0>>0)G0();else{e[n>>2]=0,m=t;break}}else if(s=e[r+(c+8)>>2]|0,s>>>0>>0&&G0(),t=s+12|0,(e[t>>2]|0)!=(h|0)&&G0(),n=f+8|0,(e[n>>2]|0)==(h|0)){e[t>>2]=f,e[n>>2]=s,m=f;break}else G0();while(0);if(l){if(t=e[r+(c+28)>>2]|0,n=41176+(t<<2)|0,(h|0)==(e[n>>2]|0)){if(e[n>>2]=m,!m){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&G0(),t=l+16|0,(e[t>>2]|0)==(h|0)?e[t>>2]=m:e[l+20>>2]=m,!m){_=h,o=g;break}n=e[10222]|0,m>>>0>>0&&G0(),e[m+24>>2]=l,t=e[r+(c+16)>>2]|0;do if(t)if(t>>>0>>0)G0();else{e[m+16>>2]=t,e[t+24>>2]=m;break}while(0);if(t=e[r+(c+20)>>2]|0,t)if(t>>>0<(e[10222]|0)>>>0)G0();else{e[m+20>>2]=t,e[t+24>>2]=m,_=h,o=g;break}else _=h,o=g}else _=h,o=g}while(0);if(_>>>0>=E>>>0&&G0(),t=r+(d+-4)|0,n=e[t>>2]|0,n&1||G0(),n&2)e[t>>2]=n&-2,e[_+4>>2]=o|1,e[_+o>>2]=o;else{if((E|0)==(e[10224]|0)){if(A=(e[10221]|0)+o|0,e[10221]=A,e[10224]=_,e[_+4>>2]=A|1,(_|0)!=(e[10223]|0))return;e[10223]=0,e[10220]=0;return}if((E|0)==(e[10223]|0)){A=(e[10220]|0)+o|0,e[10220]=A,e[10223]=_,e[_+4>>2]=A|1,e[_+A>>2]=A;return}o=(n&-8)+o|0,s=n>>>3;do if(n>>>0>=256){l=e[r+(d+16)>>2]|0,t=e[r+(d|4)>>2]|0;do if((t|0)==(E|0)){if(n=r+(d+12)|0,t=e[n>>2]|0,!t&&(n=r+(d+8)|0,t=e[n>>2]|0,!t)){y=0;break}for(;;){if(f=t+20|0,s=e[f>>2]|0,s){t=s,n=f;continue}if(f=t+16|0,s=e[f>>2]|0,s)t=s,n=f;else break}if(n>>>0<(e[10222]|0)>>>0)G0();else{e[n>>2]=0,y=t;break}}else if(n=e[r+d>>2]|0,n>>>0<(e[10222]|0)>>>0&&G0(),f=n+12|0,(e[f>>2]|0)!=(E|0)&&G0(),s=t+8|0,(e[s>>2]|0)==(E|0)){e[f>>2]=t,e[s>>2]=n,y=t;break}else G0();while(0);if(l){if(t=e[r+(d+20)>>2]|0,n=41176+(t<<2)|0,(E|0)==(e[n>>2]|0)){if(e[n>>2]=y,!y){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&G0(),t=l+16|0,(e[t>>2]|0)==(E|0)?e[t>>2]=y:e[l+20>>2]=y,!y)break;n=e[10222]|0,y>>>0>>0&&G0(),e[y+24>>2]=l,t=e[r+(d+8)>>2]|0;do if(t)if(t>>>0>>0)G0();else{e[y+16>>2]=t,e[t+24>>2]=y;break}while(0);if(t=e[r+(d+12)>>2]|0,t)if(t>>>0<(e[10222]|0)>>>0)G0();else{e[y+20>>2]=t,e[t+24>>2]=y;break}}}else{if(f=e[r+d>>2]|0,n=e[r+(d|4)>>2]|0,t=40912+(s<<1<<2)|0,(f|0)!=(t|0)&&(f>>>0<(e[10222]|0)>>>0&&G0(),(e[f+12>>2]|0)!=(E|0)&&G0()),(n|0)==(f|0)){e[10218]=e[10218]&~(1<>>0<(e[10222]|0)>>>0&&G0(),t=n+8|0,(e[t>>2]|0)==(E|0)?v=t:G0()):v=n+8|0,e[f+12>>2]=n,e[v>>2]=f}while(0);if(e[_+4>>2]=o|1,e[_+o>>2]=o,(_|0)==(e[10223]|0)){e[10220]=o;return}}if(t=o>>>3,o>>>0<256){n=t<<1,s=40912+(n<<2)|0,f=e[10218]|0,t=1<>2]|0,n>>>0<(e[10222]|0)>>>0?G0():(P=t,I=n)):(e[10218]=f|t,P=40912+(n+2<<2)|0,I=s),e[P>>2]=_,e[I+12>>2]=_,e[_+8>>2]=I,e[_+12>>2]=s;return}t=o>>>8,t?o>>>0>16777215?s=31:(P=(t+1048320|0)>>>16&8,I=t<>>16&4,I=I<>>16&2,s=14-(E|P|s)+(I<>>15)|0,s=o>>>(s+7|0)&1|s<<1):s=0,t=41176+(s<<2)|0,e[_+28>>2]=s,e[_+20>>2]=0,e[_+16>>2]=0,n=e[10219]|0,f=1<>2]|0;i:do if((e[t+4>>2]&-8|0)!=(o|0)){for(s=o<<((s|0)==31?0:25-(s>>>1)|0);n=t+16+(s>>>31<<2)|0,f=e[n>>2]|0,!!f;)if((e[f+4>>2]&-8|0)==(o|0)){A=f;break i}else s=s<<1,t=f;if(n>>>0<(e[10222]|0)>>>0)G0();else{e[n>>2]=_,e[_+24>>2]=t,e[_+12>>2]=_,e[_+8>>2]=_;break e}}else A=t;while(0);if(t=A+8|0,n=e[t>>2]|0,I=e[10222]|0,n>>>0>=I>>>0&A>>>0>=I>>>0){e[n+12>>2]=_,e[t>>2]=_,e[_+8>>2]=n,e[_+12>>2]=A,e[_+24>>2]=0;break}else G0()}else e[10219]=n|f,e[t>>2]=_,e[_+24>>2]=t,e[_+12>>2]=_,e[_+8>>2]=_;while(0);if(_=(e[10226]|0)+-1|0,e[10226]=_,!_)t=41328;else return;for(;t=e[t>>2]|0,t;)t=t+8|0;e[10226]=-1}}function C9(r,t){r=r|0,t=t|0;var n=0;return r?(n=K(t,r)|0,(t|r)>>>0>65535&&(n=((n>>>0)/(r>>>0)|0|0)==(t|0)?n:-1)):n=0,t=S2(n)|0,!t||!(e[t+-4>>2]&3)||we(t|0,0,n|0)|0,t|0}function Fi(r,t){r=r|0,t=t|0;var n=0,f=0;return r?t>>>0>4294967231?(r=r2()|0,e[r>>2]=12,r=0,r|0):(n=A9(r+-8|0,t>>>0<11?16:t+11&-8)|0,n?(r=n+8|0,r|0):(n=S2(t)|0,n?(f=e[r+-4>>2]|0,f=(f&-8)-(f&3|0?4:8)|0,qe(n|0,r|0,(f>>>0>>0?f:t)|0)|0,ye(r),r=n,r|0):(r=0,r|0))):(r=S2(t)|0,r|0)}function A9(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0;if(d=r+4|0,y=e[d>>2]|0,c=y&-8,h=r+c|0,a=e[10222]|0,n=y&3,(n|0)!=1&r>>>0>=a>>>0&r>>>0>>0||G0(),f=r+(c|4)|0,s=e[f>>2]|0,s&1||G0(),!n)return t>>>0<256?(r=0,r|0):(c>>>0>=(t+4|0)>>>0&&(c-t|0)>>>0<=e[10338]<<1>>>0||(r=0),r|0);if(c>>>0>=t>>>0)return n=c-t|0,n>>>0<=15||(e[d>>2]=y&1|t|2,e[r+(t+4)>>2]=n|3,e[f>>2]=e[f>>2]|1,vo(r+t|0,n)),r|0;if((h|0)==(e[10224]|0))return n=(e[10221]|0)+c|0,n>>>0<=t>>>0?(r=0,r|0):(v=n-t|0,e[d>>2]=y&1|t|2,e[r+(t+4)>>2]=v|1,e[10224]=r+t,e[10221]=v,r|0);if((h|0)==(e[10223]|0))return f=(e[10220]|0)+c|0,f>>>0>>0?(r=0,r|0):(n=f-t|0,n>>>0>15?(e[d>>2]=y&1|t|2,e[r+(t+4)>>2]=n|1,e[r+f>>2]=n,f=r+(f+4)|0,e[f>>2]=e[f>>2]&-2,f=r+t|0):(e[d>>2]=y&1|f|2,f=r+(f+4)|0,e[f>>2]=e[f>>2]|1,f=0,n=0),e[10220]=n,e[10223]=f,r|0);if(s&2||(g=(s&-8)+c|0,g>>>0>>0))return r=0,r|0;v=g-t|0,o=s>>>3;do if(s>>>0>=256){l=e[r+(c+24)>>2]|0,o=e[r+(c+12)>>2]|0;do if((o|0)==(h|0)){if(f=r+(c+20)|0,n=e[f>>2]|0,!n&&(f=r+(c+16)|0,n=e[f>>2]|0,!n)){m=0;break}for(;;){if(s=n+20|0,o=e[s>>2]|0,o){n=o,f=s;continue}if(s=n+16|0,o=e[s>>2]|0,o)n=o,f=s;else break}if(f>>>0>>0)G0();else{e[f>>2]=0,m=n;break}}else if(s=e[r+(c+8)>>2]|0,s>>>0>>0&&G0(),n=s+12|0,(e[n>>2]|0)!=(h|0)&&G0(),f=o+8|0,(e[f>>2]|0)==(h|0)){e[n>>2]=o,e[f>>2]=s,m=o;break}else G0();while(0);if(l){if(n=e[r+(c+28)>>2]|0,f=41176+(n<<2)|0,(h|0)==(e[f>>2]|0)){if(e[f>>2]=m,!m){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&G0(),n=l+16|0,(e[n>>2]|0)==(h|0)?e[n>>2]=m:e[l+20>>2]=m,!m)break;f=e[10222]|0,m>>>0>>0&&G0(),e[m+24>>2]=l,n=e[r+(c+16)>>2]|0;do if(n)if(n>>>0>>0)G0();else{e[m+16>>2]=n,e[n+24>>2]=m;break}while(0);if(n=e[r+(c+20)>>2]|0,n)if(n>>>0<(e[10222]|0)>>>0)G0();else{e[m+20>>2]=n,e[n+24>>2]=m;break}}}else{if(s=e[r+(c+8)>>2]|0,f=e[r+(c+12)>>2]|0,n=40912+(o<<1<<2)|0,(s|0)!=(n|0)&&(s>>>0>>0&&G0(),(e[s+12>>2]|0)!=(h|0)&&G0()),(f|0)==(s|0)){e[10218]=e[10218]&~(1<>>0>>0&&G0(),n=f+8|0,(e[n>>2]|0)==(h|0)?l=n:G0()):l=f+8|0,e[s+12>>2]=f,e[l>>2]=s}while(0);return v>>>0<16?(e[d>>2]=g|y&1|2,t=r+(g|4)|0,e[t>>2]=e[t>>2]|1,r|0):(e[d>>2]=y&1|t|2,e[r+(t+4)>>2]=v|3,y=r+(g|4)|0,e[y>>2]=e[y>>2]|1,vo(r+t|0,v),r|0)}function vo(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0;E=r+t|0,n=e[r+4>>2]|0;do if(n&1)A=r,l=t;else{if(m=e[r>>2]|0,!(n&3))return;if(v=r+(0-m)|0,g=m+t|0,c=e[10222]|0,v>>>0>>0&&G0(),(v|0)==(e[10223]|0)){if(f=r+(t+4)|0,n=e[f>>2]|0,(n&3|0)!=3){A=v,l=g;break}e[10220]=g,e[f>>2]=n&-2,e[r+(4-m)>>2]=g|1,e[E>>2]=g;return}if(o=m>>>3,m>>>0<256){if(s=e[r+(8-m)>>2]|0,f=e[r+(12-m)>>2]|0,n=40912+(o<<1<<2)|0,(s|0)!=(n|0)&&(s>>>0>>0&&G0(),(e[s+12>>2]|0)!=(v|0)&&G0()),(f|0)==(s|0)){e[10218]=e[10218]&~(1<>>0>>0&&G0(),n=f+8|0,(e[n>>2]|0)==(v|0)?a=n:G0()):a=f+8|0,e[s+12>>2]=f,e[a>>2]=s,A=v,l=g;break}a=e[r+(24-m)>>2]|0,s=e[r+(12-m)>>2]|0;do if((s|0)==(v|0)){if(s=16-m|0,f=r+(s+4)|0,n=e[f>>2]|0,!n&&(f=r+s|0,n=e[f>>2]|0,!n)){h=0;break}for(;;){if(s=n+20|0,o=e[s>>2]|0,o){n=o,f=s;continue}if(s=n+16|0,o=e[s>>2]|0,o)n=o,f=s;else break}if(f>>>0>>0)G0();else{e[f>>2]=0,h=n;break}}else if(o=e[r+(8-m)>>2]|0,o>>>0>>0&&G0(),n=o+12|0,(e[n>>2]|0)!=(v|0)&&G0(),f=s+8|0,(e[f>>2]|0)==(v|0)){e[n>>2]=s,e[f>>2]=o,h=s;break}else G0();while(0);if(a){if(n=e[r+(28-m)>>2]|0,f=41176+(n<<2)|0,(v|0)==(e[f>>2]|0)){if(e[f>>2]=h,!h){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&G0(),n=a+16|0,(e[n>>2]|0)==(v|0)?e[n>>2]=h:e[a+20>>2]=h,!h){A=v,l=g;break}s=e[10222]|0,h>>>0>>0&&G0(),e[h+24>>2]=a,n=16-m|0,f=e[r+n>>2]|0;do if(f)if(f>>>0>>0)G0();else{e[h+16>>2]=f,e[f+24>>2]=h;break}while(0);if(n=e[r+(n+4)>>2]|0,n)if(n>>>0<(e[10222]|0)>>>0)G0();else{e[h+20>>2]=n,e[n+24>>2]=h,A=v,l=g;break}else A=v,l=g}else A=v,l=g}while(0);if(c=e[10222]|0,E>>>0>>0&&G0(),n=r+(t+4)|0,f=e[n>>2]|0,f&2)e[n>>2]=f&-2,e[A+4>>2]=l|1,e[A+l>>2]=l;else{if((E|0)==(e[10224]|0)){if(I=(e[10221]|0)+l|0,e[10221]=I,e[10224]=A,e[A+4>>2]=I|1,(A|0)!=(e[10223]|0))return;e[10223]=0,e[10220]=0;return}if((E|0)==(e[10223]|0)){I=(e[10220]|0)+l|0,e[10220]=I,e[10223]=A,e[A+4>>2]=I|1,e[A+I>>2]=I;return}l=(f&-8)+l|0,o=f>>>3;do if(f>>>0>=256){a=e[r+(t+24)>>2]|0,s=e[r+(t+12)>>2]|0;do if((s|0)==(E|0)){if(f=r+(t+20)|0,n=e[f>>2]|0,!n&&(f=r+(t+16)|0,n=e[f>>2]|0,!n)){y=0;break}for(;;){if(s=n+20|0,o=e[s>>2]|0,o){n=o,f=s;continue}if(s=n+16|0,o=e[s>>2]|0,o)n=o,f=s;else break}if(f>>>0>>0)G0();else{e[f>>2]=0,y=n;break}}else if(o=e[r+(t+8)>>2]|0,o>>>0>>0&&G0(),n=o+12|0,(e[n>>2]|0)!=(E|0)&&G0(),f=s+8|0,(e[f>>2]|0)==(E|0)){e[n>>2]=s,e[f>>2]=o,y=s;break}else G0();while(0);if(a){if(n=e[r+(t+28)>>2]|0,f=41176+(n<<2)|0,(E|0)==(e[f>>2]|0)){if(e[f>>2]=y,!y){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&G0(),n=a+16|0,(e[n>>2]|0)==(E|0)?e[n>>2]=y:e[a+20>>2]=y,!y)break;f=e[10222]|0,y>>>0>>0&&G0(),e[y+24>>2]=a,n=e[r+(t+16)>>2]|0;do if(n)if(n>>>0>>0)G0();else{e[y+16>>2]=n,e[n+24>>2]=y;break}while(0);if(n=e[r+(t+20)>>2]|0,n)if(n>>>0<(e[10222]|0)>>>0)G0();else{e[y+20>>2]=n,e[n+24>>2]=y;break}}}else{if(s=e[r+(t+8)>>2]|0,f=e[r+(t+12)>>2]|0,n=40912+(o<<1<<2)|0,(s|0)!=(n|0)&&(s>>>0>>0&&G0(),(e[s+12>>2]|0)!=(E|0)&&G0()),(f|0)==(s|0)){e[10218]=e[10218]&~(1<>>0>>0&&G0(),n=f+8|0,(e[n>>2]|0)==(E|0)?d=n:G0()):d=f+8|0,e[s+12>>2]=f,e[d>>2]=s}while(0);if(e[A+4>>2]=l|1,e[A+l>>2]=l,(A|0)==(e[10223]|0)){e[10220]=l;return}}if(n=l>>>3,l>>>0<256){f=n<<1,o=40912+(f<<2)|0,s=e[10218]|0,n=1<>2]|0,f>>>0<(e[10222]|0)>>>0?G0():(P=n,I=f)):(e[10218]=s|n,P=40912+(f+2<<2)|0,I=o),e[P>>2]=A,e[I+12>>2]=A,e[A+8>>2]=I,e[A+12>>2]=o;return}if(n=l>>>8,n?l>>>0>16777215?o=31:(P=(n+1048320|0)>>>16&8,I=n<>>16&4,I=I<>>16&2,o=14-(E|P|o)+(I<>>15)|0,o=l>>>(o+7|0)&1|o<<1):o=0,n=41176+(o<<2)|0,e[A+28>>2]=o,e[A+20>>2]=0,e[A+16>>2]=0,f=e[10219]|0,s=1<>2]=A,e[A+24>>2]=n,e[A+12>>2]=A,e[A+8>>2]=A;return}n=e[n>>2]|0;e:do if((e[n+4>>2]&-8|0)!=(l|0)){for(o=l<<((o|0)==31?0:25-(o>>>1)|0);f=n+16+(o>>>31<<2)|0,s=e[f>>2]|0,!!s;)if((e[s+4>>2]&-8|0)==(l|0)){n=s;break e}else o=o<<1,n=s;f>>>0<(e[10222]|0)>>>0&&G0(),e[f>>2]=A,e[A+24>>2]=n,e[A+12>>2]=A,e[A+8>>2]=A;return}while(0);f=n+8|0,s=e[f>>2]|0,I=e[10222]|0,s>>>0>=I>>>0&n>>>0>=I>>>0||G0(),e[s+12>>2]=A,e[f>>2]=A,e[A+8>>2]=s,e[A+12>>2]=n,e[A+24>>2]=0}function D9(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0;if(f=e[9321]|0,P9(42048,f,42104),e[10342]=42892,e[10344]=42912,e[10343]=0,r=e[10720]|0,u=0,b(62,41368+r|0,42048),o=u,u=0,o&1&&(o=R()|0,T0(41376),B(o|0)),e[41368+(r+72)>>2]=0,e[41368+(r+76)>>2]=-1,s=e[9322]|0,ko(42152,s,42112),e[10364]=42972,e[10365]=42992,n=e[10740]|0,u=0,b(62,41456+n|0,42152),o=u,u=0,o&1&&(o=R()|0,T0(41460),B(o|0)),r=n+72|0,e[41456+r>>2]=0,t=n+76|0,e[41456+t>>2]=-1,o=e[9320]|0,ko(42200,o,42120),e[10385]=42972,e[10386]=42992,u=0,b(62,41540+n|0,42200),l=u,u=0,l&1&&(l=R()|0,T0(41544),B(l|0)),e[41540+r>>2]=0,e[41540+t>>2]=-1,l=e[41540+((e[(e[10385]|0)+-12>>2]|0)+24)>>2]|0,e[10406]=42972,e[10407]=42992,u=0,b(62,41624+n|0,l|0),l=u,u=0,l&1&&(l=R()|0,T0(41628),B(l|0)),e[41624+r>>2]=0,e[41624+t>>2]=-1,e[41368+((e[(e[10342]|0)+-12>>2]|0)+72)>>2]=41456,r=41540+((e[(e[10385]|0)+-12>>2]|0)+4)|0,e[r>>2]=e[r>>2]|8192,e[41540+((e[(e[10385]|0)+-12>>2]|0)+72)>>2]=41456,L9(42248,f,42128),e[10427]=42932,e[10429]=42952,e[10428]=0,r=e[10730]|0,u=0,b(62,41708+r|0,42248),l=u,u=0,l&1&&(l=R()|0,Ur(41716),B(l|0)),e[41708+(r+72)>>2]=0,e[41708+(r+76)>>2]=-1,_o(42304,s,42136),e[10449]=43012,e[10450]=43032,n=e[10750]|0,u=0,b(62,41796+n|0,42304),l=u,u=0,l&1&&(l=R()|0,Ur(41800),B(l|0)),r=n+72|0,e[41796+r>>2]=0,t=n+76|0,e[41796+t>>2]=-1,_o(42352,o,42144),e[10470]=43012,e[10471]=43032,u=0,b(62,41880+n|0,42352),l=u,u=0,l&1&&(l=R()|0,Ur(41884),B(l|0)),e[41880+r>>2]=0,e[41880+t>>2]=-1,l=e[41880+((e[(e[10470]|0)+-12>>2]|0)+24)>>2]|0,e[10491]=43012,e[10492]=43032,u=0,b(62,41964+n|0,l|0),l=u,u=0,l&1)l=R()|0,Ur(41968),B(l|0);else{e[41964+r>>2]=0,e[41964+t>>2]=-1,e[41708+((e[(e[10427]|0)+-12>>2]|0)+72)>>2]=41796,l=41880+((e[(e[10470]|0)+-12>>2]|0)+4)|0,e[l>>2]=e[l>>2]|8192,e[41880+((e[(e[10470]|0)+-12>>2]|0)+72)>>2]=41796;return}}function y9(r){r=r|0,u=0,W(70,41456)|0,r=u,u=0,!(!(r&1)&&(u=0,W(70,41624)|0,r=u,u=0,!(r&1))&&(u=0,W(71,41796)|0,r=u,u=0,!(r&1))&&(u=0,W(71,41964)|0,r=u,u=0,!(r&1)))&&(r=R(0)|0,ie(r))}function I9(){D9(0),j0(187,56757,l0|0)|0}function E9(){}function P9(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;if(s=C,C=C+16|0,o=s+4|0,f=s,Gn(r),e[r>>2]=42600,e[r+32>>2]=t,e[r+40>>2]=n,e[r+48>>2]=-1,p[r+52>>0]=0,nr(o,r+4|0),e[f>>2]=e[o>>2],u=0,b(23,r|0,f|0),n=u,u=0,n&1)o=R()|0,T2(f),q0(r),B(o|0);else{T2(f),C=s;return}}function ko(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;if(s=C,C=C+16|0,o=s+4|0,f=s,Gn(r),e[r>>2]=42536,e[r+32>>2]=t,nr(o,r+4|0),e[f>>2]=e[o>>2],u=0,t=c0(37,f|0,44280)|0,o=u,u=0,o&1)o=R()|0,T2(f),q0(r),B(o|0);else{T2(f),e[r+36>>2]=t,e[r+40>>2]=n,o=(V0[e[(e[t>>2]|0)+28>>2]&127](t)|0)&1,p[r+44>>0]=o,C=s;return}}function L9(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;if(s=C,C=C+16|0,o=s+4|0,f=s,Eo(r),e[r>>2]=42472,e[r+32>>2]=t,e[r+40>>2]=n,e[r+48>>2]=-1,p[r+52>>0]=0,nr(o,r+4|0),e[f>>2]=e[o>>2],u=0,b(21,r|0,f|0),n=u,u=0,n&1)o=R()|0,T2(f),sr(r),B(o|0);else{T2(f),C=s;return}}function _o(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;if(s=C,C=C+16|0,o=s+4|0,f=s,Eo(r),e[r>>2]=42408,e[r+32>>2]=t,nr(o,r+4|0),e[f>>2]=e[o>>2],u=0,t=c0(37,f|0,44288)|0,o=u,u=0,o&1)o=R()|0,T2(f),sr(r),B(o|0);else{T2(f),e[r+36>>2]=t,e[r+40>>2]=n,o=(V0[e[(e[t>>2]|0)+28>>2]&127](t)|0)&1,p[r+44>>0]=o,C=s;return}}function R9(r){r=r|0,sr(r),H(r)}function F9(r,t){r=r|0,t=t|0,V0[e[(e[r>>2]|0)+24>>2]&127](r)|0,t=I2(t,44288)|0,e[r+36>>2]=t,t=(V0[e[(e[t>>2]|0)+28>>2]&127](t)|0)&1,p[r+44>>0]=t}function O9(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0;m=C,C=C+16|0,a=m+8|0,l=m,n=r+36|0,f=r+40|0,s=a+8|0,o=a,t=r+32|0;e:for(;;){if(r=e[n>>2]|0,r=ur[e[(e[r>>2]|0)+20>>2]&31](r,e[f>>2]|0,a,s,l)|0,h=(e[l>>2]|0)-o|0,(L1(a,1,h,e[t>>2]|0)|0)!=(h|0)){r=-1;break}switch(r|0){case 1:break;case 2:{r=-1;break e}default:{c=4;break e}}}return(c|0)==4&&(r=((ef(e[t>>2]|0)|0)!=0)<<31>>31),C=m,r|0}function x9(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;e:do if(p[r+44>>0]|0)t=L1(t,4,n,e[r+32>>2]|0)|0;else if((n|0)>0)for(f=t,t=0;;){if((F2[e[(e[r>>2]|0)+52>>2]&63](r,e[f>>2]|0)|0)==-1)break e;if(t=t+1|0,(t|0)<(n|0))f=f+4|0;else break}else t=0;while(0);return t|0}function M9(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;E=C,C=C+32|0,v=E+16|0,n=E+8|0,g=E+4|0,h=E,d=(t|0)==-1;e:do if(d)y=11;else{if(e[n>>2]=t,p[r+44>>0]|0)if((L1(n,4,1,e[r+32>>2]|0)|0)==1){y=11;break}else{n=-1;break}for(e[g>>2]=v,c=n+4|0,m=r+36|0,s=r+40|0,o=v+8|0,l=v,a=r+32|0;;){if(r=e[m>>2]|0,r=H1[e[(e[r>>2]|0)+12>>2]&15](r,e[s>>2]|0,n,c,h,v,o,g)|0,(e[h>>2]|0)==(n|0)){n=-1;break e}if((r|0)==3)break;if(f=(r|0)==1,r>>>0>=2){n=-1;break e}if(r=(e[g>>2]|0)-l|0,(L1(v,1,r,e[a>>2]|0)|0)!=(r|0)){n=-1;break e}if(f)n=f?e[h>>2]|0:n;else{y=11;break e}}(L1(n,1,1,e[a>>2]|0)|0)!=1?n=-1:y=11}while(0);return(y|0)==11&&(n=d?0:t),C=E,n|0}function q9(r,t){r=r|0,t=t|0;var n=0,f=0;f=I2(t,44288)|0,n=r+36|0,e[n>>2]=f,f=V0[e[(e[f>>2]|0)+24>>2]&127](f)|0,t=r+44|0,e[t>>2]=f,n=e[n>>2]|0,n=(V0[e[(e[n>>2]|0)+28>>2]&127](n)|0)&1,p[r+53>>0]=n,(e[t>>2]|0)>8&&xr(56783)}function N9(r){r=r|0,sr(r),H(r)}function U9(r){return r=r|0,To(r,0)|0}function B9(r){return r=r|0,To(r,1)|0}function Q9(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0;m=C,C=C+32|0,c=m+16|0,a=m+8|0,f=m+4|0,s=m,o=r+52|0,n=(p[o>>0]|0)!=0;e:do if((t|0)==-1)n?t=-1:(t=e[r+48>>2]|0,p[o>>0]=(t|0)!=-1&1);else{l=r+48|0;i:do if(n){switch(e[f>>2]=e[l>>2],n=e[r+36>>2]|0,H1[e[(e[n>>2]|0)+12>>2]&15](n,e[r+40>>2]|0,f,f+4|0,s,c,c+8|0,a)|0){case 1:case 2:{t=-1;break e}case 3:{p[c>>0]=e[l>>2],e[a>>2]=c+1;break}default:}for(n=r+32|0;;){if(f=e[a>>2]|0,f>>>0<=c>>>0)break i;if(r=f+-1|0,e[a>>2]=r,(it(p[r>>0]|0,e[n>>2]|0)|0)==-1){t=-1;break e}}}while(0);e[l>>2]=t,p[o>>0]=1}while(0);return C=m,t|0}function To(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0;y=C,C=C+32|0,d=y+16|0,v=y+8|0,m=y+4|0,h=y,s=r+52|0;e:do if(p[s>>0]|0)f=r+48|0,n=e[f>>2]|0,t&&(e[f>>2]=-1,p[s>>0]=0);else{if(n=e[r+44>>2]|0,n=(n|0)>1?n:1,g=r+32|0,(n|0)>0){s=0;do{if(f=et(e[g>>2]|0)|0,(f|0)==-1){n=-1;break e}p[d+s>>0]=f,s=s+1|0}while((s|0)<(n|0))}i:do if(p[r+53>>0]|0)e[v>>2]=p[d>>0];else{l=r+40|0,a=r+36|0,c=v+4|0;r:for(;;){switch(E=e[l>>2]|0,s=E,f=e[s>>2]|0,s=e[s+4>>2]|0,P=e[a>>2]|0,o=d+n|0,H1[e[(e[P>>2]|0)+16>>2]&15](P,E,d,o,m,v,c,h)|0){case 2:{n=-1;break e}case 3:break r;case 1:break;default:break i}if(P=e[l>>2]|0,e[P>>2]=f,e[P+4>>2]=s,(n|0)==8){n=-1;break e}if(f=et(e[g>>2]|0)|0,(f|0)==-1){n=-1;break e}p[o>>0]=f,n=n+1|0}e[v>>2]=p[d>>0]}while(0);if(t){n=e[v>>2]|0,e[r+48>>2]=n;break}for(;!((n|0)<=0);)if(n=n+-1|0,(it(p[d+n>>0]|0,e[g>>2]|0)|0)==-1){n=-1;break e}n=e[v>>2]|0}while(0);return C=y,n|0}function G9(r){r=r|0,q0(r),H(r)}function H9(r,t){r=r|0,t=t|0,V0[e[(e[r>>2]|0)+24>>2]&127](r)|0,t=I2(t,44280)|0,e[r+36>>2]=t,t=(V0[e[(e[t>>2]|0)+28>>2]&127](t)|0)&1,p[r+44>>0]=t}function V9(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0;m=C,C=C+16|0,a=m+8|0,l=m,n=r+36|0,f=r+40|0,s=a+8|0,o=a,t=r+32|0;e:for(;;){if(r=e[n>>2]|0,r=ur[e[(e[r>>2]|0)+20>>2]&31](r,e[f>>2]|0,a,s,l)|0,h=(e[l>>2]|0)-o|0,(L1(a,1,h,e[t>>2]|0)|0)!=(h|0)){r=-1;break}switch(r|0){case 1:break;case 2:{r=-1;break e}default:{c=4;break e}}}return(c|0)==4&&(r=((ef(e[t>>2]|0)|0)!=0)<<31>>31),C=m,r|0}function z9(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;e:do if(p[r+44>>0]|0)t=L1(t,1,n,e[r+32>>2]|0)|0;else if((n|0)>0)for(f=t,t=0;;){if((F2[e[(e[r>>2]|0)+52>>2]&63](r,z[f>>0]|0)|0)==-1)break e;if(t=t+1|0,(t|0)<(n|0))f=f+1|0;else break}else t=0;while(0);return t|0}function Y9(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;E=C,C=C+32|0,v=E+16|0,n=E+8|0,g=E+4|0,h=E,d=(t|0)==-1;e:do if(d)y=11;else{if(p[n>>0]=t,p[r+44>>0]|0)if((L1(n,1,1,e[r+32>>2]|0)|0)==1){y=11;break}else{n=-1;break}for(e[g>>2]=v,m=n+1|0,s=r+36|0,o=r+40|0,l=v+8|0,a=v,c=r+32|0;;){if(r=e[s>>2]|0,r=H1[e[(e[r>>2]|0)+12>>2]&15](r,e[o>>2]|0,n,m,h,v,l,g)|0,(e[h>>2]|0)==(n|0)){n=-1;break e}if((r|0)==3)break;if(f=(r|0)==1,r>>>0>=2){n=-1;break e}if(r=(e[g>>2]|0)-a|0,(L1(v,1,r,e[c>>2]|0)|0)!=(r|0)){n=-1;break e}if(f)n=f?e[h>>2]|0:n;else{y=11;break e}}(L1(n,1,1,e[c>>2]|0)|0)!=1?n=-1:y=11}while(0);return(y|0)==11&&(n=d?0:t),C=E,n|0}function X9(r,t){r=r|0,t=t|0;var n=0,f=0;f=I2(t,44280)|0,n=r+36|0,e[n>>2]=f,f=V0[e[(e[f>>2]|0)+24>>2]&127](f)|0,t=r+44|0,e[t>>2]=f,n=e[n>>2]|0,n=(V0[e[(e[n>>2]|0)+28>>2]&127](n)|0)&1,p[r+53>>0]=n,(e[t>>2]|0)>8&&xr(56783)}function j9(r){r=r|0,q0(r),H(r)}function W9(r){return r=r|0,wo(r,0)|0}function Z9(r){return r=r|0,wo(r,1)|0}function K9(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0;m=C,C=C+32|0,c=m+16|0,a=m+4|0,f=m+8|0,s=m,o=r+52|0,n=(p[o>>0]|0)!=0;e:do if((t|0)==-1)n?t=-1:(t=e[r+48>>2]|0,p[o>>0]=(t|0)!=-1&1);else{l=r+48|0;i:do if(n){switch(p[f>>0]=e[l>>2],n=e[r+36>>2]|0,H1[e[(e[n>>2]|0)+12>>2]&15](n,e[r+40>>2]|0,f,f+1|0,s,c,c+8|0,a)|0){case 1:case 2:{t=-1;break e}case 3:{p[c>>0]=e[l>>2],e[a>>2]=c+1;break}default:}for(n=r+32|0;;){if(f=e[a>>2]|0,f>>>0<=c>>>0)break i;if(r=f+-1|0,e[a>>2]=r,(it(p[r>>0]|0,e[n>>2]|0)|0)==-1){t=-1;break e}}}while(0);e[l>>2]=t,p[o>>0]=1}while(0);return C=m,t|0}function wo(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0;y=C,C=C+32|0,d=y+16|0,v=y+8|0,m=y+4|0,h=y,s=r+52|0;e:do if(p[s>>0]|0)f=r+48|0,n=e[f>>2]|0,t&&(e[f>>2]=-1,p[s>>0]=0);else{if(n=e[r+44>>2]|0,n=(n|0)>1?n:1,g=r+32|0,(n|0)>0){s=0;do{if(f=et(e[g>>2]|0)|0,(f|0)==-1){n=-1;break e}p[d+s>>0]=f,s=s+1|0}while((s|0)<(n|0))}i:do if(p[r+53>>0]|0)p[v>>0]=p[d>>0]|0;else{l=r+40|0,a=r+36|0,c=v+1|0;r:for(;;){switch(E=e[l>>2]|0,s=E,f=e[s>>2]|0,s=e[s+4>>2]|0,P=e[a>>2]|0,o=d+n|0,H1[e[(e[P>>2]|0)+16>>2]&15](P,E,d,o,m,v,c,h)|0){case 2:{n=-1;break e}case 3:break r;case 1:break;default:break i}if(P=e[l>>2]|0,e[P>>2]=f,e[P+4>>2]=s,(n|0)==8){n=-1;break e}if(f=et(e[g>>2]|0)|0,(f|0)==-1){n=-1;break e}p[o>>0]=f,n=n+1|0}p[v>>0]=p[d>>0]|0}while(0);if(t)n=p[v>>0]|0,e[r+48>>2]=n&255;else{for(;!((n|0)<=0);)if(n=n+-1|0,(it(z[d+n>>0]|0,e[g>>2]|0)|0)==-1){n=-1;break e}n=p[v>>0]|0}n=n&255}while(0);return C=y,n|0}function FA(r){r=r|0}function Nr(r){r=r|0,r=r+4|0,e[r>>2]=(e[r>>2]|0)+1}function ne(r){r=r|0;var t=0,n=0;return n=r+4|0,t=e[n>>2]|0,e[n>>2]=t+-1,t?r=0:(W0[e[(e[r>>2]|0)+8>>2]&255](r),r=1),r|0}function J9(r,t){if(r=r|0,t=t|0,e[r>>2]=36868,u=0,b(86,r+4|0,(p[t>>0]&1?e[t+8>>2]|0:t+1|0)|0),r=u,u=0,r&1)r=R()|0,B(r|0);else return}function $9(r,t){if(r=r|0,t=t|0,e[r>>2]=36868,u=0,b(86,r+4|0,t|0),r=u,u=0,r&1)r=R()|0,B(r|0);else return}function b9(r,t){r=r|0,t=t|0;var n=0,f=0;f=gi(t)|0,n=k0(f+13|0)|0,e[n>>2]=f,e[n+4>>2]=f,e[n+8>>2]=0,n=n+12|0,qe(n|0,t|0,f+1|0)|0,e[r>>2]=n}function em(r,t,n){r=r|0,t=t|0,n=n|0,e[r>>2]=n,e[r+4>>2]=t}function im(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;return s=C,C=C+16|0,f=s,ft[e[(e[r>>2]|0)+12>>2]&15](f,r,t),(e[f+4>>2]|0)==(e[n+4>>2]|0)?f=(e[f>>2]|0)==(e[n>>2]|0):f=0,C=s,f|0}function rm(r,t,n){return r=r|0,t=t|0,n=n|0,((e[t>>2]|0)==(n|0)?(e[t+4>>2]|0)==(r|0):0)|0}function tm(r,t,n){r=r|0,t=t|0,n=n|0,t=el(n)|0,G1(r,t,gi(t)|0)}function nm(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;l=C,C=C+16|0,o=l,f=e[t>>2]|0;do if(f)if(s=p[n>>0]|0,s&1?s=e[n+4>>2]|0:s=(s&255)>>>1,s&&(pm(n,56990)|0,f=e[t>>2]|0),t=e[t+4>>2]|0,ft[e[(e[t>>2]|0)+24>>2]&15](o,t,f),t=p[o>>0]|0,s=(t&1)==0,u=0,ee(30,n|0,(s?o+1|0:e[o+8>>2]|0)|0,(s?(t&255)>>>1:e[o+4>>2]|0)|0)|0,t=u,u=0,t&1)l=R()|0,V(o),B(l|0);else{V(o);break}while(0);e[r>>2]=e[n>>2],e[r+4>>2]=e[n+4>>2],e[r+8>>2]=e[n+8>>2],e[n>>2]=0,e[n+4>>2]=0,e[n+8>>2]=0,C=l}function fm(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;s=C,C=C+32|0,f=s+12|0,o=s,G1(o,n,gi(n)|0),u=0,u0(10,f|0,t|0,o|0),n=u,u=0;do if(n&1)f=R()|0;else if(u=0,b(87,r|0,f|0),n=u,u=0,n&1){s=R()|0,V(f),f=s;break}else{V(f),V(o),e[r>>2]=42664,n=e[t+4>>2]|0,o=r+8|0,e[o>>2]=e[t>>2],e[o+4>>2]=n,C=s;return}while(0);V(o),B(f|0)}function sm(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0;o=C,C=C+48|0,s=o+24|0,a=o+16|0,l=o,e[a>>2]=t,e[a+4>>2]=n,qn(l,f),u=0,u0(10,s|0,a|0,l|0),f=u,u=0;do if(f&1)s=R()|0;else if(u=0,b(87,r|0,s|0),a=u,u=0,a&1){a=R()|0,V(s),s=a;break}else{V(s),V(l),e[r>>2]=42664,e[r+8>>2]=t,e[r+12>>2]=n,C=o;return}while(0);V(l),B(s|0)}function om(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;s=C,C=C+48|0,f=s+24|0,l=s+16|0,o=s,e[l>>2]=t,e[l+4>>2]=n,G1(o,58898,0),u=0,u0(10,f|0,l|0,o|0),l=u,u=0;do if(l&1)f=R()|0;else if(u=0,b(87,r|0,f|0),l=u,u=0,l&1){l=R()|0,V(f),f=l;break}else{V(f),V(o),e[r>>2]=42664,e[r+8>>2]=t,e[r+12>>2]=n,C=s;return}while(0);V(o),B(f|0)}function Mn(r){r=r|0,Wr(r)}function lm(r){r=r|0,Wr(r),H(r)}function um(r){r=r|0}function am(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;if(Ds(42676)|0,(e[r>>2]|0)==1)do Wu(42704,42676)|0;while((e[r>>2]|0)==1);do if(e[r>>2]|0)Ts(42676)|0;else{if(e[r>>2]=1,u=0,W(72,42676)|0,f=u,u=0,!(f&1)&&(u=0,A0(n|0,t|0),f=u,u=0,!(f&1))&&(u=0,W(73,42676)|0,f=u,u=0,!(f&1))&&(e[r>>2]=-1,u=0,W(72,42676)|0,f=u,u=0,!(f&1))&&(u=0,W(74,42704)|0,f=u,u=0,!(f&1)))break;f=R(0)|0,V2(f|0)|0,u=0,W(73,42676)|0,f=u,u=0,!(f&1)&&(e[r>>2]=0,u=0,W(72,42676)|0,f=u,u=0,!(f&1))&&(u=0,W(74,42704)|0,f=u,u=0,!(f&1))&&(u=0,be(5),u=0),t=R()|0,u=0,be(3),f=u,u=0,f&1?(f=R(0)|0,ie(f)):B(t|0)}while(0)}function qn(r,t){r=r|0,t=t|0,p[t>>0]&1?G1(r,e[t+8>>2]|0,e[t+4>>2]|0):(e[r>>2]=e[t>>2],e[r+4>>2]=e[t+4>>2],e[r+8>>2]=e[t+8>>2])}function G1(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;n>>>0>4294967279&&t1(r),n>>>0<11?(p[r>>0]=n<<1,r=r+1|0):(s=n+16&-16,f=k0(s)|0,e[r+8>>2]=f,e[r>>2]=s|1,e[r+4>>2]=n,r=f),qe(r|0,t|0,n|0)|0,p[r+n>>0]=0}function Nn(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;t>>>0>4294967279&&t1(r),t>>>0<11?(p[r>>0]=t<<1,r=r+1|0):(s=t+16&-16,f=k0(s)|0,e[r+8>>2]=f,e[r>>2]=s|1,e[r+4>>2]=t,r=f),we(r|0,n|0,t|0)|0,p[r+t>>0]=0}function V(r){r=r|0,p[r>>0]&1&&H(e[r+8>>2]|0)}function cm(r,t){r=r|0,t=t|0;var n=0,f=0;return(r|0)!=(t|0)&&(n=p[t>>0]|0,f=(n&1)==0,Co(r,f?t+1|0:e[t+8>>2]|0,f?(n&255)>>>1:e[t+4>>2]|0)|0),r|0}function hm(r,t){return r=r|0,t=t|0,Co(r,t,gi(t)|0)|0}function Co(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;f=p[r>>0]|0,f&1?(f=e[r>>2]|0,o=(f&-2)+-1|0,f=f&255):o=10,s=(f&1)==0;do if(o>>>0>=n>>>0)if(s?f=r+1|0:f=e[r+8>>2]|0,Hr(f|0,t|0,n|0)|0,p[f+n>>0]=0,p[r>>0]&1){e[r+4>>2]=n;break}else{p[r>>0]=n<<1;break}else s?f=(f&255)>>>1:f=e[r+4>>2]|0,yo(r,o,n-o|0,f,0,f,n,t);while(0);return r|0}function Ao(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;f=p[r>>0]|0,s=(f&1)==0,s?f=(f&255)>>>1:f=e[r+4>>2]|0;do if(f>>>0>=t>>>0)if(s){p[r+1+t>>0]=0,p[r>>0]=t<<1;break}else{p[(e[r+8>>2]|0)+t>>0]=0,e[r+4>>2]=t;break}else Sm(r,t-f|0,n)|0;while(0)}function Sm(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;return t&&(f=p[r>>0]|0,f&1?(f=e[r>>2]|0,s=(f&-2)+-1|0,f=f&255):s=10,f&1?o=e[r+4>>2]|0:o=(f&255)>>>1,(s-o|0)>>>0>>0&&(Un(r,s,t-s+o|0,o,o,0,0),f=p[r>>0]|0),f&1?s=e[r+8>>2]|0:s=r+1|0,we(s+o|0,n|0,t|0)|0,f=o+t|0,p[r>>0]&1?e[r+4>>2]=f:p[r>>0]=f<<1,p[s+f>>0]=0),r|0}function mm(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0;t>>>0>4294967279&&t1(r),n=p[r>>0]|0,n&1?(n=e[r>>2]|0,f=(n&-2)+-1|0,n=n&255):f=10,n&1?a=e[r+4>>2]|0:a=(n&255)>>>1,t=a>>>0>t>>>0?a:t,t>>>0<11?l=10:l=(t+16&-16)+-1|0;e:do if((l|0)!=(f|0)){do if((l|0)!=10){if(t=l+1|0,l>>>0<=f>>>0){if(u=0,t=W(67,t|0)|0,o=u,u=0,o&1){r=R(0)|0,V2(r|0)|0,Z2();break e}}else t=k0(t)|0;if(n&1){f=1,s=e[r+8>>2]|0,o=1;break}else{f=1,s=r+1|0,o=0;break}}else t=r+1|0,f=0,s=e[r+8>>2]|0,o=1;while(0);if(n&1?n=e[r+4>>2]|0:n=(n&255)>>>1,qe(t|0,s|0,n+1|0)|0,o&&H(s),f){e[r>>2]=l+1|1,e[r+4>>2]=a,e[r+8>>2]=t;break}else{p[r>>0]=a<<1;break}}while(0)}function pm(r,t){return r=r|0,t=t|0,Do(r,t,gi(t)|0)|0}function gm(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0;n=p[r>>0]|0,f=(n&1)!=0,f?(s=(e[r>>2]&-2)+-1|0,o=e[r+4>>2]|0):(s=10,o=(n&255)>>>1),(o|0)==(s|0)?(Un(r,s,1,s,s,0,0),p[r>>0]&1?s=8:s=7):f?s=8:s=7,(s|0)==7?(p[r>>0]=(o<<1)+2,n=r+1|0,f=o+1|0):(s|0)==8&&(n=e[r+8>>2]|0,f=o+1|0,e[r+4>>2]=f),p[n+o>>0]=t,p[n+f>>0]=0}function Do(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;return f=p[r>>0]|0,f&1?(f=e[r>>2]|0,s=(f&-2)+-1|0,f=f&255):s=10,f&1?o=e[r+4>>2]|0:o=(f&255)>>>1,(s-o|0)>>>0>=n>>>0?n&&(f&1?s=e[r+8>>2]|0:s=r+1|0,qe(s+o|0,t|0,n|0)|0,f=o+n|0,p[r>>0]&1?e[r+4>>2]=f:p[r>>0]=f<<1,p[s+f>>0]=0):yo(r,s,n-s+o|0,o,o,0,n,t),r|0}function yo(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0;(-18-t|0)>>>0>>0&&t1(r),p[r>>0]&1?h=e[r+8>>2]|0:h=r+1|0,t>>>0<2147483623?(c=n+t|0,m=t<<1,c=c>>>0>>0?m:c,c=c>>>0<11?11:c+16&-16):c=-17,m=k0(c)|0,s&&qe(m|0,h|0,s|0)|0,l&&qe(m+s|0,a|0,l|0)|0,n=f-o|0,(n|0)!=(s|0)&&qe(m+(l+s)|0,h+(o+s)|0,n-s|0)|0,(t|0)!=10&&H(h),e[r+8>>2]=m,e[r>>2]=c|1,t=n+l|0,e[r+4>>2]=t,p[m+t>>0]=0}function Un(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0;(-17-t|0)>>>0>>0&&t1(r),p[r>>0]&1?m=e[r+8>>2]|0:m=r+1|0,t>>>0<2147483623?(a=n+t|0,c=t<<1,a=a>>>0>>0?c:a,a=a>>>0<11?11:a+16&-16):a=-17,c=k0(a)|0,s&&qe(c|0,m|0,s|0)|0,n=f-o|0,(n|0)!=(s|0)&&qe(c+(l+s)|0,m+(o+s)|0,n-s|0)|0,(t|0)!=10&&H(m),e[r+8>>2]=c,e[r>>2]=a|1}function Bn(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;n>>>0>1073741807&&t1(r),n>>>0<2?(p[r>>0]=n<<1,r=r+4|0):(s=n+4&-4,f=k0(s<<2)|0,e[r+8>>2]=f,e[r>>2]=s|1,e[r+4>>2]=n,r=f),vi(r,t,n)|0,e[r+(n<<2)>>2]=0}function Qn(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;t>>>0>1073741807&&t1(r),t>>>0<2?(p[r>>0]=t<<1,r=r+4|0):(s=t+4&-4,f=k0(s<<2)|0,e[r+8>>2]=f,e[r>>2]=s|1,e[r+4>>2]=t,r=f),R_(r,n,t)|0,e[r+(t<<2)>>2]=0}function b0(r){r=r|0,p[r>>0]&1&&H(e[r+8>>2]|0)}function vm(r,t){return r=r|0,t=t|0,dm(r,t,tt(t)|0)|0}function dm(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;f=p[r>>0]|0,f&1?(f=e[r>>2]|0,o=(f&-2)+-1|0,f=f&255):o=1,s=(f&1)==0;do if(o>>>0>=n>>>0)if(s?f=r+4|0:f=e[r+8>>2]|0,L_(f,t,n)|0,e[f+(n<<2)>>2]=0,p[r>>0]&1){e[r+4>>2]=n;break}else{p[r>>0]=n<<1;break}else s?f=(f&255)>>>1:f=e[r+4>>2]|0,Tm(r,o,n-o|0,f,0,f,n,t);while(0);return r|0}function km(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0;t>>>0>1073741807&&t1(r),n=p[r>>0]|0,n&1?(n=e[r>>2]|0,f=(n&-2)+-1|0,n=n&255):f=1,n&1?a=e[r+4>>2]|0:a=(n&255)>>>1,t=a>>>0>t>>>0?a:t,t>>>0<2?l=1:l=(t+4&-4)+-1|0;e:do if((l|0)!=(f|0)){do if((l|0)!=1){if(t=(l<<2)+4|0,l>>>0<=f>>>0){if(u=0,t=W(67,t|0)|0,o=u,u=0,o&1){r=R(0)|0,V2(r|0)|0,Z2();break e}}else t=k0(t)|0;if(n&1){f=1,s=e[r+8>>2]|0,o=1;break}else{f=1,s=r+4|0,o=0;break}}else t=r+4|0,f=0,s=e[r+8>>2]|0,o=1;while(0);if(n&1?n=e[r+4>>2]|0:n=(n&255)>>>1,vi(t,s,n+1|0)|0,o&&H(s),f){e[r>>2]=l+1|1,e[r+4>>2]=a,e[r+8>>2]=t;break}else{p[r>>0]=a<<1;break}}while(0)}function _m(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0;n=p[r>>0]|0,f=(n&1)!=0,f?(s=(e[r>>2]&-2)+-1|0,o=e[r+4>>2]|0):(s=1,o=(n&255)>>>1),(o|0)==(s|0)?(Io(r,s,1,s,s,0,0),p[r>>0]&1?s=8:s=7):f?s=8:s=7,(s|0)==7?(p[r>>0]=(o<<1)+2,n=r+4|0,f=o+1|0):(s|0)==8&&(n=e[r+8>>2]|0,f=o+1|0,e[r+4>>2]=f),e[n+(o<<2)>>2]=t,e[n+(f<<2)>>2]=0}function Tm(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0;(1073741806-t|0)>>>0>>0&&t1(r),p[r>>0]&1?h=e[r+8>>2]|0:h=r+4|0,t>>>0<536870887?(c=n+t|0,m=t<<1,c=c>>>0>>0?m:c,c=c>>>0<2?2:c+4&-4):c=1073741807,m=k0(c<<2)|0,s&&vi(m,h,s)|0,l&&vi(m+(s<<2)|0,a,l)|0,n=f-o|0,(n|0)!=(s|0)&&vi(m+(l+s<<2)|0,h+(o+s<<2)|0,n-s|0)|0,(t|0)!=1&&H(h),e[r+8>>2]=m,e[r>>2]=c|1,t=n+l|0,e[r+4>>2]=t,e[m+(t<<2)>>2]=0}function Io(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0;(1073741807-t|0)>>>0>>0&&t1(r),p[r>>0]&1?m=e[r+8>>2]|0:m=r+4|0,t>>>0<536870887?(a=n+t|0,c=t<<1,a=a>>>0>>0?c:a,a=a>>>0<2?2:a+4&-4):a=1073741807,c=k0(a<<2)|0,s&&vi(c,m,s)|0,n=f-o|0,(n|0)!=(s|0)&&vi(c+(l+s<<2)|0,m+(o+s<<2)|0,n-s|0)|0,(t|0)!=1&&H(m),e[r+8>>2]=c,e[r>>2]=a|1}function wm(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;if(s=t,f=n-s|0,f>>>0>4294967279&&t1(r),f>>>0<11?(p[r>>0]=f<<1,o=r+1|0):(l=f+16&-16,o=k0(l)|0,e[r+8>>2]=o,e[r>>2]=l|1,e[r+4>>2]=f),r=n-s|0,(t|0)!=(n|0))for(f=o;p[f>>0]=p[t>>0]|0,t=t+1|0,(t|0)!=(n|0);)f=f+1|0;p[o+r>>0]=0}function Cm(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;if(o=t,f=n-o|0,s=f>>2,s>>>0>1073741807&&t1(r),s>>>0<2?(p[r>>0]=f>>>1,r=r+4|0):(l=s+4&-4,f=k0(l<<2)|0,e[r+8>>2]=f,e[r>>2]=l|1,e[r+4>>2]=s,r=f),s=(n-o|0)>>>2,(t|0)!=(n|0))for(f=r;e[f>>2]=e[t>>2],t=t+4|0,(t|0)!=(n|0);)f=f+4|0;e[r+(s<<2)>>2]=0}function Am(r,t){r=r|0,t=t|0;var n=0,f=0,s=0;if(n=C,C=C+16|0,f=n,s=(e[r+24>>2]|0)==0,e[r+16>>2]=s&1|t,!((s&1|t)&e[r+20>>2])){C=n;return}t=B0(16)|0,d7()|0,e[f>>2]=1,e[f+4>>2]=43112,u=0,u0(11,t|0,57437,f|0),s=u,u=0,s&1?(s=R()|0,Q0(t|0),B(s|0)):Se(t|0,864,112)}function q2(r){r=r|0;var t=0;if(e[r>>2]=43068,u=0,b(88,r|0,0),t=u,u=0,t&1)t=R(0)|0,ie(t);else{T2(r+28|0),ye(e[r+32>>2]|0),ye(e[r+36>>2]|0),ye(e[r+48>>2]|0),ye(e[r+60>>2]|0);return}}function T0(r){r=r|0,q2(r)}function OA(r){r=r|0,q2(r),H(r)}function Dm(r,t){r=r|0,t=t|0;var n=0,f=0,s=0;if(n=e[r+40>>2]|0,f=r+32|0,s=r+36|0,n)do n=n+-1|0,ft[e[(e[f>>2]|0)+(n<<2)>>2]&15](t,r,e[(e[s>>2]|0)+(n<<2)>>2]|0);while(n|0)}function We(r){r=r|0;var t=0,n=0;return n=C,C=C+16|0,t=n,nr(t,r+28|0),C=n,e[t>>2]|0}function ym(r,t){r=r|0,t=t|0;var n=0;e[r+24>>2]=t,e[r+16>>2]=(t|0)==0&1,e[r+20>>2]=0,e[r+4>>2]=4098,e[r+12>>2]=0,e[r+8>>2]=6,n=r+28|0,t=r+32|0,r=t+40|0;do e[t>>2]=0,t=t+4|0;while((t|0)<(r|0));On(n)}function Ur(r){r=r|0,q2(r)}function xA(r){r=r|0,q2(r),H(r)}function q0(r){r=r|0,e[r>>2]=42760,T2(r+4|0)}function Im(r){r=r|0,e[r>>2]=42760,T2(r+4|0),H(r)}function Gn(r){r=r|0,e[r>>2]=42760,On(r+4|0),r=r+8|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[r+20>>2]=0}function Em(r,t){r=r|0,t=t|0}function Pm(r,t,n){return r=r|0,t=t|0,n=n|0,r|0}function Lm(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1}function Rm(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0,t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1}function Fm(r){return r=r|0,0}function Om(r){return r=r|0,0}function xm(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;o=r+12|0,l=r+16|0;e:do if((n|0)>0)for(s=t,t=0;;){if(f=e[o>>2]|0,f>>>0<(e[l>>2]|0)>>>0)e[o>>2]=f+1,f=p[f>>0]|0;else{if(f=V0[e[(e[r>>2]|0)+40>>2]&127](r)|0,(f|0)==-1)break e;f=f&255}if(p[s>>0]=f,t=t+1|0,(t|0)<(n|0))s=s+1|0;else break}else t=0;while(0);return t|0}function Mm(r){return r=r|0,-1}function qm(r){r=r|0;var t=0;return(V0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1?r=-1:(t=r+12|0,r=e[t>>2]|0,e[t>>2]=r+1,r=z[r>>0]|0),r|0}function Nm(r,t){return r=r|0,t=t|0,-1}function Um(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0;o=r+24|0,l=r+28|0;e:do if((n|0)>0)for(s=t,t=0;;){if(f=e[o>>2]|0,f>>>0>=(e[l>>2]|0)>>>0){if((F2[e[(e[r>>2]|0)+52>>2]&63](r,z[s>>0]|0)|0)==-1)break e}else a=p[s>>0]|0,e[o>>2]=f+1,p[f>>0]=a;if(t=t+1|0,(t|0)<(n|0))s=s+1|0;else break}else t=0;while(0);return t|0}function Bm(r,t){return r=r|0,t=t|0,-1}function sr(r){r=r|0,e[r>>2]=42824,T2(r+4|0)}function Qm(r){r=r|0,e[r>>2]=42824,T2(r+4|0),H(r)}function Eo(r){r=r|0,e[r>>2]=42824,On(r+4|0),r=r+8|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[r+20>>2]=0}function Gm(r,t){r=r|0,t=t|0}function Hm(r,t,n){return r=r|0,t=t|0,n=n|0,r|0}function Vm(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1}function zm(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0,t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1}function Ym(r){return r=r|0,0}function Xm(r){return r=r|0,0}function jm(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;o=r+12|0,l=r+16|0;e:do if((n|0)>0)for(s=t,t=0;;){if(f=e[o>>2]|0,f>>>0>=(e[l>>2]|0)>>>0){if(f=V0[e[(e[r>>2]|0)+40>>2]&127](r)|0,(f|0)==-1)break e}else e[o>>2]=f+4,f=e[f>>2]|0;if(e[s>>2]=f,t=t+1|0,(t|0)<(n|0))s=s+4|0;else break}else t=0;while(0);return t|0}function Wm(r){return r=r|0,-1}function Zm(r){r=r|0;var t=0;return(V0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1?r=-1:(t=r+12|0,r=e[t>>2]|0,e[t>>2]=r+4,r=e[r>>2]|0),r|0}function Km(r,t){return r=r|0,t=t|0,-1}function Jm(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0;o=r+24|0,l=r+28|0;e:do if((n|0)>0)for(s=t,t=0;;){if(f=e[o>>2]|0,f>>>0>=(e[l>>2]|0)>>>0){if((F2[e[(e[r>>2]|0)+52>>2]&63](r,e[s>>2]|0)|0)==-1)break e}else a=e[s>>2]|0,e[o>>2]=f+4,e[f>>2]=a;if(t=t+1|0,(t|0)<(n|0))s=s+4|0;else break}else t=0;while(0);return t|0}function $m(r,t){return r=r|0,t=t|0,-1}function bm(r){r=r|0,q2(r+8|0)}function e7(r){r=r|0,q2(r+((e[(e[r>>2]|0)+-12>>2]|0)+8)|0)}function Po(r){r=r|0,q2(r+8|0),H(r)}function i7(r){r=r|0,Po(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)}function Lo(r){r=r|0;var t=0,n=0,f=0,s=0;f=C,C=C+16|0,n=f;e:do if(e[r+((e[(e[r>>2]|0)+-12>>2]|0)+24)>>2]|0){u=0,b(65,n|0,r|0),t=u,u=0;i:do if(t&1)t=R(0)|0;else{do if(p[n>>0]|0){if(t=e[r+((e[(e[r>>2]|0)+-12>>2]|0)+24)>>2]|0,u=0,t=W(e[(e[t>>2]|0)+24>>2]|0,t|0)|0,s=u,u=0,!(s&1)&&((t|0)!=-1||(s=e[(e[r>>2]|0)+-12>>2]|0,u=0,b(66,r+s|0,e[r+(s+16)>>2]|1|0),s=u,u=0,!(s&1))))break;t=R(0)|0,W1(n);break i}while(0);W1(n);break e}while(0);if(V2(t|0)|0,u=0,A0(181,r+(e[(e[r>>2]|0)+-12>>2]|0)|0),s=u,u=0,!(s&1)){Z2();break}t=R()|0,u=0,be(3),s=u,u=0,s&1?(s=R(0)|0,ie(s)):B(t|0)}while(0);return C=f,r|0}function r7(r){r=r|0;var t=0;if(t=r+16|0,e[t>>2]=e[t>>2]|1,e[r+20>>2]&1)Cs();else return}function t7(r){r=r|0,q2(r+8|0)}function n7(r){r=r|0,q2(r+((e[(e[r>>2]|0)+-12>>2]|0)+8)|0)}function Ro(r){r=r|0,q2(r+8|0),H(r)}function f7(r){r=r|0,Ro(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)}function Fo(r){r=r|0;var t=0,n=0,f=0,s=0;f=C,C=C+16|0,n=f;e:do if(e[r+((e[(e[r>>2]|0)+-12>>2]|0)+24)>>2]|0){u=0,b(89,n|0,r|0),t=u,u=0;i:do if(t&1)t=R(0)|0;else{do if(p[n>>0]|0){if(t=e[r+((e[(e[r>>2]|0)+-12>>2]|0)+24)>>2]|0,u=0,t=W(e[(e[t>>2]|0)+24>>2]|0,t|0)|0,s=u,u=0,!(s&1)&&((t|0)!=-1||(s=e[(e[r>>2]|0)+-12>>2]|0,u=0,b(66,r+s|0,e[r+(s+16)>>2]|1|0),s=u,u=0,!(s&1))))break;t=R(0)|0,Mo(n);break i}while(0);Mo(n);break e}while(0);if(V2(t|0)|0,u=0,A0(181,r+(e[(e[r>>2]|0)+-12>>2]|0)|0),s=u,u=0,!(s&1)){Z2();break}t=R()|0,u=0,be(3),s=u,u=0,s&1?(s=R(0)|0,ie(s)):B(t|0)}while(0);return C=f,r|0}function MA(r,t){r=r|0,t=t|0}function s7(r){r=r|0,q2(r+4|0)}function o7(r){r=r|0,q2(r+((e[(e[r>>2]|0)+-12>>2]|0)+4)|0)}function Oo(r){r=r|0,q2(r+4|0),H(r)}function l7(r){r=r|0,Oo(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)}function u7(r,t){r=r|0,t=t|0;var n=0;p[r>>0]=0,e[r+4>>2]=t,n=e[(e[t>>2]|0)+-12>>2]|0,e[t+(n+16)>>2]|0||(n=e[t+(n+72)>>2]|0,n&&Lo(n)|0,p[r>>0]=1)}function W1(r){r=r|0;var t=0,n=0;r=r+4|0,n=e[r>>2]|0,t=e[(e[n>>2]|0)+-12>>2]|0;do if(e[n+(t+24)>>2]|0&&!(e[n+(t+16)>>2]|0)&&e[n+(t+4)>>2]&8192|0&&!(ks()|0)){if(t=e[r>>2]|0,t=e[t+((e[(e[t>>2]|0)+-12>>2]|0)+24)>>2]|0,u=0,t=W(e[(e[t>>2]|0)+24>>2]|0,t|0)|0,n=u,u=0,!(n&1)&&((t|0)!=-1||(t=e[r>>2]|0,n=e[(e[t>>2]|0)+-12>>2]|0,u=0,b(66,t+n|0,e[t+(n+16)>>2]|1|0),n=u,u=0,!(n&1))))break;n=R(0)|0,V2(n|0)|0,u=0,be(3),n=u,u=0,n&1&&(n=R(0)|0,ie(n))}while(0)}function a7(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;v=C,C=C+32|0,a=v+20|0,c=v+16|0,h=v+8|0,n=v,u=0,b(65,h|0,r|0),m=u,u=0;e:do if(m&1)n=R(0)|0,f=r,s=r,g=19;else{do if(p[h>>0]|0){if(m=We(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)|0,e[n>>2]=m,u=0,m=c0(37,n|0,43392)|0,l=u,u=0,l&1)g=R(0)|0,T2(n),n=g;else{T2(n),s=e[(e[r>>2]|0)+-12>>2]|0,l=e[r+(s+24)>>2]|0,f=r+s|0,s=r+(s+76)|0,n=e[s>>2]|0;do if((n|0)==-1){if(n=We(f)|0,e[a>>2]=n,u=0,n=c0(37,a|0,44220)|0,d=u,u=0,!(d&1)&&(u=0,o=c0(e[(e[n>>2]|0)+28>>2]|0,n|0,32)|0,d=u,u=0,!(d&1))){T2(a),n=o<<24>>24,e[s>>2]=n,g=10;break}n=R(0)|0,T2(a)}else g=10;while(0);if((g|0)==10){if(d=e[(e[m>>2]|0)+16>>2]|0,e[c>>2]=l,u=0,e[a>>2]=e[c>>2],n=Rr(d|0,m|0,a|0,f|0,n&255|0,t|0)|0,d=u,u=0,!(d&1)&&(n||(d=e[(e[r>>2]|0)+-12>>2]|0,u=0,b(66,r+d|0,e[r+(d+16)>>2]|5|0),d=u,u=0,!(d&1))))break;n=R(0)|0}}W1(h),f=r,s=r,g=19;break e}while(0);W1(h)}while(0);do if((g|0)==19){if(V2(n|0)|0,u=0,A0(181,f+(e[(e[s>>2]|0)+-12>>2]|0)|0),d=u,u=0,!(d&1)){Z2();break}n=R()|0,u=0,be(3),d=u,u=0,d&1?(d=R(0)|0,ie(d)):B(n|0)}while(0);return C=v,r|0}function c7(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;v=C,C=C+32|0,a=v+20|0,c=v+16|0,h=v+8|0,n=v,u=0,b(65,h|0,r|0),m=u,u=0;e:do if(m&1)n=R(0)|0,f=r,s=r,g=19;else{do if(p[h>>0]|0){if(m=We(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)|0,e[n>>2]=m,u=0,m=c0(37,n|0,43392)|0,l=u,u=0,l&1)g=R(0)|0,T2(n),n=g;else{T2(n),s=e[(e[r>>2]|0)+-12>>2]|0,l=e[r+(s+24)>>2]|0,f=r+s|0,s=r+(s+76)|0,n=e[s>>2]|0;do if((n|0)==-1){if(n=We(f)|0,e[a>>2]=n,u=0,n=c0(37,a|0,44220)|0,d=u,u=0,!(d&1)&&(u=0,o=c0(e[(e[n>>2]|0)+28>>2]|0,n|0,32)|0,d=u,u=0,!(d&1))){T2(a),n=o<<24>>24,e[s>>2]=n,g=10;break}n=R(0)|0,T2(a)}else g=10;while(0);if((g|0)==10){if(d=e[(e[m>>2]|0)+24>>2]|0,e[c>>2]=l,u=0,e[a>>2]=e[c>>2],n=Rr(d|0,m|0,a|0,f|0,n&255|0,t|0)|0,d=u,u=0,!(d&1)&&(n||(d=e[(e[r>>2]|0)+-12>>2]|0,u=0,b(66,r+d|0,e[r+(d+16)>>2]|5|0),d=u,u=0,!(d&1))))break;n=R(0)|0}}W1(h),f=r,s=r,g=19;break e}while(0);W1(h)}while(0);do if((g|0)==19){if(V2(n|0)|0,u=0,A0(181,f+(e[(e[s>>2]|0)+-12>>2]|0)|0),d=u,u=0,!(d&1)){Z2();break}n=R()|0,u=0,be(3),d=u,u=0,d&1?(d=R(0)|0,ie(d)):B(n|0)}while(0);return C=v,r|0}function h7(r){r=r|0,q2(r+4|0)}function S7(r){r=r|0,q2(r+((e[(e[r>>2]|0)+-12>>2]|0)+4)|0)}function xo(r){r=r|0,q2(r+4|0),H(r)}function m7(r){r=r|0,xo(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)}function p7(r,t){r=r|0,t=t|0;var n=0;p[r>>0]=0,e[r+4>>2]=t,n=e[(e[t>>2]|0)+-12>>2]|0,e[t+(n+16)>>2]|0||(n=e[t+(n+72)>>2]|0,n&&Fo(n)|0,p[r>>0]=1)}function Mo(r){r=r|0;var t=0,n=0;r=r+4|0,n=e[r>>2]|0,t=e[(e[n>>2]|0)+-12>>2]|0;do if(e[n+(t+24)>>2]|0&&!(e[n+(t+16)>>2]|0)&&e[n+(t+4)>>2]&8192|0&&!(ks()|0)){if(t=e[r>>2]|0,t=e[t+((e[(e[t>>2]|0)+-12>>2]|0)+24)>>2]|0,u=0,t=W(e[(e[t>>2]|0)+24>>2]|0,t|0)|0,n=u,u=0,!(n&1)&&((t|0)!=-1||(t=e[r>>2]|0,n=e[(e[t>>2]|0)+-12>>2]|0,u=0,b(66,t+n|0,e[t+(n+16)>>2]|1|0),n=u,u=0,!(n&1))))break;n=R(0)|0,V2(n|0)|0,u=0,be(3),n=u,u=0,n&1&&(n=R(0)|0,ie(n))}while(0)}function g7(r){return r=r|0,57453}function v7(r,t,n){r=r|0,t=t|0,n=n|0,(n|0)!=1&(n|0)<257?tm(r,t,n):G1(r,57462,35)}function d7(){return!(p[1048]|0)&&Y0(1048)|0&&(e[10778]=43084,j0(72,43112,l0|0)|0,X0(1048)),43112}function k7(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0;f=C,C=C+16|0,s=f+8|0,o=f,a=n,l=e[a+4>>2]|0,n=o,e[n>>2]=e[a>>2],e[n+4>>2]=l,e[s>>2]=e[o>>2],e[s+4>>2]=e[o+4>>2],fm(r,s,t),e[r>>2]=43048,C=f}function _7(r){r=r|0,Mn(r)}function T7(r){r=r|0,Mn(r),H(r)}function w7(r){r=r|0,q2(r),H(r)}function C7(r){r=r|0,H(r)}function A7(r){r=r|0}function D7(r){r=r|0}function y7(r){r=r|0,H(r)}function I7(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0;e:do if((f|0)==(s|0))l=6;else for(;;){if((t|0)==(n|0)){t=-1;break e}if(r=p[t>>0]|0,o=p[f>>0]|0,r<<24>>24>24){t=-1;break e}if(o<<24>>24>24){t=1;break e}if(t=t+1|0,f=f+1|0,(f|0)==(s|0)){l=6;break}}while(0);return(l|0)==6&&(t=(t|0)!=(n|0)&1),t|0}function E7(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0,wm(r,n,f)}function P7(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;if((t|0)==(n|0))r=0;else{r=0;do r=(p[t>>0]|0)+(r<<4)|0,f=r&-268435456,r=(f>>>24|f)^r,t=t+1|0;while((t|0)!=(n|0))}return r|0}function L7(r){r=r|0}function R7(r){r=r|0,H(r)}function F7(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0;e:do if((f|0)==(s|0))l=6;else for(;;){if((t|0)==(n|0)){t=-1;break e}if(r=e[t>>2]|0,o=e[f>>2]|0,(r|0)<(o|0)){t=-1;break e}if((o|0)<(r|0)){t=1;break e}if(t=t+4|0,f=f+4|0,(f|0)==(s|0)){l=6;break}}while(0);return(l|0)==6&&(t=(t|0)!=(n|0)&1),t|0}function O7(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0,Cm(r,n,f)}function x7(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;if((t|0)==(n|0))r=0;else{r=0;do r=(e[t>>2]|0)+(r<<4)|0,f=r&-268435456,r=(f>>>24|f)^r,t=t+4|0;while((t|0)!=(n|0))}return r|0}function M7(r){r=r|0}function q7(r){r=r|0,H(r)}function N7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;y=C,C=C+64|0,v=y+56|0,l=y+52|0,h=y+48|0,a=y+44|0,c=y+40|0,m=y+36|0,g=y+32|0,E=y+8|0,d=y;e:do if(e[f+4>>2]&1){l=We(f)|0,e[m>>2]=l,u=0,r=c0(37,m|0,44220)|0,h=u,u=0;do if(h&1)E=R()|0,ne(l)|0,l=E;else{if(ne(l)|0,l=We(f)|0,e[g>>2]=l,u=0,c=c0(37,g|0,44360)|0,g=u,u=0,g&1){E=R()|0,ne(l)|0,l=E;break}if(ne(l)|0,u=0,b(e[(e[c>>2]|0)+24>>2]|0,E|0,c|0),g=u,u=0,g&1)a=E;else if(a=E+12|0,u=0,b(e[(e[c>>2]|0)+28>>2]|0,a|0,c|0),g=u,u=0,!(g&1))if(e[d>>2]=e[n>>2],u=0,e[v>>2]=e[d>>2],l=k1(7,t|0,v|0,E|0,E+24|0,r|0,s|0,1)|0,s=u,u=0,s&1){l=R()|0,V(E+12|0),V(E);break}else{p[o>>0]=(l|0)==(E|0)&1,l=e[t>>2]|0,V(E+12|0),V(E);break e}if(l=R()|0,c=f0,(E|0)!=(a|0))do a=a+-12|0,V(a);while((a|0)!=(E|0))}while(0);B(l|0)}else switch(e[h>>2]=-1,E=e[(e[r>>2]|0)+16>>2]|0,e[a>>2]=e[t>>2],e[c>>2]=e[n>>2],e[l>>2]=e[a>>2],e[v>>2]=e[c>>2],l=lr[E&63](r,l,v,f,s,h)|0,e[t>>2]=l,e[h>>2]|0){case 0:{p[o>>0]=0;break e}case 1:{p[o>>0]=1;break e}default:{p[o>>0]=1,e[s>>2]=4;break e}}while(0);return C=y,l|0}function U7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Ag(r,c,a,f,s,o)|0,C=l,r|0}function B7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Dg(r,c,a,f,s,o)|0,C=l,r|0}function Q7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=yg(r,c,a,f,s,o)|0,C=l,r|0}function G7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Ig(r,c,a,f,s,o)|0,C=l,r|0}function H7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Eg(r,c,a,f,s,o)|0,C=l,r|0}function V7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Pg(r,c,a,f,s,o)|0,C=l,r|0}function z7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Lg(r,c,a,f,s,o)|0,C=l,r|0}function Y7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Rg(r,c,a,f,s,o)|0,C=l,r|0}function X7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Fg(r,c,a,f,s,o)|0,C=l,r|0}function j7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0;U=C,C=C+240|0,A=U,d=U+208|0,Q=U+32|0,r=U+28|0,q=U+16|0,I=U+12|0,E=U+48|0,P=U+8|0,y=U+4|0,e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,u=0,f=W(68,f|0)|0,v=u,u=0;do if(v&1)r=R()|0;else{if(e[r>>2]=f,u=0,r=c0(37,r|0,44220)|0,v=u,u=0,!(v&1)&&(u=0,Me(e[(e[r>>2]|0)+32>>2]|0,r|0,57498,57524,d|0)|0,v=u,u=0,!(v&1))){ne(f)|0,e[q>>2]=0,e[q+4>>2]=0,e[q+8>>2]=0,p[q>>0]&1?r=(e[q>>2]&-2)+-1|0:r=10,u=0,u0(8,q|0,r|0,0),v=u,u=0;e:do if(v&1)r0=30;else{g=q+8|0,v=q+1|0,f=p[q>>0]&1?e[g>>2]|0:v,e[I>>2]=f,e[P>>2]=E,e[y>>2]=0,h=q+4|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,m=u,u=0,m&1){r0=29;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){r0=29;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,r0=19;break}}else r0=19;while(0);if((r0|0)==19)if(r0=0,a){l=0;break}else l=0;if(a=p[q>>0]|0,a=a&1?e[h>>2]|0:(a&255)>>>1,(e[I>>2]|0)==(f+a|0)){if(u=0,u0(8,q|0,a<<1|0,0),m=u,u=0,m&1){r0=29;break}if(p[q>>0]&1?f=(e[q>>2]&-2)+-1|0:f=10,u=0,u0(8,q|0,f|0,0),m=u,u=0,m&1){r0=29;break}f=p[q>>0]&1?e[g>>2]|0:v,e[I>>2]=f+a}if(c=r+12|0,a=e[c>>2]|0,m=r+16|0,(a|0)==(e[m>>2]|0)){if(u=0,a=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,i0=u,u=0,i0&1){r0=29;break}}else a=z[a>>0]|0;if(hi(a&255,16,f,I,y,0,Q,E,P,d)|0)break;if(l=e[c>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,i0=u,u=0,i0&1){r0=29;break}else continue;else{e[c>>2]=l+1;continue}}if((r0|0)==29){r=R()|0;break}if(u=0,u0(8,q|0,(e[I>>2]|0)-f|0,0),i0=u,u=0,!(i0&1)&&(_=p[q>>0]|0,w=e[g>>2]|0,u=0,x=Te(3)|0,i0=u,u=0,!(i0&1))&&(u=0,e[A>>2]=o,M=Me(16,(_&1?w:v)|0,x|0,58882,A|0)|0,i0=u,u=0,!(i0&1))){if((M|0)!=1&&(e[s>>2]=4),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,i0=u,u=0,i0&1){r0=30;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,i0=u,u=0,i0&1){r0=30;break e}if((r|0)==-1){e[n>>2]=0,r0=55;break}}f||(r0=56)}else r0=55;while(0);return(r0|0)==55&&f&&(r0=56),(r0|0)==56&&(e[s>>2]=e[s>>2]|2),i0=e[t>>2]|0,V(q),V(Q),C=U,i0|0}else r0=30}while(0);(r0|0)==30&&(r=R()|0),V(q);break}r=R()|0,ne(f)|0}while(0);return V(Q),B(r|0),0}function hi(r,t,n,f,s,o,l,a,c,m){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0;var h=0,g=0,v=0,d=0;v=e[f>>2]|0,d=(v|0)==(n|0);do if(d){if(h=(p[m+24>>0]|0)==r<<24>>24,!h&&(p[m+25>>0]|0)!=r<<24>>24){g=5;break}e[f>>2]=n+1,p[n>>0]=h?43:45,e[s>>2]=0,h=0}else g=5;while(0);e:do if((g|0)==5){if(g=p[l>>0]|0,r<<24>>24==o<<24>>24&&(g&1?e[l+4>>2]|0:(g&255)>>>1)|0){if(h=e[c>>2]|0,(h-a|0)>=160){h=0;break}t=e[s>>2]|0,e[c>>2]=h+4,e[h>>2]=t,e[s>>2]=0,h=0;break}for(l=m+26|0,h=m;(p[h>>0]|0)!=r<<24>>24;)if(h=h+1|0,(h|0)==(l|0)){h=l;break}if(h=h-m|0,(h|0)>23)h=-1;else{switch(t|0){case 10:case 8:{if((h|0)>=(t|0)){h=-1;break e}break}case 16:{if((h|0)>=22){if(d){h=-1;break e}if((v-n|0)>=3){h=-1;break e}if((p[v+-1>>0]|0)!=48){h=-1;break e}e[s>>2]=0,h=p[57498+h>>0]|0,e[f>>2]=v+1,p[v>>0]=h,h=0;break e}break}default:}h=p[57498+h>>0]|0,e[f>>2]=v+1,p[v>>0]=h,e[s>>2]=(e[s>>2]|0)+1,h=0}}while(0);return h|0}function g2(){var r=0,t=0;do if(!(p[1968]|0)&&Y0(1968)|0)if(u=0,r=ee(31,2147483647,58885,0)|0,t=u,u=0,t&1)t=R()|0,U2(1968),B(t|0);else{e[11196]=r,X0(1968);break}while(0);return e[11196]|0}function W7(r){r=r|0}function Z7(r){r=r|0,H(r)}function K7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;y=C,C=C+64|0,v=y+56|0,l=y+52|0,h=y+48|0,a=y+44|0,c=y+40|0,m=y+36|0,g=y+32|0,E=y+8|0,d=y;e:do if(e[f+4>>2]&1){l=We(f)|0,e[m>>2]=l,u=0,r=c0(37,m|0,44212)|0,h=u,u=0;do if(h&1)E=R()|0,ne(l)|0,l=E;else{if(ne(l)|0,l=We(f)|0,e[g>>2]=l,u=0,c=c0(37,g|0,44368)|0,g=u,u=0,g&1){E=R()|0,ne(l)|0,l=E;break}if(ne(l)|0,u=0,b(e[(e[c>>2]|0)+24>>2]|0,E|0,c|0),g=u,u=0,g&1)a=E;else if(a=E+12|0,u=0,b(e[(e[c>>2]|0)+28>>2]|0,a|0,c|0),g=u,u=0,!(g&1))if(e[d>>2]=e[n>>2],u=0,e[v>>2]=e[d>>2],l=k1(8,t|0,v|0,E|0,E+24|0,r|0,s|0,1)|0,s=u,u=0,s&1){l=R()|0,b0(E+12|0),b0(E);break}else{p[o>>0]=(l|0)==(E|0)&1,l=e[t>>2]|0,b0(E+12|0),b0(E);break e}if(l=R()|0,c=f0,(E|0)!=(a|0))do a=a+-12|0,b0(a);while((a|0)!=(E|0))}while(0);B(l|0)}else switch(e[h>>2]=-1,E=e[(e[r>>2]|0)+16>>2]|0,e[a>>2]=e[t>>2],e[c>>2]=e[n>>2],e[l>>2]=e[a>>2],e[v>>2]=e[c>>2],l=lr[E&63](r,l,v,f,s,h)|0,e[t>>2]=l,e[h>>2]|0){case 0:{p[o>>0]=0;break e}case 1:{p[o>>0]=1;break e}default:{p[o>>0]=1,e[s>>2]=4;break e}}while(0);return C=y,l|0}function J7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=xg(r,c,a,f,s,o)|0,C=l,r|0}function $7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Mg(r,c,a,f,s,o)|0,C=l,r|0}function b7(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=qg(r,c,a,f,s,o)|0,C=l,r|0}function ep(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Ng(r,c,a,f,s,o)|0,C=l,r|0}function ip(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Ug(r,c,a,f,s,o)|0,C=l,r|0}function rp(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Bg(r,c,a,f,s,o)|0,C=l,r|0}function tp(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Qg(r,c,a,f,s,o)|0,C=l,r|0}function np(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Gg(r,c,a,f,s,o)|0,C=l,r|0}function fp(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,h=l+4|0,m=l,e[h>>2]=e[t>>2],e[m>>2]=e[n>>2],e[c>>2]=e[h>>2],e[a>>2]=e[m>>2],r=Hg(r,c,a,f,s,o)|0,C=l,r|0}function sp(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0;U=C,C=C+320|0,A=U,d=U+208|0,Q=U+32|0,r=U+28|0,q=U+16|0,I=U+12|0,E=U+48|0,P=U+8|0,y=U+4|0,e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,u=0,f=W(68,f|0)|0,v=u,u=0;do if(v&1)r=R()|0;else{if(e[r>>2]=f,u=0,r=c0(37,r|0,44212)|0,v=u,u=0,!(v&1)&&(u=0,Me(e[(e[r>>2]|0)+48>>2]|0,r|0,57498,57524,d|0)|0,v=u,u=0,!(v&1))){ne(f)|0,e[q>>2]=0,e[q+4>>2]=0,e[q+8>>2]=0,p[q>>0]&1?r=(e[q>>2]&-2)+-1|0:r=10,u=0,u0(8,q|0,r|0,0),v=u,u=0;e:do if(v&1)r0=31;else{g=q+8|0,v=q+1|0,r=p[q>>0]&1?e[g>>2]|0:v,e[I>>2]=r,e[P>>2]=E,e[y>>2]=0,h=q+4|0,l=e[t>>2]|0;i:for(;;){if(l){if(f=e[l+12>>2]|0,(f|0)==(e[l+16>>2]|0)){if(u=0,f=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){r0=30;break}}else f=e[f>>2]|0;(f|0)==-1?(e[t>>2]=0,f=0,a=1):(f=l,a=0)}else f=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=W(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,m=u,u=0,m&1){r0=30;break i}}else l=e[l>>2]|0;if((l|0)!=-1)if(a){l=c;break}else{l=c;break i}else{e[n>>2]=0,r0=20;break}}else r0=20;while(0);if((r0|0)==20)if(r0=0,a){l=0;break}else l=0;if(a=p[q>>0]|0,a=a&1?e[h>>2]|0:(a&255)>>>1,(e[I>>2]|0)==(r+a|0)){if(u=0,u0(8,q|0,a<<1|0,0),m=u,u=0,m&1){r0=30;break}if(p[q>>0]&1?r=(e[q>>2]&-2)+-1|0:r=10,u=0,u0(8,q|0,r|0,0),m=u,u=0,m&1){r0=30;break}r=p[q>>0]&1?e[g>>2]|0:v,e[I>>2]=r+a}if(c=f+12|0,a=e[c>>2]|0,m=f+16|0,(a|0)==(e[m>>2]|0)){if(u=0,a=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,i0=u,u=0,i0&1){r0=30;break}}else a=e[a>>2]|0;if(Si(a,16,r,I,y,0,Q,E,P,d)|0)break;if(l=e[c>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[f>>2]|0)+40>>2]|0,f|0)|0,i0=u,u=0,i0&1){r0=30;break}else{l=f;continue}else{e[c>>2]=l+4,l=f;continue}}if((r0|0)==30){r=R()|0;break}if(u=0,u0(8,q|0,(e[I>>2]|0)-r|0,0),i0=u,u=0,!(i0&1)&&(_=p[q>>0]|0,w=e[g>>2]|0,u=0,x=Te(3)|0,i0=u,u=0,!(i0&1))&&(u=0,e[A>>2]=o,M=Me(16,(_&1?w:v)|0,x|0,58882,A|0)|0,i0=u,u=0,!(i0&1))){if((M|0)!=1&&(e[s>>2]=4),f){if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)){if(u=0,r=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,i0=u,u=0,i0&1){r0=31;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,i0=u,u=0,i0&1){r0=31;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;r0=59;break}else{e[n>>2]=0,r0=57;break}}else r0=57;while(0);return(r0|0)==57&&f&&(r0=59),(r0|0)==59&&(e[s>>2]=e[s>>2]|2),i0=e[t>>2]|0,V(q),V(Q),C=U,i0|0}else r0=31}while(0);(r0|0)==31&&(r=R()|0),V(q);break}r=R()|0,ne(f)|0}while(0);return V(Q),B(r|0),0}function Si(r,t,n,f,s,o,l,a,c,m){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0;var h=0,g=0,v=0,d=0;v=e[f>>2]|0,d=(v|0)==(n|0);do if(d){if(h=(e[m+96>>2]|0)==(r|0),!h&&(e[m+100>>2]|0)!=(r|0)){g=5;break}e[f>>2]=n+1,p[n>>0]=h?43:45,e[s>>2]=0,h=0}else g=5;while(0);e:do if((g|0)==5){if(g=p[l>>0]|0,(r|0)==(o|0)&&(g&1?e[l+4>>2]|0:(g&255)>>>1)|0){if(h=e[c>>2]|0,(h-a|0)>=160){h=0;break}t=e[s>>2]|0,e[c>>2]=h+4,e[h>>2]=t,e[s>>2]=0,h=0;break}for(l=m+104|0,h=m;(e[h>>2]|0)!=(r|0);)if(h=h+4|0,(h|0)==(l|0)){h=l;break}if(h=h-m|0,l=h>>2,(h|0)>92)h=-1;else{switch(t|0){case 10:case 8:{if((l|0)>=(t|0)){h=-1;break e}break}case 16:{if((h|0)>=88){if(d){h=-1;break e}if((v-n|0)>=3){h=-1;break e}if((p[v+-1>>0]|0)!=48){h=-1;break e}e[s>>2]=0,h=p[57498+l>>0]|0,e[f>>2]=v+1,p[v>>0]=h,h=0;break e}break}default:}h=p[57498+l>>0]|0,e[f>>2]=v+1,p[v>>0]=h,e[s>>2]=(e[s>>2]|0)+1,h=0}}while(0);return h|0}function Oi(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0;if(c=C,C=C+16|0,a=c,t=We(t)|0,e[a>>2]=t,u=0,s=c0(37,a|0,44220)|0,m=u,u=0,!(m&1)&&(u=0,Me(e[(e[s>>2]|0)+32>>2]|0,s|0,57498,57524,n|0)|0,m=u,u=0,!(m&1))&&(u=0,l=c0(37,a|0,44360)|0,m=u,u=0,!(m&1))&&(u=0,o=W(e[(e[l>>2]|0)+16>>2]|0,l|0)|0,m=u,u=0,!(m&1))&&(p[f>>0]=o,u=0,b(e[(e[l>>2]|0)+20>>2]|0,r|0,l|0),m=u,u=0,!(m&1))){ne(t)|0,C=c;return}m=R()|0,ne(t)|0,B(m|0)}function Hn(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0;if(h=C,C=C+16|0,m=h,t=We(t)|0,e[m>>2]=t,u=0,o=c0(37,m|0,44220)|0,g=u,u=0,!(g&1)&&(u=0,Me(e[(e[o>>2]|0)+32>>2]|0,o|0,57498,57530,n|0)|0,g=u,u=0,!(g&1))&&(u=0,c=c0(37,m|0,44360)|0,g=u,u=0,!(g&1))&&(u=0,l=W(e[(e[c>>2]|0)+12>>2]|0,c|0)|0,g=u,u=0,!(g&1))&&(p[f>>0]=l,u=0,a=W(e[(e[c>>2]|0)+16>>2]|0,c|0)|0,g=u,u=0,!(g&1))&&(p[s>>0]=a,u=0,b(e[(e[c>>2]|0)+20>>2]|0,r|0,c|0),g=u,u=0,!(g&1))){ne(t)|0,C=h;return}g=R()|0,ne(t)|0,B(g|0)}function Vn(r,t,n,f,s,o,l,a,c,m,h,g){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0,g=g|0;var v=0,d=0;e:do if(r<<24>>24==o<<24>>24)p[t>>0]|0?(p[t>>0]=0,n=e[s>>2]|0,e[s>>2]=n+1,p[n>>0]=46,n=p[a>>0]|0,(n&1?e[a+4>>2]|0:(n&255)>>>1)|0&&(v=e[m>>2]|0,(v-c|0)<160)&&(c=e[h>>2]|0,e[m>>2]=v+4,e[v>>2]=c),v=0):v=-1;else{if(r<<24>>24==l<<24>>24&&(l=p[a>>0]|0,((l&1?e[a+4>>2]|0:(l&255)>>>1)|0)!=0)){if(!(p[t>>0]|0)){v=-1;break}if(v=e[m>>2]|0,(v-c|0)>=160){v=0;break}c=e[h>>2]|0,e[m>>2]=v+4,e[v>>2]=c,e[h>>2]=0,v=0;break}for(o=g+32|0,v=g;(p[v>>0]|0)!=r<<24>>24;)if(v=v+1|0,(v|0)==(o|0)){v=o;break}if(o=v-g|0,(o|0)>31)v=-1;else switch(l=p[57498+o>>0]|0,o|0){case 24:case 25:{if(v=e[s>>2]|0,(v|0)!=(f|0)&&(z[v+-1>>0]&95|0)!=(z[n>>0]&127|0)){v=-1;break e}e[s>>2]=v+1,p[v>>0]=l,v=0;break e}case 23:case 22:{p[n>>0]=80,v=e[s>>2]|0,e[s>>2]=v+1,p[v>>0]=l,v=0;break e}default:{if(v=l&95,(v|0)==(p[n>>0]|0)&&(p[n>>0]=v|128,(p[t>>0]|0)!=0)&&(p[t>>0]=0,n=p[a>>0]|0,((n&1?e[a+4>>2]|0:(n&255)>>>1)|0)!=0)&&(d=e[m>>2]|0,(d-c|0)<160)&&(c=e[h>>2]|0,e[m>>2]=d+4,e[d>>2]=c),m=e[s>>2]|0,e[s>>2]=m+1,p[m>>0]=l,(o|0)>21){v=0;break e}e[h>>2]=(e[h>>2]|0)+1,v=0;break e}}}while(0);return v|0}function xi(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0;if(c=C,C=C+16|0,a=c,t=We(t)|0,e[a>>2]=t,u=0,s=c0(37,a|0,44212)|0,m=u,u=0,!(m&1)&&(u=0,Me(e[(e[s>>2]|0)+48>>2]|0,s|0,57498,57524,n|0)|0,m=u,u=0,!(m&1))&&(u=0,l=c0(37,a|0,44368)|0,m=u,u=0,!(m&1))&&(u=0,o=W(e[(e[l>>2]|0)+16>>2]|0,l|0)|0,m=u,u=0,!(m&1))&&(e[f>>2]=o,u=0,b(e[(e[l>>2]|0)+20>>2]|0,r|0,l|0),m=u,u=0,!(m&1))){ne(t)|0,C=c;return}m=R()|0,ne(t)|0,B(m|0)}function zn(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0;if(h=C,C=C+16|0,m=h,t=We(t)|0,e[m>>2]=t,u=0,o=c0(37,m|0,44212)|0,g=u,u=0,!(g&1)&&(u=0,Me(e[(e[o>>2]|0)+48>>2]|0,o|0,57498,57530,n|0)|0,g=u,u=0,!(g&1))&&(u=0,c=c0(37,m|0,44368)|0,g=u,u=0,!(g&1))&&(u=0,l=W(e[(e[c>>2]|0)+12>>2]|0,c|0)|0,g=u,u=0,!(g&1))&&(e[f>>2]=l,u=0,a=W(e[(e[c>>2]|0)+16>>2]|0,c|0)|0,g=u,u=0,!(g&1))&&(e[s>>2]=a,u=0,b(e[(e[c>>2]|0)+20>>2]|0,r|0,c|0),g=u,u=0,!(g&1))){ne(t)|0,C=h;return}g=R()|0,ne(t)|0,B(g|0)}function Yn(r,t,n,f,s,o,l,a,c,m,h,g){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0,g=g|0;var v=0,d=0;e:do if((r|0)==(o|0))p[t>>0]|0?(p[t>>0]=0,n=e[s>>2]|0,e[s>>2]=n+1,p[n>>0]=46,n=p[a>>0]|0,(n&1?e[a+4>>2]|0:(n&255)>>>1)|0&&(v=e[m>>2]|0,(v-c|0)<160)&&(c=e[h>>2]|0,e[m>>2]=v+4,e[v>>2]=c),v=0):v=-1;else{if((r|0)==(l|0)&&(l=p[a>>0]|0,((l&1?e[a+4>>2]|0:(l&255)>>>1)|0)!=0)){if(!(p[t>>0]|0)){v=-1;break}if(v=e[m>>2]|0,(v-c|0)>=160){v=0;break}c=e[h>>2]|0,e[m>>2]=v+4,e[v>>2]=c,e[h>>2]=0,v=0;break}for(o=g+128|0,v=g;(e[v>>2]|0)!=(r|0);)if(v=v+4|0,(v|0)==(o|0)){v=o;break}if(o=v-g|0,v=o>>2,(o|0)<=124){switch(l=p[57498+v>>0]|0,v|0){case 24:case 25:{if(v=e[s>>2]|0,(v|0)!=(f|0)&&(z[v+-1>>0]&95|0)!=(z[n>>0]&127|0)){v=-1;break e}e[s>>2]=v+1,p[v>>0]=l,v=0;break e}case 23:case 22:{p[n>>0]=80;break}default:v=l&95,(v|0)==(p[n>>0]|0)&&(p[n>>0]=v|128,(p[t>>0]|0)!=0)&&(p[t>>0]=0,n=p[a>>0]|0,((n&1?e[a+4>>2]|0:(n&255)>>>1)|0)!=0)&&(d=e[m>>2]|0,(d-c|0)<160)&&(c=e[h>>2]|0,e[m>>2]=d+4,e[d>>2]=c)}m=e[s>>2]|0,e[s>>2]=m+1,p[m>>0]=l,(o|0)>84||(e[h>>2]=(e[h>>2]|0)+1),v=0}else v=-1}while(0);return v|0}function op(r){r=r|0}function lp(r){r=r|0,H(r)}function up(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0;h=C,C=C+32|0,o=h+20|0,l=h+16|0,a=h+12|0,m=h;e:do if(!(e[n+4>>2]&1))m=e[(e[r>>2]|0)+24>>2]|0,e[l>>2]=e[t>>2],e[o>>2]=e[l>>2],o=ur[m&31](r,o,n,f,s&1)|0;else{o=We(n)|0,e[a>>2]=o,u=0,l=c0(37,a|0,44360)|0,c=u,u=0;i:do if(c&1)h=R()|0,ne(o)|0,o=h;else{ne(o)|0,o=e[l>>2]|0,s?Ae[e[o+24>>2]&127](m,l):Ae[e[o+28>>2]&127](m,l),r=p[m>>0]|0,c=(r&1)==0,o=m+1|0,s=m+8|0,a=c?o:m+1|0,o=c?o:e[m+8>>2]|0,c=m+4|0,n=(r&1)==0;r:do if((o|0)!=((n?a:e[s>>2]|0)+(n?(r&255)>>>1:e[c>>2]|0)|0)){t:for(;;){l=p[o>>0]|0,f=e[t>>2]|0;do if(f){if(n=f+24|0,r=e[n>>2]|0,(r|0)!=(e[f+28>>2]|0)){e[n>>2]=r+1,p[r>>0]=l;break}if(u=0,l=c0(e[(e[f>>2]|0)+52>>2]|0,f|0,l&255|0)|0,r=u,u=0,r&1)break t;(l|0)==-1&&(e[t>>2]=0)}while(0);if(o=o+1|0,r=p[m>>0]|0,n=(r&1)==0,(o|0)==((n?a:e[s>>2]|0)+(n?(r&255)>>>1:e[c>>2]|0)|0))break r}o=R()|0,V(m);break i}while(0);o=e[t>>2]|0,V(m);break e}while(0);B(o|0)}while(0);return C=h,o|0}function ap(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;if(h=C,C=C+64|0,o=h,v=h+56|0,d=h+44|0,a=h+20|0,m=h+16|0,c=h+12|0,g=h+8|0,l=h+4|0,p[v>>0]=p[58887]|0,p[v+1>>0]=p[58888]|0,p[v+2>>0]=p[58889]|0,p[v+3>>0]=p[58890]|0,p[v+4>>0]=p[58891]|0,p[v+5>>0]=p[58892]|0,Z1(v+1|0,58893,1,e[n+4>>2]|0),r=g2()|0,e[o>>2]=s,s=d+(N2(d,12,r,v,o)|0)|0,v=r1(d,s,n)|0,r=We(n)|0,e[g>>2]=r,u=0,u1(1,d|0,v|0,s|0,a|0,m|0,c|0,g|0),s=u,u=0,s&1)d=R()|0,ne(r)|0,B(d|0);else return ne(r)|0,e[l>>2]=e[t>>2],v=e[m>>2]|0,d=e[c>>2]|0,e[o>>2]=e[l>>2],d=Li(o,a,v,d,n,f)|0,C=h,d|0;return 0}function Z1(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;if(f&2048&&(p[r>>0]=43,r=r+1|0),f&512&&(p[r>>0]=35,r=r+1|0),s=p[t>>0]|0,s<<24>>24)for(o=t;;)if(o=o+1|0,t=r+1|0,p[r>>0]=s,s=p[o>>0]|0,s<<24>>24)r=t;else{r=t;break}e:do switch(f&74|0){case 64:{p[r>>0]=111;break}case 8:if(f&16384){p[r>>0]=88;break e}else{p[r>>0]=120;break e}default:if(n){p[r>>0]=100;break e}else{p[r>>0]=117;break e}}while(0)}function r1(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;e:do switch(e[n+4>>2]&176|0){case 16:{switch(n=p[r>>0]|0,n<<24>>24){case 43:case 45:{r=r+1|0;break e}default:}if((t-r|0)>1&n<<24>>24==48){switch(p[r+1>>0]|0){case 88:case 120:break;default:{f=7;break e}}r=r+2|0}else f=7;break}case 32:{r=t;break}default:f=7}while(0);return r|0}function cp(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0;I=C,C=C+16|0,A=I,E=I2(l,44220)|0,m=I2(l,44360)|0,Ae[e[(e[m>>2]|0)+20>>2]&127](A,m),d=p[A>>0]|0,y=A+4|0;e:do if(!((d&1?e[y>>2]|0:(d&255)>>>1)|0))u=0,Me(e[(e[E>>2]|0)+32>>2]|0,E|0,r|0,n|0,f|0)|0,P=u,u=0,P&1?P=5:(l=f+(n-r)|0,e[o>>2]=l,P=29);else{switch(e[o>>2]=f,l=p[r>>0]|0,l<<24>>24){case 43:case 45:{if(u=0,l=c0(e[(e[E>>2]|0)+28>>2]|0,E|0,l|0)|0,d=u,u=0,d&1){P=5;break e}c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=l,c=r+1|0;break}default:c=r}i:do if((n-c|0)>1&&(p[c>>0]|0)==48){switch(l=c+1|0,p[l>>0]|0){case 88:case 120:break;default:break i}if(u=0,a=c0(e[(e[E>>2]|0)+28>>2]|0,E|0,48)|0,d=u,u=0,d&1){P=5;break e}if(d=e[o>>2]|0,e[o>>2]=d+1,p[d>>0]=a,u=0,l=c0(e[(e[E>>2]|0)+28>>2]|0,E|0,p[l>>0]|0)|0,d=u,u=0,d&1){P=5;break e}d=e[o>>2]|0,e[o>>2]=d+1,p[d>>0]=l,c=c+2|0}while(0);if((c|0)!=(n|0)&&(h=n+-1|0,c>>>0>>0)){a=c,l=h;do d=p[a>>0]|0,p[a>>0]=p[l>>0]|0,p[l>>0]=d,a=a+1|0,l=l+-1|0;while(a>>>0>>0)}if(u=0,h=W(e[(e[m>>2]|0)+16>>2]|0,m|0)|0,d=u,u=0,d&1)P=5;else{g=A+8|0,v=A+1|0;i:do if(c>>>0>>0){for(l=0,a=0,d=c;m=p[(p[A>>0]&1?e[g>>2]|0:v)+a>>0]|0,m<<24>>24!=0&(l|0)==(m<<24>>24|0)?(l=e[o>>2]|0,e[o>>2]=l+1,p[l>>0]=h,l=p[A>>0]|0,m=0,a=(a>>>0<((l&1?e[y>>2]|0:(l&255)>>>1)+-1|0)>>>0&1)+a|0):m=l,u=0,l=c0(e[(e[E>>2]|0)+28>>2]|0,E|0,p[d>>0]|0)|0,_=u,u=0,!(_&1);){if(_=e[o>>2]|0,e[o>>2]=_+1,p[_>>0]=l,d=d+1|0,d>>>0>=n>>>0)break i;l=m+1|0}l=R()|0;break e}while(0);if(a=r,l=f+(c-a)|0,r=e[o>>2]|0,(l|0)==(r|0))r=a,P=29;else{if(r=r+-1|0,l>>>0>>0)do _=p[l>>0]|0,p[l>>0]=p[r>>0]|0,p[r>>0]=_,l=l+1|0,r=r+-1|0;while(l>>>0>>0);r=a,l=e[o>>2]|0,P=29}}}while(0);if((P|0)==5)l=R()|0;else if((P|0)==29){e[s>>2]=(t|0)==(n|0)?l:f+(t-r)|0,V(A),C=I;return}V(A),B(l|0)}function hp(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;if(g=C,C=C+96|0,l=g+8|0,r=g,d=g+74|0,c=g+32|0,h=g+28|0,m=g+24|0,v=g+20|0,a=g+16|0,y=r,e[y>>2]=37,e[y+4>>2]=0,Z1(r+1|0,58895,1,e[n+4>>2]|0),y=g2()|0,E=l,e[E>>2]=s,e[E+4>>2]=o,o=d+(N2(d,22,y,r,l)|0)|0,s=r1(d,o,n)|0,r=We(n)|0,e[v>>2]=r,u=0,u1(1,d|0,s|0,o|0,c|0,h|0,m|0,v|0),o=u,u=0,o&1)E=R()|0,ne(r)|0,B(E|0);else return ne(r)|0,e[a>>2]=e[t>>2],y=e[h>>2]|0,E=e[m>>2]|0,e[l>>2]=e[a>>2],E=Li(l,c,y,E,n,f)|0,C=g,E|0;return 0}function Sp(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;if(h=C,C=C+64|0,o=h,v=h+56|0,d=h+44|0,a=h+20|0,m=h+16|0,c=h+12|0,g=h+8|0,l=h+4|0,p[v>>0]=p[58887]|0,p[v+1>>0]=p[58888]|0,p[v+2>>0]=p[58889]|0,p[v+3>>0]=p[58890]|0,p[v+4>>0]=p[58891]|0,p[v+5>>0]=p[58892]|0,Z1(v+1|0,58893,0,e[n+4>>2]|0),r=g2()|0,e[o>>2]=s,s=d+(N2(d,12,r,v,o)|0)|0,v=r1(d,s,n)|0,r=We(n)|0,e[g>>2]=r,u=0,u1(1,d|0,v|0,s|0,a|0,m|0,c|0,g|0),s=u,u=0,s&1)d=R()|0,ne(r)|0,B(d|0);else return ne(r)|0,e[l>>2]=e[t>>2],v=e[m>>2]|0,d=e[c>>2]|0,e[o>>2]=e[l>>2],d=Li(o,a,v,d,n,f)|0,C=h,d|0;return 0}function mp(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;if(g=C,C=C+112|0,l=g+8|0,r=g,d=g+75|0,c=g+32|0,h=g+28|0,m=g+24|0,v=g+20|0,a=g+16|0,y=r,e[y>>2]=37,e[y+4>>2]=0,Z1(r+1|0,58895,0,e[n+4>>2]|0),y=g2()|0,E=l,e[E>>2]=s,e[E+4>>2]=o,o=d+(N2(d,23,y,r,l)|0)|0,s=r1(d,o,n)|0,r=We(n)|0,e[v>>2]=r,u=0,u1(1,d|0,s|0,o|0,c|0,h|0,m|0,v|0),o=u,u=0,o&1)E=R()|0,ne(r)|0,B(E|0);else return ne(r)|0,e[a>>2]=e[t>>2],y=e[h>>2]|0,E=e[m>>2]|0,e[l>>2]=e[a>>2],E=Li(l,c,y,E,n,f)|0,C=g,E|0;return 0}function pp(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=+s;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0;x=C,C=C+176|0,P=x+84|0,v=x+48|0,g=x+32|0,c=x+24|0,o=x+8|0,h=x,y=x+88|0,E=x+80|0,a=x+118|0,w=x+76|0,_=x+72|0,I=x+68|0,A=x+64|0,m=h,e[m>>2]=37,e[m+4>>2]=0,m=Br(h+1|0,58898,e[n+4>>2]|0)|0,e[E>>2]=y,r=g2()|0,m?(e[o>>2]=e[n+8>>2],t0[o+8>>3]=s,o=N2(y,30,r,h,o)|0):(t0[c>>3]=s,o=N2(y,30,r,h,c)|0);e:do if((o|0)>29){u=0,r=Te(3)|0,o=u,u=0,o=o&1,m?!o&&(u=0,e[g>>2]=e[n+8>>2],t0[g+8>>3]=s,l=Me(17,E|0,r|0,h|0,g|0)|0,d=u,u=0,!(d&1))&&(M=12):!o&&(u=0,e[v>>2]=e[n+8>>2],t0[v+8>>3]=s,d=Me(17,E|0,r|0,h|0,v|0)|0,v=u,u=0,!(v&1))&&(l=d,M=12);do if((M|0)==12){if(r=e[E>>2]|0,r)o=r;else{if(u=0,be(6),d=u,u=0,d&1)break;o=e[E>>2]|0}r=o,h=o,M=16;break e}while(0);r=R()|0}else r=e[E>>2]|0,h=0,l=o,M=16;while(0);if((M|0)==16){c=r+l|0,m=r1(r,c,n)|0;do if((r|0)==(y|0))r=y,o=0,M=22;else{if(l=S2(l<<1)|0,!l){if(u=0,be(6),M=u,u=0,M&1){o=0,M=20;break}r=e[E>>2]|0}o=l,a=l,M=22}while(0);do if((M|0)==22)if(u=0,l=W(68,n|0)|0,E=u,u=0,E&1)M=20;else{if(e[I>>2]=l,u=0,u1(2,r|0,m|0,c|0,a|0,w|0,_|0,I|0),I=u,u=0,I&1){r=R()|0,ne(l)|0;break}if(ne(l)|0,e[A>>2]=e[t>>2],M=e[w>>2]|0,r=e[_>>2]|0,u=0,e[P>>2]=e[A>>2],r=N1(39,P|0,a|0,M|0,r|0,n|0,f|0)|0,M=u,u=0,M&1)M=20;else return e[t>>2]=r,o&&ye(o),h&&ye(h),C=x,r|0}while(0);(M|0)==20&&(r=R()|0),o&&ye(o),h&&ye(h)}return B(r|0),0}function Br(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0;if(n&2048&&(p[r>>0]=43,r=r+1|0),n&1024&&(p[r>>0]=35,r=r+1|0),l=n&260,s=n>>>14,a=(l|0)==260,a?o=0:(p[r>>0]=46,p[r+1>>0]=42,r=r+2|0,o=1),n=p[t>>0]|0,n<<24>>24)for(f=r;t=t+1|0,r=f+1|0,p[f>>0]=n,n=p[t>>0]|0,n<<24>>24;)f=r;e:do switch(l|0){case 4:if(s&1){p[r>>0]=70;break e}else{p[r>>0]=102;break e}case 256:if(s&1){p[r>>0]=69;break e}else{p[r>>0]=101;break e}default:if(n=(s&1|0)!=0,a)if(n){p[r>>0]=65;break e}else{p[r>>0]=97;break e}else if(n){p[r>>0]=71;break e}else{p[r>>0]=103;break e}}while(0);return o|0}function gp(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0;switch(x=C,C=C+16|0,M=x,w=I2(l,44220)|0,A=I2(l,44360)|0,Ae[e[(e[A>>2]|0)+20>>2]&127](M,A),e[o>>2]=f,l=p[r>>0]|0,l<<24>>24){case 43:case 45:{u=0,l=c0(e[(e[w>>2]|0)+28>>2]|0,w|0,l|0)|0,_=u,u=0,_&1?I=8:(h=e[o>>2]|0,e[o>>2]=h+1,p[h>>0]=l,h=r+1|0,I=10);break}default:h=r,I=10}e:do if((I|0)==10){_=n;i:do if((_-h|0)>1&&(p[h>>0]|0)==48){switch(c=h+1|0,p[c>>0]|0){case 88:case 120:break;default:{I=11;break i}}if(u=0,l=c0(e[(e[w>>2]|0)+28>>2]|0,w|0,48)|0,P=u,u=0,P&1){I=8;break e}if(P=e[o>>2]|0,e[o>>2]=P+1,p[P>>0]=l,h=h+2|0,u=0,l=c0(e[(e[w>>2]|0)+28>>2]|0,w|0,p[c>>0]|0)|0,P=u,u=0,P&1){I=8;break e}if(P=e[o>>2]|0,e[o>>2]=P+1,p[P>>0]=l,h>>>0>>0){for(l=h;c=p[l>>0]|0,u=0,m=Te(3)|0,P=u,u=0,!(P&1||(u=0,c=c0(39,c<<24>>24|0,m|0)|0,P=u,u=0,P&1));){if(!c){P=h;break i}if(l=l+1|0,l>>>0>=n>>>0){P=h;break i}}l=R()|0;break e}else P=h,l=h}else I=11;while(0);i:do if((I|0)==11)if(h>>>0>>0){for(l=h;c=p[l>>0]|0,u=0,m=Te(3)|0,P=u,u=0,!(P&1||(u=0,c=c0(40,c<<24>>24|0,m|0)|0,P=u,u=0,P&1));){if(!c){P=h;break i}if(l=l+1|0,l>>>0>=n>>>0){P=h;break i}}l=R()|0;break e}else P=h,l=h;while(0);if(y=p[M>>0]|0,E=M+4|0,(y&1?e[E>>2]|0:(y&255)>>>1)|0){if((P|0)!=(l|0)&&(g=l+-1|0,P>>>0>>0)){m=P,c=g;do y=p[m>>0]|0,p[m>>0]=p[c>>0]|0,p[c>>0]=y,m=m+1|0,c=c+-1|0;while(m>>>0>>0)}if(u=0,g=W(e[(e[A>>2]|0)+16>>2]|0,A|0)|0,y=u,u=0,y&1){I=8;break}v=M+8|0,d=M+1|0;i:do if(P>>>0>>0){for(c=0,m=0,y=P;h=p[(p[M>>0]&1?e[v>>2]|0:d)+m>>0]|0,h<<24>>24>0&(c|0)==(h<<24>>24|0)?(c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=g,c=p[M>>0]|0,h=0,m=(m>>>0<((c&1?e[E>>2]|0:(c&255)>>>1)+-1|0)>>>0&1)+m|0):h=c,u=0,c=c0(e[(e[w>>2]|0)+28>>2]|0,w|0,p[y>>0]|0)|0,U=u,u=0,!(U&1);){if(U=e[o>>2]|0,e[o>>2]=U+1,p[U>>0]=c,y=y+1|0,y>>>0>=l>>>0)break i;c=h+1|0}l=R()|0;break e}while(0);if(c=f+(P-r)|0,m=e[o>>2]|0,(c|0)!=(m|0)&&(a=m+-1|0,c>>>0>>0)){do U=p[c>>0]|0,p[c>>0]=p[a>>0]|0,p[a>>0]=U,c=c+1|0,a=a+-1|0;while(c>>>0>>0);c=w}else c=w}else{if(u=0,Me(e[(e[w>>2]|0)+32>>2]|0,w|0,P|0,l|0,e[o>>2]|0)|0,U=u,u=0,U&1){I=8;break}e[o>>2]=(e[o>>2]|0)+(l-P),c=w}i:do if(l>>>0>>0){for(;a=p[l>>0]|0,a<<24>>24!=46;){if(u=0,a=c0(e[(e[c>>2]|0)+28>>2]|0,w|0,a|0)|0,U=u,u=0,U&1){I=4;break}if(U=e[o>>2]|0,e[o>>2]=U+1,p[U>>0]=a,l=l+1|0,l>>>0>=n>>>0)break i}if((I|0)==4){l=R()|0;break e}if(u=0,a=W(e[(e[A>>2]|0)+12>>2]|0,A|0)|0,U=u,u=0,U&1){I=8;break e}U=e[o>>2]|0,e[o>>2]=U+1,p[U>>0]=a,l=l+1|0}while(0);if(u=0,Me(e[(e[w>>2]|0)+32>>2]|0,w|0,l|0,n|0,e[o>>2]|0)|0,U=u,u=0,U&1)I=8;else{U=(e[o>>2]|0)+(_-l)|0,e[o>>2]=U,e[s>>2]=(t|0)==(n|0)?U:f+(t-r)|0,V(M),C=x;return}}while(0);(I|0)==8&&(l=R()|0),V(M),B(l|0)}function vp(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=+s;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0;x=C,C=C+176|0,P=x+76|0,v=x+48|0,g=x+32|0,c=x+24|0,o=x+8|0,h=x,y=x+80|0,E=x+72|0,a=x+110|0,w=x+68|0,_=x+64|0,I=x+60|0,A=x+56|0,m=h,e[m>>2]=37,e[m+4>>2]=0,m=Br(h+1|0,58899,e[n+4>>2]|0)|0,e[E>>2]=y,r=g2()|0,m?(e[o>>2]=e[n+8>>2],t0[o+8>>3]=s,o=N2(y,30,r,h,o)|0):(t0[c>>3]=s,o=N2(y,30,r,h,c)|0);e:do if((o|0)>29){u=0,r=Te(3)|0,o=u,u=0,o=o&1,m?!o&&(u=0,e[g>>2]=e[n+8>>2],t0[g+8>>3]=s,l=Me(17,E|0,r|0,h|0,g|0)|0,d=u,u=0,!(d&1))&&(M=12):!o&&(u=0,t0[v>>3]=s,d=Me(17,E|0,r|0,h|0,v|0)|0,v=u,u=0,!(v&1))&&(l=d,M=12);do if((M|0)==12){if(r=e[E>>2]|0,r)o=r;else{if(u=0,be(6),d=u,u=0,d&1)break;o=e[E>>2]|0}r=o,h=o,M=16;break e}while(0);r=R()|0}else r=e[E>>2]|0,h=0,l=o,M=16;while(0);if((M|0)==16){c=r+l|0,m=r1(r,c,n)|0;do if((r|0)==(y|0))r=y,o=0,M=22;else{if(l=S2(l<<1)|0,!l){if(u=0,be(6),M=u,u=0,M&1){o=0,M=20;break}r=e[E>>2]|0}o=l,a=l,M=22}while(0);do if((M|0)==22)if(u=0,l=W(68,n|0)|0,E=u,u=0,E&1)M=20;else{if(e[I>>2]=l,u=0,u1(2,r|0,m|0,c|0,a|0,w|0,_|0,I|0),I=u,u=0,I&1){r=R()|0,ne(l)|0;break}if(ne(l)|0,e[A>>2]=e[t>>2],M=e[w>>2]|0,r=e[_>>2]|0,u=0,e[P>>2]=e[A>>2],r=N1(39,P|0,a|0,M|0,r|0,n|0,f|0)|0,M=u,u=0,M&1)M=20;else return e[t>>2]=r,o&&ye(o),h&&ye(h),C=x,r|0}while(0);(M|0)==20&&(r=R()|0),o&&ye(o),h&&ye(h)}return B(r|0),0}function dp(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;if(v=C,C=C+80|0,c=v,r=v+70|0,h=v+12|0,g=v+32|0,a=v+8|0,m=v+4|0,p[r>>0]=p[58901]|0,p[r+1>>0]=p[58902]|0,p[r+2>>0]=p[58903]|0,p[r+3>>0]=p[58904]|0,p[r+4>>0]=p[58905]|0,p[r+5>>0]=p[58906]|0,o=g2()|0,e[c>>2]=s,r=N2(h,20,o,r,c)|0,s=h+r|0,o=r1(h,s,n)|0,l=We(n)|0,e[a>>2]=l,u=0,a=c0(37,a|0,44220)|0,d=u,u=0,d&1)d=R()|0,ne(l)|0,B(d|0);else return ne(l)|0,ff[e[(e[a>>2]|0)+32>>2]&31](a,h,s,g)|0,d=g+r|0,e[m>>2]=e[t>>2],e[c>>2]=e[m>>2],d=Li(c,g,(o|0)==(s|0)?d:g+(o-h)|0,d,n,f)|0,C=v,d|0;return 0}function kp(r){r=r|0}function _p(r){r=r|0,H(r)}function Tp(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0;m=C,C=C+32|0,o=m+20|0,l=m+16|0,a=m+12|0,c=m;e:do if(!(e[n+4>>2]&1))c=e[(e[r>>2]|0)+24>>2]|0,e[l>>2]=e[t>>2],e[o>>2]=e[l>>2],o=ur[c&31](r,o,n,f,s&1)|0;else{o=We(n)|0,e[a>>2]=o,u=0,l=c0(37,a|0,44368)|0,a=u,u=0;i:do if(a&1)m=R()|0,ne(o)|0,o=m;else{ne(o)|0,o=e[l>>2]|0,s?Ae[e[o+24>>2]&127](c,l):Ae[e[o+28>>2]&127](c,l),r=p[c>>0]|0,n=(r&1)==0,o=c+4|0,s=c+8|0,a=n?o:c+4|0,o=n?o:e[c+8>>2]|0,n=(r&1)==0;r:do if((o|0)!=((n?a:e[s>>2]|0)+((n?(r&255)>>>1:e[a>>2]|0)<<2)|0)){for(;;){if(l=e[o>>2]|0,f=e[t>>2]|0,f){if(n=f+24|0,r=e[n>>2]|0,(r|0)==(e[f+28>>2]|0)){if(u=0,l=c0(e[(e[f>>2]|0)+52>>2]|0,f|0,l|0)|0,r=u,u=0,r&1)break}else e[n>>2]=r+4,e[r>>2]=l;(l|0)==-1&&(e[t>>2]=0)}if(o=o+4|0,r=p[c>>0]|0,n=(r&1)==0,(o|0)==((n?a:e[s>>2]|0)+((n?(r&255)>>>1:e[a>>2]|0)<<2)|0))break r}o=R()|0,b0(c);break i}while(0);o=e[t>>2]|0,b0(c);break e}while(0);B(o|0)}while(0);return C=m,o|0}function wp(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;if(h=C,C=C+128|0,o=h,v=h+116|0,d=h+104|0,a=h+20|0,m=h+16|0,c=h+12|0,g=h+8|0,l=h+4|0,p[v>>0]=p[58887]|0,p[v+1>>0]=p[58888]|0,p[v+2>>0]=p[58889]|0,p[v+3>>0]=p[58890]|0,p[v+4>>0]=p[58891]|0,p[v+5>>0]=p[58892]|0,Z1(v+1|0,58893,1,e[n+4>>2]|0),r=g2()|0,e[o>>2]=s,s=d+(N2(d,12,r,v,o)|0)|0,v=r1(d,s,n)|0,r=We(n)|0,e[g>>2]=r,u=0,u1(3,d|0,v|0,s|0,a|0,m|0,c|0,g|0),s=u,u=0,s&1)d=R()|0,ne(r)|0,B(d|0);else return ne(r)|0,e[l>>2]=e[t>>2],v=e[m>>2]|0,d=e[c>>2]|0,e[o>>2]=e[l>>2],d=Mi(o,a,v,d,n,f)|0,C=h,d|0;return 0}function Cp(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0;I=C,C=C+16|0,A=I,E=I2(l,44212)|0,m=I2(l,44368)|0,Ae[e[(e[m>>2]|0)+20>>2]&127](A,m),d=p[A>>0]|0,y=A+4|0;e:do if(!((d&1?e[y>>2]|0:(d&255)>>>1)|0))u=0,Me(e[(e[E>>2]|0)+48>>2]|0,E|0,r|0,n|0,f|0)|0,P=u,u=0,P&1?P=5:(l=f+(n-r<<2)|0,e[o>>2]=l,P=28);else{switch(e[o>>2]=f,l=p[r>>0]|0,l<<24>>24){case 43:case 45:{if(u=0,l=c0(e[(e[E>>2]|0)+44>>2]|0,E|0,l|0)|0,d=u,u=0,d&1){P=5;break e}c=e[o>>2]|0,e[o>>2]=c+4,e[c>>2]=l,c=r+1|0;break}default:c=r}i:do if((n-c|0)>1&&(p[c>>0]|0)==48){switch(l=c+1|0,p[l>>0]|0){case 88:case 120:break;default:{d=c;break i}}if(u=0,a=c0(e[(e[E>>2]|0)+44>>2]|0,E|0,48)|0,d=u,u=0,d&1){P=5;break e}if(d=e[o>>2]|0,e[o>>2]=d+4,e[d>>2]=a,u=0,l=c0(e[(e[E>>2]|0)+44>>2]|0,E|0,p[l>>0]|0)|0,d=u,u=0,d&1){P=5;break e}d=e[o>>2]|0,e[o>>2]=d+4,e[d>>2]=l,d=c+2|0}else d=c;while(0);if((d|0)!=(n|0)&&(h=n+-1|0,d>>>0>>0)){a=d,l=h;do v=p[a>>0]|0,p[a>>0]=p[l>>0]|0,p[l>>0]=v,a=a+1|0,l=l+-1|0;while(a>>>0>>0)}if(u=0,m=W(e[(e[m>>2]|0)+16>>2]|0,m|0)|0,v=u,u=0,v&1)P=5;else{h=A+8|0,g=A+1|0;i:do if(d>>>0>>0){for(l=0,a=0,v=d;c=p[(p[A>>0]&1?e[h>>2]|0:g)+a>>0]|0,c<<24>>24!=0&(l|0)==(c<<24>>24|0)?(l=e[o>>2]|0,e[o>>2]=l+4,e[l>>2]=m,l=p[A>>0]|0,c=0,a=(a>>>0<((l&1?e[y>>2]|0:(l&255)>>>1)+-1|0)>>>0&1)+a|0):c=l,u=0,l=c0(e[(e[E>>2]|0)+44>>2]|0,E|0,p[v>>0]|0)|0,_=u,u=0,!(_&1);){if(_=e[o>>2]|0,e[o>>2]=_+4,e[_>>2]=l,v=v+1|0,v>>>0>=n>>>0)break i;l=c+1|0}l=R()|0;break e}while(0);if(c=r,l=f+(d-c<<2)|0,a=e[o>>2]|0,(l|0)!=(a|0))if(r=a+-4|0,l>>>0>>0){do _=e[l>>2]|0,e[l>>2]=e[r>>2],e[r>>2]=_,l=l+4|0,r=r+-4|0;while(l>>>0>>0);r=c,l=a,P=28}else r=c,l=a,P=28;else r=c,P=28}}while(0);if((P|0)==5)l=R()|0;else if((P|0)==28){e[s>>2]=(t|0)==(n|0)?l:f+(t-r<<2)|0,V(A),C=I;return}V(A),B(l|0)}function Ap(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;if(g=C,C=C+224|0,l=g+8|0,r=g,d=g+196|0,c=g+32|0,h=g+28|0,m=g+24|0,v=g+20|0,a=g+16|0,y=r,e[y>>2]=37,e[y+4>>2]=0,Z1(r+1|0,58895,1,e[n+4>>2]|0),y=g2()|0,E=l,e[E>>2]=s,e[E+4>>2]=o,o=d+(N2(d,22,y,r,l)|0)|0,s=r1(d,o,n)|0,r=We(n)|0,e[v>>2]=r,u=0,u1(3,d|0,s|0,o|0,c|0,h|0,m|0,v|0),o=u,u=0,o&1)E=R()|0,ne(r)|0,B(E|0);else return ne(r)|0,e[a>>2]=e[t>>2],y=e[h>>2]|0,E=e[m>>2]|0,e[l>>2]=e[a>>2],E=Mi(l,c,y,E,n,f)|0,C=g,E|0;return 0}function Dp(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0;P=C,C=C+16|0,y=P,v=P+8|0;e:do if((n|0)==(f|0))c=f;else for(c=n;;){if(!(e[c>>2]|0))break e;if(c=c+4|0,(c|0)==(f|0)){c=f;break}}while(0);e[a>>2]=o,e[s>>2]=n,h=l,d=r+8|0;e:do if((o|0)==(l|0)|(n|0)==(f|0))I=47;else{r=o,m=c;i:for(;;){if(A=t,o=e[A+4>>2]|0,c=y,e[c>>2]=e[A>>2],e[c+4>>2]=o,c=s1(e[d>>2]|0)|0,u=0,o=Rr(21,r|0,s|0,m-n>>2|0,h-r|0,t|0)|0,A=u,u=0,A&1){I=9;break}if(c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)){I=8;break}switch(o|0){case 0:{g=1;break e}case-1:{c=r,I=14;break i}default:}if(c=(e[a>>2]|0)+o|0,e[a>>2]=c,(c|0)==(l|0)){I=27;break}if((m|0)==(f|0))n=e[s>>2]|0,r=c,c=f;else{if(c=s1(e[d>>2]|0)|0,u=0,n=ee(34,v|0,0,t|0)|0,A=u,u=0,A&1){I=35;break}if(c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)){I=34;break}if((n|0)==-1){g=2;break e}if(n>>>0>(h-(e[a>>2]|0)|0)>>>0){g=1;break e}if(n)for(c=v;m=p[c>>0]|0,A=e[a>>2]|0,e[a>>2]=A+1,p[A>>0]=m,n=n+-1|0,n;)c=c+1|0;n=(e[s>>2]|0)+4|0,e[s>>2]=n;r:do if((n|0)==(f|0))c=f;else for(c=n;;){if(!(e[c>>2]|0))break r;if(c=c+4|0,(c|0)==(f|0)){c=f;break}}while(0);r=e[a>>2]|0}if((r|0)==(l|0)|(n|0)==(f|0)){I=47;break e}else m=c}if((I|0)==8)A=R(0)|0,ie(A);else if((I|0)==9)n=R()|0,c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)&&(A=R(0)|0,ie(A)),B(n|0);else if((I|0)==14){e[a>>2]=c;i:do if((n|0)!=(e[s>>2]|0)){for(;;){if(A=e[n>>2]|0,r=s1(e[d>>2]|0)|0,u=0,c=ee(34,c|0,A|0,y|0)|0,A=u,u=0,A&1){E=r;break}if(r|0&&(u=0,W(75,r|0)|0,A=u,u=0,A&1)){I=18;break}if((c|0)==-1||(c=(e[a>>2]|0)+c|0,e[a>>2]=c,n=n+4|0,(n|0)==(e[s>>2]|0)))break i}(I|0)==18&&(A=R(0)|0,ie(A)),n=R()|0,E|0&&(u=0,W(75,E|0)|0,A=u,u=0,A&1)&&(A=R(0)|0,ie(A)),B(n|0)}while(0);e[s>>2]=n,g=2;break}else if((I|0)==27){n=e[s>>2]|0,I=47;break}else(I|0)==34?(A=R(0)|0,ie(A)):(I|0)==35&&(n=R()|0,c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)&&(A=R(0)|0,ie(A)),B(n|0))}while(0);return(I|0)==47&&(g=(n|0)!=(f|0)&1),C=P,g|0}function yp(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0;P=C,C=C+16|0,E=P;e:do if((n|0)==(f|0))c=f;else for(c=n;;){if(!(p[c>>0]|0))break e;if(c=c+1|0,(c|0)==(f|0)){c=f;break}}while(0);e[a>>2]=o,e[s>>2]=n,g=l,d=r+8|0;e:do if((o|0)==(l|0)|(n|0)==(f|0))I=47;else{r=o,h=c;i:for(;;){if(m=t,c=e[m+4>>2]|0,o=E,e[o>>2]=e[m>>2],e[o+4>>2]=c,o=h,c=s1(e[d>>2]|0)|0,u=0,m=Rr(22,r|0,s|0,o-n|0,g-r>>2|0,t|0)|0,A=u,u=0,A&1){I=9;break}if(c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)){I=8;break}switch(m|0){case 0:{v=2;break e}case-1:{c=r,I=14;break i}default:}if(r=(e[a>>2]|0)+(m<<2)|0,e[a>>2]=r,(r|0)==(l|0)){I=31;break}if(n=e[s>>2]|0,(h|0)==(f|0))c=f;else{if(c=s1(e[d>>2]|0)|0,u=0,n=Me(20,r|0,n|0,1,t|0)|0,A=u,u=0,A&1){I=38;break}if(c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)){I=37;break}if(n){v=2;break e}e[a>>2]=(e[a>>2]|0)+4,n=(e[s>>2]|0)+1|0,e[s>>2]=n;r:do if((n|0)==(f|0))c=f;else for(c=n;;){if(!(p[c>>0]|0))break r;if(c=c+1|0,(c|0)==(f|0)){c=f;break}}while(0);r=e[a>>2]|0}if((r|0)==(l|0)|(n|0)==(f|0)){I=47;break e}else h=c}if((I|0)==8)A=R(0)|0,ie(A);else if((I|0)==9)n=R()|0,c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)&&(A=R(0)|0,ie(A)),B(n|0);else if((I|0)==14){e[a>>2]=c;i:do if((n|0)!=(e[s>>2]|0)){r=c;r:for(;;){if(c=s1(e[d>>2]|0)|0,u=0,r=Me(20,r|0,n|0,o-n|0,E|0)|0,A=u,u=0,A&1){I=19;break}if(c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)){I=18;break}switch(r|0){case-1:{I=25;break r}case-2:{I=26;break r}case 0:{n=n+1|0;break}default:n=n+r|0}if(r=(e[a>>2]|0)+4|0,e[a>>2]=r,(n|0)==(e[s>>2]|0)){y=n;break i}}if((I|0)==18)A=R(0)|0,ie(A);else if((I|0)==19)n=R()|0,c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)&&(A=R(0)|0,ie(A)),B(n|0);else if((I|0)==25){e[s>>2]=n,v=2;break e}else if((I|0)==26){e[s>>2]=n,v=1;break e}}else y=n;while(0);e[s>>2]=y,v=(y|0)!=(f|0)&1;break}else if((I|0)==31){n=e[s>>2]|0,I=47;break}else(I|0)==37?(A=R(0)|0,ie(A)):(I|0)==38&&(n=R()|0,c|0&&(u=0,W(75,c|0)|0,A=u,u=0,A&1)&&(A=R(0)|0,ie(A)),B(n|0))}while(0);return(I|0)==47&&(v=(n|0)!=(f|0)&1),C=P,v|0}function Ip(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0;switch(l=C,C=C+16|0,o=l,e[s>>2]=n,n=s1(e[r+8>>2]|0)|0,u=0,r=ee(34,o|0,0,t|0)|0,t=u,u=0,t&1&&(o=R()|0,n|0&&(u=0,W(75,n|0)|0,l=u,u=0,l&1)&&(l=R(0)|0,ie(l)),B(o|0)),n|0&&(u=0,W(75,n|0)|0,t=u,u=0,t&1)&&(t=R(0)|0,ie(t)),r|0){case 0:case-1:{o=2;break}default:if(r=r+-1|0,r>>>0<=(f-(e[s>>2]|0)|0)>>>0)if(!r)o=0;else for(;;)if(t=p[o>>0]|0,f=e[s>>2]|0,e[s>>2]=f+1,p[f>>0]=t,r=r+-1|0,r)o=o+1|0;else{o=0;break}else o=1}return C=l,o|0}function Ep(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0;t=r+8|0,u=0,n=W(75,e[t>>2]|0)|0,f=u,u=0;do if(f&1)s=16;else{if(u=0,f=ee(35,0,0,4)|0,r=u,u=0,r&1){if(r=R(0)|0,!n||(u=0,W(75,n|0)|0,l=u,u=0,!(l&1)))break;l=R(0)|0,ie(l)}if(n|0&&(u=0,W(75,n|0)|0,l=u,u=0,l&1)&&(l=R(0)|0,ie(l)),f)o=-1;else if(r=e[t>>2]|0,r){if(u=0,r=W(75,r|0)|0,l=u,u=0,l&1){s=16;break}r|0&&(u=0,W(75,r|0)|0,l=u,u=0,l&1)?(l=R(0)|0,ie(l)):o=0}else o=1;return o|0}while(0);return(s|0)==16&&(r=R(0)|0),ie(r),0}function Pp(r){return r=r|0,0}function Lp(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0;m=f,c=r+8|0;e:do if((n|0)==(f|0)|(s|0)==0)r=0;else{for(r=0,a=0;;){if(l=s1(e[c>>2]|0)|0,u=0,o=ee(36,n|0,m-n|0,t|0)|0,v=u,u=0,v&1){g=l;break}if(l|0&&(u=0,W(75,l|0)|0,v=u,u=0,v&1)){h=5;break}switch(o|0){case-2:case-1:break e;case 0:{n=n+1|0,o=1;break}default:n=n+o|0}if(r=o+r|0,a=a+1|0,(n|0)==(f|0)|a>>>0>=s>>>0)break e}(h|0)==5&&(v=R(0)|0,ie(v)),r=R()|0,g|0&&(u=0,W(75,g|0)|0,v=u,u=0,v&1)&&(v=R(0)|0,ie(v)),B(r|0)}while(0);return r|0}function Rp(r){r=r|0;var t=0,n=0;return r=e[r+8>>2]|0,r?(u=0,r=W(75,r|0)|0,n=u,u=0,n&1&&(n=R(0)|0,ie(n)),r|0&&(u=0,W(75,r|0)|0,n=u,u=0,n&1)?(n=R(0)|0,ie(n)):t=4):t=1,t|0}function Fp(r){r=r|0,H(r)}function Op(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0;return r=C,C=C+16|0,c=r+4|0,t=r,e[c>>2]=n,e[t>>2]=o,l=Iv(n,f,c,o,l,t,1114111,0)|0,e[s>>2]=e[c>>2],e[a>>2]=e[t>>2],C=r,l|0}function xp(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0;return r=C,C=C+16|0,c=r+4|0,t=r,e[c>>2]=n,e[t>>2]=o,l=Ev(n,f,c,o,l,t,1114111,0)|0,e[s>>2]=e[c>>2],e[a>>2]=e[t>>2],C=r,l|0}function Mp(r,t,n,f,s){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,e[s>>2]=n,3}function qp(r){return r=r|0,0}function Np(r){return r=r|0,0}function Up(r,t,n,f,s){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,Pv(n,f,s,1114111,0)|0}function Bp(r){return r=r|0,4}function Qp(r){r=r|0,H(r)}function Gp(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0;return r=C,C=C+16|0,c=r+4|0,t=r,e[c>>2]=n,e[t>>2]=o,l=Lv(n,f,c,o,l,t,1114111,0)|0,e[s>>2]=e[c>>2],e[a>>2]=e[t>>2],C=r,l|0}function Hp(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0;return r=C,C=C+16|0,c=r+4|0,t=r,e[c>>2]=n,e[t>>2]=o,l=Rv(n,f,c,o,l,t,1114111,0)|0,e[s>>2]=e[c>>2],e[a>>2]=e[t>>2],C=r,l|0}function Vp(r,t,n,f,s){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,e[s>>2]=n,3}function zp(r){return r=r|0,0}function Yp(r){return r=r|0,0}function Xp(r,t,n,f,s){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,Fv(n,f,s,1114111,0)|0}function jp(r){return r=r|0,4}function Wp(r){r=r|0,H(r)}function Zp(r){r=r|0,H(r)}function Kp(r,t){r=r|0,t=t|0,e[r+4>>2]=t+-1,e[r>>2]=44384,p[r+8>>0]=46,p[r+9>>0]=44,r=r+12|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Jp(r,t){r=r|0,t=t|0,e[r+4>>2]=t+-1,e[r>>2]=44424,e[r+8>>2]=46,e[r+12>>2]=44,r=r+16|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function qo(r){r=r|0,e[r>>2]=44384,V(r+12|0)}function $p(r){r=r|0,qo(r),H(r)}function No(r){r=r|0,e[r>>2]=44424,V(r+16|0)}function bp(r){r=r|0,No(r),H(r)}function eg(r){return r=r|0,p[r+8>>0]|0}function ig(r){return r=r|0,e[r+8>>2]|0}function rg(r){return r=r|0,p[r+9>>0]|0}function tg(r){return r=r|0,e[r+12>>2]|0}function ng(r,t){r=r|0,t=t|0,qn(r,t+12|0)}function fg(r,t){r=r|0,t=t|0,qn(r,t+16|0)}function sg(r,t){r=r|0,t=t|0,G1(r,59024,4)}function og(r,t){r=r|0,t=t|0,Bn(r,44996,tt(44996)|0)}function lg(r,t){r=r|0,t=t|0,G1(r,59029,5)}function ug(r,t){r=r|0,t=t|0,Bn(r,45016,tt(45016)|0)}function a1(r){switch(r=r|0,e[r+4>>2]&74|0){case 64:{r=8;break}case 8:{r=16;break}case 0:{r=0;break}default:r=10}return r|0}function ag(r){r=r|0;do if(!(p[2464]|0)&&Y0(2464)|0){if(!(p[2472]|0)&&Y0(2472)|0){r=45040;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=45208);j0(193,0,l0|0)|0,X0(2472)}if(u=0,c0(41,45040,59035)|0,r=u,u=0,!(r&1)&&(u=0,c0(41,45052,59042)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45064,59049)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45076,59057)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45088,59067)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45100,59076)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45112,59083)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45124,59092)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45136,59096)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45148,59100)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45160,59104)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45172,59108)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45184,59112)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45196,59116)|0,r=u,u=0,!(r&1))){e[11302]=45040,X0(2464);break}r=R()|0,U2(2464),B(r|0)}while(0);return e[11302]|0}function cg(r){r=r|0;do if(!(p[2480]|0)&&Y0(2480)|0){if(!(p[2488]|0)&&Y0(2488)|0){r=45212;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=45380);j0(194,0,l0|0)|0,X0(2488)}if(u=0,c0(42,45212,45380)|0,r=u,u=0,!(r&1)&&(u=0,c0(42,45224,45408)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45236,45436)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45248,45468)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45260,45508)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45272,45544)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45284,45572)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45296,45608)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45308,45624)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45320,45640)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45332,45656)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45344,45672)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45356,45688)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,45368,45704)|0,r=u,u=0,!(r&1))){e[11430]=45212,X0(2480);break}r=R()|0,U2(2480),B(r|0)}while(0);return e[11430]|0}function hg(r){r=r|0;e:do if(!(p[2496]|0)&&Y0(2496)|0){if(!(p[2504]|0)&&Y0(2504)|0){r=45724;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=46012);j0(195,0,l0|0)|0,X0(2504)}u=0,c0(41,45724,59120)|0,r=u,u=0;do if(!(r&1)&&(u=0,c0(41,45736,59128)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45748,59137)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45760,59143)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45772,59149)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45784,59153)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45796,59158)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45808,59163)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45820,59170)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45832,59180)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45844,59188)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45856,59197)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45868,59206)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45880,59210)|0,r=u,u=0,!(r&1))&&(u=0,c0(41,45892,59214)|0,r=u,u=0,!(r&1))){if(u=0,c0(41,45904,59218)|0,r=u,u=0,r&1||(u=0,c0(41,45916,59149)|0,r=u,u=0,r&1)||(u=0,c0(41,45928,59222)|0,r=u,u=0,r&1)||(u=0,c0(41,45940,59226)|0,r=u,u=0,r&1)||(u=0,c0(41,45952,59230)|0,r=u,u=0,r&1)||(u=0,c0(41,45964,59234)|0,r=u,u=0,r&1)||(u=0,c0(41,45976,59238)|0,r=u,u=0,r&1)||(u=0,c0(41,45988,59242)|0,r=u,u=0,r&1)||(u=0,c0(41,46e3,59246)|0,r=u,u=0,r&1))break;e[11503]=45724,X0(2496);break e}while(0);r=R()|0,U2(2496),B(r|0)}while(0);return e[11503]|0}function Sg(r){r=r|0;e:do if(!(p[2512]|0)&&Y0(2512)|0){if(!(p[2520]|0)&&Y0(2520)|0){r=46016;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=46304);j0(196,0,l0|0)|0,X0(2520)}u=0,c0(42,46016,46304)|0,r=u,u=0;do if(!(r&1)&&(u=0,c0(42,46028,46336)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46040,46372)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46052,46396)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46064,46420)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46076,46436)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46088,46456)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46100,46476)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46112,46504)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46124,46544)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46136,46576)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46148,46612)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46160,46648)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46172,46664)|0,r=u,u=0,!(r&1))&&(u=0,c0(42,46184,46680)|0,r=u,u=0,!(r&1))){if(u=0,c0(42,46196,46696)|0,r=u,u=0,r&1||(u=0,c0(42,46208,46420)|0,r=u,u=0,r&1)||(u=0,c0(42,46220,46712)|0,r=u,u=0,r&1)||(u=0,c0(42,46232,46728)|0,r=u,u=0,r&1)||(u=0,c0(42,46244,46744)|0,r=u,u=0,r&1)||(u=0,c0(42,46256,46760)|0,r=u,u=0,r&1)||(u=0,c0(42,46268,46776)|0,r=u,u=0,r&1)||(u=0,c0(42,46280,46792)|0,r=u,u=0,r&1)||(u=0,c0(42,46292,46808)|0,r=u,u=0,r&1))break;e[11706]=46016,X0(2512);break e}while(0);r=R()|0,U2(2512),B(r|0)}while(0);return e[11706]|0}function mg(r){r=r|0;do if(!(p[2528]|0)&&Y0(2528)|0){if(!(p[2536]|0)&&Y0(2536)|0){r=46828;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=47116);j0(197,0,l0|0)|0,X0(2536)}if(u=0,c0(41,46828,59250)|0,r=u,u=0,!(r&1)&&(u=0,c0(41,46840,59253)|0,r=u,u=0,!(r&1))){e[11779]=46828,X0(2528);break}r=R()|0,U2(2528),B(r|0)}while(0);return e[11779]|0}function pg(r){r=r|0;do if(!(p[2544]|0)&&Y0(2544)|0){if(!(p[2552]|0)&&Y0(2552)|0){r=47120;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=47408);j0(198,0,l0|0)|0,X0(2552)}if(u=0,c0(42,47120,47408)|0,r=u,u=0,!(r&1)&&(u=0,c0(42,47132,47420)|0,r=u,u=0,!(r&1))){e[11858]=47120,X0(2544);break}r=R()|0,U2(2544),B(r|0)}while(0);return e[11858]|0}function gg(r){r=r|0;do if(!(p[2560]|0)&&Y0(2560)|0)if(u=0,u0(5,47436,59256,8),r=u,u=0,r&1)r=R()|0,U2(2560),B(r|0);else{j0(199,47436,l0|0)|0,X0(2560);break}while(0);return 47436}function vg(r){r=r|0;var t=0;do if(!(p[2568]|0)&&Y0(2568)|0){if(u=0,r=W(76,47448)|0,t=u,u=0,!(t&1)&&(u=0,u0(15,47484,47448,r|0),t=u,u=0,!(t&1))){j0(200,47484,l0|0)|0,X0(2568);break}t=R()|0,U2(2568),B(t|0)}while(0);return 47484}function dg(r){r=r|0;do if(!(p[2576]|0)&&Y0(2576)|0)if(u=0,u0(5,47496,59265,8),r=u,u=0,r&1)r=R()|0,U2(2576),B(r|0);else{j0(199,47496,l0|0)|0,X0(2576);break}while(0);return 47496}function kg(r){r=r|0;var t=0;do if(!(p[2584]|0)&&Y0(2584)|0){if(u=0,r=W(76,47508)|0,t=u,u=0,!(t&1)&&(u=0,u0(15,47544,47508,r|0),t=u,u=0,!(t&1))){j0(200,47544,l0|0)|0,X0(2584);break}t=R()|0,U2(2584),B(t|0)}while(0);return 47544}function _g(r){r=r|0;do if(!(p[2592]|0)&&Y0(2592)|0)if(u=0,u0(5,47556,59274,20),r=u,u=0,r&1)r=R()|0,U2(2592),B(r|0);else{j0(199,47556,l0|0)|0,X0(2592);break}while(0);return 47556}function Tg(r){r=r|0;var t=0;do if(!(p[2600]|0)&&Y0(2600)|0){if(u=0,r=W(76,47568)|0,t=u,u=0,!(t&1)&&(u=0,u0(15,47652,47568,r|0),t=u,u=0,!(t&1))){j0(200,47652,l0|0)|0,X0(2600);break}t=R()|0,U2(2600),B(t|0)}while(0);return 47652}function wg(r){r=r|0;do if(!(p[2608]|0)&&Y0(2608)|0)if(u=0,u0(5,47664,59295,11),r=u,u=0,r&1)r=R()|0,U2(2608),B(r|0);else{j0(199,47664,l0|0)|0,X0(2608);break}while(0);return 47664}function Cg(r){r=r|0;var t=0;do if(!(p[2616]|0)&&Y0(2616)|0){if(u=0,r=W(76,47676)|0,t=u,u=0,!(t&1)&&(u=0,u0(15,47724,47676,r|0),t=u,u=0,!(t&1))){j0(200,47724,l0|0)|0,X0(2616);break}t=R()|0,U2(2616),B(t|0)}while(0);return 47724}function Uo(r){r=r|0;var t=0,n=0,f=0;e[r>>2]=44304,r=r+8|0,t=e[r>>2]|0,u=0,n=Te(3)|0,f=u,u=0;do if(!(f&1)){if((t|0)!=(n|0)&&(u=0,A0(188,e[r>>2]|0),f=u,u=0,f&1))break;return}while(0);f=R(0)|0,ie(f)}function Qr(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0;w=C,C=C+112|0,c=w,h=(f-n|0)/12|0;do if(h>>>0>100){if(c=S2(h)|0,!(c|0)&&(u=0,be(6),_=u,u=0,_&1)){a=0,d=6;break}a=c,d=11}else a=0,d=11;while(0);e:do if((d|0)==11){if((n|0)==(f|0))m=0;else for(d=n,g=0,v=c;m=p[d>>0]|0,m&1?m=e[d+4>>2]|0:m=(m&255)>>>1,m?(p[v>>0]=1,m=g):(p[v>>0]=2,m=g+1|0,h=h+-1|0),d=d+12|0,(d|0)!=(f|0);)g=m,v=v+1|0;A=(n|0)==(f|0),_=(n|0)==(f|0),I=0,y=m;i:for(;;){m=e[r>>2]|0;do if(m){if((e[m+12>>2]|0)==(e[m+16>>2]|0)){if(u=0,m=W(e[(e[m>>2]|0)+36>>2]|0,m|0)|0,P=u,u=0,P&1){d=5;break i}if((m|0)==-1){e[r>>2]=0,m=0;break}else{m=e[r>>2]|0;break}}}else m=0;while(0);if(d=(m|0)==0,g=e[t>>2]|0,g){if((e[g+12>>2]|0)==(e[g+16>>2]|0)){if(u=0,m=W(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,P=u,u=0,P&1){d=5;break}(m|0)==-1&&(e[t>>2]=0,g=0)}}else g=0;if(v=(g|0)==0,m=e[r>>2]|0,!((h|0)!=0&(d^v))){d=64;break}if(g=e[m+12>>2]|0,(g|0)==(e[m+16>>2]|0)){if(u=0,m=W(e[(e[m>>2]|0)+36>>2]|0,m|0)|0,P=u,u=0,P&1){d=5;break}}else m=z[g>>0]|0;if(m=m&255,!l&&(u=0,m=c0(e[(e[s>>2]|0)+12>>2]|0,s|0,m|0)|0,P=u,u=0,P&1)){d=5;break}if(P=I+1|0,A)m=0,d=y;else for(v=0,E=n,d=y,y=c;;){do if((p[y>>0]|0)==1){if(p[E>>0]&1?g=e[E+8>>2]|0:g=E+1|0,g=p[g+I>>0]|0,!l&&(u=0,g=c0(e[(e[s>>2]|0)+12>>2]|0,s|0,g|0)|0,x=u,u=0,x&1)){d=4;break i}if(m<<24>>24!=g<<24>>24){p[y>>0]=0,g=v,h=h+-1|0;break}g=p[E>>0]|0,g&1?g=e[E+4>>2]|0:g=(g&255)>>>1,(g|0)==(P|0)?(p[y>>0]=2,g=1,d=d+1|0,h=h+-1|0):g=1}else g=v;while(0);if(E=E+12|0,(E|0)==(f|0)){m=g;break}else v=g,y=y+1|0}if(!m){I=P,y=d;continue}if(m=e[r>>2]|0,g=m+12|0,v=e[g>>2]|0,(v|0)==(e[m+16>>2]|0)){if(u=0,W(e[(e[m>>2]|0)+40>>2]|0,m|0)|0,x=u,u=0,x&1){d=5;break}}else e[g>>2]=v+1;if((d+h|0)>>>0<2|_){I=P,y=d;continue}else m=n,v=d,d=c;for(;;)if((p[d>>0]|0)==2&&(g=p[m>>0]|0,g&1?g=e[m+4>>2]|0:g=(g&255)>>>1,(g|0)!=(P|0)&&(p[d>>0]=0,v=v+-1|0)),m=m+12|0,(m|0)==(f|0)){I=P,y=v;continue i}else d=d+1|0}if((d|0)==4){n=R()|0;break}else if((d|0)==5){n=R()|0;break}else if((d|0)==64){do if(m){if((e[m+12>>2]|0)==(e[m+16>>2]|0)){if(u=0,m=W(e[(e[m>>2]|0)+36>>2]|0,m|0)|0,x=u,u=0,x&1){d=6;break e}if((m|0)==-1){e[r>>2]=0,m=0;break}else{m=e[r>>2]|0;break}}}else m=0;while(0);h=(m|0)==0;do if(v)d=76;else{if((e[g+12>>2]|0)==(e[g+16>>2]|0)){if(u=0,m=W(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,x=u,u=0,x&1){d=6;break e}if((m|0)==-1){e[t>>2]=0,d=76;break}}h||(d=77)}while(0);(d|0)==76&&h&&(d=77),(d|0)==77&&(e[o>>2]=e[o>>2]|2);i:do if((n|0)==(f|0))d=81;else for(;;){if((p[c>>0]|0)==2)break i;if(n=n+12|0,(n|0)==(f|0)){d=81;break}else c=c+1|0}while(0);return(d|0)==81&&(e[o>>2]=e[o>>2]|4,n=f),a&&ye(a),C=w,n|0}}while(0);return(d|0)==6&&(n=R()|0),a&&ye(a),B(n|0),0}function Ag(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+240|0,y=x+202|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,Oi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=25;else{g=M+8|0,v=M+1|0,f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=p[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,m=u,u=0,m&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=24;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,a){l=0;break}else l=0;if(a=p[M>>0]|0,a=a&1?e[d>>2]|0:(a&255)>>>1,(e[P>>2]|0)==(f+a|0)){if(u=0,u0(8,M|0,a<<1|0,0),m=u,u=0,m&1){q=24;break}if(p[M>>0]&1?f=(e[M>>2]&-2)+-1|0:f=10,u=0,u0(8,M|0,f|0,0),m=u,u=0,m&1){q=24;break}f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f+a}if(c=r+12|0,a=e[c>>2]|0,m=r+16|0,(a|0)==(e[m>>2]|0)){if(u=0,a=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}}else a=z[a>>0]|0;if(hi(a&255,E,f,P,I,h,U,_,w,y)|0)break;if(l=e[c>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,f=Me(21,f|0,e[P>>2]|0,s|0,E|0)|0,Q=u,u=0,Q&1)q=25;else{if(e[o>>2]=f,R2(U,_,e[w>>2]|0,s),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=25;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}f||(q=50)}else q=49;while(0);return(q|0)==49&&f&&(q=50),(q|0)==50&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==25&&(r=R()|0),V(M),V(U),B(r|0),0}function Dg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+240|0,y=x+202|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,Oi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=25;else{g=M+8|0,v=M+1|0,f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=p[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,m=u,u=0,m&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;l=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(l)break;break i}if(u=0,c=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,m=u,u=0,m&1){q=24;break i}if((c|0)!=-1){if(l)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,l){a=0;break}else a=0;if(l=p[M>>0]|0,l=l&1?e[d>>2]|0:(l&255)>>>1,(e[P>>2]|0)==(f+l|0)){if(u=0,u0(8,M|0,l<<1|0,0),m=u,u=0,m&1){q=24;break}if(p[M>>0]&1?f=(e[M>>2]&-2)+-1|0:f=10,u=0,u0(8,M|0,f|0,0),m=u,u=0,m&1){q=24;break}f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f+l}if(c=r+12|0,l=e[c>>2]|0,m=r+16|0,(l|0)==(e[m>>2]|0)){if(u=0,l=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}}else l=z[l>>0]|0;if(hi(l&255,E,f,P,I,h,U,_,w,y)|0)break;if(l=e[c>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,f=Me(22,f|0,e[P>>2]|0,s|0,E|0)|0,l=f0,Q=u,u=0,Q&1)q=25;else{if(Q=o,e[Q>>2]=f,e[Q+4>>2]=l,R2(U,_,e[w>>2]|0,s),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=25;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,Q=u,u=0,Q&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}f||(q=50)}else q=49;while(0);return(q|0)==49&&f&&(q=50),(q|0)==50&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==25&&(r=R()|0),V(M),V(U),B(r|0),0}function yg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+240|0,y=x+202|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,Oi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=25;else{g=M+8|0,v=M+1|0,f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=p[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,m=u,u=0,m&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=24;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,a){l=0;break}else l=0;if(a=p[M>>0]|0,a=a&1?e[d>>2]|0:(a&255)>>>1,(e[P>>2]|0)==(f+a|0)){if(u=0,u0(8,M|0,a<<1|0,0),m=u,u=0,m&1){q=24;break}if(p[M>>0]&1?f=(e[M>>2]&-2)+-1|0:f=10,u=0,u0(8,M|0,f|0,0),m=u,u=0,m&1){q=24;break}f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f+a}if(c=r+12|0,a=e[c>>2]|0,m=r+16|0,(a|0)==(e[m>>2]|0)){if(u=0,a=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}}else a=z[a>>0]|0;if(hi(a&255,E,f,P,I,h,U,_,w,y)|0)break;if(l=e[c>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,f=Me(23,f|0,e[P>>2]|0,s|0,E|0)|0,Q=u,u=0,Q&1)q=25;else{if(F[o>>1]=f,R2(U,_,e[w>>2]|0,s),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=25;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}f||(q=50)}else q=49;while(0);return(q|0)==49&&f&&(q=50),(q|0)==50&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==25&&(r=R()|0),V(M),V(U),B(r|0),0}function Ig(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+240|0,y=x+202|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,Oi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=25;else{g=M+8|0,v=M+1|0,f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=p[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,m=u,u=0,m&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=24;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,a){l=0;break}else l=0;if(a=p[M>>0]|0,a=a&1?e[d>>2]|0:(a&255)>>>1,(e[P>>2]|0)==(f+a|0)){if(u=0,u0(8,M|0,a<<1|0,0),m=u,u=0,m&1){q=24;break}if(p[M>>0]&1?f=(e[M>>2]&-2)+-1|0:f=10,u=0,u0(8,M|0,f|0,0),m=u,u=0,m&1){q=24;break}f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f+a}if(c=r+12|0,a=e[c>>2]|0,m=r+16|0,(a|0)==(e[m>>2]|0)){if(u=0,a=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}}else a=z[a>>0]|0;if(hi(a&255,E,f,P,I,h,U,_,w,y)|0)break;if(l=e[c>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,f=Me(24,f|0,e[P>>2]|0,s|0,E|0)|0,Q=u,u=0,Q&1)q=25;else{if(e[o>>2]=f,R2(U,_,e[w>>2]|0,s),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=25;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}f||(q=50)}else q=49;while(0);return(q|0)==49&&f&&(q=50),(q|0)==50&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==25&&(r=R()|0),V(M),V(U),B(r|0),0}function Eg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+240|0,y=x+202|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,Oi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=25;else{g=M+8|0,v=M+1|0,f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=p[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,m=u,u=0,m&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=24;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,a){l=0;break}else l=0;if(a=p[M>>0]|0,a=a&1?e[d>>2]|0:(a&255)>>>1,(e[P>>2]|0)==(f+a|0)){if(u=0,u0(8,M|0,a<<1|0,0),m=u,u=0,m&1){q=24;break}if(p[M>>0]&1?f=(e[M>>2]&-2)+-1|0:f=10,u=0,u0(8,M|0,f|0,0),m=u,u=0,m&1){q=24;break}f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f+a}if(c=r+12|0,a=e[c>>2]|0,m=r+16|0,(a|0)==(e[m>>2]|0)){if(u=0,a=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}}else a=z[a>>0]|0;if(hi(a&255,E,f,P,I,h,U,_,w,y)|0)break;if(l=e[c>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,f=Me(25,f|0,e[P>>2]|0,s|0,E|0)|0,Q=u,u=0,Q&1)q=25;else{if(e[o>>2]=f,R2(U,_,e[w>>2]|0,s),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=25;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}f||(q=50)}else q=49;while(0);return(q|0)==49&&f&&(q=50),(q|0)==50&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==25&&(r=R()|0),V(M),V(U),B(r|0),0}function Pg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+240|0,y=x+202|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,Oi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=25;else{g=M+8|0,v=M+1|0,f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=p[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,m=u,u=0,m&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;l=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(l)break;break i}if(u=0,c=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,m=u,u=0,m&1){q=24;break i}if((c|0)!=-1){if(l)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,l){a=0;break}else a=0;if(l=p[M>>0]|0,l=l&1?e[d>>2]|0:(l&255)>>>1,(e[P>>2]|0)==(f+l|0)){if(u=0,u0(8,M|0,l<<1|0,0),m=u,u=0,m&1){q=24;break}if(p[M>>0]&1?f=(e[M>>2]&-2)+-1|0:f=10,u=0,u0(8,M|0,f|0,0),m=u,u=0,m&1){q=24;break}f=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=f+l}if(c=r+12|0,l=e[c>>2]|0,m=r+16|0,(l|0)==(e[m>>2]|0)){if(u=0,l=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}}else l=z[l>>0]|0;if(hi(l&255,E,f,P,I,h,U,_,w,y)|0)break;if(l=e[c>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,f=Me(26,f|0,e[P>>2]|0,s|0,E|0)|0,l=f0,Q=u,u=0,Q&1)q=25;else{if(Q=o,e[Q>>2]=f,e[Q+4>>2]=l,R2(U,_,e[w>>2]|0,s),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,Q=u,u=0,Q&1){q=25;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,Q=u,u=0,Q&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}f||(q=50)}else q=49;while(0);return(q|0)==49&&f&&(q=50),(q|0)==50&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==25&&(r=R()|0),V(M),V(U),B(r|0),0}function Lg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;q=C,C=C+240|0,P=q+208|0,a=q+203|0,c=q+202|0,r0=q+24|0,Q=q+12|0,A=q+8|0,M=q+40|0,U=q+4|0,_=q,w=q+201|0,I=q+200|0,Hn(r0,f,P,a,c),e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,p[Q>>0]&1?r=(e[Q>>2]&-2)+-1|0:r=10,u=0,u0(8,Q|0,r|0,0),E=u,u=0;e:do if(E&1)i0=25;else{d=Q+8|0,y=Q+1|0,f=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=f,e[U>>2]=M,e[_>>2]=0,p[w>>0]=1,p[I>>0]=69,E=Q+4|0,v=p[a>>0]|0,g=p[c>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,a=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){i0=24;break}(a|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;c=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(c)break;break i}if(u=0,m=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){i0=24;break i}if((m|0)!=-1){if(c)break;break i}else{e[n>>2]=0,i0=16;break}}else i0=16;while(0);if((i0|0)==16)if(i0=0,c){a=0;break}else a=0;if(c=p[Q>>0]|0,c=c&1?e[E>>2]|0:(c&255)>>>1,(e[A>>2]|0)==(f+c|0)){if(u=0,u0(8,Q|0,c<<1|0,0),h=u,u=0,h&1){i0=24;break}if(p[Q>>0]&1?f=(e[Q>>2]&-2)+-1|0:f=10,u=0,u0(8,Q|0,f|0,0),h=u,u=0,h&1){i0=24;break}f=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=f+c}if(m=r+12|0,c=e[m>>2]|0,h=r+16|0,(c|0)==(e[h>>2]|0)){if(u=0,c=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,J=u,u=0,J&1){i0=24;break}}else c=z[c>>0]|0;if(Vn(c&255,w,I,f,A,v,g,r0,M,U,_,P)|0)break;if(a=e[m>>2]|0,(a|0)==(e[h>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,J=u,u=0,J&1){i0=24;break}else continue;else{e[m>>2]=a+1;continue}}if((i0|0)==24){r=R()|0;break}if(J=p[r0>>0]|0,!(!(p[w>>0]|0)||!((J&1?e[r0+4>>2]|0:(J&255)>>>1)|0))&&(x=e[U>>2]|0,(x-M|0)<160)&&(J=e[_>>2]|0,e[U>>2]=x+4,e[x>>2]=J),u=0,l=+Pi(1,f|0,e[A>>2]|0,s|0),J=u,u=0,J&1)i0=25;else{if(z0[o>>2]=l,R2(r0,M,e[U>>2]|0,s),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,J=u,u=0,J&1){i0=25;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,J=u,u=0,J&1){i0=25;break e}if((r|0)==-1){e[n>>2]=0,i0=49;break}}f||(i0=50)}else i0=49;while(0);return(i0|0)==49&&f&&(i0=50),(i0|0)==50&&(e[s>>2]=e[s>>2]|2),J=e[t>>2]|0,V(Q),V(r0),C=q,J|0}}while(0);return(i0|0)==25&&(r=R()|0),V(Q),V(r0),B(r|0),0}function Rg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;q=C,C=C+240|0,P=q+208|0,a=q+203|0,c=q+202|0,r0=q+24|0,Q=q+12|0,A=q+8|0,M=q+40|0,U=q+4|0,_=q,w=q+201|0,I=q+200|0,Hn(r0,f,P,a,c),e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,p[Q>>0]&1?r=(e[Q>>2]&-2)+-1|0:r=10,u=0,u0(8,Q|0,r|0,0),E=u,u=0;e:do if(E&1)i0=25;else{d=Q+8|0,y=Q+1|0,f=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=f,e[U>>2]=M,e[_>>2]=0,p[w>>0]=1,p[I>>0]=69,E=Q+4|0,v=p[a>>0]|0,g=p[c>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,a=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){i0=24;break}(a|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;c=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(c)break;break i}if(u=0,m=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){i0=24;break i}if((m|0)!=-1){if(c)break;break i}else{e[n>>2]=0,i0=16;break}}else i0=16;while(0);if((i0|0)==16)if(i0=0,c){a=0;break}else a=0;if(c=p[Q>>0]|0,c=c&1?e[E>>2]|0:(c&255)>>>1,(e[A>>2]|0)==(f+c|0)){if(u=0,u0(8,Q|0,c<<1|0,0),h=u,u=0,h&1){i0=24;break}if(p[Q>>0]&1?f=(e[Q>>2]&-2)+-1|0:f=10,u=0,u0(8,Q|0,f|0,0),h=u,u=0,h&1){i0=24;break}f=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=f+c}if(m=r+12|0,c=e[m>>2]|0,h=r+16|0,(c|0)==(e[h>>2]|0)){if(u=0,c=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,J=u,u=0,J&1){i0=24;break}}else c=z[c>>0]|0;if(Vn(c&255,w,I,f,A,v,g,r0,M,U,_,P)|0)break;if(a=e[m>>2]|0,(a|0)==(e[h>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,J=u,u=0,J&1){i0=24;break}else continue;else{e[m>>2]=a+1;continue}}if((i0|0)==24){r=R()|0;break}if(J=p[r0>>0]|0,!(!(p[w>>0]|0)||!((J&1?e[r0+4>>2]|0:(J&255)>>>1)|0))&&(x=e[U>>2]|0,(x-M|0)<160)&&(J=e[_>>2]|0,e[U>>2]=x+4,e[x>>2]=J),u=0,l=+Pi(2,f|0,e[A>>2]|0,s|0),J=u,u=0,J&1)i0=25;else{if(t0[o>>3]=l,R2(r0,M,e[U>>2]|0,s),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,J=u,u=0,J&1){i0=25;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,J=u,u=0,J&1){i0=25;break e}if((r|0)==-1){e[n>>2]=0,i0=49;break}}f||(i0=50)}else i0=49;while(0);return(i0|0)==49&&f&&(i0=50),(i0|0)==50&&(e[s>>2]=e[s>>2]|2),J=e[t>>2]|0,V(Q),V(r0),C=q,J|0}}while(0);return(i0|0)==25&&(r=R()|0),V(Q),V(r0),B(r|0),0}function Fg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;q=C,C=C+240|0,P=q+208|0,a=q+203|0,c=q+202|0,r0=q+24|0,Q=q+12|0,A=q+8|0,M=q+40|0,U=q+4|0,_=q,w=q+201|0,I=q+200|0,Hn(r0,f,P,a,c),e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,p[Q>>0]&1?r=(e[Q>>2]&-2)+-1|0:r=10,u=0,u0(8,Q|0,r|0,0),E=u,u=0;e:do if(E&1)i0=25;else{d=Q+8|0,y=Q+1|0,f=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=f,e[U>>2]=M,e[_>>2]=0,p[w>>0]=1,p[I>>0]=69,E=Q+4|0,v=p[a>>0]|0,g=p[c>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,a=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){i0=24;break}(a|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;c=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(c)break;break i}if(u=0,m=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){i0=24;break i}if((m|0)!=-1){if(c)break;break i}else{e[n>>2]=0,i0=16;break}}else i0=16;while(0);if((i0|0)==16)if(i0=0,c){a=0;break}else a=0;if(c=p[Q>>0]|0,c=c&1?e[E>>2]|0:(c&255)>>>1,(e[A>>2]|0)==(f+c|0)){if(u=0,u0(8,Q|0,c<<1|0,0),h=u,u=0,h&1){i0=24;break}if(p[Q>>0]&1?f=(e[Q>>2]&-2)+-1|0:f=10,u=0,u0(8,Q|0,f|0,0),h=u,u=0,h&1){i0=24;break}f=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=f+c}if(m=r+12|0,c=e[m>>2]|0,h=r+16|0,(c|0)==(e[h>>2]|0)){if(u=0,c=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,J=u,u=0,J&1){i0=24;break}}else c=z[c>>0]|0;if(Vn(c&255,w,I,f,A,v,g,r0,M,U,_,P)|0)break;if(a=e[m>>2]|0,(a|0)==(e[h>>2]|0))if(u=0,W(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,J=u,u=0,J&1){i0=24;break}else continue;else{e[m>>2]=a+1;continue}}if((i0|0)==24){r=R()|0;break}if(J=p[r0>>0]|0,!(!(p[w>>0]|0)||!((J&1?e[r0+4>>2]|0:(J&255)>>>1)|0))&&(x=e[U>>2]|0,(x-M|0)<160)&&(J=e[_>>2]|0,e[U>>2]=x+4,e[x>>2]=J),u=0,l=+Pi(3,f|0,e[A>>2]|0,s|0),J=u,u=0,J&1)i0=25;else{if(t0[o>>3]=l,R2(r0,M,e[U>>2]|0,s),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,f=W(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,J=u,u=0,J&1){i0=25;break}(f|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;f=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,J=u,u=0,J&1){i0=25;break e}if((r|0)==-1){e[n>>2]=0,i0=49;break}}f||(i0=50)}else i0=49;while(0);return(i0|0)==49&&f&&(i0=50),(i0|0)==50&&(e[s>>2]=e[s>>2]|2),J=e[t>>2]|0,V(Q),V(r0),C=q,J|0}}while(0);return(i0|0)==25&&(r=R()|0),V(Q),V(r0),B(r|0),0}function Og(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;return s=C,C=C+16|0,o=s,e[o>>2]=f,f=s1(t)|0,t=vl(r,n,o)|0,f|0&&(u=0,W(75,f|0)|0,o=u,u=0,o&1)&&(o=R(0)|0,ie(o)),C=s,t|0}function Gr(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0;var a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0;w=C,C=C+112|0,c=w,h=(f-n|0)/12|0;do if(h>>>0>100){if(c=S2(h)|0,!(c|0)&&(u=0,be(6),_=u,u=0,_&1)){a=0,v=6;break}a=c,v=11}else a=0,v=11;while(0);e:do if((v|0)==11){if((n|0)==(f|0))m=0;else for(d=n,g=0,v=c;m=p[d>>0]|0,m&1?m=e[d+4>>2]|0:m=(m&255)>>>1,m?(p[v>>0]=1,m=g):(p[v>>0]=2,m=g+1|0,h=h+-1|0),d=d+12|0,(d|0)!=(f|0);)g=m,v=v+1|0;A=(n|0)==(f|0),_=(n|0)==(f|0),I=0,y=h;i:for(;;){h=e[r>>2]|0;do if(h){if(g=e[h+12>>2]|0,(g|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,P=u,u=0,P&1){v=5;break i}}else h=e[g>>2]|0;if((h|0)==-1){e[r>>2]=0,d=1;break}else{d=(e[r>>2]|0)==0;break}}else d=1;while(0);if(g=e[t>>2]|0,g){if(h=e[g+12>>2]|0,(h|0)==(e[g+16>>2]|0)){if(u=0,h=W(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,P=u,u=0,P&1){v=5;break}}else h=e[h>>2]|0;(h|0)==-1?(e[t>>2]=0,g=0,v=1):v=0}else g=0,v=1;if(h=e[r>>2]|0,!((y|0)!=0&(d^v))){v=66;break}if(g=e[h+12>>2]|0,(g|0)==(e[h+16>>2]|0)){if(u=0,h=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,P=u,u=0,P&1){v=5;break}}else h=e[g>>2]|0;if(!l&&(u=0,h=c0(e[(e[s>>2]|0)+28>>2]|0,s|0,h|0)|0,P=u,u=0,P&1)){v=5;break}if(P=I+1|0,A)h=0,d=y;else for(d=0,E=n,v=y,y=c;;){do if((p[y>>0]|0)==1){if(p[E>>0]&1?g=e[E+8>>2]|0:g=E+4|0,g=e[g+(I<<2)>>2]|0,!l&&(u=0,g=c0(e[(e[s>>2]|0)+28>>2]|0,s|0,g|0)|0,x=u,u=0,x&1)){v=4;break i}if((h|0)!=(g|0)){p[y>>0]=0,g=d,v=v+-1|0;break}g=p[E>>0]|0,g&1?g=e[E+4>>2]|0:g=(g&255)>>>1,(g|0)==(P|0)?(p[y>>0]=2,g=1,m=m+1|0,v=v+-1|0):g=1}else g=d;while(0);if(E=E+12|0,(E|0)==(f|0)){h=g,d=v;break}else d=g,y=y+1|0}if(!h){I=P,y=d;continue}if(h=e[r>>2]|0,g=h+12|0,v=e[g>>2]|0,(v|0)==(e[h+16>>2]|0)){if(u=0,W(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,x=u,u=0,x&1){v=5;break}}else e[g>>2]=v+4;if((m+d|0)>>>0<2|_){I=P,y=d;continue}else h=n,v=c;for(;;)if((p[v>>0]|0)==2&&(g=p[h>>0]|0,g&1?g=e[h+4>>2]|0:g=(g&255)>>>1,(g|0)!=(P|0)&&(p[v>>0]=0,m=m+-1|0)),h=h+12|0,(h|0)==(f|0)){I=P,y=d;continue i}else v=v+1|0}if((v|0)==4){n=R()|0;break}else if((v|0)==5){n=R()|0;break}else if((v|0)==66){do if(h){if(m=e[h+12>>2]|0,(m|0)==(e[h+16>>2]|0)){if(u=0,m=W(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,x=u,u=0,x&1){v=6;break e}}else m=e[m>>2]|0;if((m|0)==-1){e[r>>2]=0,h=1;break}else{h=(e[r>>2]|0)==0;break}}else h=1;while(0);do if(g){if(m=e[g+12>>2]|0,(m|0)==(e[g+16>>2]|0)){if(u=0,m=W(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,x=u,u=0,x&1){v=6;break e}}else m=e[m>>2]|0;if((m|0)!=-1){if(h)break;v=81;break}else{e[t>>2]=0,v=79;break}}else v=79;while(0);(v|0)==79&&h&&(v=81),(v|0)==81&&(e[o>>2]=e[o>>2]|2);i:do if((n|0)==(f|0))v=85;else for(;;){if((p[c>>0]|0)==2)break i;if(n=n+12|0,(n|0)==(f|0)){v=85;break}else c=c+1|0}while(0);return(v|0)==85&&(e[o>>2]=e[o>>2]|4,n=f),a&&ye(a),C=w,n|0}}while(0);return(v|0)==6&&(n=R()|0),a&&ye(a),B(n|0),0}function xg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+320|0,y=x+208|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,xi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=26;else{g=M+8|0,v=M+1|0,r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(f=e[l+12>>2]|0,(f|0)==(e[l+16>>2]|0)){if(u=0,f=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=25;break}}else f=e[f>>2]|0;(f|0)==-1?(e[t>>2]=0,f=0,a=1):(f=l,a=0)}else f=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=W(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,m=u,u=0,m&1){q=25;break i}}else l=e[l>>2]|0;if((l|0)!=-1){if(a)break;l=c;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,a){l=0;break}else c=0;if(l=p[M>>0]|0,l=l&1?e[d>>2]|0:(l&255)>>>1,(e[P>>2]|0)==(r+l|0)){if(u=0,u0(8,M|0,l<<1|0,0),m=u,u=0,m&1){q=25;break}if(p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),m=u,u=0,m&1){q=25;break}r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r+l}if(a=f+12|0,l=e[a>>2]|0,m=f+16|0,(l|0)==(e[m>>2]|0)){if(u=0,l=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=25;break}}else l=e[l>>2]|0;if(Si(l,E,r,P,I,h,U,_,w,y)|0){l=c;break}if(l=e[a>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[f>>2]|0)+40>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=25;break}else{l=f;continue}else{e[a>>2]=l+4,l=f;continue}}if((q|0)==25){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,r=Me(21,r|0,e[P>>2]|0,s|0,E|0)|0,Q=u,u=0,Q&1)q=26;else{if(e[o>>2]=r,R2(U,_,e[w>>2]|0,s),f){if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)){if(u=0,r=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&f&&(q=53),(q|0)==53&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==26&&(r=R()|0),V(M),V(U),B(r|0),0}function Mg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+320|0,y=x+208|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,xi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=26;else{g=M+8|0,v=M+1|0,r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(f=e[l+12>>2]|0,(f|0)==(e[l+16>>2]|0)){if(u=0,f=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=25;break}}else f=e[f>>2]|0;(f|0)==-1?(e[t>>2]=0,l=0,c=1):c=0}else l=0,c=1;a=e[n>>2]|0;do if(a){if(f=e[a+12>>2]|0,(f|0)==(e[a+16>>2]|0)){if(u=0,f=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,m=u,u=0,m&1){q=25;break i}}else f=e[f>>2]|0;if((f|0)!=-1){if(c)break;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,c){a=0;break}else a=0;if(f=p[M>>0]|0,f=f&1?e[d>>2]|0:(f&255)>>>1,(e[P>>2]|0)==(r+f|0)){if(u=0,u0(8,M|0,f<<1|0,0),m=u,u=0,m&1){q=25;break}if(p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),m=u,u=0,m&1){q=25;break}r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r+f}if(c=l+12|0,f=e[c>>2]|0,m=l+16|0,(f|0)==(e[m>>2]|0)){if(u=0,f=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=25;break}}else f=e[f>>2]|0;if(Si(f,E,r,P,I,h,U,_,w,y)|0)break;if(f=e[c>>2]|0,(f|0)==(e[m>>2]|0))if(u=0,W(e[(e[l>>2]|0)+40>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=25;break}else continue;else{e[c>>2]=f+4;continue}}if((q|0)==25){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,r=Me(22,r|0,e[P>>2]|0,s|0,E|0)|0,f=f0,Q=u,u=0,Q&1)q=26;else{if(Q=o,e[Q>>2]=r,e[Q+4>>2]=f,R2(U,_,e[w>>2]|0,s),l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,Q=u,u=0,Q&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&f&&(q=53),(q|0)==53&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==26&&(r=R()|0),V(M),V(U),B(r|0),0}function qg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+320|0,y=x+208|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,xi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=26;else{g=M+8|0,v=M+1|0,r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(f=e[l+12>>2]|0,(f|0)==(e[l+16>>2]|0)){if(u=0,f=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=25;break}}else f=e[f>>2]|0;(f|0)==-1?(e[t>>2]=0,f=0,a=1):(f=l,a=0)}else f=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=W(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,m=u,u=0,m&1){q=25;break i}}else l=e[l>>2]|0;if((l|0)!=-1){if(a)break;l=c;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,a){l=0;break}else c=0;if(l=p[M>>0]|0,l=l&1?e[d>>2]|0:(l&255)>>>1,(e[P>>2]|0)==(r+l|0)){if(u=0,u0(8,M|0,l<<1|0,0),m=u,u=0,m&1){q=25;break}if(p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),m=u,u=0,m&1){q=25;break}r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r+l}if(a=f+12|0,l=e[a>>2]|0,m=f+16|0,(l|0)==(e[m>>2]|0)){if(u=0,l=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=25;break}}else l=e[l>>2]|0;if(Si(l,E,r,P,I,h,U,_,w,y)|0){l=c;break}if(l=e[a>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[f>>2]|0)+40>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=25;break}else{l=f;continue}else{e[a>>2]=l+4,l=f;continue}}if((q|0)==25){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,r=Me(23,r|0,e[P>>2]|0,s|0,E|0)|0,Q=u,u=0,Q&1)q=26;else{if(F[o>>1]=r,R2(U,_,e[w>>2]|0,s),f){if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)){if(u=0,r=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&f&&(q=53),(q|0)==53&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==26&&(r=R()|0),V(M),V(U),B(r|0),0}function Ng(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+320|0,y=x+208|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,xi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=26;else{g=M+8|0,v=M+1|0,r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(f=e[l+12>>2]|0,(f|0)==(e[l+16>>2]|0)){if(u=0,f=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=25;break}}else f=e[f>>2]|0;(f|0)==-1?(e[t>>2]=0,f=0,a=1):(f=l,a=0)}else f=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=W(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,m=u,u=0,m&1){q=25;break i}}else l=e[l>>2]|0;if((l|0)!=-1){if(a)break;l=c;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,a){l=0;break}else c=0;if(l=p[M>>0]|0,l=l&1?e[d>>2]|0:(l&255)>>>1,(e[P>>2]|0)==(r+l|0)){if(u=0,u0(8,M|0,l<<1|0,0),m=u,u=0,m&1){q=25;break}if(p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),m=u,u=0,m&1){q=25;break}r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r+l}if(a=f+12|0,l=e[a>>2]|0,m=f+16|0,(l|0)==(e[m>>2]|0)){if(u=0,l=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=25;break}}else l=e[l>>2]|0;if(Si(l,E,r,P,I,h,U,_,w,y)|0){l=c;break}if(l=e[a>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[f>>2]|0)+40>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=25;break}else{l=f;continue}else{e[a>>2]=l+4,l=f;continue}}if((q|0)==25){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,r=Me(24,r|0,e[P>>2]|0,s|0,E|0)|0,Q=u,u=0,Q&1)q=26;else{if(e[o>>2]=r,R2(U,_,e[w>>2]|0,s),f){if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)){if(u=0,r=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&f&&(q=53),(q|0)==53&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==26&&(r=R()|0),V(M),V(U),B(r|0),0}function Ug(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+320|0,y=x+208|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,xi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=26;else{g=M+8|0,v=M+1|0,r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(f=e[l+12>>2]|0,(f|0)==(e[l+16>>2]|0)){if(u=0,f=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=25;break}}else f=e[f>>2]|0;(f|0)==-1?(e[t>>2]=0,f=0,a=1):(f=l,a=0)}else f=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=W(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,m=u,u=0,m&1){q=25;break i}}else l=e[l>>2]|0;if((l|0)!=-1){if(a)break;l=c;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,a){l=0;break}else c=0;if(l=p[M>>0]|0,l=l&1?e[d>>2]|0:(l&255)>>>1,(e[P>>2]|0)==(r+l|0)){if(u=0,u0(8,M|0,l<<1|0,0),m=u,u=0,m&1){q=25;break}if(p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),m=u,u=0,m&1){q=25;break}r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r+l}if(a=f+12|0,l=e[a>>2]|0,m=f+16|0,(l|0)==(e[m>>2]|0)){if(u=0,l=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=25;break}}else l=e[l>>2]|0;if(Si(l,E,r,P,I,h,U,_,w,y)|0){l=c;break}if(l=e[a>>2]|0,(l|0)==(e[m>>2]|0))if(u=0,W(e[(e[f>>2]|0)+40>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=25;break}else{l=f;continue}else{e[a>>2]=l+4,l=f;continue}}if((q|0)==25){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,r=Me(25,r|0,e[P>>2]|0,s|0,E|0)|0,Q=u,u=0,Q&1)q=26;else{if(e[o>>2]=r,R2(U,_,e[w>>2]|0,s),f){if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)){if(u=0,r=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,Q=u,u=0,Q&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&f&&(q=53),(q|0)==53&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==26&&(r=R()|0),V(M),V(U),B(r|0),0}function Bg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;x=C,C=C+320|0,y=x+208|0,l=x+200|0,U=x+24|0,M=x+12|0,P=x+8|0,_=x+40|0,w=x+4|0,I=x,E=a1(f)|0,xi(U,f,y,l),e[M>>2]=0,e[M+4>>2]=0,e[M+8>>2]=0,p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),d=u,u=0;e:do if(d&1)q=26;else{g=M+8|0,v=M+1|0,r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r,e[w>>2]=_,e[I>>2]=0,d=M+4|0,h=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(f=e[l+12>>2]|0,(f|0)==(e[l+16>>2]|0)){if(u=0,f=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,m=u,u=0,m&1){q=25;break}}else f=e[f>>2]|0;(f|0)==-1?(e[t>>2]=0,l=0,c=1):c=0}else l=0,c=1;a=e[n>>2]|0;do if(a){if(f=e[a+12>>2]|0,(f|0)==(e[a+16>>2]|0)){if(u=0,f=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,m=u,u=0,m&1){q=25;break i}}else f=e[f>>2]|0;if((f|0)!=-1){if(c)break;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,c){a=0;break}else a=0;if(f=p[M>>0]|0,f=f&1?e[d>>2]|0:(f&255)>>>1,(e[P>>2]|0)==(r+f|0)){if(u=0,u0(8,M|0,f<<1|0,0),m=u,u=0,m&1){q=25;break}if(p[M>>0]&1?r=(e[M>>2]&-2)+-1|0:r=10,u=0,u0(8,M|0,r|0,0),m=u,u=0,m&1){q=25;break}r=p[M>>0]&1?e[g>>2]|0:v,e[P>>2]=r+f}if(c=l+12|0,f=e[c>>2]|0,m=l+16|0,(f|0)==(e[m>>2]|0)){if(u=0,f=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=25;break}}else f=e[f>>2]|0;if(Si(f,E,r,P,I,h,U,_,w,y)|0)break;if(f=e[c>>2]|0,(f|0)==(e[m>>2]|0))if(u=0,W(e[(e[l>>2]|0)+40>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=25;break}else continue;else{e[c>>2]=f+4;continue}}if((q|0)==25){r=R()|0;break}if(Q=p[U>>0]|0,(Q&1?e[U+4>>2]|0:(Q&255)>>>1)|0&&(A=e[w>>2]|0,(A-_|0)<160)&&(Q=e[I>>2]|0,e[w>>2]=A+4,e[A>>2]=Q),u=0,r=Me(26,r|0,e[P>>2]|0,s|0,E|0)|0,f=f0,Q=u,u=0,Q&1)q=26;else{if(Q=o,e[Q>>2]=r,e[Q+4>>2]=f,R2(U,_,e[w>>2]|0,s),l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=W(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,Q=u,u=0,Q&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,Q=u,u=0,Q&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&f&&(q=53),(q|0)==53&&(e[s>>2]=e[s>>2]|2),Q=e[t>>2]|0,V(M),V(U),C=x,Q|0}}while(0);return(q|0)==26&&(r=R()|0),V(M),V(U),B(r|0),0}function Qg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;q=C,C=C+352|0,P=q+208|0,a=q+40|0,c=q+36|0,r0=q+24|0,Q=q+12|0,A=q+8|0,M=q+48|0,U=q+4|0,_=q,w=q+337|0,I=q+336|0,zn(r0,f,P,a,c),e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,p[Q>>0]&1?r=(e[Q>>2]&-2)+-1|0:r=10,u=0,u0(8,Q|0,r|0,0),E=u,u=0;e:do if(E&1)i0=26;else{d=Q+8|0,y=Q+1|0,r=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=r,e[U>>2]=M,e[_>>2]=0,p[w>>0]=1,p[I>>0]=69,E=Q+4|0,v=e[a>>2]|0,g=e[c>>2]|0,f=e[t>>2]|0;i:for(;;){if(f){if(a=e[f+12>>2]|0,(a|0)==(e[f+16>>2]|0)){if(u=0,a=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,h=u,u=0,h&1){i0=25;break}}else a=e[a>>2]|0;(a|0)==-1?(e[t>>2]=0,f=0,m=1):m=0}else f=0,m=1;a=e[n>>2]|0;do if(a){if(c=e[a+12>>2]|0,(c|0)==(e[a+16>>2]|0)){if(u=0,c=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){i0=25;break i}}else c=e[c>>2]|0;if((c|0)!=-1){if(m)break;break i}else{e[n>>2]=0,i0=17;break}}else i0=17;while(0);if((i0|0)==17)if(i0=0,m){a=0;break}else a=0;if(c=p[Q>>0]|0,c=c&1?e[E>>2]|0:(c&255)>>>1,(e[A>>2]|0)==(r+c|0)){if(u=0,u0(8,Q|0,c<<1|0,0),h=u,u=0,h&1){i0=25;break}if(p[Q>>0]&1?r=(e[Q>>2]&-2)+-1|0:r=10,u=0,u0(8,Q|0,r|0,0),h=u,u=0,h&1){i0=25;break}r=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=r+c}if(m=f+12|0,c=e[m>>2]|0,h=f+16|0,(c|0)==(e[h>>2]|0)){if(u=0,c=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,J=u,u=0,J&1){i0=25;break}}else c=e[c>>2]|0;if(Yn(c,w,I,r,A,v,g,r0,M,U,_,P)|0)break;if(a=e[m>>2]|0,(a|0)==(e[h>>2]|0))if(u=0,W(e[(e[f>>2]|0)+40>>2]|0,f|0)|0,J=u,u=0,J&1){i0=25;break}else continue;else{e[m>>2]=a+4;continue}}if((i0|0)==25){r=R()|0;break}if(J=p[r0>>0]|0,!(!(p[w>>0]|0)||!((J&1?e[r0+4>>2]|0:(J&255)>>>1)|0))&&(x=e[U>>2]|0,(x-M|0)<160)&&(J=e[_>>2]|0,e[U>>2]=x+4,e[x>>2]=J),u=0,l=+Pi(1,r|0,e[A>>2]|0,s|0),J=u,u=0,J&1)i0=26;else{if(z0[o>>2]=l,R2(r0,M,e[U>>2]|0,s),f){if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)){if(u=0,r=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,J=u,u=0,J&1){i0=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,J=u,u=0,J&1){i0=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;i0=53;break}else{e[n>>2]=0,i0=51;break}}else i0=51;while(0);return(i0|0)==51&&f&&(i0=53),(i0|0)==53&&(e[s>>2]=e[s>>2]|2),J=e[t>>2]|0,V(Q),V(r0),C=q,J|0}}while(0);return(i0|0)==26&&(r=R()|0),V(Q),V(r0),B(r|0),0}function Gg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;q=C,C=C+352|0,P=q+208|0,a=q+40|0,c=q+36|0,r0=q+24|0,Q=q+12|0,A=q+8|0,M=q+48|0,U=q+4|0,_=q,w=q+337|0,I=q+336|0,zn(r0,f,P,a,c),e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,p[Q>>0]&1?r=(e[Q>>2]&-2)+-1|0:r=10,u=0,u0(8,Q|0,r|0,0),E=u,u=0;e:do if(E&1)i0=26;else{d=Q+8|0,y=Q+1|0,r=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=r,e[U>>2]=M,e[_>>2]=0,p[w>>0]=1,p[I>>0]=69,E=Q+4|0,v=e[a>>2]|0,g=e[c>>2]|0,f=e[t>>2]|0;i:for(;;){if(f){if(a=e[f+12>>2]|0,(a|0)==(e[f+16>>2]|0)){if(u=0,a=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,h=u,u=0,h&1){i0=25;break}}else a=e[a>>2]|0;(a|0)==-1?(e[t>>2]=0,f=0,m=1):m=0}else f=0,m=1;a=e[n>>2]|0;do if(a){if(c=e[a+12>>2]|0,(c|0)==(e[a+16>>2]|0)){if(u=0,c=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){i0=25;break i}}else c=e[c>>2]|0;if((c|0)!=-1){if(m)break;break i}else{e[n>>2]=0,i0=17;break}}else i0=17;while(0);if((i0|0)==17)if(i0=0,m){a=0;break}else a=0;if(c=p[Q>>0]|0,c=c&1?e[E>>2]|0:(c&255)>>>1,(e[A>>2]|0)==(r+c|0)){if(u=0,u0(8,Q|0,c<<1|0,0),h=u,u=0,h&1){i0=25;break}if(p[Q>>0]&1?r=(e[Q>>2]&-2)+-1|0:r=10,u=0,u0(8,Q|0,r|0,0),h=u,u=0,h&1){i0=25;break}r=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=r+c}if(m=f+12|0,c=e[m>>2]|0,h=f+16|0,(c|0)==(e[h>>2]|0)){if(u=0,c=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,J=u,u=0,J&1){i0=25;break}}else c=e[c>>2]|0;if(Yn(c,w,I,r,A,v,g,r0,M,U,_,P)|0)break;if(a=e[m>>2]|0,(a|0)==(e[h>>2]|0))if(u=0,W(e[(e[f>>2]|0)+40>>2]|0,f|0)|0,J=u,u=0,J&1){i0=25;break}else continue;else{e[m>>2]=a+4;continue}}if((i0|0)==25){r=R()|0;break}if(J=p[r0>>0]|0,!(!(p[w>>0]|0)||!((J&1?e[r0+4>>2]|0:(J&255)>>>1)|0))&&(x=e[U>>2]|0,(x-M|0)<160)&&(J=e[_>>2]|0,e[U>>2]=x+4,e[x>>2]=J),u=0,l=+Pi(2,r|0,e[A>>2]|0,s|0),J=u,u=0,J&1)i0=26;else{if(t0[o>>3]=l,R2(r0,M,e[U>>2]|0,s),f){if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)){if(u=0,r=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,J=u,u=0,J&1){i0=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,J=u,u=0,J&1){i0=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;i0=53;break}else{e[n>>2]=0,i0=51;break}}else i0=51;while(0);return(i0|0)==51&&f&&(i0=53),(i0|0)==53&&(e[s>>2]=e[s>>2]|2),J=e[t>>2]|0,V(Q),V(r0),C=q,J|0}}while(0);return(i0|0)==26&&(r=R()|0),V(Q),V(r0),B(r|0),0}function Hg(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0;q=C,C=C+352|0,P=q+208|0,a=q+40|0,c=q+36|0,r0=q+24|0,Q=q+12|0,A=q+8|0,M=q+48|0,U=q+4|0,_=q,w=q+337|0,I=q+336|0,zn(r0,f,P,a,c),e[Q>>2]=0,e[Q+4>>2]=0,e[Q+8>>2]=0,p[Q>>0]&1?r=(e[Q>>2]&-2)+-1|0:r=10,u=0,u0(8,Q|0,r|0,0),E=u,u=0;e:do if(E&1)i0=26;else{d=Q+8|0,y=Q+1|0,r=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=r,e[U>>2]=M,e[_>>2]=0,p[w>>0]=1,p[I>>0]=69,E=Q+4|0,v=e[a>>2]|0,g=e[c>>2]|0,f=e[t>>2]|0;i:for(;;){if(f){if(a=e[f+12>>2]|0,(a|0)==(e[f+16>>2]|0)){if(u=0,a=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,h=u,u=0,h&1){i0=25;break}}else a=e[a>>2]|0;(a|0)==-1?(e[t>>2]=0,f=0,m=1):m=0}else f=0,m=1;a=e[n>>2]|0;do if(a){if(c=e[a+12>>2]|0,(c|0)==(e[a+16>>2]|0)){if(u=0,c=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){i0=25;break i}}else c=e[c>>2]|0;if((c|0)!=-1){if(m)break;break i}else{e[n>>2]=0,i0=17;break}}else i0=17;while(0);if((i0|0)==17)if(i0=0,m){a=0;break}else a=0;if(c=p[Q>>0]|0,c=c&1?e[E>>2]|0:(c&255)>>>1,(e[A>>2]|0)==(r+c|0)){if(u=0,u0(8,Q|0,c<<1|0,0),h=u,u=0,h&1){i0=25;break}if(p[Q>>0]&1?r=(e[Q>>2]&-2)+-1|0:r=10,u=0,u0(8,Q|0,r|0,0),h=u,u=0,h&1){i0=25;break}r=p[Q>>0]&1?e[d>>2]|0:y,e[A>>2]=r+c}if(m=f+12|0,c=e[m>>2]|0,h=f+16|0,(c|0)==(e[h>>2]|0)){if(u=0,c=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,J=u,u=0,J&1){i0=25;break}}else c=e[c>>2]|0;if(Yn(c,w,I,r,A,v,g,r0,M,U,_,P)|0)break;if(a=e[m>>2]|0,(a|0)==(e[h>>2]|0))if(u=0,W(e[(e[f>>2]|0)+40>>2]|0,f|0)|0,J=u,u=0,J&1){i0=25;break}else continue;else{e[m>>2]=a+4;continue}}if((i0|0)==25){r=R()|0;break}if(J=p[r0>>0]|0,!(!(p[w>>0]|0)||!((J&1?e[r0+4>>2]|0:(J&255)>>>1)|0))&&(x=e[U>>2]|0,(x-M|0)<160)&&(J=e[_>>2]|0,e[U>>2]=x+4,e[x>>2]=J),u=0,l=+Pi(3,r|0,e[A>>2]|0,s|0),J=u,u=0,J&1)i0=26;else{if(t0[o>>3]=l,R2(r0,M,e[U>>2]|0,s),f){if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)){if(u=0,r=W(e[(e[f>>2]|0)+36>>2]|0,f|0)|0,J=u,u=0,J&1){i0=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,f=1):f=0}else f=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=W(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,J=u,u=0,J&1){i0=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(f)break;i0=53;break}else{e[n>>2]=0,i0=51;break}}else i0=51;while(0);return(i0|0)==51&&f&&(i0=53),(i0|0)==53&&(e[s>>2]=e[s>>2]|2),J=e[t>>2]|0,V(Q),V(r0),C=q,J|0}}while(0);return(i0|0)==26&&(r=R()|0),V(Q),V(r0),B(r|0),0}function N2(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0;return o=C,C=C+16|0,l=o,e[l>>2]=s,s=s1(n)|0,n=rt(r,t,f,l)|0,s|0&&(u=0,W(75,s|0)|0,l=u,u=0,l&1)&&(l=R(0)|0,ie(l)),C=o,n|0}function Vg(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;if(s=C,C=C+16|0,o=s,e[o>>2]=f,f=s1(t)|0,u=0,t=ee(37,r|0,n|0,o|0)|0,r=u,u=0,r&1)t=R()|0,f|0&&(u=0,W(75,f|0)|0,o=u,u=0,o&1)&&(o=R(0)|0,ie(o)),B(t|0);else return f|0&&(u=0,W(75,f|0)|0,o=u,u=0,o&1)&&(o=R(0)|0,ie(o)),C=s,t|0;return 0}function Mi(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0;g=C,C=C+16|0,h=g,l=e[r>>2]|0;e:do if(!l)l=0;else{if(v=t,c=f-v>>2,m=s+12|0,a=e[m>>2]|0,c=(a|0)>(c|0)?a-c|0:0,a=n,v=a-v|0,s=v>>2,(v|0)>0&&(ge[e[(e[l>>2]|0)+48>>2]&63](l,t,s)|0)!=(s|0)){e[r>>2]=0,l=0;break}do if((c|0)>0)if(Qn(h,c,o),u=0,s=ee(e[(e[l>>2]|0)+48>>2]|0,l|0,(p[h>>0]&1?e[h+8>>2]|0:h+4|0)|0,c|0)|0,v=u,u=0,v&1&&(v=R()|0,b0(h),B(v|0)),(s|0)==(c|0)){b0(h);break}else{e[r>>2]=0,b0(h),l=0;break e}while(0);if(v=f-a|0,f=v>>2,(v|0)>0&&(ge[e[(e[l>>2]|0)+48>>2]&63](l,n,f)|0)!=(f|0)){e[r>>2]=0,l=0;break}e[m>>2]=0}while(0);return C=g,l|0}function D1(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0;o=e[r>>2]|0;do if(o){if((e[o+12>>2]|0)==(e[o+16>>2]|0))if((V0[e[(e[o>>2]|0)+36>>2]&127](o)|0)==-1){e[r>>2]=0,o=0;break}else{o=e[r>>2]|0;break}}else o=0;while(0);l=(o|0)==0,o=e[t>>2]|0;do if(o){if((e[o+12>>2]|0)==(e[o+16>>2]|0)&&(V0[e[(e[o>>2]|0)+36>>2]&127](o)|0)==-1){e[t>>2]=0,y=11;break}l?y=13:y=12}else y=11;while(0);(y|0)==11&&(l?y=12:(o=0,y=13));e:do if((y|0)==12)e[n>>2]=e[n>>2]|6,o=0;else if((y|0)==13){if(l=e[r>>2]|0,a=e[l+12>>2]|0,(a|0)==(e[l+16>>2]|0)?l=V0[e[(e[l>>2]|0)+36>>2]&127](l)|0:l=z[a>>0]|0,a=l&255,a<<24>>24>-1&&(d=f+8|0,(F[(e[d>>2]|0)+(l<<24>>24<<1)>>1]&2048)!=0)){for(m=(ge[e[(e[f>>2]|0)+36>>2]&63](f,a,0)|0)<<24>>24,l=e[r>>2]|0,a=l+12|0,c=e[a>>2]|0,(c|0)==(e[l+16>>2]|0)?(V0[e[(e[l>>2]|0)+40>>2]&127](l)|0,g=s,h=o,s=o,o=m):(e[a>>2]=c+1,g=s,h=o,s=o,o=m);;){o=o+-48|0,v=g+-1|0,l=e[r>>2]|0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0))if((V0[e[(e[l>>2]|0)+36>>2]&127](l)|0)==-1){e[r>>2]=0,l=0;break}else{l=e[r>>2]|0;break}}else l=0;while(0);if(c=(l|0)==0,s?(e[s+12>>2]|0)==(e[s+16>>2]|0)?(V0[e[(e[s>>2]|0)+36>>2]&127](s)|0)==-1?(e[t>>2]=0,a=0,s=0):(a=h,s=h):a=h:(a=h,s=0),l=e[r>>2]|0,!((g|0)>1&(c^(s|0)==0)))break;if(c=e[l+12>>2]|0,(c|0)==(e[l+16>>2]|0)?l=V0[e[(e[l>>2]|0)+36>>2]&127](l)|0:l=z[c>>0]|0,c=l&255,c<<24>>24<=-1||!(F[(e[d>>2]|0)+(l<<24>>24<<1)>>1]&2048))break e;if(o=((ge[e[(e[f>>2]|0)+36>>2]&63](f,c,0)|0)<<24>>24)+(o*10|0)|0,l=e[r>>2]|0,c=l+12|0,m=e[c>>2]|0,(m|0)==(e[l+16>>2]|0)){V0[e[(e[l>>2]|0)+40>>2]&127](l)|0,g=v,h=a;continue}else{e[c>>2]=m+1,g=v,h=a;continue}}do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0))if((V0[e[(e[l>>2]|0)+36>>2]&127](l)|0)==-1){e[r>>2]=0,l=0;break}else{l=e[r>>2]|0;break}}else l=0;while(0);l=(l|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)&&(V0[e[(e[a>>2]|0)+36>>2]&127](a)|0)==-1){e[t>>2]=0,y=50;break}if(l)break e}else y=50;while(0);if((y|0)==50&&!l)break;e[n>>2]=e[n>>2]|2;break}e[n>>2]=e[n>>2]|4,o=0}while(0);return o|0}function y1(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;o=e[r>>2]|0;do if(o)if(l=e[o+12>>2]|0,(l|0)==(e[o+16>>2]|0)?o=V0[e[(e[o>>2]|0)+36>>2]&127](o)|0:o=e[l>>2]|0,(o|0)==-1){e[r>>2]=0,a=1;break}else{a=(e[r>>2]|0)==0;break}else a=1;while(0);l=e[t>>2]|0;do if(l)if(o=e[l+12>>2]|0,(o|0)==(e[l+16>>2]|0)?o=V0[e[(e[l>>2]|0)+36>>2]&127](l)|0:o=e[o>>2]|0,(o|0)!=-1)if(a){d=17;break}else{d=16;break}else{e[t>>2]=0,d=14;break}else d=14;while(0);(d|0)==14&&(a?d=16:(l=0,d=17));e:do if((d|0)==16)e[n>>2]=e[n>>2]|6,o=0;else if((d|0)==17){if(o=e[r>>2]|0,a=e[o+12>>2]|0,(a|0)==(e[o+16>>2]|0)?o=V0[e[(e[o>>2]|0)+36>>2]&127](o)|0:o=e[a>>2]|0,!(ge[e[(e[f>>2]|0)+12>>2]&63](f,2048,o)|0)){e[n>>2]=e[n>>2]|4,o=0;break}for(o=(ge[e[(e[f>>2]|0)+52>>2]&63](f,o,0)|0)<<24>>24,a=e[r>>2]|0,c=a+12|0,m=e[c>>2]|0,(m|0)==(e[a+16>>2]|0)?(V0[e[(e[a>>2]|0)+40>>2]&127](a)|0,g=s,h=l,c=l):(e[c>>2]=m+4,g=s,h=l,c=l);;){o=o+-48|0,v=g+-1|0,l=e[r>>2]|0;do if(l)if(a=e[l+12>>2]|0,(a|0)==(e[l+16>>2]|0)?l=V0[e[(e[l>>2]|0)+36>>2]&127](l)|0:l=e[a>>2]|0,(l|0)==-1){e[r>>2]=0,m=1;break}else{m=(e[r>>2]|0)==0;break}else m=1;while(0);do if(c)if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)?l=V0[e[(e[c>>2]|0)+36>>2]&127](c)|0:l=e[l>>2]|0,(l|0)==-1){e[t>>2]=0,c=0,s=0,l=1;break}else{c=h,s=h,l=(h|0)==0;break}else c=h,s=0,l=1;while(0);if(a=e[r>>2]|0,!((g|0)>1&(m^l)))break;if(l=e[a+12>>2]|0,(l|0)==(e[a+16>>2]|0)?l=V0[e[(e[a>>2]|0)+36>>2]&127](a)|0:l=e[l>>2]|0,!(ge[e[(e[f>>2]|0)+12>>2]&63](f,2048,l)|0))break e;if(o=((ge[e[(e[f>>2]|0)+52>>2]&63](f,l,0)|0)<<24>>24)+(o*10|0)|0,l=e[r>>2]|0,a=l+12|0,m=e[a>>2]|0,(m|0)==(e[l+16>>2]|0)){V0[e[(e[l>>2]|0)+40>>2]&127](l)|0,g=v,h=c,c=s;continue}else{e[a>>2]=m+4,g=v,h=c,c=s;continue}}do if(a)if(l=e[a+12>>2]|0,(l|0)==(e[a+16>>2]|0)?l=V0[e[(e[a>>2]|0)+36>>2]&127](a)|0:l=e[l>>2]|0,(l|0)==-1){e[r>>2]=0,a=1;break}else{a=(e[r>>2]|0)==0;break}else a=1;while(0);do if(c)if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)?l=V0[e[(e[c>>2]|0)+36>>2]&127](c)|0:l=e[l>>2]|0,(l|0)!=-1){if(a)break e;break}else{e[t>>2]=0,d=60;break}else d=60;while(0);if((d|0)==60&&!a)break;e[n>>2]=e[n>>2]|2}while(0);return o|0}function zg(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0;o=r+4|0,f=(e[o>>2]|0)!=189,a=e[r>>2]|0,l=a,s=(e[n>>2]|0)-l|0,s=s>>>0<2147483647?s<<1:-1,l=(e[t>>2]|0)-l|0,a=Fi(f?a:0,s)|0,a||Kr();do if(f)e[r>>2]=a,c=a;else if(f=e[r>>2]|0,e[r>>2]=a,f)if(u=0,A0(e[o>>2]|0,f|0),a=u,u=0,a&1)a=R(0)|0,ie(a);else{c=e[r>>2]|0;break}else c=a;while(0);e[o>>2]=201,e[t>>2]=c+l,e[n>>2]=(e[r>>2]|0)+s}function Yg(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0;o=r+4|0,f=(e[o>>2]|0)!=189,a=e[r>>2]|0,l=a,s=(e[n>>2]|0)-l|0,s=s>>>0<2147483647?s<<1:-1,l=(e[t>>2]|0)-l>>2,a=Fi(f?a:0,s)|0,a||Kr();do if(f)e[r>>2]=a,c=a;else if(f=e[r>>2]|0,e[r>>2]=a,f)if(u=0,A0(e[o>>2]|0,f|0),a=u,u=0,a&1)a=R(0)|0,ie(a);else{c=e[r>>2]|0;break}else c=a;while(0);e[o>>2]=201,e[t>>2]=c+(l<<2),e[n>>2]=(e[r>>2]|0)+(s>>>2<<2)}function Xg(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0;o=t,f=p[r>>0]|0,f&1?(f=e[r>>2]|0,s=(f&-2)+-1|0,c=e[r+4>>2]|0,f=f&255):(s=10,c=(f&255)>>>1),a=n-o|0;do if((n|0)!=(t|0)){if((s-c|0)>>>0>>0&&(Un(r,s,c+a-s|0,c,c,0,0),f=p[r>>0]|0),f&1?l=e[r+8>>2]|0:l=r+1|0,o=n+(c-o)|0,(t|0)!=(n|0))for(f=t,s=l+c|0;p[s>>0]=p[f>>0]|0,f=f+1|0,(f|0)!=(n|0);)s=s+1|0;if(p[l+o>>0]=0,f=c+a|0,p[r>>0]&1){e[r+4>>2]=f;break}else{p[r>>0]=f<<1;break}}while(0);return r|0}function jg(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0;o=r+4|0,f=(e[o>>2]|0)!=189,a=e[r>>2]|0,l=a,s=(e[n>>2]|0)-l|0,s=s>>>0<2147483647?s<<1:-1,l=(e[t>>2]|0)-l>>2,a=Fi(f?a:0,s)|0,a||Kr();do if(f)e[r>>2]=a,c=a;else if(f=e[r>>2]|0,e[r>>2]=a,f)if(u=0,A0(e[o>>2]|0,f|0),a=u,u=0,a&1)a=R(0)|0,ie(a);else{c=e[r>>2]|0;break}else c=a;while(0);e[o>>2]=201,e[t>>2]=c+(l<<2),e[n>>2]=(e[r>>2]|0)+(s>>>2<<2)}function Wg(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0;o=t,f=p[r>>0]|0,f&1?(f=e[r>>2]|0,s=(f&-2)+-1|0,c=e[r+4>>2]|0,f=f&255):(s=1,c=(f&255)>>>1),a=n-o>>2;do if(a){if((s-c|0)>>>0>>0&&(Io(r,s,c+a-s|0,c,c,0,0),f=p[r>>0]|0),f&1?l=e[r+8>>2]|0:l=r+4|0,o=c+((n-o|0)>>>2)|0,(t|0)!=(n|0))for(f=t,s=l+(c<<2)|0;e[s>>2]=e[f>>2],f=f+4|0,(f|0)!=(n|0);)s=s+4|0;if(e[l+(o<<2)>>2]=0,f=c+a|0,p[r>>0]&1){e[r+4>>2]=f;break}else{p[r>>0]=f<<1;break}}while(0);return r|0}function Zg(r,t){r=r|0,t=t|0;var n=0;e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,p[r+128>>0]=0;do if(t)if(u=0,b(125,r|0,t|0),n=u,u=0,n&1)n=R()|0,Xn(r),B(n|0);else{Bo(r,t);break}while(0)}function Kg(r,t){r=r|0,t=t|0,l2(r,t,s2(43148)|0)}function Jg(r,t){r=r|0,t=t|0,l2(r,t,s2(43188)|0)}function $g(r,t){r=r|0,t=t|0,l2(r,t,s2(44220)|0)}function bg(r,t){r=r|0,t=t|0,l2(r,t,s2(44212)|0)}function ev(r,t){r=r|0,t=t|0,l2(r,t,s2(44280)|0)}function iv(r,t){r=r|0,t=t|0,l2(r,t,s2(44288)|0)}function rv(r,t){r=r|0,t=t|0,l2(r,t,s2(44344)|0)}function tv(r,t){r=r|0,t=t|0,l2(r,t,s2(44352)|0)}function nv(r,t){r=r|0,t=t|0,l2(r,t,s2(44360)|0)}function fv(r,t){r=r|0,t=t|0,l2(r,t,s2(44368)|0)}function sv(r,t){r=r|0,t=t|0,l2(r,t,s2(43260)|0)}function ov(r,t){r=r|0,t=t|0,l2(r,t,s2(43332)|0)}function lv(r,t){r=r|0,t=t|0,l2(r,t,s2(43392)|0)}function uv(r,t){r=r|0,t=t|0,l2(r,t,s2(43452)|0)}function av(r,t){r=r|0,t=t|0,l2(r,t,s2(43764)|0)}function cv(r,t){r=r|0,t=t|0,l2(r,t,s2(43828)|0)}function hv(r,t){r=r|0,t=t|0,l2(r,t,s2(43892)|0)}function Sv(r,t){r=r|0,t=t|0,l2(r,t,s2(43956)|0)}function mv(r,t){r=r|0,t=t|0,l2(r,t,s2(43992)|0)}function pv(r,t){r=r|0,t=t|0,l2(r,t,s2(44028)|0)}function gv(r,t){r=r|0,t=t|0,l2(r,t,s2(44064)|0)}function vv(r,t){r=r|0,t=t|0,l2(r,t,s2(44100)|0)}function dv(r,t){r=r|0,t=t|0,l2(r,t,s2(43544)|0)}function kv(r,t){r=r|0,t=t|0,l2(r,t,s2(43636)|0)}function _v(r,t){r=r|0,t=t|0,l2(r,t,s2(43668)|0)}function Tv(r,t){r=r|0,t=t|0,l2(r,t,s2(43700)|0)}function wv(r,t){r=r|0,t=t|0,l2(r,t,s2(44140)|0)}function Cv(r,t){r=r|0,t=t|0,l2(r,t,s2(44180)|0)}function Xn(r){r=r|0;var t=0,n=0,f=0;n=e[r>>2]|0;do if(n){if(f=r+4|0,t=e[f>>2]|0,(t|0)!=(n|0)){do t=t+-4|0;while((t|0)!=(n|0));e[f>>2]=t}if((r+16|0)==(n|0)){p[r+128>>0]=0;break}else{H(n);break}}while(0)}function Av(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0;if(l=r+4|0,n=e[l>>2]|0,f=e[r>>2]|0,s=n-f>>2,s>>>0>=t>>>0){if(s>>>0>t>>>0&&(o=f+(t<<2)|0,(n|0)!=(o|0))){do n=n+-4|0;while((n|0)!=(o|0));e[l>>2]=n}}else Bv(r,t-s|0)}function Dv(r,t){r=r|0,t=t|0;var n=0;return n=e[r+8>>2]|0,(e[r+12>>2]|0)-n>>2>>>0>t>>>0?n=(e[n+(t<<2)>>2]|0)!=0:n=0,n|0}function yv(r){r=r|0;var t=0,n=0;n=r+4|0,t=e[n>>2]|0,n=e[n+4>>2]|0,r=(e[r>>2]|0)+(n>>1)|0,n&1&&(t=e[(e[r>>2]|0)+t>>2]|0),W0[t&255](r)}function Iv(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0;e[n>>2]=r,e[o>>2]=f,a&2?(s-f|0)<3?r=1:(e[o>>2]=f+1,p[f>>0]=-17,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=-69,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=-65,c=4):c=4;e:do if((c|0)==4)if(m=t,r=e[n>>2]|0,r>>>0>>0)for(;;){if(a=F[r>>1]|0,c=a&65535,c>>>0>l>>>0){r=2;break e}do if((a&65535)<128){if(r=e[o>>2]|0,(s-r|0)<1){r=1;break e}e[o>>2]=r+1,p[r>>0]=a}else{if((a&65535)<2048){if(r=e[o>>2]|0,(s-r|0)<2){r=1;break e}e[o>>2]=r+1,p[r>>0]=c>>>6|192,f=e[o>>2]|0,e[o>>2]=f+1,p[f>>0]=c&63|128;break}if((a&65535)<55296){if(r=e[o>>2]|0,(s-r|0)<3){r=1;break e}e[o>>2]=r+1,p[r>>0]=c>>>12|224,f=e[o>>2]|0,e[o>>2]=f+1,p[f>>0]=c>>>6&63|128,f=e[o>>2]|0,e[o>>2]=f+1,p[f>>0]=c&63|128;break}if((a&65535)>=56320){if((a&65535)<57344){r=2;break e}if(r=e[o>>2]|0,(s-r|0)<3){r=1;break e}e[o>>2]=r+1,p[r>>0]=c>>>12|224,f=e[o>>2]|0,e[o>>2]=f+1,p[f>>0]=c>>>6&63|128,f=e[o>>2]|0,e[o>>2]=f+1,p[f>>0]=c&63|128;break}if((m-r|0)<4){r=1;break e}if(r=r+2|0,a=$[r>>1]|0,(a&64512|0)!=56320){r=2;break e}if((s-(e[o>>2]|0)|0)<4){r=1;break e}if(f=c&960,((f<<10)+65536|c<<10&64512|a&1023)>>>0>l>>>0){r=2;break e}e[n>>2]=r,r=(f>>>6)+1|0,f=e[o>>2]|0,e[o>>2]=f+1,p[f>>0]=r>>>2|240,f=e[o>>2]|0,e[o>>2]=f+1,p[f>>0]=c>>>2&15|r<<4&48|128,f=e[o>>2]|0,e[o>>2]=f+1,p[f>>0]=c<<4&48|a>>>6&15|128,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=a&63|128}while(0);if(r=(e[n>>2]|0)+2|0,e[n>>2]=r,r>>>0>=t>>>0){r=0;break}}else r=0;while(0);return r|0}function Ev(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0,g=0,v=0,d=0;e[n>>2]=r,e[o>>2]=f,a&4?(r=e[n>>2]|0,a=t,(a-r|0)>2&&(p[r>>0]|0)==-17&&(p[r+1>>0]|0)==-69&&(p[r+2>>0]|0)==-65?(e[n>>2]=r+3,c=e[o>>2]|0):c=f):(c=f,a=t),v=s,f=e[n>>2]|0,r=f>>>0>>0;e:do if(r&c>>>0>>0)for(;;){if(r=p[f>>0]|0,h=r&255,h>>>0>l>>>0){r=2;break e}do if(r<<24>>24>-1)F[c>>1]=r&255,e[n>>2]=f+1;else{if((r&255)<194){r=2;break e}if((r&255)<224){if((a-f|0)<2){r=1;break e}if(r=z[f+1>>0]|0,(r&192|0)!=128){r=2;break e}if(r=r&63|h<<6&1984,r>>>0>l>>>0){r=2;break e}F[c>>1]=r,e[n>>2]=f+2;break}if((r&255)<240){if((a-f|0)<3){r=1;break e}switch(m=p[f+1>>0]|0,r=p[f+2>>0]|0,h|0){case 224:{if((m&-32)<<24>>24!=-96){r=2;break e}break}case 237:{if((m&-32)<<24>>24!=-128){r=2;break e}break}default:if((m&-64)<<24>>24!=-128){r=2;break e}}if(r=r&255,(r&192|0)!=128){r=2;break e}if(r=(m&255)<<6&4032|h<<12|r&63,(r&65535)>>>0>l>>>0){r=2;break e}F[c>>1]=r,e[n>>2]=f+3;break}if((r&255)>=245){r=2;break e}if((a-f|0)<4){r=1;break e}switch(m=p[f+1>>0]|0,r=p[f+2>>0]|0,f=p[f+3>>0]|0,h|0){case 240:{if((m+112&255)>=48){r=2;break e}break}case 244:{if((m&-16)<<24>>24!=-128){r=2;break e}break}default:if((m&-64)<<24>>24!=-128){r=2;break e}}if(g=r&255,(g&192|0)!=128){r=2;break e}if(r=f&255,(r&192|0)!=128){r=2;break e}if((v-c|0)<4){r=1;break e}if(h=h&7,f=m&255,m=g<<6,r=r&63,(f<<12&258048|h<<18|m&4032|r)>>>0>l>>>0){r=2;break e}F[c>>1]=f<<2&60|g>>>4&3|((f>>>4&3|h<<2)<<6)+16320|55296,g=c+2|0,e[o>>2]=g,F[g>>1]=r|m&960|56320,e[n>>2]=(e[n>>2]|0)+4}while(0);if(c=(e[o>>2]|0)+2|0,e[o>>2]=c,f=e[n>>2]|0,r=f>>>0>>0,!(r&c>>>0>>0)){d=39;break}}else d=39;while(0);return(d|0)==39&&(r=r&1),r|0}function Pv(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0;g=t,s&4|0&&(g-r|0)>2&&(p[r>>0]|0)==-17&&(p[r+1>>0]|0)==-69?s=(p[r+2>>0]|0)==-65?r+3|0:r:s=r;e:do if((n|0)!=0&s>>>0>>0){h=s,o=0;i:for(;;){if(s=p[h>>0]|0,m=s&255,m>>>0>f>>>0){s=h,o=42;break e}do if(s<<24>>24>-1)s=h+1|0;else{if((s&255)<194){s=h,o=42;break e}if((s&255)<224){if((g-h|0)<2){s=h,o=42;break e}if(s=z[h+1>>0]|0,(s&192|0)!=128){s=h,o=42;break e}if((s&63|m<<6&1984)>>>0>f>>>0){s=h,o=42;break e}s=h+2|0;break}if((s&255)<240){if(s=h,(g-s|0)<3){s=h,o=42;break e}switch(a=p[h+1>>0]|0,l=p[h+2>>0]|0,m|0){case 224:{if((a&-32)<<24>>24!=-96){o=20;break i}break}case 237:{if((a&-32)<<24>>24!=-128){o=22;break i}break}default:if((a&-64)<<24>>24!=-128){o=24;break i}}if(s=l&255,(s&192|0)!=128){s=h,o=42;break e}if(((a&255)<<6&4032|m<<12&61440|s&63)>>>0>f>>>0){s=h,o=42;break e}s=h+3|0;break}if((s&255)>=245){s=h,o=42;break e}if(s=h,(n-o|0)>>>0<2|(g-s|0)<4){s=h,o=42;break e}switch(c=p[h+1>>0]|0,l=p[h+2>>0]|0,a=p[h+3>>0]|0,m|0){case 240:{if((c+112&255)>=48){o=32;break i}break}case 244:{if((c&-16)<<24>>24!=-128){o=34;break i}break}default:if((c&-64)<<24>>24!=-128){o=36;break i}}if(l=l&255,(l&192|0)!=128){s=h,o=42;break e}if(s=a&255,(s&192|0)!=128){s=h,o=42;break e}if(((c&255)<<12&258048|m<<18&1835008|l<<6&4032|s&63)>>>0>f>>>0){s=h,o=42;break e}s=h+4|0,o=o+1|0}while(0);if(o=o+1|0,o>>>0>>0&s>>>0>>0)h=s;else{o=42;break e}}if((o|0)==20){s=s-r|0;break}else if((o|0)==22){s=s-r|0;break}else if((o|0)==24){s=s-r|0;break}else if((o|0)==32){s=s-r|0;break}else if((o|0)==34){s=s-r|0;break}else if((o|0)==36){s=s-r|0;break}}else o=42;while(0);return(o|0)==42&&(s=s-r|0),s|0}function Lv(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0;e[n>>2]=r,e[o>>2]=f,m=s,a&2?(m-f|0)<3?r=1:(e[o>>2]=f+1,p[f>>0]=-17,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=-69,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=-65,c=4):c=4;e:do if((c|0)==4)if(r=e[n>>2]|0,r>>>0>>0)for(;;){if(a=e[r>>2]|0,a>>>0>l>>>0|(a&-2048|0)==55296){r=2;break e}do if(a>>>0>=128){if(a>>>0<2048){if(r=e[o>>2]|0,(m-r|0)<2){r=1;break e}e[o>>2]=r+1,p[r>>0]=a>>>6|192,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=a&63|128;break}if(r=e[o>>2]|0,s=m-r|0,a>>>0<65536){if((s|0)<3){r=1;break e}e[o>>2]=r+1,p[r>>0]=a>>>12|224,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=a>>>6&63|128,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=a&63|128;break}else{if((s|0)<4){r=1;break e}e[o>>2]=r+1,p[r>>0]=a>>>18|240,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=a>>>12&63|128,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=a>>>6&63|128,c=e[o>>2]|0,e[o>>2]=c+1,p[c>>0]=a&63|128;break}}else{if(r=e[o>>2]|0,(m-r|0)<1){r=1;break e}e[o>>2]=r+1,p[r>>0]=a}while(0);if(r=(e[n>>2]|0)+4|0,e[n>>2]=r,r>>>0>=t>>>0){r=0;break}}else r=0;while(0);return r|0}function Rv(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0;var c=0,m=0,h=0,g=0,v=0,d=0;e[n>>2]=r,e[o>>2]=f,a&4?(r=e[n>>2]|0,a=t,(a-r|0)>2&&(p[r>>0]|0)==-17&&(p[r+1>>0]|0)==-69&&(p[r+2>>0]|0)==-65&&(e[n>>2]=r+3,f=e[o>>2]|0),v=a):v=t,a=e[n>>2]|0,r=a>>>0>>0;e:do if(r&f>>>0>>0)for(;;){r=p[a>>0]|0,g=r&255;do if(r<<24>>24>-1){if(g>>>0>l>>>0){r=2;break e}e[f>>2]=g,e[n>>2]=a+1}else{if((r&255)<194){r=2;break e}if((r&255)<224){if((v-a|0)<2){r=1;break e}if(r=z[a+1>>0]|0,(r&192|0)!=128){r=2;break e}if(r=r&63|g<<6&1984,r>>>0>l>>>0){r=2;break e}e[f>>2]=r,e[n>>2]=a+2;break}if((r&255)<240){if((v-a|0)<3){r=1;break e}switch(c=p[a+1>>0]|0,r=p[a+2>>0]|0,g|0){case 224:{if((c&-32)<<24>>24!=-96){r=2;break e}break}case 237:{if((c&-32)<<24>>24!=-128){r=2;break e}break}default:if((c&-64)<<24>>24!=-128){r=2;break e}}if(r=r&255,(r&192|0)!=128){r=2;break e}if(r=(c&255)<<6&4032|g<<12&61440|r&63,r>>>0>l>>>0){r=2;break e}e[f>>2]=r,e[n>>2]=a+3;break}if((r&255)>=245){r=2;break e}if((v-a|0)<4){r=1;break e}switch(h=p[a+1>>0]|0,r=p[a+2>>0]|0,c=p[a+3>>0]|0,g|0){case 240:{if((h+112&255)>=48){r=2;break e}break}case 244:{if((h&-16)<<24>>24!=-128){r=2;break e}break}default:if((h&-64)<<24>>24!=-128){r=2;break e}}if(m=r&255,(m&192|0)!=128){r=2;break e}if(r=c&255,(r&192|0)!=128){r=2;break e}if(r=(h&255)<<12&258048|g<<18&1835008|m<<6&4032|r&63,r>>>0>l>>>0){r=2;break e}e[f>>2]=r,e[n>>2]=a+4}while(0);if(f=(e[o>>2]|0)+4|0,e[o>>2]=f,a=e[n>>2]|0,r=a>>>0>>0,!(r&f>>>0>>0)){d=38;break}}else d=38;while(0);return(d|0)==38&&(r=r&1),r|0}function Fv(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0;g=t,s&4|0&&(g-r|0)>2&&(p[r>>0]|0)==-17&&(p[r+1>>0]|0)==-69?s=(p[r+2>>0]|0)==-65?r+3|0:r:s=r;e:do if((n|0)!=0&s>>>0>>0){m=s,h=0;i:for(;;){s=p[m>>0]|0,c=s&255;do if(s<<24>>24>-1){if(c>>>0>f>>>0){s=m,o=42;break e}s=m+1|0}else{if((s&255)<194){s=m,o=42;break e}if((s&255)<224){if((g-m|0)<2){s=m,o=42;break e}if(s=z[m+1>>0]|0,(s&192|0)!=128){s=m,o=42;break e}if((s&63|c<<6&1984)>>>0>f>>>0){s=m,o=42;break e}s=m+2|0;break}if((s&255)<240){if(s=m,(g-s|0)<3){s=m,o=42;break e}switch(l=p[m+1>>0]|0,o=p[m+2>>0]|0,c|0){case 224:{if((l&-32)<<24>>24!=-96){o=20;break i}break}case 237:{if((l&-32)<<24>>24!=-128){o=22;break i}break}default:if((l&-64)<<24>>24!=-128){o=24;break i}}if(s=o&255,(s&192|0)!=128){s=m,o=42;break e}if(((l&255)<<6&4032|c<<12&61440|s&63)>>>0>f>>>0){s=m,o=42;break e}s=m+3|0;break}if((s&255)>=245){s=m,o=42;break e}if(s=m,(g-s|0)<4){s=m,o=42;break e}switch(a=p[m+1>>0]|0,o=p[m+2>>0]|0,l=p[m+3>>0]|0,c|0){case 240:{if((a+112&255)>=48){o=32;break i}break}case 244:{if((a&-16)<<24>>24!=-128){o=34;break i}break}default:if((a&-64)<<24>>24!=-128){o=36;break i}}if(o=o&255,(o&192|0)!=128){s=m,o=42;break e}if(s=l&255,(s&192|0)!=128){s=m,o=42;break e}if(((a&255)<<12&258048|c<<18&1835008|o<<6&4032|s&63)>>>0>f>>>0){s=m,o=42;break e}s=m+4|0}while(0);if(h=h+1|0,h>>>0>>0&s>>>0>>0)m=s;else{o=42;break e}}if((o|0)==20){s=s-r|0;break}else if((o|0)==22){s=s-r|0;break}else if((o|0)==24){s=s-r|0;break}else if((o|0)==32){s=s-r|0;break}else if((o|0)==34){s=s-r|0;break}else if((o|0)==36){s=s-r|0;break}}else o=42;while(0);return(o|0)==42&&(s=s-r|0),s|0}function Ov(r){r=r|0,V(45196),V(45184),V(45172),V(45160),V(45148),V(45136),V(45124),V(45112),V(45100),V(45088),V(45076),V(45064),V(45052),V(45040)}function xv(r){r=r|0,b0(45368),b0(45356),b0(45344),b0(45332),b0(45320),b0(45308),b0(45296),b0(45284),b0(45272),b0(45260),b0(45248),b0(45236),b0(45224),b0(45212)}function Mv(r){r=r|0,V(46e3),V(45988),V(45976),V(45964),V(45952),V(45940),V(45928),V(45916),V(45904),V(45892),V(45880),V(45868),V(45856),V(45844),V(45832),V(45820),V(45808),V(45796),V(45784),V(45772),V(45760),V(45748),V(45736),V(45724)}function qv(r){r=r|0,b0(46292),b0(46280),b0(46268),b0(46256),b0(46244),b0(46232),b0(46220),b0(46208),b0(46196),b0(46184),b0(46172),b0(46160),b0(46148),b0(46136),b0(46124),b0(46112),b0(46100),b0(46088),b0(46076),b0(46064),b0(46052),b0(46040),b0(46028),b0(46016)}function Nv(r){r=r|0,V(47104),V(47092),V(47080),V(47068),V(47056),V(47044),V(47032),V(47020),V(47008),V(46996),V(46984),V(46972),V(46960),V(46948),V(46936),V(46924),V(46912),V(46900),V(46888),V(46876),V(46864),V(46852),V(46840),V(46828)}function Uv(r){r=r|0,b0(47396),b0(47384),b0(47372),b0(47360),b0(47348),b0(47336),b0(47324),b0(47312),b0(47300),b0(47288),b0(47276),b0(47264),b0(47252),b0(47240),b0(47228),b0(47216),b0(47204),b0(47192),b0(47180),b0(47168),b0(47156),b0(47144),b0(47132),b0(47120)}function Bv(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0;c=C,C=C+32|0,a=c,o=e[r+8>>2]|0,n=e[r+4>>2]|0,o-n>>2>>>0>>0?(f=e[r>>2]|0,l=n-f>>2,s=l+t|0,s>>>0>1073741823&&E1(r),n=o-f|0,n>>2>>>0<536870911?(n=n>>1,n=n>>>0>>0?s:n):n=1073741823,Qv(a,n,l,r+16|0),l=a+8|0,o=e[l>>2]|0,we(o|0,0,t<<2|0)|0,e[l>>2]=o+(t<<2),Gv(r,a),Hv(a)):Bo(r,t),C=c}function Bo(r,t){r=r|0,t=t|0;var n=0;n=r+4|0,r=t,t=e[n>>2]|0;do e[t>>2]=0,t=(e[n>>2]|0)+4|0,e[n>>2]=t,r=r+-1|0;while(r|0)}function Qv(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0;e[r+12>>2]=0,e[r+16>>2]=f;do if(t)if(s=f+112|0,t>>>0<29&(p[s>>0]|0)==0){p[s>>0]=1;break}else{f=k0(t<<2)|0;break}else f=0;while(0);e[r>>2]=f,n=f+(n<<2)|0,e[r+8>>2]=n,e[r+4>>2]=n,e[r+12>>2]=f+(t<<2)}function Gv(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0;f=e[r>>2]|0,o=r+4|0,n=t+4|0,s=(e[o>>2]|0)-f|0,l=(e[n>>2]|0)+(0-(s>>2)<<2)|0,e[n>>2]=l,qe(l|0,f|0,s|0)|0,s=e[r>>2]|0,e[r>>2]=e[n>>2],e[n>>2]=s,s=t+8|0,f=e[o>>2]|0,e[o>>2]=e[s>>2],e[s>>2]=f,s=r+8|0,r=t+12|0,f=e[s>>2]|0,e[s>>2]=e[r>>2],e[r>>2]=f,e[t>>2]=e[n>>2]}function Hv(r){r=r|0;var t=0,n=0,f=0;if(n=e[r+4>>2]|0,f=r+8|0,t=e[f>>2]|0,(t|0)!=(n|0)){do t=t+-4|0;while((t|0)!=(n|0));e[f>>2]=t}n=e[r>>2]|0;do if(n)if(t=e[r+16>>2]|0,(t|0)==(n|0)){p[t+112>>0]=0;break}else{H(n);break}while(0)}function Vv(r,t){r=r|0,t=t|0;var n=0;t>>>0>1073741823&&E1(r),n=r+128|0,t>>>0<29&(p[n>>0]|0)==0?(p[n>>0]=1,n=r+16|0):n=k0(t<<2)|0,e[r+4>>2]=n,e[r>>2]=n,e[r+8>>2]=n+(t<<2)}function zv(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0;a=C,C=C+16|0,l=a;do if((r|0)!=(t|0)){if(s=r2()|0,o=e[s>>2]|0,e[s>>2]=0,f=+rf(r,l,g2()|0),r=e[s>>2]|0,r||(e[s>>2]=o),(e[l>>2]|0)!=(t|0)){e[n>>2]=4,f=0;break}(r|0)==34&&(e[n>>2]=4)}else e[n>>2]=4,f=0;while(0);return C=a,+f}function Yv(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0;a=C,C=C+16|0,l=a;do if((r|0)!=(t|0)){if(s=r2()|0,o=e[s>>2]|0,e[s>>2]=0,f=+rf(r,l,g2()|0),r=e[s>>2]|0,r||(e[s>>2]=o),(e[l>>2]|0)!=(t|0)){e[n>>2]=4,f=0;break}(r|0)==34&&(e[n>>2]=4)}else e[n>>2]=4,f=0;while(0);return C=a,+f}function Xv(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0;a=C,C=C+16|0,l=a;do if((r|0)==(t|0))e[n>>2]=4,f=0;else{if(s=r2()|0,o=e[s>>2]|0,e[s>>2]=0,f=+rf(r,l,g2()|0),r=e[s>>2]|0,r||(e[s>>2]=o),(e[l>>2]|0)!=(t|0)){e[n>>2]=4,f=0;break}(r|0)==34&&(e[n>>2]=4)}while(0);return C=a,+f}function jv(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0;a=C,C=C+16|0,l=a;do if((r|0)!=(t|0)){if((p[r>>0]|0)==45){e[n>>2]=4,f=0,r=0;break}if(s=r2()|0,o=e[s>>2]|0,e[s>>2]=0,r=Jr(r,l,f,g2()|0)|0,f=e[s>>2]|0,f||(e[s>>2]=o),(e[l>>2]|0)!=(t|0)){e[n>>2]=4,f=0,r=0;break}(f|0)==34?(e[n>>2]=4,f=-1,r=-1):f=f0}else e[n>>2]=4,f=0,r=0;while(0);return f0=f,C=a,r|0}function Wv(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;do if((r|0)!=(t|0)){if((p[r>>0]|0)==45){e[n>>2]=4,r=0;break}if(o=r2()|0,l=e[o>>2]|0,e[o>>2]=0,r=Jr(r,a,f,g2()|0)|0,f=f0,s=e[o>>2]|0,s||(e[o>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,r=0;break}if(f>>>0>0|(f|0)==0&r>>>0>4294967295|(s|0)==34){e[n>>2]=4,r=-1;break}else break}else e[n>>2]=4,r=0;while(0);return C=c,r|0}function Zv(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;do if((r|0)!=(t|0)){if((p[r>>0]|0)==45){e[n>>2]=4,r=0;break}if(o=r2()|0,l=e[o>>2]|0,e[o>>2]=0,r=Jr(r,a,f,g2()|0)|0,f=f0,s=e[o>>2]|0,s||(e[o>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,r=0;break}if(f>>>0>0|(f|0)==0&r>>>0>4294967295|(s|0)==34){e[n>>2]=4,r=-1;break}else break}else e[n>>2]=4,r=0;while(0);return C=c,r|0}function Kv(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;do if((r|0)!=(t|0)){if((p[r>>0]|0)==45){e[n>>2]=4,r=0;break}if(o=r2()|0,l=e[o>>2]|0,e[o>>2]=0,r=Jr(r,a,f,g2()|0)|0,f=f0,s=e[o>>2]|0,s||(e[o>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,r=0;break}if(f>>>0>0|(f|0)==0&r>>>0>65535|(s|0)==34){e[n>>2]=4,r=-1;break}else{r=r&65535;break}}else e[n>>2]=4,r=0;while(0);return C=c,r|0}function Jv(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;do if((r|0)!=(t|0)){if(o=r2()|0,l=e[o>>2]|0,e[o>>2]=0,r=bo(r,a,f,g2()|0)|0,f=f0,s=e[o>>2]|0,s||(e[o>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,f=0,r=0;break}if((s|0)==34)return e[n>>2]=4,a=(f|0)>0|(f|0)==0&r>>>0>0,f0=a?2147483647:-2147483648,C=c,(a?-1:0)|0}else e[n>>2]=4,f=0,r=0;while(0);return f0=f,C=c,r|0}function $v(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;e:do if((r|0)==(t|0))e[n>>2]=4,r=0;else{if(o=r2()|0,l=e[o>>2]|0,e[o>>2]=0,r=bo(r,a,f,g2()|0)|0,f=f0,s=e[o>>2]|0,s||(e[o>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,r=0;break}do if((s|0)==34){if(e[n>>2]=4,(f|0)>0|(f|0)==0&r>>>0>0){r=2147483647;break e}}else{if((f|0)<-1|(f|0)==-1&r>>>0<2147483648){e[n>>2]=4;break}if((f|0)>0|(f|0)==0&r>>>0>2147483647){e[n>>2]=4,r=2147483647;break e}else break e}while(0);r=-2147483648}while(0);return C=c,r|0}function bv(){}function J2(r,t,n,f){return r=r|0,t=t|0,n=n|0,f=f|0,f=t-f-(n>>>0>r>>>0|0)>>>0,f0=f,r-n>>>0|0|0}function we(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;if(f=r+n|0,(n|0)>=20){if(t=t&255,o=r&3,l=t|t<<8|t<<16|t<<24,s=f&-4,o)for(o=r+4-o|0;(r|0)<(o|0);)p[r>>0]=t,r=r+1|0;for(;(r|0)<(s|0);)e[r>>2]=l,r=r+4|0}for(;(r|0)<(f|0);)p[r>>0]=t,r=r+1|0;return r-n|0}function E2(r,t,n,f){return r=r|0,t=t|0,n=n|0,f=f|0,n=r+n>>>0,f0=t+f+(n>>>0>>0|0)>>>0,n|0|0}function K1(r,t,n){return r=r|0,t=t|0,n=n|0,(n|0)<32?(f0=t>>>n,r>>>n|(t&(1<>>n-32|0)}function qe(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;if((n|0)>=4096)return $u(r|0,t|0,n|0)|0;if(f=r|0,(r&3)==(t&3)){for(;r&3;){if(!n)return f|0;p[r>>0]=p[t>>0]|0,r=r+1|0,t=t+1|0,n=n-1|0}for(;(n|0)>=4;)e[r>>2]=e[t>>2],r=r+4|0,t=t+4|0,n=n-4|0}for(;(n|0)>0;)p[r>>0]=p[t>>0]|0,r=r+1|0,t=t+1|0,n=n-1|0;return f|0}function f2(r,t,n){return r=r|0,t=t|0,n=n|0,(n|0)<32?(f0=t<>>32-n,r<0;)r=r-1|0,t=t-1|0,n=n-1|0,p[r>>0]=p[t>>0]|0;r=f}else qe(r,t,n)|0;return r|0}function qA(r,t,n){return r=r|0,t=t|0,n=n|0,(n|0)<32?(f0=t>>n,r>>>n|(t&(1<>n-32|0)}function Qo(r){r=r|0;var t=0;return t=p[x0+(r&255)>>0]|0,(t|0)<8?t|0:(t=p[x0+(r>>8&255)>>0]|0,(t|0)<8?t+8|0:(t=p[x0+(r>>16&255)>>0]|0,(t|0)<8?t+16|0:(p[x0+(r>>>24)>>0]|0)+24|0))}function ed(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0;return o=r&65535,s=t&65535,n=K(s,o)|0,f=r>>>16,r=(n>>>16)+(K(s,f)|0)|0,s=t>>>16,t=K(s,o)|0,f0=(r>>>16)+(K(s,f)|0)+(((r&65535)+t|0)>>>16)|0,r+t<<16|n&65535|0|0}function NA(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0;return m=t>>31|((t|0)<0?-1:0)<<1,c=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,o=f>>31|((f|0)<0?-1:0)<<1,s=((f|0)<0?-1:0)>>31|((f|0)<0?-1:0)<<1,a=J2(m^r,c^t,m,c)|0,l=f0,r=o^m,t=s^c,J2((zr(a,l,J2(o^n,s^f,o,s)|0,f0,0)|0)^r,f0^t,r,t)|0}function UA(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0;return s=C,C=C+16|0,a=s|0,l=t>>31|((t|0)<0?-1:0)<<1,o=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,m=f>>31|((f|0)<0?-1:0)<<1,c=((f|0)<0?-1:0)>>31|((f|0)<0?-1:0)<<1,r=J2(l^r,o^t,l,o)|0,t=f0,zr(r,t,J2(m^n,c^f,m,c)|0,f0,a)|0,f=J2(e[a>>2]^l,e[a+4>>2]^o,l,o)|0,n=f0,C=s,f0=n,f|0}function qi(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;return s=r,o=n,n=ed(s,o)|0,r=f0,f0=(K(t,o)|0)+(K(f,s)|0)+r|r&0,n|0|0|0}function Vr(r,t,n,f){return r=r|0,t=t|0,n=n|0,f=f|0,zr(r,t,n,f,0)|0}function jn(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;return o=C,C=C+16|0,s=o|0,zr(r,t,n,f,s)|0,C=o,f0=e[s+4>>2]|0,e[s>>2]|0|0}function zr(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0;if(h=r,c=t,m=c,l=n,v=f,a=v,!m)return o=(s|0)!=0,a?o?(e[s>>2]=r|0,e[s+4>>2]=t&0,v=0,s=0,f0=v,s|0):(v=0,s=0,f0=v,s|0):(o&&(e[s>>2]=(h>>>0)%(l>>>0),e[s+4>>2]=0),v=0,s=(h>>>0)/(l>>>0)>>>0,f0=v,s|0);o=(a|0)==0;do if(l){if(!o){if(o=(Ue(a|0)|0)-(Ue(m|0)|0)|0,o>>>0<=31){g=o+1|0,a=31-o|0,t=o-31>>31,l=g,r=h>>>(g>>>0)&t|m<>>(g>>>0)&t,o=0,a=h<>2]=r|0,e[s+4>>2]=c|t&0,v=0,s=0,f0=v,s|0):(v=0,s=0,f0=v,s|0)}if(o=l-1|0,o&l){a=(Ue(l|0)|0)+33-(Ue(m|0)|0)|0,y=64-a|0,g=32-a|0,c=g>>31,d=a-32|0,t=d>>31,l=a,r=g-1>>31&m>>>(d>>>0)|(m<>>(a>>>0))&t,t=t&m>>>(a>>>0),o=h<>>(d>>>0))&c|h<>31;break}return s&&(e[s>>2]=o&h,e[s+4>>2]=0),(l|0)==1?(d=c|t&0,y=r|0|0,f0=d,y|0):(y=Qo(l|0)|0,d=m>>>(y>>>0)|0,y=m<<32-y|h>>>(y>>>0)|0,f0=d,y|0)}else{if(o)return s&&(e[s>>2]=(m>>>0)%(l>>>0),e[s+4>>2]=0),d=0,y=(m>>>0)/(l>>>0)>>>0,f0=d,y|0;if(!h)return s&&(e[s>>2]=0,e[s+4>>2]=(m>>>0)%(a>>>0)),d=0,y=(m>>>0)/(a>>>0)>>>0,f0=d,y|0;if(o=a-1|0,!(o&a))return s&&(e[s>>2]=r|0,e[s+4>>2]=o&m|t&0),d=0,y=m>>>((Qo(a|0)|0)>>>0),f0=d,y|0;if(o=(Ue(a|0)|0)-(Ue(m|0)|0)|0,o>>>0<=30){t=o+1|0,a=31-o|0,l=t,r=m<>>(t>>>0),t=m>>>(t>>>0),o=0,a=h<>2]=r|0,e[s+4>>2]=c|t&0,d=0,y=0,f0=d,y|0):(d=0,y=0,f0=d,y|0)}while(0);if(!l)m=a,c=0,a=0;else{g=n|0|0,h=v|f&0,m=E2(g|0,h|0,-1,-1)|0,n=f0,c=a,a=0;do f=c,c=o>>>31|c<<1,o=a|o<<1,f=r<<1|f>>>31|0,v=r>>>31|t<<1|0,J2(m,n,f,v)|0,y=f0,d=y>>31|((y|0)<0?-1:0)<<1,a=d&1,r=J2(f,v,d&g,(((y|0)<0?-1:0)>>31|((y|0)<0?-1:0)<<1)&h)|0,t=f0,l=l-1|0;while(l|0);m=c,c=0}return l=0,s&&(e[s>>2]=r,e[s+4>>2]=t),d=(o|0)>>>31|(m|l)<<1|(l<<1|o>>>31)&0|c,y=(o<<1|0)&-2|a,f0=d,y|0}function id(r,t,n,f,s,o,l,a){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,x_[r&15](t|0,n|0,f|0,s|0,o|0,l|0,a|0)|0}function rd(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,nt[r&15](t|0,n|0,f|0,s|0,o|0)}function td(r,t,n,f,s,o,l){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=+l,M_[r&3](t|0,n|0,f|0,s|0,o|0,+l)|0}function nd(r,t){r=r|0,t=t|0,W0[r&255](t|0)}function fd(r,t,n){r=r|0,t=t|0,n=n|0,Ae[r&127](t|0,n|0)}function sd(r,t,n,f,s,o,l){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,lr[r&63](t|0,n|0,f|0,s|0,o|0,l|0)|0}function od(r,t){return r=r|0,t=t|0,V0[r&127](t|0)|0}function ld(r,t,n,f,s,o,l,a,c,m,h,g){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0,g=g|0,q_[r&3](t|0,n|0,f|0,s|0,o|0,l|0,a|0,c|0,m|0,h|0,g|0)|0}function ud(r,t,n,f){return r=r|0,t=t|0,n=n|0,f=f|0,ge[r&63](t|0,n|0,f|0)|0}function ad(r,t,n,f,s,o,l,a,c,m,h,g,v,d,y,E){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0,g=g|0,v=v|0,d=d|0,y=y|0,E=E|0,N_[r&3](t|0,n|0,f|0,s|0,o|0,l|0,a|0,c|0,m|0,h|0,g|0,v|0,d|0,y|0,E|0)}function cd(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,di[r&15](t|0,n|0,f|0,s|0,o|0,l|0)}function hd(r,t,n,f,s,o,l,a){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,U_[r&7](t|0,n|0,f|0,s|0,o|0,l|0,a|0)}function Sd(r,t,n,f,s,o,l,a,c,m,h){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0,B_[r&7](t|0,n|0,f|0,s|0,o|0,l|0,a|0,c|0,m|0,h|0)}function md(r,t,n){return r=r|0,t=t|0,n=n|0,F2[r&63](t|0,n|0)|0}function pd(r,t,n,f,s,o){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,ur[r&31](t|0,n|0,f|0,s|0,o|0)|0}function gd(r,t,n,f){return r=r|0,t=t|0,n=n|0,f=f|0,+Q_[r&3](t|0,n|0,f|0)}function vd(r){return r=r|0,G_[r&15]()|0}function dd(r,t,n,f,s){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,ff[r&31](t|0,n|0,f|0,s|0)|0}function kd(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0,ft[r&15](t|0,n|0,f|0)}function _d(r){r=r|0,Tl[r&7]()}function Td(r,t,n,f,s,o,l,a,c){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,H1[r&15](t|0,n|0,f|0,s|0,o|0,l|0,a|0,c|0)|0}function wd(r,t,n,f,s,o){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=+o,H_[r&7](t|0,n|0,f|0,s|0,+o)|0}function Cd(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,st[r&63](t|0,n|0,f|0,s|0)}function J1(r,t,n,f,s,o,l){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,Qe(0),0}function or(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,Qe(1)}function Go(r,t,n,f,s,o){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=+o,Qe(2),0}function Ce(r){r=r|0,Qe(3)}function Wn(r,t){r=r|0,t=t|0,Qe(4)}function v2(r,t,n,f,s,o){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,Qe(5),0}function Ie(r){return r=r|0,Qe(6),0}function Ad(r){return r=r|0,Ts(r|0)|0}function Dd(r){return r=r|0,Ds(r|0)|0}function yd(r){return r=r|0,n6(r|0)|0}function Ho(r,t,n,f,s,o,l,a,c,m,h){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0,Qe(7),0}function c2(r,t,n){return r=r|0,t=t|0,n=n|0,Qe(8),0}function Vo(r,t,n,f,s,o,l,a,c,m,h,g,v,d,y){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0,g=g|0,v=v|0,d=d|0,y=y|0,Qe(9)}function $1(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,Qe(10)}function Yr(r,t,n,f,s,o,l){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,Qe(11)}function Xr(r,t,n,f,s,o,l,a,c,m){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,Qe(12)}function A2(r,t){return r=r|0,t=t|0,Qe(13),0}function I1(r,t,n,f,s){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,Qe(14),0}function Id(r,t,n){return r=r|0,t=t|0,n=n|0,Qe(15),0}function mi(){return Qe(16),0}function Ni(r,t,n,f){return r=r|0,t=t|0,n=n|0,f=f|0,Qe(17),0}function Ed(r,t,n){r=r|0,t=t|0,n=n|0,Qe(18)}function Pd(r,t,n){r=r|0,t=t|0,n=n|0,Se(r|0,t|0,n|0)}function zo(){Qe(19)}function Ld(){o6()}function Rd(){Z2()}function Fd(){Cs()}function Ui(r,t,n,f,s,o,l,a){return r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,Qe(20),0}function jr(r,t,n,f,s){return r=r|0,t=t|0,n=n|0,f=f|0,s=+s,Qe(21),0}function B2(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0,Qe(22)}function Od(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0;if(m=C,C=C+32|0,a=m,e2(a,255,0),c=r+152|0,(e[a+4>>2]|0)==(e[c>>2]|0)&&(e[a+8>>2]|0)==(e[r+156>>2]|0)&&(e[a+12>>2]|0)==(e[r+160>>2]|0)){c=e[8900]|0,e[r+4580>>2]=c+(((e[8901]|0)-c|0)>>>1),C=m;return}for(n=r+4584|0,f=r+4588|0,s=e[f>>2]|0,t=e[n>>2]|0,o=s-t|0,o>>>0>=512?o>>>0>512&&(l=t+512|0,(s|0)!=(l|0))&&(e[f>>2]=l):(Y2(n,512-o|0),t=e[n>>2]|0),a=r+4580|0,e[a>>2]=t+256,l=r+160|0,s=r+156|0,o=-256;;){if(t=e[l>>2]|0,(o|0)>(0-t|0))if(n=e[s>>2]|0,(o|0)>(0-n|0))if(f=e[c>>2]|0,(o|0)>(0-f|0))if((o|0)>=0){if((o|0)<1){p[(e[a>>2]|0)+o>>0]=0,o=1;continue}(f|0)<=(o|0)?(n|0)>(o|0)?t=2:t=(t|0)>(o|0)?3:4:t=1}else t=-1;else t=-2;else t=-3;else t=-4;if(p[(e[a>>2]|0)+o>>0]=t,o=o+1|0,(o|0)==256)break}C=m}function xd(r){r=r|0;var t=0,n=0;e[r>>2]=35660,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),H(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),H(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&W0[e[(e[t>>2]|0)+4>>2]&255](t)}function Md(r){r=r|0;var t=0,n=0;if(e[r>>2]=35660,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),H(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),H(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){H(r);return}W0[e[(e[t>>2]|0)+4>>2]&255](t),H(r)}function qd(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0;if(I=C,C=C+352|0,A=I+328|0,_=I+192|0,n=I+343|0,f=I+342|0,s=I+341|0,o=I+340|0,v=I+176|0,a=I+168|0,c=I+160|0,m=I+152|0,P=I,y=I+136|0,e[r+28>>2]|0&&(e[r+20>>2]|0)!=1){if(d=r+4|0,E=r+32|0,l=e[E>>2]|0,!l){if(r=k0(48)|0,u=0,e[_>>2]=e[t>>2],e[_+4>>2]=e[t+4>>2],e[_+8>>2]=e[t+8>>2],p[A>>0]=p[n>>0]|0,g0(44,r|0,_|0,d|0,A|0),w=u,u=0,!(w&1))return w=r,C=I,w|0;w=R()|0,H(r),B(w|0)}if(r=e[r+12>>2]|0,(r|0)==8)switch(l|0){case 1:{if(r=k0(48)|0,u=0,e[_>>2]=e[t>>2],e[_+4>>2]=e[t+4>>2],e[_+8>>2]=e[t+8>>2],p[A>>0]=p[f>>0]|0,g0(45,r|0,_|0,d|0,A|0),w=u,u=0,!(w&1))return w=r,C=I,w|0;w=R()|0,H(r),B(w|0)}case 2:{if(r=k0(48)|0,u=0,e[_>>2]=e[t>>2],e[_+4>>2]=e[t+4>>2],e[_+8>>2]=e[t+8>>2],p[A>>0]=p[s>>0]|0,g0(46,r|0,_|0,d|0,A|0),w=u,u=0,!(w&1))return w=r,C=I,w|0;w=R()|0,H(r),B(w|0)}case 3:{if(r=k0(48)|0,u=0,e[_>>2]=e[t>>2],e[_+4>>2]=e[t+4>>2],e[_+8>>2]=e[t+8>>2],p[A>>0]=p[o>>0]|0,g0(47,r|0,_|0,d|0,A|0),w=u,u=0,!(w&1))return w=r,C=I,w|0;w=R()|0,H(r),B(w|0)}default:{l=_+56|0,s=_+4|0,e[_>>2]=36160,e[l>>2]=36180,u=0,b(62,_+56|0,s|0),I=u,u=0,I&1&&(w=R()|0,T0(l),B(w|0)),e[_+128>>2]=0,e[_+132>>2]=-1,e[_>>2]=36200,e[_+56>>2]=36220,u=0,A0(180,s|0),I=u,u=0;do if(I&1)r=R()|0;else{if(e[s>>2]=36236,o=_+36|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[_+52>>2]=16,e[A>>2]=0,e[A+4>>2]=0,e[A+8>>2]=0,u=0,b(63,s|0,A|0),I=u,u=0,I&1){r=R()|0,V(A),V(o),q0(s);break}V(A),u=0,r=ee(28,_|0,49007,21)|0,A=u,u=0;do if(!(A&1)&&(u=0,h=c0(36,r|0,e[E>>2]|0)|0,A=u,u=0,!(A&1))&&(u=0,ee(28,h|0,50997,18)|0,A=u,u=0,!(A&1))){if(f=B0(16)|0,u=0,b(64,v|0,s|0),A=u,u=0,A&1)r=R()|0;else if(!(p[8]|0)&&Y0(8)|0&&(j0(72,35648,l0|0)|0,X0(8)),u=0,g0(36,f|0,9,35648,v|0),A=u,u=0,A&1?n=1:(u=0,u0(6,f|0,824,96),u=0,n=0),r=R()|0,V(v),!n)break;Q0(f|0)}else w=34;while(0);(w|0)==34&&(r=R()|0),e[_>>2]=36200,e[l>>2]=36220,e[s>>2]=36236,V(o),q0(s),T0(l),w=r,B(w|0)}while(0);w=r,T0(l),B(w|0)}}switch((r|0)<=8&&(r=B0(16)|0,!(p[8]|0)&&Y0(8)|0&&(j0(72,35648,l0|0)|0,X0(8)),u=0,u0(7,r|0,8,35648),w=u,u=0,w&1||Se(r|0,824,96),w=R()|0,Q0(r|0),B(w|0)),n=16-r|0,l|0){case 1:{if(r=k0(60)|0,e[a>>2]=n,u=0,e[_>>2]=e[t>>2],e[_+4>>2]=e[t+4>>2],e[_+8>>2]=e[t+8>>2],e[A>>2]=e[a>>2],e[A+4>>2]=e[a+4>>2],g0(41,r|0,_|0,d|0,A|0),w=u,u=0,!(w&1))return w=r,C=I,w|0;w=R()|0,H(r),B(w|0)}case 2:{if(r=k0(60)|0,e[c>>2]=n,u=0,e[_>>2]=e[t>>2],e[_+4>>2]=e[t+4>>2],e[_+8>>2]=e[t+8>>2],e[A>>2]=e[c>>2],e[A+4>>2]=e[c+4>>2],g0(42,r|0,_|0,d|0,A|0),w=u,u=0,!(w&1))return w=r,C=I,w|0;w=R()|0,H(r),B(w|0)}case 3:{if(r=k0(60)|0,e[m>>2]=n,u=0,e[_>>2]=e[t>>2],e[_+4>>2]=e[t+4>>2],e[_+8>>2]=e[t+8>>2],e[A>>2]=e[m>>2],e[A+4>>2]=e[m+4>>2],g0(43,r|0,_|0,d|0,A|0),w=u,u=0,!(w&1))return w=r,C=I,w|0;w=R()|0,H(r),B(w|0)}default:{l=P+56|0,s=P+4|0,e[P>>2]=36160,e[l>>2]=36180,u=0,b(62,P+56|0,s|0),_=u,u=0,_&1&&(w=R()|0,T0(l),B(w|0)),e[P+128>>2]=0,e[P+132>>2]=-1,e[P>>2]=36200,e[P+56>>2]=36220,u=0,A0(180,s|0),_=u,u=0;do if(_&1)r=R()|0;else{if(e[s>>2]=36236,o=P+36|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[P+52>>2]=16,e[A>>2]=0,e[A+4>>2]=0,e[A+8>>2]=0,u=0,b(63,s|0,A|0),_=u,u=0,_&1){r=R()|0,V(A),V(o),q0(s);break}V(A),u=0,r=ee(28,P|0,49007,21)|0,_=u,u=0;do if(!(_&1)&&(u=0,g=c0(36,r|0,e[E>>2]|0)|0,_=u,u=0,!(_&1))&&(u=0,ee(28,g|0,50997,18)|0,_=u,u=0,!(_&1))){if(f=B0(16)|0,u=0,b(64,y|0,s|0),_=u,u=0,_&1)r=R()|0;else if(!(p[8]|0)&&Y0(8)|0&&(j0(72,35648,l0|0)|0,X0(8)),u=0,g0(36,f|0,9,35648,y|0),_=u,u=0,_&1?n=1:(u=0,u0(6,f|0,824,96),u=0,n=0),r=R()|0,V(y),!n)break;Q0(f|0)}else w=64;while(0);(w|0)==64&&(r=R()|0),e[P>>2]=36200,e[l>>2]=36220,e[s>>2]=36236,V(o),q0(s),T0(l),w=r,B(w|0)}while(0);w=r,T0(l),B(w|0)}}}return n=e[t+4>>2]|0,f=k0(16)|0,r=e[r+16>>2]|0,n?(e[f>>2]=36108,e[f+4>>2]=n,e[f+8>>2]=1,e[f+12>>2]=r,w=f,C=I,w|0):(w=e[t>>2]|0,e[f>>2]=36132,e[f+4>>2]=w,e[f+8>>2]=1,e[f+12>>2]=r,w=f,C=I,w|0)}function Nd(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0;l=C,C=C+32|0,c=l,e2(c,e[r+128>>2]|0,e[r+136>>2]|0),a=e[t+4>>2]|0,o=e[t+8>>2]|0,o=o|0?o:e[c+8>>2]|0,s=e[t+12>>2]|0,s=s|0?s:e[c+12>>2]|0,n=e[t+16>>2]|0,f=e[c+16>>2]|0,e[r+176>>2]=a|0?a:e[c+4>>2]|0,e[r+180>>2]=o,e[r+184>>2]=s,zd(r),s=r+132|0,t=(e[s>>2]|0)+32|0,t=(t|0)<128?2:(t|0)/64|0,o=0;do e[r+188+(o*12|0)>>2]=t,e[r+188+(o*12|0)+4>>2]=0,F[r+188+(o*12|0)+8>>1]=0,F[r+188+(o*12|0)+10>>1]=1,o=o+1|0;while((o|0)!=365);a=(e[s>>2]|0)+32|0,a=(a|0)<128?2:(a|0)/64|0,c=(n|0?n:f)&255,e[r+4568>>2]=a,e[r+4572>>2]=0,p[r+4576>>0]=c,p[r+4577>>0]=1,p[r+4578>>0]=0,e[r+4580>>2]=a,e[r+4584>>2]=1,p[r+4588>>0]=c,p[r+4589>>0]=1,p[r+4590>>0]=0,e[r+4592>>2]=0,C=l}function Ud(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0;for(l=r+88|0,o=e[t>>2]|0,e[t>>2]=0,t=e[l>>2]|0,e[l>>2]=o,t&&W0[e[(e[t>>2]|0)+4>>2]&255](t),l=f+4|0,o=e[l>>2]|0,p[r+4620>>0]=s&1,t=r+156|0,e[t>>2]=e[n>>2],e[t+4>>2]=e[n+4>>2],e[t+8>>2]=e[n+8>>2],e[t+12>>2]=e[n+12>>2],z2(r,f),Bd(r),t=e[r+116>>2]|0,r=e[r+112>>2]|0;s=t+-1|0,n=(p[s>>0]|0)==-1?7:8,!((r|0)<(n|0));)t=s,r=r-n|0;t=t-o|0,s=e[l>>2]|0,s&&(e[l>>2]=s+t,f=f+8|0,e[f>>2]=(e[f>>2]|0)-t)}function Bd(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0;M=C,C=C+32|0,q=M+12|0,x=M,a=r+172|0,w=(e[a>>2]|0)+4|0,(e[r+28>>2]|0)==1?c=e[r+20>>2]|0:c=1,t=K(c<<1,w)|0,e[q>>2]=0,Q=q+4|0,e[Q>>2]=0,e[q+8>>2]=0;e:do if(t){if((t|0)<0&&(u=0,A0(178,q|0),U=u,u=0,U&1)||(_=6),(_|0)==6&&(u=0,n=W(67,t|0)|0,U=u,u=0,!(U&1))){for(e[Q>>2]=n,e[q>>2]=n,e[q+8>>2]=n+t;;)if(p[n>>0]=0,n=(e[Q>>2]|0)+1|0,e[Q>>2]=n,t=t+-1|0,!t)break e}n=R()|0,t=e[q>>2]|0,t||B(n|0),(e[Q>>2]|0)!=(t|0)&&(e[Q>>2]=t),H(t),B(n|0)}while(0);e[x>>2]=0,U=x+4|0,e[U>>2]=0,e[x+8>>2]=0;do if(!c)_=19;else{if(c>>>0>1073741823&&(u=0,A0(178,x|0),A=u,u=0,A&1)||(_=17),(_|0)==17&&(f=c<<2,u=0,s=W(67,f|0)|0,A=u,u=0,!(A&1))){e[x>>2]=s,_=s+(c<<2)|0,e[x+8>>2]=_,we(s|0,0,f|0)|0,e[U>>2]=_,_=19;break}n=R()|0,t=e[x>>2]|0,f=t,t&&(s=e[U>>2]|0,(s|0)!=(t|0)&&(e[U>>2]=s+(~((s+-4-f|0)>>>2)<<2)),H(t))}while(0);if((_|0)==19){m=r+8|0,t=e[m>>2]|0;e:do if((t|0)>0){if(h=r+4596|0,g=K(c,w)|0,v=g+1|0,d=r+4600|0,y=r+160|0,E=r+168|0,P=r+164|0,I=r+156|0,A=r+88|0,l=r+4592|0,(c|0)>0)o=0;else{for(o=0;;){if(s=e[q>>2]|0,n=s+1|0,e[h>>2]=n,f=s+v|0,e[d>>2]=f,o&1?(e[h>>2]=f,e[d>>2]=n,n=1):n=v,c=e[y>>2]|0,(c|0)<=(o|0)&&(o|0)<((e[E>>2]|0)+c|0)){if(c=e[A>>2]|0,u=0,g0(e[(e[c>>2]|0)+8>>2]|0,c|0,s+(n+((e[I>>2]|0)-g))|0,e[P>>2]|0,w|0),c=u,u=0,c&1)break;t=e[m>>2]|0}if(o=o+1|0,(o|0)>=(t|0)){_=50;break e}}n=R()|0;break}i:for(;;){n=e[q>>2]|0,t=n+1|0,e[h>>2]=t,n=n+v|0,e[d>>2]=n,o&1&&(e[h>>2]=n,e[d>>2]=t,t=n),s=e[x>>2]|0,n=t,f=0;do{if(e[l>>2]=e[s+(f<<2)>>2],_=e[a>>2]|0,p[n+_>>0]=p[n+(_+-1)>>0]|0,p[(e[d>>2]|0)+-1>>0]=p[e[h>>2]>>0]|0,u=0,b(83,r|0,0),_=u,u=0,_&1){_=38;break i}s=e[x>>2]|0,e[s+(f<<2)>>2]=e[l>>2],n=(e[h>>2]|0)+w|0,e[h>>2]=n,t=e[d>>2]|0,e[d>>2]=t+w,f=f+1|0}while((f|0)<(c|0));if(_=e[y>>2]|0,(_|0)<=(o|0)&&(o|0)<((e[E>>2]|0)+_|0)&&(_=e[A>>2]|0,u=0,g0(e[(e[_>>2]|0)+8>>2]|0,_|0,t+(w+((e[I>>2]|0)-g))|0,e[P>>2]|0,w|0),_=u,u=0,_&1)){_=30;break}if(o=o+1|0,(o|0)>=(e[m>>2]|0)){_=50;break e}}if((_|0)==30){n=R()|0;break}else if((_|0)==38){n=R()|0;break}}else _=50;while(0);do if((_|0)==50){if(u=0,A0(183,r|0),r=u,u=0,r&1){n=R()|0;break}if(t=e[x>>2]|0,n=t,t&&(f=e[U>>2]|0,(f|0)!=(t|0)&&(e[U>>2]=f+(~((f+-4-n|0)>>>2)<<2)),H(t)),t=e[q>>2]|0,!t){C=M;return}(e[Q>>2]|0)!=(t|0)&&(e[Q>>2]=t),H(t),C=M;return}while(0);t=e[x>>2]|0,f=t,t&&(s=e[U>>2]|0,(s|0)!=(t|0)&&(e[U>>2]=s+(~((s+-4-f|0)>>>2)<<2)),H(t))}t=e[q>>2]|0,t||B(n|0),(e[Q>>2]|0)!=(t|0)&&(e[Q>>2]=t),H(t),B(n|0)}function Qd(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0;if(v=r+4596|0,n=e[v>>2]|0,P=r+172|0,t=e[P>>2]|0,!((t|0)<=0))for(d=r+4600|0,y=r+4604|0,E=r+4592|0,a=n,o=z[n+-1>>0]|0,n=z[n>>0]|0,g=0;m=e[d>>2]|0,l=p[m+(g+-1)>>0]|0,h=l&255,s=g+1|0,f=z[a+s>>0]|0,c=e[y>>2]|0,a=n-o|0,o=o-h|0,c=((((p[c+(f-n)>>0]|0)*9|0)+(p[c+a>>0]|0)|0)*9|0)+(p[c+o>>0]|0)|0,m=m+g|0,c?(t=n-h>>31,(t^o|0)<0?t=n:t=h+((t^a|0)<0?0:a)|0,h=Gd(r,c,z[m>>0]|0,t,0)|0,p[(e[d>>2]|0)+g>>0]=h):(t=Hd(r,l,m,t-g|0)|0,n=t+g|0,(n|0)!=(e[P>>2]|0)&&(h=Vd(r,h,z[(e[v>>2]|0)+n>>0]|0)|0,p[(e[d>>2]|0)+n>>0]=h,h=e[E>>2]|0,e[E>>2]=(h|0)<1?0:h+-1|0,t=t+1|0),s=t+g|0,f=e[v>>2]|0,n=z[f+(s+-1)>>0]|0,f=z[f+s>>0]|0),t=e[P>>2]|0,!((t|0)<=(s|0));)a=e[v>>2]|0,o=n,n=f,g=s}function Gd(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0;if(y=t>>31,c=(y^t)-y|0,v=r+188+(c*12|0)+10|0,n=F[v>>1]|0,g=r+188+(c*12|0)|0,s=e[g>>2]|0,(n|0)<(s|0))if((n<<1|0)<(s|0))if((n<<2|0)<(s|0))if((n<<3|0)<(s|0))if((n<<4|0)<(s|0))for(t=5;(n<>1]^y)-y+f|0,d=r+128|0,s=e[d>>2]|0,(n&s|0)==(n|0)?m=n:m=s&~(n>>31),n=r+112|0,(e[n>>2]|0)<8&&C2(r),s=r+108|0,f=e[s>>2]|0,o=f>>>24,l=e[2832+(t<<11)+(o<<3)+4>>2]|0,l?(e[n>>2]=(e[n>>2]|0)-l,e[s>>2]=f<>2]|0):(a=e[r+148>>2]|0,s=e[r+140>>2]|0,n=X2(r)|0,(n|0)<(a+-1-s|0)?t&&(n=(Ve(r,t)|0)+(n<>31^n>>1,(((n|0)>-1?n:0-n|0)|0)>65535&&(n=B0(16)|0,!(p[8]|0)&&Y0(8)|0&&(j0(72,35648,l0|0)|0,X0(8)),u=0,u0(7,n|0,5,35648),r=u,u=0,r&1?(r=R()|0,Q0(n|0),B(r|0)):Se(n|0,824,96))),a=r+136|0,f=e[a>>2]|0,t?l=n:(f?s=0:s=(e[r+188+(c*12|0)+4>>2]<<1)+-1+(F[v>>1]|0)>>31,l=s^n),t=e[r+152>>2]|0,s=(e[g>>2]|0)+((l|0)>-1?l:0-l|0)|0,o=r+188+(c*12|0)+4|0,n=(e[o>>2]|0)+(K(f<<1|1,l)|0)|0,f=F[v>>1]|0,(f|0)==(t|0)&&(s=s>>1,n=n>>1,f=t>>1),e[g>>2]=s,t=f+1|0,F[v>>1]=t,s=t+n|0,(s|0)>=1?(n|0)>0&&(n=n-t|0,v=F[h>>1]|0,F[h>>1]=(v<<16>>16<127&1)+(v&65535),n=(n|0)>0?0:n):(n=F[h>>1]|0,F[h>>1]=(n&65535)-(n<<16>>16>-128&1),n=(s|0)>(~f|0)?s:0-f|0),e[o>>2]=n,t=e[a>>2]|0,f=t<<1|1,s=(K(f,(l^y)-y|0)|0)+m|0,(s|0)>=(0-t|0)?(n=e[d>>2]|0,(n+t|0)<(s|0)&&(s=s-(K(e[r+132>>2]|0,f)|0)|0)):(s=(K(e[r+132>>2]|0,f)|0)+s|0,n=e[d>>2]|0),(s&n|0)==(s|0)?(r=s,r=r&255,r|0):(r=n&~(s>>31),r=r&255,r|0)}function Hd(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0;for(a=r+112|0,c=r+108|0,m=r+4592|0,s=e[a>>2]|0,o=0;;){if((s|0)<1&&(C2(r),s=e[a>>2]|0),l=e[c>>2]|0,s=s+-1|0,e[a>>2]=s,e[c>>2]=l<<1,(l|0)>=0){h=8;break}if(l=e[m>>2]|0,g=1<>2],v=f-o|0,v=(g|0)<(v|0)?g:v,o=v+o|0,(v|0)==(g|0)&&(e[m>>2]=(l|0)>30?31:l+1|0),(o|0)==(f|0)){s=f;break}}return(h|0)==8&&((o|0)!=(f|0)?(s=e[m>>2]|0,(s+-4|0)>>>0<28?s=Ve(r,e[36476+(s<<2)>>2]|0)|0:s=0,s=s+o|0,(s|0)>(f|0)&&(s=B0(16)|0,!(p[8]|0)&&Y0(8)|0&&(j0(72,35648,l0|0)|0,X0(8)),u=0,u0(7,s|0,5,35648),v=u,u=0,v&1?(v=R()|0,Q0(s|0),B(v|0)):Se(s|0,824,96))):s=f),(s|0)<=0||we(n|0,t|0,s|0)|0,s|0}function Vd(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;return o=t-n|0,l=r+128|0,f=r+136|0,(((o|0)>-1?o:0-o|0)|0)>(e[f>>2]|0)?(t=K(Yo(r,r+4568|0)|0,n-t>>31|1)|0,s=e[f>>2]|0,o=s<<1|1,t=(K(t,o)|0)+n|0,(t|0)>=(0-s|0)?(f=e[l>>2]|0,(f+s|0)<(t|0)&&(t=t-(K(e[r+132>>2]|0,o)|0)|0)):(t=(K(e[r+132>>2]|0,o)|0)+t|0,f=e[l>>2]|0),(t&f|0)==(t|0)?(r=t,r=r&255,r|0):(r=f&~(t>>31),r=r&255,r|0)):(n=Yo(r,r+4580|0)|0,o=e[f>>2]|0,s=o<<1|1,t=(K(s,n)|0)+t|0,(t|0)>=(0-o|0)?(f=e[l>>2]|0,(f+o|0)<(t|0)&&(t=t-(K(e[r+132>>2]|0,s)|0)|0)):(t=(K(e[r+132>>2]|0,s)|0)+t|0,f=e[l>>2]|0),(t&f|0)==(t|0)?(r=t,r=r&255,r|0):(r=f&~(t>>31),r=r&255,r|0))}function Yo(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0;if(m=t+9|0,n=z[m>>0]|0,o=t+4|0,s=(K(n>>>1,e[o>>2]|0)|0)+(e[t>>2]|0)|0,(n|0)<(s|0)){f=0;do n=n<<1,f=f+1|0;while((n|0)<(s|0))}else f=0;l=e[r+148>>2]|0,a=e[36476+(e[r+4592>>2]<<2)>>2]|0,n=e[r+140>>2]|0,s=X2(r)|0;do if((s|0)<(l+-2-a-n|0))if(f){a=(Ve(r,f)|0)+(s<>2]|0,s=a+f|0,l=s&1,n=l,o=1,s=(l+s|0)/2|0;break}else{f=e[o>>2]|0,r=f+s|0,n=r&1,r=(n+r|0)/2|0,c=8;break}else s=(Ve(r,n)|0)+1|0,l=e[o>>2]|0,r=s+l|0,n=r&1,r=(n+r|0)/2|0,f?(a=s,o=1,s=r,f=l):(f=l,c=8);while(0);return(c|0)==8&&(a=s,o=z[t+10>>0]<<1>>>0>=(z[m>>0]|0)>>>0,s=r),s=(n|0)!=0^o?s:0-s|0,(s|0)<0&&(c=t+10|0,p[c>>0]=(z[c>>0]|0)+1),n=(a+1-f>>1)+(e[t>>2]|0)|0,e[t>>2]=n,f=p[m>>0]|0,f<<24>>24!=(p[t+8>>0]|0)?(t=f,t=t&255,t=t+1|0,t=t&255,p[m>>0]=t,s|0):(e[t>>2]=n>>1,c=(f&255)>>>1,p[m>>0]=c,t=t+10|0,p[t>>0]=(z[t>>0]|0)>>>1,t=c,t=t&255,t=t+1|0,t=t&255,p[m>>0]=t,s|0)}function zd(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0;v=C,C=C+32|0,f=v,g=r+136|0;e:do if(e[g>>2]|0)t=r+144|0;else if(n=e[r+128>>2]|0,t=r+144|0,(n|0)==((1<>2])+-1|0)&&(e2(f,n,0),(e[f+4>>2]|0)==(e[r+176>>2]|0))&&(e[f+8>>2]|0)==(e[r+180>>2]|0)&&(e[f+12>>2]|0)==(e[r+184>>2]|0))switch(e[t>>2]|0){case 8:{g=e[8900]|0,e[r+4604>>2]=g+(((e[8901]|0)-g|0)>>>1),C=v;return}case 10:{g=e[8903]|0,e[r+4604>>2]=g+(((e[8904]|0)-g|0)>>>1),C=v;return}case 12:{g=e[8906]|0,e[r+4604>>2]=g+(((e[8907]|0)-g|0)>>>1),C=v;return}case 16:{g=e[8909]|0,e[r+4604>>2]=g+(((e[8910]|0)-g|0)>>>1),C=v;return}default:break e}while(0);if(h=1<>2],n=r+4608|0,f=h<<1,s=r+4612|0,o=e[s>>2]|0,t=e[n>>2]|0,l=o-t|0,f>>>0<=l>>>0?f>>>0>>0&&(a=t+f|0,(o|0)!=(a|0))&&(e[s>>2]=a):(Y2(n,f-l|0),t=e[n>>2]|0),m=r+4604|0,e[m>>2]=t+h,t=0-h|0,(h|0)<=(t|0)){C=v;return}a=r+184|0,c=r+180|0,l=r+176|0,o=t;do t=e[a>>2]|0,(o|0)>(0-t|0)?(n=e[c>>2]|0,(o|0)>(0-n|0)?(f=e[l>>2]|0,(o|0)>(0-f|0)?(s=e[g>>2]|0,(o|0)>=(0-s|0)?(s|0)<(o|0)?(f|0)<=(o|0)?(n|0)>(o|0)?t=2:t=(t|0)>(o|0)?3:4:t=1:t=0:t=-1):t=-2):t=-3):t=-4,p[(e[m>>2]|0)+o>>0]=t,o=o+1|0;while((o|0)!=(h|0));C=v}function Yd(r){r=r|0,H(r)}function Xd(r){return r=r|0,50767}function jd(r,t,n){r=r|0,t=t|0,n=n|0,G1(r,50754,12)}function Wd(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0;y=C,C=C+16|0,E=y,e[E>>2]=0,P=E+4|0,e[P>>2]=0,e[E+8>>2]=0,v=E+8|0,u=0,s=W(67,1)|0,g=u,u=0;e:do if(!(g&1)&&(g=s+1|0,p[s>>0]=n,e[E>>2]=s,e[P>>2]=g,e[v>>2]=g,u=0,b(84,E|0,t&65535|0),g=u,u=0,!(g&1))&&(u=0,b(84,E|0,r&65535|0),g=u,u=0,!(g&1))){if(m=f&255,s=e[P>>2]|0,n=e[v>>2]|0,s>>>0>=n>>>0){if(t=e[E>>2]|0,r=t,l=s-r+1|0,(l|0)<0){if(u=0,A0(178,E|0),g=u,u=0,g&1){d=52;break}r=e[E>>2]|0,n=e[v>>2]|0,t=r}if(c=t,s=n-c|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?l:s,n=e[P>>2]|0,a=n-c|0,s?d=12:(s=0,l=0)):(a=e[P>>2]|0,s=2147483647,n=a,a=a-c|0,d=12),(d|0)==12&&(u=0,l=W(67,s|0)|0,g=u,u=0,g&1)){d=52;break}p[l+a>>0]=m,h=n-c|0,g=l+(a-h)|0,qe(g|0,t|0,h|0)|0,e[E>>2]=g,e[P>>2]=l+(a+1),e[v>>2]=l+s,r&&H(r)}else p[s>>0]=m,e[P>>2]=(e[P>>2]|0)+1;i:do if((f|0)>0){for(g=0;;){if(g=g+1|0,h=g&255,s=e[P>>2]|0,t=e[v>>2]|0,s>>>0>=t>>>0){if(r=e[E>>2]|0,n=r,l=s-n+1|0,(l|0)<0){if(u=0,A0(178,E|0),m=u,u=0,m&1)break;r=e[E>>2]|0,n=r,t=e[v>>2]|0}if(m=r,s=t-m|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?l:s,t=e[P>>2]|0,a=t-m|0,s?d=25:(c=0,l=0)):(a=e[P>>2]|0,s=2147483647,t=a,a=a-m|0,d=25),(d|0)==25){if(d=0,u=0,l=W(67,s|0)|0,c=u,u=0,c&1)break;c=s}p[l+a>>0]=h,s=l+(a+1)|0,m=t-m|0,h=l+(a-m)|0,qe(h|0,r|0,m|0)|0,e[E>>2]=h,e[P>>2]=s,e[v>>2]=l+c,n&&(H(n),s=e[P>>2]|0)}else p[s>>0]=h,s=(e[P>>2]|0)+1|0,e[P>>2]=s;if(n=e[v>>2]|0,s>>>0>=n>>>0){if(t=e[E>>2]|0,r=t,l=s-r+1|0,(l|0)<0){if(u=0,A0(178,E|0),h=u,u=0,h&1)break;r=e[E>>2]|0,n=e[v>>2]|0,t=r}if(m=t,s=n-m|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?l:s,l=e[P>>2]|0,a=l-m|0,s?d=36:(c=0,n=0)):(a=e[P>>2]|0,s=2147483647,l=a,a=a-m|0,d=36),(d|0)==36){if(d=0,u=0,n=W(67,s|0)|0,h=u,u=0,h&1)break;c=s}p[n+a>>0]=17,s=n+(a+1)|0,m=l-m|0,h=n+(a-m)|0,qe(h|0,t|0,m|0)|0,e[E>>2]=h,e[P>>2]=s,e[v>>2]=n+c,r&&(H(r),s=e[P>>2]|0)}else p[s>>0]=17,s=(e[P>>2]|0)+1|0,e[P>>2]=s;if(n=e[v>>2]|0,s>>>0>=n>>>0){if(t=e[E>>2]|0,r=t,l=s-r+1|0,(l|0)<0){if(u=0,A0(178,E|0),h=u,u=0,h&1)break;r=e[E>>2]|0,n=e[v>>2]|0,t=r}if(c=t,s=n-c|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?l:s,n=e[P>>2]|0,a=n-c|0,s?d=48:(s=0,l=0)):(a=e[P>>2]|0,s=2147483647,n=a,a=a-c|0,d=48),(d|0)==48&&(d=0,u=0,l=W(67,s|0)|0,h=u,u=0,h&1))break;p[l+a>>0]=0,m=n-c|0,h=l+(a-m)|0,qe(h|0,t|0,m|0)|0,e[E>>2]=h,e[P>>2]=l+(a+1),e[v>>2]=l+s,r&&H(r)}else p[s>>0]=0,e[P>>2]=(e[P>>2]|0)+1;if((g|0)>=(f|0))break i}o=R()|0;break e}while(0);if(u=0,a=W(67,20)|0,f=u,u=0,f&1)d=52;else{e[a>>2]=36800,p[a+4>>0]=-9,r=a+8|0,e[r>>2]=0,l=a+12|0,e[l>>2]=0,n=a+16|0,e[n>>2]=0,s=e[P>>2]|0,f=e[E>>2]|0,t=s-f|0;do if((s|0)!=(f|0)){if((t|0)<0&&(u=0,A0(178,r|0),f=u,u=0,f&1)||(d=62),(d|0)==62&&(u=0,o=W(67,t|0)|0,f=u,u=0,!(f&1))){if(e[l>>2]=o,e[r>>2]=o,e[n>>2]=o+t,s=e[E>>2]|0,n=e[P>>2]|0,(s|0)==(n|0))break;do p[o>>0]=p[s>>0]|0,o=(e[l>>2]|0)+1|0,e[l>>2]=o,s=s+1|0;while((s|0)!=(n|0));s=e[E>>2]|0;break}o=R()|0,s=e[r>>2]|0,s&&((e[l>>2]|0)!=(s|0)&&(e[l>>2]=s),H(s)),H(a);break e}while(0);return s?((e[P>>2]|0)!=(s|0)&&(e[P>>2]=s),H(s),C=y,a|0):(C=y,a|0)}}else d=52;while(0);return(d|0)==52&&(o=R()|0),s=e[E>>2]|0,s||B(o|0),(e[P>>2]|0)!=(s|0)&&(e[P>>2]=s),H(s),B(o|0),0}function Zd(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0;P=C,C=C+32|0,d=P+28|0,A=P+16|0,E=P+4|0,y=P,e[A>>2]=0,_=A+4|0,e[_>>2]=0,e[A+8>>2]=0,g=k0(5)|0,e[A>>2]=g,v=A+8|0,e[v>>2]=g+5,p[g>>0]=74,p[g+1>>0]=70,p[g+2>>0]=73,p[g+3>>0]=70,p[g+4>>0]=0,e[_>>2]=g+5,u=0,b(84,A|0,e[r>>2]&65535|0),g=u,u=0;e:do if(g&1)I=43;else{if(m=e[r+4>>2]&255,t=e[_>>2]|0,f=e[v>>2]|0,t>>>0>=f>>>0){if(s=e[A>>2]|0,o=s,l=t-o+1|0,(l|0)<0){if(u=0,A0(178,A|0),g=u,u=0,g&1){I=43;break}o=e[A>>2]|0,f=e[v>>2]|0,s=o}if(c=s,t=f-c|0,t>>>0<1073741823?(t=t<<1,t=t>>>0>>0?l:t,f=e[_>>2]|0,a=f-c|0,t?I=10:(t=0,l=0)):(a=e[_>>2]|0,t=2147483647,f=a,a=a-c|0,I=10),(I|0)==10&&(u=0,l=W(67,t|0)|0,g=u,u=0,g&1)){I=43;break}p[l+a>>0]=m,h=f-c|0,g=l+(a-h)|0,qe(g|0,s|0,h|0)|0,e[A>>2]=g,e[_>>2]=l+(a+1),e[v>>2]=l+t,o&&H(o)}else p[t>>0]=m,e[_>>2]=(e[_>>2]|0)+1;if(u=0,b(84,A|0,e[r+8>>2]&65535|0),g=u,u=0,!(g&1)&&(u=0,b(84,A|0,e[r+12>>2]&65535|0),g=u,u=0,!(g&1))){if(g=r+16|0,h=e[g>>2]&255,t=e[_>>2]|0,s=e[v>>2]|0,t>>>0>=s>>>0){if(o=e[A>>2]|0,f=o,l=t-f+1|0,(l|0)<0){if(u=0,A0(178,A|0),m=u,u=0,m&1){I=43;break}o=e[A>>2]|0,f=o,s=e[v>>2]|0}if(m=o,t=s-m|0,t>>>0<1073741823?(t=t<<1,t=t>>>0>>0?l:t,l=e[_>>2]|0,a=l-m|0,t?I=23:(c=0,s=0)):(a=e[_>>2]|0,t=2147483647,l=a,a=a-m|0,I=23),(I|0)==23)if(u=0,s=W(67,t|0)|0,c=u,u=0,c&1){I=43;break}else c=t;p[s+a>>0]=h,t=s+(a+1)|0,m=l-m|0,h=s+(a-m)|0,qe(h|0,o|0,m|0)|0,e[A>>2]=h,e[_>>2]=t,e[v>>2]=s+c,f&&(H(f),t=e[_>>2]|0)}else p[t>>0]=h,t=(e[_>>2]|0)+1|0,e[_>>2]=t;if(h=r+20|0,m=e[h>>2]&255,f=e[v>>2]|0,t>>>0>=f>>>0){if(s=e[A>>2]|0,o=s,l=t-o+1|0,(l|0)<0){if(u=0,A0(178,A|0),c=u,u=0,c&1){I=43;break}o=e[A>>2]|0,f=e[v>>2]|0,s=o}if(c=s,t=f-c|0,t>>>0<1073741823?(t=t<<1,t=t>>>0>>0?l:t,f=e[_>>2]|0,a=f-c|0,t?I=34:(t=0,l=0)):(a=e[_>>2]|0,t=2147483647,f=a,a=a-c|0,I=34),(I|0)==34&&(u=0,l=W(67,t|0)|0,w=u,u=0,w&1)){I=43;break}p[l+a>>0]=m,m=f-c|0,w=l+(a-m)|0,qe(w|0,s|0,m|0)|0,e[A>>2]=w,e[_>>2]=l+(a+1),e[v>>2]=l+t,o&&H(o)}else p[t>>0]=m,e[_>>2]=(e[_>>2]|0)+1;t=e[g>>2]|0;do if((t|0)>0){if(!(e[r+24>>2]|0))if(e[y>>2]=e[_>>2],w=0+(K(t*3|0,e[h>>2]|0)|0)|0,u=0,e[d>>2]=e[y>>2],Me(15,A|0,d|0,0,w|0)|0,w=u,u=0,w&1){I=43;break e}else break;if(f=B0(16)|0,u=0,u0(5,E|0,50792,57),w=u,u=0,w&1)t=R()|0;else if(u=0,t=Te(1)|0,w=u,u=0,!(w&1)&&(u=0,g0(36,f|0,1,t|0,E|0),w=u,u=0,!(w&1))?(u=0,u0(6,f|0,824,96),u=0,n=0):n=1,t=R()|0,V(E),!n){n=t;break e}Q0(f|0),n=t;break e}while(0);if(u=0,a=W(67,20)|0,w=u,u=0,w&1)I=43;else{e[a>>2]=36800,p[a+4>>0]=-32,o=a+8|0,e[o>>2]=0,l=a+12|0,e[l>>2]=0,f=a+16|0,e[f>>2]=0,t=e[_>>2]|0,w=e[A>>2]|0,s=t-w|0;do if((t|0)!=(w|0)){if((s|0)<0&&(u=0,A0(178,o|0),w=u,u=0,w&1)||(I=53),(I|0)==53&&(u=0,n=W(67,s|0)|0,w=u,u=0,!(w&1))){if(e[l>>2]=n,e[o>>2]=n,e[f>>2]=n+s,t=e[A>>2]|0,f=e[_>>2]|0,(t|0)==(f|0))break;do p[n>>0]=p[t>>0]|0,n=(e[l>>2]|0)+1|0,e[l>>2]=n,t=t+1|0;while((t|0)!=(f|0));t=e[A>>2]|0;break}t=R()|0,n=e[o>>2]|0,n&&((e[l>>2]|0)!=(n|0)&&(e[l>>2]=n),H(n)),H(a),I=44;break e}while(0);return t?((e[_>>2]|0)!=(t|0)&&(e[_>>2]=t),H(t),C=P,a|0):(C=P,a|0)}}else I=43}while(0);return(I|0)==43&&(t=R()|0,I=44),(I|0)==44&&(n=t),t=e[A>>2]|0,t||B(n|0),(e[_>>2]|0)!=(t|0)&&(e[_>>2]=t),H(t),B(n|0),0}function Xo(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0;a=C,C=C+16|0,m=a,e[m>>2]=0,h=m+4|0,e[h>>2]=0,e[m+8>>2]=0,u=0,t=W(67,1)|0,l=u,u=0;e:do if(!(l&1)&&(l=t+1|0,p[t>>0]=1,e[m>>2]=t,e[h>>2]=l,e[m+8>>2]=l,u=0,b(84,m|0,e[r>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,b(84,m|0,e[r+4>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,b(84,m|0,e[r+8>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,b(84,m|0,e[r+12>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,b(84,m|0,e[r+16>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,c=W(67,20)|0,l=u,u=0,!(l&1))){e[c>>2]=36800,p[c+4>>0]=-8,s=c+8|0,e[s>>2]=0,l=c+12|0,e[l>>2]=0,r=c+16|0,e[r>>2]=0,t=e[h>>2]|0,g=e[m>>2]|0,f=t-g|0;do if((t|0)!=(g|0)){if((f|0)<0&&(u=0,A0(178,s|0),g=u,u=0,g&1)||(o=11),(o|0)==11&&(u=0,n=W(67,f|0)|0,g=u,u=0,!(g&1))){if(e[l>>2]=n,e[s>>2]=n,e[r>>2]=n+f,t=e[m>>2]|0,r=e[h>>2]|0,(t|0)==(r|0))break;do p[n>>0]=p[t>>0]|0,n=(e[l>>2]|0)+1|0,e[l>>2]=n,t=t+1|0;while((t|0)!=(r|0));t=e[m>>2]|0;break}n=R()|0,t=e[s>>2]|0,t&&((e[l>>2]|0)!=(t|0)&&(e[l>>2]=t),H(t)),H(c);break e}while(0);return t?((e[h>>2]|0)!=(t|0)&&(e[h>>2]=t),H(t),C=a,c|0):(C=a,c|0)}else o=25;while(0);return(o|0)==25&&(n=R()|0),t=e[m>>2]|0,t||B(n|0),(e[h>>2]|0)!=(t|0)&&(e[h>>2]=t),H(t),B(n|0),0}function Kd(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0;return o=k0(5)|0,p[o>>0]=109,p[o+1>>0]=114,p[o+2>>0]=102,p[o+3>>0]=120,p[o+4>>0]=r,u=0,s=W(67,20)|0,f=u,u=0,f&1&&(s=R()|0,H(o),B(s|0)),e[s>>2]=36800,p[s+4>>0]=-24,r=s+8|0,e[r>>2]=0,t=s+12|0,e[t>>2]=0,n=s+16|0,e[n>>2]=0,u=0,f=W(67,5)|0,l=u,u=0,l&1?(l=R()|0,H(s),H(o),B(l|0),0):(e[t>>2]=f,e[r>>2]=f,e[n>>2]=f+5,p[f>>0]=109,l=(e[t>>2]|0)+1|0,e[t>>2]=l,f=o+1|0,p[l>>0]=p[f>>0]|0,l=(e[t>>2]|0)+1|0,e[t>>2]=l,f=f+1|0,p[l>>0]=p[f>>0]|0,l=(e[t>>2]|0)+1|0,e[t>>2]=l,f=f+1|0,p[l>>0]=p[f>>0]|0,l=(e[t>>2]|0)+1|0,e[t>>2]=l,p[l>>0]=p[f+1>>0]|0,e[t>>2]=(e[t>>2]|0)+1,H(o),s|0)}function Jd(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0;I=C,C=C+16|0,A=I,e[A>>2]=0,_=A+4|0,e[_>>2]=0,e[A+8>>2]=0,E=A+8|0,u=0,s=W(67,1)|0,y=u,u=0;e:do if(y&1)P=29;else{if(a=s+1|0,y=a,p[s>>0]=t,e[A>>2]=s,e[_>>2]=y,e[E>>2]=y,(t|0)>0){l=a,y=0;do{if(d=y+r&255,l>>>0>=a>>>0){if(s=e[A>>2]|0,c=s,l=l-c+1|0,(l|0)<0){if(u=0,A0(178,A|0),v=u,u=0,v&1){P=28;break}c=e[A>>2]|0,a=e[E>>2]|0,v=c}else v=s;if(g=v,s=a-g|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?l:s,a=e[_>>2]|0,m=a-g|0,s?P=13:(h=0,l=0)):(m=e[_>>2]|0,s=2147483647,a=m,m=m-g|0,P=13),(P|0)==13)if(P=0,u=0,l=W(67,s|0)|0,h=u,u=0,h&1){P=28;break}else h=s;p[l+m>>0]=d,s=l+(m+1)|0,g=a-g|0,d=l+(m-g)|0,qe(d|0,v|0,g|0)|0,e[A>>2]=d,e[_>>2]=s,e[E>>2]=l+h,c&&(H(c),s=e[_>>2]|0)}else p[l>>0]=d,s=(e[_>>2]|0)+1|0,e[_>>2]=s;if(a=e[E>>2]|0,s>>>0>=a>>>0){if(c=e[A>>2]|0,l=c,m=s-l+1|0,(m|0)<0){if(u=0,A0(178,A|0),d=u,u=0,d&1){P=28;break}c=e[A>>2]|0,l=c,a=e[E>>2]|0}if(g=c,s=a-g|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?m:s,m=e[_>>2]|0,a=m-g|0,s?P=24:(s=0,h=0)):(a=e[_>>2]|0,s=2147483647,m=a,a=a-g|0,P=24),(P|0)==24&&(P=0,u=0,h=W(67,s|0)|0,d=u,u=0,d&1)){P=28;break}p[h+a>>0]=0,v=m-g|0,d=h+(a-v)|0,qe(d|0,c|0,v|0)|0,e[A>>2]=d,e[_>>2]=h+(a+1),e[E>>2]=h+s,l&&H(l)}else p[s>>0]=0,e[_>>2]=(e[_>>2]|0)+1;y=y+1|0,l=e[_>>2]|0,a=e[E>>2]|0}while((y|0)<(t|0));if((P|0)==28){o=R()|0;break}s=n&255,l>>>0>>0?(p[l>>0]=s,l=(e[_>>2]|0)+1|0,e[_>>2]=l):P=37}else l=a,s=n&255,P=37;if((P|0)==37){if(c=e[A>>2]|0,m=c,h=l-m+1|0,(h|0)<0){if(u=0,A0(178,A|0),n=u,u=0,n&1){P=29;break}m=e[A>>2]|0,a=e[E>>2]|0,c=m}if(d=c,l=a-d|0,l>>>0<1073741823?(l=l<<1,l=l>>>0>>0?h:l,h=e[_>>2]|0,g=h-d|0,l?P=43:(v=0,a=0)):(g=e[_>>2]|0,l=2147483647,h=g,g=g-d|0,P=43),(P|0)==43)if(u=0,a=W(67,l|0)|0,n=u,u=0,n&1){P=29;break}else v=l;p[a+g>>0]=s,l=a+(g+1)|0,r=h-d|0,n=a+(g-r)|0,qe(n|0,c|0,r|0)|0,e[A>>2]=n,e[_>>2]=l,e[E>>2]=a+v,m&&(H(m),l=e[_>>2]|0)}if(d=f&255,s=e[E>>2]|0,l>>>0>=s>>>0){if(a=e[A>>2]|0,c=a,l=l-c+1|0,(l|0)<0){if(u=0,A0(178,A|0),f=u,u=0,f&1){P=29;break}c=e[A>>2]|0,s=e[E>>2]|0,a=c}if(v=a,s=s-v|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?l:s,m=e[_>>2]|0,h=m-v|0,s?P=54:(g=0,l=0)):(h=e[_>>2]|0,s=2147483647,m=h,h=h-v|0,P=54),(P|0)==54)if(u=0,l=W(67,s|0)|0,f=u,u=0,f&1){P=29;break}else g=s;p[l+h>>0]=d,s=l+(h+1)|0,n=m-v|0,f=l+(h-n)|0,qe(f|0,a|0,n|0)|0,e[A>>2]=f,e[_>>2]=s,e[E>>2]=l+g,c&&(H(c),s=e[_>>2]|0)}else p[l>>0]=d,s=(e[_>>2]|0)+1|0,e[_>>2]=s;if(l=e[E>>2]|0,s>>>0>=l>>>0){if(a=e[A>>2]|0,c=a,m=s-c+1|0,(m|0)<0){if(u=0,A0(178,A|0),f=u,u=0,f&1){P=29;break}c=e[A>>2]|0,l=e[E>>2]|0,a=c}if(g=a,s=l-g|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?m:s,l=e[_>>2]|0,h=l-g|0,s?P=65:(s=0,m=0)):(h=e[_>>2]|0,s=2147483647,l=h,h=h-g|0,P=65),(P|0)==65&&(u=0,m=W(67,s|0)|0,f=u,u=0,f&1)){P=29;break}p[m+h>>0]=0,n=l-g|0,f=m+(h-n)|0,qe(f|0,a|0,n|0)|0,e[A>>2]=f,e[_>>2]=m+(h+1),e[E>>2]=m+s,c&&H(c)}else p[s>>0]=0,e[_>>2]=(e[_>>2]|0)+1;if(u=0,h=W(67,20)|0,E=u,u=0,E&1)P=29;else{e[h>>2]=36800,p[h+4>>0]=-38,c=h+8|0,e[c>>2]=0,m=h+12|0,e[m>>2]=0,l=h+16|0,e[l>>2]=0,s=e[_>>2]|0,E=e[A>>2]|0,a=s-E|0;do if((s|0)!=(E|0)){if((a|0)<0&&(u=0,A0(178,c|0),E=u,u=0,E&1)||(P=72),(P|0)==72&&(u=0,o=W(67,a|0)|0,E=u,u=0,!(E&1))){if(e[m>>2]=o,e[c>>2]=o,e[l>>2]=o+a,s=e[A>>2]|0,l=e[_>>2]|0,(s|0)==(l|0))break;do p[o>>0]=p[s>>0]|0,o=(e[m>>2]|0)+1|0,e[m>>2]=o,s=s+1|0;while((s|0)!=(l|0));s=e[A>>2]|0;break}o=R()|0,s=e[c>>2]|0,s&&((e[m>>2]|0)!=(s|0)&&(e[m>>2]=s),H(s)),H(h);break e}while(0);return s?((e[_>>2]|0)!=(s|0)&&(e[_>>2]=s),H(s),C=I,h|0):(C=I,h|0)}}while(0);return(P|0)==29&&(o=R()|0),s=e[A>>2]|0,s||B(o|0),(e[_>>2]|0)!=(s|0)&&(e[_>>2]=s),H(s),B(o|0),0}function $d(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0;if(g=(t&65535)>>>8&255,v=r+4|0,n=e[v>>2]|0,d=r+8|0,f=e[d>>2]|0,n>>>0>=f>>>0?(s=e[r>>2]|0,o=s,l=n-o+1|0,(l|0)<0&&(E1(r),o=e[r>>2]|0,f=e[d>>2]|0,s=o),h=s,n=f-h|0,n>>>0<1073741823?(n=n<<1,n=n>>>0>>0?l:n,l=e[v>>2]|0,f=l-h|0,n?y=8:(m=0,c=0,a=f,n=l)):(f=e[v>>2]|0,n=2147483647,l=f,f=f-h|0,y=8),(y|0)==8&&(m=n,c=k0(n)|0,a=f,n=l),p[c+a>>0]=g,f=c+(a+1)|0,h=n-h|0,g=c+(a-h)|0,qe(g|0,s|0,h|0)|0,e[r>>2]=g,e[v>>2]=f,e[d>>2]=c+m,o&&(H(o),f=e[v>>2]|0)):(p[n>>0]=g,f=(e[v>>2]|0)+1|0,e[v>>2]=f),h=t&255,n=e[d>>2]|0,f>>>0>>0){p[f>>0]=h,e[v>>2]=(e[v>>2]|0)+1;return}s=e[r>>2]|0,o=s,f=f-o+1|0,(f|0)<0&&(E1(r),o=e[r>>2]|0,n=e[d>>2]|0,s=o),m=s,n=n-m|0,n>>>0<1073741823?(n=n<<1,n=n>>>0>>0?f:n,l=e[v>>2]|0,f=l-m|0,n?y=18:(c=0,a=0,n=l)):(f=e[v>>2]|0,n=2147483647,l=f,f=f-m|0,y=18),(y|0)==18&&(c=n,a=k0(n)|0,n=l),p[a+f>>0]=h,t=n-m|0,y=a+(f-t)|0,qe(y|0,s|0,t|0)|0,e[r>>2]=y,e[v>>2]=a+(f+1),e[d>>2]=a+c,o&&H(o)}function bd(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;if(s=e[r>>2]|0,y=e[t>>2]|0,d=y,c=s,g=n,m=f-g|0,(m|0)<=0)return E=y,E|0;if(v=r+8|0,t=e[v>>2]|0,E=r+4|0,h=e[E>>2]|0,o=h,(m|0)<=(t-o|0)){if(a=o-d|0,(m|0)>(a|0)){if(l=n+a|0,(l|0)==(f|0))t=h;else{o=l,t=h;do p[t>>0]=p[o>>0]|0,t=(e[E>>2]|0)+1|0,e[E>>2]=t,o=o+1|0;while((o|0)!=(f|0))}if((a|0)>0)a=t;else return E=y,E|0}else a=h,l=f;if(s=a-(s+(m-c+d))|0,t=y+s|0,t>>>0>>0){o=a;do p[o>>0]=p[t>>0]|0,t=t+1|0,o=(e[E>>2]|0)+1|0,e[E>>2]=o;while((t|0)!=(h|0))}return Hr(a+(0-s)|0,y|0,s|0)|0,Hr(y|0,n|0,l-g|0)|0,E=y,E|0}if(o=o-c+m|0,(o|0)<0&&(E1(r),t=e[v>>2]|0,s=e[r>>2]|0),l=s,t=t-l|0,t>>>0<1073741823?(t=t<<1,t=t>>>0>>0?o:t,o=d-l|0,t?a=15:(l=0,m=0)):(t=2147483647,o=d-l|0,a=15),(a|0)==15&&(l=t,m=k0(t)|0),c=m+o|0,t=c,a=m+l|0,(n|0)!=(f|0)){s=n,l=c;do p[l>>0]=p[s>>0]|0,l=t+1|0,t=l,s=s+1|0;while((s|0)!=(f|0));s=e[r>>2]|0}return n=d-s|0,f=m+(o-n)|0,qe(f|0,s|0,n|0)|0,d=(e[E>>2]|0)-d|0,n=t,qe(n|0,y|0,d|0)|0,t=e[r>>2]|0,e[r>>2]=f,e[E>>2]=n+d,e[v>>2]=a,t?(H(t),E=c,E|0):(E=c,E|0)}function ek(r){r=r|0;var t=0;e[r>>2]=36800,t=e[r+8>>2]|0,t&&(r=r+12|0,(e[r>>2]|0)!=(t|0)&&(e[r>>2]=t),H(t))}function ik(r){r=r|0;var t=0,n=0;if(e[r>>2]=36800,t=e[r+8>>2]|0,!t){H(r);return}n=r+12|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),H(t),H(r)}function rk(r,t){r=r|0,t=t|0;var n=0,f=0,s=0;if(_1(t,-1),_1(t,p[r+4>>0]|0),s=r+12|0,f=r+8|0,r=(e[s>>2]|0)-(e[f>>2]|0)+2|0,_1(t,(r&65535)>>>8&255),_1(t,r&255),r=e[f>>2]|0,(e[s>>2]|0)!=(r|0)){n=0;do _1(t,p[r+n>>0]|0),n=n+1|0,r=e[f>>2]|0;while(n>>>0<((e[s>>2]|0)-r|0)>>>0)}}function _1(r,t){r=r|0,t=t|0;var n=0,f=0,s=0;if(s=e[r+4>>2]|0,s)if(n=s+24|0,f=e[n>>2]|0,(f|0)==(e[s+28>>2]|0)){F2[e[(e[s>>2]|0)+52>>2]&63](s,t&255)|0;return}else{e[n>>2]=f+1,p[f>>0]=t;return}if(n=r+16|0,f=e[n>>2]|0,f>>>0<(e[r+12>>2]|0)>>>0){e[n>>2]=f+1,p[(e[r+8>>2]|0)+f>>0]=t;return}n=B0(16)|0,u=0,f=Te(1)|0,t=u,u=0,t&1&&(t=R()|0,Q0(n|0),B(t|0)),u=0,u0(7,n|0,4,f|0),t=u,u=0,t&1?(t=R()|0,Q0(n|0),B(t|0)):Se(n|0,824,96)}function e2(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,s=(t|0)<4095?(t+128|0)/256|0:16,o=(n*3|0)+2+s|0,f=n+1|0,o=(o|0)<(f|0)|(o|0)>(t|0)?f:o,e[r+4>>2]=o,f=(s<<2|3)+(n*5|0)|0,f=(f|0)>(t|0)|(f|0)<(o|0)?o:f,e[r+8>>2]=f,n=(n*7|0)+4+(s*17|0)|0,e[r+12>>2]=(n|0)>(t|0)|(n|0)<(f|0)?f:n,e[r>>2]=t,e[r+16>>2]=64}function tk(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0;m=C,C=C+128|0,a=m+100|0,f=m+16|0,n=m+112|0,c=m+4|0,h=m,s=f,o=r+20|0,l=s+84|0;do e[s>>2]=e[o>>2],s=s+4|0,o=o+4|0;while((s|0)<(l|0));e[f+16>>2]=e[r+4>>2],o=P6(n,f,r+56|0)|0,n=e[(e[o>>2]|0)+16>>2]|0,r=r+8|0,u=0,e[a>>2]=e[r>>2],e[a+4>>2]=e[r+4>>2],e[a+8>>2]=e[r+8>>2],n=c0(n|0,o|0,a|0)|0,r=u,u=0;do if(r&1)n=R()|0;else{if(s=t+4|0,e[c>>2]=e[s>>2],e[c+4>>2]=e[s+4>>2],e[c+8>>2]=e[s+8>>2],s=t+16|0,r=e[s>>2]|0,a=c+8|0,e[a>>2]=(e[a>>2]|0)-r,a=c+4|0,e[a>>2]=(e[a>>2]|0)+r,a=e[(e[o>>2]|0)+12>>2]|0,e[h>>2]=n,u=0,n=Me(a|0,o|0,h|0,c|0,(p[t>>0]|0?(e[t+8>>2]|0)+r|0:0)|0)|0,c=u,u=0,c&1){if(n=R()|0,f=e[h>>2]|0,e[h>>2]=0,!f)break;W0[e[(e[f>>2]|0)+4>>2]&255](f);break}if(f=e[h>>2]|0,e[h>>2]=0,f&&W0[e[(e[f>>2]|0)+4>>2]&255](f),e[t+4>>2]|0||(e[s>>2]=(e[s>>2]|0)+n),!o){C=m;return}W0[e[(e[o>>2]|0)+4>>2]&255](o),C=m;return}while(0);o||B(n|0),W0[e[(e[o>>2]|0)+4>>2]&255](o),B(n|0)}function nk(r,t){r=r|0,t=t|0,e[r>>2]=e[t>>2],e[r+4>>2]=e[t+4>>2],e[r+8>>2]=e[t+8>>2],p[r+12>>0]=0,t=r+16|0,r=t+100|0;do e[t>>2]=0,t=t+4|0;while((t|0)<(r|0))}function fk(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0;I=C,C=C+32|0,P=I+4|0,v=I+16|0,A=I,jo(r),d=r+16|0,s=e[r+24>>2]|0;e:do if((s+-2|0)>>>0<=14)if(y=r+40|0,n=e[y>>2]|0,n>>>0>2)n=5;else{switch(E=r+32|0,o=e[E>>2]|0,o|0){case 0:{n=1;break e}case 4:{if((n|0)==2){n=2;break e}break}case 3:break;default:if(n){n=2;break e}}if(g=r+100|0,n=r+108|0,f=e[n>>2]|0,(f|0)<1?(f=e[d>>2]|0,e[n>>2]=f,n=e[r+20>>2]|0,e[r+112>>2]=n):n=e[r+112>>2]|0,c=qi(n|0,((n|0)<0)<<31>>31|0,f|0,((f|0)<0)<<31>>31|0)|0,a=(s+7|0)/8|0,a=qi(c|0,f0|0,a|0,((a|0)<0)<<31>>31|0)|0,c=t+4|0,n=e[c>>2]|0,l=t+8|0,n|0&&(m=e[l>>2]|0,h=qi(o|0,((o|0)<0)<<31>>31|0,a|0,f0|0)|0,s=f0,0<(s|0)|(s|0)==0&m>>>0>>0)&&(n=B0(16)|0,u=0,f=Te(1)|0,A=u,u=0,!(A&1)&&(u=0,u0(7,n|0,3,f|0),A=u,u=0,!(A&1))&&Se(n|0,824,96),A=R()|0,Q0(n|0),B(A|0)),m=r+52|0,h=r+12|0,(o|0)>0)o=0;else{C=I;return}for(;;){if(Wo(r,(o|0)==0),f=I6(v,d,m)|0,s=e[(e[f>>2]|0)+8>>2]|0,u=0,e[P>>2]=e[t>>2],e[P+4>>2]=e[t+4>>2],e[P+8>>2]=e[t+8>>2],s=c0(s|0,f|0,P|0)|0,_=u,u=0,_&1){s=32;break}if(_=e[(e[f>>2]|0)+16>>2]|0,e[A>>2]=s,u=0,rr(_|0,f|0,A|0,g|0,r|0,(p[h>>0]|0)!=0|0),_=u,u=0,_&1){s=30;break}if(s=e[A>>2]|0,e[A>>2]=0,s&&W0[e[(e[s>>2]|0)+4>>2]&255](s),n?(n=n+a|0,e[c>>2]=n,e[l>>2]=(e[l>>2]|0)-a):n=0,s=(e[y>>2]|0)==0,o=(s&1)+o|0,f&&W0[e[(e[f>>2]|0)+4>>2]&255](f),!s){s=34;break}if((o|0)>=(e[E>>2]|0)){s=34;break}}if((s|0)==30)n=R()|0,s=e[A>>2]|0,e[A>>2]=0,s&&W0[e[(e[s>>2]|0)+4>>2]&255](s);else if((s|0)==32)n=R()|0,f||(_=n,B(_|0));else if((s|0)==34){C=I;return}W0[e[(e[f>>2]|0)+4>>2]&255](f),_=n,B(_|0)}else n=2;while(0);f=B0(16)|0,u=0,s=Te(1)|0,_=u,u=0,!(_&1)&&(u=0,u0(7,f|0,n|0,s|0),_=u,u=0,!(_&1))&&Se(f|0,824,96),_=R()|0,Q0(f|0),B(_|0)}function jo(r){r=r|0;var t=0,n=0,f=0,s=0;if((Zn(r)|0)<<24>>24!=-40&&(t=B0(16)|0,u=0,n=Te(1)|0,s=u,u=0,!(s&1)&&(u=0,u0(7,t|0,5,n|0),s=u,u=0,!(s&1))&&Se(t|0,824,96),s=R()|0,Q0(t|0),B(s|0)),t=Zn(r)|0,t<<24>>24!=-38){for(;f=((Je(r)|0)&255)<<8,f=f|(Je(r)|0)&255,t=ok(r,t)|0,n=-2-t+f|0,!((n|0)<0);){if((n|0)>0){t=f+-2-t|0,n=0;do Je(r)|0,n=n+1|0;while((n|0)!=(t|0))}if(t=Zn(r)|0,t<<24>>24==-38){s=8;break}}(s|0)!=8&&(t=B0(16)|0,u=0,n=Te(1)|0,s=u,u=0,!(s&1)&&(u=0,u0(7,t|0,5,n|0),s=u,u=0,!(s&1))&&Se(t|0,824,96),s=R()|0,Q0(t|0),B(s|0))}}function Wo(r,t){r=r|0,t=t|0;var n=0,f=0,s=0;t||((Je(r)|0)<<24>>24!=-1&&(t=B0(16)|0,u=0,n=Te(1)|0,r=u,u=0,!(r&1)&&(u=0,u0(7,t|0,12,n|0),r=u,u=0,!(r&1))&&Se(t|0,824,96),r=R()|0,Q0(t|0),B(r|0)),(Je(r)|0)<<24>>24!=-38&&(t=B0(16)|0,u=0,n=Te(1)|0,r=u,u=0,!(r&1)&&(u=0,u0(7,t|0,5,n|0),r=u,u=0,!(r&1))&&Se(t|0,824,96),r=R()|0,Q0(t|0),B(r|0))),Je(r)|0,Je(r)|0,n=Je(r)|0,f=n&255;do if(n<<24>>24==1)Je(r)|0,n=0,s=20;else{if((f|0)==(e[r+32>>2]|0))if(t=Je(r)|0,n<<24>>24){n=0,s=20;break}else break;t=B0(16)|0,u=0,n=Te(1)|0,r=u,u=0,!(r&1)&&(u=0,u0(7,t|0,2,n|0),r=u,u=0,!(r&1))&&Se(t|0,824,96),r=R()|0,Q0(t|0),B(r|0)}while(0);if((s|0)==20)for(;Je(r)|0,n=n+1|0,t=Je(r)|0,(n|0)!=(f|0);)s=20;e[r+36>>2]=t&255,s=Je(r)|0,n=r+40|0,e[n>>2]=s&255,(s&255)>=3&&(t=B0(16)|0,u=0,n=Te(1)|0,r=u,u=0,!(r&1)&&(u=0,u0(7,t|0,5,n|0),r=u,u=0,!(r&1))&&Se(t|0,824,96),r=R()|0,Q0(t|0),B(r|0)),(Je(r)|0)<<24>>24&&(t=B0(16)|0,u=0,n=Te(1)|0,r=u,u=0,!(r&1)&&(u=0,u0(7,t|0,5,n|0),r=u,u=0,!(r&1))&&Se(t|0,824,96),r=R()|0,Q0(t|0),B(r|0)),f=r+28|0,!(e[f>>2]|0)&&(t=e[r+108>>2]|0,t||(t=e[r+16>>2]|0),e[n>>2]|0?n=e[r+32>>2]|0:n=1,s=K(n,t)|0,r=K(s,((e[r+24>>2]|0)+7|0)/8|0)|0,e[f>>2]=r)}function sk(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;if(!((n|0)<=0)){g=t+4|0,v=t+8|0,y=0;do d=Je(r)|0,f=e[g>>2]|0,s=e[v>>2]|0,f>>>0>=s>>>0?(o=e[t>>2]|0,l=o,a=f-l+1|0,(a|0)<0&&(E1(t),l=e[t>>2]|0,s=e[v>>2]|0,o=l),h=o,f=s-h|0,f>>>0<1073741823?(f=f<<1,f=f>>>0>>0?a:f,a=e[g>>2]|0,s=a-h|0,f?E=10:(m=0,c=0,f=a)):(s=e[g>>2]|0,f=2147483647,a=s,s=s-h|0,E=10),(E|0)==10&&(E=0,m=f,c=k0(f)|0,f=a),p[c+s>>0]=d,h=f-h|0,d=c+(s-h)|0,qe(d|0,o|0,h|0)|0,e[t>>2]=d,e[g>>2]=c+(s+1),e[v>>2]=c+m,l&&H(l)):(p[f>>0]=d,e[g>>2]=(e[g>>2]|0)+1),y=y+1|0;while((y|0)!=(n|0))}}function Je(r){r=r|0;var t=0,n=0,f=0,s=0;return n=e[r>>2]|0,n?(r=n+12|0,t=e[r>>2]|0,(t|0)==(e[n+16>>2]|0)?r=V0[e[(e[n>>2]|0)+40>>2]&127](n)|0:(e[r>>2]=t+1,r=z[t>>0]|0),s=r&255,s|0):(f=r+8|0,s=e[f>>2]|0,s?(r=r+4|0,t=e[r>>2]|0,n=p[t>>0]|0,t?(e[r>>2]=t+1,e[f>>2]=s+-1,s=n,s|0):(s=n,s|0)):(r=B0(16)|0,u=0,t=Te(1)|0,s=u,u=0,s&1&&(s=R()|0,Q0(r|0),B(s|0)),u=0,u0(7,r|0,4,t|0),s=u,u=0,s&1?(s=R()|0,Q0(r|0),B(s|0)):Se(r|0,824,96),0))}function Zn(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0,a=0,c=0;if(n=C,C=C+176|0,t=n+152|0,c=n+16|0,l=n,a=Je(r)|0,f=a&255,a<<24>>24==-1){do t=Je(r)|0;while(t<<24>>24==-1);return C=n,t|0}a=c+56|0,o=c+4|0,e[c>>2]=36160,e[a>>2]=36180,u=0,b(62,c+56|0,o|0),s=u,u=0,s&1&&(c=R()|0,T0(a),B(c|0)),e[c+128>>2]=0,e[c+132>>2]=-1,e[c>>2]=36200,e[c+56>>2]=36220,u=0,A0(180,o|0),s=u,u=0;do if(s&1)t=R()|0;else{if(e[o>>2]=36236,s=c+36|0,e[s>>2]=0,e[s+4>>2]=0,e[s+8>>2]=0,e[s+12>>2]=0,e[c+52>>2]=16,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,u=0,b(63,o|0,t|0),n=u,u=0,n&1){c=R()|0,V(t),V(s),q0(o),t=c;break}V(t),e[c+((e[(e[c>>2]|0)+-12>>2]|0)+76)>>2]=48,u=0,t=ee(28,c|0,50907,62)|0,n=u,u=0,!(n&1)&&(n=t+((e[(e[t>>2]|0)+-12>>2]|0)+4)|0,e[n>>2]=e[n>>2]&-75|8,n=t+((e[(e[t>>2]|0)+-12>>2]|0)+4)|0,e[n>>2]=e[n>>2]|16384,e[t+((e[(e[t>>2]|0)+-12>>2]|0)+12)>>2]=2,u=0,c0(38,t|0,f|0)|0,f=u,u=0,!(f&1))&&(n=B0(16)|0,u=0,b(64,l|0,o|0),f=u,u=0,f&1?t=R()|0:(u=0,t=Te(1)|0,f=u,u=0,!(f&1)&&(u=0,g0(36,n|0,12,t|0,l|0),f=u,u=0,!(f&1))?(u=0,u0(6,n|0,824,96),u=0,r=0):r=1,t=R()|0,V(l),r||(l=t,e[c>>2]=36200,e[a>>2]=36220,e[o>>2]=36236,V(s),q0(o),T0(a),B(l|0))),Q0(n|0),l=t,e[c>>2]=36200,e[a>>2]=36220,e[o>>2]=36236,V(s),q0(o),T0(a),B(l|0)),l=R()|0,e[c>>2]=36200,e[a>>2]=36220,e[o>>2]=36236,V(s),q0(o),T0(a),B(l|0)}while(0);return c=t,T0(a),B(c|0),0}function ok(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0;switch(n=C,C=C+320|0,a=n+300|0,h=n+152|0,c=n+288|0,g=n+16|0,m=n,t<<24>>24){case-9:return v=(Je(r)|0)&255,e[r+24>>2]=v,v=((Je(r)|0)&255)<<8|(Je(r)|0)&255,g=((Je(r)|0)&255)<<8|(Je(r)|0)&255,e[r+16>>2]=g,e[r+20>>2]=v,v=(Je(r)|0)&255,e[r+32>>2]=v,v=6,C=n,v|0;case-8:return v=lk(r)|0,C=n,v|0;case-24:return v=uk(r)|0,C=n,v|0;case-53:case-54:case-55:case-57:case-58:case-59:case-61:case-62:case-63:case-64:{l=h+56|0,s=h+4|0,e[h>>2]=36160,e[l>>2]=36180,u=0,b(62,h+56|0,s|0),g=u,u=0,g&1&&(v=R()|0,T0(l),B(v|0)),e[h+128>>2]=0,e[h+132>>2]=-1,e[h>>2]=36200,e[h+56>>2]=36220,u=0,A0(180,s|0),g=u,u=0;do if(g&1)r=R()|0;else{if(e[s>>2]=36236,o=h+36|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[h+52>>2]=16,e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,u=0,b(63,s|0,a|0),g=u,u=0,g&1){r=R()|0,V(a),V(o),q0(s);break}V(a),u=0,r=ee(28,h|0,50970,26)|0,g=u,u=0;do if(!(g&1)&&(u=0,f=c0(38,r|0,t&255|0)|0,g=u,u=0,!(g&1))&&(u=0,ee(28,f|0,50997,18)|0,g=u,u=0,!(g&1))){if(f=B0(16)|0,u=0,b(64,c|0,s|0),g=u,u=0,g&1)r=R()|0;else if(u=0,r=Te(1)|0,g=u,u=0,!(g&1)&&(u=0,g0(36,f|0,10,r|0,c|0),g=u,u=0,!(g&1))?(u=0,u0(6,f|0,824,96),u=0,n=0):n=1,r=R()|0,V(c),!n)break;Q0(f|0)}else v=20;while(0);(v|0)==20&&(r=R()|0),e[h>>2]=36200,e[l>>2]=36220,e[s>>2]=36236,V(o),q0(s),T0(l),v=r,B(v|0)}while(0);v=r,T0(l),B(v|0)}case-25:case-32:case-2:return v=0,C=n,v|0;default:{c=g+56|0,o=g+4|0,e[g>>2]=36160,e[c>>2]=36180,u=0,b(62,g+56|0,o|0),h=u,u=0,h&1&&(v=R()|0,T0(c),B(v|0)),e[g+128>>2]=0,e[g+132>>2]=-1,e[g>>2]=36200,e[g+56>>2]=36220,u=0,A0(180,o|0),h=u,u=0;do if(h&1)r=R()|0;else{if(e[o>>2]=36236,l=g+36|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[g+52>>2]=16,e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,u=0,b(63,o|0,a|0),h=u,u=0,h&1){r=R()|0,V(a),V(l),q0(o);break}V(a),u=0,r=ee(28,g|0,51016,20)|0,h=u,u=0;do if(!(h&1)&&(u=0,s=c0(38,r|0,t&255|0)|0,h=u,u=0,!(h&1))&&(u=0,ee(28,s|0,51037,13)|0,h=u,u=0,!(h&1))){if(f=B0(16)|0,u=0,b(64,m|0,o|0),h=u,u=0,h&1)r=R()|0;else if(u=0,r=Te(1)|0,h=u,u=0,!(h&1)&&(u=0,g0(36,f|0,11,r|0,m|0),h=u,u=0,!(h&1))?(u=0,u0(6,f|0,824,96),u=0,n=0):n=1,r=R()|0,V(m),!n)break;Q0(f|0)}else v=40;while(0);(v|0)==40&&(r=R()|0),e[g>>2]=36200,e[c>>2]=36220,e[o>>2]=36236,V(l),q0(o),T0(c),v=r,B(v|0)}while(0);v=r,T0(c),B(v|0)}}return 0}function lk(r){r=r|0;var t=0;return(Je(r)|0)<<24>>24!=1?(r=1,r|0):(t=((Je(r)|0)&255)<<8,t=t|(Je(r)|0)&255,e[r+52>>2]=t,t=((Je(r)|0)&255)<<8,t=t|(Je(r)|0)&255,e[r+56>>2]=t,t=((Je(r)|0)&255)<<8,t=t|(Je(r)|0)&255,e[r+60>>2]=t,t=((Je(r)|0)&255)<<8,t=t|(Je(r)|0)&255,e[r+64>>2]=t,t=((Je(r)|0)&255)<<8,t=t|(Je(r)|0)&255,e[r+68>>2]=t,r=11,r|0)}function uk(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0;n=C,C=C+16|0,s=n,e[s>>2]=0,o=s+4|0,e[o>>2]=0,e[s+8>>2]=0,u=0,u0(9,r|0,s|0,4),t=u,u=0;e:do if(t&1)f=3;else{t=e[s>>2]|0;i:do if(P_(t,51051,4)|0)r=4;else{if(u=0,t=W(69,r|0)|0,l=u,u=0,l&1){f=3;break e}switch(t=t&255,t|0){case 3:case 2:case 1:case 0:{e[r+44>>2]=t,r=5,t=e[s>>2]|0;break i}case 5:case 4:{if(t=B0(16)|0,u=0,r=Te(1)|0,l=u,u=0,!(l&1)&&(u=0,u0(7,t|0,7,r|0),l=u,u=0,!(l&1))){u=0,u0(6,t|0,824,96),u=0,f=3;break e}r=R()|0,Q0(t|0);break e}default:{if(t=B0(16)|0,u=0,r=Te(1)|0,l=u,u=0,!(l&1)&&(u=0,u0(7,t|0,5,r|0),l=u,u=0,!(l&1))){u=0,u0(6,t|0,824,96),u=0,f=3;break e}r=R()|0,Q0(t|0);break e}}}while(0);return t?((e[o>>2]|0)!=(t|0)&&(e[o>>2]=t),H(t),C=n,r|0):(C=n,r|0)}while(0);return(f|0)==3&&(r=R()|0),t=e[s>>2]|0,t||B(r|0),(e[o>>2]|0)!=(t|0)&&(e[o>>2]=t),H(t),B(r|0),0}function ak(r){r=r|0;var t=0,n=0,f=0;f=e[(e[r>>2]|0)+-12>>2]|0,e[r+f>>2]=36200,t=r+(f+56)|0,e[t>>2]=36220,n=r+(f+4)|0,e[n>>2]=36236,V(r+(f+36)|0),q0(n),T0(t)}function ck(r){r=r|0}function hk(r){r=r|0,H(r)}function Sk(r){r=r|0,p[r>>0]=0,r=r+4|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[r+20>>2]=0,e[r+24>>2]=0,e[r+28>>2]=0}function mk(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0;if(s=C,C=C+16|0,o=s,t=Kd(t)|0,e[o>>2]=t,n=r+28|0,f=e[n>>2]|0,f>>>0<(e[r+32>>2]|0)>>>0){e[f>>2]=t,e[n>>2]=f+4,e[o>>2]=0,C=s;return}if(u=0,b(57,r+24|0,o|0),r=u,u=0,r&1)t=R()|0,n=e[o>>2]|0,e[o>>2]=0,n||B(t|0),W0[e[(e[n>>2]|0)+4>>2]&255](n),B(t|0);else{if(t=e[o>>2]|0,e[o>>2]=0,!t){C=s;return}W0[e[(e[t>>2]|0)+4>>2]&255](t),C=s;return}}function pk(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0;if(f=r+4|0,e[f>>2]=e[t>>2],e[f+4>>2]=e[t+4>>2],e[f+8>>2]=e[t+8>>2],_1(r,-1),_1(r,-40),f=r+28|0,s=r+24|0,t=e[s>>2]|0,(e[f>>2]|0)==(t|0))return _1(r,-1),_1(r,-39),r=r+16|0,r=e[r>>2]|0,r|0;n=0;do o=e[t+(n<<2)>>2]|0,Ae[e[(e[o>>2]|0)+8>>2]&127](o,r),n=n+1|0,t=e[s>>2]|0;while(n>>>0<(e[f>>2]|0)-t>>2>>>0);return _1(r,-1),_1(r,-39),o=r+16|0,o=e[o>>2]|0,o|0}function gk(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0;g=C,C=C+48|0,a=g+32|0,s=g+12|0,c=g+8|0,h=g+4|0,v=g,f=n+36|0;do if(!(e[f>>2]|0)&&!(e[n+40>>2]|0)&&!(e[n+44>>2]|0)&&!(e[n+48>>2]|0)&&!(e[n+52>>2]|0)){if(f=e[n+8>>2]|0,(f|0)<=12){o=r+28|0,l=r+32|0;break}if(e2(s,(1<>2]|0),f=Xo(s)|0,e[c>>2]=f,o=r+28|0,s=e[o>>2]|0,l=r+32|0,s>>>0<(e[l>>2]|0)>>>0){e[s>>2]=f,e[o>>2]=s+4,e[c>>2]=0;break}if(u=0,b(57,r+24|0,c|0),a=u,u=0,!(a&1)){if(f=e[c>>2]|0,e[c>>2]=0,!f)break;W0[e[(e[f>>2]|0)+4>>2]&255](f);break}n=R()|0,f=e[c>>2]|0,e[c>>2]=0,f||(v=n,B(v|0)),W0[e[(e[f>>2]|0)+4>>2]&255](f),v=n,B(v|0)}else m=6;while(0);do if((m|0)==6){if(f=Xo(f)|0,e[a>>2]=f,o=r+28|0,s=e[o>>2]|0,l=r+32|0,s>>>0<(e[l>>2]|0)>>>0){e[s>>2]=f,e[o>>2]=s+4,e[a>>2]=0;break}if(u=0,b(57,r+24|0,a|0),m=u,u=0,!(m&1)){if(f=e[a>>2]|0,e[a>>2]=0,!f)break;W0[e[(e[f>>2]|0)+4>>2]&255](f);break}n=R()|0,f=e[a>>2]|0,e[a>>2]=0,f||(v=n,B(v|0)),W0[e[(e[f>>2]|0)+4>>2]&255](f),v=n,B(v|0)}while(0);f=r+20|0,s=(e[f>>2]|0)+1|0,e[f>>2]=s,f=e[n+24>>2]|0,a=f|0?e[n+16>>2]|0:1,f=Jd(s,a,e[n+20>>2]|0,f)|0,e[h>>2]=f,s=e[o>>2]|0;do if(s>>>0<(e[l>>2]|0)>>>0)e[s>>2]=f,e[o>>2]=s+4,e[h>>2]=0;else{if(u=0,b(57,r+24|0,h|0),m=u,u=0,!(m&1)){if(f=e[h>>2]|0,e[h>>2]=0,!f)break;W0[e[(e[f>>2]|0)+4>>2]&255](f);break}n=R()|0,f=e[h>>2]|0,e[h>>2]=0,f||(v=n,B(v|0)),W0[e[(e[f>>2]|0)+4>>2]&255](f),v=n,B(v|0)}while(0);c=k0(104)|0,e[c>>2]=36820,e[c+4>>2]=a,s=c+8|0,e[s>>2]=e[t>>2],e[s+4>>2]=e[t+4>>2],e[s+8>>2]=e[t+8>>2],s=c+20|0,f=s+84|0;do e[s>>2]=e[n>>2],s=s+4|0,n=n+4|0;while((s|0)<(f|0));if(e[v>>2]=c,n=e[o>>2]|0,n>>>0<(e[l>>2]|0)>>>0){e[n>>2]=c,e[o>>2]=n+4,e[v>>2]=0,C=g;return}if(u=0,b(57,r+24|0,v|0),r=u,u=0,r&1)n=R()|0,f=e[v>>2]|0,e[v>>2]=0,f||(v=n,B(v|0)),W0[e[(e[f>>2]|0)+4>>2]&255](f),v=n,B(v|0);else{if(n=e[v>>2]|0,e[v>>2]=0,!n){C=g;return}W0[e[(e[n>>2]|0)+4>>2]&255](n),C=g;return}}function vk(r,t,n,f,s,o,l,a,c,m,h){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0,m=m|0,h=h|0;var g=0,v=0,d=0,y=0,E=0,P=0,I=0;return d=C,C=C+96|0,v=d,g=C6(r,t,v,0)|0,g?(s=g,C=d,s|0):(p[v+32>>0]=0,E=e[v+8>>2]|0,I=e[v>>2]|0,P=e[v+4>>2]|0,g=K(P,I)|0,y=e[v+16>>2]|0,g=K(K(g,(E|0)<9?1:2)|0,y)|0,e[f>>2]=g,g=S2(g)|0,e[n>>2]=g,e[s>>2]=I,e[o>>2]=P,e[l>>2]=E,e[a>>2]=e[v+12>>2],e[c>>2]=y,e[m>>2]=e[v+20>>2],e[h>>2]=e[v+24>>2],s=A6(g,e[f>>2]|0,r,t,0,0)|0,C=d,s|0)}function dk(r,t,n,f,s,o,l,a,c){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,l=l|0,a=a|0,c=c|0;var m=0,h=0,g=0,v=0;g=C,C=C+96|0,m=g+4|0,l=g,h=m,v=h+84|0;do e[h>>2]=0,h=h+4|0;while((h|0)<(v|0));return e[m+16>>2]=o,e[m+8>>2]=s,e[m>>2]=n,e[m+4>>2]=f,n=S2(t)|0,e[a>>2]=n,e[l>>2]=0,n=w6(a,t,l,r,t,m,0)|0,e[c>>2]=e[l>>2],C=g,n|0}function b1(r,t){r=r|0,t=t|0;var n=0;n=C,C=C+16|0,e[n>>2]=t,t=e[9320]|0,gl(t,r,n)|0,C_(10,t)|0,G0()}function t1(r){r=r|0,ds(51337,51366,1164,51442)}function E1(r){r=r|0,ds(51463,51486,303,51442)}function Zo(){var r=0,t=0;if(r=C,C=C+16|0,i6(37024,4)|0)b1(51562,r);else return t=e6(e[9255]|0)|0,C=r,t|0;return 0}function k0(r){r=r|0;var t=0;t=r|0?r:1,r=S2(t)|0;e:do if(!r){for(;r=Dk()|0,!!r;)if(Tl[r&7](),r=S2(t)|0,r)break e;t=B0(4)|0,e[t>>2]=36844,Se(t|0,592,78)}while(0);return r|0}function H(r){r=r|0,ye(r)}function kk(r){r=r|0,H(r)}function _k(r){r=r|0,e[r>>2]=36844}function Tk(r){r=r|0}function wk(r){r=r|0,H(r)}function Ck(r){return r=r|0,51611}function Ko(r){r=r|0;var t=0;t=C,C=C+16|0,u=0,be(r|0),r=u,u=0,r&1||(u=0,b(85,51626,t|0),u=0),r=R(0)|0,V2(r|0)|0,u=0,b(85,51666,t+8|0),u=0,r=R(0)|0,u=0,be(3),t=u,u=0,t&1?(t=R(0)|0,ie(t)):ie(r)}function Ak(){var r=0,t=0,n=0;u=0,r=Te(2)|0,n=u,u=0,n&1&&(n=R(0)|0,ie(n)),r|0&&(t=e[r>>2]|0,(t|0)!=0)&&(n=t+48|0,(e[n>>2]&-256|0)==1126902528?(e[n+4>>2]|0)==1129074247:0)&&Ko(e[t+12>>2]|0),n=e[9208]|0,e[9208]=n+0,Ko(n)}function Dk(){var r=0;return r=e[9214]|0,e[9214]=r+0,r|0}function BA(r){r=r|0}function Wr(r){r=r|0,e[r>>2]=36868,$k(r+4|0)}function yk(r){r=r|0,Wr(r),H(r)}function Ik(r){return r=r|0,e[r+4>>2]|0}function QA(r){r=r|0}function Ek(r){r=r|0,e[r>>2]=36888}function Pk(r){r=r|0}function Lk(r){r=r|0,H(r)}function Rk(r){return r=r|0,51716}function Fk(r){r=r|0}function Ok(r){r=r|0}function xk(r){r=r|0}function Mk(r){r=r|0,H(r)}function qk(r){r=r|0,H(r)}function Nk(r){r=r|0,H(r)}function Uk(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;if(l=C,C=C+64|0,o=l,(r|0)!=(t|0))if(t|0&&(s=$o(t,656,672,0)|0,(s|0)!=0)){t=o,f=t+56|0;do e[t>>2]=0,t=t+4|0;while((t|0)<(f|0));e[o>>2]=s,e[o+8>>2]=r,e[o+12>>2]=-1,e[o+48>>2]=1,st[e[(e[s>>2]|0)+28>>2]&63](s,o,e[n>>2]|0,1),(e[o+24>>2]|0)==1?(e[n>>2]=e[o+16>>2],t=1):t=0}else t=0;else t=1;return C=l,t|0}function Kn(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0;r=t+16|0,s=e[r>>2]|0;do if(s){if((s|0)!=(n|0)){f=t+36|0,e[f>>2]=(e[f>>2]|0)+1,e[t+24>>2]=2,p[t+54>>0]=1;break}r=t+24|0,(e[r>>2]|0)==2&&(e[r>>2]=f)}else e[r>>2]=n,e[t+24>>2]=f,e[t+36>>2]=1;while(0)}function Bk(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0,(r|0)==(e[t+8>>2]|0)&&Kn(0,t,n,f)}function Qk(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0,(r|0)==(e[t+8>>2]|0)?Kn(0,t,n,f):(r=e[r+8>>2]|0,st[e[(e[r>>2]|0)+28>>2]&63](r,t,n,f))}function Jo(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;o=e[r+4>>2]|0,s=o>>8,o&1&&(s=e[(e[n>>2]|0)+s>>2]|0),r=e[r>>2]|0,st[e[(e[r>>2]|0)+28>>2]&63](r,t,n+s|0,o&2|0?f:2)}function Gk(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;e:do if((r|0)!=(e[t+8>>2]|0)){if(o=e[r+12>>2]|0,s=r+16+(o<<3)|0,Jo(r+16|0,t,n,f),(o|0)>1){o=t+54|0,r=r+24|0;do{if(Jo(r,t,n,f),p[o>>0]|0)break e;r=r+8|0}while(r>>>0>>0)}}else Kn(0,t,n,f);while(0)}function $o(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;d=C,C=C+64|0,v=d,g=e[r>>2]|0,h=r+(e[g+-8>>2]|0)|0,g=e[g+-4>>2]|0,e[v>>2]=n,e[v+4>>2]=r,e[v+8>>2]=t,e[v+12>>2]=f,f=v+16|0,r=v+20|0,t=v+24|0,s=v+28|0,o=v+32|0,l=v+40|0,a=(g|0)==(n|0),c=f,m=c+36|0;do e[c>>2]=0,c=c+4|0;while((c|0)<(m|0));F[f+36>>1]=0,p[f+38>>0]=0;e:do if(a)e[v+48>>2]=1,di[e[(e[n>>2]|0)+20>>2]&15](n,v,h,h,1,0),f=(e[t>>2]|0)==1?h:0;else{switch(nt[e[(e[g>>2]|0)+24>>2]&15](g,v,h,1,0),e[v+36>>2]|0){case 0:{f=(e[l>>2]|0)==1&(e[s>>2]|0)==1&(e[o>>2]|0)==1?e[r>>2]|0:0;break e}case 1:break;default:{f=0;break e}}if((e[t>>2]|0)!=1&&!((e[l>>2]|0)==0&(e[s>>2]|0)==1&(e[o>>2]|0)==1)){f=0;break}f=e[f>>2]|0}while(0);return C=d,f|0}function Jn(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,p[t+53>>0]=1;do if((e[t+4>>2]|0)==(f|0)){if(p[t+52>>0]=1,f=t+16|0,r=e[f>>2]|0,!r){if(e[f>>2]=n,e[t+24>>2]=s,e[t+36>>2]=1,!((s|0)==1&&(e[t+48>>2]|0)==1))break;p[t+54>>0]=1;break}if((r|0)!=(n|0)){s=t+36|0,e[s>>2]=(e[s>>2]|0)+1,p[t+54>>0]=1;break}r=t+24|0,f=e[r>>2]|0,(f|0)==2&&(e[r>>2]=s,f=s),(f|0)==1&&(e[t+48>>2]|0)==1&&(p[t+54>>0]=1)}while(0)}function Hk(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0;e:do if((r|0)==(e[t+8>>2]|0))(e[t+4>>2]|0)==(n|0)&&(o=t+28|0,(e[o>>2]|0)!=1)&&(e[o>>2]=f);else{if((r|0)!=(e[t>>2]|0)){if(y=e[r+12>>2]|0,a=r+16+(y<<3)|0,Zr(r+16|0,t,n,f,s),o=r+24|0,(y|0)<=1)break;if(l=e[r+8>>2]|0,!(l&2|0)&&(c=t+36|0,(e[c>>2]|0)!=1)){if(!(l&1)){for(l=t+54|0;;)if(p[l>>0]|0||(e[c>>2]|0)==1||(Zr(o,t,n,f,s),o=o+8|0,o>>>0>=a>>>0))break e}for(l=t+24|0,r=t+54|0;;)if(p[r>>0]|0||(e[c>>2]|0)==1&&(e[l>>2]|0)==1||(Zr(o,t,n,f,s),o=o+8|0,o>>>0>=a>>>0))break e}for(l=t+54|0;;)if(p[l>>0]|0||(Zr(o,t,n,f,s),o=o+8|0,o>>>0>=a>>>0))break e}if((e[t+16>>2]|0)!=(n|0)&&(d=t+20|0,(e[d>>2]|0)!=(n|0))){if(e[t+32>>2]=f,h=t+44|0,(e[h>>2]|0)==4)break;l=e[r+12>>2]|0,a=r+16+(l<<3)|0,c=t+52|0,f=t+53|0,g=t+54|0,m=r+8|0,v=t+24|0;i:do if((l|0)>0)for(l=0,o=0,r=r+16|0;;){if(p[c>>0]=0,p[f>>0]=0,$n(r,t,n,n,1,s),p[g>>0]|0){y=20;break i}do if(p[f>>0]|0){if(!(p[c>>0]|0))if(e[m>>2]&1){o=1;break}else{o=1,y=20;break i}if((e[v>>2]|0)==1)break i;if(e[m>>2]&2)l=1,o=1;else break i}while(0);if(r=r+8|0,r>>>0>=a>>>0){y=20;break}}else l=0,o=0,y=20;while(0);do if((y|0)==20){if(!l&&(e[d>>2]=n,n=t+40|0,e[n>>2]=(e[n>>2]|0)+1,(e[t+36>>2]|0)==1)&&(e[v>>2]|0)==2){if(p[g>>0]=1,o)break}else y=24;if((y|0)==24&&o)break;e[h>>2]=4;break e}while(0);e[h>>2]=3;break}(f|0)==1&&(e[t+32>>2]=1)}while(0)}function $n(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0;a=e[r+4>>2]|0,l=a>>8,a&1&&(l=e[(e[f>>2]|0)+l>>2]|0),r=e[r>>2]|0,di[e[(e[r>>2]|0)+20>>2]&15](r,t,n,f+l|0,a&2|0?s:2,o)}function Zr(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0;l=e[r+4>>2]|0,o=l>>8,l&1&&(o=e[(e[n>>2]|0)+o>>2]|0),r=e[r>>2]|0,nt[e[(e[r>>2]|0)+24>>2]&15](r,t,n+o|0,l&2|0?f:2,s)}function Vk(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0;e:do if((r|0)==(e[t+8>>2]|0))(e[t+4>>2]|0)==(n|0)&&(o=t+28|0,(e[o>>2]|0)!=1)&&(e[o>>2]=f);else{if((r|0)!=(e[t>>2]|0)){a=e[r+8>>2]|0,nt[e[(e[a>>2]|0)+24>>2]&15](a,t,n,f,s);break}if((e[t+16>>2]|0)!=(n|0)&&(l=t+20|0,(e[l>>2]|0)!=(n|0))){if(e[t+32>>2]=f,f=t+44|0,(e[f>>2]|0)==4)break;o=t+52|0,p[o>>0]=0,c=t+53|0,p[c>>0]=0,r=e[r+8>>2]|0,di[e[(e[r>>2]|0)+20>>2]&15](r,t,n,n,1,s),p[c>>0]|0?p[o>>0]|0||(o=1,a=13):(o=0,a=13);do if((a|0)==13){if(e[l>>2]=n,c=t+40|0,e[c>>2]=(e[c>>2]|0)+1,(e[t+36>>2]|0)==1&&(e[t+24>>2]|0)==2){if(p[t+54>>0]=1,o)break}else a=16;if((a|0)==16&&o)break;e[f>>2]=4;break e}while(0);e[f>>2]=3;break}(f|0)==1&&(e[t+32>>2]=1)}while(0)}function zk(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0;do if((r|0)==(e[t+8>>2]|0))(e[t+4>>2]|0)==(n|0)&&(l=t+28|0,(e[l>>2]|0)!=1)&&(e[l>>2]=f);else if((r|0)==(e[t>>2]|0)){if((e[t+16>>2]|0)!=(n|0)&&(o=t+20|0,(e[o>>2]|0)!=(n|0))){e[t+32>>2]=f,e[o>>2]=n,s=t+40|0,e[s>>2]=(e[s>>2]|0)+1,(e[t+36>>2]|0)==1&&(e[t+24>>2]|0)==2&&(p[t+54>>0]=1),e[t+44>>2]=4;break}(f|0)==1&&(e[t+32>>2]=1)}while(0)}function Yk(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0;var l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;if((r|0)==(e[t+8>>2]|0))Jn(0,t,n,f,s);else{h=t+52|0,g=p[h>>0]|0,v=t+53|0,d=p[v>>0]|0,m=e[r+12>>2]|0,l=r+16+(m<<3)|0,p[h>>0]=0,p[v>>0]=0,$n(r+16|0,t,n,f,s,o);e:do if((m|0)>1){a=t+24|0,c=r+8|0,m=t+54|0,r=r+24|0;do{if(p[m>>0]|0)break e;if(p[h>>0]|0){if((e[a>>2]|0)==1||!(e[c>>2]&2))break e}else if(p[v>>0]|0&&!(e[c>>2]&1|0))break e;p[h>>0]=0,p[v>>0]=0,$n(r,t,n,f,s,o),r=r+8|0}while(r>>>0>>0)}while(0);p[h>>0]=g,p[v>>0]=d}}function Xk(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,(r|0)==(e[t+8>>2]|0)?Jn(0,t,n,f,s):(r=e[r+8>>2]|0,di[e[(e[r>>2]|0)+20>>2]&15](r,t,n,f,s,o))}function jk(r,t,n,f,s,o){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0,o=o|0,(r|0)==(e[t+8>>2]|0)&&Jn(0,t,n,f,s)}function Wk(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;return s=C,C=C+16|0,f=s,e[f>>2]=e[n>>2],r=ge[e[(e[r>>2]|0)+16>>2]&63](r,t,f)|0,r&&(e[n>>2]=e[f>>2]),C=s,r&1|0}function Zk(r){return r=r|0,r?r=($o(r,656,704,0)|0)!=0:r=0,r&1|0}function Kr(){var r=0;r=B0(4)|0,_k(r),Se(r|0,592,78)}function Kk(){var r=0,t=0,n=0,f=0,s=0,o=0,l=0,a=0;s=C,C=C+48|0,l=s+32|0,n=s+24|0,a=s+16|0,o=s,s=s+36|0,r=Zo()|0,r|0&&(f=e[r>>2]|0,(f|0)!=0)&&(r=f+48|0,t=e[r>>2]|0,r=e[r+4>>2]|0,(t&-256|0)==1126902528&(r|0)==1129074247||(e[n>>2]=e[9257],b1(51919,n)),(t|0)==1126902529&(r|0)==1129074247?r=e[f+44>>2]|0:r=f+80|0,e[s>>2]=r,f=e[f>>2]|0,r=e[f+4>>2]|0,ge[e[(e[152]|0)+16>>2]&63](608,f,s)|0?(a=e[s>>2]|0,s=e[9257]|0,a=V0[e[(e[a>>2]|0)+8>>2]&127](a)|0,e[o>>2]=s,e[o+4>>2]=r,e[o+8>>2]=a,b1(51833,o)):(e[a>>2]=e[9257],e[a+4>>2]=r,b1(51878,a))),b1(51957,l)}function Jk(){var r=0;if(r=C,C=C+16|0,Ku(37020,184)|0)b1(51730,r);else{C=r;return}}function $k(r){r=r|0;var t=0,n=0;n=(e[r>>2]|0)+-4|0,t=e[n>>2]|0,e[n>>2]=t+-1,(t+-1|0)<0&&H((e[r>>2]|0)+-12|0)}function bk(r){r=r|0;var t=0;if(t=C,C=C+16|0,ye(r),f6(e[9255]|0,0)|0)b1(51780,t);else{C=t;return}}function Jr(r,t,n,f){return r=r|0,t=t|0,n=n|0,f=f|0,r=y_(r,t,n)|0,r|0}function bo(r,t,n,f){return r=r|0,t=t|0,n=n|0,f=f|0,r=I_(r,t,n)|0,r|0}function e_(){return 37296}function i_(){return 37300}function r_(){return 37304}function Bi(r){return r=r|0,((r|0)==32|(r+-9|0)>>>0<5)&1|0}function t_(r){return r=r|0,(r+-48|0)>>>0<10?r=1:r=((r|32)+-97|0)>>>0<6,r&1|0}function r2(){var r=0;return e[9258]|0?(r=(_s()|0)+60|0,r=e[r>>2]|0):r=37308,r|0}function el(r){r=r|0;var t=0,n=0;for(t=0;;){if((z[51978+t>>0]|0)==(r|0)){n=2;break}if(t=t+1|0,(t|0)==87){t=87,r=52066,n=5;break}}if((n|0)==2&&(t?(r=52066,n=5):r=52066),(n|0)==5)for(;;){for(n=r;r=n+1|0,p[n>>0]|0;)n=r;if(t=t+-1|0,t)n=5;else break}return r|0}function il(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0;switch(ve=C,C=C+512|0,r0=ve,t|0){case 0:{w0=24,J=-149,w=4;break}case 1:{w0=53,J=-1074,w=4;break}case 2:{w0=53,J=-1074,w=4;break}default:f=0}e:do if((w|0)==4){U=r+4|0,M=r+100|0;do t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0;while(Bi(t)|0);i:do switch(t|0){case 43:case 45:if(s=1-(((t|0)==45&1)<<1)|0,t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0){e[U>>2]=t+1,t=z[t>>0]|0,i0=s;break i}else{t=ze(r)|0,i0=s;break i}default:i0=1}while(0);s=t,t=0;do{if((s|32|0)!=(p[53870+t>>0]|0))break;do if(t>>>0<7)if(s=e[U>>2]|0,s>>>0<(e[M>>2]|0)>>>0){e[U>>2]=s+1,s=z[s>>0]|0;break}else{s=ze(r)|0;break}while(0);t=t+1|0}while(t>>>0<8);i:do switch(t|0){case 8:break;case 3:{w=23;break}default:{if(l=(n|0)!=0,l&t>>>0>3){if((t|0)==8)break i;w=23;break i}r:do if(!t){t=0;do{if((s|32|0)!=(p[56747+t>>0]|0))break r;do if(t>>>0<2)if(s=e[U>>2]|0,s>>>0<(e[M>>2]|0)>>>0){e[U>>2]=s+1,s=z[s>>0]|0;break}else{s=ze(r)|0;break}while(0);t=t+1|0}while(t>>>0<3)}while(0);switch(t|0){case 3:{if(t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,(t|0)==40)t=1;else{if(!(e[M>>2]|0)){f=C0;break e}e[U>>2]=(e[U>>2]|0)+-1,f=C0;break e}for(;s=e[U>>2]|0,s>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=s+1,s=z[s>>0]|0):s=ze(r)|0,!(!((s+-48|0)>>>0<10|(s+-65|0)>>>0<26)&&!((s|0)==95|(s+-97|0)>>>0<26));)t=t+1|0;if((s|0)==41){f=C0;break e}if(s=(e[M>>2]|0)==0,s||(e[U>>2]=(e[U>>2]|0)+-1),!l){w0=r2()|0,e[w0>>2]=22,n1(r,0),f=0;break e}if(!t){f=C0;break e}for(;;)if(t=t+-1|0,s||(e[U>>2]=(e[U>>2]|0)+-1),!t){f=C0;break e}}case 0:{do if((s|0)==48){if(t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,(t|32|0)!=120){if(!(e[M>>2]|0)){t=48;break}e[U>>2]=(e[U>>2]|0)+-1,t=48;break}t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=t+1,t=z[t>>0]|0,l=0):(t=ze(r)|0,l=0);r:for(;;){switch(t|0){case 46:{w=74;break r}case 48:break;default:{A=0,a=0,I=0,s=0,m=l,h=0,P=0,c=1,l=0,f=0;break r}}if(t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0){e[U>>2]=t+1,t=z[t>>0]|0,l=1;continue}else{t=ze(r)|0,l=1;continue}}if((w|0)==74)if(t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,(t|0)==48){l=0,s=0;do t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,l=E2(l|0,s|0,-1,-1)|0,s=f0;while((t|0)==48);A=0,a=0,I=l,m=1,h=1,P=0,c=1,l=0,f=0}else A=0,a=0,I=0,s=0,m=l,h=1,P=0,c=1,l=0,f=0;for(;;){if(y=t+-48|0,g=t|32,y>>>0>=10){if(E=(t|0)==46,!(E|(g+-97|0)>>>0<6)){g=I,y=A;break}if(E)if(!h)E=a,s=A,y=A,h=1,g=P,o=c;else{g=I,y=A,t=46;break}else w=86}else w=86;if((w|0)==86){w=0,t=(t|0)>57?g+-87|0:y;do if((A|0)<0|(A|0)==0&a>>>0<8)g=P,o=c,l=t+(l<<4)|0;else{if((A|0)<0|(A|0)==0&a>>>0<14){d=c*.0625,g=P,o=d,f=f+d*+(t|0);break}(P|0)!=0|(t|0)==0?(g=P,o=c):(g=1,o=c,f=f+c*.5)}while(0);a=E2(a|0,A|0,1,0)|0,E=I,y=f0,m=1}if(t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0){e[U>>2]=t+1,A=y,I=E,t=z[t>>0]|0,P=g,c=o;continue}else{A=y,I=E,t=ze(r)|0,P=g,c=o;continue}}if(!m){t=(e[M>>2]|0)==0,t||(e[U>>2]=(e[U>>2]|0)+-1),n?!t&&(_=e[U>>2]|0,e[U>>2]=_+-1,(h|0)!=0)&&(e[U>>2]=_+-2):n1(r,0),f=+(i0|0)*0;break e}if(m=(h|0)==0,h=m?a:g,m=m?y:s,(y|0)<0|(y|0)==0&a>>>0<8){s=y;do l=l<<4,a=E2(a|0,s|0,1,0)|0,s=f0;while((s|0)<0|(s|0)==0&a>>>0<8)}if((t|32|0)==112){if(s=_l(r,n)|0,t=f0,(s|0)==0&(t|0)==-2147483648){if(!n){n1(r,0),f=0;break e}e[M>>2]|0?(e[U>>2]=(e[U>>2]|0)+-1,s=0,t=0):(s=0,t=0)}}else e[M>>2]|0?(e[U>>2]=(e[U>>2]|0)+-1,s=0,t=0):(s=0,t=0);if(r0=f2(h|0,m|0,2)|0,r0=E2(r0|0,f0|0,-32,-1)|0,t=E2(r0|0,f0|0,s|0,t|0)|0,s=f0,!l){f=+(i0|0)*0;break e}if((s|0)>0|(s|0)==0&t>>>0>(0-J|0)>>>0){w0=r2()|0,e[w0>>2]=34,f=+(i0|0)*17976931348623157e292*17976931348623157e292;break e}if(r0=J+-106|0,Q=((r0|0)<0)<<31>>31,(s|0)<(Q|0)|(s|0)==(Q|0)&t>>>0>>0){w0=r2()|0,e[w0>>2]=34,f=+(i0|0)*22250738585072014e-324*22250738585072014e-324;break e}if((l|0)>-1){do Q=!(f>=.5),r0=Q&1|l<<1,l=r0^1,f=f+(Q?f:f+-1),t=E2(t|0,s|0,-1,-1)|0,s=f0;while((r0|0)>-1);a=t,c=f}else a=t,c=f;t=J2(32,0,J|0,((J|0)<0)<<31>>31|0)|0,t=E2(a|0,s|0,t|0,f0|0)|0,J=f0,0>(J|0)|(J|0)==0&w0>>>0>t>>>0?(t|0)<0?(t=0,w=127):w=125:(t=w0,w=125),(w|0)==125&&((t|0)<53?w=127:(s=t,o=+(i0|0),f=0)),(w|0)==127&&(f=+(i0|0),s=t,o=f,f=+nl(+$r(1,84-t|0),f)),w0=(l&1|0)==0&(c!=0&(s|0)<32),f=o*(w0?0:c)+(f+o*+(((w0&1)+l|0)>>>0))-f,f==0&&(w0=r2()|0,e[w0>>2]=34),f=+ol(f,a);break e}else t=s;while(0);q=J+w0|0,Q=0-q|0,l=0;r:for(;;){switch(t|0){case 46:{w=138;break r}case 48:break;default:{s=0,g=0,h=0;break r}}if(t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0){e[U>>2]=t+1,t=z[t>>0]|0,l=1;continue}else{t=ze(r)|0,l=1;continue}}if((w|0)==138)if(t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,(t|0)==48)for(s=0,t=0;;)if(s=E2(s|0,t|0,-1,-1)|0,l=f0,t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,(t|0)==48)t=l;else{g=l,l=1,h=1;break}else s=0,g=0,h=1;e[r0>>2]=0,m=t+-48|0,a=(t|0)==46;r:do if(a|m>>>0<10){x=r0+496|0,A=0,E=0,P=a,w=g,y=l,_=h,l=0,a=0,h=0;t:for(;;){do if(P)if(!_)s=A,g=E,_=1;else{g=w,t=A,m=E;break t}else{if(P=E2(A|0,E|0,1,0)|0,E=f0,I=(t|0)!=48,(a|0)>=125){if(!I){g=w,A=P;break}e[x>>2]=e[x>>2]|1,g=w,A=P;break}g=r0+(a<<2)|0,l&&(m=t+-48+((e[g>>2]|0)*10|0)|0),e[g>>2]=m,l=l+1|0,m=(l|0)==9,g=w,A=P,y=1,l=m?0:l,a=(m&1)+a|0,h=I?P:h}while(0);if(t=e[U>>2]|0,t>>>0<(e[M>>2]|0)>>>0?(e[U>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,m=t+-48|0,P=(t|0)==46,P|m>>>0<10)w=g;else{m=_,w=161;break r}}y=(y|0)!=0,w=169}else A=0,E=0,y=l,m=h,l=0,a=0,h=0,w=161;while(0);do if((w|0)==161){if(x=(m|0)==0,s=x?A:s,g=x?E:g,y=(y|0)!=0,!((t|32|0)==101&y))if((t|0)>-1){t=A,m=E,w=169;break}else{t=A,m=E,w=171;break}if(m=_l(r,n)|0,t=f0,(m|0)==0&(t|0)==-2147483648){if(!n){n1(r,0),f=0;break}e[M>>2]|0?(e[U>>2]=(e[U>>2]|0)+-1,m=0,t=0):(m=0,t=0)}s=E2(m|0,t|0,s|0,g|0)|0,y=A,g=f0,m=E,w=173}while(0);(w|0)==169&&(e[M>>2]|0?(e[U>>2]=(e[U>>2]|0)+-1,y?(y=t,w=173):w=172):w=171),(w|0)==171&&(y?(y=t,w=173):w=172);do if((w|0)==172)w0=r2()|0,e[w0>>2]=22,n1(r,0),f=0;else if((w|0)==173){if(t=e[r0>>2]|0,!t){f=+(i0|0)*0;break}if(((m|0)<0|(m|0)==0&y>>>0<10)&((s|0)==(y|0)&(g|0)==(m|0))&&w0>>>0>30|(t>>>w0|0)==0){f=+(i0|0)*+(t>>>0);break}if(r=(J|0)/-2|0,U=((r|0)<0)<<31>>31,(g|0)>(U|0)|(g|0)==(U|0)&s>>>0>r>>>0){w0=r2()|0,e[w0>>2]=34,f=+(i0|0)*17976931348623157e292*17976931348623157e292;break}if(r=J+-106|0,U=((r|0)<0)<<31>>31,(g|0)<(U|0)|(g|0)==(U|0)&s>>>0>>0){w0=r2()|0,e[w0>>2]=34,f=+(i0|0)*22250738585072014e-324*22250738585072014e-324;break}if(l){if((l|0)<9){m=r0+(a<<2)|0,t=e[m>>2]|0;do t=t*10|0,l=l+1|0;while((l|0)!=9);e[m>>2]=t}a=a+1|0}if((h|0)<9&&(h|0)<=(s|0)&(s|0)<18){if((s|0)==9){f=+(i0|0)*+((e[r0>>2]|0)>>>0);break}if((s|0)<9){f=+(i0|0)*+((e[r0>>2]|0)>>>0)/+(e[37312+(8-s<<2)>>2]|0);break}if(r=w0+27+(K(s,-3)|0)|0,t=e[r0>>2]|0,(r|0)>30|(t>>>r|0)==0){f=+(i0|0)*+(t>>>0)*+(e[37312+(s+-10<<2)>>2]|0);break}}if(t=(s|0)%9|0,!t)l=0,t=0;else{if(y=(s|0)>-1?t:t+9|0,m=e[37312+(8-y<<2)>>2]|0,a){h=1e9/(m|0)|0,l=0,t=0,g=0;do M=r0+(g<<2)|0,U=e[M>>2]|0,r=((U>>>0)/(m>>>0)|0)+t|0,e[M>>2]=r,t=K((U>>>0)%(m>>>0)|0,h)|0,r=(g|0)==(l|0)&(r|0)==0,g=g+1|0,s=r?s+-9|0:s,l=r?g&127:l;while((g|0)!=(a|0));t&&(e[r0+(a<<2)>>2]=t,a=a+1|0)}else l=0,a=0;t=0,s=9-y+s|0}r:for(;;){E=(s|0)<18,P=(s|0)==18,I=r0+(l<<2)|0;do{if(!E){if(!P)break r;if((e[I>>2]|0)>>>0>=9007199){s=18;break r}}for(m=0,h=a+127|0;y=h&127,g=r0+(y<<2)|0,h=f2(e[g>>2]|0,0,29)|0,h=E2(h|0,f0|0,m|0,0)|0,m=f0,m>>>0>0|(m|0)==0&h>>>0>1e9?(r=Vr(h|0,m|0,1e9,0)|0,h=jn(h|0,m|0,1e9,0)|0,m=r):m=0,e[g>>2]=h,r=(y|0)==(l|0),a=(y|0)!=(a+127&127|0)|r||h|0?a:y,!r;)h=y+-1|0;t=t+-29|0}while(!(m|0));l=l+127&127,(l|0)==(a|0)&&(r=a+127&127,a=r0+((a+126&127)<<2)|0,e[a>>2]=e[a>>2]|e[r0+(r<<2)>>2],a=r),e[r0+(l<<2)>>2]=m,s=s+9|0}r:for(;;){for(A=a+1&127,I=r0+((a+127&127)<<2)|0;;){for(E=(s|0)==18,P=(s|0)>27?9:1,y=E^1;;){h=l&127,g=(h|0)==(a|0);do if(g)w=219;else{if(m=e[r0+(h<<2)>>2]|0,m>>>0<9007199){w=219;break}if(m>>>0>9007199)break;if(m=l+1&127,(m|0)==(a|0)){w=219;break}if(m=e[r0+(m<<2)>>2]|0,m>>>0<254740991){w=219;break}if(!(m>>>0>254740991|y)){s=h;break r}}while(0);if((w|0)==219&&(w=0,E)){w=220;break r}if(t=t+P|0,(l|0)==(a|0))l=a;else break}for(y=(1<>>P,h=l,m=0,g=l;U=r0+(g<<2)|0,r=e[U>>2]|0,l=(r>>>P)+m|0,e[U>>2]=l,m=K(r&y,E)|0,l=(g|0)==(h|0)&(l|0)==0,g=g+1&127,s=l?s+-9|0:s,l=l?g:h,(g|0)!=(a|0);)h=l;if(m){if((A|0)!=(l|0))break;e[I>>2]=e[I>>2]|1}}e[r0+(a<<2)>>2]=m,a=A}(w|0)==220&&(g?(e[r0+(A+-1<<2)>>2]=0,s=a,a=A):s=h),f=+((e[r0+(s<<2)>>2]|0)>>>0),s=l+1&127,(s|0)==(a|0)&&(a=l+2&127,e[r0+(a+-1<<2)>>2]=0),d=+(i0|0),o=d*(f*1e9+ +((e[r0+(s<<2)>>2]|0)>>>0)),E=t+53|0,g=E-J|0,y=(g|0)<(w0|0),s=y&1,h=y?(g|0)<0?0:g:w0,(h|0)<53?(le=+nl(+$r(1,105-h|0),o),c=+fl(o,+$r(1,53-h|0)),v=le,f=c,c=le+(o-c)):(v=0,f=0,c=o),m=l+2&127;do if((m|0)==(a|0))o=f;else{m=e[r0+(m<<2)>>2]|0;do if(m>>>0>=5e8){if(m>>>0>5e8){f=d*.75+f;break}if((l+3&127|0)==(a|0)){f=d*.5+f;break}else{f=d*.75+f;break}}else{if(!(m|0)&&(l+3&127|0)==(a|0))break;f=d*.25+f}while(0);if((53-h|0)<=1){o=f;break}if(+fl(f,1)!=0){o=f;break}o=f+1}while(0);f=c+o-v;do if((E&2147483647|0)>(-2-q|0)){if(+K0(+f)>=9007199254740992&&(s=y&(h|0)==(g|0)?0:s,t=t+1|0,f=f*.5),(t+50|0)<=(Q|0)&&!(o!=0&(s|0)!=0))break;w0=r2()|0,e[w0>>2]=34}while(0);f=+ol(f,t)}while(0);break e}default:{e[M>>2]|0&&(e[U>>2]=(e[U>>2]|0)+-1),w0=r2()|0,e[w0>>2]=22,n1(r,0),f=0;break e}}}}while(0);if((w|0)==23&&(s=(e[M>>2]|0)==0,s||(e[U>>2]=(e[U>>2]|0)+-1),(n|0)!=0&t>>>0>3))do s||(e[U>>2]=(e[U>>2]|0)+-1),t=t+-1|0;while(t>>>0>3);f=+(i0|0)*e0}while(0);return C=ve,+f}function rl(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0;e:do if(t>>>0>36)s=r2()|0,e[s>>2]=22,s=0,f=0;else{y=r+4|0,d=r+100|0;do o=e[y>>2]|0,o>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0;while(Bi(o)|0);i:do switch(o|0){case 43:case 45:if(l=((o|0)==45)<<31>>31,o=e[y>>2]|0,o>>>0<(e[d>>2]|0)>>>0){e[y>>2]=o+1,o=z[o>>0]|0,v=l;break i}else{o=ze(r)|0,v=l;break i}default:v=0}while(0);l=(t|0)==0;do if((t&-17|0)==0&(o|0)==48){if(o=e[y>>2]|0,o>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0,(o|32|0)!=120)if(l){t=8,h=46;break}else{h=32;break}if(t=e[y>>2]|0,t>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=t+1,o=z[t>>0]|0):o=ze(r)|0,(z[53879+(o+1)>>0]|0)>15){if(f=(e[d>>2]|0)==0,f||(e[y>>2]=(e[y>>2]|0)+-1),!n){n1(r,0),s=0,f=0;break e}if(f){s=0,f=0;break e}e[y>>2]=(e[y>>2]|0)+-1,s=0,f=0;break e}else t=16,h=46}else if(t=l?10:t,(z[53879+(o+1)>>0]|0)>>>0>>0)h=32;else{e[d>>2]|0&&(e[y>>2]=(e[y>>2]|0)+-1),n1(r,0),s=r2()|0,e[s>>2]=22,s=0,f=0;break e}while(0);if((h|0)==32)if((t|0)==10){if(t=o+-48|0,t>>>0<10){for(o=0;;)if(l=(o*10|0)+t|0,t=e[y>>2]|0,t>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=t+1,o=z[t>>0]|0):o=ze(r)|0,t=o+-48|0,t>>>0<10&l>>>0<429496729)o=l;else{t=l;break}l=0}else t=0,l=0;if(n=o+-48|0,n>>>0<10){for(;;){if(a=qi(t|0,l|0,10,0)|0,c=f0,m=((n|0)<0)<<31>>31,g=~m,c>>>0>g>>>0|(c|0)==(g|0)&a>>>0>~n>>>0){a=t;break}if(t=E2(a|0,c|0,n|0,m|0)|0,l=f0,o=e[y>>2]|0,o>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0,n=o+-48|0,!(n>>>0<10&(l>>>0<429496729|(l|0)==429496729&t>>>0<2576980378))){a=t;break}}n>>>0>9?(o=a,t=v):(t=10,h=72)}else o=t,t=v}else h=46;i:do if((h|0)==46){if(!(t+-1&t)){if(h=p[54136+((t*23|0)>>>5&7)>>0]|0,l=p[53879+(o+1)>>0]|0,n=l&255,n>>>0>>0){for(o=0;a=n|o<>2]|0,o>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0,l=p[53879+(o+1)>>0]|0,n=l&255,a>>>0<134217728&n>>>0>>0;)o=a;n=0}else n=0,a=0;if(c=K1(-1,-1,h|0)|0,m=f0,(l&255)>>>0>=t>>>0|(n>>>0>m>>>0|(n|0)==(m|0)&a>>>0>c>>>0)){l=n,h=72;break}else o=n;for(;;)if(a=f2(a|0,o|0,h|0)|0,n=f0,a=l&255|a,o=e[y>>2]|0,o>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0,l=p[53879+(o+1)>>0]|0,(l&255)>>>0>=t>>>0|(n>>>0>m>>>0|(n|0)==(m|0)&a>>>0>c>>>0)){l=n,h=72;break i}else o=n}if(l=p[53879+(o+1)>>0]|0,n=l&255,n>>>0>>0){for(o=0;a=n+(K(o,t)|0)|0,o=e[y>>2]|0,o>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0,l=p[53879+(o+1)>>0]|0,n=l&255,a>>>0<119304647&n>>>0>>0;)o=a;n=0}else a=0,n=0;if((l&255)>>>0>>0)for(h=Vr(-1,-1,t|0,0)|0,g=f0,m=n;;){if(m>>>0>g>>>0|(m|0)==(g|0)&a>>>0>h>>>0){l=m,h=72;break i}if(n=qi(a|0,m|0,t|0,0)|0,c=f0,l=l&255,c>>>0>4294967295|(c|0)==-1&n>>>0>~l>>>0){l=m,h=72;break i}if(a=E2(l|0,0,n|0,c|0)|0,n=f0,o=e[y>>2]|0,o>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0,l=p[53879+(o+1)>>0]|0,(l&255)>>>0>=t>>>0){l=n,h=72;break}else m=n}else l=n,h=72}while(0);if((h|0)==72)if((z[53879+(o+1)>>0]|0)>>>0>>0){do o=e[y>>2]|0,o>>>0<(e[d>>2]|0)>>>0?(e[y>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0;while((z[53879+(o+1)>>0]|0)>>>0>>0);l=r2()|0,e[l>>2]=34,l=s,o=f,t=(f&1|0)==0&!0?v:0}else o=a,t=v;if(e[d>>2]|0&&(e[y>>2]=(e[y>>2]|0)+-1),!(l>>>0>>0|(l|0)==(s|0)&o>>>0>>0)){if(!((f&1|0)!=0|!1|(t|0)!=0)){y=r2()|0,e[y>>2]=34,f=E2(f|0,s|0,-1,-1)|0,s=f0;break}if(l>>>0>s>>>0|(l|0)==(s|0)&o>>>0>f>>>0){y=r2()|0,e[y>>2]=34;break}}f=((t|0)<0)<<31>>31,f=J2(o^t|0,l^f|0,t|0,f|0)|0,s=f0}while(0);return f0=s,f|0}function n1(r,t){r=r|0,t=t|0;var n=0,f=0,s=0;e[r+104>>2]=t,n=e[r+4>>2]|0,f=e[r+8>>2]|0,s=f-n|0,e[r+108>>2]=s,(t|0)!=0&(s|0)>(t|0)?e[r+100>>2]=n+t:e[r+100>>2]=f}function ze(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0;return n=r+104|0,o=e[n>>2]|0,o|0&&(e[r+108>>2]|0)>=(o|0)?l=4:(t=bn(r)|0,(t|0)>=0?(s=e[n>>2]|0,n=r+8|0,s?(f=e[n>>2]|0,o=e[r+4>>2]|0,n=f,s=s-(e[r+108>>2]|0)+-1|0,(n-o|0)>(s|0)?e[r+100>>2]=o+s:l=9):(f=e[n>>2]|0,n=f,l=9),(l|0)==9&&(e[r+100>>2]=n),n=e[r+4>>2]|0,f&&(r=r+108|0,e[r>>2]=f+1-n+(e[r>>2]|0)),n=n+-1|0,(z[n>>0]|0|0)!=(t|0)&&(p[n>>0]=t)):l=4),(l|0)==4&&(e[r+100>>2]=0,t=-1),t|0}function Qi(r){r=r|0;var t=0;return r>>>0>4294963200&&(t=r2()|0,e[t>>2]=0-r,r=-1),r|0}function GA(r){return r=r|0,0}function n_(r,t,n,f){return r=r|0,t=t|0,n=n|0,f=f|0,f|0}function tl(r,t){return r=r|0,t=t|0,-1}function f_(r){r=r|0,ye(r)}function s_(r,t){return r=r|0,t=t|0,(r+-48|0)>>>0<10|0}function o_(r,t){return r=r|0,t=t|0,t_(r)|0}function l_(r,t,n){return r=r|0,t=t|0,n=n|0,p[t>>0]|0&&kl(t,58885)|0&&kl(t,54145)|0?n=0:n||(n=C9(1,4)|0),n|0}function s1(r){r=r|0;var t=0,n=0;return t=(_s()|0)+176|0,n=e[t>>2]|0,r&&(e[t>>2]=r),n|0}function u_(r,t){r=+r,t=+t;var n=0,f=0;return t0[v0>>3]=r,f=e[v0>>2]|0,n=e[v0+4>>2]|0,t0[v0>>3]=t,n=e[v0+4>>2]&-2147483648|n&2147483647,e[v0>>2]=f,e[v0+4>>2]=n,+ +t0[v0>>3]}function nl(r,t){return r=+r,t=+t,+ +u_(r,t)}function a_(r,t){r=+r,t=+t;var n=0,f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;t0[v0>>3]=r,n=e[v0>>2]|0,m=e[v0+4>>2]|0,t0[v0>>3]=t,h=e[v0>>2]|0,g=e[v0+4>>2]|0,f=K1(n|0,m|0,52)|0,f=f&2047,a=K1(h|0,g|0,52)|0,a=a&2047,v=m&-2147483648,l=f2(h|0,g|0,1)|0,c=f0;e:do if(!((l|0)==0&(c|0)==0)&&(o=g&2147483647,!(o>>>0>2146435072|(o|0)==2146435072&h>>>0>0|(f|0)==2047))){if(s=f2(n|0,m|0,1)|0,o=f0,!(o>>>0>c>>>0|(o|0)==(c|0)&s>>>0>l>>>0))return+((s|0)==(l|0)&(o|0)==(c|0)?r*0:r);if(f)s=m&1048575|1048576;else{if(f=f2(n|0,m|0,12)|0,s=f0,(s|0)>-1|(s|0)==-1&f>>>0>4294967295){o=f,f=0;do f=f+-1|0,o=f2(o|0,s|0,1)|0,s=f0;while((s|0)>-1|(s|0)==-1&o>>>0>4294967295)}else f=0;n=f2(n|0,m|0,1-f|0)|0,s=f0}if(a)m=g&1048575|1048576;else{if(o=f2(h|0,g|0,12)|0,l=f0,(l|0)>-1|(l|0)==-1&o>>>0>4294967295){a=0;do a=a+-1|0,o=f2(o|0,l|0,1)|0,l=f0;while((l|0)>-1|(l|0)==-1&o>>>0>4294967295)}else a=0;h=f2(h|0,g|0,1-a|0)|0,m=f0}c=J2(n|0,s|0,h|0,m|0)|0,l=f0,o=(l|0)>-1|(l|0)==-1&c>>>0>4294967295;i:do if((f|0)>(a|0)){for(;;){if(o){if((n|0)==(h|0)&(s|0)==(m|0))break;n=c,s=l}if(n=f2(n|0,s|0,1)|0,s=f0,f=f+-1|0,c=J2(n|0,s|0,h|0,m|0)|0,l=f0,o=(l|0)>-1|(l|0)==-1&c>>>0>4294967295,(f|0)<=(a|0))break i}t=r*0;break e}while(0);if(o)if((n|0)==(h|0)&(s|0)==(m|0)){t=r*0;break}else s=l,n=c;if(s>>>0<1048576|(s|0)==1048576&n>>>0<0)do n=f2(n|0,s|0,1)|0,s=f0,f=f+-1|0;while(s>>>0<1048576|(s|0)==1048576&n>>>0<0);(f|0)>0?(g=E2(n|0,s|0,0,-1048576)|0,n=f0,f=f2(f|0,0,52)|0,n=n|f0,f=g|f):(f=K1(n|0,s|0,1-f|0)|0,n=f0),e[v0>>2]=f,e[v0+4>>2]=n|v,t=+t0[v0>>3]}else d=3;while(0);return(d|0)==3&&(t=r*t,t=t/t),+t}function fl(r,t){return r=+r,t=+t,+ +a_(r,t)}function sl(r,t){r=+r,t=t|0;var n=0,f=0,s=0;switch(t0[v0>>3]=r,n=e[v0>>2]|0,f=e[v0+4>>2]|0,s=K1(n|0,f|0,52)|0,s=s&2047,s|0){case 0:{r!=0?(r=+sl(r*18446744073709552e3,t),n=(e[t>>2]|0)+-64|0):n=0,e[t>>2]=n;break}case 2047:break;default:e[t>>2]=s+-1022,e[v0>>2]=n,e[v0+4>>2]=f&-2146435073|1071644672,r=+t0[v0>>3]}return+r}function c_(r,t){return r=+r,t=t|0,+ +sl(r,t)}function $r(r,t){r=+r,t=t|0;var n=0;return(t|0)>1023?(r=r*898846567431158e293,n=t+-1023|0,(n|0)>1023&&(n=t+-2046|0,n=(n|0)>1023?1023:n,r=r*898846567431158e293)):(t|0)<-1022?(r=r*22250738585072014e-324,n=t+1022|0,(n|0)<-1022&&(n=t+2044|0,n=(n|0)<-1022?-1022:n,r=r*22250738585072014e-324)):n=t,n=f2(n+1023|0,0,52)|0,t=f0,e[v0>>2]=n,e[v0+4>>2]=t,+(r*+t0[v0>>3])}function ol(r,t){return r=+r,t=t|0,+ +$r(r,t)}function h_(r,t,n){return r=r|0,t=t|0,n=n|0,br(0,r,t,n|0?n:37344)|0}function br(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0;c=C,C=C+16|0,s=c,l=f|0?f:37348,f=e[l>>2]|0;e:do if(!t)f?a=15:f=0;else if(o=r|0?r:s,!n)f=-2;else{if(f)s=n,a=9;else{if(f=p[t>>0]|0,s=f&255,f<<24>>24>-1){e[o>>2]=s,f=f<<24>>24!=0&1;break}if(f=s+-194|0,f>>>0>50){a=15;break}f=e[37076+(f<<2)>>2]|0,s=n+-1|0,s&&(t=t+1|0,a=9)}i:do if((a|0)==9){if(r=p[t>>0]|0,m=(r&255)>>>3,(m+-16|m+(f>>26))>>>0>7){a=15;break e}for(;t=t+1|0,f=(r&255)+-128|f<<6,s=s+-1|0,!((f|0)>=0);){if(!s)break i;if(r=p[t>>0]|0,(r&-64)<<24>>24!=-128){a=15;break e}}e[l>>2]=0,e[o>>2]=f,f=n-s|0;break e}while(0);e[l>>2]=f,f=-2}while(0);return(a|0)==15&&(e[l>>2]=0,f=r2()|0,e[f>>2]=84,f=-1),C=c,f|0}function S_(r){return r=r|0,r?r=(e[r>>2]|0)==0:r=1,r&1|0}function m_(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0;v=C,C=C+1040|0,m=v+8|0,g=v,c=e[t>>2]|0,e[g>>2]=c,h=(r|0)!=0,f=h?f:256,r=h?r:m,o=c;e:do if((f|0)!=0&(c|0)!=0){for(a=f,c=o,f=0;;){if(o=n>>>2,l=o>>>0>=a>>>0,!(n>>>0>131|l)){o=c;break e}if(o=l?a:o,n=n-o|0,o=ll(r,g,o,s)|0,(o|0)==-1){f=n;break}if(d=(r|0)==(m|0),c=d?0:o,l=a-c|0,r=d?r:r+(o<<2)|0,f=o+f|0,o=e[g>>2]|0,(a|0)!=(c|0)&(o|0)!=0)a=l,c=o;else{a=l;break e}}n=f,a=0,o=e[g>>2]|0,f=-1}else a=f,f=0;while(0);e:do if(o|0&&(a|0)!=0&(n|0)!=0){for(l=o,o=r;r=br(o,l,n,s)|0,!((r+2|0)>>>0<3);)if(l=(e[g>>2]|0)+r|0,e[g>>2]=l,a=a+-1|0,f=f+1|0,(a|0)!=0&(n|0)!=(r|0))n=n-r|0,o=o+4|0;else break e;switch(r|0){case-1:{f=-1;break e}case 0:{e[g>>2]=0;break e}default:{e[s>>2]=0;break e}}}while(0);return h&&(e[t>>2]=e[g>>2]),C=v,f|0}function ll(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0;s=e[t>>2]|0,f|0&&(o=e[f>>2]|0,(o|0)!=0)?r?(e[f>>2]=0,c=r,f=n,a=o,m=37):(f=n,l=s,m=16):r?(o=r,f=n,m=6):(f=n,m=7);e:for(;;)if((m|0)==6){if(f)r=o;else{m=26;break}for(;;){o=p[s>>0]|0;do if(((o&255)+-1|0)>>>0<127&&f>>>0>4&(s&3|0)==0){for(l=s;;){if(s=e[l>>2]|0,(s+-16843009|s)&-2139062144){o=s,s=l,m=32;break}if(e[r>>2]=s&255,e[r+4>>2]=z[l+1>>0],e[r+8>>2]=z[l+2>>0],s=l+4|0,o=r+16|0,e[r+12>>2]=z[l+3>>0],f=f+-4|0,f>>>0>4)r=o,l=s;else{m=31;break}}if((m|0)==31){r=o,o=p[s>>0]|0;break}else if((m|0)==32){o=o&255;break}}while(0);if(o=o&255,(o+-1|0)>>>0>=127)break;if(s=s+1|0,e[r>>2]=o,f=f+-1|0,f)r=r+4|0;else{m=26;break e}}if(o=o+-194|0,o>>>0>50){m=48;break}c=r,a=e[37076+(o<<2)>>2]|0,s=s+1|0,m=37;continue}else if((m|0)==7){if(o=p[s>>0]|0,((o&255)+-1|0)>>>0<127&&!(s&3|0)){if(o=e[s>>2]|0,!((o+-16843009|o)&-2139062144))do s=s+4|0,f=f+-4|0,o=e[s>>2]|0;while(!((o+-16843009|o)&-2139062144|0));o=o&255}if(o=o&255,(o+-1|0)>>>0<127){f=f+-1|0,s=s+1|0,m=7;continue}if(o=o+-194|0,o>>>0>50){m=48;break}o=e[37076+(o<<2)>>2]|0,l=s+1|0,m=16;continue}else if((m|0)==16){if(m=(z[l>>0]|0)>>>3,(m+-16|m+(o>>26))>>>0>7){m=17;break}if(s=l+1|0,o&33554432){if((p[s>>0]&-64)<<24>>24!=-128){m=20;break}if(s=l+2|0,o&524288){if((p[s>>0]&-64)<<24>>24!=-128){m=23;break}s=l+3|0}}f=f+-1|0,m=7;continue}else if((m|0)==37){if(o=z[s>>0]|0,m=o>>>3,(m+-16|m+(a>>26))>>>0>7){m=38;break}if(l=s+1|0,r=o+-128|a<<6,(r|0)<0){if(o=z[l>>0]|0,(o&192|0)!=128){m=41;break}if(l=s+2|0,r=o+-128|r<<6,(r|0)<0){if(o=z[l>>0]|0,(o&192|0)!=128){m=44;break}r=o+-128|r<<6,s=s+3|0}else s=l}else s=l;e[c>>2]=r,o=c+4|0,f=f+-1|0,m=6;continue}return(m|0)==17||(m|0)==20||(m|0)==23?(s=l+-1|0,m=47):(m|0)==26?e[t>>2]=s:(m|0)==38?(r=c,o=a,s=s+-1|0,m=47):((m|0)==41||(m|0)==44)&&(f=c,n=s+-1|0,m=52),(m|0)==47&&(o?(f=r,n=s,m=52):m=48),(m|0)==48&&(p[s>>0]|0?(f=r,n=s,m=52):(r&&(e[r>>2]=0,e[t>>2]=0),n=n-f|0)),(m|0)==52&&(m=r2()|0,e[m>>2]=84,f&&(e[t>>2]=n),n=-1),n|0}function p_(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;l=C,C=C+16|0,f=l;e:do if(!t)f=0;else{do if(n){if(o=r|0?r:f,f=p[t>>0]|0,r=f&255,f<<24>>24>-1){e[o>>2]=r,f=f<<24>>24!=0&1;break e}if(f=r+-194|0,f>>>0<=50){if(r=t+1|0,s=e[37076+(f<<2)>>2]|0,n>>>0<4&&s&-2147483648>>>((n*6|0)+-6|0)|0)break;if(f=z[r>>0]|0,n=f>>>3,(n+-16|n+(s>>26))>>>0<=7){if(f=f+-128|s<<6,(f|0)>=0){e[o>>2]=f,f=2;break e}if(r=z[t+2>>0]|0,(r&192|0)==128){if(r=r+-128|f<<6,(r|0)>=0){e[o>>2]=r,f=3;break e}if(f=z[t+3>>0]|0,(f&192|0)==128){e[o>>2]=f+-128|r<<6,f=4;break e}}}}}while(0);f=r2()|0,e[f>>2]=84,f=-1}while(0);return C=l,f|0}function pi(r,t,n){r=r|0,t=t|0,n=n|0;do if(r){if(t>>>0<128){p[r>>0]=t,r=1;break}if(t>>>0<2048){p[r>>0]=t>>>6|192,p[r+1>>0]=t&63|128,r=2;break}if(t>>>0<55296|(t&-8192|0)==57344){p[r>>0]=t>>>12|224,p[r+1>>0]=t>>>6&63|128,p[r+2>>0]=t&63|128,r=3;break}if((t+-65536|0)>>>0<1048576){p[r>>0]=t>>>18|240,p[r+1>>0]=t>>>12&63|128,p[r+2>>0]=t>>>6&63|128,p[r+3>>0]=t&63|128,r=4;break}else{r=r2()|0,e[r>>2]=84,r=-1;break}}else r=1;while(0);return r|0}function g_(r,t,n,f,s){r=r|0,t=t|0,n=n|0,f=f|0,s=s|0;var o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0;h=C,C=C+272|0,a=h+8|0,m=h,l=e[t>>2]|0,e[m>>2]=l,c=(r|0)!=0,s=c?f:256,f=c?r:a,r=l;e:do if((s|0)!=0&(l|0)!=0){for(l=s,o=r,s=0;;){if(r=n>>>0>=l>>>0,!(r|n>>>0>32)){r=o;break e}if(r=r?l:n,n=n-r|0,r=v_(f,m,r,0)|0,(r|0)==-1){s=n;break}if(v=(f|0)==(a|0),g=v?0:r,o=l-g|0,f=v?f:f+r|0,s=r+s|0,r=e[m>>2]|0,(l|0)!=(g|0)&(r|0)!=0)l=o,o=r;else{l=o;break e}}n=s,l=0,r=e[m>>2]|0,s=-1}else l=s,s=0;while(0);e:do if(r|0&&(l|0)!=0&(n|0)!=0){for(o=r,r=f;f=pi(r,e[o>>2]|0,0)|0,!((f+1|0)>>>0<2);)if(o=(e[m>>2]|0)+4|0,e[m>>2]=o,n=n+-1|0,s=s+1|0,(l|0)!=(f|0)&(n|0)!=0)l=l-f|0,r=r+f|0;else break e;f?s=-1:e[m>>2]=0}while(0);return c&&(e[t>>2]=e[m>>2]),C=h,s|0}function v_(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0;a=C,C=C+16|0,l=a;e:do if(r){i:do if(n>>>0>3){for(f=n,s=e[t>>2]|0;;){if(o=e[s>>2]|0,(o+-1|0)>>>0>126){if(!o)break;if(o=pi(r,o,0)|0,(o|0)==-1){n=-1;break e}r=r+o|0,f=f-o|0}else p[r>>0]=o,r=r+1|0,f=f+-1|0,s=e[t>>2]|0;if(s=s+4|0,e[t>>2]=s,f>>>0<=3)break i}p[r>>0]=0,e[t>>2]=0,n=n-f|0;break e}else f=n;while(0);if(f){for(s=e[t>>2]|0;;){if(o=e[s>>2]|0,(o+-1|0)>>>0>126){if(!o){s=19;break}if(o=pi(l,o,0)|0,(o|0)==-1){n=-1;break e}if(f>>>0>>0){s=22;break}pi(r,e[s>>2]|0,0)|0,r=r+o|0,f=f-o|0}else p[r>>0]=o,r=r+1|0,f=f+-1|0,s=e[t>>2]|0;if(s=s+4|0,e[t>>2]=s,!f)break e}if((s|0)==19){p[r>>0]=0,e[t>>2]=0,n=n-f|0;break}else if((s|0)==22){n=n-f|0;break}}}else if(r=e[t>>2]|0,f=e[r>>2]|0,!f)n=0;else{n=0;do{if(f>>>0>127){if(f=pi(l,f,0)|0,(f|0)==-1){n=-1;break e}}else f=1;n=f+n|0,r=r+4|0,f=e[r>>2]|0}while(f|0)}while(0);return C=a,n|0}function ul(r,t){return r=r|0,t=t|0,r?r=pi(r,t,0)|0:r=0,r|0}function ei(r){return r=r|0,0}function P1(r){r=r|0}function al(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c,l=t&255,p[a>>0]=l,f=r+16|0,s=e[f>>2]|0,s?o=4:Sl(r)|0?n=-1:(s=e[f>>2]|0,o=4);do if((o|0)==4){if(f=r+20|0,o=e[f>>2]|0,o>>>0>>0&&(n=t&255,(n|0)!=(p[r+75>>0]|0))){e[f>>2]=o+1,p[o>>0]=l;break}(ge[e[r+36>>2]&63](r,a,1)|0)==1?n=z[a>>0]|0:n=-1}while(0);return C=c,n|0}function d_(r){r=r|0;var t=0,n=0;return t=C,C=C+16|0,n=t,e[n>>2]=e[r+60>>2],r=Qi(s6(6,n|0)|0)|0,C=t,r|0}function k_(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0;return m=C,C=C+48|0,o=m+16|0,s=m,f=m+32|0,e[f>>2]=t,l=f+4|0,c=r+48|0,h=e[c>>2]|0,e[l>>2]=n-((h|0)!=0&1),a=r+44|0,e[f+8>>2]=e[a>>2],e[f+12>>2]=h,e[9258]|0?(As(185,r|0),e[s>>2]=e[r+60>>2],e[s+4>>2]=f,e[s+8>>2]=2,f=Qi(ys(145,s|0)|0)|0,ws(0)):(e[o>>2]=e[r+60>>2],e[o+4>>2]=f,e[o+8>>2]=2,f=Qi(ys(145,o|0)|0)|0),(f|0)>=1?(l=e[l>>2]|0,f>>>0>l>>>0&&(o=e[a>>2]|0,s=r+4|0,e[s>>2]=o,e[r+8>>2]=o+(f-l),e[c>>2]|0&&(e[s>>2]=o+1,p[t+(n+-1)>>0]=p[o>>0]|0),f=n)):(e[r>>2]=e[r>>2]|f&48^16,e[r+8>>2]=0,e[r+4>>2]=0),C=m,f|0}function __(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0;return s=C,C=C+32|0,o=s,f=s+20|0,e[o>>2]=e[r+60>>2],e[o+4>>2]=0,e[o+8>>2]=t,e[o+12>>2]=f,e[o+16>>2]=n,(Qi(u6(140,o|0)|0)|0)<0?(e[f>>2]=-1,r=-1):r=e[f>>2]|0,C=s,r|0}function cl(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0;for(y=C,C=C+48|0,g=y+16|0,h=y,f=y+32|0,v=r+28|0,s=e[v>>2]|0,e[f>>2]=s,d=r+20|0,s=(e[d>>2]|0)-s|0,e[f+4>>2]=s,e[f+8>>2]=t,e[f+12>>2]=n,c=r+60|0,m=r+44|0,t=2,s=s+n|0;;){if(e[9258]|0?(As(186,r|0),e[h>>2]=e[c>>2],e[h+4>>2]=f,e[h+8>>2]=t,l=Qi(Is(146,h|0)|0)|0,ws(0)):(e[g>>2]=e[c>>2],e[g+4>>2]=f,e[g+8>>2]=t,l=Qi(Is(146,g|0)|0)|0),(s|0)==(l|0)){s=6;break}if((l|0)<0){s=8;break}s=s-l|0,o=e[f+4>>2]|0,l>>>0<=o>>>0?(t|0)==2?(e[v>>2]=(e[v>>2]|0)+l,a=o,t=2):a=o:(a=e[m>>2]|0,e[v>>2]=a,e[d>>2]=a,a=e[f+12>>2]|0,l=l-o|0,f=f+8|0,t=t+-1|0),e[f>>2]=(e[f>>2]|0)+l,e[f+4>>2]=a-l}return(s|0)==6?(g=e[m>>2]|0,e[r+16>>2]=g+(e[r+48>>2]|0),r=g,e[v>>2]=r,e[d>>2]=r):(s|0)==8&&(e[r+16>>2]=0,e[v>>2]=0,e[d>>2]=0,e[r>>2]=e[r>>2]|32,(t|0)==2?n=0:n=n-(e[f+4>>2]|0)|0),C=y,n|0}function T_(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;return s=C,C=C+80|0,f=s,e[r+36>>2]=8,!(e[r>>2]&64|0)&&(e[f>>2]=e[r+60>>2],e[f+4>>2]=21505,e[f+8>>2]=s+12,(r6(54,f|0)|0)!=0)&&(p[r+75>>0]=-1),f=cl(r,t,n)|0,C=s,f|0}function w_(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;return f=r+84|0,o=e[f>>2]|0,l=n+256|0,s=dl(o,0,l)|0,s=s|0?s-o|0:l,n=s>>>0>>0?s:n,qe(t|0,o|0,n|0)|0,e[r+4>>2]=o+n,t=o+s|0,e[r+8>>2]=t,e[f>>2]=t,n|0}function hl(r){r=r|0;var t=0,n=0;return t=r+74|0,n=p[t>>0]|0,p[t>>0]=n+255|n,t=r+20|0,n=r+44|0,(e[t>>2]|0)>>>0>(e[n>>2]|0)>>>0&&ge[e[r+36>>2]&63](r,0,0)|0,e[r+16>>2]=0,e[r+28>>2]=0,e[t>>2]=0,t=e[r>>2]|0,t&20?(t&4&&(e[r>>2]=t|32),t=-1):(t=e[n>>2]|0,e[r+8>>2]=t,e[r+4>>2]=t,t=0),t|0}function Sl(r){r=r|0;var t=0,n=0;return t=r+74|0,n=p[t>>0]|0,p[t>>0]=n+255|n,t=e[r>>2]|0,t&8?(e[r>>2]=t|32,t=-1):(e[r+8>>2]=0,e[r+4>>2]=0,t=e[r+44>>2]|0,e[r+28>>2]=t,e[r+20>>2]=t,e[r+16>>2]=t+(e[r+48>>2]|0),t=0),t|0}function bn(r){r=r|0;var t=0,n=0;return n=C,C=C+16|0,t=n,!(e[r+8>>2]|0)&&hl(r)|0?t=-1:(ge[e[r+32>>2]&63](r,t,1)|0)==1?t=z[t>>0]|0:t=-1,C=n,t|0}function ef(r){r=r|0;var t=0,n=0;do if(r){if((e[r+76>>2]|0)<=-1){t=nf(r)|0;break}n=(ei(r)|0)==0,t=nf(r)|0,n||P1(r)}else{if(e[9323]|0?t=ef(e[9323]|0)|0:t=0,Zu(37060),r=e[9264]|0,r)do(e[r+76>>2]|0)>-1?n=ei(r)|0:n=0,(e[r+20>>2]|0)>>>0>(e[r+28>>2]|0)>>>0&&(t=nf(r)|0|t),n&&P1(r),r=e[r+56>>2]|0;while(r|0);t6(37060)}while(0);return t|0}function C_(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0;(e[t+76>>2]|0)>=0&&ei(t)|0?((p[t+75>>0]|0)!=(r|0)&&(f=t+20|0,s=e[f>>2]|0,s>>>0<(e[t+16>>2]|0)>>>0)?(e[f>>2]=s+1,p[s>>0]=r,n=r&255):n=al(t,r)|0,P1(t)):l=3;do if((l|0)==3){if((p[t+75>>0]|0)!=(r|0)&&(o=t+20|0,n=e[o>>2]|0,n>>>0<(e[t+16>>2]|0)>>>0)){e[o>>2]=n+1,p[n>>0]=r,n=r&255;break}n=al(t,r)|0}while(0);return n|0}function P2(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;f=n+16|0,s=e[f>>2]|0,s?o=4:Sl(n)|0?f=0:(s=e[f>>2]|0,o=4);e:do if((o|0)==4){if(l=n+20|0,o=e[l>>2]|0,(s-o|0)>>>0>>0){f=ge[e[n+36>>2]&63](n,r,t)|0;break}i:do if((p[n+75>>0]|0)>-1){for(f=t;;){if(!f){s=o,f=0;break i}if(s=f+-1|0,(p[r+s>>0]|0)==10)break;f=s}if((ge[e[n+36>>2]&63](n,r,f)|0)>>>0>>0)break e;t=t-f|0,r=r+f|0,s=e[l>>2]|0}else s=o,f=0;while(0);qe(s|0,r|0,t|0)|0,e[l>>2]=(e[l>>2]|0)+t,f=f+t|0}while(0);return f|0}function L1(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;return s=K(n,t)|0,(e[f+76>>2]|0)>-1?(o=(ei(f)|0)==0,r=P2(r,s,f)|0,o||P1(f)):r=P2(r,s,f)|0,(r|0)!=(s|0)&&(n=(r>>>0)/(t>>>0)|0),n|0}function et(r){r=r|0;var t=0,n=0,f=0;(e[r+76>>2]|0)>=0&&ei(r)|0?(t=r+4|0,n=e[t>>2]|0,n>>>0<(e[r+8>>2]|0)>>>0?(e[t>>2]=n+1,t=z[n>>0]|0):t=bn(r)|0):f=3;do if((f|0)==3)if(t=r+4|0,n=e[t>>2]|0,n>>>0<(e[r+8>>2]|0)>>>0){e[t>>2]=n+1,t=z[n>>0]|0;break}else{t=bn(r)|0;break}while(0);return t|0}function ml(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0;return s=C,C=C+16|0,o=s,e[o>>2]=f,f=rt(r,t,n,o)|0,C=s,f|0}function pl(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;return f=C,C=C+16|0,s=f,e[s>>2]=n,n=vl(r,t,s)|0,C=f,n|0}function it(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0;do if((r|0)!=-1){if((e[t+76>>2]|0)>-1?s=ei(t)|0:s=0,!(e[t+8>>2]|0)&&hl(t)|0||(o=6),(o|0)==6&&(n=t+4|0,f=e[n>>2]|0,f>>>0>((e[t+44>>2]|0)+-8|0)>>>0)){if(o=f+-1|0,e[n>>2]=o,p[o>>0]=r,e[t>>2]=e[t>>2]&-17,!s)break;P1(t);break}s&&P1(t),r=-1}else r=-1;while(0);return r|0}function A_(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0;a=C,C=C+16|0,f=a,s=S2(240)|0;do if(s){if(e[f>>2]=e[n>>2],f=rt(s,240,t,f)|0,f>>>0<240){t=Fi(s,f+1|0)|0,e[r>>2]=t|0?t:s;break}ye(s),(f|0)>=0&&(l=f+1|0,o=S2(l)|0,e[r>>2]=o,(o|0)!=0)?f=rt(o,l,t,n)|0:f=-1}else f=-1;while(0);return C=a,f|0}function gl(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0;E=C,C=C+224|0,g=E+80|0,y=E+96|0,d=E,v=E+136|0,f=y,s=f+40|0;do e[f>>2]=0,f=f+4|0;while((f|0)<(s|0));return e[g>>2]=e[n>>2],(xn(0,t,g,d,y)|0)<0?n=-1:((e[r+76>>2]|0)>-1?m=ei(r)|0:m=0,n=e[r>>2]|0,h=n&32,(p[r+74>>0]|0)<1&&(e[r>>2]=n&-33),n=r+48|0,e[n>>2]|0?f=xn(r,t,g,d,y)|0:(s=r+44|0,o=e[s>>2]|0,e[s>>2]=v,l=r+28|0,e[l>>2]=v,a=r+20|0,e[a>>2]=v,e[n>>2]=80,c=r+16|0,e[c>>2]=v+80,f=xn(r,t,g,d,y)|0,o&&(ge[e[r+36>>2]&63](r,0,0)|0,f=e[a>>2]|0?f:-1,e[s>>2]=o,e[n>>2]=0,e[c>>2]=0,e[l>>2]=0,e[a>>2]=0)),n=e[r>>2]|0,e[r>>2]=n|h,m&&P1(r),n=n&32|0?-1:f),C=E,n|0}function D_(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0,a=0,c=0,m=0,h=0,g=0,v=0,d=0,y=0,E=0,P=0,I=0,A=0,_=0,w=0,x=0,M=0,U=0,q=0,Q=0,r0=0,i0=0,J=0,w0=0,ve=0,le=0,Re=0,De=0,oe=0;De=C,C=C+304|0,Q=De+16|0,i0=De+8|0,r0=De+33|0,J=De,I=De+32|0,(e[r+76>>2]|0)>-1?Re=ei(r)|0:Re=0,f=p[t>>0]|0;e:do if(f<<24>>24){w0=r+4|0,ve=r+100|0,q=r+108|0,A=r+8|0,_=r0+10|0,w=r0+33|0,x=i0+4|0,M=r0+46|0,U=r0+94|0,o=f,f=0,l=t,g=0,s=0,t=0;i:for(;;){r:do if(Bi(o&255)|0){for(;o=l+1|0,Bi(z[o>>0]|0)|0;)l=o;n1(r,0);do o=e[w0>>2]|0,o>>>0<(e[ve>>2]|0)>>>0?(e[w0>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0;while(Bi(o)|0);o=e[w0>>2]|0,e[ve>>2]|0&&(o=o+-1|0,e[w0>>2]=o),a=(e[q>>2]|0)+g+o-(e[A>>2]|0)|0}else{o=(p[l>>0]|0)==37;t:do if(o){m=l+1|0,a=p[m>>0]|0;n:do switch(a<<24>>24){case 37:break t;case 42:{P=0,a=l+2|0;break}default:{if(a=(a&255)+-48|0,a>>>0<10&&(p[l+2>>0]|0)==36){for(e[Q>>2]=e[n>>2];P=(e[Q>>2]|0)+(4-1)&~(4-1),o=e[P>>2]|0,e[Q>>2]=P+4,a>>>0>1;)a=a+-1|0;P=o,a=l+3|0;break n}a=(e[n>>2]|0)+(4-1)&~(4-1),P=e[a>>2]|0,e[n>>2]=a+4,a=m}}while(0);if(o=p[a>>0]|0,l=o&255,(l+-48|0)>>>0<10)for(o=0;m=(o*10|0)+-48+l|0,a=a+1|0,o=p[a>>0]|0,l=o&255,!((l+-48|0)>>>0>=10);)o=m;else m=0;switch(o<<24>>24==109?(a=a+1|0,h=p[a>>0]|0,o=(P|0)!=0&1,s=0,t=0):(h=o,o=0),l=a+1|0,h&255|0){case 104:{E=(p[l>>0]|0)==104,l=E?a+2|0:l,a=E?-2:-1;break}case 108:{E=(p[l>>0]|0)==108,l=E?a+2|0:l,a=E?3:1;break}case 106:{a=3;break}case 116:case 122:{a=1;break}case 76:{a=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:{l=a,a=0;break}default:{le=152;break i}}switch(h=z[l>>0]|0,v=(h&47|0)==3,h=v?h|32:h,v=v?1:a,h|0){case 99:{E=g,y=(m|0)<1?1:m;break}case 91:{E=g,y=m;break}case 110:{if(!P){a=g;break r}switch(v|0){case-2:{p[P>>0]=g,a=g;break r}case-1:{F[P>>1]=g,a=g;break r}case 0:{e[P>>2]=g,a=g;break r}case 1:{e[P>>2]=g,a=g;break r}case 3:{a=P,e[a>>2]=g,e[a+4>>2]=((g|0)<0)<<31>>31,a=g;break r}default:{a=g;break r}}}default:{n1(r,0);do a=e[w0>>2]|0,a>>>0<(e[ve>>2]|0)>>>0?(e[w0>>2]=a+1,a=z[a>>0]|0):a=ze(r)|0;while(Bi(a)|0);a=e[w0>>2]|0,e[ve>>2]|0&&(a=a+-1|0,e[w0>>2]=a),E=(e[q>>2]|0)+g+a-(e[A>>2]|0)|0,y=m}}if(n1(r,y),a=e[w0>>2]|0,m=e[ve>>2]|0,a>>>0>>0)e[w0>>2]=a+1;else{if((ze(r)|0)<0){le=152;break i}m=e[ve>>2]|0}m&&(e[w0>>2]=(e[w0>>2]|0)+-1);n:do switch(h|0){case 91:case 99:case 115:{d=(h|0)==99;f:do if((h&239|0)==99)we(r0|0,-1,257)|0,p[r0>>0]=0,(h|0)==115&&(p[w>>0]=0,p[_>>0]=0,p[_+1>>0]=0,p[_+2>>0]=0,p[_+3>>0]=0,p[_+4>>0]=0);else{switch(oe=l+1|0,g=(p[oe>>0]|0)==94,a=g&1,h=g?oe:l,l=g?l+2|0:oe,we(r0|0,g&1|0,257)|0,p[r0>>0]=0,p[l>>0]|0){case 45:{g=(a^1)&255,p[M>>0]=g,l=h+2|0;break}case 93:{g=(a^1)&255,p[U>>0]=g,l=h+2|0;break}default:g=(a^1)&255}for(;;){a=p[l>>0]|0;s:do switch(a<<24>>24){case 0:{le=152;break i}case 93:break f;case 45:{switch(h=l+1|0,a=p[h>>0]|0,a<<24>>24){case 93:case 0:{a=45;break s}default:}if(l=p[l+-1>>0]|0,(l&255)<(a&255)){l=l&255;do l=l+1|0,p[r0+l>>0]=g,a=p[h>>0]|0;while((l|0)<(a&255|0));l=h}else l=h;break}default:}while(0);p[r0+((a&255)+1)>>0]=g,l=l+1|0}}while(0);h=d?y+1|0:31,g=(v|0)==1,v=(o|0)!=0;f:do if(g){if(v){if(t=S2(h<<2)|0,!t){s=0,le=152;break i}}else t=P;e[i0>>2]=0,e[x>>2]=0,s=0;s:for(;;){m=(t|0)==0;do{o:for(;;){if(a=e[w0>>2]|0,a>>>0<(e[ve>>2]|0)>>>0?(e[w0>>2]=a+1,a=z[a>>0]|0):a=ze(r)|0,!(p[r0+(a+1)>>0]|0))break s;switch(p[I>>0]=a,br(J,I,1,i0)|0){case-1:{s=0,le=152;break i}case-2:break;default:break o}}m||(e[t+(s<<2)>>2]=e[J>>2],s=s+1|0)}while(!(v&(s|0)==(h|0)));if(s=h<<1|1,a=Fi(t,s<<2)|0,!a){s=0,le=152;break i}oe=h,h=s,t=a,s=oe}if(S_(i0)|0)m=s,s=0;else{s=0,le=152;break i}}else{if(v){if(s=S2(h)|0,s)a=0;else{s=0,t=0,le=152;break i}for(;;){do{if(t=e[w0>>2]|0,t>>>0<(e[ve>>2]|0)>>>0?(e[w0>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,!(p[r0+(t+1)>>0]|0)){m=a,t=0;break f}p[s+a>>0]=t,a=a+1|0}while((a|0)!=(h|0));if(t=h<<1|1,a=Fi(s,t)|0,a)oe=h,h=t,s=a,a=oe;else{t=0,le=152;break i}}}if(P)for(s=0;;){if(t=e[w0>>2]|0,t>>>0>>0?(e[w0>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,!(p[r0+(t+1)>>0]|0)){m=s,s=P,t=0;break f}p[P+s>>0]=t,m=e[ve>>2]|0,s=s+1|0}else for(s=m;;){if(t=e[w0>>2]|0,t>>>0>>0?(e[w0>>2]=t+1,t=z[t>>0]|0):t=ze(r)|0,!(p[r0+(t+1)>>0]|0)){m=0,s=0,t=0;break f}s=e[ve>>2]|0}}while(0);if(a=e[w0>>2]|0,e[ve>>2]|0&&(a=a+-1|0,e[w0>>2]=a),a=a-(e[A>>2]|0)+(e[q>>2]|0)|0,!a||!((a|0)==(y|0)|d^1))break i;do if(v)if(g){e[P>>2]=t;break}else{e[P>>2]=s;break}while(0);if(!d){if(t&&(e[t+(m<<2)>>2]=0),!s){s=0;break n}p[s+m>>0]=0}break}case 120:case 88:case 112:{a=16,le=134;break}case 111:{a=8,le=134;break}case 117:case 100:{a=10,le=134;break}case 105:{a=0,le=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{if(c=+il(r,v,0),(e[q>>2]|0)==((e[A>>2]|0)-(e[w0>>2]|0)|0))break i;if(P)switch(v|0){case 0:{z0[P>>2]=c;break n}case 1:{t0[P>>3]=c;break n}case 2:{t0[P>>3]=c;break n}default:break n}break}default:}while(0);n:do if((le|0)==134){if(le=0,a=rl(r,a,0,-1,-1)|0,(e[q>>2]|0)==((e[A>>2]|0)-(e[w0>>2]|0)|0))break i;if((P|0)!=0&(h|0)==112){e[P>>2]=a;break}if(P)switch(v|0){case-2:{p[P>>0]=a;break n}case-1:{F[P>>1]=a;break n}case 0:{e[P>>2]=a;break n}case 1:{e[P>>2]=a;break n}case 3:{oe=P,e[oe>>2]=a,e[oe+4>>2]=f0;break n}default:break n}}while(0);f=((P|0)!=0&1)+f|0,a=(e[q>>2]|0)+E+(e[w0>>2]|0)-(e[A>>2]|0)|0;break r}while(0);if(l=l+(o&1)|0,n1(r,0),o=e[w0>>2]|0,o>>>0<(e[ve>>2]|0)>>>0?(e[w0>>2]=o+1,o=z[o>>0]|0):o=ze(r)|0,(o|0)!=(z[l>>0]|0)){le=21;break i}a=g+1|0}while(0);if(l=l+1|0,o=p[l>>0]|0,o<<24>>24)g=a;else break e}if((le|0)==21){if(e[ve>>2]|0&&(e[w0>>2]=(e[w0>>2]|0)+-1),(f|0)!=0|(o|0)>-1)break;f=0,le=153}else(le|0)==152&&(f||(f=o,le=153));(le|0)==153&&(o=f,f=-1),o&&(ye(s),ye(t))}else f=0;while(0);return Re&&P1(r),C=De,f|0}function rt(r,t,n,f){r=r|0,t=t|0,n=n|0,f=f|0;var s=0,o=0,l=0,a=0,c=0,m=0,h=0;h=C,C=C+128|0,s=h+112|0,m=h,o=m,l=37352,a=o+112|0;do e[o>>2]=e[l>>2],o=o+4|0,l=l+4|0;while((o|0)<(a|0));return(t+-1|0)>>>0>2147483646?t?(t=r2()|0,e[t>>2]=75,t=-1):(t=1,c=4):(s=r,c=4),(c|0)==4&&(c=-2-s|0,c=t>>>0>c>>>0?c:t,e[m+48>>2]=c,r=m+20|0,e[r>>2]=s,e[m+44>>2]=s,t=s+c|0,s=m+16|0,e[s>>2]=t,e[m+28>>2]=t,t=gl(m,n,f)|0,c&&(n=e[r>>2]|0,p[n+(((n|0)==(e[s>>2]|0))<<31>>31)>>0]=0)),C=h,t|0}function vl(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;o=C,C=C+112|0,f=o,s=f,l=s+112|0;do e[s>>2]=0,s=s+4|0;while((s|0)<(l|0));return e[f+32>>2]=29,e[f+44>>2]=r,e[f+76>>2]=-1,e[f+84>>2]=r,l=D_(f,t,n)|0,C=o,l|0}function rf(r,t,n){return r=r|0,t=t|0,n=n|0,+ +T9(r,t,2)}function y_(r,t,n){return r=r|0,t=t|0,n=n|0,r=po(r,t,n,-1,-1)|0,r|0}function I_(r,t,n){return r=r|0,t=t|0,n=n|0,r=po(r,t,n,0,-2147483648)|0,r|0}function dl(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0,o=0,l=0;o=t&255,f=(n|0)!=0;e:do if(f&(r&3|0)!=0)for(s=t&255;;){if((p[r>>0]|0)==s<<24>>24){l=6;break e}if(r=r+1|0,n=n+-1|0,f=(n|0)!=0,!(f&(r&3|0)!=0)){l=5;break}}else l=5;while(0);(l|0)==5&&(f?l=6:n=0);e:do if((l|0)==6&&(s=t&255,(p[r>>0]|0)!=s<<24>>24)){f=K(o,16843009)|0;i:do if(n>>>0>3){for(;o=e[r>>2]^f,!((o&-2139062144^-2139062144)&o+-16843009);)if(r=r+4|0,n=n+-4|0,n>>>0<=3){l=11;break i}}else l=11;while(0);if((l|0)==11&&!n){n=0;break}for(;;){if((p[r>>0]|0)==s<<24>>24)break e;if(r=r+1|0,n=n+-1|0,!n){n=0;break}}}while(0);return(n|0?r:0)|0}function E_(r,t){r=r|0,t=t|0;var n=0,f=0;n=t;e:do if((n^r)&3)f=8;else{if(n&3)do{if(n=p[t>>0]|0,p[r>>0]=n,!(n<<24>>24))break e;t=t+1|0,r=r+1|0}while(t&3|0);if(n=e[t>>2]|0,!((n&-2139062144^-2139062144)&n+-16843009))for(f=r;t=t+4|0,r=f+4|0,e[f>>2]=n,n=e[t>>2]|0,!((n&-2139062144^-2139062144)&n+-16843009);)f=r;f=8}while(0);if((f|0)==8&&(f=p[t>>0]|0,p[r>>0]=f,f<<24>>24))do t=t+1|0,r=r+1|0,f=p[t>>0]|0,p[r>>0]=f;while(f<<24>>24);return r|0}function kl(r,t){r=r|0,t=t|0;var n=0,f=0;if(f=p[r>>0]|0,n=p[t>>0]|0,!(f<<24>>24)||f<<24>>24!=n<<24>>24)t=f;else{do r=r+1|0,t=t+1|0,f=p[r>>0]|0,n=p[t>>0]|0;while(!(!(f<<24>>24)||f<<24>>24!=n<<24>>24));t=f}return(t&255)-(n&255)|0}function tf(r,t){return r=r|0,t=t|0,E_(r,t)|0,r|0}function gi(r){r=r|0;var t=0,n=0,f=0;f=r;e:do if(!(f&3))n=4;else for(t=r,r=f;;){if(!(p[t>>0]|0))break e;if(t=t+1|0,r=t,!(r&3)){r=t,n=4;break}}while(0);if((n|0)==4){for(;t=e[r>>2]|0,!((t&-2139062144^-2139062144)&t+-16843009);)r=r+4|0;if((t&255)<<24>>24)do r=r+1|0;while(p[r>>0]|0)}return r-f|0}function P_(r,t,n){r=r|0,t=t|0,n=n|0;var f=0,s=0;if(!n)t=0;else{f=p[r>>0]|0;e:do if(!(f<<24>>24))f=0;else for(;;){if(n=n+-1|0,s=p[t>>0]|0,!(f<<24>>24==s<<24>>24&((n|0)!=0&s<<24>>24!=0)))break e;if(r=r+1|0,t=t+1|0,f=p[r>>0]|0,!(f<<24>>24)){f=0;break}}while(0);t=(f&255)-(z[t>>0]|0)|0}return t|0}function tt(r){r=r|0;var t=0;for(t=r;e[t>>2]|0;)t=t+4|0;return t-r>>2|0}function vi(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;if(n)for(f=r;n=n+-1|0,e[f>>2]=e[t>>2],n;)t=t+4|0,f=f+4|0;return r|0}function L_(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;if(f=(n|0)==0,r-t>>2>>>0>>0){if(!f)do n=n+-1|0,e[r+(n<<2)>>2]=e[t+(n<<2)>>2];while(n|0)}else if(!f)for(f=t,t=r;n=n+-1|0,e[t>>2]=e[f>>2],n;)f=f+4|0,t=t+4|0;return r|0}function R_(r,t,n){r=r|0,t=t|0,n=n|0;var f=0;if(n)for(f=r;n=n+-1|0,e[f>>2]=t,n;)f=f+4|0;return r|0}function _l(r,t){r=r|0,t=t|0;var n=0,f=0,s=0,o=0,l=0,a=0;switch(l=r+4|0,n=e[l>>2]|0,a=r+100|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=ze(r)|0,n|0){case 43:case 45:{f=(n|0)==45&1,n=e[l>>2]|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=ze(r)|0,(t|0)!=0&(n+-48|0)>>>0>9&&e[a>>2]|0&&(e[l>>2]=(e[l>>2]|0)+-1),o=f;break}default:o=0}if((n+-48|0)>>>0>9)e[a>>2]|0?(e[l>>2]=(e[l>>2]|0)+-1,f=-2147483648,n=0):(f=-2147483648,n=0);else{f=0;do f=n+-48+(f*10|0)|0,n=e[l>>2]|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=ze(r)|0;while((n+-48|0)>>>0<10&(f|0)<214748364);if(t=((f|0)<0)<<31>>31,(n+-48|0)>>>0<10){do t=qi(f|0,t|0,10,0)|0,f=f0,n=E2(n|0,((n|0)<0)<<31>>31|0,-48,-1)|0,f=E2(n|0,f0|0,t|0,f|0)|0,t=f0,n=e[l>>2]|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=ze(r)|0;while((n+-48|0)>>>0<10&((t|0)<21474836|(t|0)==21474836&f>>>0<2061584302));s=f}else s=f;if((n+-48|0)>>>0<10)do n=e[l>>2]|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=ze(r)|0;while((n+-48|0)>>>0<10);e[a>>2]|0&&(e[l>>2]=(e[l>>2]|0)+-1),r=(o|0)!=0,n=J2(0,0,s|0,t|0)|0,f=r?f0:t,n=r?n:s}return f0=f,n|0}function F_(r){r=r|0,e[r+68>>2]|0||P1(r)}function O_(r){r=r|0,e[r+68>>2]|0||P1(r)}function nf(r){r=r|0;var t=0,n=0,f=0,s=0,o=0,l=0;return t=r+20|0,o=r+28|0,(e[t>>2]|0)>>>0>(e[o>>2]|0)>>>0&&(ge[e[r+36>>2]&63](r,0,0)|0,(e[t>>2]|0)==0)?t=-1:(l=r+4|0,n=e[l>>2]|0,f=r+8|0,s=e[f>>2]|0,n>>>0>>0&&ge[e[r+40>>2]&63](r,n-s|0,1)|0,e[r+16>>2]=0,e[o>>2]=0,e[t>>2]=0,e[f>>2]=0,e[l>>2]=0,t=0),t|0}var x_=[J1,ih,nh,$h,iS,fS,oS,Qr,Gr,J1,J1,J1,J1,J1,J1,J1],nt=[or,Ud,ec,Va,Fa,Ta,ca,ia,G5,zk,Vk,Hk,or,or,or,or],M_=[Go,cS,vS,Go],W0=[Ce,xd,Md,Ka,Ja,Ba,Qa,Ea,Pa,va,da,oa,la,J5,$5,N5,U5,I5,E5,d5,k5,l5,u5,$3,b3,H3,V3,u3,a3,e3,i3,O6,x6,B8,V8,Q8,s7,Oo,o7,l7,g8,v8,ak,d8,u8,a8,W6,Z6,b6,e8,n8,f8,k8,_8,A8,D8,P8,L8,x8,M8,$8,b8,d3,k3,C3,A3,E3,P3,O3,x3,Z5,K5,um,Yd,ek,ik,ck,hk,Tk,wk,Wr,yk,Pk,Lk,Fk,Mk,Ok,xk,qk,Nk,sr,R9,N9,q0,G9,j9,Mn,lm,Im,Qm,bm,Po,e7,i7,t7,Ro,n7,f7,h7,xo,S7,m7,_7,T7,q2,w7,C7,A7,y7,QS,L7,R7,M7,q7,W7,Z7,op,lp,kp,_p,cc,hc,Fc,Oc,bc,eh,rh,th,sh,oh,vh,dh,Eh,Ph,Bh,Qh,Kh,Jh,tS,nS,uS,aS,pS,gS,TS,wS,yS,IS,So,xS,mo,i9,Uo,k9,qo,$p,No,bp,D7,BS,HS,a9,Fp,Qp,Wp,Zp,Sk,jo,E1,F6,Gn,r7,j8,z5,bk,F_,O_,y9,f_,bh,xr,GS,yv,Ov,xv,Mv,qv,Nv,Uv,V,b0,ye,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce,Ce],Ae=[Wn,Nd,ba,Ha,Ra,_a,aa,ea,Q5,P5,_5,a5,e5,z3,c3,r3,M6,Em,rk,tk,F9,q9,H9,X9,Gm,ah,ch,hh,Sh,ph,gh,Th,wh,Ch,Ah,yh,Ih,Fh,Oh,xh,Mh,Nh,Uh,Vh,zh,Yh,Xh,Wh,Zh,DS,LS,ng,sg,lg,fg,og,ug,D6,mk,nk,fk,Wo,ym,H6,z6,u7,Am,gm,X8,f3,U3,j3,t5,S5,C5,F5,V5,ta,Sa,Ca,xa,Ya,rc,Qd,$d,b1,b9,J9,Dm,p7,$9,mm,_m,km,Zg,Kg,Jg,$g,bg,ev,d9,iv,rv,tv,nv,fv,sv,ov,lv,uv,av,cv,hv,Sv,mv,pv,gv,vv,dv,kv,_v,Tv,wv,Cv,Av,Vv,Wn,Wn],lr=[v2,N7,U7,B7,Q7,G7,H7,V7,z7,Y7,X7,j7,K7,J7,$7,b7,ep,ip,rp,tp,np,fp,sp,hp,mp,Ap,sc,mc,pc,gc,vc,dc,Mc,qc,Nc,Uc,Bc,mS,_S,Li,Mi,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2,v2],V0=[Ie,Fm,Om,S8,qm,Xd,Ck,Ik,Rk,d_,O9,Xm,Wm,Zm,Ym,U9,B9,V9,Mm,W9,Z9,g7,Sc,ag,hg,mg,_g,wg,gg,dg,xc,cg,Sg,pg,Tg,Cg,vg,kg,lh,uh,mh,kh,_h,Dh,Lh,Rh,qh,Gh,Hh,jh,Ep,Pp,Rp,eg,rg,ig,tg,m9,p9,v9,qp,Np,Bp,zp,Yp,jp,Zd,k0,We,Je,Lo,Fo,Ad,Dd,yd,s1,tt,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie],q_=[Ho,eS,sS,Ho],ge=[c2,Pm,xm,Um,im,rm,Uk,w9,cl,__,k_,T_,Hm,jm,x9,Jm,z9,P7,x7,CS,ES,t9,f9,l9,VS,WS,KS,bS,V6,_9,Do,l_,Xg,Wg,pi,p_,h_,A_,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2],N_=[Vo,SS,kS,Vo],di=[$1,c8,jk,Xk,Yk,Vm,Lm,AS,PS,$1,$1,$1,$1,$1,$1,$1],U_=[Yr,cp,gp,Cp,lc,Yr,Yr,Yr],B_=[Xr,rS,lS,hS,dS,Xr,Xr,Xr],F2=[A2,qd,$a,Ga,La,ka,ua,b5,B5,R5,w5,h5,r5,X3,S3,n3,N6,m8,p8,Km,M9,Q9,$m,Nm,Y9,K9,Bm,r9,n9,s9,jS,ZS,JS,pk,E6,L6,a7,I2,c7,o_,s_,hm,vm,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2],ur=[I1,I7,F7,up,ap,Sp,dp,Tp,wp,fc,ac,u9,Ip,Lp,e9,S9,g9,Mp,Up,Vp,Xp,g_,m_,I1,I1,I1,I1,I1,I1,I1,I1,I1],Q_=[Id,Xv,Yv,zv],G_=[mi,y6,Zo,g2,qS,NS,US,e_,r_,i_,mi,mi,mi,mi,mi,mi],ff=[Ni,L5,T5,c5,i5,Y3,h3,t3,q6,o9,zS,YS,XS,$S,Wd,bd,Og,Vg,ll,n_,br,$v,Jv,Kv,Zv,Wv,jv,Ni,Ni,Ni,Ni,Ni],ft=[Ed,em,jd,v7,gk,G1,Pd,om,Ao,sk,nm,k7,zg,Yg,jg,Bn],Tl=[zo,Ld,Kk,Rd,Jk,Fd,Kr,zo],H1=[Ui,kc,Qc,Dp,yp,c9,h9,Op,xp,Gp,Hp,Ui,Ui,Ui,Ui,Ui],H_=[jr,pp,vp,oc,uc,jr,jr,jr],st=[B2,z8,Y8,G8,H8,h8,K6,J6,i8,r8,s8,o8,T8,w8,y8,I8,R8,F8,q8,N8,_3,T3,D3,y3,L3,R3,M3,q3,Bk,Qk,Gk,zm,Rm,E7,O7,k6,sm,U6,B6,Q6,G6,Y6,X6,j6,m3,p3,g3,v3,B2,B2,B2,B2,B2,B2,B2,B2,B2,B2,B2,B2,B2,B2,B2,B2];return{_jpegls_encode:dk,___cxa_can_catch:Wk,_free:ye,_jpegls_decode:vk,___cxa_is_pointer_type:Zk,_i64Add:E2,_memmove:Hr,_i64Subtract:J2,_memset:we,_malloc:S2,_memcpy:qe,_bitshift64Lshr:K1,_bitshift64Shl:f2,__GLOBAL__I_000101:I9,__GLOBAL__sub_I_jpegls_cpp:R6,__GLOBAL__sub_I_iostream_cpp:E9,runPostSets:bv,_emscripten_replace_memory:a6,stackAlloc:c6,stackSave:h6,stackRestore:S6,establishStackSpace:m6,setThrew:p6,setTempRet0:g6,getTempRet0:v6,dynCall_iiiiiiii:id,dynCall_viiiii:rd,dynCall_iiiiiid:td,dynCall_vi:nd,dynCall_vii:fd,dynCall_iiiiiii:sd,dynCall_ii:od,dynCall_iiiiiiiiiiii:ld,dynCall_iiii:ud,dynCall_viiiiiiiiiiiiiii:ad,dynCall_viiiiii:cd,dynCall_viiiiiii:hd,dynCall_viiiiiiiiii:Sd,dynCall_iii:md,dynCall_iiiiii:pd,dynCall_diii:gd,dynCall_i:vd,dynCall_iiiii:dd,dynCall_viii:kd,dynCall_v:_d,dynCall_iiiiiiiii:Td,dynCall_iiiiid:wd,dynCall_viiii:Cd}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_jpegls_encode=Module._jpegls_encode=asm._jpegls_encode,___cxa_can_catch=Module.___cxa_can_catch=asm.___cxa_can_catch,_free=Module._free=asm._free,_jpegls_decode=Module._jpegls_decode=asm._jpegls_decode,___cxa_is_pointer_type=Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type,_i64Add=Module._i64Add=asm._i64Add,_memmove=Module._memmove=asm._memmove,_i64Subtract=Module._i64Subtract=asm._i64Subtract,_memset=Module._memset=asm._memset,_malloc=Module._malloc=asm._malloc,_memcpy=Module._memcpy=asm._memcpy,_emscripten_replace_memory=Module._emscripten_replace_memory=asm._emscripten_replace_memory,runPostSets=Module.runPostSets=asm.runPostSets,__GLOBAL__sub_I_iostream_cpp=Module.__GLOBAL__sub_I_iostream_cpp=asm.__GLOBAL__sub_I_iostream_cpp,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,__GLOBAL__sub_I_jpegls_cpp=Module.__GLOBAL__sub_I_jpegls_cpp=asm.__GLOBAL__sub_I_jpegls_cpp,__GLOBAL__I_000101=Module.__GLOBAL__I_000101=asm.__GLOBAL__I_000101,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,dynCall_iiiiiiii=Module.dynCall_iiiiiiii=asm.dynCall_iiiiiiii,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_iiiiiid=Module.dynCall_iiiiiid=asm.dynCall_iiiiiid,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_iiiiiii=Module.dynCall_iiiiiii=asm.dynCall_iiiiiii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_iiiiiiiiiiii=Module.dynCall_iiiiiiiiiiii=asm.dynCall_iiiiiiiiiiii,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_viiiiiiiiiiiiiii=Module.dynCall_viiiiiiiiiiiiiii=asm.dynCall_viiiiiiiiiiiiiii,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_viiiiiii=Module.dynCall_viiiiiii=asm.dynCall_viiiiiii,dynCall_viiiiiiiiii=Module.dynCall_viiiiiiiiii=asm.dynCall_viiiiiiiiii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiii=Module.dynCall_iiiii=asm.dynCall_iiiii,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_iiiiiiiii=Module.dynCall_iiiiiiiii=asm.dynCall_iiiiiiiii,dynCall_iiiiid=Module.dynCall_iiiiid=asm.dynCall_iiiiid,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.establishStackSpace=asm.establishStackSpace,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0;function ExitStatus(S){this.name="ExitStatus",this.message="Program terminated with exit("+S+")",this.status=S}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function S(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=S)},Module.callMain=Module.callMain=function S(k){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called"),k=k||[],ensureInitRuntime();var T=k.length+1;function D(){for(var N=0;N<3;N++)L.push(0)}var L=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];D();for(var O=0;O0||(preRun(),runDependencies>0)||Module.calledRun)return;function k(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(S),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),k()},1)):k()}Module.run=Module.run=run;function exit(S,k){if(!(k&&Module.noExitRuntime))throw Module.noExitRuntime||(ABORT=!0,EXITSTATUS=S,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(S)),ENVIRONMENT_IS_NODE?(process.stdout.once("drain",function(){process.exit(S)}),console.log(" "),setTimeout(function(){process.exit(S)},500)):ENVIRONMENT_IS_SHELL&&typeof quit=="function"&&quit(S),new ExitStatus(S)}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(S){S!==void 0?(Module.print(S),Module.printErr(S),S=JSON.stringify(S)):S="",ABORT=!0,EXITSTATUS=1;var k=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,T="abort("+S+") at "+stackTrace()+k;throw abortDecorators&&abortDecorators.forEach(function(D){T=D(T,S)}),T}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),run(),Module},moduleType=typeof module;moduleType!=="undefined"&&module.exports&&(module.exports=CharLS)});var Lf=Le((CD,Nt)=>{"use strict";var Pf=Pf||(typeof require<"u"?Ef():null),hw=function(){var S;function k(){}k.prototype={decodeJPEGLS:function(O,G){return L(O,G)}};function T(O,G){var N=S._malloc(O.length);S.writeArrayToMemory(O,N);var X=S._malloc(4),Y=S._malloc(4),j=S._malloc(4),p=S._malloc(4),F=S._malloc(4),e=S._malloc(4),z=S._malloc(4),$=S._malloc(4),J0=S._malloc(4),z0=S.ccall("jpegls_decode","number",["number","number","number","number","number","number","number","number","number","number","number"],[N,O.length,X,Y,j,p,F,e,$,z,J0]),t0={result:z0,width:S.getValue(j,"i32"),height:S.getValue(p,"i32"),bitsPerSample:S.getValue(F,"i32"),stride:S.getValue(e,"i32"),components:S.getValue($,"i32"),allowedLossyError:S.getValue(z,"i32"),interleaveMode:S.getValue(J0,"i32"),pixelData:void 0},o0=S.getValue(X,"*");return t0.bitsPerSample<=8?(t0.pixelData=new Uint8Array(t0.width*t0.height*t0.components),t0.pixelData.set(new Uint8Array(S.HEAP8.buffer,o0,t0.pixelData.length))):G?(t0.pixelData=new Int16Array(t0.width*t0.height*t0.components),t0.pixelData.set(new Int16Array(S.HEAP16.buffer,o0,t0.pixelData.length))):(t0.pixelData=new Uint16Array(t0.width*t0.height*t0.components),t0.pixelData.set(new Uint16Array(S.HEAP16.buffer,o0,t0.pixelData.length))),S._free(N),S._free(o0),S._free(X),S._free(Y),S._free(j),S._free(p),S._free(F),S._free(e),S._free($),S._free(J0),t0}function D(){if(typeof Pf>"u")throw"No JPEG-LS decoder loaded";if(!S&&(S=Pf(),!S||!S._jpegls_decode))throw"JPEG-LS failed to initialize"}function L(O,G){D();var N=T(O,G);if(N.result!==0&&N.result!==6)throw"JPEG-LS decoder failed to decode frame (error code "+N.result+")";var X={};return X.columns=N.width,X.rows=N.height,X.pixelData=N.pixelData,X}return k}(),Sw=typeof Nt;Sw!=="undefined"&&Nt.exports&&(Nt.exports=hw)});var z1=Le(e1=>{"use strict";var mw=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function pw(S,k){return Object.prototype.hasOwnProperty.call(S,k)}e1.assign=function(S){for(var k=Array.prototype.slice.call(arguments,1);k.length;){var T=k.shift();if(T){if(typeof T!="object")throw new TypeError(T+"must be non-object");for(var D in T)pw(T,D)&&(S[D]=T[D])}}return S};e1.shrinkBuf=function(S,k){return S.length===k?S:S.subarray?S.subarray(0,k):(S.length=k,S)};var gw={arraySet:function(S,k,T,D,L){if(k.subarray&&S.subarray){S.set(k.subarray(T,T+D),L);return}for(var O=0;O{"use strict";var dw=z1(),kw=4,f4=0,s4=1,_w=2;function Xi(S){for(var k=S.length;--k>=0;)S[k]=0}var Tw=0,h4=1,ww=2,Cw=3,Aw=258,Nf=29,dr=256,mr=dr+1+Nf,Yi=30,Uf=19,S4=2*mr+1,_i=15,Rf=16,Dw=7,Bf=256,m4=16,p4=17,g4=18,Mf=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Ut=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],yw=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],v4=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Iw=512,Y1=new Array((mr+2)*2);Xi(Y1);var Sr=new Array(Yi*2);Xi(Sr);var pr=new Array(Iw);Xi(pr);var gr=new Array(Aw-Cw+1);Xi(gr);var Qf=new Array(Nf);Xi(Qf);var Bt=new Array(Yi);Xi(Bt);function Ff(S,k,T,D,L){this.static_tree=S,this.extra_bits=k,this.extra_base=T,this.elems=D,this.max_length=L,this.has_stree=S&&S.length}var d4,k4,_4;function Of(S,k){this.dyn_tree=S,this.max_code=0,this.stat_desc=k}function T4(S){return S<256?pr[S]:pr[256+(S>>>7)]}function vr(S,k){S.pending_buf[S.pending++]=k&255,S.pending_buf[S.pending++]=k>>>8&255}function f1(S,k,T){S.bi_valid>Rf-T?(S.bi_buf|=k<>Rf-S.bi_valid,S.bi_valid+=T-Rf):(S.bi_buf|=k<>>=1,T<<=1;while(--k>0);return T>>>1}function Ew(S){S.bi_valid===16?(vr(S,S.bi_buf),S.bi_buf=0,S.bi_valid=0):S.bi_valid>=8&&(S.pending_buf[S.pending++]=S.bi_buf&255,S.bi_buf>>=8,S.bi_valid-=8)}function Pw(S,k){var T=k.dyn_tree,D=k.max_code,L=k.stat_desc.static_tree,O=k.stat_desc.has_stree,G=k.stat_desc.extra_bits,N=k.stat_desc.extra_base,X=k.stat_desc.max_length,Y,j,p,F,e,z,$=0;for(F=0;F<=_i;F++)S.bl_count[F]=0;for(T[S.heap[S.heap_max]*2+1]=0,Y=S.heap_max+1;YX&&(F=X,$++),T[j*2+1]=F,!(j>D)&&(S.bl_count[F]++,e=0,j>=N&&(e=G[j-N]),z=T[j*2],S.opt_len+=z*(F+e),O&&(S.static_len+=z*(L[j*2+1]+e)));if($!==0){do{for(F=X-1;S.bl_count[F]===0;)F--;S.bl_count[F]--,S.bl_count[F+1]+=2,S.bl_count[X]--,$-=2}while($>0);for(F=X;F!==0;F--)for(j=S.bl_count[F];j!==0;)p=S.heap[--Y],!(p>D)&&(T[p*2+1]!==F&&(S.opt_len+=(F-T[p*2+1])*T[p*2],T[p*2+1]=F),j--)}}function C4(S,k,T){var D=new Array(_i+1),L=0,O,G;for(O=1;O<=_i;O++)D[O]=L=L+T[O-1]<<1;for(G=0;G<=k;G++){var N=S[G*2+1];N!==0&&(S[G*2]=w4(D[N]++,N))}}function Lw(){var S,k,T,D,L,O=new Array(_i+1);for(T=0,D=0;D>=7;D8?vr(S,S.bi_buf):S.bi_valid>0&&(S.pending_buf[S.pending++]=S.bi_buf),S.bi_buf=0,S.bi_valid=0}function Rw(S,k,T,D){D4(S),D&&(vr(S,T),vr(S,~T)),dw.arraySet(S.pending_buf,S.window,k,T,S.pending),S.pending+=T}function o4(S,k,T,D){var L=k*2,O=T*2;return S[L]>1;G>=1;G--)xf(S,T,G);Y=O;do G=S.heap[1],S.heap[1]=S.heap[S.heap_len--],xf(S,T,1),N=S.heap[1],S.heap[--S.heap_max]=G,S.heap[--S.heap_max]=N,T[Y*2]=T[G*2]+T[N*2],S.depth[Y]=(S.depth[G]>=S.depth[N]?S.depth[G]:S.depth[N])+1,T[G*2+1]=T[N*2+1]=Y,S.heap[1]=Y++,xf(S,T,1);while(S.heap_len>=2);S.heap[--S.heap_max]=S.heap[1],Pw(S,k),C4(T,X,S.bl_count)}function u4(S,k,T){var D,L=-1,O,G=k[0*2+1],N=0,X=7,Y=4;for(G===0&&(X=138,Y=3),k[(T+1)*2+1]=65535,D=0;D<=T;D++)O=G,G=k[(D+1)*2+1],!(++N=3&&S.bl_tree[v4[k]*2+1]===0;k--);return S.opt_len+=3*(k+1)+5+5+4,k}function Ow(S,k,T,D){var L;for(f1(S,k-257,5),f1(S,T-1,5),f1(S,D-4,4),L=0;L>>=1)if(k&1&&S.dyn_ltree[T*2]!==0)return f4;if(S.dyn_ltree[9*2]!==0||S.dyn_ltree[10*2]!==0||S.dyn_ltree[13*2]!==0)return s4;for(T=32;T0?(S.strm.data_type===_w&&(S.strm.data_type=xw(S)),qf(S,S.l_desc),qf(S,S.d_desc),G=Fw(S),L=S.opt_len+3+7>>>3,O=S.static_len+3+7>>>3,O<=L&&(L=O)):L=O=T+5,T+4<=L&&k!==-1?y4(S,k,T,D):S.strategy===kw||O===L?(f1(S,(h4<<1)+(D?1:0),3),l4(S,Y1,Sr)):(f1(S,(ww<<1)+(D?1:0),3),Ow(S,S.l_desc.max_code+1,S.d_desc.max_code+1,G+1),l4(S,S.dyn_ltree,S.dyn_dtree)),A4(S),D&&D4(S)}function Uw(S,k,T){return S.pending_buf[S.d_buf+S.last_lit*2]=k>>>8&255,S.pending_buf[S.d_buf+S.last_lit*2+1]=k&255,S.pending_buf[S.l_buf+S.last_lit]=T&255,S.last_lit++,k===0?S.dyn_ltree[T*2]++:(S.matches++,k--,S.dyn_ltree[(gr[T]+dr+1)*2]++,S.dyn_dtree[T4(k)*2]++),S.last_lit===S.lit_bufsize-1}ji._tr_init=Mw;ji._tr_stored_block=y4;ji._tr_flush_block=Nw;ji._tr_tally=Uw;ji._tr_align=qw});var Gf=Le((yD,E4)=>{"use strict";function Bw(S,k,T,D){for(var L=S&65535|0,O=S>>>16&65535|0,G=0;T!==0;){G=T>2e3?2e3:T,T-=G;do L=L+k[D++]|0,O=O+L|0;while(--G);L%=65521,O%=65521}return L|O<<16|0}E4.exports=Bw});var Hf=Le((ID,P4)=>{"use strict";function Qw(){for(var S,k=[],T=0;T<256;T++){S=T;for(var D=0;D<8;D++)S=S&1?3988292384^S>>>1:S>>>1;k[T]=S}return k}var Gw=Qw();function Hw(S,k,T,D){var L=Gw,O=D+T;S^=-1;for(var G=D;G>>8^L[(S^k[G])&255];return S^-1}P4.exports=Hw});var Qt=Le((ED,L4)=>{"use strict";L4.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var B4=Le(M1=>{"use strict";var i1=z1(),p1=I4(),x4=Gf(),fi=Hf(),Vw=Qt(),Ai=0,zw=1,Yw=3,ai=4,R4=5,x1=0,F4=1,g1=-2,Xw=-3,Vf=-5,jw=-1,Ww=1,Gt=2,Zw=3,Kw=4,Jw=0,$w=2,Yt=8,bw=9,eC=15,iC=8,rC=29,tC=256,Yf=tC+1+rC,nC=30,fC=19,sC=2*Yf+1,oC=15,$e=3,li=258,w1=li+$e+1,lC=32,Xt=42,Xf=69,Ht=73,Vt=91,zt=103,Ti=113,_r=666,O2=1,Tr=2,wi=3,Ki=4,uC=3;function ui(S,k){return S.msg=Vw[k],k}function O4(S){return(S<<1)-(S>4?9:0)}function oi(S){for(var k=S.length;--k>=0;)S[k]=0}function si(S){var k=S.state,T=k.pending;T>S.avail_out&&(T=S.avail_out),T!==0&&(i1.arraySet(S.output,k.pending_buf,k.pending_out,T,S.next_out),S.next_out+=T,k.pending_out+=T,S.total_out+=T,S.avail_out-=T,k.pending-=T,k.pending===0&&(k.pending_out=0))}function H2(S,k){p1._tr_flush_block(S,S.block_start>=0?S.block_start:-1,S.strstart-S.block_start,k),S.block_start=S.strstart,si(S.strm)}function n2(S,k){S.pending_buf[S.pending++]=k}function kr(S,k){S.pending_buf[S.pending++]=k>>>8&255,S.pending_buf[S.pending++]=k&255}function aC(S,k,T,D){var L=S.avail_in;return L>D&&(L=D),L===0?0:(S.avail_in-=L,i1.arraySet(k,S.input,S.next_in,L,T),S.state.wrap===1?S.adler=x4(S.adler,k,L,T):S.state.wrap===2&&(S.adler=fi(S.adler,k,L,T)),S.next_in+=L,S.total_in+=L,L)}function M4(S,k){var T=S.max_chain_length,D=S.strstart,L,O,G=S.prev_length,N=S.nice_match,X=S.strstart>S.w_size-w1?S.strstart-(S.w_size-w1):0,Y=S.window,j=S.w_mask,p=S.prev,F=S.strstart+li,e=Y[D+G-1],z=Y[D+G];S.prev_length>=S.good_match&&(T>>=2),N>S.lookahead&&(N=S.lookahead);do if(L=k,!(Y[L+G]!==z||Y[L+G-1]!==e||Y[L]!==Y[D]||Y[++L]!==Y[D+1])){D+=2,L++;do;while(Y[++D]===Y[++L]&&Y[++D]===Y[++L]&&Y[++D]===Y[++L]&&Y[++D]===Y[++L]&&Y[++D]===Y[++L]&&Y[++D]===Y[++L]&&Y[++D]===Y[++L]&&Y[++D]===Y[++L]&&DG){if(S.match_start=k,G=O,O>=N)break;e=Y[D+G-1],z=Y[D+G]}}while((k=p[k&j])>X&&--T!==0);return G<=S.lookahead?G:S.lookahead}function Ci(S){var k=S.w_size,T,D,L,O,G;do{if(O=S.window_size-S.lookahead-S.strstart,S.strstart>=k+(k-w1)){i1.arraySet(S.window,S.window,k,k,0),S.match_start-=k,S.strstart-=k,S.block_start-=k,D=S.hash_size,T=D;do L=S.head[--T],S.head[T]=L>=k?L-k:0;while(--D);D=k,T=D;do L=S.prev[--T],S.prev[T]=L>=k?L-k:0;while(--D);O+=k}if(S.strm.avail_in===0)break;if(D=aC(S.strm,S.window,S.strstart+S.lookahead,O),S.lookahead+=D,S.lookahead+S.insert>=$e)for(G=S.strstart-S.insert,S.ins_h=S.window[G],S.ins_h=(S.ins_h<S.pending_buf_size-5&&(T=S.pending_buf_size-5);;){if(S.lookahead<=1){if(Ci(S),S.lookahead===0&&k===Ai)return O2;if(S.lookahead===0)break}S.strstart+=S.lookahead,S.lookahead=0;var D=S.block_start+T;if((S.strstart===0||S.strstart>=D)&&(S.lookahead=S.strstart-D,S.strstart=D,H2(S,!1),S.strm.avail_out===0)||S.strstart-S.block_start>=S.w_size-w1&&(H2(S,!1),S.strm.avail_out===0))return O2}return S.insert=0,k===ai?(H2(S,!0),S.strm.avail_out===0?wi:Ki):(S.strstart>S.block_start&&(H2(S,!1),S.strm.avail_out===0),O2)}function zf(S,k){for(var T,D;;){if(S.lookahead=$e&&(S.ins_h=(S.ins_h<=$e)if(D=p1._tr_tally(S,S.strstart-S.match_start,S.match_length-$e),S.lookahead-=S.match_length,S.match_length<=S.max_lazy_match&&S.lookahead>=$e){S.match_length--;do S.strstart++,S.ins_h=(S.ins_h<=$e&&(S.ins_h=(S.ins_h<4096)&&(S.match_length=$e-1)),S.prev_length>=$e&&S.match_length<=S.prev_length){L=S.strstart+S.lookahead-$e,D=p1._tr_tally(S,S.strstart-1-S.prev_match,S.prev_length-$e),S.lookahead-=S.prev_length-1,S.prev_length-=2;do++S.strstart<=L&&(S.ins_h=(S.ins_h<=$e&&S.strstart>0&&(L=S.strstart-1,D=G[L],D===G[++L]&&D===G[++L]&&D===G[++L])){O=S.strstart+li;do;while(D===G[++L]&&D===G[++L]&&D===G[++L]&&D===G[++L]&&D===G[++L]&&D===G[++L]&&D===G[++L]&&D===G[++L]&&LS.lookahead&&(S.match_length=S.lookahead)}if(S.match_length>=$e?(T=p1._tr_tally(S,1,S.match_length-$e),S.lookahead-=S.match_length,S.strstart+=S.match_length,S.match_length=0):(T=p1._tr_tally(S,0,S.window[S.strstart]),S.lookahead--,S.strstart++),T&&(H2(S,!1),S.strm.avail_out===0))return O2}return S.insert=0,k===ai?(H2(S,!0),S.strm.avail_out===0?wi:Ki):S.last_lit&&(H2(S,!1),S.strm.avail_out===0)?O2:Tr}function SC(S,k){for(var T;;){if(S.lookahead===0&&(Ci(S),S.lookahead===0)){if(k===Ai)return O2;break}if(S.match_length=0,T=p1._tr_tally(S,0,S.window[S.strstart]),S.lookahead--,S.strstart++,T&&(H2(S,!1),S.strm.avail_out===0))return O2}return S.insert=0,k===ai?(H2(S,!0),S.strm.avail_out===0?wi:Ki):S.last_lit&&(H2(S,!1),S.strm.avail_out===0)?O2:Tr}function O1(S,k,T,D,L){this.good_length=S,this.max_lazy=k,this.nice_length=T,this.max_chain=D,this.func=L}var Zi;Zi=[new O1(0,0,0,0,cC),new O1(4,4,8,4,zf),new O1(4,5,16,8,zf),new O1(4,6,32,32,zf),new O1(4,4,16,16,Wi),new O1(8,16,32,32,Wi),new O1(8,16,128,128,Wi),new O1(8,32,128,256,Wi),new O1(32,128,258,1024,Wi),new O1(32,258,258,4096,Wi)];function mC(S){S.window_size=2*S.w_size,oi(S.head),S.max_lazy_match=Zi[S.level].max_lazy,S.good_match=Zi[S.level].good_length,S.nice_match=Zi[S.level].nice_length,S.max_chain_length=Zi[S.level].max_chain,S.strstart=0,S.block_start=0,S.lookahead=0,S.insert=0,S.match_length=S.prev_length=$e-1,S.match_available=0,S.ins_h=0}function pC(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Yt,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new i1.Buf16(sC*2),this.dyn_dtree=new i1.Buf16((2*nC+1)*2),this.bl_tree=new i1.Buf16((2*fC+1)*2),oi(this.dyn_ltree),oi(this.dyn_dtree),oi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new i1.Buf16(oC+1),this.heap=new i1.Buf16(2*Yf+1),oi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new i1.Buf16(2*Yf+1),oi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function q4(S){var k;return!S||!S.state?ui(S,g1):(S.total_in=S.total_out=0,S.data_type=$w,k=S.state,k.pending=0,k.pending_out=0,k.wrap<0&&(k.wrap=-k.wrap),k.status=k.wrap?Xt:Ti,S.adler=k.wrap===2?0:1,k.last_flush=Ai,p1._tr_init(k),x1)}function N4(S){var k=q4(S);return k===x1&&mC(S.state),k}function gC(S,k){return!S||!S.state||S.state.wrap!==2?g1:(S.state.gzhead=k,x1)}function U4(S,k,T,D,L,O){if(!S)return g1;var G=1;if(k===jw&&(k=6),D<0?(G=0,D=-D):D>15&&(G=2,D-=16),L<1||L>bw||T!==Yt||D<8||D>15||k<0||k>9||O<0||O>Kw)return ui(S,g1);D===8&&(D=9);var N=new pC;return S.state=N,N.strm=S,N.wrap=G,N.gzhead=null,N.w_bits=D,N.w_size=1<R4||k<0)return S?ui(S,g1):g1;if(D=S.state,!S.output||!S.input&&S.avail_in!==0||D.status===_r&&k!==ai)return ui(S,S.avail_out===0?Vf:g1);if(D.strm=S,T=D.last_flush,D.last_flush=k,D.status===Xt)if(D.wrap===2)S.adler=0,n2(D,31),n2(D,139),n2(D,8),D.gzhead?(n2(D,(D.gzhead.text?1:0)+(D.gzhead.hcrc?2:0)+(D.gzhead.extra?4:0)+(D.gzhead.name?8:0)+(D.gzhead.comment?16:0)),n2(D,D.gzhead.time&255),n2(D,D.gzhead.time>>8&255),n2(D,D.gzhead.time>>16&255),n2(D,D.gzhead.time>>24&255),n2(D,D.level===9?2:D.strategy>=Gt||D.level<2?4:0),n2(D,D.gzhead.os&255),D.gzhead.extra&&D.gzhead.extra.length&&(n2(D,D.gzhead.extra.length&255),n2(D,D.gzhead.extra.length>>8&255)),D.gzhead.hcrc&&(S.adler=fi(S.adler,D.pending_buf,D.pending,0)),D.gzindex=0,D.status=Xf):(n2(D,0),n2(D,0),n2(D,0),n2(D,0),n2(D,0),n2(D,D.level===9?2:D.strategy>=Gt||D.level<2?4:0),n2(D,uC),D.status=Ti);else{var G=Yt+(D.w_bits-8<<4)<<8,N=-1;D.strategy>=Gt||D.level<2?N=0:D.level<6?N=1:D.level===6?N=2:N=3,G|=N<<6,D.strstart!==0&&(G|=lC),G+=31-G%31,D.status=Ti,kr(D,G),D.strstart!==0&&(kr(D,S.adler>>>16),kr(D,S.adler&65535)),S.adler=1}if(D.status===Xf)if(D.gzhead.extra){for(L=D.pending;D.gzindex<(D.gzhead.extra.length&65535)&&!(D.pending===D.pending_buf_size&&(D.gzhead.hcrc&&D.pending>L&&(S.adler=fi(S.adler,D.pending_buf,D.pending-L,L)),si(S),L=D.pending,D.pending===D.pending_buf_size));)n2(D,D.gzhead.extra[D.gzindex]&255),D.gzindex++;D.gzhead.hcrc&&D.pending>L&&(S.adler=fi(S.adler,D.pending_buf,D.pending-L,L)),D.gzindex===D.gzhead.extra.length&&(D.gzindex=0,D.status=Ht)}else D.status=Ht;if(D.status===Ht)if(D.gzhead.name){L=D.pending;do{if(D.pending===D.pending_buf_size&&(D.gzhead.hcrc&&D.pending>L&&(S.adler=fi(S.adler,D.pending_buf,D.pending-L,L)),si(S),L=D.pending,D.pending===D.pending_buf_size)){O=1;break}D.gzindexL&&(S.adler=fi(S.adler,D.pending_buf,D.pending-L,L)),O===0&&(D.gzindex=0,D.status=Vt)}else D.status=Vt;if(D.status===Vt)if(D.gzhead.comment){L=D.pending;do{if(D.pending===D.pending_buf_size&&(D.gzhead.hcrc&&D.pending>L&&(S.adler=fi(S.adler,D.pending_buf,D.pending-L,L)),si(S),L=D.pending,D.pending===D.pending_buf_size)){O=1;break}D.gzindexL&&(S.adler=fi(S.adler,D.pending_buf,D.pending-L,L)),O===0&&(D.status=zt)}else D.status=zt;if(D.status===zt&&(D.gzhead.hcrc?(D.pending+2>D.pending_buf_size&&si(S),D.pending+2<=D.pending_buf_size&&(n2(D,S.adler&255),n2(D,S.adler>>8&255),S.adler=0,D.status=Ti)):D.status=Ti),D.pending!==0){if(si(S),S.avail_out===0)return D.last_flush=-1,x1}else if(S.avail_in===0&&O4(k)<=O4(T)&&k!==ai)return ui(S,Vf);if(D.status===_r&&S.avail_in!==0)return ui(S,Vf);if(S.avail_in!==0||D.lookahead!==0||k!==Ai&&D.status!==_r){var X=D.strategy===Gt?SC(D,k):D.strategy===Zw?hC(D,k):Zi[D.level].func(D,k);if((X===wi||X===Ki)&&(D.status=_r),X===O2||X===wi)return S.avail_out===0&&(D.last_flush=-1),x1;if(X===Tr&&(k===zw?p1._tr_align(D):k!==R4&&(p1._tr_stored_block(D,0,0,!1),k===Yw&&(oi(D.head),D.lookahead===0&&(D.strstart=0,D.block_start=0,D.insert=0))),si(S),S.avail_out===0))return D.last_flush=-1,x1}return k!==ai?x1:D.wrap<=0?F4:(D.wrap===2?(n2(D,S.adler&255),n2(D,S.adler>>8&255),n2(D,S.adler>>16&255),n2(D,S.adler>>24&255),n2(D,S.total_in&255),n2(D,S.total_in>>8&255),n2(D,S.total_in>>16&255),n2(D,S.total_in>>24&255)):(kr(D,S.adler>>>16),kr(D,S.adler&65535)),si(S),D.wrap>0&&(D.wrap=-D.wrap),D.pending!==0?x1:F4)}function kC(S){var k;return!S||!S.state?g1:(k=S.state.status,k!==Xt&&k!==Xf&&k!==Ht&&k!==Vt&&k!==zt&&k!==Ti&&k!==_r?ui(S,g1):(S.state=null,k===Ti?ui(S,Xw):x1))}function _C(S,k){var T=k.length,D,L,O,G,N,X,Y,j;if(!S||!S.state||(D=S.state,G=D.wrap,G===2||G===1&&D.status!==Xt||D.lookahead))return g1;for(G===1&&(S.adler=x4(S.adler,k,T,0)),D.wrap=0,T>=D.w_size&&(G===0&&(oi(D.head),D.strstart=0,D.block_start=0,D.insert=0),j=new i1.Buf8(D.w_size),i1.arraySet(j,k,T-D.w_size,D.w_size,0),k=j,T=D.w_size),N=S.avail_in,X=S.next_in,Y=S.input,S.avail_in=T,S.next_in=0,S.input=k,Ci(D);D.lookahead>=$e;){L=D.strstart,O=D.lookahead-($e-1);do D.ins_h=(D.ins_h<{"use strict";var jt=z1(),Q4=!0,G4=!0;try{String.fromCharCode.apply(null,[0])}catch{Q4=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{G4=!1}var wr=new jt.Buf8(256);for(X1=0;X1<256;X1++)wr[X1]=X1>=252?6:X1>=248?5:X1>=240?4:X1>=224?3:X1>=192?2:1;var X1;wr[254]=wr[254]=1;Ji.string2buf=function(S){var k,T,D,L,O,G=S.length,N=0;for(L=0;L>>6,k[O++]=128|T&63):T<65536?(k[O++]=224|T>>>12,k[O++]=128|T>>>6&63,k[O++]=128|T&63):(k[O++]=240|T>>>18,k[O++]=128|T>>>12&63,k[O++]=128|T>>>6&63,k[O++]=128|T&63);return k};function H4(S,k){if(k<65534&&(S.subarray&&G4||!S.subarray&&Q4))return String.fromCharCode.apply(null,jt.shrinkBuf(S,k));for(var T="",D=0;D4){N[D++]=65533,T+=O-1;continue}for(L&=O===2?31:O===3?15:7;O>1&&T1){N[D++]=65533;continue}L<65536?N[D++]=L:(L-=65536,N[D++]=55296|L>>10&1023,N[D++]=56320|L&1023)}return H4(N,D)};Ji.utf8border=function(S,k){var T;for(k=k||S.length,k>S.length&&(k=S.length),T=k-1;T>=0&&(S[T]&192)===128;)T--;return T<0||T===0?k:T+wr[S[T]]>k?T:k}});var Wf=Le((RD,V4)=>{"use strict";function TC(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}V4.exports=TC});var j4=Le(Dr=>{"use strict";var Cr=B4(),Ar=z1(),Kf=jf(),Jf=Qt(),wC=Wf(),X4=Object.prototype.toString,CC=0,Zf=4,$i=0,z4=1,Y4=2,AC=-1,DC=0,yC=8;function Di(S){if(!(this instanceof Di))return new Di(S);this.options=Ar.assign({level:AC,method:yC,chunkSize:16384,windowBits:15,memLevel:8,strategy:DC,to:""},S||{});var k=this.options;k.raw&&k.windowBits>0?k.windowBits=-k.windowBits:k.gzip&&k.windowBits>0&&k.windowBits<16&&(k.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new wC,this.strm.avail_out=0;var T=Cr.deflateInit2(this.strm,k.level,k.method,k.windowBits,k.memLevel,k.strategy);if(T!==$i)throw new Error(Jf[T]);if(k.header&&Cr.deflateSetHeader(this.strm,k.header),k.dictionary){var D;if(typeof k.dictionary=="string"?D=Kf.string2buf(k.dictionary):X4.call(k.dictionary)==="[object ArrayBuffer]"?D=new Uint8Array(k.dictionary):D=k.dictionary,T=Cr.deflateSetDictionary(this.strm,D),T!==$i)throw new Error(Jf[T]);this._dict_set=!0}}Di.prototype.push=function(S,k){var T=this.strm,D=this.options.chunkSize,L,O;if(this.ended)return!1;O=k===~~k?k:k===!0?Zf:CC,typeof S=="string"?T.input=Kf.string2buf(S):X4.call(S)==="[object ArrayBuffer]"?T.input=new Uint8Array(S):T.input=S,T.next_in=0,T.avail_in=T.input.length;do{if(T.avail_out===0&&(T.output=new Ar.Buf8(D),T.next_out=0,T.avail_out=D),L=Cr.deflate(T,O),L!==z4&&L!==$i)return this.onEnd(L),this.ended=!0,!1;(T.avail_out===0||T.avail_in===0&&(O===Zf||O===Y4))&&(this.options.to==="string"?this.onData(Kf.buf2binstring(Ar.shrinkBuf(T.output,T.next_out))):this.onData(Ar.shrinkBuf(T.output,T.next_out)))}while((T.avail_in>0||T.avail_out===0)&&L!==z4);return O===Zf?(L=Cr.deflateEnd(this.strm),this.onEnd(L),this.ended=!0,L===$i):(O===Y4&&(this.onEnd($i),T.avail_out=0),!0)};Di.prototype.onData=function(S){this.chunks.push(S)};Di.prototype.onEnd=function(S){S===$i&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ar.flattenChunks(this.chunks)),this.chunks=[],this.err=S,this.msg=this.strm.msg};function $f(S,k){var T=new Di(k);if(T.push(S,!0),T.err)throw T.msg||Jf[T.err];return T.result}function IC(S,k){return k=k||{},k.raw=!0,$f(S,k)}function EC(S,k){return k=k||{},k.gzip=!0,$f(S,k)}Dr.Deflate=Di;Dr.deflate=$f;Dr.deflateRaw=IC;Dr.gzip=EC});var Z4=Le((OD,W4)=>{"use strict";var Wt=30,PC=12;W4.exports=function(k,T){var D,L,O,G,N,X,Y,j,p,F,e,z,$,J0,z0,t0,o0,C,D0,v0,Z0,x0,l0,u,M0;D=k.state,L=k.next_in,u=k.input,O=L+(k.avail_in-5),G=k.next_out,M0=k.output,N=G-(T-k.avail_out),X=G+(k.avail_out-257),Y=D.dmax,j=D.wsize,p=D.whave,F=D.wnext,e=D.window,z=D.hold,$=D.bits,J0=D.lencode,z0=D.distcode,t0=(1<>>24,z>>>=D0,$-=D0,D0=C>>>16&255,D0===0)M0[G++]=C&65535;else if(D0&16){v0=C&65535,D0&=15,D0&&($>>=D0,$-=D0),$<15&&(z+=u[L++]<<$,$+=8,z+=u[L++]<<$,$+=8),C=z0[z&o0];r:for(;;){if(D0=C>>>24,z>>>=D0,$-=D0,D0=C>>>16&255,D0&16){if(Z0=C&65535,D0&=15,$Y){k.msg="invalid distance too far back",D.mode=Wt;break e}if(z>>>=D0,$-=D0,D0=G-N,Z0>D0){if(D0=Z0-D0,D0>p&&D.sane){k.msg="invalid distance too far back",D.mode=Wt;break e}if(x0=0,l0=e,F===0){if(x0+=j-D0,D02;)M0[G++]=l0[x0++],M0[G++]=l0[x0++],M0[G++]=l0[x0++],v0-=3;v0&&(M0[G++]=l0[x0++],v0>1&&(M0[G++]=l0[x0++]))}else{x0=G-Z0;do M0[G++]=M0[x0++],M0[G++]=M0[x0++],M0[G++]=M0[x0++],v0-=3;while(v0>2);v0&&(M0[G++]=M0[x0++],v0>1&&(M0[G++]=M0[x0++]))}}else if(D0&64){k.msg="invalid distance code",D.mode=Wt;break e}else{C=z0[(C&65535)+(z&(1<>3,L-=v0,$-=v0<<3,z&=(1<<$)-1,k.next_in=L,k.next_out=G,k.avail_in=L{"use strict";var K4=z1(),bi=15,J4=852,$4=592,b4=0,bf=1,eu=2,LC=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],RC=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],FC=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],OC=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];iu.exports=function(k,T,D,L,O,G,N,X){var Y=X.bits,j=0,p=0,F=0,e=0,z=0,$=0,J0=0,z0=0,t0=0,o0=0,C,D0,v0,Z0,x0,l0=null,u=0,M0,I0=new K4.Buf16(bi+1),n0=new K4.Buf16(bi+1),C0=null,e0=0,s0,R0,m0;for(j=0;j<=bi;j++)I0[j]=0;for(p=0;p=1&&I0[e]===0;e--);if(z>e&&(z=e),e===0)return O[G++]=1<<24|64<<16|0,O[G++]=1<<24|64<<16|0,X.bits=1,0;for(F=1;F0&&(k===b4||e!==1))return-1;for(n0[1]=0,j=1;jJ4||k===eu&&t0>$4)return 1;for(;;){s0=j-J0,N[p]M0?(R0=C0[e0+N[p]],m0=l0[u+N[p]]):(R0=32+64,m0=0),C=1<>J0)+D0]=s0<<24|R0<<16|m0|0;while(D0!==0);for(C=1<>=1;if(C!==0?(o0&=C-1,o0+=C):o0=0,p++,--I0[j]===0){if(j===e)break;j=T[D+N[p]]}if(j>z&&(o0&Z0)!==v0){for(J0===0&&(J0=z),x0+=F,$=j-J0,z0=1<<$;$+J0J4||k===eu&&t0>$4)return 1;v0=o0&Z0,O[v0]=z<<24|$<<16|x0-G|0}}return o0!==0&&(O[x0+o0]=j-J0<<24|64<<16|0),X.bits=z,0}});var Nu=Le(C1=>{"use strict";var l1=z1(),fs=Gf(),q1=Hf(),xC=Z4(),yr=ru(),MC=0,Eu=1,Pu=2,tu=4,qC=5,Zt=6,yi=0,NC=1,UC=2,v1=-2,Lu=-3,ss=-4,BC=-5,nu=8,Ru=1,fu=2,su=3,ou=4,lu=5,uu=6,au=7,cu=8,hu=9,Su=10,$t=11,j1=12,es=13,mu=14,is=15,pu=16,gu=17,vu=18,du=19,Kt=20,Jt=21,ku=22,_u=23,Tu=24,wu=25,Cu=26,rs=27,Au=28,Du=29,k2=30,os=31,QC=32,GC=852,HC=592,VC=15,zC=VC;function yu(S){return(S>>>24&255)+(S>>>8&65280)+((S&65280)<<8)+((S&255)<<24)}function YC(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new l1.Buf16(320),this.work=new l1.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Fu(S){var k;return!S||!S.state?v1:(k=S.state,S.total_in=S.total_out=k.total=0,S.msg="",k.wrap&&(S.adler=k.wrap&1),k.mode=Ru,k.last=0,k.havedict=0,k.dmax=32768,k.head=null,k.hold=0,k.bits=0,k.lencode=k.lendyn=new l1.Buf32(GC),k.distcode=k.distdyn=new l1.Buf32(HC),k.sane=1,k.back=-1,yi)}function Ou(S){var k;return!S||!S.state?v1:(k=S.state,k.wsize=0,k.whave=0,k.wnext=0,Fu(S))}function xu(S,k){var T,D;return!S||!S.state||(D=S.state,k<0?(T=0,k=-k):(T=(k>>4)+1,k<48&&(k&=15)),k&&(k<8||k>15))?v1:(D.window!==null&&D.wbits!==k&&(D.window=null),D.wrap=T,D.wbits=k,Ou(S))}function Mu(S,k){var T,D;return S?(D=new YC,S.state=D,D.window=null,T=xu(S,k),T!==yi&&(S.state=null),T):v1}function XC(S){return Mu(S,zC)}var Iu=!0,ts,ns;function jC(S){if(Iu){var k;for(ts=new l1.Buf32(512),ns=new l1.Buf32(32),k=0;k<144;)S.lens[k++]=8;for(;k<256;)S.lens[k++]=9;for(;k<280;)S.lens[k++]=7;for(;k<288;)S.lens[k++]=8;for(yr(Eu,S.lens,0,288,ts,0,S.work,{bits:9}),k=0;k<32;)S.lens[k++]=5;yr(Pu,S.lens,0,32,ns,0,S.work,{bits:5}),Iu=!1}S.lencode=ts,S.lenbits=9,S.distcode=ns,S.distbits=5}function qu(S,k,T,D){var L,O=S.state;return O.window===null&&(O.wsize=1<=O.wsize?(l1.arraySet(O.window,k,T-O.wsize,O.wsize,0),O.wnext=0,O.whave=O.wsize):(L=O.wsize-O.wnext,L>D&&(L=D),l1.arraySet(O.window,k,T-D,L,O.wnext),D-=L,D?(l1.arraySet(O.window,k,T-D,D,0),O.wnext=D,O.whave=O.wsize):(O.wnext+=L,O.wnext===O.wsize&&(O.wnext=0),O.whave>>8&255,T.check=q1(T.check,l0,2,0),Y=0,j=0,T.mode=fu;break}if(T.flags=0,T.head&&(T.head.done=!1),!(T.wrap&1)||(((Y&255)<<8)+(Y>>8))%31){S.msg="incorrect header check",T.mode=k2;break}if((Y&15)!==nu){S.msg="unknown compression method",T.mode=k2;break}if(Y>>>=4,j-=4,Z0=(Y&15)+8,T.wbits===0)T.wbits=Z0;else if(Z0>T.wbits){S.msg="invalid window size",T.mode=k2;break}T.dmax=1<>8&1),T.flags&512&&(l0[0]=Y&255,l0[1]=Y>>>8&255,T.check=q1(T.check,l0,2,0)),Y=0,j=0,T.mode=su;case su:for(;j<32;){if(N===0)break e;N--,Y+=D[O++]<>>8&255,l0[2]=Y>>>16&255,l0[3]=Y>>>24&255,T.check=q1(T.check,l0,4,0)),Y=0,j=0,T.mode=ou;case ou:for(;j<16;){if(N===0)break e;N--,Y+=D[O++]<>8),T.flags&512&&(l0[0]=Y&255,l0[1]=Y>>>8&255,T.check=q1(T.check,l0,2,0)),Y=0,j=0,T.mode=lu;case lu:if(T.flags&1024){for(;j<16;){if(N===0)break e;N--,Y+=D[O++]<>>8&255,T.check=q1(T.check,l0,2,0)),Y=0,j=0}else T.head&&(T.head.extra=null);T.mode=uu;case uu:if(T.flags&1024&&(e=T.length,e>N&&(e=N),e&&(T.head&&(Z0=T.head.extra_len-T.length,T.head.extra||(T.head.extra=new Array(T.head.extra_len)),l1.arraySet(T.head.extra,D,O,e,Z0)),T.flags&512&&(T.check=q1(T.check,D,e,O)),N-=e,O+=e,T.length-=e),T.length))break e;T.length=0,T.mode=au;case au:if(T.flags&2048){if(N===0)break e;e=0;do Z0=D[O+e++],T.head&&Z0&&T.length<65536&&(T.head.name+=String.fromCharCode(Z0));while(Z0&&e>9&1,T.head.done=!0),S.adler=T.check=0,T.mode=j1;break;case Su:for(;j<32;){if(N===0)break e;N--,Y+=D[O++]<>>=j&7,j-=j&7,T.mode=rs;break}for(;j<3;){if(N===0)break e;N--,Y+=D[O++]<>>=1,j-=1,Y&3){case 0:T.mode=mu;break;case 1:if(jC(T),T.mode=Kt,k===Zt){Y>>>=2,j-=2;break e}break;case 2:T.mode=gu;break;case 3:S.msg="invalid block type",T.mode=k2}Y>>>=2,j-=2;break;case mu:for(Y>>>=j&7,j-=j&7;j<32;){if(N===0)break e;N--,Y+=D[O++]<>>16^65535)){S.msg="invalid stored block lengths",T.mode=k2;break}if(T.length=Y&65535,Y=0,j=0,T.mode=is,k===Zt)break e;case is:T.mode=pu;case pu:if(e=T.length,e){if(e>N&&(e=N),e>X&&(e=X),e===0)break e;l1.arraySet(L,D,O,e,G),N-=e,O+=e,X-=e,G+=e,T.length-=e;break}T.mode=j1;break;case gu:for(;j<14;){if(N===0)break e;N--,Y+=D[O++]<>>=5,j-=5,T.ndist=(Y&31)+1,Y>>>=5,j-=5,T.ncode=(Y&15)+4,Y>>>=4,j-=4,T.nlen>286||T.ndist>30){S.msg="too many length or distance symbols",T.mode=k2;break}T.have=0,T.mode=vu;case vu:for(;T.have>>=3,j-=3}for(;T.have<19;)T.lens[I0[T.have++]]=0;if(T.lencode=T.lendyn,T.lenbits=7,u={bits:T.lenbits},x0=yr(MC,T.lens,0,19,T.lencode,0,T.work,u),T.lenbits=u.bits,x0){S.msg="invalid code lengths set",T.mode=k2;break}T.have=0,T.mode=du;case du:for(;T.have>>24,t0=J0>>>16&255,o0=J0&65535,!(z0<=j);){if(N===0)break e;N--,Y+=D[O++]<>>=z0,j-=z0,T.lens[T.have++]=o0;else{if(o0===16){for(M0=z0+2;j>>=z0,j-=z0,T.have===0){S.msg="invalid bit length repeat",T.mode=k2;break}Z0=T.lens[T.have-1],e=3+(Y&3),Y>>>=2,j-=2}else if(o0===17){for(M0=z0+3;j>>=z0,j-=z0,Z0=0,e=3+(Y&7),Y>>>=3,j-=3}else{for(M0=z0+7;j>>=z0,j-=z0,Z0=0,e=11+(Y&127),Y>>>=7,j-=7}if(T.have+e>T.nlen+T.ndist){S.msg="invalid bit length repeat",T.mode=k2;break}for(;e--;)T.lens[T.have++]=Z0}}if(T.mode===k2)break;if(T.lens[256]===0){S.msg="invalid code -- missing end-of-block",T.mode=k2;break}if(T.lenbits=9,u={bits:T.lenbits},x0=yr(Eu,T.lens,0,T.nlen,T.lencode,0,T.work,u),T.lenbits=u.bits,x0){S.msg="invalid literal/lengths set",T.mode=k2;break}if(T.distbits=6,T.distcode=T.distdyn,u={bits:T.distbits},x0=yr(Pu,T.lens,T.nlen,T.ndist,T.distcode,0,T.work,u),T.distbits=u.bits,x0){S.msg="invalid distances set",T.mode=k2;break}if(T.mode=Kt,k===Zt)break e;case Kt:T.mode=Jt;case Jt:if(N>=6&&X>=258){S.next_out=G,S.avail_out=X,S.next_in=O,S.avail_in=N,T.hold=Y,T.bits=j,xC(S,F),G=S.next_out,L=S.output,X=S.avail_out,O=S.next_in,D=S.input,N=S.avail_in,Y=T.hold,j=T.bits,T.mode===j1&&(T.back=-1);break}for(T.back=0;J0=T.lencode[Y&(1<>>24,t0=J0>>>16&255,o0=J0&65535,!(z0<=j);){if(N===0)break e;N--,Y+=D[O++]<>C)],z0=J0>>>24,t0=J0>>>16&255,o0=J0&65535,!(C+z0<=j);){if(N===0)break e;N--,Y+=D[O++]<>>=C,j-=C,T.back+=C}if(Y>>>=z0,j-=z0,T.back+=z0,T.length=o0,t0===0){T.mode=Cu;break}if(t0&32){T.back=-1,T.mode=j1;break}if(t0&64){S.msg="invalid literal/length code",T.mode=k2;break}T.extra=t0&15,T.mode=ku;case ku:if(T.extra){for(M0=T.extra;j>>=T.extra,j-=T.extra,T.back+=T.extra}T.was=T.length,T.mode=_u;case _u:for(;J0=T.distcode[Y&(1<>>24,t0=J0>>>16&255,o0=J0&65535,!(z0<=j);){if(N===0)break e;N--,Y+=D[O++]<>C)],z0=J0>>>24,t0=J0>>>16&255,o0=J0&65535,!(C+z0<=j);){if(N===0)break e;N--,Y+=D[O++]<>>=C,j-=C,T.back+=C}if(Y>>>=z0,j-=z0,T.back+=z0,t0&64){S.msg="invalid distance code",T.mode=k2;break}T.offset=o0,T.extra=t0&15,T.mode=Tu;case Tu:if(T.extra){for(M0=T.extra;j>>=T.extra,j-=T.extra,T.back+=T.extra}if(T.offset>T.dmax){S.msg="invalid distance too far back",T.mode=k2;break}T.mode=wu;case wu:if(X===0)break e;if(e=F-X,T.offset>e){if(e=T.offset-e,e>T.whave&&T.sane){S.msg="invalid distance too far back",T.mode=k2;break}e>T.wnext?(e-=T.wnext,z=T.wsize-e):z=T.wnext-e,e>T.length&&(e=T.length),$=T.window}else $=L,z=G-T.offset,e=T.length;e>X&&(e=X),X-=e,T.length-=e;do L[G++]=$[z++];while(--e);T.length===0&&(T.mode=Jt);break;case Cu:if(X===0)break e;L[G++]=T.length,X--,T.mode=Jt;break;case rs:if(T.wrap){for(;j<32;){if(N===0)break e;N--,Y|=D[O++]<{"use strict";Uu.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var Qu=Le((ND,Bu)=>{"use strict";function $C(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}Bu.exports=$C});var Hu=Le(Er=>{"use strict";var er=Nu(),Ir=z1(),bt=jf(),L2=ls(),us=Qt(),bC=Wf(),eA=Qu(),Gu=Object.prototype.toString;function Ii(S){if(!(this instanceof Ii))return new Ii(S);this.options=Ir.assign({chunkSize:16384,windowBits:0,to:""},S||{});var k=this.options;k.raw&&k.windowBits>=0&&k.windowBits<16&&(k.windowBits=-k.windowBits,k.windowBits===0&&(k.windowBits=-15)),k.windowBits>=0&&k.windowBits<16&&!(S&&S.windowBits)&&(k.windowBits+=32),k.windowBits>15&&k.windowBits<48&&(k.windowBits&15||(k.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new bC,this.strm.avail_out=0;var T=er.inflateInit2(this.strm,k.windowBits);if(T!==L2.Z_OK)throw new Error(us[T]);if(this.header=new eA,er.inflateGetHeader(this.strm,this.header),k.dictionary&&(typeof k.dictionary=="string"?k.dictionary=bt.string2buf(k.dictionary):Gu.call(k.dictionary)==="[object ArrayBuffer]"&&(k.dictionary=new Uint8Array(k.dictionary)),k.raw&&(T=er.inflateSetDictionary(this.strm,k.dictionary),T!==L2.Z_OK)))throw new Error(us[T])}Ii.prototype.push=function(S,k){var T=this.strm,D=this.options.chunkSize,L=this.options.dictionary,O,G,N,X,Y,j=!1;if(this.ended)return!1;G=k===~~k?k:k===!0?L2.Z_FINISH:L2.Z_NO_FLUSH,typeof S=="string"?T.input=bt.binstring2buf(S):Gu.call(S)==="[object ArrayBuffer]"?T.input=new Uint8Array(S):T.input=S,T.next_in=0,T.avail_in=T.input.length;do{if(T.avail_out===0&&(T.output=new Ir.Buf8(D),T.next_out=0,T.avail_out=D),O=er.inflate(T,L2.Z_NO_FLUSH),O===L2.Z_NEED_DICT&&L&&(O=er.inflateSetDictionary(this.strm,L)),O===L2.Z_BUF_ERROR&&j===!0&&(O=L2.Z_OK,j=!1),O!==L2.Z_STREAM_END&&O!==L2.Z_OK)return this.onEnd(O),this.ended=!0,!1;T.next_out&&(T.avail_out===0||O===L2.Z_STREAM_END||T.avail_in===0&&(G===L2.Z_FINISH||G===L2.Z_SYNC_FLUSH))&&(this.options.to==="string"?(N=bt.utf8border(T.output,T.next_out),X=T.next_out-N,Y=bt.buf2string(T.output,N),T.next_out=X,T.avail_out=D-X,X&&Ir.arraySet(T.output,T.output,N,X,0),this.onData(Y)):this.onData(Ir.shrinkBuf(T.output,T.next_out))),T.avail_in===0&&T.avail_out===0&&(j=!0)}while((T.avail_in>0||T.avail_out===0)&&O!==L2.Z_STREAM_END);return O===L2.Z_STREAM_END&&(G=L2.Z_FINISH),G===L2.Z_FINISH?(O=er.inflateEnd(this.strm),this.onEnd(O),this.ended=!0,O===L2.Z_OK):(G===L2.Z_SYNC_FLUSH&&(this.onEnd(L2.Z_OK),T.avail_out=0),!0)};Ii.prototype.onData=function(S){this.chunks.push(S)};Ii.prototype.onEnd=function(S){S===L2.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ir.flattenChunks(this.chunks)),this.chunks=[],this.err=S,this.msg=this.strm.msg};function as(S,k){var T=new Ii(k);if(T.push(S,!0),T.err)throw T.msg||us[T.err];return T.result}function iA(S,k){return k=k||{},k.raw=!0,as(S,k)}Er.Inflate=Ii;Er.inflate=as;Er.inflateRaw=iA;Er.ungzip=as});var cs=Le((BD,zu)=>{"use strict";var rA=z1().assign,tA=j4(),nA=Hu(),fA=ls(),Vu={};rA(Vu,tA,nA,fA);zu.exports=Vu});var A1=Le((QD,en)=>{"use strict";var he=he||{};he.Tag=he.Tag||(typeof require<"u"?wt():null);he.Utils=he.Utils||(typeof require<"u"?ii():null);he.Dictionary=he.Dictionary||(typeof require<"u"?at():null);he.Image=he.Image||(typeof require<"u"?rn():null);var Yu=Yu||(typeof require<"u"?cs():null);he.Parser=he.Parser||function(){this.littleEndian=!0,this.explicit=!0,this.metaFound=!1,this.metaFinished=!1,this.metaFinishedOffset=-1,this.needsDeflate=!1,this.inflated=null,this.encapsulation=!1,this.level=0,this.error=null};he.Parser.verbose=!1;he.Parser.MAGIC_COOKIE_OFFSET=128;he.Parser.MAGIC_COOKIE=[68,73,67,77];he.Parser.VRS=["AE","AS","AT","CS","DA","DS","DT","FL","FD","IS","LO","LT","OB","OD","OF","OW","PN","SH","SL","SS","ST","TM","UI","UL","UN","US","UT","UC"];he.Parser.DATA_VRS=["OB","OW","OF","SQ","UT","UN","UC"];he.Parser.RAW_DATA_VRS=["OB","OD","OF","OW","UN"];he.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE="1.2.840.10008.1.2";he.Parser.TRANSFER_SYNTAX_EXPLICIT_LITTLE="1.2.840.10008.1.2.1";he.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG="1.2.840.10008.1.2.2";he.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG="1.2.840.10008.1.2.4";he.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS="1.2.840.10008.1.2.4.57";he.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1="1.2.840.10008.1.2.4.70";he.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT="1.2.840.10008.1.2.4.50";he.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT="1.2.840.10008.1.2.4.51";he.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS="1.2.840.10008.1.2.4.80";he.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS="1.2.840.10008.1.2.4.81";he.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS="1.2.840.10008.1.2.4.90";he.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000="1.2.840.10008.1.2.4.91";he.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE="1.2.840.10008.1.2.5";he.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE="1.2.840.10008.1.2.1.99";he.Parser.UNDEFINED_LENGTH=4294967295;he.Parser.isMagicCookieFound=function(S){var k=he.Parser.MAGIC_COOKIE_OFFSET,T=he.Parser.MAGIC_COOKIE.length,D;for(D=0;D=this.metaFinishedOffset&&(this.needsDeflate=!1,L=S.buffer.slice(0,D.offsetEnd),O=S.buffer.slice(D.offsetEnd),this.inflated=he.Utils.concatArrayBuffers(L,Yu.inflateRaw(O)),S=new DataView(this.inflated)),D=this.getNextTag(S,D.offsetEnd)}catch(G){this.error=G}return k!==null&&(k.littleEndian=this.littleEndian),k};he.Parser.prototype.parseEncapsulated=function(S){var k=0,T,D=[];this.encapsulation=!0;try{for(T=this.getNextTag(S,k);T!==null;)T.isSublistItem()&&D.push(T),he.Parser.verbose&&console.log(T.toString()),T=this.getNextTag(S,T.offsetEnd)}catch(L){this.error=L}return D};he.Parser.prototype.testForValidTag=function(S){var k,T=null;try{k=this.findFirstTagOffset(S),T=this.getNextTag(S,k,!1)}catch(D){this.error=D}return T};he.Parser.prototype.getNextTag=function(S,k,T){var D=0,L,O=null,G=k,N,X=0,Y=!0,j=null,p;if(k>=S.byteLength)return null;this.metaFinished?(Y=this.littleEndian,D=S.getUint16(k,Y)):(D=S.getUint16(k,!0),this.metaFinishedOffset!==-1&&k>=this.metaFinishedOffset||D!==2?(this.metaFinished=!0,Y=this.littleEndian,D=S.getUint16(k,Y)):Y=!0),!this.metaFound&&D===2&&(this.metaFound=!0),k+=2,L=S.getUint16(k,Y),k+=2,this.explicit||!this.metaFinished?(j=he.Utils.getStringAt(S,k,2),!this.metaFound&&this.metaFinished&&he.Parser.VRS.indexOf(j)===-1?(j=he.Dictionary.getVR(D,L),X=S.getUint32(k,Y),k+=4,this.explicit=!1):(k+=2,he.Parser.DATA_VRS.indexOf(j)!==-1?(k+=2,X=S.getUint32(k,Y),k+=4):(X=S.getUint16(k,Y),k+=2))):(j=he.Dictionary.getVR(D,L),X=S.getUint32(k,Y),X===he.Parser.UNDEFINED_LENGTH&&(j="SQ"),k+=4),N=k;var F=D===he.Tag.TAG_PIXEL_DATA[0]&&L===he.Tag.TAG_PIXEL_DATA[1],e=D===40&&L>=4609&&L<4864;if(j==="SQ"||!e&&!F&&!this.encapsulation&&he.Parser.DATA_VRS.indexOf(j)!==-1&&j!=="UC"?(O=this.parseSublist(S,k,X,j!=="SQ"),X===he.Parser.UNDEFINED_LENGTH&&(X=O[O.length-1].offsetEnd-k)):X>0&&!T&&(X===he.Parser.UNDEFINED_LENGTH&&F&&(X=S.byteLength-k),O=S.buffer.slice(k,k+X)),k+=X,p=new he.Tag(D,L,j,O,G,N,k,this.littleEndian,this.charset),p.value){if(p.isTransformSyntax())this.transformSyntaxAlreadyExist=!0,p.value[0]===he.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE?(this.explicit=!1,this.littleEndian=!0):p.value[0]===he.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG?(this.explicit=!0,this.littleEndian=!1):p.value[0]===he.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE?(this.needsDeflate=!0,this.explicit=!0,this.littleEndian=!0):(this.explicit=!0,this.littleEndian=!0);else if(p.isMetaLength())this.metaFinishedOffset=p.value[0]+k;else if(p.isCharset()){var z=p.value;z.length==2?z=(z[0]||"ISO 2022 IR 6")+"\\"+z[1]:z.length==1&&(z=z[0]),this.charset=z}}return p};he.Parser.prototype.parseSublist=function(S,k,T,D){var L,O=k+T,G=[];if(this.level++,T===he.Parser.UNDEFINED_LENGTH){for(L=this.parseSublistItem(S,k,D);!L.isSequenceDelim();)G.push(L),k=L.offsetEnd,L=this.parseSublistItem(S,k,D);G.push(L)}else for(;k{"use strict";var Z=Z||{};Z.Tag=Z.Tag||(typeof require<"u"?wt():null);Z.CompressionUtils=Z.CompressionUtils||(typeof require<"u"?sf():null);Z.Utils=Z.Utils||(typeof require<"u"?ii():null);Z.RLE=Z.RLE||(typeof require<"u"?pf():null);var Xu=typeof require<"u"?wf():null,hs=hs||(typeof require<"u"?Cf().JpegImage:null),Ss=Ss||(typeof require<"u"?If():null),ms=ms||(typeof require<"u"?Lf():null);Z.Image=Z.Image||function(){this.tags={},this.tagsFlat={},this.littleEndian=!1,this.index=-1,this.decompressed=!1,this.privateDataAll=null,this.convertedPalette=!1};Z.Image.SLICE_DIRECTION_UNKNOWN=-1;Z.Image.SLICE_DIRECTION_AXIAL=2;Z.Image.SLICE_DIRECTION_CORONAL=1;Z.Image.SLICE_DIRECTION_SAGITTAL=0;Z.Image.SLICE_DIRECTION_OBLIQUE=3;Z.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE=.8;Z.Image.BYTE_TYPE_UNKNOWN=0;Z.Image.BYTE_TYPE_BINARY=1;Z.Image.BYTE_TYPE_INTEGER=2;Z.Image.BYTE_TYPE_INTEGER_UNSIGNED=3;Z.Image.BYTE_TYPE_FLOAT=4;Z.Image.BYTE_TYPE_COMPLEX=5;Z.Image.BYTE_TYPE_RGB=6;Z.Image.skipPaletteConversion=!1;Z.Image.getSingleValueSafely=function(S,k){return S&&S.value?S.value[k]:null};Z.Image.getValueSafely=function(S){return S?S.value:null};Z.Image.getMajorAxisFromPatientRelativeDirectionCosine=function(S,k,T){var D,L,O,G,N,X,Y;return L=S<0?"R":"L",O=k<0?"A":"P",G=T<0?"F":"H",N=Math.abs(S),X=Math.abs(k),Y=Math.abs(T),N>Z.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE&&N>X&&N>Y?D=L:X>Z.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE&&X>N&&X>Y?D=O:Y>Z.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE&&Y>N&&Y>X?D=G:D=null,D};Z.Image.prototype.getCols=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_COLS[0],Z.Tag.TAG_COLS[1]),0)};Z.Image.prototype.getRows=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_ROWS[0],Z.Tag.TAG_ROWS[1]),0)};Z.Image.prototype.getSeriesDescription=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_SERIES_DESCRIPTION[0],Z.Tag.TAG_SERIES_DESCRIPTION[1]),0)};Z.Image.prototype.getSeriesInstanceUID=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_SERIES_INSTANCE_UID[0],Z.Tag.TAG_SERIES_INSTANCE_UID[1]),0)};Z.Image.prototype.getSeriesNumber=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_SERIES_NUMBER[0],Z.Tag.TAG_SERIES_NUMBER[1]),0)};Z.Image.prototype.getEchoNumber=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_ECHO_NUMBER[0],Z.Tag.TAG_ECHO_NUMBER[1]),0)};Z.Image.prototype.getImagePosition=function(){return Z.Image.getValueSafely(this.getTag(Z.Tag.TAG_IMAGE_POSITION[0],Z.Tag.TAG_IMAGE_POSITION[1]))};Z.Image.prototype.getImageDirections=function(){return Z.Image.getValueSafely(this.getTag(Z.Tag.TAG_IMAGE_ORIENTATION[0],Z.Tag.TAG_IMAGE_ORIENTATION[1]))};Z.Image.prototype.getImagePositionSliceDir=function(S){var k=Z.Image.getValueSafely(this.getTag(Z.Tag.TAG_IMAGE_POSITION[0],Z.Tag.TAG_IMAGE_POSITION[1]));return k&&S>=0?k[S]:0};Z.Image.prototype.getModality=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_MODALITY[0],Z.Tag.TAG_MODALITY[1]),0)};Z.Image.prototype.getSliceLocation=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_SLICE_LOCATION[0],Z.Tag.TAG_SLICE_LOCATION[1]),0)};Z.Image.prototype.getSliceLocationVector=function(){return Z.Image.getValueSafely(this.getTag(Z.Tag.TAG_SLICE_LOCATION_VECTOR[0],Z.Tag.TAG_SLICE_LOCATION_VECTOR[1]))};Z.Image.prototype.getImageNumber=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_IMAGE_NUM[0],Z.Tag.TAG_IMAGE_NUM[1]),0)};Z.Image.prototype.getTemporalPosition=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_TEMPORAL_POSITION[0],Z.Tag.TAG_TEMPORAL_POSITION[1]),0)};Z.Image.prototype.getTemporalNumber=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[0],Z.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[1]),0)};Z.Image.prototype.getSliceGap=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_SLICE_GAP[0],Z.Tag.TAG_SLICE_GAP[1]),0)};Z.Image.prototype.getSliceThickness=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_SLICE_THICKNESS[0],Z.Tag.TAG_SLICE_THICKNESS[1]),0)};Z.Image.prototype.getImageMax=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_IMAGE_MAX[0],Z.Tag.TAG_IMAGE_MAX[1]),0)};Z.Image.prototype.getImageMin=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_IMAGE_MIN[0],Z.Tag.TAG_IMAGE_MIN[1]),0)};Z.Image.prototype.getDataScaleSlope=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_DATA_SCALE_SLOPE[0],Z.Tag.TAG_DATA_SCALE_SLOPE[1]),0)};Z.Image.prototype.getDataScaleIntercept=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_DATA_SCALE_INTERCEPT[0],Z.Tag.TAG_DATA_SCALE_INTERCEPT[1]),0)};Z.Image.prototype.getDataScaleElscint=function(){var S=Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_DATA_SCALE_ELSCINT[0],Z.Tag.TAG_DATA_SCALE_ELSCINT[1]),0);S||(S=1);var k=this.getPixelBandwidth();return S=Math.sqrt(k)/(10*S),S<=0&&(S=1),S};Z.Image.prototype.getWindowWidth=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_WINDOW_WIDTH[0],Z.Tag.TAG_WINDOW_WIDTH[1]),0)};Z.Image.prototype.getWindowCenter=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_WINDOW_CENTER[0],Z.Tag.TAG_WINDOW_CENTER[1]),0)};Z.Image.prototype.getPixelBandwidth=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_PIXEL_BANDWIDTH[0],Z.Tag.TAG_PIXEL_BANDWIDTH[1]),0)};Z.Image.prototype.getSeriesId=function(){var S=this.getSeriesDescription(),k=this.getSeriesInstanceUID(),T=this.getSeriesNumber(),D=this.getEchoNumber(),L=this.getOrientation(),O=this.getCols(),G=this.getRows(),N="";return S!==null&&(N+=" "+S),k!==null&&(N+=" "+k),T!==null&&(N+=" "+T),D!==null&&(N+=" "+D),L!==null&&(N+=" "+L),N+=" ("+O+" x "+G+")",N};Z.Image.prototype.getPixelSpacing=function(){return Z.Image.getValueSafely(this.getTag(Z.Tag.TAG_PIXEL_SPACING[0],Z.Tag.TAG_PIXEL_SPACING[1]))};Z.Image.prototype.getImageType=function(){return Z.Image.getValueSafely(this.getTag(Z.Tag.TAG_IMAGE_TYPE[0],Z.Tag.TAG_IMAGE_TYPE[1]))};Z.Image.prototype.getBitsStored=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_BITS_STORED[0],Z.Tag.TAG_BITS_STORED[1]),0)};Z.Image.prototype.getBitsAllocated=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_BITS_ALLOCATED[0],Z.Tag.TAG_BITS_ALLOCATED[1]),0)};Z.Image.prototype.getFrameTime=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_FRAME_TIME[0],Z.Tag.TAG_FRAME_TIME[1]),0)};Z.Image.prototype.getAcquisitionMatrix=function(){var S,k,T,D,L;return S=[0,0],S[0]=Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_ACQUISITION_MATRIX[0],Z.Tag.TAG_ACQUISITION_MATRIX[1]),0),this.privateDataAll===null&&(this.privateDataAll=this.getAllInterpretedPrivateData()),this.privateDataAll!==null&&this.privateDataAll.length>0&&(T=this.privateDataAll.indexOf("AcquisitionMatrixText"),T!==-1&&(D=this.privateDataAll.indexOf(` +`,T),D!==-1&&(L=this.privateDataAll.substring(T,D),k=L.match(/\d+/g),k!==null&&k.length===2?(S[0]=k[0],S[1]=k[1]):k!==null&&k.length===1&&(S[0]=k[0])))),S[1]===0&&(S[1]=S[0]),S};Z.Image.prototype.getTR=function(){return Z.Image.getSingleValueSafely(this.getTag(Z.Tag.TAG_TR,Z.Tag.TAG_TR[1]),0)};Z.Image.prototype.putTag=function(S){this.tags[S.id]&&this.tags[S.id].value[0]!==S.value[0]||(this.tags[S.id]=S,this.putFlattenedTag(this.tagsFlat,S))};Z.Image.prototype.putFlattenedTag=function(S,k){var T;if(k.sublist)for(T=0;Te&&(e=z,J0=x0);return k?{data:N,min:F,minIndex:$,max:e,maxIndex:J0,numCols:this.getCols(),numRows:this.getRows()}:N};Z.Image.prototype.convertPalette=function(){var S,k,T,D,L,O,G,N,X,Y,j,p;if(S=this.tags[Z.Tag.createId(Z.Tag.TAG_PIXEL_DATA[0],Z.Tag.TAG_PIXEL_DATA[1])].value,k=this.getPalleteValues(Z.Tag.TAG_PALETTE_RED),T=this.getPalleteValues(Z.Tag.TAG_PALETTE_GREEN),D=this.getPalleteValues(Z.Tag.TAG_PALETTE_BLUE),k!==null&&k.length>0&&T!==null&&T.length>0&&D!==null&&D.length>0&&!this.convertedPalette){if(L=new DataView(new ArrayBuffer(this.getRows()*this.getCols()*this.getNumberOfFrames()*3)),O=parseInt(Math.ceil(this.getBitsAllocated()/8)),G=S.byteLength/O,O===1)for(N=0;NX&&(X=Math.abs(k[T]),G=T);for(X=0;T<6;T+=1)Math.abs(k[T])>X&&(X=Math.abs(k[T]),N=T);switch(G){case 0:Y+="X",N===4?Y+="YZ":Y+="ZY";break;case 1:Y+="Y",N===3?Y+="XZ":Y+="ZX";break;case 2:Y+="Z",N===3?Y+="XY":Y+="YX";break;default:break}switch(G){case 0:k[G]>0?Y+="-":Y+="+",N===4?k[N]>0?Y+="-":Y+="+":k[N]>0?Y+="+":Y+="-";break;case 1:k[G]>0?Y+="-":Y+="+",N===3?k[N]>0?Y+="-":Y+="+":k[N]>0?Y+="+":Y+="-";break;case 2:k[G]>0?Y+="+":Y+="-",k[N]>0?Y+="-":Y+="+";break;default:break}if(L===0)Y+="+",S=Y;else{if(O)switch(Y.charAt(2)){case"X":L>0?Y+="-":Y+="+";break;case"Y":case"Z":L>0?Y+="+":Y+="-";break;default:break}else switch(Y.charAt(2)){case"X":L>0?Y+="+":Y+="-";break;case"Y":case"Z":L>0?Y+="-":Y+="+";break;default:break}S=Y}return S};Z.Image.prototype.isMosaic=function(){var S,k=!1,T,D,L;if(S=this.getImageType(),S!==null){for(D=0;D0&&(L[0]1?O[T]=Z.Utils.concatArrayBuffers2(L[T]):O[T]=L[T][0],L[T]=null;return O};Z.Image.prototype.getRLE=function(){var S,k,T,D=[];if(S=this.getEncapsulatedData(),S)for(k=S.length,T=1;T");return D=D.replace(/\n\s*\n/g,` +`),D=D.replace(/(?:\r\n|\r|\n)/g,"
"),D};Z.Image.prototype.getPalleteValues=function(S){var k,T,D,L,O,G,N,X,Y,j,p;if(k=null,T=null,D=Z.Image.getValueSafely(this.getTag(S[0],S[1])),D!==null){for(L=D.buffer.byteLength/2,k=[],T=[],O=0;O255||k<0)for(L=255/(T-k),O=k,D=0;D{"use strict";var ir=ir||{};ir.OrderedMapIterator=ir.OrderedMapIterator||function(S){this.orderedMap=S,this.index=0};ir.OrderedMapIterator.prototype.hasNext=function(){return this.index{"use strict";var d1=d1||{};d1.OrderedMapIterator=d1.OrderedMapIterator||(typeof require<"u"?fn():null);d1.OrderedMap=d1.OrderedMap||function(){this.map={},this.orderedKeys=[]};d1.OrderedMap.prototype.put=function(S,k){S in this.map?this.map[S]=k:(this.orderedKeys.push(S),this.orderedKeys.sort(function(T,D){return parseFloat(T)-parseFloat(D)}),this.map[S]=k)};d1.OrderedMap.prototype.remove=function(S){var k=this.orderedKeys.indexOf(S);if(k===-1)throw new Error("key does not exist");this.orderedKeys.splice(k,1),delete this.map[S]};d1.OrderedMap.prototype.get=function(S){return S in this.map?this.map[S]:null};d1.OrderedMap.prototype.iterator=function(){return new d1.OrderedMapIterator(this)};d1.OrderedMap.prototype.getOrderedValues=function(){for(var S=[],k=this.iterator();k.hasNext();)S.push(k.next());return S};var uA=typeof sn;uA!=="undefined"&&sn.exports&&(sn.exports=d1.OrderedMap)});var ju=Le((zD,on)=>{"use strict";var _e=_e||{};_e.Parser=_e.Parser||(typeof require<"u"?A1():null);_e.Image=_e.Image||(typeof require<"u"?rn():null);_e.OrderedMap=_e.OrderedMap||(typeof require<"u"?ps():null);_e.OrderedMapIterator=_e.OrderedMapIterator||(typeof require<"u"?fn():null);_e.Utils=_e.Utils||(typeof require<"u"?ii():null);_e.Series=_e.Series||function(){this.images=[],this.imagesOriginalOrder=null,this.isMosaic=!1,this.isElscint=!1,this.isCompressed=!1,this.numberOfFrames=0,this.numberOfFramesInFile=0,this.isMultiFrame=!1,this.isMultiFrameVolume=!1,this.isMultiFrameTimeseries=!1,this.isImplicitTimeseries=!1,this.sliceSense=!1,this.sliceDir=_e.Image.SLICE_DIRECTION_UNKNOWN,this.error=null};_e.Series.parserError=null;_e.Series.useExplicitOrdering=!1;_e.Series.useExplicitSpacing=0;_e.Series.parseImage=function(S){var k,T;return k=new _e.Parser,T=k.parse(S),k.hasError()?(_e.Series.parserError=k.error,null):(k.inflated&&(T.inflated=k.inflated),T)};_e.Series.getMosaicOffset=function(S,k,T,D,L,O,G){var N,X,Y;return N=L,X=O,Y=G,N=Y%S*k+N,X=(parseInt(Y/S)*T+X)*D,N+X};_e.Series.orderDicoms=function(S,k,T){var D,L,O,G,N,X,Y,j,p,F;for(D=S[0].getImagePosition()!==null,L=S[0].getSliceLocation()!==null,O=S[0].getImageNumber()!==null,G=_e.Series.orderByTime(S,k,T,D,L),N=G.orderedKeys,F=[],X=0;X1&&S[0].getTemporalPosition()!==null,N=k>1&&S[0].getTemporalNumber()!==null&&S[0].getTemporalNumber()===k,G&&N)for(X=0;X1||this.isMosaic&&this.images[0].length>1,this.isMultiFrameVolume=!1,this.isMultiFrameTimeseries=!1,this.isImplicitTimeseries=!1,this.isMultiFrame&&(S=this.images[0].getFrameTime()>0,this.isMosaic?this.isMultiFrameTimeseries=!0:S?this.isMultiFrameTimeseries=!0:this.numberOfFramesInFile>1?(this.isMultiFrameTimeseries=!0,this.numberOfFrames=this.images.length):this.isMultiFrameVolume=!0),!this.isMosaic&&this.numberOfFrames<=1){for(Y=this.images[0].getImagePosition()||[],T=Y.toString(),this.numberOfFrames=0,k=0;k1&&(this.isImplicitTimeseries=!0)}this.sliceDir=this.images[0].getAcquiredSliceDirection(),_e.Series.useExplicitOrdering?D=this.images.slice():D=_e.Series.orderDicoms(this.images,this.numberOfFrames,this.sliceDir),L=D[0].getImagePositionSliceDir(this.sliceDir),O=D[D.length-1].getImagePositionSliceDir(this.sliceDir),G=O-L,_e.Series.useExplicitOrdering?this.sliceSense=!1:this.isMosaic?this.sliceSense=!0:this.isMultiFrame?(N=D[0].getSliceLocationVector(),N!==null?(X=D[0].getOrientation(),X.charAt(2)==="Z"?this.sliceSense=N[0]-N[N.length-1]<0:this.sliceSense=N[0]-N[N.length-1]>0):this.sliceSense=!(L<0)):this.sliceDir===_e.Image.SLICE_DIRECTION_SAGITTAL||this.sliceDir===_e.Image.SLICE_DIRECTION_CORONAL?G>0?this.sliceSense=!1:this.sliceSense=!0:G>0?this.sliceSense=!0:this.sliceSense=!1,this.imagesOriginalOrder=this.images,this.images=D};_e.Series.prototype.concatenateImageData=function(S,k){var T,D,L;this.isMosaic?D=this.getMosaicData(this.images[0],this.images[0].getPixelDataBytes()):D=this.images[0].getPixelDataBytes(),L=this.validatePixelDataLength(this.images[0]),this.images[0].clearPixelData(),T=new Uint8Array(new ArrayBuffer(L*this.images.length)),T.set(new Uint8Array(D,0,L),0),setTimeout(_e.Utils.bind(this,function(){this.concatenateNextImageData(T,L,S,1,k)}),0)};_e.Series.prototype.concatenateNextImageData=function(S,k,T,D,L){var O,G;D>=this.images.length?(T&&T.drawProgress(1,"Reading DICOM Images"),L(S.buffer)):(T&&T.drawProgress(D/this.images.length,"Reading DICOM Images"),this.isMosaic?O=this.getMosaicData(this.images[D],this.images[D].getPixelDataBytes()):O=this.images[D].getPixelDataBytes(),G=this.validatePixelDataLength(this.images[D]),this.images[D].clearPixelData(),S.set(new Uint8Array(O,0,G),k*D),setTimeout(_e.Utils.bind(this,function(){this.concatenateNextImageData(S,k,T,D+1,L)}),0))};_e.Series.prototype.validatePixelDataLength=function(S){var k=S.getPixelDataBytes().byteLength,T=S.getCols()*S.getRows();return k%T===0?k:T*S.getNumberOfFrames()*S.getNumberOfSamplesPerPixel()*(S.getBitsAllocated()/8)};_e.Series.prototype.getMosaicData=function(S,k){var T,D,L,O,G,N,X,Y,j,p,F,e,z,$,J0,z0,t0,o0=0;for(X=parseInt(this.images[0].getBitsAllocated()/8),F=this.images[0].getMosaicCols()*this.images[0].getMosaicRows(),e=parseInt(this.images[0].getRows()/this.images[0].getMosaicRows()),z=parseInt(this.images[0].getCols()/this.images[0].getMosaicCols()),T=this.images[0].getCols(),D=this.images[0].getRows(),L=this.images[0].getMosaicRows(),O=this.images[0].getMosaicCols(),G=parseInt(D/L),N=parseInt(T/O),$=new Uint8Array(new ArrayBuffer(F*e*z*X)),J0=new Uint8Array(k),Y=0;Y1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){var OLD_TOTAL_MEMORY=TOTAL_MEMORY;var LIMIT=Math.pow(2,31);if(DYNAMICTOP>=LIMIT)return false;while(TOTAL_MEMORY<=DYNAMICTOP){if(TOTAL_MEMORY=LIMIT)return false;try{if(ArrayBuffer.transfer){buffer=ArrayBuffer.transfer(buffer,TOTAL_MEMORY)}else{var oldHEAP8=HEAP8;buffer=new ArrayBuffer(TOTAL_MEMORY)}}catch(e){return false}var success=_emscripten_replace_memory(buffer);if(!success)return false;Module["buffer"]=buffer;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);if(!ArrayBuffer.transfer){HEAP8.set(oldHEAP8)}return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+59744;__ATINIT__.push({func:(function(){__GLOBAL__I_000101()})},{func:(function(){__GLOBAL__sub_I_jpegls_cpp()})},{func:(function(){__GLOBAL__sub_I_iostream_cpp()})});allocate([0,0,0,0,0,0,0,0,84,144,0,0,31,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,237,191,0,0,48,0,0,0,0,0,0,0,44,144,0,0,41,192,0,0,84,144,0,0,55,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,115,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,192,0,0,152,3,0,0,0,0,0,0,84,144,0,0,241,192,0,0,216,3,0,0,0,0,0,0,84,144,0,0,55,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,95,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,135,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,216,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,241,193,0,0,48,0,0,0,0,0,0,0,44,144,0,0,13,194,0,0,84,144,0,0,80,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,44,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,139,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,179,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,219,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,3,195,0,0,48,0,0,0,0,0,0,0,84,144,0,0,103,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,157,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,211,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,8,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,71,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,138,196,0,0,160,1,0,0,0,0,0,0,44,144,0,0,120,196,0,0,84,144,0,0,187,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,246,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,49,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,103,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,157,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,210,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,17,198,0,0,160,1,0,0,0,0,0,0,84,144,0,0,86,198,0,0,72,3,0,0,0,0,0,0,84,144,0,0,162,198,0,0,56,2,0,0,0,0,0,0,44,144,0,0,182,198,0,0,84,144,0,0,196,198,0,0,56,2,0,0,0,0,0,0,84,144,0,0,112,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,125,199,0,0,84,144,0,0,138,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,156,199,0,0,84,144,0,0,169,199,0,0,96,2,0,0,0,0,0,0,84,144,0,0,181,199,0,0,120,2,0,0,0,0,0,0,84,144,0,0,214,199,0,0,144,2,0,0,0,0,0,0,84,144,0,0,28,200,0,0,144,2,0,0,0,0,0,0,84,144,0,0,248,199,0,0,176,2,0,0,0,0,0,0,84,144,0,0,62,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,99,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,182,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,245,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,13,222,0,0,152,3,0,0,0,0,0,0,84,144,0,0,38,222,0,0,152,3,0,0,0,0,0,0,44,144,0,0,62,222,0,0,84,144,0,0,87,222,0,0,104,2,0,0,0,0,0,0,44,144,0,0,110,222,0,0,84,144,0,0,135,222,0,0,72,3,0,0,0,0,0,0,84,144,0,0,161,222,0,0,56,3,0,0,0,0,0,0,44,144,0,0,187,222,0,0,84,144,0,0,205,222,0,0,112,3,0,0,0,0,0,0,84,144,0,0,247,222,0,0,112,3,0,0,0,0,0,0,44,144,0,0,33,223,0,0,44,144,0,0,82,223,0,0,124,144,0,0,131,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,178,223,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,124,144,0,0,225,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,16,224,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,84,144,0,0,63,224,0,0,80,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,144,0,0,187,224,0,0,48,3,0,0,0,0,0,0,124,144,0,0,209,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,124,144,0,0,227,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,5,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,40,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,75,225,0,0,144,4,0,0,0,0,0,0,84,144,0,0,109,225,0,0,144,4,0,0,0,0,0,0,124,144,0,0,144,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,178,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,200,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,220,225,0,0,32,4,0,0,0,0,0,0,124,144,0,0,240,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,84,144,0,0,2,226,0,0,32,4,0,0,0,0,0,0,84,144,0,0,23,226,0,0,32,4,0,0,0,0,0,0,124,144,0,0,44,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,80,10,0,0,0,0,0,0,124,144,0,0,112,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,104,10,0,0,0,0,0,0,124,144,0,0,180,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,128,10,0,0,0,0,0,0,124,144,0,0,248,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,152,10,0,0,0,0,0,0,124,144,0,0,60,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,184,10,0,0,0,8,0,0,124,144,0,0,129,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,192,10,0,0,0,8,0,0,124,144,0,0,198,227,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,11,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,80,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,108,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,136,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,164,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,192,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,216,10,0,0,0,0,0,0,124,144,0,0,6,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,224,10,0,0,0,0,0,0,124,144,0,0,76,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,232,10,0,0,0,0,0,0,124,144,0,0,146,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,240,10,0,0,0,0,0,0,124,144,0,0,216,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,124,144,0,0,237,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,144,0,0,73,233,0,0,44,144,0,0,50,233,0,0,124,144,0,0,28,233,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,237,232,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,215,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,124,144,0,0,168,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,44,144,0,0,149,232,0,0,44,144,0,0,115,232,0,0,44,144,0,0,81,232,0,0,44,144,0,0,60,232,0,0,44,144,0,0,39,232,0,0,44,144,0,0,14,232,0,0,44,144,0,0,245,231,0,0,44,144,0,0,220,231,0,0,44,144,0,0,195,231,0,0,44,144,0,0,171,231,0,0,44,144,0,0,190,232,0,0,44,144,0,0,3,233],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([156,143,0,0,0,0,0,0,8,2,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,248,1,0,0,3,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,232,1,0,0,5,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,216,1,0,0,7,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,200,1,0,0,9,0,0,0,10,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,184,1,0,0,11,0,0,0,12,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,168,1,0,0,13,0,0,0,14,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,144,1,0,0,15,0,0,0,16,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,128,1,0,0,17,0,0,0,18,0,0,0,9,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,112,1,0,0,19,0,0,0,20,0,0,0,10,0,0,0,2,0,0,0,10,0,0,0,0,0,0,0,96,1,0,0,21,0,0,0,22,0,0,0,11,0,0,0,3,0,0,0,11,0,0,0,0,0,0,0,80,1,0,0,23,0,0,0,24,0,0,0,12,0,0,0,4,0,0,0,12,0,0,0,0,0,0,0,64,1,0,0,25,0,0,0,26,0,0,0,13,0,0,0,5,0,0,0,13,0,0,0,0,0,0,0,240,0,0,0,27,0,0,0,28,0,0,0,14,0,0,0,6,0,0,0,14,0,0,0,0,0,0,0,224,0,0,0,29,0,0,0,30,0,0,0,15,0,0,0,7,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,31,0,0,0,32,0,0,0,16,0,0,0,8,0,0,0,16,0,0,0,0,0,0,0,200,0,0,0,33,0,0,0,34,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,184,0,0,0,33,0,0,0,35,0,0,0,3,0,0,0,4,0,0,0,56,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,200,255,255,255,200,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,56,0,0,0,0,0,0,0,104,0,0,0,40,0,0,0,41,0,0,0,200,255,255,255,200,255,255,255,104,0,0,0,42,0,0,0,43,0,0,0,0,0,0,0,88,0,0,0,44,0,0,0,45,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,17,0,0,0,3,0,0,0,18,0,0,0,104,141,0,0,64,141,0,0,84,141,0,0,124,141,0,0,0,0,0,0,32,0,0,0,46,0,0,0,47,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,56,0,0,0,48,0,0,0,49,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,72,0,0,0,50,0,0,0,51,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,120,0,0,0,52,0,0,0,53,0,0,0,12,0,0,0,13,0,0,0,0,0,0,0,136,0,0,0,54,0,0,0,55,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,152,0,0,0,56,0,0,0,57,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,168,0,0,0,58,0,0,0,59,0,0,0,18,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,216,0,0,0,60,0,0,0,61,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,62,0,0,0,63,0,0,0,20,0,0,0,21,0,0,0,0,0,0,0,16,1,0,0,64,0,0,0,65,0,0,0,22,0,0,0,23,0,0,0,0,0,0,0,32,1,0,0,66,0,0,0,67,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,48,1,0,0,68,0,0,0,69,0,0,0,26,0,0,0,27,0,0,0,0,0,0,0,160,1,0,0,70,0,0,0,71,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,24,2,0,0,72,0,0,0,73,0,0,0,5,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,0,0,0,0,40,2,0,0,74,0,0,0,75,0,0,0,18,0,0,0,0,0,0,0,64,2,0,0,76,0,0,0,77,0,0,0,19,0,0,0,2,0,0,0,0,0,0,0,80,2,0,0,78,0,0,0,79,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,104,2,0,0,80,0,0,0,81,0,0,0,7,0,0,0,0,0,0,0,128,2,0,0,82,0,0,0,83,0,0,0,8,0,0,0,0,0,0,0,160,2,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,2,0,0,0,9,0,0,0,28,0,0,0,0,0,0,0,208,2,0,0,84,0,0,0,88,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,3,0,0,0,10,0,0,0,29,0,0,0,0,0,0,0,224,2,0,0,84,0,0,0,89,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,4,0,0,0,11,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,1,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,88,146,0,0,200,146,0,0,56,147,0,0,56,147,0,0,120,187,0,0,168,155,0,0,168,149,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,9,0,0,0,159,219,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,9,0,0,0,151,215,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,9,0,0,0,143,211,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+35640);allocate([1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+39844);allocate([240,2,0,0,90,0,0,0,91,0,0,0,20,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,14,0,0,0,20,0,0,0,0,0,0,0,0,3,0,0,90,0,0,0,92,0,0,0,21,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,16,0,0,0,21,0,0,0,15,0,0,0,22,0,0,0,0,0,0,0,16,3,0,0,93,0,0,0,94,0,0,0,22,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,17,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,32,3,0,0,93,0,0,0,95,0,0,0,23,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,19,0,0,0,20,0,0,0,25,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,56,3,0,0,96,0,0,0,97,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,3,0,0,93,0,0,0,98,0,0,0,17,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,160,3,0,0,90,0,0,0,99,0,0,0,24,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,15,0,0,0,22,0,0,0,8,0,0,0,0,0,0,0,168,3,0,0,100,0,0,0,101,0,0,0,248,255,255,255,248,255,255,255,168,3,0,0,102,0,0,0,103,0,0,0,8,0,0,0,0,0,0,0,192,3,0,0,104,0,0,0,105,0,0,0,248,255,255,255,248,255,255,255,192,3,0,0,106,0,0,0,107,0,0,0,4,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,252,255,255,255,252,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,4,0,0,0,0,0,0,0,240,3,0,0,108,0,0,0,109,0,0,0,252,255,255,255,252,255,255,255,240,3,0,0,110,0,0,0,111,0,0,0,0,0,0,0,96,3,0,0,112,0,0,0,113,0,0,0,7,0,0,0,0,0,0,0,112,3,0,0,114,0,0,0,115,0,0,0,0,0,0,0,8,4,0,0,72,0,0,0,116,0,0,0,21,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,117,0,0,0,118,0,0,0,119,0,0,0,1,0,0,0,33,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,5,0,0,120,0,0,0,121,0,0,0,119,0,0,0,2,0,0,0,34,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,5,0,0,122,0,0,0,123,0,0,0,119,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,5,0,0,124,0,0,0,125,0,0,0,119,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,5,0,0,126,0,0,0,127,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,23,0,0,0,5,0,0,0,24,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,5,0,0,128,0,0,0,129,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,26,0,0,0,3,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,5,0,0,130,0,0,0,131,0,0,0,119,0,0,0,22,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,248,255,255,255,224,5,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,6,0,0,132,0,0,0,133,0,0,0,119,0,0,0,30,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,2,0,0,0,248,255,255,255,8,6,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,6,0,0,134,0,0,0,135,0,0,0,119,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,6,0,0,136,0,0,0,137,0,0,0,119,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,6,0,0,138,0,0,0,139,0,0,0,119,0,0,0,38,0,0,0,39,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,40,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,6,0,0,140,0,0,0,141,0,0,0,119,0,0,0,41,0,0,0,42,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,43,0,0,0,35,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,6,0,0,142,0,0,0,143,0,0,0,119,0,0,0,44,0,0,0,45,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,46,0,0,0,41,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,6,0,0,144,0,0,0,145,0,0,0,119,0,0,0,47,0,0,0,48,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,49,0,0,0,47,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,6,0,0,146,0,0,0,147,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,7,0,0,148,0,0,0,149,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,7,0,0,150,0,0,0,151,0,0,0,119,0,0,0,1,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,7,0,0,152,0,0,0,153,0,0,0,119,0,0,0,2,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,7,0,0,154,0,0,0,155,0,0,0,119,0,0,0,19,0,0,0,7,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,7,0,0,156,0,0,0,157,0,0,0,119,0,0,0,20,0,0,0,8,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,4,0,0,158,0,0,0,159,0,0,0,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,5,0,0,160,0,0,0,161,0,0,0,119,0,0,0,27,0,0,0,21,0,0,0,28,0,0,0,22,0,0,0,29,0,0,0,9,0,0,0,23,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,4,0,0,162,0,0,0,163,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,12,0,0,0,50,0,0,0,51,0,0,0,13,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,5,0,0,164,0,0,0,165,0,0,0,119,0,0,0,53,0,0,0,54,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,0,0,0,0,80,5,0,0,166,0,0,0,167,0,0,0,119,0,0,0,55,0,0,0,56,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,0,0,0,0,32,4,0,0,168,0,0,0,169,0,0,0,119,0,0,0,0,0,0,0,48,4,0,0,168,0,0,0,170,0,0,0,119,0,0,0,24,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,30,0,0,0,25,0,0,0,31,0,0,0,26,0,0,0,32,0,0,0,13,0,0,0,27,0,0,0,14,0,0,0,0,0,0,0,80,4,0,0,168,0,0,0,171,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,15,0,0,0,57,0,0,0,58,0,0,0,16,0,0,0,59,0,0,0,0,0,0,0,112,4,0,0,168,0,0,0,172,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,17,0,0,0,60,0,0,0,61,0,0,0,18,0,0,0,62,0,0,0,0,0,0,0,144,4,0,0,168,0,0,0,173,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,176,4,0,0,168,0,0,0,174,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,192,4,0,0,168,0,0,0,175,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,37,0,0,0,89,0,0,0,45,0,0,0,37,0,0,0,109,0,0,0,45,0,0,0,37,0,0,0,100,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,0,0,0,114,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,102,0,0,0,97,0,0,0,108,0,0,0,115,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,110,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,114,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,117,0,0,0,114,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,114,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,99,0,0,0,104,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,105,0,0,0,108,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,101,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,121,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,117,0,0,0,115,0,0,0,116,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,116,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,111,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,77,0,0,0,0,0,0,0,80,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,97,0,0,0,32,0,0,0,37,0,0,0,98,0,0,0,32,0,0,0,37,0,0,0,100,0,0,0,32,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,32,2,32,2,32,2,32,2,32,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,96,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,213,8,213,8,213,8,213,8,213,8,213,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,4,192,4,192,4,192,4,192,4,192,4,192,8,214,8,214,8,214,8,214,8,214,8,214,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,4,192,4,192,4,192,4,192,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,119,83,116,114,101,97,109,32,111,114,32,114,97,119,68,97,116,97,32,110,101,101,100,115,32,116,111,32,114,101,102,101,114,101,110,99,101,32,116,111,32,115,111,109,101,116,104,105,110,103,0,119,105,100,116,104,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,104,101,105,103,104,116,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,98,105,116,115,112,101,114,115,97,109,112,108,101,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,50,44,32,49,54,93,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,110,101,101,100,115,32,116,111,32,98,101,32,115,101,116,32,116,111,32,97,32,118,97,108,117,101,32,111,102,32,123,78,111,110,101,44,32,83,97,109,112,108,101,44,32,76,105,110,101,125,0,99,111,109,112,111,110,101,110,116,115,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,50,53,53,93,0,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,119,105,116,104,32,116,104,101,32,111,116,104,101,114,32,112,97,114,97,109,101,116,101,114,115,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,110,111,116,32,98,101,32,115,101,116,32,116,111,32,83,97,109,112,108,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,52,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,32,111,110,108,121,32,98,101,32,115,101,116,32,116,111,32,78,111,110,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,49,0,67,111,108,111,114,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,0,78,111,32,109,111,114,101,32,98,121,116,101,115,32,97,118,97,105,108,97,98,108,101,32,105,110,32,105,110,112,117,116,32,98,117,102,102,101,114,44,32,115,116,105,108,108,32,110,101,101,100,101,100,105,110,103,32,0,65,110,32,111,100,100,32,110,117,109,98,101,114,32,111,102,32,98,121,116,101,115,32,40,0,41,32,99,97,110,110,111,116,32,98,101,32,115,119,97,112,112,101,100,46,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,69,0,49,49,80,114,111,99,101,115,115,76,105,110,101,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,105,110,103,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,57,98,97,115,105,99,95,111,115,116,114,105,110,103,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,116,69,69,0,50,50,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,83,116,114,101,97,109,0,50,53,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,67,111,109,112,111,110,101,110,116,0,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,104,69,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,67,104,97,114,76,83,32,101,114,114,111,114,0,99,104,97,114,108,115,0,49,53,99,104,97,114,108,115,95,99,97,116,101,103,111,114,121,0,112,97,114,97,109,115,46,88,116,104,117,109,98,110,97,105,108,32,105,115,32,62,32,48,32,98,117,116,32,112,97,114,97,109,115,46,116,104,117,109,98,110,97,105,108,32,61,61,32,110,117,108,108,95,112,116,114,0,49,55,74,112,101,103,77,97,114,107,101,114,83,101,103,109,101,110,116,0,49,49,74,112,101,103,83,101,103,109,101,110,116,0,50,48,74,112,101,103,73,109,97,103,101,68,97,116,97,83,101,103,109,101,110,116,0,69,120,112,101,99,116,101,100,32,74,80,69,71,32,77,97,114,107,101,114,32,115,116,97,114,116,32,98,121,116,101,32,48,120,70,70,32,98,117,116,32,116,104,101,32,98,121,116,101,32,118,97,108,117,101,32,119,97,115,32,48,120,0,74,80,69,71,32,101,110,99,111,100,105,110,103,32,119,105,116,104,32,109,97,114,107,101,114,32,0,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,46,0,85,110,107,110,111,119,110,32,74,80,69,71,32,109,97,114,107,101,114,32,0,32,101,110,99,111,117,110,116,101,114,101,100,46,0,109,114,102,120,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,49,51,114,117,110,116,105,109,101,95,101,114,114,111,114,0,83,116,57,116,121,112,101,95,105,110,102,111,0,83,116,56,98,97,100,95,99,97,115,116,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,115,116,100,58,58,98,97,100,95,99,97,115,116,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+42396);allocate([32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,80,79,83,73,88],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+52636);allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,119,69,69,0,117,110,115,117,112,112,111,114,116,101,100,32,108,111,99,97,108,101,32,102,111,114,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,52,95,95,115,104,97,114,101,100,95,99,111,117,110,116,69,0,78,83,116,51,95,95,49,49,50,115,121,115,116,101,109,95,101,114,114,111,114,69,0,78,83,116,51,95,95,49,49,52,101,114,114,111,114,95,99,97,116,101,103,111,114,121,69,0,78,83,116,51,95,95,49,49,50,95,95,100,111,95,109,101,115,115,97,103,101,69,0,58,32,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,55,102,97,105,108,117,114,101,69,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,57,95,95,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,69,0,105,111,115,95,98,97,115,101,58,58,99,108,101,97,114,0,105,111,115,116,114,101,97,109,0,117,110,115,112,101,99,105,102,105,101,100,32,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,65,66,67,68,69,70,120,88,43,45,112,80,105,73,110,78,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,102,97,99,101,116,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,119,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,99,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,115,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,105,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,49,54,95,95,110,97,114,114,111,119,95,116,111,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,49,55,95,95,119,105,100,101,110,95,102,114,111,109,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,119,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,95,95,105,109,112,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,99,69,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,119,69,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,119,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,49,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,49,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,99,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,119,69,69,0,37,112,0,67,0,37,0,0,0,0,0,108,0,108,108,0,0,76,0,37,112,0,0,0,0,37,72,58,37,77,58,37,83,37,109,47,37,100,47,37,121,37,89,45,37,109,45,37,100,37,73,58,37,77,58,37,83,32,37,112,37,72,58,37,77,37,72,58,37,77,58,37,83,108,111,99,97,108,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,48,49,50,51,52,53,54,55,56,57,0,37,76,102,0,109,111,110,101,121,95,103,101,116,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,0,37,46,48,76,102,0,116,114,117,101,0,102,97,108,115,101,0,83,117,110,100,97,121,0,77,111,110,100,97,121,0,84,117,101,115,100,97,121,0,87,101,100,110,101,115,100,97,121,0,84,104,117,114,115,100,97,121,0,70,114,105,100,97,121,0,83,97,116,117,114,100,97,121,0,83,117,110,0,77,111,110,0,84,117,101,0,87,101,100,0,84,104,117,0,70,114,105,0,83,97,116,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,77,97,114,99,104,0,65,112,114,105,108,0,77,97,121,0,74,117,110,101,0,74,117,108,121,0,65,117,103,117,115,116,0,83,101,112,116,101,109,98,101,114,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,68,101,99,101,109,98,101,114,0,74,97,110,0,70,101,98,0,77,97,114,0,65,112,114,0,74,117,110,0,74,117,108,0,65,117,103,0,83,101,112,0,79,99,116,0,78,111,118,0,68,101,99,0,65,77,0,80,77,0,37,109,47,37,100,47,37,121,0,37,72,58,37,77,58,37,83,0,37,97,32,37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,37,73,58,37,77,58,37,83,32,37,112,0,78,83,116,51,95,95,49,49,51,109,101,115,115,97,103,101,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,95,95,116,105,109,101,95,112,117,116,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,119,69,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,99,69,69,0,78,83,116,51,95,95,49,57,116,105,109,101,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,112,117,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,103,101,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,50,99,111,100,101,99,118,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,99,116,121,112,101,95,98,97,115,101,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+56215);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function _atexit(func,arg){__ATEXIT__.unshift({func:func,arg:arg})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}Module["_i64Subtract"]=_i64Subtract;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}Module["_memset"]=_memset;var _BDtoILow=true;var _emscripten_resume=true;function ___gxx_personality_v0(){}var _emscripten_landingpad=true;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?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(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.length0?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){return leadingNulls(date.tm_hour<13?date.tm_hour:date.tm_hour-12,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<13){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()=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 _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _abort(){Module["abort"]()}function _free(){}Module["_free"]=_free;function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){if(___cxa_end_catch.rethrown){___cxa_end_catch.rethrown=false;return}asm["setThrew"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}var _fabs=Math_abs;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}var PATH=undefined;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(){setTimeout(Browser.mainLoop.runner,value)};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(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}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 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();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("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((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId0)_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=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);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===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&&canvas.requestPointerLock){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};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}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){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;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["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}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);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),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}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),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+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}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>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Add"]=_i64Add;Module["_bitshift64Lshr"]=_bitshift64Lshr;function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}var _BDtoIHigh=true;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_cond_broadcast(){return 0}function ___cxa_guard_acquire(variable){if(!HEAP8[variable>>0]){HEAP8[variable>>0]=1;return 1}return 0}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function ___cxa_guard_release(){}function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _llvm_eh_typeid_for(type){return type}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;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 _pthread_mutex_lock(){}var _emscripten_postinvoke=true;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_bitshift64Shl"]=_bitshift64Shl;function ___cxa_guard_abort(){}Module["_memmove"]=_memmove;var _emscripten_preinvoke=true;var _BItoD=true;function _pthread_cond_wait(){return 0}function ___cxa_rethrow(){___cxa_end_catch.rethrown=true;var ptr=EXCEPTIONS.caught.pop();EXCEPTIONS.last=ptr;throw ptr}function _pthread_mutex_unlock(){}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer)___syscall146.buffer=[];var buffer=___syscall146.buffer;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j2147483648)return false;i=new a(newBuffer);j=new b(newBuffer);k=new c(newBuffer);l=new d(newBuffer);m=new e(newBuffer);n=new f(newBuffer);o=new g(newBuffer);p=new h(newBuffer);buffer=newBuffer;return true} -// EMSCRIPTEN_START_FUNCS -function dc(a){a=a|0;var b=0;b=r;r=r+a|0;r=r+15&-16;return b|0}function ec(){return r|0}function fc(a){a=a|0;r=a}function gc(a,b){a=a|0;b=b|0;r=a;s=b}function hc(a,b){a=a|0;b=b|0;if(!x){x=a;y=b}}function ic(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0]}function jc(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0];i[t+4>>0]=i[a+4>>0];i[t+5>>0]=i[a+5>>0];i[t+6>>0]=i[a+6>>0];i[t+7>>0]=i[a+7>>0]}function kc(a){a=a|0;M=a}function lc(){return M|0}function mc(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;v=r;r=r+128|0;n=v+44|0;q=v+8|0;j=v+4|0;m=v;o=c+4|0;p=c+8|0;x=0;Ja(35,k[c>>2]|0,k[o>>2]|0,k[p>>2]|0,d|0);l=x;x=0;if(!(l&1)){g=n;f=g+84|0;do{k[g>>2]=k[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(f|0));d=n+12|0;if((k[d>>2]|0)==0?(h=ia(((k[n+8>>2]|0)+7|0)/8|0,k[n>>2]|0)|0,k[d>>2]=h,(k[n+24>>2]|0)!=0):0){l=ia(k[n+16>>2]|0,h)|0;k[d>>2]=l}x=0;qa(176,q|0);l=x;x=0;if(!(l&1)){d=n+56|0;do if(k[d>>2]|0){x=0;d=ta(66,d|0)|0;l=x;x=0;if(!(l&1)){k[j>>2]=d;f=q+28|0;g=k[f>>2]|0;if(g>>>0<(k[q+32>>2]|0)>>>0){k[g>>2]=d;k[f>>2]=g+4;k[j>>2]=0;s=19;break}x=0;ra(57,q+24|0,j|0);l=x;x=0;if(l&1){f=Wa(824,0)|0;d=M;g=k[j>>2]|0;k[j>>2]=0;if(!g)break;Lb[k[(k[g>>2]|0)+4>>2]&255](g);break}else{d=k[j>>2]|0;k[j>>2]=0;if(!d){s=19;break}Lb[k[(k[d>>2]|0)+4>>2]&255](d);s=19;break}}else s=15}else s=19;while(0);a:do if((s|0)==19){g=n+4|0;h=n+8|0;j=n+16|0;x=0;d=Ea(14,k[n>>2]|0,k[g>>2]|0,k[h>>2]|0,k[j>>2]|0)|0;l=x;x=0;if(!(l&1)){k[m>>2]=d;l=q+28|0;f=k[l>>2]|0;do if(f>>>0>=(k[q+32>>2]|0)>>>0){x=0;ra(57,q+24|0,m|0);f=x;x=0;if(f&1){f=Wa(824,0)|0;d=M;g=k[m>>2]|0;k[m>>2]=0;if(!g)break a;Lb[k[(k[g>>2]|0)+4>>2]&255](g);break a}else{d=k[m>>2]|0;k[m>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}}else{k[f>>2]=d;k[l>>2]=f+4;k[m>>2]=0}while(0);d=k[n+28>>2]|0;if((d|0)!=0?(x=0,ra(58,q|0,d|0),s=x,x=0,s&1):0){s=15;break}b:do if(!(k[n+24>>2]|0)){d=ia(k[g>>2]|0,k[n>>2]|0)|0;d=ia(d,((k[h>>2]|0)+7|0)/8|0)|0;if((k[j>>2]|0)>0){g=0;while(1){x=0;Fa(4,q|0,c|0,n|0);s=x;x=0;if(s&1)break;f=k[o>>2]|0;if(f){k[o>>2]=f+d;k[p>>2]=(k[p>>2]|0)-d}g=g+1|0;if((g|0)>=(k[j>>2]|0))break b}f=Wa(824,0)|0;d=M;s=16;break a}}else{x=0;Fa(4,q|0,c|0,n|0);s=x;x=0;if(s&1){s=15;break a}}while(0);x=0;Aa(33,q|0,a|0)|0;s=x;x=0;if(!(s&1)){k[b>>2]=k[q+16>>2];if(e)i[e>>0]=0;g=q+24|0;d=k[g>>2]|0;if(d){f=k[l>>2]|0;if((f|0)!=(d|0)){do{e=f+-4|0;k[l>>2]=e;f=k[e>>2]|0;k[e>>2]=0;if(f)Lb[k[(k[f>>2]|0)+4>>2]&255](f);f=k[l>>2]|0}while((f|0)!=(d|0));d=k[g>>2]|0}mj(d)}e=0;r=v;return e|0}else s=15}else s=15}while(0);if((s|0)==15){f=Wa(824,0)|0;d=M;s=16}l=q+24|0;g=k[l>>2]|0;if(g){j=q+28|0;h=k[j>>2]|0;if((h|0)!=(g|0)){do{q=h+-4|0;k[j>>2]=q;h=k[q>>2]|0;k[q>>2]=0;if(h)Lb[k[(k[h>>2]|0)+4>>2]&255](h);h=k[j>>2]|0}while((h|0)!=(g|0));g=k[l>>2]|0}mj(g)}}else s=5}else s=5;if((s|0)==5){f=Wa(824,0)|0;d=M}q=(d|0)==(ab(824)|0);h=cb(f|0)|0;d=(e|0)==0;if(!q){if(!d)i[e>>0]=0;eb();e=14;r=v;return e|0}g=h+12|0;do if(!d){d=k[g>>2]|0;x=0;f=Da(1)|0;q=x;x=0;if(!(q&1))if((d|0)==(f|0)){wl(e,Ob[k[(k[h>>2]|0)+8>>2]&127](h)|0)|0;s=60;break}else{i[e>>0]=0;s=60;break}}else s=60;while(0);if((s|0)==60?(t=k[g>>2]|0,x=0,u=Da(1)|0,e=x,x=0,!(e&1)):0){e=(t|0)==(u|0)?k[h+8>>2]|0:13;eb();r=v;return e|0}d=Wa()|0;x=0;Ga(3);v=x;x=0;if(v&1){v=Wa(0)|0;oc(v)}else fb(d|0);return 0}function nc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;j=r;r=r+112|0;f=j+96|0;i=j+84|0;l=j+72|0;m=j+60|0;n=j+48|0;o=j+36|0;p=j+24|0;q=j+12|0;s=j;h=(b|0)==0;if((a|0)==0&h){e=Va(16)|0;x=0;Fa(5,f|0,48504,52);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,f|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(f);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}g=k[d>>2]|0;if((g+-1|0)>>>0>65534){e=Va(16)|0;x=0;Fa(5,i|0,48557,41);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,i|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(i);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}f=k[d+4>>2]|0;if((f+-1|0)>>>0>65534){e=Va(16)|0;x=0;Fa(5,l|0,48599,42);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,l|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(l);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}e=k[d+8>>2]|0;if((e+-2|0)>>>0>14){e=Va(16)|0;x=0;Fa(5,m|0,48642,46);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,m|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(m);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}a=k[d+24>>2]|0;if(a>>>0>=3){e=Va(16)|0;x=0;Fa(5,n|0,48689,65);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,n|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(n);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}b=k[d+16>>2]|0;if((b+-1|0)>>>0>254){e=Va(16)|0;x=0;Fa(5,o|0,48755,44);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,o|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(o);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}if(!h?(o=ia(f,g)|0,(ia(ia(o,(e|0)>8?2:1)|0,b)|0)>>>0>c>>>0):0){e=Va(16)|0;x=0;Fa(5,p|0,48800,58);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,p|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(p);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}switch(b|0){case 4:{if((a|0)!=2){r=j;return}e=Va(16)|0;x=0;Fa(5,q|0,48859,73);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,q|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(q);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}case 3:{r=j;return}default:{if(!a){r=j;return}e=Va(16)|0;x=0;Fa(5,s|0,48933,73);q=x;x=0;if(!(q&1)){x=0;b=Da(1)|0;q=x;x=0;if(!(q&1)?(x=0,Ja(36,e|0,1,b|0,s|0),q=x,x=0,!(q&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(s);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}}}function oc(a){a=a|0;cb(a|0)|0;tj()}function pc(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,j=0,l=0,m=0;m=r;r=r+128|0;f=m+116|0;g=m;x=0;k[f>>2]=k[b>>2];k[f+4>>2]=k[b+4>>2];k[f+8>>2]=k[b+8>>2];ra(59,g|0,f|0);e=x;x=0;if(!(e&1)){if(c){e=g+16|0;b=e+84|0;do{k[e>>2]=k[c>>2];e=e+4|0;c=c+4|0}while((e|0)<(b|0))}x=0;k[f>>2]=k[a>>2];k[f+4>>2]=k[a+4>>2];k[f+8>>2]=k[a+8>>2];ra(60,g|0,f|0);g=x;x=0;if(!(g&1)){if(d)i[d>>0]=0;l=0;r=m;return l|0}}a=Wa(824,0)|0;g=M;g=(g|0)==(ab(824)|0);a=cb(a|0)|0;b=(d|0)==0;if(!g){if(!b)i[d>>0]=0;eb();l=14;r=m;return l|0}e=a+12|0;do if(!b){b=k[e>>2]|0;x=0;c=Da(1)|0;g=x;x=0;if(!(g&1))if((b|0)==(c|0)){wl(d,Ob[k[(k[a>>2]|0)+8>>2]&127](a)|0)|0;l=10;break}else{i[d>>0]=0;l=10;break}}else l=10;while(0);if((l|0)==10?(h=k[e>>2]|0,x=0,j=Da(1)|0,l=x,x=0,!(l&1)):0){l=(h|0)==(j|0)?k[a+8>>2]|0:13;eb();r=m;return l|0}b=Wa()|0;x=0;Ga(3);m=x;x=0;if(m&1){m=Wa(0)|0;oc(m)}else fb(b|0);return 0}function qc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=r;r=r+128|0;e=j+116|0;d=j;x=0;k[e>>2]=k[a>>2];k[e+4>>2]=k[a+4>>2];k[e+8>>2]=k[a+8>>2];ra(59,d|0,e|0);e=x;x=0;if((!(e&1)?(x=0,qa(177,d|0),e=x,x=0,!(e&1)):0)?(x=0,ra(61,d|0,1),e=x,x=0,!(e&1)):0){a=d+16|0;d=b+84|0;do{k[b>>2]=k[a>>2];b=b+4|0;a=a+4|0}while((b|0)<(d|0));if(c)i[c>>0]=0;c=0;r=j;return c|0}e=Wa(824,0)|0;b=M;b=(b|0)==(ab(824)|0);e=cb(e|0)|0;a=(c|0)==0;if(!b){if(!a)i[c>>0]=0;eb();c=14;r=j;return c|0}b=e+12|0;do if(!a){a=k[b>>2]|0;x=0;d=Da(1)|0;l=x;x=0;if(!(l&1))if((a|0)==(d|0)){wl(c,Ob[k[(k[e>>2]|0)+8>>2]&127](e)|0)|0;h=13;break}else{i[c>>0]=0;h=13;break}}else h=13;while(0);if((h|0)==13?(f=k[b>>2]|0,x=0,g=Da(1)|0,l=x,x=0,!(l&1)):0){l=(f|0)==(g|0)?k[e+8>>2]|0:13;eb();r=j;return l|0}a=Wa()|0;x=0;Ga(3);l=x;x=0;if(l&1){l=Wa(0)|0;oc(l)}else fb(a|0);return 0}function rc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,l=0,m=0;m=r;r=r+48|0;i=m+36|0;h=m+24|0;j=m+12|0;l=m;if(!((a|0)!=0&(c|0)!=0&(d|0)!=0&(f|0)!=0)){e=1;r=m;return e|0}k[j>>2]=0;k[j+4>>2]=a;k[j+8>>2]=b;k[l>>2]=0;k[l+4>>2]=d;k[l+8>>2]=e;k[h>>2]=k[j>>2];k[h+4>>2]=k[j+4>>2];k[h+8>>2]=k[j+8>>2];k[i>>2]=k[l>>2];k[i+4>>2]=k[l+4>>2];k[i+8>>2]=k[l+8>>2];e=mc(h,c,i,f,g)|0;r=m;return e|0}function sc(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;e=r;r=r+32|0;f=e+12|0;g=e;h=g;k[h>>2]=0;k[h+4>>2]=0;k[g+4>>2]=a;k[g+8>>2]=b;k[f>>2]=k[g>>2];k[f+4>>2]=k[g+4>>2];k[f+8>>2]=k[g+8>>2];c=qc(f,c,d)|0;r=e;return c|0}function tc(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,l=0;g=r;r=r+48|0;h=g+36|0;i=g+24|0;l=g+12|0;j=g;k[l>>2]=0;k[l+4>>2]=a;k[l+8>>2]=b;k[j>>2]=0;k[j+4>>2]=c;k[j+8>>2]=d;k[i>>2]=k[l>>2];k[i+4>>2]=k[l+4>>2];k[i+8>>2]=k[l+8>>2];k[h>>2]=k[j>>2];k[h+4>>2]=k[j+4>>2];k[h+8>>2]=k[j+8>>2];d=pc(i,h,e,f)|0;r=g;return d|0}function uc(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,l=0;j=a+4|0;c=k[a>>2]|0;e=((k[j>>2]|0)-c>>2)+1|0;if(e>>>0>1073741823){jj(a);c=k[a>>2]|0}l=a+8|0;d=(k[l>>2]|0)-c|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?e:d;c=(k[j>>2]|0)-c>>2;if(!d){f=0;g=0}else h=6}else{d=1073741823;c=(k[j>>2]|0)-c>>2;h=6}if((h|0)==6){f=d;g=lj(d<<2)|0}e=g+(c<<2)|0;d=e;i=g+(f<<2)|0;h=k[b>>2]|0;k[b>>2]=0;k[e>>2]=h;h=g+(c+1<<2)|0;g=k[a>>2]|0;c=k[j>>2]|0;if((c|0)==(g|0)){e=a;f=j}else{do{c=c+-4|0;b=k[c>>2]|0;k[c>>2]=0;k[e+-4>>2]=b;e=d+-4|0;d=e}while((c|0)!=(g|0));c=d;e=a;f=j;d=c;g=k[a>>2]|0;c=k[j>>2]|0}k[e>>2]=d;k[f>>2]=h;k[l>>2]=i;e=g;if((c|0)!=(e|0))do{c=c+-4|0;d=k[c>>2]|0;k[c>>2]=0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d)}while((c|0)!=(e|0));if(!g)return;mj(g);return}function vc(){if(i[8]|0)return 35648;if(!(Qa(8)|0))return 35648;tb(72,35648,w|0)|0;Ya(8);return 35648}function wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+32|0;j=m;Oi(j,(1<>2]|0;l=f+1|0;c=l<<1;k[a>>2]=0;g=a+4|0;k[g>>2]=0;k[a+8>>2]=0;a:do if(l){if(!((f|0)<-1?(x=0,qa(178,a|0),h=x,x=0,h&1):0))d=4;if((d|0)==4?(x=0,e=ta(67,c|0)|0,h=x,x=0,!(h&1)):0){k[g>>2]=e;k[a>>2]=e;k[a+8>>2]=e+c;b=e;while(1){i[b>>0]=0;b=(k[g>>2]|0)+1|0;k[g>>2]=b;c=c+-1|0;if(!c)break a}}c=Wa()|0;b=k[a>>2]|0;if(!b)fb(c|0);if((k[g>>2]|0)!=(b|0))k[g>>2]=b;mj(b);fb(c|0)}while(0);b=~f;if((f|0)<(b|0)){r=m;return}g=j+12|0;h=j+8|0;f=j+4|0;e=b;do{b=k[g>>2]|0;if((e|0)>(0-b|0)){c=k[h>>2]|0;if((e|0)>(0-c|0)){d=k[f>>2]|0;if((e|0)>(0-d|0))if((e|0)>=0)if((e|0)>0)if((d|0)<=(e|0))if((c|0)>(e|0))b=2;else b=(b|0)>(e|0)?3:4;else b=1;else b=0;else b=-1;else b=-2}else b=-3}else b=-4;i[(k[a>>2]|0)+(e+l)>>0]=b;e=e+1|0}while((e|0)<(l|0));r=m;return}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;p=k[c+16>>2]|0;switch(p|0){case 64:case 0:{x=0;a=Aa(34,a|0,b|0)|0;b=x;x=0;if(b&1)q=16;else d=a;break}default:{e=(1<>2])+-1|0;o=k[b+20>>2]|0;n=o<<1;n=((n+e|0)/(n|1|0)|0)+1|0;a=0;while(1)if((1<>2]|0;x=0;d=ta(67,4624)|0;m=x;x=0;if(m&1)q=16;else{f=((g|0)<8?8:g)+g<<1;h=d+4|0;l=b;m=h+84|0;do{k[h>>2]=k[l>>2];h=h+4|0;l=l+4|0}while((h|0)<(m|0));h=d+88|0;m=h+40|0;do{k[h>>2]=0;h=h+4|0}while((h|0)<(m|0));k[d>>2]=35660;k[d+128>>2]=e;k[d+132>>2]=n;k[d+136>>2]=o;k[d+140>>2]=a;k[d+144>>2]=g;k[d+148>>2]=f;k[d+152>>2]=p;a=d+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+172>>2]=k[b>>2];k[d+176>>2]=0;k[d+180>>2]=0;k[d+184>>2]=0;a=d+4568|0;e=d+188|0;do{k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;j[e+10>>1]=1;e=e+12|0}while((e|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1}}}if((q|0)==16){q=Wa()|0;fb(q|0)}if(!d)return d|0;x=0;ra(k[(k[d>>2]|0)+12>>2]|0,d|0,c|0);q=x;x=0;if(!(q&1))return d|0;a=Wa()|0;if(!d){q=a;fb(q|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);q=a;fb(q|0);return 0}function yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0;c=(k[b+24>>2]|0)==2;if(c?(k[b+16>>2]|0)!=3:0){b=0;return b|0}n=k[b+20>>2]|0;a=k[b+8>>2]|0;a:do if(!n){if(c){if((a|0)!=8)break;d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35688;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}switch(a|0){case 8:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35716;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}case 12:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35744;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}case 16:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35772;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}default:break a}}while(0);m=(1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35800;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35660;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}}if((a|0)>=17){b=0;return b|0}f=n<<1;f=((f+m|0)/(f|1|0)|0)+1|0;if(c){a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35828;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35856;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}return 0}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;p=k[c+16>>2]|0;switch(p|0){case 64:case 0:{x=0;a=Aa(35,a|0,b|0)|0;b=x;x=0;if(b&1)q=16;else d=a;break}default:{e=(1<>2])+-1|0;o=k[b+20>>2]|0;n=o<<1;n=((n+e|0)/(n|1|0)|0)+1|0;a=0;while(1)if((1<>2]|0;x=0;d=ta(67,4632)|0;m=x;x=0;if(m&1)q=16;else{f=((g|0)<8?8:g)+g<<1;k[d+4>>2]=0;h=d+8|0;l=b;m=h+84|0;do{k[h>>2]=k[l>>2];h=h+4|0;l=l+4|0}while((h|0)<(m|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;m=d+116|0;k[m>>2]=0;k[m+4>>2]=0;k[m+8>>2]=0;k[m+12>>2]=0;k[m+16>>2]=0;k[d>>2]=35884;k[d+136>>2]=e;k[d+140>>2]=n;k[d+144>>2]=o;k[d+148>>2]=a;k[d+152>>2]=g;k[d+156>>2]=f;k[d+160>>2]=p;a=d+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+180>>2]=k[b>>2];k[d+184>>2]=0;k[d+188>>2]=0;k[d+192>>2]=0;a=d+4576|0;e=d+196|0;do{k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;j[e+10>>1]=1;e=e+12|0}while((e|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1}}}if((q|0)==16){q=Wa()|0;fb(q|0)}if(!d)return d|0;x=0;ra(k[(k[d>>2]|0)+8>>2]|0,d|0,c|0);q=x;x=0;if(!(q&1))return d|0;a=Wa()|0;if(!d){q=a;fb(q|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);q=a;fb(q|0);return 0}function Ac(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0;c=(k[b+24>>2]|0)==2;if(c?(k[b+16>>2]|0)!=3:0){b=0;return b|0}n=k[b+20>>2]|0;a=k[b+8>>2]|0;a:do if(!n){if(c){if((a|0)!=8)break;d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35912;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}switch(a|0){case 8:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35940;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}case 12:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35968;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}case 16:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35996;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}default:break a}}while(0);m=(1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36024;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=35884;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}}if((a|0)>=17){b=0;return b|0}f=n<<1;f=((f+m|0)/(f|1|0)|0)+1|0;if(c){a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36052;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36080;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}return 0}function Bc(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0;a=2832;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=4880);sw(2832,0,2048)|0;a=0;do{g=2832+(a+128<<3)|0;k[g>>2]=0;k[g+4>>2]=1;a=a+1|0}while((a|0)!=128);a=3088;k[a>>2]=1;k[a+4>>2]=3;a=3096;k[a>>2]=1;k[a+4>>2]=3;a=3104;k[a>>2]=1;k[a+4>>2]=3;a=3112;k[a>>2]=1;k[a+4>>2]=3;a=3120;k[a>>2]=1;k[a+4>>2]=3;a=3128;k[a>>2]=1;k[a+4>>2]=3;a=3136;k[a>>2]=1;k[a+4>>2]=3;a=3144;k[a>>2]=1;k[a+4>>2]=3;a=3152;k[a>>2]=1;k[a+4>>2]=3;a=3160;k[a>>2]=1;k[a+4>>2]=3;a=3168;k[a>>2]=1;k[a+4>>2]=3;a=3176;k[a>>2]=1;k[a+4>>2]=3;a=3184;k[a>>2]=1;k[a+4>>2]=3;a=3192;k[a>>2]=1;k[a+4>>2]=3;a=3200;k[a>>2]=1;k[a+4>>2]=3;a=3208;k[a>>2]=1;k[a+4>>2]=3;a=3216;k[a>>2]=1;k[a+4>>2]=3;a=3224;k[a>>2]=1;k[a+4>>2]=3;a=3232;k[a>>2]=1;k[a+4>>2]=3;a=3240;k[a>>2]=1;k[a+4>>2]=3;a=3248;k[a>>2]=1;k[a+4>>2]=3;a=3256;k[a>>2]=1;k[a+4>>2]=3;a=3264;k[a>>2]=1;k[a+4>>2]=3;a=3272;k[a>>2]=1;k[a+4>>2]=3;a=3280;k[a>>2]=1;k[a+4>>2]=3;a=3288;k[a>>2]=1;k[a+4>>2]=3;a=3296;k[a>>2]=1;k[a+4>>2]=3;a=3304;k[a>>2]=1;k[a+4>>2]=3;a=3312;k[a>>2]=1;k[a+4>>2]=3;a=3320;k[a>>2]=1;k[a+4>>2]=3;a=3328;k[a>>2]=1;k[a+4>>2]=3;a=3336;k[a>>2]=1;k[a+4>>2]=3;a=2896;k[a>>2]=2;k[a+4>>2]=5;a=2904;k[a>>2]=2;k[a+4>>2]=5;a=2912;k[a>>2]=2;k[a+4>>2]=5;a=2920;k[a>>2]=2;k[a+4>>2]=5;a=2928;k[a>>2]=2;k[a+4>>2]=5;a=2936;k[a>>2]=2;k[a+4>>2]=5;a=2944;k[a>>2]=2;k[a+4>>2]=5;a=2952;k[a>>2]=2;k[a+4>>2]=5;a=2848;k[a>>2]=3;k[a+4>>2]=7;a=2856;k[a>>2]=3;k[a+4>>2]=7;a=0;do{g=2832+(a+64<<3)|0;k[g>>2]=-1;k[g+4>>2]=2;a=a+1|0}while((a|0)!=64);a=2960;k[a>>2]=-2;k[a+4>>2]=4;a=2968;k[a>>2]=-2;k[a+4>>2]=4;a=2976;k[a>>2]=-2;k[a+4>>2]=4;a=2984;k[a>>2]=-2;k[a+4>>2]=4;a=2992;k[a>>2]=-2;k[a+4>>2]=4;a=3e3;k[a>>2]=-2;k[a+4>>2]=4;a=3008;k[a>>2]=-2;k[a+4>>2]=4;a=3016;k[a>>2]=-2;k[a+4>>2]=4;a=3024;k[a>>2]=-2;k[a+4>>2]=4;a=3032;k[a>>2]=-2;k[a+4>>2]=4;a=3040;k[a>>2]=-2;k[a+4>>2]=4;a=3048;k[a>>2]=-2;k[a+4>>2]=4;a=3056;k[a>>2]=-2;k[a+4>>2]=4;a=3064;k[a>>2]=-2;k[a+4>>2]=4;a=3072;k[a>>2]=-2;k[a+4>>2]=4;a=3080;k[a>>2]=-2;k[a+4>>2]=4;a=2864;k[a>>2]=-3;k[a+4>>2]=6;a=2872;k[a>>2]=-3;k[a+4>>2]=6;a=2880;k[a>>2]=-3;k[a+4>>2]=6;a=2888;k[a>>2]=-3;k[a+4>>2]=6;a=2840;k[a>>2]=-4;k[a+4>>2]=8;a=4880;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=6928);sw(4880,0,2048)|0;c=2;a=0;e=0;f=0;while(1){c=c<<16>>16;b=8-c|0;d=1<>2]=e;k[g+4>>2]=c;b=b+1|0}while((b|0)<(d|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==7){b=2;e=1;f=-1;g=-1;break}else{c=(a>>1)+2|0;e=b>>16}}while(1){c=b<<16>>16;a=8-c|0;d=1<>2]=f;k[e+4>>2]=c;b=b+1|0}while((b|0)<(d|0))}a=(g<<16)+-65536|0;e=a>>31^a>>15;b=(e>>1)+2|0;if((b|0)>8){a=6928;break}else{f=a>>16;g=g+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=8976);sw(6928,0,2048)|0;e=3;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==12){e=3;b=1;d=-1;f=-1;break}else{e=(a>>2)+3|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>2)+3|0;if((e|0)>8){a=8976;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=11024);sw(8976,0,2048)|0;e=4;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==20){e=4;b=1;d=-1;f=-1;break}else{e=(a>>3)+4|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>3)+4|0;if((e|0)>8){a=11024;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=13072);sw(11024,0,2048)|0;e=5;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==32){e=5;b=1;d=-1;f=-1;break}else{e=(a>>4)+5|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>4)+5|0;if((e|0)>8){a=13072;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=15120);sw(13072,0,2048)|0;e=6;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==48){e=6;b=1;d=-1;f=-1;break}else{e=(a>>5)+6|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>5)+6|0;if((e|0)>8){a=15120;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=17168);sw(15120,0,2048)|0;e=7;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==64){e=7;b=1;d=-1;f=-1;break}else{e=(a>>6)+7|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>6)+7|0;if((e|0)>8){a=17168;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=19216);sw(17168,0,2048)|0;e=8;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==64){f=8;d=1;e=-1;g=-1;break}else{e=(a>>7)+8|0;d=b>>16}}while(1){a=8-f|0;c=1<>2]=e;k[d+4>>2]=f;b=b+1|0}while((b|0)<(c|0))}b=(g<<16)+-65536|0;d=b>>31^b>>15;a=d>>7;if((a|0)>0){a=19216;break}else{f=a+8|0;e=b>>16;g=g+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=21264);sw(19216,0,2048)|0;a=21264;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=23312);sw(21264,0,2048)|0;a=23312;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=25360);sw(23312,0,2048)|0;a=25360;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=27408);sw(25360,0,2048)|0;a=27408;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=29456);sw(27408,0,2048)|0;a=29456;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=31504);sw(29456,0,2048)|0;a=31504;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=33552);sw(31504,0,2048)|0;a=33552;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=35600);sw(33552,0,2048)|0;wc(35600,8);tb(179,35600,w|0)|0;wc(35612,10);tb(179,35612,w|0)|0;wc(35624,12);tb(179,35624,w|0)|0;wc(35636,16);tb(179,35636,w|0)|0;return}function Cc(a){a=a|0;var b=0;b=k[a>>2]|0;if(!b)return;a=a+4|0;if((k[a>>2]|0)!=(b|0))k[a>>2]=b;mj(b);return}function Dc(a){a=a|0;var b=0,c=0;k[a>>2]=36080;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Ec(a){a=a|0;var b=0,c=0;k[a>>2]=36080;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Fc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;re(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function Gc(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35856;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];ge(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;ge(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Hc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ic(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,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36460;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Jc(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,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36436;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Kc(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,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36412;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Lc(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,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36388;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Mc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=a+32|0;Tm(g,b)|0;f=a+44|0;k[f>>2]=0;h=a+48|0;e=k[h>>2]|0;if(e&8){b=i[g>>0]|0;if(!(b&1)){b=((b&255)>>>1)+(g+1)|0;k[f>>2]=b;c=g+1|0;d=g+1|0}else{b=(k[a+40>>2]|0)+(k[a+36>>2]|0)|0;k[f>>2]=b;d=k[a+40>>2]|0;c=d}k[a+8>>2]=c;k[a+12>>2]=d;k[a+16>>2]=b}if(!(e&16))return;b=i[g>>0]|0;if(!(b&1)){e=(b&255)>>>1;k[f>>2]=g+1+e;b=10;f=e}else{e=k[a+36>>2]|0;k[f>>2]=(k[a+40>>2]|0)+e;b=(k[g>>2]&-2)+-1|0;f=e}Wm(g,b,0);b=i[g>>0]|0;if(!(b&1)){e=g+1|0;d=(b&255)>>>1;c=g+1|0}else{c=k[a+40>>2]|0;e=c;d=k[a+36>>2]|0}b=a+24|0;k[b>>2]=c;k[a+20>>2]=c;k[a+28>>2]=e+d;if(!(k[h>>2]&3))return;k[b>>2]=c+f;return}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;g=o+16|0;n=o+8|0;h=o;x=0;ra(65,n|0,a|0);l=x;x=0;a:do if(l&1){c=Wa(0)|0;d=a;e=a}else{do if(i[n>>0]|0){d=k[(k[a>>2]|0)+-12>>2]|0;k[h>>2]=k[a+(d+24)>>2];j=a+d|0;l=k[a+(d+4)>>2]|0;e=b+c|0;d=a+(d+76)|0;c=k[d>>2]|0;do if((c|0)==-1){x=0;c=ta(68,j|0)|0;p=x;x=0;if(p&1)m=13;else{k[g>>2]=c;x=0;c=Aa(37,g|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(g);c=f<<24>>24;k[d>>2]=c;m=9;break}c=Wa(0)|0;Qs(g)}}else m=9;while(0);if((m|0)==9){x=0;k[g>>2]=k[h>>2];c=sa(39,g|0,b|0,((l&176|0)==32?e:b)|0,e|0,j|0,c&255|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break;else m=13}else m=13}if((m|0)==13)c=Wa(0)|0;ro(n);d=a;e=a;break a}while(0);ro(n);r=o;return a|0}while(0);cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();r=o;return a|0}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0);return 0}function Oc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=k[b+48>>2]|0;if(c&16){c=b+44|0;d=k[c>>2]|0;e=k[b+24>>2]|0;if(d>>>0>>0)k[c>>2]=e;else e=d;d=k[b+20>>2]|0;f=e-d|0;if(f>>>0>4294967279)ij(a);if(f>>>0<11){i[a>>0]=f<<1;c=a+1|0}else{b=f+16&-16;c=lj(b)|0;k[a+8>>2]=c;k[a>>2]=b|1;k[a+4>>2]=f}if((d|0)!=(e|0)){b=c;while(1){i[b>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(e|0))break;else b=b+1|0}c=c+f|0}i[c>>0]=0;return}if(!(c&8)){k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}d=k[b+8>>2]|0;b=k[b+16>>2]|0;f=b-d|0;if(f>>>0>4294967279)ij(a);if(f>>>0<11){i[a>>0]=f<<1;c=a+1|0}else{e=f+16&-16;c=lj(e)|0;k[a+8>>2]=c;k[a>>2]=e|1;k[a+4>>2]=f}if((d|0)!=(b|0)){e=c;while(1){i[e>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(b|0))break;else e=e+1|0}c=c+f|0}i[c>>0]=0;return}function Pc(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,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36364;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Qc(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,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36340;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Rc(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,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36316;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Sc(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36316;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Tc(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36316;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Uc(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,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;Zc(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Zc(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;Wc(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Xc(a,e,b,c,d);return}}function Wc(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,l=0,n=0,o=0,p=0;l=a+4|0;f=k[l>>2]|0;do if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{o=k[f>>2]|0;l=m[n+(b*6|0)+2>>1]<>1]<>1]<>1]=(l+49152+((a+e|0)>>>2)&65535)>>>o;j[c+(b*6|0)+2>>1]=a>>>o;j[c+(b*6|0)+4>>1]=e>>>o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{d=m[n+(b*6|0)+2>>1]<>1]<>1]<>1]=(d+49152+((a+o|0)>>>2)&65535)>>>f;j[c+(b+e<<1)>>1]=a>>>f;j[c+(b+h<<1)>>1]=o>>>f;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;l=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;p=m[n+(b<<3)+2>>1]<>1]<>1]<>1]=(p+49152+((d+a|0)>>>2)&65535)>>>f;j[c+(b+e<<1)>>1]=d>>>f;j[c+(b+h<<1)>>1]=a>>>f;j[c+(b+l<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}default:return}}function Xc(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Wc(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Wc(a,q,c,d,e);r=n;return}function Yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;e=r;r=r+176|0;c=e+152|0;j=e+16|0;g=e;if(!(b&1)){c=(b|0)/4|0;if((b|0)>3){d=0;do{j=a+(d<<2)|0;h=k[j>>2]|0;k[j>>2]=h>>>8&16711935|h<<8&-16711936;d=d+1|0}while((d|0)<(c|0))}if(!(b&3)){r=e;return}g=a+(b+-2)|0;j=a+(b+-1)|0;h=i[g>>0]|0;i[g>>0]=i[j>>0]|0;i[j>>0]=h;r=e;return}h=j+56|0;f=j+4|0;k[j>>2]=36160;k[h>>2]=36180;x=0;ra(62,j+56|0,f|0);e=x;x=0;if(e&1){j=Wa()|0;qn(h);fb(j|0)}k[j+128>>2]=0;k[j+132>>2]=-1;k[j>>2]=36200;k[j+56>>2]=36220;x=0;qa(180,f|0);e=x;x=0;do if(e&1)c=Wa()|0;else{k[f>>2]=36236;e=j+36|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[j+52>>2]=16;k[c>>2]=0;k[c+4>>2]=0;k[c+8>>2]=0;x=0;ra(63,f|0,c|0);a=x;x=0;if(a&1){j=Wa()|0;Sm(c);Sm(e);xn(f);c=j;break}Sm(c);x=0;c=va(28,j|0,49087,24)|0;a=x;x=0;if((!(a&1)?(x=0,d=Aa(36,c|0,b|0)|0,b=x,x=0,!(b&1)):0)?(x=0,va(28,d|0,49112,20)|0,b=x,x=0,!(b&1)):0){a=Va(16)|0;x=0;ra(64,g|0,f|0);b=x;x=0;if(!(b&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,a|0,1,35648,g|0);b=x;x=0;if(b&1)d=1;else{x=0;Fa(6,a|0,824,96);x=0;d=0}c=Wa()|0;Sm(g);if(!d){g=c;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}else c=Wa()|0;Ua(a|0);g=c;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}g=Wa()|0;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}while(0);j=c;qn(h);fb(j|0)}function Zc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=a+4|0;f=k[n>>2]|0;a:do switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{e=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>1]<>2)+16384|0;j[c+(a*6|0)>>1]=(g+32768+l&65535)>>>e;j[c+(a*6|0)+2>>1]=(l&65535)>>>e;j[c+(a*6|0)+4>>1]=(h+32768+l&65535)>>>e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{l=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>1]<>2)+16384|0;j[c+(a*6|0)>>1]=(q+32768+o&65535)>>>l;j[c+(a*6|0)+2>>1]=(o&65535)>>>l;j[c+(a*6|0)+4>>1]=(p+32768+o&65535)>>>l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{q=k[f>>2]|0;p=m[b+(g+e<<1)>>1]<>1]<>1]<>2)+16384|0;r=j[b+(g+a<<1)>>1]|0;t=ww((o&65535)>>>q&65535|0,0,16)|0;p=(p+32768+o&65535)>>>q|M;r=ww(r&65535|0,0,48)|0;r=t|(s+32768+o&65535)>>>q&65535|r;p=p&65535|M;q=c+(g<<3)|0;o=q;j[o>>1]=r;j[o+2>>1]=r>>>16;q=q+4|0;j[q>>1]=p;j[q+2>>1]=p>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){t=f+4|0;s=j[f>>1]|0;j[f>>1]=j[t>>1]|0;j[t>>1]=s;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function _c(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36340;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function $c(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36340;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function ad(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,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;ed(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;ed(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;cd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{dd(a,e,b,c,d);return}}function cd(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,l=0,n=0,o=0,p=0;l=a+4|0;f=k[l>>2]|0;do if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{e=k[f>>2]|0;l=m[n+(b*6|0)>>1]<>1]<>1]<>>1)&65535)>>>e&65535;j[c+(b*6|0)>>1]=(l+32768-a&65535)>>>e;j[c+(b*6|0)+2>>1]=(a&65535)>>>e;j[c+(b*6|0)+4>>1]=o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{d=m[n+(b*6|0)>>1]<>1]<>1]<>>1)&65535)>>>f&65535;j[c+(b<<1)>>1]=(d+32768-a&65535)>>>f;j[c+(b+e<<1)>>1]=(a&65535)>>>f;j[c+(b+h<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;l=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;p=m[n+(b<<3)>>1]<>1]<>1]<>>1)&65535)>>>f&65535;j[c+(b<<1)>>1]=(p+32768-d&65535)>>>f;j[c+(b+e<<1)>>1]=(d&65535)>>>f;j[c+(b+h<<1)>>1]=a;j[c+(b+l<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}default:return}}function dd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;cd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;cd(a,q,c,d,e);r=n;return}function ed(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,l=0,n=0,o=0,p=0,q=0,r=0,s=0;n=a+4|0;f=k[n>>2]|0;a:do switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{l=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>1]<>>1)&65535)>>>l&65535;j[c+(a*6|0)>>1]=g>>>l;j[c+(a*6|0)+2>>1]=h>>>l;j[c+(a*6|0)+4>>1]=e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{o=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>1]<>>1)&65535)>>>o&65535;j[c+(a*6|0)>>1]=q>>>o;j[c+(a*6|0)+2>>1]=p>>>o;j[c+(a*6|0)+4>>1]=l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{o=k[f>>2]|0;q=m[b+(g+e<<1)>>1]<>1]<>1]<>>1)&65535)>>>o;r=j[b+(g+a<<1)>>1]|0;q=ww(q>>>o&65535|0,0,16)|0;p=M|p;r=ww(r&65535|0,0,48)|0;r=s>>>o&65535|q|r;p=p&65535|M;q=c+(g<<3)|0;o=q;j[o>>1]=r;j[o+2>>1]=r>>>16;q=q+4|0;j[q>>1]=p;j[q+2>>1]=p>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){s=f+4|0;r=j[f>>1]|0;j[f>>1]=j[s>>1]|0;j[s>>1]=r;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function fd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36364;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function gd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36364;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function hd(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,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;ld(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;ld(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;jd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{kd(a,e,b,c,d);return}}function jd(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,l=0,n=0,o=0;l=a+4|0;f=k[l>>2]|0;do if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{e=k[f>>2]|0;a=m[n+(b*6|0)+2>>1]<>1]<>>e&65535;j[c+(b*6|0)>>1]=((m[n+(b*6|0)>>1]<>>e;j[c+(b*6|0)+2>>1]=(a&65535)>>>e;j[c+(b*6|0)+4>>1]=o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{a=m[n+(b*6|0)+2>>1]<>1]<>>f&65535;j[c+(b<<1)>>1]=((m[n+(b*6|0)>>1]<>>f;j[c+(b+e<<1)>>1]=(a&65535)>>>f;j[c+(b+h<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;h=(e|0)<(d|0)?e:d;if((h|0)<=0)return;l=e<<1;g=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;d=m[n+(b<<3)+2>>1]<>1]<>>f&65535;j[c+(b<<1)>>1]=((m[n+(b<<3)>>1]<>>f;j[c+(b+e<<1)>>1]=(d&65535)>>>f;j[c+(b+l<<1)>>1]=a;j[c+(b+g<<1)>>1]=o;b=b+1|0}while((b|0)!=(h|0));return}default:return}}function kd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;jd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;jd(a,q,c,d,e);r=n;return}function ld(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,l=0,n=0,o=0,p=0,q=0,r=0,s=0;n=a+4|0;f=k[n>>2]|0;a:do switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{l=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>>l&65535;j[c+(a*6|0)>>1]=((m[b+(a*6|0)>>1]<>>l;j[c+(a*6|0)+2>>1]=(h&65535)>>>l;j[c+(a*6|0)+4>>1]=e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{o=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>>o&65535;j[c+(a*6|0)>>1]=((m[b+(a<<1)>>1]<>>o;j[c+(a*6|0)+2>>1]=(p&65535)>>>o;j[c+(a*6|0)+4>>1]=l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{q=k[f>>2]|0;s=m[b+(g+e<<1)>>1]<>1]<>>q;o=(s+32768+(m[b+(g+h<<1)>>1]<>>q;r=j[b+(g+a<<1)>>1]|0;q=ww((s&65535)>>>q&65535|0,0,16)|0;o=o|M;r=ww(r&65535|0,0,48)|0;r=q|p&65535|r;o=o&65535|M;p=c+(g<<3)|0;q=p;j[q>>1]=r;j[q+2>>1]=r>>>16;p=p+4|0;j[p>>1]=o;j[p+2>>1]=o>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){s=f+4|0;r=j[f>>1]|0;j[f>>1]=j[s>>1]|0;j[s>>1]=r;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function md(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,j=0,l=0,m=0,n=0,o=0;n=r;r=r+16|0;l=n;m=k[a>>2]|0;if(!m){a=0;r=n;return a|0}o=b;h=d-o|0;j=e+12|0;g=k[j>>2]|0;h=(g|0)>(h|0)?g-h|0:0;g=c;e=g-o|0;if((e|0)>0?(Qb[k[(k[m>>2]|0)+48>>2]&63](m,b,e)|0)!=(e|0):0){k[a>>2]=0;o=0;r=n;return o|0}do if((h|0)>0){Rm(l,h,f);x=0;e=va(k[(k[m>>2]|0)+48>>2]|0,m|0,((i[l>>0]&1)==0?l+1|0:k[l+8>>2]|0)|0,h|0)|0;o=x;x=0;if(o&1){o=Wa()|0;Sm(l);fb(o|0)}if((e|0)==(h|0)){Sm(l);break}k[a>>2]=0;Sm(l);o=0;r=n;return o|0}while(0);d=d-g|0;if((d|0)>0?(Qb[k[(k[m>>2]|0)+48>>2]&63](m,c,d)|0)!=(d|0):0){k[a>>2]=0;o=0;r=n;return o|0}k[j>>2]=0;o=m;r=n;return o|0}function nd(a){a=a|0;k[a>>2]=36236;Sm(a+32|0);xn(a);return}function od(a){a=a|0;k[a>>2]=36236;Sm(a+32|0);xn(a);mj(a);return}function pd(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,j=0,l=0,m=0;g=b+44|0;h=k[g>>2]|0;l=b+24|0;m=k[l>>2]|0;if(h>>>0>>0){k[g>>2]=m;h=m}j=h;g=f&24;if(!g){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}if((e|0)==1&(g|0)==24){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}a:do switch(e|0){case 0:{g=0;e=0;break}case 1:if(!(f&8)){e=m-(k[b+20>>2]|0)|0;g=e;e=((e|0)<0)<<31>>31;break a}else{e=(k[b+12>>2]|0)-(k[b+8>>2]|0)|0;g=e;e=((e|0)<0)<<31>>31;break a}case 2:{g=b+32|0;if(!(i[g>>0]&1))g=g+1|0;else g=k[b+40>>2]|0;e=h-g|0;g=e;e=((e|0)<0)<<31>>31;break}default:{b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}}while(0);e=tw(g|0,e|0,c|0,d|0)|0;c=M;if((c|0)>=0){g=b+32|0;if(!(i[g>>0]&1))g=g+1|0;else g=k[b+40>>2]|0;d=h-g|0;h=((d|0)<0)<<31>>31;if(!((h|0)<(c|0)|(h|0)==(c|0)&d>>>0>>0)){g=f&8;if(!((e|0)==0&(c|0)==0)){if((g|0)!=0?(k[b+12>>2]|0)==0:0){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}if((f&16|0)!=0&(m|0)==0){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}}if(g){k[b+12>>2]=(k[b+8>>2]|0)+e;k[b+16>>2]=j}if(f&16)k[l>>2]=(k[b+20>>2]|0)+e;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=e;k[b+4>>2]=c;return}}b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function qd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=c+8|0;Sb[k[(k[b>>2]|0)+16>>2]&15](a,b,k[c>>2]|0,k[c+4>>2]|0,0,d);return}function rd(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+44|0;c=k[b>>2]|0;d=k[a+24>>2]|0;if(c>>>0>>0){k[b>>2]=d;c=d}if(!(k[a+48>>2]&8)){a=-1;return a|0}e=a+16|0;b=k[e>>2]|0;d=a+12|0;if(b>>>0>>0){d=k[d>>2]|0;k[e>>2]=c;b=c}else d=k[d>>2]|0;if(d>>>0>=b>>>0){a=-1;return a|0}a=l[d>>0]|0;return a|0}function sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;d=a+44|0;c=k[d>>2]|0;e=k[a+24>>2]|0;if(c>>>0>>0){k[d>>2]=e;c=e}h=a+8|0;d=k[h>>2]|0;j=a+12|0;f=k[j>>2]|0;g=d;if(d>>>0>=f>>>0){a=-1;return a|0}if((b|0)==-1){k[h>>2]=d;k[j>>2]=f+-1;k[a+16>>2]=c;a=0;return a|0}if(!(k[a+48>>2]&16)){e=b&255;d=f+-1|0;if(e<<24>>24!=(i[d>>0]|0)){a=-1;return a|0}}else{e=b&255;d=f+-1|0}k[h>>2]=g;k[j>>2]=d;k[a+16>>2]=c;i[d>>0]=e;a=b;return a|0}function td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;s=r;r=r+16|0;m=s;if((b|0)==-1){a=0;r=s;return a|0}n=a+12|0;o=a+8|0;p=(k[n>>2]|0)-(k[o>>2]|0)|0;q=a+24|0;c=k[q>>2]|0;l=a+28|0;d=k[l>>2]|0;do if((c|0)==(d|0)){h=a+48|0;if(!(k[h>>2]&16)){a=-1;r=s;return a|0}j=a+20|0;g=k[j>>2]|0;e=c-g|0;f=a+44|0;g=(k[f>>2]|0)-g|0;d=a+32|0;x=0;ra(67,d|0,0);c=x;x=0;if(!(c&1)){if(!(i[d>>0]&1))c=10;else c=(k[d>>2]&-2)+-1|0;x=0;Fa(8,d|0,c|0,0);c=x;x=0;if(!(c&1)){c=i[d>>0]|0;if(!(c&1)){d=d+1|0;c=(c&255)>>>1}else{d=k[a+40>>2]|0;c=k[a+36>>2]|0}t=d+c|0;k[j>>2]=d;k[l>>2]=t;j=d+e|0;k[q>>2]=j;c=d+g|0;k[f>>2]=c;d=t;break}}t=Wa(0)|0;cb(t|0)|0;eb();t=-1;r=s;return t|0}else{t=a+44|0;h=a+48|0;f=t;j=c;c=k[t>>2]|0}while(0);g=j+1|0;k[m>>2]=g;e=k[(g>>>0>>0?f:m)>>2]|0;k[f>>2]=e;if(k[h>>2]&8){c=a+32|0;if(!(i[c>>0]&1))c=c+1|0;else c=k[a+40>>2]|0;k[o>>2]=c;k[n>>2]=c+p;k[a+16>>2]=e}if((j|0)==(d|0)){t=Vb[k[(k[a>>2]|0)+52>>2]&63](a,b&255)|0;r=s;return t|0}else{k[q>>2]=g;i[j>>0]=b;t=b&255;r=s;return t|0}return 0}function ud(a){a=a|0;var b=0,c=0;k[a>>2]=36200;b=a+56|0;k[b>>2]=36220;c=a+4|0;k[c>>2]=36236;Sm(a+36|0);xn(c);qn(b);return}function vd(a){a=a|0;var b=0,c=0;k[a>>2]=36200;b=a+56|0;k[b>>2]=36220;c=a+4|0;k[c>>2]=36236;Sm(a+36|0);xn(c);qn(b);mj(a);return}function wd(a){a=a|0;var b=0,c=0,d=0,e=0;e=k[(k[a>>2]|0)+-12>>2]|0;b=a+e|0;k[b>>2]=36200;c=a+(e+56)|0;k[c>>2]=36220;d=a+(e+4)|0;k[d>>2]=36236;Sm(a+(e+36)|0);xn(d);qn(c);mj(b);return}function xd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36388;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function yd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36388;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function zd(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,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Dd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Dd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Bd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Cd(a,e,b,c,d);return}}function Bd(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,l=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;do if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{h=m[l+(f*6|0)+2>>1]|0;e=32768-h+(m[l+(f*6|0)+4>>1]|0)|0;n=(m[l+(f*6|0)>>1]|0)-h+32768|0;j[c+(f*6|0)>>1]=h+49152+(((e&65535)+(n&65535)|0)>>>2);j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{h=m[l+(b*6|0)+2>>1]|0;d=32768-h+(m[l+(b*6|0)+4>>1]|0)|0;n=(m[l+(b*6|0)>>1]|0)-h+32768|0;j[c+(b<<1)>>1]=h+49152+(((d&65535)+(n&65535)|0)>>>2);j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{n=j[l+(g<<3)+6>>1]|0;o=m[l+(g<<3)+2>>1]|0;h=32768-o+(m[l+(g<<3)+4>>1]|0)|0;d=(m[l+(g<<3)>>1]|0)-o+32768|0;j[c+(g<<1)>>1]=o+49152+(((h&65535)+(d&65535)|0)>>>2);j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Cd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Bd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Bd(a,q,c,d,e);r=n;return}function Dd(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,l=0,n=0,o=0,p=0,q=0,r=0;l=a+4|0;a=k[l>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=m[b+(a*6|0)+2>>1]|0;g=m[b+(a*6|0)+4>>1]|0;e=(m[b+(a*6|0)>>1]|0)-((g+h|0)>>>2)+16384|0;j[c+(a*6|0)>>1]=g+32768+e;j[c+(a*6|0)+2>>1]=e;j[c+(a*6|0)+4>>1]=h+32768+e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=m[b+(g+e<<1)>>1]|0;o=m[b+(g+f<<1)>>1]|0;h=(m[b+(g<<1)>>1]|0)-((o+n|0)>>>2)+16384|0;j[c+(g*6|0)>>1]=o+32768+h;j[c+(g*6|0)+2>>1]=h;j[c+(g*6|0)+4>>1]=n+32768+h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=m[b+(g+e<<1)>>1]|0;p=m[b+(g+a<<1)>>1]|0;o=(m[b+(g<<1)>>1]|0)-((p+n|0)>>>2)+16384|0;q=j[b+(g+f<<1)>>1]|0;r=ww(o&65535|0,0,16)|0;n=n+32768+o|M;q=ww(q&65535|0,0,48)|0;q=r|p+32768+o&65535|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){r=a+4|0;q=j[a>>1]|0;j[a>>1]=j[r>>1]|0;j[r>>1]=q;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Ed(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36412;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Fd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36412;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Gd(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,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Kd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Kd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Id(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Jd(a,e,b,c,d);return}}function Id(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,l=0,n=0,o=0,p=0;h=a+4|0;f=k[h>>2]|0;do if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{g=m[l+(f*6|0)>>1]|0;e=j[l+(f*6|0)+2>>1]|0;h=e&65535;n=(m[l+(f*6|0)+4>>1]|0)+32768-((h+g|0)>>>1)&65535;j[c+(f*6|0)>>1]=g+32768-h;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;g=m[l+(b*6|0)>>1]|0;h=d&65535;n=(m[l+(b*6|0)+4>>1]|0)+32768-((h+g|0)>>>1)&65535;j[c+(b<<1)>>1]=g+32768-h;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;n=j[l+(g<<3)+6>>1]|0;p=m[l+(g<<3)>>1]|0;o=h&65535;d=(m[l+(g<<3)+4>>1]|0)+32768-((o+p|0)>>>1)&65535;j[c+(g<<1)>>1]=p+32768-o;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Jd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Id(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Id(a,q,c,d,e);r=n;return}function Kd(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,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;e=h&65535;g=(m[b+(a*6|0)>>1]|0)+32768+e|0;e=(m[b+(a*6|0)+4>>1]|0)+32768+(((g&65535)+e|0)>>>1)&65535;j[c+(a*6|0)>>1]=g;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;h=n&65535;o=(m[b+(g<<1)>>1]|0)+32768+h|0;h=(m[b+(g+f<<1)>>1]|0)+32768+(((o&65535)+h|0)>>>1)&65535;j[c+(g*6|0)>>1]=o;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{o=j[b+(g+e<<1)>>1]|0;n=o&65535;p=(m[b+(g<<1)>>1]|0)+32768+n&65535;n=(m[b+(g+a<<1)>>1]|0)+32768+((p+n|0)>>>1)|0;q=j[b+(g+f<<1)>>1]|0;o=ww(o&65535|0,0,16)|0;n=M|n;q=ww(q&65535|0,0,48)|0;q=p|o|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Ld(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36436;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Md(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36436;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Nd(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,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Rd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Rd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Od(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Pd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Qd(a,e,b,c,d);return}}function Pd(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,l=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;do if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=j[l+(f*6|0)+2>>1]|0;h=e&65535;n=32768-h+(m[l+(f*6|0)+4>>1]|0)&65535;j[c+(f*6|0)>>1]=(m[l+(f*6|0)>>1]|0)+32768-h;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;h=d&65535;n=32768-h+(m[l+(b*6|0)+4>>1]|0)&65535;j[c+(b<<1)>>1]=(m[l+(b*6|0)>>1]|0)+32768-h;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;n=j[l+(g<<3)+6>>1]|0;o=h&65535;d=32768-o+(m[l+(g<<3)+4>>1]|0)&65535;j[c+(g<<1)>>1]=(m[l+(g<<3)>>1]|0)+32768-o;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Qd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Pd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Pd(a,q,c,d,e);r=n;return}function Rd(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,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;g=h&65535;e=g+32768+(m[b+(a*6|0)+4>>1]|0)&65535;j[c+(a*6|0)>>1]=(m[b+(a*6|0)>>1]|0)+32768+g;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;o=n&65535;h=o+32768+(m[b+(g+f<<1)>>1]|0)&65535;j[c+(g*6|0)>>1]=(m[b+(g<<1)>>1]|0)+32768+o;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{o=j[b+(g+e<<1)>>1]|0;n=o&65535;p=(m[b+(g<<1)>>1]|0)+32768+n|0;n=n+32768+(m[b+(g+a<<1)>>1]|0)|0;q=j[b+(g+f<<1)>>1]|0;o=ww(o&65535|0,0,16)|0;n=M|n;q=ww(q&65535|0,0,48)|0;q=p&65535|o|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Sd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36460;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Td(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36460;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Ud(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,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Yd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Yd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Vd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Wd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Xd(a,e,b,c,d);return}}function Wd(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,l=0,m=0;h=a+4|0;f=k[h>>2]|0;do if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;m=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=m;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=j[l+(f*6|0)+2>>1]|0;m=j[l+(f*6|0)+4>>1]|0;j[c+(f*6|0)>>1]=j[l+(f*6|0)>>1]|0;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=m;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;m=j[l+(b*6|0)+4>>1]|0;j[c+(b<<1)>>1]=j[l+(b*6|0)>>1]|0;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;d=j[l+(g<<3)+4>>1]|0;m=j[l+(g<<3)+6>>1]|0;j[c+(g<<1)>>1]=j[l+(g<<3)>>1]|0;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Xd(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Wd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Wd(a,q,c,d,e);r=n;return}function Yd(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,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;e=j[b+(a*6|0)+4>>1]|0;j[c+(a*6|0)>>1]=j[b+(a*6|0)>>1]|0;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;h=j[b+(g+f<<1)>>1]|0;j[c+(g*6|0)>>1]=j[b+(g<<1)>>1]|0;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=j[b+(g<<1)>>1]|0;q=j[b+(g+f<<1)>>1]|0;o=m[b+(g+a<<1)>>1]|0;p=ww(m[b+(g+e<<1)>>1]|0,0,16)|0;o=M|o;q=ww(q&65535|0,0,48)|0;q=p|n&65535|q;o=o&65535|M;n=c+(g<<3)|0;p=n;j[p>>1]=q;j[p+2>>1]=q>>>16;n=n+4|0;j[n>>1]=o;j[n+2>>1]=o>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Zd(a){a=a|0;return}function _d(a){a=a|0;mj(a);return}function $d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=ia(k[a+8>>2]|0,c)|0;a=k[a+4>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,b,c)|0)==(c|0))return;d=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,d|0,3,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(d|0);fb(a|0)}else ub(d|0,824,96)}function ae(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,j=0,l=0,m=0;m=r;r=r+16|0;l=m;j=a+8|0;e=k[j>>2]|0;d=ia(e,c)|0;do if(d){g=a+4|0;f=d;while(1){e=k[g>>2]|0;e=Qb[k[(k[e>>2]|0)+32>>2]&63](e,b,f)|0;if(!e)break;d=f-e|0;if((f|0)==(e|0)){h=11;break}else f=d}if((h|0)==11){e=k[j>>2]|0;f=d;break}d=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,d|0,3,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(d|0);fb(a|0)}else ub(d|0,824,96)}else f=0;while(0);if((e|0)==2){Yc(b,c<<1);e=k[j>>2]|0}d=k[a+12>>2]|0;if((d|0)<=(ia(e,c)|0)){r=m;return}a=k[a+4>>2]|0;Sb[k[(k[a>>2]|0)+16>>2]&15](l,a,d-f|0,0,1,24);r=m;return}function be(a){a=a|0;mj(a);return}function ce(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a+4|0;vw(k[d>>2]|0,b|0,ia(k[a+8>>2]|0,c)|0)|0;k[d>>2]=(k[d>>2]|0)+(k[a+12>>2]|0);return}function de(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a+4|0;vw(b|0,k[d>>2]|0,ia(k[a+8>>2]|0,c)|0)|0;k[d>>2]=(k[d>>2]|0)+(k[a+12>>2]|0);return}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;k[a+112>>2]=0;k[a+108>>2]=0;l=k[b>>2]|0;e=l;do if(l){g=a+92|0;l=a+96|0;h=k[l>>2]|0;j=k[g>>2]|0;c=j;d=h-c|0;if(d>>>0>=4e4)if(d>>>0>4e4?(f=j+4e4|0,(h|0)!=(f|0)):0){k[l>>2]=f;f=c}else f=c;else{fe(g,4e4-d|0);f=k[g>>2]|0;e=k[b>>2]|0}c=a+116|0;k[c>>2]=f;h=a+124|0;k[h>>2]=f;j=a+104|0;k[j>>2]=e;d=e;if(e){if((k[d+12>>2]|0)==(k[d+16>>2]|0)){b=(Ob[k[(k[e>>2]|0)+36>>2]&127](d)|0)==-1;d=k[h>>2]|0;if(b)break;e=k[c>>2]|0}else{d=f;e=f}g=d-e|0;if(g>>>0<=64){f=a+92|0;if((d|0)==(e|0))d=e;else{d=e;e=0;do{i[(k[f>>2]|0)+e>>0]=i[d+e>>0]|0;e=e+1|0;d=k[c>>2]|0}while(e>>>0>>0);e=k[h>>2]|0}f=k[f>>2]|0;b=f;m=b-d|0;k[c>>2]=f;d=e+m|0;k[h>>2]=d;f=a+120|0;k[f>>2]=(k[f>>2]|0)+m;j=k[j>>2]|0;d=Qb[k[(k[j>>2]|0)+32>>2]&63](j,d,(k[l>>2]|0)-(b+g)|0)|0;d=(k[h>>2]|0)+d|0;k[h>>2]=d}}else d=f}else{k[a+104>>2]=0;d=k[b+4>>2]|0;c=a+116|0;k[c>>2]=d;d=d+(k[b+8>>2]|0)|0;k[a+124>>2]=d}while(0);c=k[c>>2]|0;if(c>>>0>=d>>>0){l=c;m=a+120|0;k[m>>2]=l;qe(a);return}while(1){if((i[c>>0]|0)==-1){d=20;break}c=c+1|0;if(c>>>0>=d>>>0){d=20;break}}if((d|0)==20){m=a+120|0;k[m>>2]=c;qe(a);return}}function fe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=a+8|0;e=k[j>>2]|0;l=a+4|0;c=k[l>>2]|0;d=c;if((e-d|0)>>>0>=b>>>0){do{i[c>>0]=0;c=(k[l>>2]|0)+1|0;k[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}c=k[a>>2]|0;f=d-c+b|0;if((f|0)<0){jj(a);e=k[j>>2]|0;c=k[a>>2]|0}d=e-c|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?f:d;c=(k[l>>2]|0)-c|0;if(!d){e=0;g=0;f=c}else h=8}else{d=2147483647;c=(k[l>>2]|0)-c|0;h=8}if((h|0)==8){e=d;g=lj(d)|0;f=c}c=g+f|0;e=g+e|0;d=c;do{i[d>>0]=0;d=c+1|0;c=d;b=b+-1|0}while((b|0)!=0);b=k[a>>2]|0;d=(k[l>>2]|0)-b|0;h=g+(f-d)|0;vw(h|0,b|0,d|0)|0;k[a>>2]=h;k[l>>2]=c;k[j>>2]=e;if(!b)return;mj(b);return}function ge(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+180|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+12|0;a:do if((k[f>>2]|0)>0){g=a+4604|0;h=(ia(s,q)|0)+1|0;i=a+4608|0;l=a+92|0;m=(s|0)>0;n=a+4600|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(68,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40;while(0);do if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function he(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4604|0;b=k[p>>2]|0;s=a+180|0;if((k[s>>2]|0)<=0)return;q=a+4608|0;r=a+4612|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(me(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=le(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function ie(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;e=a+104|0;if((k[e>>2]|0)>>>0<4)je(a);f=a+100|0;g=a+112|0;h=a+96|0;j=a+108|0;l=a+116|0;b=k[f>>2]|0;d=0;do{c=i[g>>0]|0;if((b|0)>31)break;b=k[h>>2]|0;if(!(c<<24>>24)){i[k[j>>2]>>0]=b>>>24;k[h>>2]=k[h>>2]<<8;b=(k[f>>2]|0)+8|0}else{i[k[j>>2]>>0]=b>>>25;k[h>>2]=k[h>>2]<<7;b=(k[f>>2]|0)+7|0}k[f>>2]=b;m=k[j>>2]|0;c=(i[m>>0]|0)==-1&1;i[g>>0]=c;k[j>>2]=m+1;k[e>>2]=(k[e>>2]|0)+-1;k[l>>2]=(k[l>>2]|0)+1;d=d+1|0}while((d|0)<4);if(!(c<<24>>24))ke(a,0,(b|0)%8|0);else ke(a,0,(b+-1|0)%8|0);if((k[e>>2]|0)>>>0<4)je(a);b=k[f>>2]|0;c=0;do{if((b|0)>31)break;b=k[h>>2]|0;if(!(i[g>>0]|0)){i[k[j>>2]>>0]=b>>>24;k[h>>2]=k[h>>2]<<8;b=(k[f>>2]|0)+8|0}else{i[k[j>>2]>>0]=b>>>25;k[h>>2]=k[h>>2]<<7;b=(k[f>>2]|0)+7|0}k[f>>2]=b;m=k[j>>2]|0;i[g>>0]=(i[m>>0]|0)==-1&1;k[j>>2]=m+1;k[e>>2]=(k[e>>2]|0)+-1;k[l>>2]=(k[l>>2]|0)+1;c=c+1|0}while((c|0)<4);if(!(k[a+132>>2]|0))return;je(a);return}function je(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=k[a+132>>2]|0;if(!b){b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,4,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}c=a+108|0;d=a+120|0;f=k[d>>2]|0;e=(k[c>>2]|0)-f|0;if((Qb[k[(k[b>>2]|0)+48>>2]&63](b,f,e)|0)==(e|0)){f=k[d>>2]|0;k[c>>2]=f;k[a+104>>2]=(k[a+124>>2]|0)-f;return}b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,4,35648);f=x;x=0;if(!(f&1))ub(b|0,824,96);f=Wa()|0;Ua(b|0);fb(f|0)}function ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;l=a+100|0;c=(k[l>>2]|0)-c|0;k[l>>2]=c;if((c|0)>-1){m=a+96|0;k[m>>2]=k[m>>2]|b<>2]=k[m>>2]|b>>0-c;j=a+104|0;if((k[j>>2]|0)>>>0<4){je(a);c=k[l>>2]|0}f=a+112|0;g=a+108|0;h=a+116|0;d=0;while(1){if((c|0)>31)break;c=k[m>>2]|0;if(!(i[f>>0]|0)){i[k[g>>2]>>0]=c>>>24;k[m>>2]=k[m>>2]<<8;c=(k[l>>2]|0)+8|0}else{i[k[g>>2]>>0]=c>>>25;k[m>>2]=k[m>>2]<<7;c=(k[l>>2]|0)+7|0}k[l>>2]=c;n=k[g>>2]|0;i[f>>0]=(i[n>>0]|0)==-1&1;k[g>>2]=n+1;k[j>>2]=(k[j>>2]|0)+-1;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0;if((d|0)>=4){e=11;break}}a:do if((e|0)==11)if((c|0)<0){k[m>>2]=k[m>>2]|b>>0-c;if((k[j>>2]|0)>>>0<4){je(a);c=k[l>>2]|0;d=0}else d=0;do{if((c|0)>31)break a;c=k[m>>2]|0;if(!(i[f>>0]|0)){i[k[g>>2]>>0]=c>>>24;k[m>>2]=k[m>>2]<<8;c=(k[l>>2]|0)+8|0}else{i[k[g>>2]>>0]=c>>>25;k[m>>2]=k[m>>2]<<7;c=(k[l>>2]|0)+7|0}k[l>>2]=c;n=k[g>>2]|0;i[f>>0]=(i[n>>0]|0)==-1&1;k[g>>2]=n+1;k[j>>2]=(k[j>>2]|0)+-1;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0}while((d|0)<4)}while(0);k[m>>2]=k[m>>2]|b<>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;pe(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&65535;return r|0}r=e&~(b>>31);r=r&65535;return r|0}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;i=(k[a+180>>2]|0)-b|0;l=k[a+4608>>2]|0;n=k[a+4604>>2]|0;e=j[l+(b+-1<<1)>>1]|0;h=e&65535;c=k[a+144>>2]|0;f=0;while(1){d=l+(f+b<<1)|0;g=(m[d>>1]|0)-h|0;if((((g|0)>-1?g:0-g|0)|0)>(c|0))break;j[d>>1]=e;f=f+1|0;if((f|0)==(i|0)){f=i;break}}e=(f|0)==(i|0);g=a+4600|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0,h,m[n+(i<<1)>>1]|0)|0;j[b>>1]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){a=i;return a|0}ke(a,1,1);a=i;return a|0}function ne(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;h=c-d|0;i=a+136|0;g=a+144|0;e=k[g>>2]|0;if((((h|0)>-1?h:0-h|0)|0)>(e|0)){f=d-c>>31|1;b=ia(f,b-d|0)|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;c=((b|0)<0?e:0)+b|0;e=c-((c|0)<((e+1|0)/2|0|0)?0:e)|0;oe(a,a+4576|0,e);e=ia(e,f)|0;f=k[g>>2]|0;g=f<<1|1;e=(ia(e,g)|0)+d|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&65535;return i|0}i=b&~(e>>31);i=i&65535;return i|0}else{b=b-c|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;f=((b|0)<0?e:0)+b|0;e=f-((f|0)<((e+1|0)/2|0|0)?0:e)|0;oe(a,a+4588|0,e);f=k[g>>2]|0;g=f<<1|1;e=(ia(g,e)|0)+c|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&65535;return i|0}i=b&~(e>>31);i=i&65535;return i|0}return 0}function oe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;pe(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>2]|0;j=a+120|0;if(b>>>0<((k[j>>2]|0)+-3|0)>>>0){j=a+112|0;g=k[j>>2]|0;a=a+108|0;k[a>>2]=(l[b+1>>0]<<16|l[b>>0]<<24|l[b+2>>0]<<8|l[b+3>>0])>>>g|k[a>>2];a=32-g>>3;k[h>>2]=b+a;k[j>>2]=(a<<3)+g;return}g=a+104|0;c=k[g>>2]|0;do if(c){if((k[c+12>>2]|0)==(k[c+16>>2]|0)){if((Ob[k[(k[c>>2]|0)+36>>2]&127](c)|0)==-1)break;b=k[h>>2]|0}e=a+124|0;c=k[e>>2]|0;f=c-b|0;if(f>>>0<=64){d=a+92|0;if((c|0)==(b|0))c=b;else{c=0;do{i[(k[d>>2]|0)+c>>0]=i[b+c>>0]|0;c=c+1|0;b=k[h>>2]|0}while(c>>>0>>0);c=b;b=k[e>>2]|0}n=k[d>>2]|0;d=n;m=d-c|0;k[h>>2]=n;c=b+m|0;k[e>>2]=c;k[j>>2]=(k[j>>2]|0)+m;g=k[g>>2]|0;g=Qb[k[(k[g>>2]|0)+32>>2]&63](g,c,(k[a+96>>2]|0)-(d+f)|0)|0;k[e>>2]=(k[e>>2]|0)+g}}while(0);g=a+112|0;f=a+108|0;a=k[a+124>>2]|0;e=a+-1|0;b=k[h>>2]|0;while(1){if(b>>>0>=a>>>0){c=14;break}d=i[b>>0]|0;c=d&255;d=d<<24>>24==-1;if(d){if((b|0)==(e|0)){c=25;break}b=b+1|0;if((i[b>>0]|0)<0){c=25;break}}else b=b+1|0;n=k[g>>2]|0;k[f>>2]=c<<24-n|k[f>>2];k[h>>2]=b;n=n+(d?7:8)|0;k[g>>2]=n;if((n|0)>=24){c=33;break}}if((c|0)==14){if((k[g>>2]|0)>=1)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,5,35648);n=x;x=0;if(!(n&1))ub(b|0,824,96);n=Wa()|0;Ua(b|0);fb(n|0)}else if((c|0)==25){if((k[g>>2]|0)>=1)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,5,35648);n=x;x=0;if(!(n&1))ub(b|0,824,96);n=Wa()|0;Ua(b|0);fb(n|0)}else if((c|0)==33){a:do if(b>>>0
>>0)do{if((i[b>>0]|0)==-1)break a;b=b+1|0}while(b>>>0>>0);while(0);k[j>>2]=b;return}}function re(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0;while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=a+8|0;e=k[j>>2]|0;l=a+4|0;c=k[l>>2]|0;d=c;if((e-d|0)>>>0>=b>>>0){do{i[c>>0]=0;c=(k[l>>2]|0)+1|0;k[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}c=k[a>>2]|0;f=d-c+b|0;if((f|0)<0){jj(a);e=k[j>>2]|0;c=k[a>>2]|0}d=e-c|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?f:d;c=(k[l>>2]|0)-c|0;if(!d){e=0;g=0;f=c}else h=8}else{d=2147483647;c=(k[l>>2]|0)-c|0;h=8}if((h|0)==8){e=d;g=lj(d)|0;f=c}c=g+f|0;e=g+e|0;d=c;do{i[d>>0]=0;d=c+1|0;c=d;b=b+-1|0}while((b|0)!=0);b=k[a>>2]|0;d=(k[l>>2]|0)-b|0;h=g+(f-d)|0;vw(h|0,b|0,d|0)|0;k[a>>2]=h;k[l>>2]=c;k[j>>2]=e;if(!b)return;mj(b);return}function te(a){a=a|0;var b=0,c=0;k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function ue(a){a=a|0;var b=0,c=0;k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function ve(a){a=a|0;var b=0,c=0;k[a>>2]=36052;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function we(a){a=a|0;var b=0,c=0;k[a>>2]=36052;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function xe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;He(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function ye(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35828;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Ae(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Ae(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0} -function ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ae(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+180|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;do if(b){if(!(b>>>0>715827882?(x=0,qa(178,v|0),u=x,x=0,u&1):0))g=6;if((g|0)==6?(x=0,c=ta(67,b*6|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;d=c+(b*6|0)|0;k[v+8>>2]=d;while(1){j[c>>1]=0;j[c+2>>1]=0;j[c+4>>1]=0;b=b+-1|0;if(!b)break;else c=c+6|0}k[w>>2]=d;break}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!q)g=20;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))g=18;if((g|0)==18?(e=q<<2,x=0,f=ta(67,e|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=f;g=f+(q<<2)|0;k[s+8>>2]=g;sw(f|0,0,e|0)|0;k[u>>2]=g;g=20;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==20){e=a+12|0;a:do if((k[e>>2]|0)>0){f=a+4604|0;g=(ia(q,p)|0)+1|0;h=a+4608|0;i=a+92|0;l=(q|0)>0;m=a+4600|0;n=0;b:while(1){c=k[v>>2]|0;b=c+6|0;k[f>>2]=b;c=c+(g*6|0)|0;k[h>>2]=c;if(!(n&1))b=c;else{k[f>>2]=c;k[h>>2]=b}d=k[i>>2]|0;x=0;Ja(k[(k[d>>2]|0)+12>>2]|0,d|0,b|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){g=30;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*6|0)|0;c=c+((y+-1|0)*6|0)|0;j[b>>1]=j[c>>1]|0;j[b+2>>1]=j[c+2>>1]|0;j[b+4>>1]=j[c+4>>1]|0;c=(k[h>>2]|0)+-6|0;b=k[f>>2]|0;j[c>>1]=j[b>>1]|0;j[c+2>>1]=j[b+2>>1]|0;j[c+4>>1]=j[b+4>>1]|0;x=0;ra(69,a|0,0);c=x;x=0;if(c&1){g=29;break b}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*6|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*6|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42;while(0);do if((g|0)==42){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);r=t;return}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}function Be(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=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;B=a+180|0;if((k[B>>2]|0)<=0)return;C=a+4608|0;D=a+4604|0;E=a+4612|0;A=0;while(1){x=A+-1|0;f=k[C>>2]|0;g=k[D>>2]|0;b=A+1|0;e=m[g+(A*6|0)>>1]|0;z=k[E>>2]|0;h=m[g+(x*6|0)>>1]|0;l=e-h|0;n=m[f+(x*6|0)>>1]|0;o=h-n|0;p=((((i[z+((m[g+(b*6|0)>>1]|0)-e)>>0]|0)*9|0)+(i[z+l>>0]|0)|0)*9|0)+(i[z+o>>0]|0)|0;d=m[g+(A*6|0)+2>>1]|0;q=m[g+(x*6|0)+2>>1]|0;r=d-q|0;s=m[f+(x*6|0)+2>>1]|0;t=q-s|0;u=((((i[z+((m[g+(b*6|0)+2>>1]|0)-d)>>0]|0)*9|0)+(i[z+r>>0]|0)|0)*9|0)+(i[z+t>>0]|0)|0;c=m[g+(A*6|0)+4>>1]|0;v=m[g+(x*6|0)+4>>1]|0;w=c-v|0;x=m[f+(x*6|0)+4>>1]|0;y=v-x|0;z=((((i[z+((m[g+(b*6|0)+4>>1]|0)-c)>>0]|0)*9|0)+(i[z+w>>0]|0)|0)*9|0)+(i[z+y>>0]|0)|0;if(!(u|p|z))b=(Ce(a,A,0)|0)+A|0;else{g=m[f+(A*6|0)>>1]|0;f=e-n>>31;if((f^o|0)>=0)if((f^l|0)<0)e=n;else e=n-h+e|0;g=De(a,p,g,e,0)|0;f=m[(k[C>>2]|0)+(A*6|0)+2>>1]|0;e=d-s>>31;if((e^t|0)>=0)if((e^r|0)<0)d=s;else d=s-q+d|0;e=De(a,u,f,d,0)|0;f=m[(k[C>>2]|0)+(A*6|0)+4>>1]|0;d=c-x>>31;if((d^y|0)>=0)if((d^w|0)<0)c=x;else c=x-v+c|0;y=De(a,z,f,c,0)|0;z=k[C>>2]|0;j[z+(A*6|0)>>1]=g;j[z+(A*6|0)+2>>1]=e;j[z+(A*6|0)+4>>1]=y}if((b|0)<(k[B>>2]|0))A=b;else break}return}function Ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=r;r=r+48|0;q=B+30|0;p=B+24|0;o=B+18|0;s=B+12|0;x=B+6|0;y=B;z=(k[a+180>>2]|0)-b|0;A=k[a+4608>>2]|0;t=k[a+4604>>2]|0;w=b+-1|0;u=j[A+(w*6|0)>>1]|0;v=j[A+(w*6|0)+2>>1]|0;w=j[A+(w*6|0)+4>>1]|0;c=u&65535;d=a+144|0;e=v&65535;f=w&65535;n=0;while(1){i=n+b|0;g=A+(i*6|0)|0;h=A+(i*6|0)+2|0;i=A+(i*6|0)+4|0;C=(m[g>>1]|0)-c|0;l=k[d>>2]|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;C=(m[h>>1]|0)-e|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;C=(m[i>>1]|0)-f|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;j[g>>1]=u;j[h>>1]=v;j[i>>1]=w;n=n+1|0;if((n|0)==(z|0)){n=z;break}}e=(n|0)==(z|0);f=a+4600|0;d=k[36476+(k[f>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[f>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[f>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]=j[C>>1]|0;j[x+2>>1]=j[C+2>>1]|0;j[x+4>>1]=j[C+4>>1]|0;j[y>>1]=u;j[y+2>>1]=v;j[y+4>>1]=w;b=t+(b*6|0)|0;j[o>>1]=j[x>>1]|0;j[o+2>>1]=j[x+2>>1]|0;j[o+4>>1]=j[x+4>>1]|0;j[p>>1]=j[y>>1]|0;j[p+2>>1]=j[y+2>>1]|0;j[p+4>>1]=j[y+4>>1]|0;j[q>>1]=j[b>>1]|0;j[q+2>>1]=j[b+2>>1]|0;j[q+4>>1]=j[b+4>>1]|0;Fe(s,a,o,p,q);j[C>>1]=j[s>>1]|0;j[C+2>>1]=j[s+2>>1]|0;j[C+4>>1]=j[s+4>>1]|0;C=k[f>>2]|0;k[f>>2]=(C|0)<1?0:C+-1|0;C=n+1|0;r=B;return C|0}if(!c){C=z;r=B;return C|0}ke(a,1,1);C=z;r=B;return C|0}function De(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;Ee(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&65535;return r|0}r=e&~(b>>31);r=r&65535;return r|0}function Ee(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>1]|0;p=o-(m[d>>1]|0)>>31|1;f=ia(p,(m[c>>1]|0)-o|0)|0;l=b+144|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;w=b+140|0;i=k[w>>2]|0;h=((f|0)<0?i:0)+f|0;i=h-((h|0)<((i+1|0)/2|0|0)?0:i)|0;h=b+4576|0;Ge(b,h,i);t=m[e+2>>1]|0;u=t-(m[d+2>>1]|0)>>31|1;f=ia(u,(m[c+2>>1]|0)-t|0)|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;q=k[w>>2]|0;v=((f|0)<0?q:0)+f|0;q=v-((v|0)<((q+1|0)/2|0|0)?0:q)|0;Ge(b,h,q);v=m[e+4>>1]|0;s=v-(m[d+4>>1]|0)>>31|1;f=ia(s,(m[c+4>>1]|0)-v|0)|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;n=k[w>>2]|0;f=((f|0)<0?n:0)+f|0;n=f-((f|0)<((n+1|0)/2|0|0)?0:n)|0;Ge(b,h,n);h=k[l>>2]|0;l=h<<1|1;f=(ia(ia(l,i)|0,p)|0)+o|0;c=0-h|0;if((f|0)>=(c|0)){g=k[r>>2]|0;if((g+h|0)<(f|0)){f=f-(ia(k[w>>2]|0,l)|0)|0;d=g}else d=g}else{f=(ia(k[w>>2]|0,l)|0)+f|0;d=k[r>>2]|0}if((f&d|0)!=(f|0))f=d&~(f>>31);e=f&65535;f=(ia(ia(l,q)|0,u)|0)+t|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,l)|0)|0}else f=(ia(k[w>>2]|0,l)|0)+f|0;if((f&d|0)!=(f|0))f=d&~(f>>31);g=f&65535;f=(ia(ia(l,n)|0,s)|0)+v|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,l)|0)|0}else f=(ia(k[w>>2]|0,l)|0)+f|0;if((f&d|0)==(f|0)){w=f;w=w&65535;j[a>>1]=e;v=a+2|0;j[v>>1]=g;a=a+4|0;j[a>>1]=w;return}w=d&~(f>>31);w=w&65535;j[a>>1]=e;v=a+2|0;j[v>>1]=g;a=a+4|0;j[a>>1]=w;return}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Ee(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function He(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0;while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Ie(a){a=a|0;var b=0,c=0;k[a>>2]=36024;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Je(a){a=a|0;var b=0,c=0;k[a>>2]=36024;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;zf(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function Le(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35800;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];sf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;sf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Me(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ne(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,j=0,l=0,m=0,n=0;k[a>>2]=36712;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Oe(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,j=0,l=0,m=0,n=0;k[a>>2]=36688;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Pe(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,j=0,l=0,m=0,n=0;k[a>>2]=36664;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Qe(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,j=0,l=0,m=0,n=0;k[a>>2]=36640;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Re(a){a=a|0;var b=0,c=0;k[a>>2]=36640;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function Se(a){a=a|0;var b=0,c=0;k[a>>2]=36640;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function Te(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;Xe(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;Xe(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function Ue(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Ve(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{We(a,e,b,c,d);return}}function Ve(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,j=0,m=0,n=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{g=l[h+(f*3|0)+1>>0]|0;e=128-g+(l[h+(f*3|0)+2>>0]|0)|0;j=(l[h+(f*3|0)>>0]|0)-g+128|0;m=c+(f*3|0)|0;i[m>>0]=g+192+(((e&255)+(j&255)|0)>>>2);i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=l[h+(b*3|0)+1>>0]|0;j=128-d+(l[h+(b*3|0)+2>>0]|0)|0;m=(l[h+(b*3|0)>>0]|0)-d+128|0;i[c+b>>0]=d+192+(((j&255)+(m&255)|0)>>>2);i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{m=i[h+(g<<2)+3>>0]|0;n=l[h+(g<<2)+1>>0]|0;d=128-n+(l[h+(g<<2)+2>>0]|0)|0;j=(l[h+(g<<2)>>0]|0)-n+128|0;i[c+g>>0]=n+192+(((d&255)+(j&255)|0)>>>2);i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function We(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;Ve(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){Ve(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}while(0);p=f;qn(c);fb(p|0)}function Xe(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,j=0,m=0,n=0,o=0,p=0;j=a+4|0;a=k[j>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=l[b+(a*3|0)+1>>0]|0;f=l[b+(a*3|0)+2>>0]|0;h=(l[b+(a*3|0)>>0]|0)-((f+g|0)>>>2)+64|0;e=c+(a*3|0)|0;i[e>>0]=f+128+h;i[e+1>>0]=h;i[e+2>>0]=g+128+h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=l[b+(g+e)>>0]|0;o=l[b+(g+f)>>0]|0;m=(l[b+g>>0]|0)-((o+n|0)>>>2)+64|0;h=c+(g*3|0)|0;i[h>>0]=o+128+m;i[h+1>>0]=m;i[h+2>>0]=n+128+m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{m=l[b+(g+e)>>0]|0;p=l[b+(g+a)>>0]|0;n=(l[b+g>>0]|0)-((p+m|0)>>>2)+64|0;o=c+(g<<2)|0;n=n<<8&65280|l[b+(g+f)>>0]<<24|p+128+n&255|m+128+n<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){p=a+2|0;o=i[a>>0]|0;i[a>>0]=i[p>>0]|0;i[p>>0]=o;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function Ye(a){a=a|0;var b=0,c=0;k[a>>2]=36664;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function Ze(a){a=a|0;var b=0,c=0;k[a>>2]=36664;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function _e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;cf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;cf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function $e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;af(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{bf(a,e,b,c,d);return}}function af(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,j=0,m=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{b=l[h+(f*3|0)>>0]|0;e=i[h+(f*3|0)+1>>0]|0;g=e&255;j=(l[h+(f*3|0)+2>>0]|0)+128-((g+b|0)>>>1)&255;m=c+(f*3|0)|0;i[m>>0]=b+128-g;i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;g=l[h+(b*3|0)>>0]|0;d=j&255;m=(l[h+(b*3|0)+2>>0]|0)+128-((d+g|0)>>>1)&255;i[c+b>>0]=g+128-d;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;m=i[h+(g<<2)+3>>0]|0;o=l[h+(g<<2)>>0]|0;n=d&255;j=(l[h+(g<<2)+2>>0]|0)+128-((n+o|0)>>>1)&255;i[c+g>>0]=o+128-n;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function bf(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;af(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){af(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}while(0);p=f;qn(c);fb(p|0)}function cf(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,j=0,m=0,n=0,o=0;j=a+4|0;a=k[j>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;h=g&255;f=(l[b+(a*3|0)>>0]|0)+128+h|0;h=(l[b+(a*3|0)+2>>0]|0)+128+(((f&255)+h|0)>>>1)&255;e=c+(a*3|0)|0;i[e>>0]=f;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;m=n&255;o=(l[b+g>>0]|0)+128+m|0;m=(l[b+(g+f)>>0]|0)+128+(((o&255)+m|0)>>>1)&255;h=c+(g*3|0)|0;i[h>>0]=o;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=l[b+(g+e)>>0]|0;m=(l[b+g>>0]|0)+128+n&255;o=c+(g<<2)|0;n=m|n<<8|l[b+(g+f)>>0]<<24|(l[b+(g+a)>>0]|0)+128+((m+n|0)>>>1)<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){o=a+2|0;n=i[a>>0]|0;i[a>>0]=i[o>>0]|0;i[o>>0]=n;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function df(a){a=a|0;var b=0,c=0;k[a>>2]=36688;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function ef(a){a=a|0;var b=0,c=0;k[a>>2]=36688;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;kf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;kf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;hf(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{jf(a,e,b,c,d);return}}function hf(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,j=0,m=0,n=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=i[h+(f*3|0)+1>>0]|0;g=e&255;j=128-g+(l[h+(f*3|0)+2>>0]|0)&255;m=c+(f*3|0)|0;i[m>>0]=(l[h+(f*3|0)>>0]|0)+128-g;i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;d=j&255;m=128-d+(l[h+(b*3|0)+2>>0]|0)&255;i[c+b>>0]=(l[h+(b*3|0)>>0]|0)+128-d;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;m=i[h+(g<<2)+3>>0]|0;n=d&255;j=128-n+(l[h+(g<<2)+2>>0]|0)&255;i[c+g>>0]=(l[h+(g<<2)>>0]|0)+128-n;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function jf(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;hf(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){hf(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}while(0);p=f;qn(c);fb(p|0)}function kf(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,j=0,m=0,n=0,o=0;j=a+4|0;a=k[j>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;f=g&255;h=f+128+(l[b+(a*3|0)+2>>0]|0)&255;e=c+(a*3|0)|0;i[e>>0]=(l[b+(a*3|0)>>0]|0)+128+f;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;o=n&255;m=o+128+(l[b+(g+f)>>0]|0)&255;h=c+(g*3|0)|0;i[h>>0]=(l[b+g>>0]|0)+128+o;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=l[b+(g+e)>>0]|0;o=c+(g<<2)|0;n=(l[b+g>>0]|0)+128+n&255|n<<8|l[b+(g+f)>>0]<<24|n+128+(l[b+(g+a)>>0]|0)<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){o=a+2|0;n=i[a>>0]|0;i[a>>0]=i[o>>0]|0;i[o>>0]=n;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function lf(a){a=a|0;var b=0,c=0;k[a>>2]=36712;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function mf(a){a=a|0;var b=0,c=0;k[a>>2]=36712;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;rf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;rf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;pf(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{qf(a,e,b,c,d);return}}function pf(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,j=0,l=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;l=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=l;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=i[h+(f*3|0)+1>>0]|0;j=i[h+(f*3|0)+2>>0]|0;l=c+(f*3|0)|0;i[l>>0]=i[h+(f*3|0)>>0]|0;i[l+1>>0]=e;i[l+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;l=i[h+(b*3|0)+2>>0]|0;i[c+b>>0]=i[h+(b*3|0)>>0]|0;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=l;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;j=i[h+(g<<2)+2>>0]|0;l=i[h+(g<<2)+3>>0]|0;i[c+g>>0]=i[h+(g<<2)>>0]|0;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=l;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function qf(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;pf(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){pf(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}while(0);p=f;qn(c);fb(p|0)}function rf(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,j=0,m=0,n=0;j=a+4|0;a=k[j>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;h=i[b+(a*3|0)+2>>0]|0;e=c+(a*3|0)|0;i[e>>0]=i[b+(a*3|0)>>0]|0;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;m=i[b+(g+f)>>0]|0;h=c+(g*3|0)|0;i[h>>0]=i[b+g>>0]|0;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=c+(g<<2)|0;m=l[b+(g+e)>>0]<<8|l[b+g>>0]|l[b+(g+a)>>0]<<16|l[b+(g+f)>>0]<<24;i[n>>0]=m;i[n+1>>0]=m>>8;i[n+2>>0]=m>>16;i[n+3>>0]=m>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){n=a+2|0;m=i[a>>0]|0;i[a>>0]=i[n>>0]|0;i[n>>0]=m;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function sf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+180|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do if(b){if(!(b>>>0>1431655765?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[w>>2]|0)+3|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){e=a+12|0;b:do if((k[e>>2]|0)>0){f=a+4604|0;g=(ia(q,p)|0)+1|0;h=a+4608|0;j=a+92|0;l=(q|0)>0;m=a+4600|0;n=0;c:while(1){d=k[v>>2]|0;b=d+3|0;k[f>>2]=b;c=d+(g*3|0)|0;k[h>>2]=c;if(!(n&1))b=g;else{k[f>>2]=c;k[h>>2]=b;b=1}c=k[j>>2]|0;x=0;Ja(k[(k[c>>2]|0)+12>>2]|0,c|0,d+(b*3|0)|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*3|0)|0;c=c+((y+-1|0)*3|0)|0;i[b>>0]=i[c>>0]|0;i[b+1>>0]=i[c+1>>0]|0;i[b+2>>0]=i[c+2>>0]|0;b=k[f>>2]|0;c=(k[h>>2]|0)+-3|0;i[c>>0]=i[b>>0]|0;i[c+1>>0]=i[b+1>>0]|0;i[c+2>>0]=i[b+2>>0]|0;x=0;ra(70,a|0,0);c=x;x=0;if(c&1){f=28;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*3|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*3|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){d=Wa()|0;break}else if((f|0)==29){d=Wa()|0;break}}else f=41;while(0);do if((f|0)==41){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=t;return}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function tf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=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;A=a+180|0;if((k[A>>2]|0)<=0)return;B=a+4608|0;C=a+4604|0;D=a+4612|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(uf(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=vf(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=vf(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=vf(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=r;r=r+32|0;A=B+15|0;p=B+12|0;o=B+9|0;q=B+6|0;w=B+3|0;x=B;y=(k[a+180>>2]|0)-b|0;z=k[a+4608>>2]|0;s=k[a+4604>>2]|0;v=z+((b+-1|0)*3|0)|0;t=i[v>>0]|0;u=i[v+1>>0]|0;v=i[v+2>>0]|0;c=t&255;d=a+144|0;e=u&255;f=v&255;n=0;while(1){g=z+((n+b|0)*3|0)|0;h=g+1|0;j=g+2|0;C=(l[g>>0]|0)-c|0;m=k[d>>2]|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;C=(l[h>>0]|0)-e|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;C=(l[j>>0]|0)-f|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;i[g>>0]=t;i[h>>0]=u;i[j>>0]=v;n=n+1|0;if((n|0)==(y|0)){n=y;break}}e=(n|0)==(y|0);f=a+4600|0;d=k[36476+(k[f>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[f>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[f>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]=i[C>>0]|0;i[w+1>>0]=i[C+1>>0]|0;i[w+2>>0]=i[C+2>>0]|0;i[x>>0]=t;i[x+1>>0]=u;i[x+2>>0]=v;b=s+(b*3|0)|0;i[o>>0]=i[w>>0]|0;i[o+1>>0]=i[w+1>>0]|0;i[o+2>>0]=i[w+2>>0]|0;i[p>>0]=i[x>>0]|0;i[p+1>>0]=i[x+1>>0]|0;i[p+2>>0]=i[x+2>>0]|0;i[A>>0]=i[b>>0]|0;i[A+1>>0]=i[b+1>>0]|0;i[A+2>>0]=i[b+2>>0]|0;xf(q,a,o,p,A);i[C>>0]=i[q>>0]|0;i[C+1>>0]=i[q+1>>0]|0;i[C+2>>0]=i[q+2>>0]|0;C=k[f>>2]|0;k[f>>2]=(C|0)<1?0:C+-1|0;C=n+1|0;r=B;return C|0}if(!c){C=y;r=B;return C|0}ke(a,1,1);C=y;r=B;return C|0}function vf(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;wf(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&255;return r|0}r=e&~(b>>31);r=r&255;return r|0}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>0]|0;p=o-(l[d>>0]|0)>>31|1;f=ia(p,(l[c>>0]|0)-o|0)|0;m=b+144|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;w=b+140|0;j=k[w>>2]|0;h=((f|0)<0?j:0)+f|0;j=h-((h|0)<((j+1|0)/2|0|0)?0:j)|0;h=b+4576|0;yf(b,h,j);t=l[e+1>>0]|0;u=t-(l[d+1>>0]|0)>>31|1;f=ia(u,(l[c+1>>0]|0)-t|0)|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;q=k[w>>2]|0;v=((f|0)<0?q:0)+f|0;q=v-((v|0)<((q+1|0)/2|0|0)?0:q)|0;yf(b,h,q);v=l[e+2>>0]|0;s=v-(l[d+2>>0]|0)>>31|1;f=ia(s,(l[c+2>>0]|0)-v|0)|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;n=k[w>>2]|0;f=((f|0)<0?n:0)+f|0;n=f-((f|0)<((n+1|0)/2|0|0)?0:n)|0;yf(b,h,n);h=k[m>>2]|0;m=h<<1|1;f=(ia(ia(m,j)|0,p)|0)+o|0;c=0-h|0;if((f|0)>=(c|0)){g=k[r>>2]|0;if((g+h|0)<(f|0)){f=f-(ia(k[w>>2]|0,m)|0)|0;d=g}else d=g}else{f=(ia(k[w>>2]|0,m)|0)+f|0;d=k[r>>2]|0}if((f&d|0)!=(f|0))f=d&~(f>>31);e=f&255;f=(ia(ia(m,q)|0,u)|0)+t|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,m)|0)|0}else f=(ia(k[w>>2]|0,m)|0)+f|0;if((f&d|0)!=(f|0))f=d&~(f>>31);g=f&255;f=(ia(ia(m,n)|0,s)|0)+v|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,m)|0)|0}else f=(ia(k[w>>2]|0,m)|0)+f|0;if((f&d|0)==(f|0)){w=f;w=w&255;i[a>>0]=e;v=a+1|0;i[v>>0]=g;a=a+2|0;i[a>>0]=w;return}w=d&~(f>>31);w=w&255;i[a>>0]=e;v=a+1|0;i[v>>0]=g;a=a+2|0;i[a>>0]=w;return}function yf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;wf(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0;while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Af(a){a=a|0;var b=0,c=0;k[a>>2]=35996;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Bf(a){a=a|0;var b=0,c=0;k[a>>2]=35996;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Cf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,65535,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;Lf(a);d=0;do{k[a+172+(d*12|0)>>2]=1024;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=1024;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=1024;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function Df(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35772;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Ff(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Ff(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ff(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+156|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+12|0;a:do if((k[f>>2]|0)>0){g=a+4580|0;h=(ia(s,q)|0)+1|0;i=a+4584|0;l=a+92|0;m=(s|0)>0;n=a+4576|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(71,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40;while(0);do if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Gf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4580|0;b=k[p>>2]|0;s=a+156|0;if((k[s>>2]|0)<=0)return;q=a+4584|0;r=a+4588|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(If(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Hf(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Hf(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&65535|0)==(e|0))m=e;else m=e>>31&65535^65535;h=(c-m^q)-q<<16;l=h>>16;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;d=e^l;d=d>>30^d<<1;e=d>>f;if((e|0)<47){if((e|0)>30){g=(e|0)/2|0;ke(a,0,g);e=e-g|0}ke(a,1,e+1|0);ke(a,d&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-65536?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}function If(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;l=k[a+4580>>2]|0;e=j[h+(b+-1<<1)>>1]|0;d=0;while(1){c=h+(d+b<<1)|0;if((j[c>>1]|0)!=e<<16>>16){n=d;break}j[c>>1]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&65535;e=(n|0)==(g|0);i=a+4576|0;d=k[36476+(k[i>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[i>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[i>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0;c=m[l+(c<<1)>>1]|0;l=f-c|0;if((((l|0)>-1?l:0-l|0)|0)<1){c=d-f<<16>>16;Jf(a,a+4564|0,c);c=c+f|0}else{l=c-f>>31|1;b=(ia(d-c<<16,l)|0)>>16;Jf(a,a+4552|0,b);c=(ia(b,l)|0)+c|0}j[e>>1]=c;a=k[i>>2]|0;k[i>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Kf(a,e,d,63-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-16|0;if((e|0)<(d+-17|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-47|0)}else ke(a,1,f);ke(a,c+65535&65535,16);return}function Lf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,65535,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8909]|0;k[a+4588>>2]=j+(((k[8910]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=131072){if(f>>>0>131072?(g=b+131072|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,131072-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+65536;g=a+168|0;e=a+164|0;f=-65536;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==65536)break}r=l;return}function Mf(a){a=a|0;var b=0,c=0;k[a>>2]=35968;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Nf(a){a=a|0;var b=0,c=0;k[a>>2]=35968;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,4095,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;Xf(a);d=0;do{k[a+172+(d*12|0)>>2]=64;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=64;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=64;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function Pf(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35744;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Rf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Rf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Rf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+156|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+12|0;a:do if((k[f>>2]|0)>0){g=a+4580|0;h=(ia(s,q)|0)+1|0;i=a+4584|0;l=a+92|0;m=(s|0)>0;n=a+4576|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(72,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40;while(0);do if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Sf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4580|0;b=k[p>>2]|0;s=a+156|0;if((k[s>>2]|0)<=0)return;q=a+4584|0;r=a+4588|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Uf(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Tf(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Tf(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&4095|0)==(e|0))m=e;else m=e>>31&4095^4095;h=(c-m^q)-q<<20;l=h>>20;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;d=e^l;d=d>>30^d<<1;e=d>>f;if((e|0)<35){if((e|0)>30){g=(e|0)/2|0;ke(a,0,g);e=e-g|0}ke(a,1,e+1|0);ke(a,d&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-1048576?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;l=k[a+4580>>2]|0;e=j[h+(b+-1<<1)>>1]|0;d=0;while(1){c=h+(d+b<<1)|0;if((j[c>>1]|0)!=e<<16>>16){n=d;break}j[c>>1]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&65535;e=(n|0)==(g|0);i=a+4576|0;d=k[36476+(k[i>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[i>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[i>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0;c=m[l+(c<<1)>>1]|0;l=f-c|0;if((((l|0)>-1?l:0-l|0)|0)<1){c=d-f<<20>>20;Vf(a,a+4564|0,c);c=c+f|0}else{l=c-f>>31|1;b=(ia(d-c<<20,l)|0)>>20;Vf(a,a+4552|0,b);c=(ia(b,l)|0)+c|0}j[e>>1]=c&4095;a=k[i>>2]|0;k[i>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Wf(a,e,d,47-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-12|0;if((e|0)<(d+-13|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-43|0)}else ke(a,1,f);ke(a,c+4095&4095,12);return}function Xf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,4095,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8906]|0;k[a+4588>>2]=j+(((k[8907]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=8192){if(f>>>0>8192?(g=b+8192|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,8192-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+4096;g=a+168|0;e=a+164|0;f=-4096;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==4096)break}r=l;return}function Yf(a){a=a|0;var b=0,c=0;k[a>>2]=35940;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Zf(a){a=a|0;var b=0,c=0;k[a>>2]=35940;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function _f(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;hg(a);d=0;do{k[a+172+(d*12|0)>>2]=4;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=4;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=4;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function $f(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35716;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];bg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;bg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function bg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+156|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do if(b){if(!((b|0)<0?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[w>>2]|0)+1|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}c=Wa()|0;b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){e=a+12|0;b:do if((k[e>>2]|0)>0){f=a+4580|0;g=(ia(q,p)|0)+1|0;h=a+4584|0;j=a+92|0;l=(q|0)>0;m=a+4576|0;n=0;c:while(1){c=k[v>>2]|0;b=c+1|0;k[f>>2]=b;c=c+g|0;k[h>>2]=c;if(!(n&1))b=c;else{k[f>>2]=c;k[h>>2]=b}d=k[j>>2]|0;x=0;Ja(k[(k[d>>2]|0)+12>>2]|0,d|0,b|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[f>>2]|0;c=k[s>>2]|0;d=0;do{k[m>>2]=k[c+(d<<2)>>2];c=k[o>>2]|0;i[b+c>>0]=i[b+(c+-1)>>0]|0;i[(k[h>>2]|0)+-1>>0]=i[k[f>>2]>>0]|0;x=0;ra(73,a|0,0);c=x;x=0;if(c&1){f=28;break c}c=k[s>>2]|0;k[c+(d<<2)>>2]=k[m>>2];b=(k[f>>2]|0)+p|0;k[f>>2]=b;k[h>>2]=(k[h>>2]|0)+p;d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){c=Wa()|0;break}else if((f|0)==29){c=Wa()|0;break}}else f=41;while(0);do if((f|0)==41){x=0;qa(182,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return}while(0);b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}function cg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4580|0;b=k[o>>2]|0;r=a+156|0;if((k[r>>2]|0)<=0)return;p=a+4584|0;q=a+4588|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(eg(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=dg(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function dg(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&255|0)==(e|0))m=e;else m=e>>31&255^255;h=(c-m^q)-q<<24;l=h>>24;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;e=e^l;e=e>>30^e<<1;d=e>>f;if((d|0)<23){ke(a,1,d+1|0);ke(a,e&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-16777216?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}function eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;m=k[a+4580>>2]|0;e=i[h+(b+-1)>>0]|0;d=0;while(1){c=h+(d+b)|0;if((i[c>>0]|0)!=e<<24>>24){n=d;break}i[c>>0]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&255;e=(n|0)==(g|0);j=a+4576|0;d=k[36476+(k[j>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[j>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[j>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0;c=l[m+c>>0]|0;m=f-c|0;if((((m|0)>-1?m:0-m|0)|0)<1){c=d-f<<24>>24;fg(a,a+4564|0,c);c=c+f|0}else{m=c-f>>31|1;b=(ia(d-c<<24,m)|0)>>24;fg(a,a+4552|0,b);c=(ia(b,m)|0)+c|0}i[e>>0]=c;a=k[j>>2]|0;k[j>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;gg(a,e,d,31-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function gg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-8|0;if((e|0)<(d+-9|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-39|0)}else ke(a,1,f);ke(a,c+255&255,8);return}function hg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8900]|0;k[a+4588>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+256;g=a+168|0;e=a+164|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ig(a){a=a|0;var b=0,c=0;k[a>>2]=35912;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function jg(a){a=a|0;var b=0,c=0;k[a>>2]=35912;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function kg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;tg(a);d=0;do{k[a+172+(d*12|0)>>2]=4;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=4;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=4;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function lg(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35688;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];ng(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;ng(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function mg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function ng(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+156|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do if(b){if(!(b>>>0>1431655765?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[w>>2]|0)+3|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){e=a+12|0;b:do if((k[e>>2]|0)>0){f=a+4580|0;g=(ia(q,p)|0)+1|0;h=a+4584|0;j=a+92|0;l=(q|0)>0;m=a+4576|0;n=0;c:while(1){d=k[v>>2]|0;b=d+3|0;k[f>>2]=b;c=d+(g*3|0)|0;k[h>>2]=c;if(!(n&1))b=g;else{k[f>>2]=c;k[h>>2]=b;b=1}c=k[j>>2]|0;x=0;Ja(k[(k[c>>2]|0)+12>>2]|0,c|0,d+(b*3|0)|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*3|0)|0;c=c+((y+-1|0)*3|0)|0;i[b>>0]=i[c>>0]|0;i[b+1>>0]=i[c+1>>0]|0;i[b+2>>0]=i[c+2>>0]|0;b=k[f>>2]|0;c=(k[h>>2]|0)+-3|0;i[c>>0]=i[b>>0]|0;i[c+1>>0]=i[b+1>>0]|0;i[c+2>>0]=i[b+2>>0]|0;x=0;ra(74,a|0,0);c=x;x=0;if(c&1){f=28;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*3|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*3|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){d=Wa()|0;break}else if((f|0)==29){d=Wa()|0;break}}else f=41;while(0);do if((f|0)==41){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=t;return}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=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;A=a+156|0;if((k[A>>2]|0)<=0)return;B=a+4584|0;C=a+4580|0;D=a+4588|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(pg(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=qg(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=qg(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=qg(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function pg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=(k[a+156>>2]|0)-b|0;n=k[a+4584>>2]|0;o=k[a+4580>>2]|0;j=n+((b+-1|0)*3|0)|0;p=i[j>>0]|0;h=i[j+1>>0]|0;j=i[j+2>>0]|0;f=0;while(1){c=n+((f+b|0)*3|0)|0;d=c+1|0;e=c+2|0;if(!(((i[c>>0]|0)==p<<24>>24?(i[d>>0]|0)==h<<24>>24:0)&(i[e>>0]|0)==j<<24>>24))break;i[c>>0]=p;i[d>>0]=h;i[e>>0]=j;f=f+1|0;if((f|0)==(m|0)){f=m;break}}e=(f|0)==(m|0);g=a+4576|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0;b=m+2|0;e=i[b>>0]|0;o=o+(d*3|0)|0;d=i[o+1>>0]|0;t=i[o+2>>0]|0;o=l[o>>0]|0;q=o-(p&255)>>31|1;r=(ia((l[m>>0]|0)-o<<24,q)|0)>>24;s=a+4552|0;rg(a,s,r);p=d&255;d=p-(h&255)>>31|1;c=(ia((c&255)-p<<24,d)|0)>>24;rg(a,s,c);h=t&255;j=h-(j&255)>>31|1;e=(ia((e&255)-h<<24,j)|0)>>24;rg(a,s,e);o=(ia(r,q)|0)+o&255;p=(ia(c,d)|0)+p&255;a=(ia(e,j)|0)+h&255;i[m>>0]=o;i[n>>0]=p;i[b>>0]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){t=m;return t|0}ke(a,1,1);t=m;return t|0}function qg(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&255|0)==(e|0))m=e;else m=e>>31&255^255;h=(c-m^q)-q<<24;l=h>>24;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;e=e^l;e=e>>30^e<<1;d=e>>f;if((d|0)<23){ke(a,1,d+1|0);ke(a,e&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-16777216?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}function rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;sg(a,e,d,31-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-8|0;if((e|0)<(d+-9|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-39|0)}else ke(a,1,f);ke(a,c+255&255,8);return}function tg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8900]|0;k[a+4588>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+256;g=a+168|0;e=a+164|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ug(a){a=a|0;var b=0,c=0;k[a>>2]=35884;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function vg(a){a=a|0;var b=0,c=0;k[a>>2]=35884;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function wg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;Gg(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function xg(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,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35660;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];zg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;zg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0} -function yg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function zg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;t=r;r=r+32|0;v=t+12|0;s=t;p=a+180|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)n=k[a+24>>2]|0;else n=1;b=ia(n<<1,q)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do if(b){if(!((b|0)<0?(x=0,qa(178,v|0),u=x,x=0,u&1):0))o=6;if((o|0)==6?(x=0,c=ta(67,b|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[w>>2]|0)+1|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!n)o=19;else{if(!(n>>>0>1073741823?(x=0,qa(178,s|0),m=x,x=0,m&1):0))o=17;if((o|0)==17?(d=n<<2,x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[s>>2]=e;o=e+(n<<2)|0;k[s+8>>2]=o;sw(e|0,0,d|0)|0;k[u>>2]=o;o=19;break}c=Wa()|0;b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}while(0);if((o|0)==19){g=a+12|0;b:do if((k[g>>2]|0)>0){h=a+4604|0;j=(ia(n,q)|0)+1|0;l=a+4608|0;m=a+92|0;f=a+4600|0;if((n|0)>0)e=0;else{d=0;while(1){c=k[v>>2]|0;b=c+1|0;k[h>>2]=b;c=c+j|0;k[l>>2]=c;if(!(d&1))b=c;else{k[h>>2]=c;k[l>>2]=b}n=k[m>>2]|0;x=0;Ja(k[(k[n>>2]|0)+12>>2]|0,n|0,b|0,k[p>>2]|0,q|0);n=x;x=0;if(n&1)break;d=d+1|0;if((d|0)>=(k[g>>2]|0)){o=45;break b}}c=Wa()|0;break}c:while(1){c=k[v>>2]|0;b=c+1|0;k[h>>2]=b;c=c+j|0;k[l>>2]=c;if(!(e&1))b=c;else{k[h>>2]=c;k[l>>2]=b}o=k[m>>2]|0;x=0;Ja(k[(k[o>>2]|0)+12>>2]|0,o|0,b|0,k[p>>2]|0,q|0);o=x;x=0;if(o&1){o=28;break}b=k[s>>2]|0;c=k[h>>2]|0;d=0;do{k[f>>2]=k[b+(d<<2)>>2];o=k[p>>2]|0;i[c+o>>0]=i[c+(o+-1)>>0]|0;i[(k[l>>2]|0)+-1>>0]=i[k[h>>2]>>0]|0;x=0;ra(75,a|0,0);o=x;x=0;if(o&1){o=36;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[f>>2];c=(k[h>>2]|0)+q|0;k[h>>2]=c;k[l>>2]=(k[l>>2]|0)+q;d=d+1|0}while((d|0)<(n|0));e=e+1|0;if((e|0)>=(k[g>>2]|0)){o=45;break b}}if((o|0)==28){c=Wa()|0;break}else if((o|0)==36){c=Wa()|0;break}}else o=45;while(0);do if((o|0)==45){x=0;qa(182,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return}while(0);b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}function Ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4604|0;b=k[o>>2]|0;r=a+180|0;if((k[r>>2]|0)<=0)return;p=a+4608|0;q=a+4612|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Cg(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=Bg(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function Bg(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;Fg(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&255;return r|0}r=e&~(b>>31);r=r&255;return r|0}function Cg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;j=(k[a+180>>2]|0)-b|0;m=k[a+4608>>2]|0;n=k[a+4604>>2]|0;e=i[m+(b+-1)>>0]|0;h=e&255;c=a+144|0;f=0;while(1){d=m+(f+b)|0;g=(l[d>>0]|0)-h|0;if((((g|0)>-1?g:0-g|0)|0)>(k[c>>2]|0))break;i[d>>0]=e;f=f+1|0;if((f|0)==(j|0)){f=j;break}}e=(f|0)==(j|0);g=a+4600|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0,h,l[n+j>>0]|0)|0;i[b>>0]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){a=j;return a|0}ke(a,1,1);a=j;return a|0}function Dg(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;h=c-d|0;i=a+136|0;g=a+144|0;e=k[g>>2]|0;if((((h|0)>-1?h:0-h|0)|0)>(e|0)){f=d-c>>31|1;b=ia(f,b-d|0)|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;c=((b|0)<0?e:0)+b|0;e=c-((c|0)<((e+1|0)/2|0|0)?0:e)|0;Eg(a,a+4576|0,e);e=ia(e,f)|0;f=k[g>>2]|0;g=f<<1|1;e=(ia(e,g)|0)+d|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&255;return i|0}i=b&~(e>>31);i=i&255;return i|0}else{b=b-c|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;f=((b|0)<0?e:0)+b|0;e=f-((f|0)<((e+1|0)/2|0|0)?0:e)|0;Eg(a,a+4588|0,e);f=k[g>>2]|0;g=f<<1|1;e=(ia(g,e)|0)+c|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&255;return i|0}i=b&~(e>>31);i=i&255;return i|0}return 0}function Eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Fg(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Fg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0;while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Hg(a){a=a|0;var b=0,c=0;k[a>>2]=35856;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Ig(a){a=a|0;var b=0,c=0;k[a>>2]=35856;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Jg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Kg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;Vg(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function Lg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Mg(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Mg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+8|0;a:do if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;i=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(76,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42;while(0);do if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Ng(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;q=a+4596|0;c=k[q>>2]|0;u=a+172|0;b=k[u>>2]|0;if((b|0)<=0)return;r=a+4600|0;s=a+4604|0;t=a+4592|0;h=c;f=m[c+-2>>1]|0;c=m[c>>1]|0;p=0;while(1){n=k[r>>2]|0;g=j[n+(p+-1<<1)>>1]|0;o=g&65535;e=p+1|0;d=m[h+(e<<1)>>1]|0;l=k[s>>2]|0;h=c-f|0;f=f-o|0;l=((((i[l+(d-c)>>0]|0)*9|0)+(i[l+h>>0]|0)|0)*9|0)+(i[l+f>>0]|0)|0;n=n+(p<<1)|0;if(!l){b=Qg(a,g,n,b-p|0)|0;c=b+p|0;if((c|0)!=(k[u>>2]|0)){o=Rg(a,o,m[(k[q>>2]|0)+(c<<1)>>1]|0)|0;j[(k[r>>2]|0)+(c<<1)>>1]=o;o=k[t>>2]|0;k[t>>2]=(o|0)<1?0:o+-1|0;b=b+1|0}e=b+p|0;d=k[q>>2]|0;c=m[d+(e+-1<<1)>>1]|0;d=m[d+(e<<1)>>1]|0}else{b=c-o>>31;if((b^f|0)<0)b=c;else b=o+((b^h|0)<0?0:h)|0;o=Pg(a,l,m[n>>1]|0,b,0)|0;j[(k[r>>2]|0)+(p<<1)>>1]=o}b=k[u>>2]|0;if((b|0)<=(e|0))break;h=k[q>>2]|0;f=c;c=d;p=e}return}function Og(a){a=a|0;var b=0,c=0,d=0,e=0;d=a+116|0;c=k[d>>2]|0;if((i[c>>0]|0)!=-1){e=a+112|0;b=k[e>>2]|0;if((b|0)<1){qe(a);b=k[e>>2]|0;c=k[d>>2]|0}a=a+108|0;d=k[a>>2]|0;k[e>>2]=b+-1;b=d<<1;k[a>>2]=b;if((i[c>>0]|0)!=-1){b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,6,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}else b=k[a+108>>2]|0;if(!b)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,6,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}function Pg(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&65535;return a|0}a=c&~(e>>31);a=a&65535;return a|0}function Qg(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,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b-c|0;g=a+128|0;d=a+136|0;if((((f|0)>-1?f:0-f|0)|0)>(k[d>>2]|0)){b=ia(Sg(a,a+4568|0)|0,c-b>>31|1)|0;e=k[d>>2]|0;f=e<<1|1;b=(ia(b,f)|0)+c|0;if((b|0)>=(0-e|0)){d=k[g>>2]|0;if((d+e|0)<(b|0))b=b-(ia(k[a+132>>2]|0,f)|0)|0}else{b=(ia(k[a+132>>2]|0,f)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&65535;return a|0}a=d&~(b>>31);a=a&65535;return a|0}else{c=Sg(a,a+4580|0)|0;f=k[d>>2]|0;e=f<<1|1;b=(ia(e,c)|0)+b|0;if((b|0)>=(0-f|0)){d=k[g>>2]|0;if((d+f|0)<(b|0))b=b-(ia(k[a+132>>2]|0,e)|0)|0}else{b=(ia(k[a+132>>2]|0,e)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&65535;return a|0}a=d&~(b>>31);a=a&65535;return a|0}return 0}function Sg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function Tg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;f=a+112|0;if((k[f>>2]|0)<16)qe(a);g=a+108|0;c=k[g>>2]|0;if((c|0)>=0)if(!(c&1073741824))if(!(c&536870912))if(!(c&268435456))if(!(c&134217728))if(!(c&67108864))if(!(c&33554432))if(!(c&16777216))if(!(c&8388608))if(!(c&4194304))if(!(c&2097152))if(!(c&1048576))if(!(c&524288))if(!(c&262144))if(!(c&131072)){e=c>>>12&16;b=e+-1|0;if(!e){b=(k[f>>2]|0)+-15|0;k[f>>2]=b;d=c<<15;k[g>>2]=d;c=b;b=15;while(1){if((c|0)<1){qe(a);e=k[g>>2]|0;c=k[f>>2]|0}else e=d;c=c+-1|0;k[f>>2]=c;d=e<<1;k[g>>2]=d;if((e|0)<0)break;else b=b+1|0}return b|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;a=b+1|0;k[f>>2]=(k[f>>2]|0)-a;k[g>>2]=c<>2]|0;if((c|0)<(b|0)){qe(a);c=k[d>>2]|0;if((c|0)<(b|0)){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}e=a+108|0;a=k[e>>2]|0;k[d>>2]=c-b;k[e>>2]=a<>>(32-b|0)|0}function Vg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0;while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Wg(a){a=a|0;var b=0,c=0;k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Xg(a){a=a|0;var b=0,c=0;k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Yg(a){a=a|0;var b=0,c=0;k[a>>2]=35828;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Zg(a){a=a|0;var b=0,c=0;k[a>>2]=35828;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function _g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function $g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;hh(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function ah(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);bh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do if(b){if(!(b>>>0>715827882?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(x=0,c=ta(67,b*6|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;d=c+(b*6|0)|0;k[C+8>>2]=d;while(1){j[c>>1]=0;j[c+2>>1]=0;j[c+4>>1]=0;b=b+-1|0;if(!b)break;else c=c+6|0}k[D>>2]=d;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)g=20;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=18;if((g|0)==18?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=20;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==20){f=a+8|0;a:do if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;i=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;b:while(1){d=k[C>>2]|0;c=d+6|0;k[g>>2]=c;d=d+(i*6|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*6|0)|0;c=c+((b+-1|0)*6|0)|0;j[e>>1]=j[c>>1]|0;j[e+2>>1]=j[c+2>>1]|0;j[e+4>>1]=j[c+4>>1]|0;e=(k[l>>2]|0)+-6|0;c=k[g>>2]|0;j[e>>1]=j[c>>1]|0;j[e+2>>1]=j[c+2>>1]|0;j[e+4>>1]=j[c+4>>1]|0;x=0;ra(77,a|0,0);e=x;x=0;if(e&1){g=31;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*6|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*6|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*6|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=32;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=44;break a}}if((g|0)==31){d=Wa()|0;break}else if((g|0)==32){d=Wa()|0;break}}else g=44;while(0);do if((g|0)==44){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}function ch(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=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;N=r;r=r+32|0;D=N+24|0;M=N+18|0;L=N+12|0;E=N+6|0;F=N;G=a+172|0;b=k[G>>2]|0;if((b|0)<=0){r=N;return}H=a+4600|0;I=a+4596|0;J=a+4604|0;K=a+4592|0;C=0;while(1){d=C+-1|0;e=k[H>>2]|0;O=k[I>>2]|0;c=C+1|0;f=m[O+(C*6|0)>>1]|0;B=k[J>>2]|0;g=m[O+(d*6|0)>>1]|0;h=f-g|0;l=m[e+(d*6|0)>>1]|0;n=g-l|0;o=((((i[B+((m[O+(c*6|0)>>1]|0)-f)>>0]|0)*9|0)+(i[B+h>>0]|0)|0)*9|0)+(i[B+n>>0]|0)|0;p=m[O+(C*6|0)+2>>1]|0;q=m[O+(d*6|0)+2>>1]|0;s=p-q|0;t=m[e+(d*6|0)+2>>1]|0;u=q-t|0;v=((((i[B+((m[O+(c*6|0)+2>>1]|0)-p)>>0]|0)*9|0)+(i[B+s>>0]|0)|0)*9|0)+(i[B+u>>0]|0)|0;w=m[O+(C*6|0)+4>>1]|0;x=m[O+(d*6|0)+4>>1]|0;y=w-x|0;z=m[e+(d*6|0)+4>>1]|0;A=x-z|0;B=((((i[B+((m[O+(c*6|0)+4>>1]|0)-w)>>0]|0)*9|0)+(i[B+y>>0]|0)|0)*9|0)+(i[B+A>>0]|0)|0;if(!(v|o|B)){c=e+(d*6|0)|0;j[L>>1]=j[c>>1]|0;j[L+2>>1]=j[c+2>>1]|0;j[L+4>>1]=j[c+4>>1]|0;j[D>>1]=j[c>>1]|0;j[D+2>>1]=j[c+2>>1]|0;j[D+4>>1]=j[c+4>>1]|0;b=dh(a,D,e+(C*6|0)|0,b-C|0)|0;c=b+C|0;if((c|0)!=(k[G>>2]|0)){O=(k[I>>2]|0)+(c*6|0)|0;j[F>>1]=j[O>>1]|0;j[F+2>>1]=j[O+2>>1]|0;j[F+4>>1]=j[O+4>>1]|0;O=(k[H>>2]|0)+(c*6|0)|0;j[M>>1]=j[L>>1]|0;j[M+2>>1]=j[L+2>>1]|0;j[M+4>>1]=j[L+4>>1]|0;j[D>>1]=j[F>>1]|0;j[D+2>>1]=j[F+2>>1]|0;j[D+4>>1]=j[F+4>>1]|0;eh(E,a,M,D);j[O>>1]=j[E>>1]|0;j[O+2>>1]=j[E+2>>1]|0;j[O+4>>1]=j[E+4>>1]|0;O=k[K>>2]|0;k[K>>2]=(O|0)<1?0:O+-1|0;b=b+1|0}c=b+C|0}else{d=m[e+(C*6|0)>>1]|0;b=f-l>>31;if((b^n|0)>=0)if((b^h|0)<0)b=l;else b=l-g+f|0;else b=f;f=fh(a,o,d,b,0)|0;d=m[(k[H>>2]|0)+(C*6|0)+2>>1]|0;b=p-t>>31;if((b^u|0)>=0)if((b^s|0)<0)b=t;else b=t-q+p|0;else b=p;d=fh(a,v,d,b,0)|0;e=m[(k[H>>2]|0)+(C*6|0)+4>>1]|0;b=w-z>>31;if((b^A|0)>=0)if((b^y|0)<0)b=z;else b=z-x+w|0;else b=w;B=fh(a,B,e,b,0)|0;O=k[H>>2]|0;j[O+(C*6|0)>>1]=f;j[O+(C*6|0)+2>>1]=d;j[O+(C*6|0)+4>>1]=B}b=k[G>>2]|0;if((c|0)>=(b|0))break;else C=c}r=N;return}function dh(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,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{p=c+(f*6|0)|0;j[p>>1]=j[b>>1]|0;j[p+2>>1]=j[b+2>>1]|0;j[p+4>>1]=j[b+4>>1]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function eh(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,l=0,n=0,o=0;i=b+4568|0;o=gh(b,i)|0;g=gh(b,i)|0;i=gh(b,i)|0;f=b+128|0;e=m[d>>1]|0;l=k[b+136>>2]|0;n=l<<1|1;e=(ia(ia(n,o)|0,e-(m[c>>1]|0)>>31|1)|0)+e|0;o=0-l|0;if((e|0)>=(o|0)){f=k[f>>2]|0;if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else{e=(ia(k[b+132>>2]|0,n)|0)+e|0;f=k[f>>2]|0}if((e&f|0)!=(e|0))e=f&~(e>>31);h=e&65535;e=m[d+2>>1]|0;e=(ia(ia(n,g)|0,e-(m[c+2>>1]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)!=(e|0))e=f&~(e>>31);g=e&65535;e=m[d+4>>1]|0;e=(ia(ia(n,i)|0,e-(m[c+4>>1]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)==(e|0)){b=e;b=b&65535;j[a>>1]=h;o=a+2|0;j[o>>1]=g;a=a+4|0;j[a>>1]=b;return}b=f&~(e>>31);b=b&65535;j[a>>1]=h;o=a+2|0;j[o>>1]=g;a=a+4|0;j[a>>1]=b;return}function fh(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&65535;return a|0}a=c&~(e>>31);a=a&65535;return a|0}function gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0;while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function ih(a){a=a|0;var b=0,c=0;k[a>>2]=35800;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function jh(a){a=a|0;var b=0,c=0;k[a>>2]=35800;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;th(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function mh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);nh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function nh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do if(b){if(!(b>>>0>1431655765?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[D>>2]|0)+3|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){f=a+8|0;b:do if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;j=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;c:while(1){d=k[C>>2]|0;c=d+3|0;k[g>>2]=c;d=d+(j*3|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*3|0)|0;c=c+((b+-1|0)*3|0)|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;c=k[g>>2]|0;e=(k[l>>2]|0)+-3|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;x=0;ra(78,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*3|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*3|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*3|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){d=Wa()|0;break}else if((f|0)==31){d=Wa()|0;break}}else f=43;while(0);do if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function oh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=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;M=r;r=r+16|0;C=M+12|0;L=M+9|0;K=M+6|0;D=M+3|0;E=M;F=a+172|0;b=k[F>>2]|0;if((b|0)<=0){r=M;return}G=a+4600|0;H=a+4596|0;I=a+4604|0;J=a+4592|0;B=0;while(1){y=B+-1|0;d=k[G>>2]|0;e=d+(y*3|0)|0;N=k[H>>2]|0;c=B+1|0;f=l[N+(B*3|0)>>0]|0;A=k[I>>2]|0;g=l[N+(y*3|0)>>0]|0;h=f-g|0;j=l[e>>0]|0;m=g-j|0;n=((((i[A+((l[N+(c*3|0)>>0]|0)-f)>>0]|0)*9|0)+(i[A+h>>0]|0)|0)*9|0)+(i[A+m>>0]|0)|0;o=l[N+(B*3|0)+1>>0]|0;p=l[N+(y*3|0)+1>>0]|0;q=o-p|0;s=l[d+(y*3|0)+1>>0]|0;t=p-s|0;u=((((i[A+((l[N+(c*3|0)+1>>0]|0)-o)>>0]|0)*9|0)+(i[A+q>>0]|0)|0)*9|0)+(i[A+t>>0]|0)|0;v=l[N+(B*3|0)+2>>0]|0;w=l[N+(y*3|0)+2>>0]|0;x=v-w|0;y=l[d+(y*3|0)+2>>0]|0;z=w-y|0;A=((((i[A+((l[N+(c*3|0)+2>>0]|0)-v)>>0]|0)*9|0)+(i[A+x>>0]|0)|0)*9|0)+(i[A+z>>0]|0)|0;if(!(u|n|A)){i[K>>0]=i[e>>0]|0;i[K+1>>0]=i[e+1>>0]|0;i[K+2>>0]=i[e+2>>0]|0;i[C>>0]=i[e>>0]|0;i[C+1>>0]=i[e+1>>0]|0;i[C+2>>0]=i[e+2>>0]|0;b=ph(a,C,d+(B*3|0)|0,b-B|0)|0;c=b+B|0;if((c|0)!=(k[F>>2]|0)){N=(k[H>>2]|0)+(c*3|0)|0;i[E>>0]=i[N>>0]|0;i[E+1>>0]=i[N+1>>0]|0;i[E+2>>0]=i[N+2>>0]|0;N=k[G>>2]|0;i[L>>0]=i[K>>0]|0;i[L+1>>0]=i[K+1>>0]|0;i[L+2>>0]=i[K+2>>0]|0;i[C>>0]=i[E>>0]|0;i[C+1>>0]=i[E+1>>0]|0;i[C+2>>0]=i[E+2>>0]|0;qh(D,a,L,C);N=N+(c*3|0)|0;i[N>>0]=i[D>>0]|0;i[N+1>>0]=i[D+1>>0]|0;i[N+2>>0]=i[D+2>>0]|0;N=k[J>>2]|0;k[J>>2]=(N|0)<1?0:N+-1|0;b=b+1|0}c=b+B|0}else{d=l[d+(B*3|0)>>0]|0;b=f-j>>31;if((b^m|0)>=0)if((b^h|0)<0)b=j;else b=j-g+f|0;else b=f;f=rh(a,n,d,b,0)|0;d=l[(k[G>>2]|0)+(B*3|0)+1>>0]|0;b=o-s>>31;if((b^t|0)>=0)if((b^q|0)<0)b=s;else b=s-p+o|0;else b=o;d=rh(a,u,d,b,0)|0;e=l[(k[G>>2]|0)+(B*3|0)+2>>0]|0;b=v-y>>31;if((b^z|0)>=0)if((b^x|0)<0)b=y;else b=y-w+v|0;else b=v;A=rh(a,A,e,b,0)|0;N=(k[G>>2]|0)+(B*3|0)|0;i[N>>0]=f;i[N+1>>0]=d;i[N+2>>0]=A}b=k[F>>2]|0;if((c|0)>=(b|0))break;else B=c}r=M;return}function ph(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,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{o=c+(f*3|0)|0;i[o>>0]=i[b>>0]|0;i[o+1>>0]=i[b+1>>0]|0;i[o+2>>0]=i[b+2>>0]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function qh(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,j=0,m=0,n=0,o=0;j=b+4568|0;o=sh(b,j)|0;g=sh(b,j)|0;j=sh(b,j)|0;f=b+128|0;e=l[d>>0]|0;m=k[b+136>>2]|0;n=m<<1|1;e=(ia(ia(n,o)|0,e-(l[c>>0]|0)>>31|1)|0)+e|0;o=0-m|0;if((e|0)>=(o|0)){f=k[f>>2]|0;if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else{e=(ia(k[b+132>>2]|0,n)|0)+e|0;f=k[f>>2]|0}if((e&f|0)!=(e|0))e=f&~(e>>31);h=e&255;e=l[d+1>>0]|0;e=(ia(ia(n,g)|0,e-(l[c+1>>0]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)!=(e|0))e=f&~(e>>31);g=e&255;e=l[d+2>>0]|0;e=(ia(ia(n,j)|0,e-(l[c+2>>0]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)==(e|0)){b=e;b=b&255;i[a>>0]=h;o=a+1|0;i[o>>0]=g;a=a+2|0;i[a>>0]=b;return}b=f&~(e>>31);b=b&255;i[a>>0]=h;o=a+1|0;i[o>>0]=g;a=a+2|0;i[a>>0]=b;return}function rh(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&255;return a|0}a=c&~(e>>31);a=a&255;return a|0}function sh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function th(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0;while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function uh(a){a=a|0;var b=0,c=0;k[a>>2]=35772;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function vh(a){a=a|0;var b=0,c=0;k[a>>2]=35772;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,65535,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;Fh(a);d=0;do{k[a+164+(d*12|0)>>2]=1024;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=1024;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=1024;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function yh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);zh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+8|0;a:do if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;i=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(79,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42;while(0);do if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4572|0;b=k[p>>2]|0;s=a+148|0;if((k[s>>2]|0)<=0)return;q=a+4576|0;r=a+4580|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Ch(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Bh(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Bh(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&65535|0)!=(c|0))c=c>>31&65535^65535;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<47){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=j[e+(b+-1<<1)>>1]|0;g=a+148|0;e=Dh(a,c,e+(b<<1)|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&65535;b=m[(k[a+4572>>2]|0)+(d<<1)>>1]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(Eh(a,a+4556|0)|0)+c|0;else c=(ia(Eh(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;j[(k[f>>2]|0)+(d<<1)>>1]=c;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function Dh(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,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Eh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do if((c|0)<(46-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,16)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Fh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,65535,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8909]|0;k[a+4580>>2]=j+(((k[8910]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=131072){if(f>>>0>131072?(g=b+131072|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,131072-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+65536;g=a+160|0;e=a+156|0;f=-65536;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==65536)break}r=l;return}function Gh(a){a=a|0;var b=0,c=0;k[a>>2]=35744;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Hh(a){a=a|0;var b=0,c=0;k[a>>2]=35744;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,4095,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;Rh(a);d=0;do{k[a+164+(d*12|0)>>2]=64;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=64;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=64;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function Kh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Lh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+8|0;a:do if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;i=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(80,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42;while(0);do if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4572|0;b=k[p>>2]|0;s=a+148|0;if((k[s>>2]|0)<=0)return;q=a+4576|0;r=a+4580|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Oh(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Nh(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Nh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&4095|0)!=(c|0))c=c>>31&4095^4095;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<35){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=j[e+(b+-1<<1)>>1]|0;g=a+148|0;e=Ph(a,c,e+(b<<1)|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&65535;b=m[(k[a+4572>>2]|0)+(d<<1)>>1]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(Qh(a,a+4556|0)|0)+c|0;else c=(ia(Qh(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;j[(k[f>>2]|0)+(d<<1)>>1]=c&4095;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function Ph(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,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Qh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do if((c|0)<(34-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,12)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Rh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,4095,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8906]|0;k[a+4580>>2]=j+(((k[8907]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=8192){if(f>>>0>8192?(g=b+8192|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,8192-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+4096;g=a+160|0;e=a+156|0;f=-4096;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==4096)break}r=l;return}function Sh(a){a=a|0;var b=0,c=0;k[a>>2]=35716;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Th(a){a=a|0;var b=0,c=0;k[a>>2]=35716;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;bi(a);d=0;do{k[a+164+(d*12|0)>>2]=4;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=4;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=4;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function Wh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Xh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Xh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[D>>2]|0)+1|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}c=Wa()|0;b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){f=a+8|0;b:do if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;j=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;c:while(1){d=k[C>>2]|0;c=d+1|0;k[g>>2]=c;d=d+j|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;i[c+e>>0]=i[c+(e+-1)>>0]|0;i[(k[l>>2]|0)+-1>>0]=i[k[g>>2]>>0]|0;x=0;ra(81,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+w|0;k[g>>2]=c;b=(k[l>>2]|0)+w|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){c=Wa()|0;break}else if((f|0)==31){c=Wa()|0;break}}else f=43;while(0);do if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);r=A;return}while(0);b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}function Yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4572|0;b=k[o>>2]|0;r=a+148|0;if((k[r>>2]|0)<=0)return;p=a+4576|0;q=a+4580|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(_h(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=Zh(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function Zh(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&255|0)!=(c|0))c=c>>31&255^255;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<23){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=i[e+(b+-1)>>0]|0;g=a+148|0;e=$h(a,c,e+b|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&255;b=l[(k[a+4572>>2]|0)+d>>0]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(ai(a,a+4556|0)|0)+c|0;else c=(ia(ai(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;i[(k[f>>2]|0)+d>>0]=c;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function $h(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,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;sw(c|0,b|0,e|0)|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do if((c|0)<(22-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,8)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8900]|0;k[a+4580>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+256;g=a+160|0;e=a+156|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ci(a){a=a|0;var b=0,c=0;k[a>>2]=35688;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function di(a){a=a|0;var b=0,c=0;k[a>>2]=35688;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function ei(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function fi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;ni(a);d=0;do{k[a+164+(d*12|0)>>2]=4;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=4;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=4;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function gi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);hi(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function hi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do if(b){if(!(b>>>0>1431655765?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[D>>2]|0)+3|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){f=a+8|0;b:do if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;j=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;c:while(1){d=k[C>>2]|0;c=d+3|0;k[g>>2]=c;d=d+(j*3|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*3|0)|0;c=c+((b+-1|0)*3|0)|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;c=k[g>>2]|0;e=(k[l>>2]|0)+-3|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;x=0;ra(82,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*3|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*3|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*3|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){d=Wa()|0;break}else if((f|0)==31){d=Wa()|0;break}}else f=43;while(0);do if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function ii(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=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;A=a+148|0;if((k[A>>2]|0)<=0)return;B=a+4576|0;C=a+4572|0;D=a+4580|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(ji(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=ki(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=ki(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=ki(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function ji(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;j=r;r=r+16|0;m=j+3|0;n=j;f=a+4576|0;c=k[f>>2]|0;d=c+((b+-1|0)*3|0)|0;g=i[d>>0]|0;h=i[d+1>>0]|0;d=i[d+2>>0]|0;i[n>>0]=g;i[n+1>>0]=h;i[n+2>>0]=d;l=a+148|0;e=(k[l>>2]|0)-b|0;i[m>>0]=i[n>>0]|0;i[m+1>>0]=i[n+1>>0]|0;i[m+2>>0]=i[n+2>>0]|0;e=li(a,m,c+(b*3|0)|0,e)|0;c=e+b|0;if((c|0)==(k[l>>2]|0)){n=e;r=j;return n|0}m=(k[a+4572>>2]|0)+(c*3|0)|0;b=i[m>>0]|0;l=i[m+1>>0]|0;m=i[m+2>>0]|0;n=k[f>>2]|0;f=a+4544|0;p=mi(a,f)|0;o=mi(a,f)|0;b=b&255;b=(ia(b-(g&255)>>31|1,p)|0)+b&255;l=l&255;l=(ia(l-(h&255)>>31|1,o)|0)+l&255;m=m&255;m=(ia(m-(d&255)>>31|1,mi(a,f)|0)|0)+m&255;n=n+(c*3|0)|0;i[n>>0]=b;i[n+1>>0]=l;i[n+2>>0]=m;n=a+4568|0;m=k[n>>2]|0;k[n>>2]=(m|0)<1?0:m+-1|0;n=e+1|0;r=j;return n|0}function ki(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,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&255|0)!=(c|0))c=c>>31&255^255;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<23){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}function li(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,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{o=c+(f*3|0)|0;i[o>>0]=i[b>>0]|0;i[o+1>>0]=i[b+1>>0]|0;i[o+2>>0]=i[b+2>>0]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do if((c|0)<(22-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,8)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0} -function Vp(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+128|0;f=m;o=m+116|0;p=m+104|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,0,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=cv(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Wp(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,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+240|0;g=m+8|0;a=m;o=m+204|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,0,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,23,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=cv(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Xp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+352|0;t=z+312|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+316|0;s=z+80|0;h=z+84|0;y=z+76|0;w=z+72|0;u=z+68|0;v=z+64|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58898,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,k[n>>2]=k[c+8>>2],p[n+8>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<3)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}while(0);do if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(4,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(40,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Yp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;y=r;r=r+16|0;z=y;w=Ss(g,44212)|0;u=Ss(g,44368)|0;Mb[k[(k[u>>2]|0)+20>>2]&127](z,u);k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,g|0)|0;v=x;x=0;if(v&1)t=8;else{l=k[f>>2]|0;k[f>>2]=l+4;k[l>>2]=g;l=a+1|0;t=10}break}default:{l=a;t=10}}a:do if((t|0)==10){v=c;b:do if((v-l|0)>1?(i[l>>0]|0)==48:0){h=l+1|0;switch(i[h>>0]|0){case 88:case 120:break;default:{t=11;break b}}x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,48)|0;s=x;x=0;if(s&1){t=8;break a}s=k[f>>2]|0;k[f>>2]=s+4;k[s>>2]=g;l=l+2|0;x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,i[h>>0]|0)|0;s=x;x=0;if(s&1){t=8;break a}s=k[f>>2]|0;k[f>>2]=s+4;k[s>>2]=g;if(l>>>0>>0){g=l;while(1){h=i[g>>0]|0;x=0;j=Da(3)|0;s=x;x=0;if(s&1)break;x=0;h=Aa(39,h<<24>>24|0,j|0)|0;s=x;x=0;if(s&1)break;if(!h){s=l;break b}g=g+1|0;if(g>>>0>=c>>>0){s=l;break b}}g=Wa()|0;break a}else{s=l;g=l}}else t=11;while(0);c:do if((t|0)==11)if(l>>>0>>0){g=l;while(1){h=i[g>>0]|0;x=0;j=Da(3)|0;s=x;x=0;if(s&1)break;x=0;h=Aa(40,h<<24>>24|0,j|0)|0;s=x;x=0;if(s&1)break;if(!h){s=l;break c}g=g+1|0;if(g>>>0>=c>>>0){s=l;break c}}g=Wa()|0;break a}else{s=l;g=l}while(0);p=i[z>>0]|0;q=z+4|0;if(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0){if((s|0)!=(g|0)?(m=g+-1|0,s>>>0>>0):0){j=s;h=m;do{p=i[j>>0]|0;i[j>>0]=i[h>>0]|0;i[h>>0]=p;j=j+1|0;h=h+-1|0}while(j>>>0>>0)}x=0;m=ta(k[(k[u>>2]|0)+16>>2]|0,u|0)|0;p=x;x=0;if(p&1){t=8;break}n=z+8|0;o=z+1|0;d:do if(s>>>0>>0){h=0;j=0;p=s;while(1){l=i[((i[z>>0]&1)==0?o:k[n>>2]|0)+j>>0]|0;if(l<<24>>24>0&(h|0)==(l<<24>>24|0)){h=k[f>>2]|0;k[f>>2]=h+4;k[h>>2]=m;h=i[z>>0]|0;l=0;j=(j>>>0<(((h&1)==0?(h&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+j|0}else l=h;x=0;h=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,i[p>>0]|0)|0;A=x;x=0;if(A&1)break;A=k[f>>2]|0;k[f>>2]=A+4;k[A>>2]=h;p=p+1|0;if(p>>>0>=g>>>0)break d;else h=l+1|0}g=Wa()|0;break a}while(0);h=d+(s-a<<2)|0;l=k[f>>2]|0;if((h|0)!=(l|0)){j=l+-4|0;if(h>>>0>>0){do{A=k[h>>2]|0;k[h>>2]=k[j>>2];k[j>>2]=A;h=h+4|0;j=j+-4|0}while(h>>>0>>0);m=w;h=l}else{m=w;h=l}}else m=w}else{x=0;Ea(k[(k[w>>2]|0)+48>>2]|0,w|0,s|0,g|0,k[f>>2]|0)|0;A=x;x=0;if(A&1){t=8;break}h=(k[f>>2]|0)+(g-s<<2)|0;k[f>>2]=h;m=w}e:do if(g>>>0>>0){while(1){h=i[g>>0]|0;if(h<<24>>24==46){j=g;break}x=0;j=Aa(k[(k[m>>2]|0)+44>>2]|0,w|0,h|0)|0;A=x;x=0;if(A&1){t=4;break}A=k[f>>2]|0;h=A+4|0;k[f>>2]=h;k[A>>2]=j;g=g+1|0;if(g>>>0>=c>>>0)break e}if((t|0)==4){g=Wa()|0;break a}x=0;g=ta(k[(k[u>>2]|0)+12>>2]|0,u|0)|0;A=x;x=0;if(A&1){t=8;break a}A=k[f>>2]|0;h=A+4|0;k[f>>2]=h;k[A>>2]=g;g=j+1|0}while(0);x=0;Ea(k[(k[w>>2]|0)+48>>2]|0,w|0,g|0,c|0,h|0)|0;A=x;x=0;if(A&1)t=8;else{A=(k[f>>2]|0)+(v-g<<2)|0;k[f>>2]=A;k[e>>2]=(b|0)==(c|0)?A:d+(b-a<<2)|0;Sm(z);r=y;return}}while(0);if((t|0)==8)g=Wa()|0;Sm(z);fb(g|0)}function Zp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+352|0;t=z+304|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+308|0;s=z+72|0;h=z+76|0;y=z+68|0;w=z+64|0;u=z+60|0;v=z+56|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58899,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,p[n>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<3)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}while(0);do if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(4,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(40,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function _p(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,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+192|0;j=o;a=o+180|0;m=o+160|0;n=o+12|0;h=o+8|0;l=o+4|0;i[a>>0]=i[58901]|0;i[a+1>>0]=i[58902]|0;i[a+2>>0]=i[58903]|0;i[a+3>>0]=i[58904]|0;i[a+4>>0]=i[58905]|0;i[a+5>>0]=i[58906]|0;f=fp()|0;k[j>>2]=e;a=av(m,20,f,a,j)|0;e=m+a|0;f=Fp(m,e,c)|0;g=tn(c)|0;k[h>>2]=g;x=0;h=Aa(37,h|0,44212)|0;p=x;x=0;if(p&1){p=Wa()|0;zm(g)|0;fb(p|0)}else{zm(g)|0;Zb[k[(k[h>>2]|0)+48>>2]&31](h,m,e,n)|0;p=n+(a<<2)|0;k[l>>2]=k[b>>2];k[j>>2]=k[l>>2];p=cv(j,n,(f|0)==(e|0)?p:n+(f-m<<2)|0,p,c,d)|0;r=o;return p|0}return 0}function $p(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 m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0;C=r;r=r+32|0;v=C+16|0;u=C+12|0;z=C+8|0;w=C+4|0;y=C;m=tn(d)|0;k[z>>2]=m;x=0;z=Aa(37,z|0,44220)|0;t=x;x=0;if(t&1){C=Wa()|0;zm(m)|0;fb(C|0)}zm(m)|0;k[e>>2]=0;t=z+8|0;m=k[b>>2]|0;a:do if((g|0)!=(h|0)){b:while(1){n=m;if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0;n=0}}else m=0;q=(m|0)==0;p=k[c>>2]|0;o=p;do if(p){if((k[p+12>>2]|0)==(k[p+16>>2]|0)?(Ob[k[(k[p>>2]|0)+36>>2]&127](p)|0)==-1:0){k[c>>2]=0;o=0;B=12;break}if(!q){B=13;break b}}else B=12;while(0);if((B|0)==12){B=0;if(q){B=13;break}else p=0}c:do if((Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[g>>0]|0,0)|0)<<24>>24==37){p=g+1|0;if((p|0)==(h|0)){B=17;break b}s=Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[p>>0]|0,0)|0;switch(s<<24>>24){case 48:case 69:{q=g+2|0;if((q|0)==(h|0)){B=20;break b}g=p;p=Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[q>>0]|0,0)|0;m=s;break}default:{p=s;m=0}}s=k[(k[a>>2]|0)+36>>2]|0;k[w>>2]=n;k[y>>2]=o;k[u>>2]=k[w>>2];k[v>>2]=k[y>>2];s=ac[s&15](a,u,v,d,e,f,p,m)|0;k[b>>2]=s;g=g+2|0}else{n=i[g>>0]|0;if(n<<24>>24>-1?(A=k[t>>2]|0,(j[A+(n<<24>>24<<1)>>1]&8192)!=0):0){do{g=g+1|0;if((g|0)==(h|0)){g=h;break}n=i[g>>0]|0;if(n<<24>>24<=-1)break}while((j[A+(n<<24>>24<<1)>>1]&8192)!=0);n=p;while(1){if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0}}else m=0;o=(m|0)==0;do if(p){if((k[p+12>>2]|0)!=(k[p+16>>2]|0))if(o){s=n;break}else break c;if((Ob[k[(k[p>>2]|0)+36>>2]&127](p)|0)!=-1)if(o^(n|0)==0){s=n;p=n;break}else break c;else{k[c>>2]=0;n=0;B=39;break}}else B=39;while(0);if((B|0)==39){B=0;if(o)break c;else{s=n;p=0}}o=m+12|0;n=k[o>>2]|0;q=m+16|0;if((n|0)==(k[q>>2]|0))n=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else n=l[n>>0]|0;if((n&255)<<24>>24<=-1)break c;if(!(j[(k[t>>2]|0)+(n<<24>>24<<1)>>1]&8192))break c;n=k[o>>2]|0;if((n|0)==(k[q>>2]|0)){Ob[k[(k[m>>2]|0)+40>>2]&127](m)|0;n=s;continue}else{k[o>>2]=n+1;n=s;continue}}}o=m+12|0;n=k[o>>2]|0;p=m+16|0;if((n|0)==(k[p>>2]|0))n=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else n=l[n>>0]|0;s=Vb[k[(k[z>>2]|0)+12>>2]&63](z,n&255)|0;if(s<<24>>24!=(Vb[k[(k[z>>2]|0)+12>>2]&63](z,i[g>>0]|0)|0)<<24>>24){B=57;break b}n=k[o>>2]|0;if((n|0)==(k[p>>2]|0))Ob[k[(k[m>>2]|0)+40>>2]&127](m)|0;else k[o>>2]=n+1;g=g+1|0}while(0);m=k[b>>2]|0;if(!((g|0)!=(h|0)&(k[e>>2]|0)==0))break a}if((B|0)==13){k[e>>2]=4;break}else if((B|0)==17){k[e>>2]=4;break}else if((B|0)==20){k[e>>2]=4;break}else if((B|0)==57){k[e>>2]=4;m=k[b>>2]|0;break}}while(0);if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0}}else m=0;g=(m|0)==0;n=k[c>>2]|0;do if(n){if((k[n+12>>2]|0)==(k[n+16>>2]|0)?(Ob[k[(k[n>>2]|0)+36>>2]&127](n)|0)==-1:0){k[c>>2]=0;B=67;break}if(!g)B=68}else B=67;while(0);if((B|0)==67?g:0)B=68;if((B|0)==68)k[e>>2]=k[e>>2]|2;r=C;return m|0}function aq(a){a=a|0;return}function bq(a){a=a|0;mj(a);return}function cq(a){a=a|0;return 2}function dq(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=$p(a,i,h,d,e,f,58907,58915)|0;r=g;return a|0}function eq(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,j=0,l=0,m=0,n=0,o=0;g=r;r=r+16|0;h=g+12|0;j=g+8|0;m=g+4|0;l=g;n=a+8|0;n=Ob[k[(k[n>>2]|0)+20>>2]&127](n)|0;k[m>>2]=k[b>>2];k[l>>2]=k[c>>2];c=i[n>>0]|0;o=(c&1)==0;b=o?n+1|0:k[n+8>>2]|0;c=b+(o?(c&255)>>>1:k[n+4>>2]|0)|0;k[j>>2]=k[m>>2];k[h>>2]=k[l>>2];a=$p(a,j,h,d,e,f,b,c)|0;r=g;return a|0}function fq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];gq(a,f+24|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function gq(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;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[k[a>>2]>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Hu(c,h,a,a+168|0,f,e,0)|0)-a|0;if((c|0)<168)k[b>>2]=((c|0)/12|0|0)%7|0;r=g;return}function hq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];iq(a,f+16|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function iq(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;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[(k[a>>2]|0)+4>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Hu(c,h,a,a+288|0,f,e,0)|0)-a|0;if((c|0)<288)k[b>>2]=((c|0)/12|0|0)%12|0;r=g;return}function jq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];kq(a,f+20|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function kq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,4)|0;if(!(k[e>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;k[b>>2]=a+-1900}r=g;return}function lq(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 j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=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;U=r;r=r+144|0;j=U+132|0;h=U+116|0;N=U+128|0;w=U+124|0;I=U+120|0;O=U+112|0;P=U+108|0;Q=U+104|0;R=U+100|0;S=U+96|0;T=U+92|0;l=U+88|0;m=U+84|0;n=U+80|0;o=U+76|0;p=U+72|0;q=U+68|0;s=U+64|0;t=U+60|0;u=U+56|0;v=U+52|0;y=U+48|0;z=U+44|0;A=U+40|0;B=U+36|0;C=U+32|0;D=U+28|0;E=U+24|0;F=U+20|0;G=U+16|0;H=U+12|0;J=U+8|0;K=U+4|0;L=U;k[e>>2]=0;M=tn(d)|0;k[N>>2]=M;x=0;N=Aa(37,N|0,44220)|0;W=x;x=0;if(W&1){W=Wa()|0;zm(M)|0;fb(W|0)}zm(M)|0;do switch(g<<24>>24|0){case 65:case 97:{k[w>>2]=k[c>>2];k[j>>2]=k[w>>2];gq(a,f+24|0,b,j,e,N);V=28;break}case 104:case 66:case 98:{k[I>>2]=k[c>>2];k[j>>2]=k[I>>2];iq(a,f+16|0,b,j,e,N);V=28;break}case 99:{V=a+8|0;V=Ob[k[(k[V>>2]|0)+12>>2]&127](V)|0;k[O>>2]=k[b>>2];k[P>>2]=k[c>>2];g=i[V>>0]|0;c=(g&1)==0;W=c?V+1|0:k[V+8>>2]|0;V=W+(c?(g&255)>>>1:k[V+4>>2]|0)|0;k[h>>2]=k[O>>2];k[j>>2]=k[P>>2];V=$p(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 101:case 100:{k[Q>>2]=k[c>>2];k[j>>2]=k[Q>>2];mq(a,f+12|0,b,j,e,N);V=28;break}case 68:{k[R>>2]=k[b>>2];k[S>>2]=k[c>>2];k[h>>2]=k[R>>2];k[j>>2]=k[S>>2];V=$p(a,h,j,d,e,f,58915,58923)|0;k[b>>2]=V;V=28;break}case 70:{k[T>>2]=k[b>>2];k[l>>2]=k[c>>2];k[h>>2]=k[T>>2];k[j>>2]=k[l>>2];V=$p(a,h,j,d,e,f,58923,58931)|0;k[b>>2]=V;V=28;break}case 72:{k[m>>2]=k[c>>2];k[j>>2]=k[m>>2];nq(a,f+8|0,b,j,e,N);V=28;break}case 73:{k[n>>2]=k[c>>2];k[j>>2]=k[n>>2];oq(a,f+8|0,b,j,e,N);V=28;break}case 106:{k[o>>2]=k[c>>2];k[j>>2]=k[o>>2];pq(a,f+28|0,b,j,e,N);V=28;break}case 109:{k[p>>2]=k[c>>2];k[j>>2]=k[p>>2];qq(a,f+16|0,b,j,e,N);V=28;break}case 77:{k[q>>2]=k[c>>2];k[j>>2]=k[q>>2];rq(a,f+4|0,b,j,e,N);V=28;break}case 116:case 110:{k[s>>2]=k[c>>2];k[j>>2]=k[s>>2];sq(a,b,j,e,N);V=28;break}case 112:{k[t>>2]=k[c>>2];k[j>>2]=k[t>>2];tq(a,f+8|0,b,j,e,N);V=28;break}case 114:{k[u>>2]=k[b>>2];k[v>>2]=k[c>>2];k[h>>2]=k[u>>2];k[j>>2]=k[v>>2];V=$p(a,h,j,d,e,f,58931,58942)|0;k[b>>2]=V;V=28;break}case 82:{k[y>>2]=k[b>>2];k[z>>2]=k[c>>2];k[h>>2]=k[y>>2];k[j>>2]=k[z>>2];V=$p(a,h,j,d,e,f,58942,58947)|0;k[b>>2]=V;V=28;break}case 83:{k[A>>2]=k[c>>2];k[j>>2]=k[A>>2];uq(a,f,b,j,e,N);V=28;break}case 84:{k[B>>2]=k[b>>2];k[C>>2]=k[c>>2];k[h>>2]=k[B>>2];k[j>>2]=k[C>>2];V=$p(a,h,j,d,e,f,58947,58955)|0;k[b>>2]=V;V=28;break}case 119:{k[D>>2]=k[c>>2];k[j>>2]=k[D>>2];vq(a,f+24|0,b,j,e,N);V=28;break}case 120:{W=k[(k[a>>2]|0)+20>>2]|0;k[E>>2]=k[b>>2];k[F>>2]=k[c>>2];k[h>>2]=k[E>>2];k[j>>2]=k[F>>2];h=Nb[W&63](a,h,j,d,e,f)|0;break}case 88:{V=a+8|0;V=Ob[k[(k[V>>2]|0)+24>>2]&127](V)|0;k[G>>2]=k[b>>2];k[H>>2]=k[c>>2];g=i[V>>0]|0;c=(g&1)==0;W=c?V+1|0:k[V+8>>2]|0;V=W+(c?(g&255)>>>1:k[V+4>>2]|0)|0;k[h>>2]=k[G>>2];k[j>>2]=k[H>>2];V=$p(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 121:{k[J>>2]=k[c>>2];k[j>>2]=k[J>>2];kq(a,f+20|0,b,j,e,N);V=28;break}case 89:{k[K>>2]=k[c>>2];k[j>>2]=k[K>>2];wq(a,f+20|0,b,j,e,N);V=28;break}case 37:{k[L>>2]=k[c>>2];k[j>>2]=k[L>>2];xq(a,b,j,e,N);V=28;break}default:{k[e>>2]=k[e>>2]|4;V=28}}while(0);if((V|0)==28)h=k[b>>2]|0;r=U;return h|0}function mq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<31&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function nq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<24&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function oq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<12&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function pq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,3)|0;c=k[e>>2]|0;if((a|0)<366&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function qq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<13&(c&4|0)==0)k[b>>2]=a+-1;else k[e>>2]=c|4;r=g;return}function rq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<60&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function sq(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;g=e+8|0;a:while(1){e=k[b>>2]|0;do if(e){if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;e=0;break}else{e=k[b>>2]|0;break}}else e=0;while(0);e=(e|0)==0;a=k[c>>2]|0;do if(a){if((k[a+12>>2]|0)!=(k[a+16>>2]|0))if(e)break;else break a;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)!=-1)if(e)break;else break a;else{k[c>>2]=0;h=12;break}}else h=12;while(0);if((h|0)==12){h=0;if(e){a=0;break}else a=0}e=k[b>>2]|0;f=k[e+12>>2]|0;if((f|0)==(k[e+16>>2]|0))e=Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0;else e=l[f>>0]|0;if((e&255)<<24>>24<=-1)break;if(!(j[(k[g>>2]|0)+(e<<24>>24<<1)>>1]&8192))break;e=k[b>>2]|0;a=e+12|0;f=k[a>>2]|0;if((f|0)==(k[e+16>>2]|0)){Ob[k[(k[e>>2]|0)+40>>2]&127](e)|0;continue}else{k[a>>2]=f+1;continue}}e=k[b>>2]|0;do if(e){if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;e=0;break}else{e=k[b>>2]|0;break}}else e=0;while(0);e=(e|0)==0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)?(Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1:0){k[c>>2]=0;h=32;break}if(!e)h=33}else h=32;while(0);if((h|0)==32?e:0)h=33;if((h|0)==33)k[d>>2]=k[d>>2]|2;return}function tq(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,j=0,l=0,m=0;m=r;r=r+16|0;h=m+4|0;j=m;l=a+8|0;l=Ob[k[(k[l>>2]|0)+8>>2]&127](l)|0;a=i[l>>0]|0;if(!(a&1))g=(a&255)>>>1;else g=k[l+4>>2]|0;a=i[l+12>>0]|0;if(!(a&1))a=(a&255)>>>1;else a=k[l+16>>2]|0;do if((g|0)!=(0-a|0)){k[j>>2]=k[d>>2];k[h>>2]=k[j>>2];a=Hu(c,h,l,l+24|0,f,e,0)|0;g=k[b>>2]|0;if((a|0)==(l|0)&(g|0)==12){k[b>>2]=0;break}if((g|0)<12&(a-l|0)==12)k[b>>2]=g+12}else k[e>>2]=k[e>>2]|4;while(0);r=m;return}function uq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<61&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function vq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,1)|0;c=k[e>>2]|0;if((a|0)<7&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function wq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,4)|0;if(!(k[e>>2]&4))k[b>>2]=a+-1900;r=g;return}function xq(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;a=k[b>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0))if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}else a=0;while(0);f=(a|0)==0;a=k[c>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)?(Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1:0){k[c>>2]=0;h=11;break}if(f){g=a;h=13}else h=12}else h=11;while(0);if((h|0)==11)if(f)h=12;else{g=0;h=13}a:do if((h|0)==12)k[d>>2]=k[d>>2]|6;else if((h|0)==13){a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=l[f>>0]|0;if((Qb[k[(k[e>>2]|0)+36>>2]&63](e,a&255,0)|0)<<24>>24!=37){k[d>>2]=k[d>>2]|4;break}a=k[b>>2]|0;f=a+12|0;e=k[f>>2]|0;if((e|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;a=k[b>>2]|0;if(!a)a=0;else h=21}else{k[f>>2]=e+1;h=21}do if((h|0)==21)if((k[a+12>>2]|0)==(k[a+16>>2]|0))if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}while(0);a=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)?(Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1:0){k[c>>2]=0;h=30;break}if(a)break a}else h=30;while(0);if((h|0)==30?!a:0)break;k[d>>2]=k[d>>2]|2}while(0);return}function yq(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,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;w=r;r=r+32|0;q=w+16|0;p=w+12|0;u=w+8|0;s=w+4|0;t=w;i=tn(d)|0;k[u>>2]=i;x=0;u=Aa(37,u|0,44212)|0;o=x;x=0;if(o&1){w=Wa()|0;zm(i)|0;fb(w|0)}zm(i)|0;k[e>>2]=0;i=k[b>>2]|0;a:do if((g|0)!=(h|0)){b:while(1){l=i;if(i){j=k[i+12>>2]|0;if((j|0)==(k[i+16>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;if((j|0)==-1){k[b>>2]=0;i=0;n=1;o=0}else{n=0;o=l}}else{i=0;n=1;o=l}m=k[c>>2]|0;j=m;do if(m){l=k[m+12>>2]|0;if((l|0)==(k[m+16>>2]|0))l=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else l=k[l>>2]|0;if((l|0)!=-1)if(n)break;else{v=17;break b}else{k[c>>2]=0;j=0;v=15;break}}else v=15;while(0);if((v|0)==15){v=0;if(n){v=17;break}else m=0}c:do if((Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[g>>2]|0,0)|0)<<24>>24==37){l=g+4|0;if((l|0)==(h|0)){v=21;break b}n=Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[l>>2]|0,0)|0;switch(n<<24>>24){case 48:case 69:{m=g+8|0;if((m|0)==(h|0)){v=24;break b}g=l;l=Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[m>>2]|0,0)|0;i=n;break}default:{l=n;i=0}}n=k[(k[a>>2]|0)+36>>2]|0;k[s>>2]=o;k[t>>2]=j;k[p>>2]=k[s>>2];k[q>>2]=k[t>>2];o=ac[n&15](a,p,q,d,e,f,l,i)|0;k[b>>2]=o;g=g+8|0}else{if(!(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,k[g>>2]|0)|0)){l=i+12|0;j=k[l>>2]|0;m=i+16|0;if((j|0)==(k[m>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;o=Vb[k[(k[u>>2]|0)+28>>2]&63](u,j)|0;if((o|0)!=(Vb[k[(k[u>>2]|0)+28>>2]&63](u,k[g>>2]|0)|0)){v=61;break b}j=k[l>>2]|0;if((j|0)==(k[m>>2]|0))Ob[k[(k[i>>2]|0)+40>>2]&127](i)|0;else k[l>>2]=j+4;g=g+4|0;break}do{g=g+4|0;if((g|0)==(h|0)){g=h;break}}while(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,k[g>>2]|0)|0);j=m;n=m;while(1){if(i){l=k[i+12>>2]|0;if((l|0)==(k[i+16>>2]|0))l=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else l=k[l>>2]|0;if((l|0)==-1){k[b>>2]=0;m=1;i=0}else m=0}else{m=1;i=0}do if(n){l=k[n+12>>2]|0;if((l|0)==(k[n+16>>2]|0))l=Ob[k[(k[n>>2]|0)+36>>2]&127](n)|0;else l=k[l>>2]|0;if((l|0)!=-1)if(m^(j|0)==0){o=j;n=j;break}else break c;else{k[c>>2]=0;j=0;v=44;break}}else v=44;while(0);if((v|0)==44){v=0;if(m)break c;else{o=j;n=0}}l=i+12|0;j=k[l>>2]|0;m=i+16|0;if((j|0)==(k[m>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;if(!(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,j)|0))break c;j=k[l>>2]|0;if((j|0)==(k[m>>2]|0)){Ob[k[(k[i>>2]|0)+40>>2]&127](i)|0;j=o;continue}else{k[l>>2]=j+4;j=o;continue}}}while(0);i=k[b>>2]|0;if(!((g|0)!=(h|0)&(k[e>>2]|0)==0))break a}if((v|0)==17){k[e>>2]=4;break}else if((v|0)==21){k[e>>2]=4;break}else if((v|0)==24){k[e>>2]=4;break}else if((v|0)==61){k[e>>2]=4;i=k[b>>2]|0;break}}while(0);if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)==-1){k[b>>2]=0;i=0;l=1}else l=0}else{i=0;l=1}g=k[c>>2]|0;do if(g){j=k[g+12>>2]|0;if((j|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=k[j>>2]|0;if((g|0)!=-1)if(l)break;else{v=76;break}else{k[c>>2]=0;v=74;break}}else v=74;while(0);if((v|0)==74?l:0)v=76;if((v|0)==76)k[e>>2]=k[e>>2]|2;r=w;return i|0}function zq(a){a=a|0;return}function Aq(a){a=a|0;mj(a);return}function Bq(a){a=a|0;return 2}function Cq(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=yq(a,i,h,d,e,f,44788,44820)|0;r=g;return a|0}function Dq(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,j=0,l=0,m=0,n=0,o=0,p=0;g=r;r=r+16|0;h=g+12|0;j=g+8|0;m=g+4|0;l=g;p=a+8|0;p=Ob[k[(k[p>>2]|0)+20>>2]&127](p)|0;k[m>>2]=k[b>>2];k[l>>2]=k[c>>2];n=i[p>>0]|0;o=(n&1)==0;c=p+4|0;b=o?c:k[p+8>>2]|0;c=b+((o?(n&255)>>>1:k[c>>2]|0)<<2)|0;k[j>>2]=k[m>>2];k[h>>2]=k[l>>2];a=yq(a,j,h,d,e,f,b,c)|0;r=g;return a|0}function Eq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Fq(a,f+24|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Fq(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;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[k[a>>2]>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Su(c,h,a,a+168|0,f,e,0)|0)-a|0;if((c|0)<168)k[b>>2]=((c|0)/12|0|0)%7|0;r=g;return}function Gq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Hq(a,f+16|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Hq(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;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[(k[a>>2]|0)+4>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Su(c,h,a,a+288|0,f,e,0)|0)-a|0;if((c|0)<288)k[b>>2]=((c|0)/12|0|0)%12|0;r=g;return}function Iq(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,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Jq(a,f+20|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Jq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,4)|0;if(!(k[e>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;k[b>>2]=a+-1900}r=g;return}function Kq(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 j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=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;U=r;r=r+144|0;j=U+132|0;h=U+116|0;N=U+128|0;w=U+124|0;I=U+120|0;O=U+112|0;P=U+108|0;Q=U+104|0;R=U+100|0;S=U+96|0;T=U+92|0;l=U+88|0;m=U+84|0;n=U+80|0;o=U+76|0;p=U+72|0;q=U+68|0;s=U+64|0;t=U+60|0;u=U+56|0;v=U+52|0;y=U+48|0;z=U+44|0;A=U+40|0;B=U+36|0;C=U+32|0;D=U+28|0;E=U+24|0;F=U+20|0;G=U+16|0;H=U+12|0;J=U+8|0;K=U+4|0;L=U;k[e>>2]=0;M=tn(d)|0;k[N>>2]=M;x=0;N=Aa(37,N|0,44212)|0;W=x;x=0;if(W&1){W=Wa()|0;zm(M)|0;fb(W|0)}zm(M)|0;do switch(g<<24>>24|0){case 65:case 97:{k[w>>2]=k[c>>2];k[j>>2]=k[w>>2];Fq(a,f+24|0,b,j,e,N);V=28;break}case 104:case 66:case 98:{k[I>>2]=k[c>>2];k[j>>2]=k[I>>2];Hq(a,f+16|0,b,j,e,N);V=28;break}case 99:{W=a+8|0;W=Ob[k[(k[W>>2]|0)+12>>2]&127](W)|0;k[O>>2]=k[b>>2];k[P>>2]=k[c>>2];g=i[W>>0]|0;c=(g&1)==0;V=W+4|0;W=c?V:k[W+8>>2]|0;V=W+((c?(g&255)>>>1:k[V>>2]|0)<<2)|0;k[h>>2]=k[O>>2];k[j>>2]=k[P>>2];V=yq(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 101:case 100:{k[Q>>2]=k[c>>2];k[j>>2]=k[Q>>2];Lq(a,f+12|0,b,j,e,N);V=28;break}case 68:{k[R>>2]=k[b>>2];k[S>>2]=k[c>>2];k[h>>2]=k[R>>2];k[j>>2]=k[S>>2];V=yq(a,h,j,d,e,f,44820,44852)|0;k[b>>2]=V;V=28;break}case 70:{k[T>>2]=k[b>>2];k[l>>2]=k[c>>2];k[h>>2]=k[T>>2];k[j>>2]=k[l>>2];V=yq(a,h,j,d,e,f,44852,44884)|0;k[b>>2]=V;V=28;break}case 72:{k[m>>2]=k[c>>2];k[j>>2]=k[m>>2];Mq(a,f+8|0,b,j,e,N);V=28;break}case 73:{k[n>>2]=k[c>>2];k[j>>2]=k[n>>2];Nq(a,f+8|0,b,j,e,N);V=28;break}case 106:{k[o>>2]=k[c>>2];k[j>>2]=k[o>>2];Oq(a,f+28|0,b,j,e,N);V=28;break}case 109:{k[p>>2]=k[c>>2];k[j>>2]=k[p>>2];Pq(a,f+16|0,b,j,e,N);V=28;break}case 77:{k[q>>2]=k[c>>2];k[j>>2]=k[q>>2];Qq(a,f+4|0,b,j,e,N);V=28;break}case 116:case 110:{k[s>>2]=k[c>>2];k[j>>2]=k[s>>2];Rq(a,b,j,e,N);V=28;break}case 112:{k[t>>2]=k[c>>2];k[j>>2]=k[t>>2];Sq(a,f+8|0,b,j,e,N);V=28;break}case 114:{k[u>>2]=k[b>>2];k[v>>2]=k[c>>2];k[h>>2]=k[u>>2];k[j>>2]=k[v>>2];V=yq(a,h,j,d,e,f,44884,44928)|0;k[b>>2]=V;V=28;break}case 82:{k[y>>2]=k[b>>2];k[z>>2]=k[c>>2];k[h>>2]=k[y>>2];k[j>>2]=k[z>>2];V=yq(a,h,j,d,e,f,44928,44948)|0;k[b>>2]=V;V=28;break}case 83:{k[A>>2]=k[c>>2];k[j>>2]=k[A>>2];Tq(a,f,b,j,e,N);V=28;break}case 84:{k[B>>2]=k[b>>2];k[C>>2]=k[c>>2];k[h>>2]=k[B>>2];k[j>>2]=k[C>>2];V=yq(a,h,j,d,e,f,44948,44980)|0;k[b>>2]=V;V=28;break}case 119:{k[D>>2]=k[c>>2];k[j>>2]=k[D>>2];Uq(a,f+24|0,b,j,e,N);V=28;break}case 120:{W=k[(k[a>>2]|0)+20>>2]|0;k[E>>2]=k[b>>2];k[F>>2]=k[c>>2];k[h>>2]=k[E>>2];k[j>>2]=k[F>>2];h=Nb[W&63](a,h,j,d,e,f)|0;break}case 88:{W=a+8|0;W=Ob[k[(k[W>>2]|0)+24>>2]&127](W)|0;k[G>>2]=k[b>>2];k[H>>2]=k[c>>2];g=i[W>>0]|0;c=(g&1)==0;V=W+4|0;W=c?V:k[W+8>>2]|0;V=W+((c?(g&255)>>>1:k[V>>2]|0)<<2)|0;k[h>>2]=k[G>>2];k[j>>2]=k[H>>2];V=yq(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 121:{k[J>>2]=k[c>>2];k[j>>2]=k[J>>2];Jq(a,f+20|0,b,j,e,N);V=28;break}case 89:{k[K>>2]=k[c>>2];k[j>>2]=k[K>>2];Vq(a,f+20|0,b,j,e,N);V=28;break}case 37:{k[L>>2]=k[c>>2];k[j>>2]=k[L>>2];Wq(a,b,j,e,N);V=28;break}default:{k[e>>2]=k[e>>2]|4;V=28}}while(0);if((V|0)==28)h=k[b>>2]|0;r=U;return h|0}function Lq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<31&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Mq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<24&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Nq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<12&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Oq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,3)|0;c=k[e>>2]|0;if((a|0)<366&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Pq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<13&(c&4|0)==0)k[b>>2]=a+-1;else k[e>>2]=c|4;r=g;return}function Qq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<60&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Rq(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;a:while(1){a=k[b>>2]|0;do if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;g=1;break}else{g=(k[b>>2]|0)==0;break}}else g=1;while(0);f=k[c>>2]|0;do if(f){a=k[f+12>>2]|0;if((a|0)==(k[f+16>>2]|0))a=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(g){g=f;break}else{g=f;break a}else{k[c>>2]=0;h=15;break}}else h=15;while(0);if((h|0)==15){h=0;if(g){g=0;break}else g=0}a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if(!(Qb[k[(k[e>>2]|0)+12>>2]&63](e,8192,a)|0))break;a=k[b>>2]|0;f=a+12|0;g=k[f>>2]|0;if((g|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;continue}else{k[f>>2]=g+4;continue}}a=k[b>>2]|0;do if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;f=1;break}else{f=(k[b>>2]|0)==0;break}}else f=1;while(0);do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0))a=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(f)break;else{h=39;break}else{k[c>>2]=0;h=37;break}}else h=37;while(0);if((h|0)==37?f:0)h=39;if((h|0)==39)k[d>>2]=k[d>>2]|2;return}function Sq(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,j=0,l=0,m=0;m=r;r=r+16|0;h=m+4|0;j=m;l=a+8|0;l=Ob[k[(k[l>>2]|0)+8>>2]&127](l)|0;a=i[l>>0]|0;if(!(a&1))g=(a&255)>>>1;else g=k[l+4>>2]|0;a=i[l+12>>0]|0;if(!(a&1))a=(a&255)>>>1;else a=k[l+16>>2]|0;do if((g|0)!=(0-a|0)){k[j>>2]=k[d>>2];k[h>>2]=k[j>>2];a=Su(c,h,l,l+24|0,f,e,0)|0;g=k[b>>2]|0;if((a|0)==(l|0)&(g|0)==12){k[b>>2]=0;break}if((g|0)<12&(a-l|0)==12)k[b>>2]=g+12}else k[e>>2]=k[e>>2]|4;while(0);r=m;return}function Tq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<61&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Uq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,1)|0;c=k[e>>2]|0;if((a|0)<7&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Vq(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;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,4)|0;if(!(k[e>>2]&4))k[b>>2]=a+-1900;r=g;return}function Wq(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;a=k[b>>2]|0;do if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;g=1;break}else{g=(k[b>>2]|0)==0;break}}else g=1;while(0);f=k[c>>2]|0;do if(f){a=k[f+12>>2]|0;if((a|0)==(k[f+16>>2]|0))a=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(g){h=f;i=17;break}else{i=16;break}else{k[c>>2]=0;i=14;break}}else i=14;while(0);if((i|0)==14)if(g)i=16;else{h=0;i=17}a:do if((i|0)==16)k[d>>2]=k[d>>2]|6;else if((i|0)==17){a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((Qb[k[(k[e>>2]|0)+52>>2]&63](e,a,0)|0)<<24>>24!=37){k[d>>2]=k[d>>2]|4;break}a=k[b>>2]|0;f=a+12|0;g=k[f>>2]|0;if((g|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;a=k[b>>2]|0;if(!a)f=1;else i=25}else{k[f>>2]=g+4;i=25}do if((i|0)==25){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;f=1;break}else{f=(k[b>>2]|0)==0;break}}while(0);do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0))a=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(f)break a;else break;else{k[c>>2]=0;i=37;break}}else i=37;while(0);if((i|0)==37?!f:0)break;k[d>>2]=k[d>>2]|2}while(0);return}function Xq(a){a=a|0;Yq(a+8|0);return}function Yq(a){a=a|0;var b=0,c=0,d=0;b=k[a>>2]|0;x=0;c=Da(3)|0;d=x;x=0;do if(!(d&1)){if((b|0)!=(c|0)?(x=0,qa(188,k[a>>2]|0),d=x,x=0,d&1):0)break;return}while(0);d=Wa(0)|0;oc(d)}function Zq(a){a=a|0;Yq(a+8|0);mj(a);return}function _q(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;j=r;r=r+112|0;h=j+4|0;c=j;k[c>>2]=h+100;$q(a+8|0,h,c,e,f,g);e=k[c>>2]|0;c=k[b>>2]|0;if((h|0)!=(e|0))do{g=i[h>>0]|0;do if(c){d=c+24|0;f=k[d>>2]|0;if((f|0)==(k[c+28>>2]|0)){b=(Vb[k[(k[c>>2]|0)+52>>2]&63](c,g&255)|0)==-1;c=b?0:c;break}else{k[d>>2]=f+1;i[f>>0]=g;break}}else c=0;while(0);h=h+1|0}while((h|0)!=(e|0));r=j;return c|0}function $q(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,j=0,l=0;l=r;r=r+16|0;j=l;i[j>>0]=37;g=j+1|0;i[g>>0]=e;h=j+2|0;i[h>>0]=f;i[j+3>>0]=0;if(f<<24>>24){i[g>>0]=f;i[h>>0]=e}a=b+(_a(b|0,(k[c>>2]|0)-b|0,j|0,d|0,k[a>>2]|0)|0)|0;k[c>>2]=a;r=l;return}function ar(a){a=a|0;Yq(a+8|0);return}function br(a){a=a|0;Yq(a+8|0);mj(a);return}function cr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=r;r=r+416|0;d=h+8|0;c=h;k[c>>2]=d+400;dr(a+8|0,d,c,e,f,g);a=k[c>>2]|0;c=k[b>>2]|0;if((d|0)!=(a|0)){e=d;do{d=k[e>>2]|0;if(!c)c=0;else{f=c+24|0;g=k[f>>2]|0;if((g|0)==(k[c+28>>2]|0))d=Vb[k[(k[c>>2]|0)+52>>2]&63](c,d)|0;else{k[f>>2]=g+4;k[g>>2]=d}c=(d|0)==-1?0:c}e=e+4|0}while((e|0)!=(a|0))}r=h;return c|0}function dr(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,l=0;g=r;r=r+128|0;j=g+16|0;l=g+12|0;h=g;i=g+8|0;k[l>>2]=j+100;$q(a,j,l,d,e,f);e=h;k[e>>2]=0;k[e+4>>2]=0;k[i>>2]=j;e=(k[c>>2]|0)-b>>2;f=Ak(k[a>>2]|0)|0;x=0;e=Ea(18,b|0,i|0,e|0,h|0)|0;a=x;x=0;if(a&1){e=Wa()|0;if((f|0)!=0?(x=0,ta(75,f|0)|0,l=x,x=0,l&1):0){l=Wa(0)|0;oc(l)}fb(e|0)}if((f|0)!=0?(x=0,ta(75,f|0)|0,l=x,x=0,l&1):0){l=Wa(0)|0;oc(l)}if((e|0)==-1)$r(58955);else{k[c>>2]=b+(e<<2);r=g;return}}function er(a){a=a|0;return}function fr(a){a=a|0;mj(a);return}function gr(a){a=a|0;return 127}function hr(a){a=a|0;return 127}function ir(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function jr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function kr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function lr(a,b){a=a|0;b=b|0;Rm(a,1,45);return}function mr(a){a=a|0;return 0}function nr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function or(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function pr(a){a=a|0;return}function qr(a){a=a|0;mj(a);return}function rr(a){a=a|0;return 127}function sr(a){a=a|0;return 127}function tr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function ur(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function vr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function wr(a,b){a=a|0;b=b|0;Rm(a,1,45);return}function xr(a){a=a|0;return 0}function yr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function zr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Ar(a){a=a|0;return}function Br(a){a=a|0;mj(a);return}function Cr(a){a=a|0;return 2147483647}function Dr(a){a=a|0;return 2147483647}function Er(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Fr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Gr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Hr(a,b){a=a|0;b=b|0;dn(a,1,45);return}function Ir(a){a=a|0;return 0}function Jr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Kr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Lr(a){a=a|0;return}function Mr(a){a=a|0;mj(a);return}function Nr(a){a=a|0;return 2147483647}function Or(a){a=a|0;return 2147483647}function Pr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Qr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Rr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Sr(a,b){a=a|0;b=b|0;dn(a,1,45);return}function Tr(a){a=a|0;return 0}function Ur(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Vr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Wr(a){a=a|0;return}function Xr(a){a=a|0;mj(a);return}function Yr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;B=r;r=r+240|0;z=B+24|0;A=B;a=B+136|0;D=B+16|0;y=B+12|0;C=B+8|0;n=B+134|0;j=B+4|0;w=B+124|0;k[D>>2]=a;E=D+4|0;k[E>>2]=189;l=a+100|0;x=0;h=ta(68,e|0)|0;v=x;x=0;if(!(v&1)){k[C>>2]=h;x=0;a=Aa(37,C|0,44220)|0;v=x;x=0;a:do if(!(v&1)?(i[n>>0]=0,k[j>>2]=k[c>>2],m=k[e+4>>2]|0,x=0,k[z>>2]=k[j>>2],m=ua(1,b|0,z|0,d|0,C|0,m|0,f|0,n|0,a|0,D|0,y|0,l|0)|0,v=x,x=0,!(v&1)):0){b:do if(m){x=0;Ea(k[(k[a>>2]|0)+32>>2]|0,a|0,58976,58986,w|0)|0;v=x;x=0;if(v&1){G=10;break a}j=k[y>>2]|0;l=k[D>>2]|0;a=j-l|0;if((a|0)>98){a=Pl(a+2|0)|0;h=a;if(!a){x=0;Ga(6);v=x;x=0;if(!(v&1)){a=0;G=13}}else G=13}else{h=0;a=z;G=13}do if((G|0)==13){if(i[n>>0]|0){i[a>>0]=45;a=a+1|0}u=w+10|0;v=w;if(l>>>0>>0){m=w+1|0;d=m+1|0;e=d+1|0;n=e+1|0;o=n+1|0;p=o+1|0;q=p+1|0;s=q+1|0;t=s+1|0;do{j=i[l>>0]|0;do if((i[w>>0]|0)!=j<<24>>24)if((i[m>>0]|0)!=j<<24>>24)if((i[d>>0]|0)!=j<<24>>24)if((i[e>>0]|0)!=j<<24>>24)if((i[n>>0]|0)==j<<24>>24)j=n;else{if((i[o>>0]|0)==j<<24>>24){j=o;break}if((i[p>>0]|0)==j<<24>>24){j=p;break}if((i[q>>0]|0)==j<<24>>24){j=q;break}if((i[s>>0]|0)==j<<24>>24){j=s;break}j=(i[t>>0]|0)==j<<24>>24?t:u}else j=e;else j=d;else j=m;else j=w;while(0);i[a>>0]=i[58976+(j-v)>>0]|0;l=l+1|0;a=a+1|0}while(l>>>0<(k[y>>2]|0)>>>0)}i[a>>0]=0;k[A>>2]=g;if((jl(z,58987,A)|0)!=1?(x=0,qa(190,58991),g=x,x=0,g&1):0)break;if(h)Ql(h);break b}while(0);a=Wa()|0;if(!h){j=a;h=D;break a}Ql(h);j=a;h=D;break a}while(0);a=k[b>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}if((a|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}}else a=0;while(0);h=(a|0)==0;a=k[c>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}if((a|0)==-1){k[c>>2]=0;G=37;break}}if(!h)G=38}else G=37;while(0);if((G|0)==37?h:0)G=38;if((G|0)==38)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(k[C>>2]|0)|0;a=k[D>>2]|0;k[D>>2]=0;if((a|0)!=0?(x=0,qa(k[E>>2]|0,a|0),G=x,x=0,G&1):0){G=Wa(0)|0;oc(G)}r=B;return h|0}else G=10;while(0);if((G|0)==10){j=Wa()|0;h=D}zm(k[C>>2]|0)|0;a=k[h>>2]|0;k[h>>2]=0;if(!a)F=j;else{h=k[E>>2]|0;G=45}}else{j=Wa()|0;k[D>>2]=0;h=189;G=45}if((G|0)==45){x=0;qa(h|0,a|0);G=x;x=0;if(G&1){G=Wa(0)|0;oc(G)}else F=j}fb(F|0);return 0}function Zr(a){a=a|0;return}function _r(a,b,c,d,e,f,g,h,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,s=0,t=0,u=0,v=0,w=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;ba=r;r=r+512|0;P=ba+88|0;t=ba+96|0;da=ba+80|0;T=ba+72|0;S=ba+68|0;U=ba+500|0;Q=ba+497|0;V=ba+496|0;Y=ba+56|0;aa=ba+44|0;_=ba+32|0;Z=ba+20|0;$=ba+8|0;R=ba+4|0;X=ba;k[P>>2]=o;k[da>>2]=t;ca=da+4|0;k[ca>>2]=189;k[T>>2]=t;k[S>>2]=t+400;k[Y>>2]=0;k[Y+4>>2]=0;k[Y+8>>2]=0;k[aa>>2]=0;k[aa+4>>2]=0;k[aa+8>>2]=0;k[_>>2]=0;k[_+4>>2]=0;k[_+8>>2]=0;k[Z>>2]=0;k[Z+4>>2]=0;k[Z+8>>2]=0;k[$>>2]=0;k[$+4>>2]=0;k[$+8>>2]=0;x=0;za(1,c|0,d|0,U|0,Q|0,V|0,Y|0,aa|0,_|0,Z|0,R|0);O=x;x=0;a:do if(O&1)h=Wa()|0;else{k[n>>2]=k[m>>2];I=h+8|0;J=_+4|0;K=Z+4|0;L=Z+8|0;M=Z+1|0;N=_+8|0;O=_+1|0;z=(e&512|0)!=0;A=aa+8|0;B=aa+1|0;C=aa+4|0;D=$+4|0;E=$+8|0;F=$+1|0;G=U+3|0;H=Y+4|0;y=0;s=0;b:while(1){o=k[a>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0;while(0);o=(o|0)==0;h=k[b>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(o){w=h;break}else{W=235;break b}x=0;c=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=24;break b}if((c|0)!=-1)if(o){w=h;break}else{W=235;break b}else{k[b>>2]=0;W=15;break}}else W=15;while(0);if((W|0)==15){W=0;if(o){W=235;break}else w=0}c:do switch(i[U+y>>0]|0){case 1:{if((y|0)!=3){o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=24;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24<=-1){W=40;break b}if(!(j[(k[I>>2]|0)+(o<<24>>24<<1)>>1]&8192)){W=40;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=24;break b}}else{k[h>>2]=c+1;o=l[c>>0]|0}x=0;ra(67,$|0,o&255|0);W=x;x=0;if(W&1){W=24;break b}else{o=w;d=w;W=42}}break}case 0:{if((y|0)!=3){o=w;d=w;W=42}break}case 3:{h=i[_>>0]|0;o=(h&1)==0?(h&255)>>>1:k[J>>2]|0;c=i[Z>>0]|0;d=(c&1)==0?(c&255)>>>1:k[K>>2]|0;if((o|0)!=(0-d|0)){if(!o){o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}h=i[Z>>0]|0}else{o=l[h>>0]|0;h=c}if((o&255)<<24>>24!=(i[((h&1)==0?M:k[L>>2]|0)>>0]|0))break c;o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;i[g>>0]=1;w=i[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:k[K>>2]|0)>>>0>1?Z:s;break c}e=k[a>>2]|0;p=k[e+12>>2]|0;c=k[e+16>>2]|0;o=(p|0)==(c|0);if(!d){if(o){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}h=i[_>>0]|0}else o=l[p>>0]|0;if((o&255)<<24>>24!=(i[((h&1)==0?O:k[N>>2]|0)>>0]|0)){i[g>>0]=1;break c}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;w=i[_>>0]|0;s=((w&1)==0?(w&255)>>>1:k[J>>2]|0)>>>0>1?_:s;break c}if(o){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}c=k[a>>2]|0;h=i[_>>0]|0;e=c;p=k[c+12>>2]|0;c=k[c+16>>2]|0}else o=l[p>>0]|0;d=e+12|0;c=(p|0)==(c|0);if((o&255)<<24>>24==(i[((h&1)==0?O:k[N>>2]|0)>>0]|0)){if(c){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[d>>2]=p+1;w=i[_>>0]|0;s=((w&1)==0?(w&255)>>>1:k[J>>2]|0)>>>0>1?_:s;break c}if(c){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}}else o=l[p>>0]|0;if((o&255)<<24>>24!=(i[((i[Z>>0]&1)==0?M:k[L>>2]|0)>>0]|0)){W=104;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;i[g>>0]=1;w=i[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:k[K>>2]|0)>>>0>1?Z:s}break}case 2:{if(!(y>>>0<2|(s|0)!=0)?!(z|(y|0)==2&(i[G>>0]|0)!=0):0){s=0;break c}u=i[aa>>0]|0;o=(u&1)==0;v=k[A>>2]|0;c=o?B:v;q=c;d:do if((y|0)!=0?(l[U+(y+-1)>>0]|0)<2:0){p=o?(u&255)>>>1:k[C>>2]|0;d=c+p|0;e=k[I>>2]|0;e:do if(!p)h=q;else{p=c;h=q;do{o=i[p>>0]|0;if(o<<24>>24<=-1)break e;if(!(j[e+(o<<24>>24<<1)>>1]&8192))break e;p=p+1|0;h=p}while((p|0)!=(d|0))}while(0);d=h-q|0;e=i[$>>0]|0;o=(e&1)==0;e=o?(e&255)>>>1:k[D>>2]|0;if(e>>>0>=d>>>0){o=o?F:k[E>>2]|0;p=o+e|0;if((h|0)!=(q|0)){o=o+(e-d)|0;while(1){if((i[o>>0]|0)!=(i[c>>0]|0)){h=q;break d}o=o+1|0;if((o|0)==(p|0))break;else c=c+1|0}}}else h=q}else h=q;while(0);o=(u&1)==0;o=(o?B:v)+(o?(u&255)>>>1:k[C>>2]|0)|0;f:do if((h|0)!=(o|0)){e=w;d=w;o=h;while(1){h=k[a>>2]|0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=21;break b}if((h|0)==-1){k[a>>2]=0;h=0;break}else{h=k[a>>2]|0;break}}}else h=0;while(0);c=(h|0)==0;do if(d){if((k[d+12>>2]|0)!=(k[d+16>>2]|0))if(c){h=e;p=d;break}else break f;x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=21;break b}if((h|0)!=-1)if(c^(e|0)==0){h=e;p=e;break}else break f;else{k[b>>2]=0;h=0;W=131;break}}else{h=e;W=131}while(0);if((W|0)==131){W=0;if(c)break f;else p=0}c=k[a>>2]|0;d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=21;break b}}else c=l[d>>0]|0;if((c&255)<<24>>24!=(i[o>>0]|0))break f;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=21;break b}}else k[d>>2]=e+1;o=o+1|0;c=i[aa>>0]|0;w=(c&1)==0;c=(w?B:k[A>>2]|0)+(w?(c&255)>>>1:k[C>>2]|0)|0;if((o|0)==(c|0)){o=c;break}else{e=h;d=p}}}while(0);if(z?(w=i[aa>>0]|0,v=(w&1)==0,(o|0)!=((v?B:k[A>>2]|0)+(v?(w&255)>>>1:k[C>>2]|0)|0)):0){W=143;break b}break}case 4:{q=i[V>>0]|0;h=w;e=w;o=0;g:while(1){c=k[a>>2]|0;do if(c){if((k[c+12>>2]|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=23;break b}if((c|0)==-1){k[a>>2]=0;c=0;break}else{c=k[a>>2]|0;break}}}else c=0;while(0);d=(c|0)==0;do if(e){if((k[e+12>>2]|0)!=(k[e+16>>2]|0))if(d){p=h;break}else{d=h;break g}x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=23;break b}if((c|0)!=-1)if(d^(h|0)==0){p=h;e=h;break}else{d=h;break g}else{k[b>>2]=0;h=0;W=156;break}}else W=156;while(0);if((W|0)==156){W=0;if(d){d=h;break}else{p=h;e=0}}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=23;break b}}else h=l[c>>0]|0;c=h&255;if(c<<24>>24>-1?(j[(k[I>>2]|0)+(h<<24>>24<<1)>>1]&2048)!=0:0){h=k[n>>2]|0;if((h|0)==(k[P>>2]|0)){x=0;Fa(12,m|0,n|0,P|0);w=x;x=0;if(w&1){W=23;break b}h=k[n>>2]|0}k[n>>2]=h+1;i[h>>0]=c;o=o+1|0}else{w=i[Y>>0]|0;if(!(c<<24>>24==q<<24>>24&((o|0)!=0?(((w&1)==0?(w&255)>>>1:k[H>>2]|0)|0)!=0:0))){d=p;break}if((t|0)==(k[S>>2]|0)){x=0;Fa(13,da|0,T|0,S|0);w=x;x=0;if(w&1){W=23;break b}t=k[T>>2]|0}w=t+4|0;k[T>>2]=w;k[t>>2]=o;t=w;o=0}h=k[a>>2]|0;c=h+12|0;d=k[c>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;ta(k[(k[h>>2]|0)+40>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=23;break b}else{h=p;continue}}else{k[c>>2]=d+1;h=p;continue}}if((o|0)!=0?(k[da>>2]|0)!=(t|0):0){if((t|0)==(k[S>>2]|0)){x=0;Fa(13,da|0,T|0,S|0);w=x;x=0;if(w&1){W=24;break b}t=k[T>>2]|0}w=t+4|0;k[T>>2]=w;k[t>>2]=o;t=w}p=k[R>>2]|0;if((p|0)>0){o=k[a>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0;while(0);o=(o|0)==0;do if(d){if((k[d+12>>2]|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=24;break b}if((h|0)==-1){k[b>>2]=0;W=193;break}}if(!o){W=198;break b}}else W=193;while(0);if((W|0)==193){W=0;if(o){W=198;break b}else d=0}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24!=(i[Q>>0]|0)){W=198;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;if((p|0)>0){e=d;c=d;q=p;while(1){o=k[a>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=22;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0;while(0);h=(o|0)==0;do if(c){if((k[c+12>>2]|0)!=(k[c+16>>2]|0))if(h){o=e;p=c;break}else{W=222;break b}x=0;o=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=22;break b}if((o|0)!=-1)if(h^(e|0)==0){o=e;p=e;break}else{W=222;break b}else{k[b>>2]=0;o=0;W=215;break}}else{o=e;W=215}while(0);if((W|0)==215){W=0;if(h){W=222;break b}else p=0}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=22;break b}}else h=l[c>>0]|0;if((h&255)<<24>>24<=-1){W=222;break b}if(!(j[(k[I>>2]|0)+(h<<24>>24<<1)>>1]&2048)){W=222;break b}if((k[n>>2]|0)==(k[P>>2]|0)?(x=0,Fa(12,m|0,n|0,P|0),w=x,x=0,w&1):0){W=22;break b}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=22;break b}}else h=l[c>>0]|0;c=k[n>>2]|0;k[n>>2]=c+1;i[c>>0]=h;h=q;q=q+-1|0;k[R>>2]=q;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=22;break b}}else k[d>>2]=e+1;if((h|0)<=1)break;else{e=o;c=p}}}}if((k[n>>2]|0)==(k[m>>2]|0)){W=233;break b}break}default:{}}while(0);h:do if((W|0)==42)while(1){W=0;h=k[a>>2]|0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=20;break b}if((h|0)==-1){k[a>>2]=0;h=0;break}else{h=k[a>>2]|0;break}}}else h=0;while(0);c=(h|0)==0;do if(d){if((k[d+12>>2]|0)!=(k[d+16>>2]|0))if(c){e=o;break}else break h;x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=20;break b}if((h|0)!=-1)if(c^(o|0)==0){e=o;d=o;break}else break h;else{k[b>>2]=0;o=0;W=54;break}}else W=54;while(0);if((W|0)==54){W=0;if(c)break h;else{e=o;d=0}}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=20;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24<=-1)break h;if(!(j[(k[I>>2]|0)+(o<<24>>24<<1)>>1]&8192))break h;o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=20;break b}}else{k[h>>2]=c+1;o=l[c>>0]|0}x=0;ra(67,$|0,o&255|0);W=x;x=0;if(W&1){W=20;break b}else{o=e;W=42}}while(0);y=y+1|0;if(y>>>0>=4){W=235;break}}i:switch(W|0){case 20:{h=Wa()|0;break a}case 21:{h=Wa()|0;break a}case 22:{h=Wa()|0;break a}case 23:{h=Wa()|0;break a}case 24:{h=Wa()|0;break a}case 40:{k[f>>2]=k[f>>2]|4;h=0;break}case 104:{k[f>>2]=k[f>>2]|4;h=0;break}case 143:{k[f>>2]=k[f>>2]|4;h=0;break}case 198:{k[f>>2]=k[f>>2]|4;h=0;break}case 222:{k[f>>2]=k[f>>2]|4;h=0;break}case 233:{k[f>>2]=k[f>>2]|4;h=0;break}case 235:{j:do if(s){e=s+1|0;p=s+8|0;q=s+4|0;c=1;k:while(1){o=i[s>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[q>>2]|0;if(c>>>0>=o>>>0)break j;o=k[a>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break k}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0;while(0);h=(o|0)==0;o=k[b>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break k}if((o|0)==-1){k[b>>2]=0;W=253;break}}if(!h){W=260;break k}}else W=253;while(0);if((W|0)==253?(W=0,h):0){W=260;break}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break}}else o=l[h>>0]|0;if(!(i[s>>0]&1))h=e;else h=k[p>>2]|0;if((o&255)<<24>>24!=(i[h+c>>0]|0)){W=260;break}o=c+1|0;h=k[a>>2]|0;c=h+12|0;d=k[c>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;ta(k[(k[h>>2]|0)+40>>2]|0,h|0)|0;n=x;x=0;if(n&1){W=19;break}else{c=o;continue}}else{k[c>>2]=d+1;c=o;continue}}if((W|0)==19){h=Wa()|0;break a}else if((W|0)==260){k[f>>2]=k[f>>2]|4;h=0;break i}}while(0);o=k[da>>2]|0;if((o|0)!=(t|0)?(k[X>>2]=0,cs(Y,o,t,X),(k[X>>2]|0)!=0):0){k[f>>2]=k[f>>2]|4;h=0}else h=1;break}}Sm($);Sm(Z);Sm(_);Sm(aa);Sm(Y);o=k[da>>2]|0;k[da>>2]=0;if((o|0)!=0?(x=0,qa(k[ca>>2]|0,o|0),da=x,x=0,da&1):0){da=Wa(0)|0;oc(da)}r=ba;return h|0}while(0);Sm($);Sm(Z);Sm(_);Sm(aa);Sm(Y);o=k[da>>2]|0;k[da>>2]=0;if((o|0)!=0?(x=0,qa(k[ca>>2]|0,o|0),da=x,x=0,da&1):0){da=Wa(0)|0;oc(da)}fb(h|0);return 0}function $r(a){a=a|0;var b=0;b=Va(8)|0;x=0;ra(90,b|0,a|0);a=x;x=0;if(a&1){a=Wa()|0;Ua(b|0);fb(a|0)}else ub(b|0,616,80)}function as(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;v=r;r=r+144|0;h=v+24|0;a=v+32|0;w=v+16|0;q=v+8|0;n=v+4|0;o=v+28|0;j=v;k[w>>2]=a;A=w+4|0;k[A>>2]=189;l=a+100|0;x=0;u=ta(68,e|0)|0;m=x;x=0;if(!(m&1)){k[n>>2]=u;x=0;m=Aa(37,n|0,44220)|0;a=x;x=0;a:do if(!(a&1)?(i[o>>0]=0,s=k[c>>2]|0,k[j>>2]=s,p=k[e+4>>2]|0,t=s,x=0,k[h>>2]=k[j>>2],p=ua(1,b|0,h|0,d|0,n|0,p|0,f|0,o|0,m|0,w|0,q|0,l|0)|0,e=x,x=0,!(e&1)):0){if(p){if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}if(i[o>>0]|0){x=0;a=Aa(k[(k[m>>2]|0)+28>>2]|0,m|0,45)|0;e=x;x=0;if(e&1)break;x=0;ra(67,g|0,a|0);e=x;x=0;if(e&1)break}x=0;j=Aa(k[(k[m>>2]|0)+28>>2]|0,m|0,48)|0;e=x;x=0;if(e&1)break;a=k[w>>2]|0;l=k[q>>2]|0;h=l+-1|0;b:do if(a>>>0>>0)do{if((i[a>>0]|0)!=j<<24>>24)break b;a=a+1|0}while(a>>>0>>0);while(0);x=0;va(32,g|0,a|0,l|0)|0;g=x;x=0;if(g&1)break}a=k[b>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1)break a;if((a|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}}else a=0;while(0);h=(a|0)==0;do if(s){if((k[t+12>>2]|0)==(k[t+16>>2]|0)){x=0;a=ta(k[(k[s>>2]|0)+36>>2]|0,t|0)|0;t=x;x=0;if(t&1)break a;if((a|0)==-1){k[c>>2]=0;z=29;break}}if(!h)z=30}else z=29;while(0);if((z|0)==29?h:0)z=30;if((z|0)==30)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(u)|0;a=k[w>>2]|0;k[w>>2]=0;if((a|0)!=0?(x=0,qa(k[A>>2]|0,a|0),A=x,x=0,A&1):0){A=Wa(0)|0;oc(A)}r=v;return h|0}while(0);h=Wa()|0;zm(u)|0;a=k[w>>2]|0;k[w>>2]=0;if(!a)y=h;else z=36}else{h=Wa()|0;k[w>>2]=0;z=36}if((z|0)==36){x=0;qa(k[A>>2]|0,a|0);A=x;x=0;if(A&1){A=Wa(0)|0;oc(A)}else y=h}fb(y|0);return 0}function bs(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;z=r;r=r+112|0;m=z+100|0;n=z+88|0;o=z+76|0;p=z+64|0;q=z+52|0;s=z+48|0;t=z+36|0;u=z+24|0;v=z+12|0;w=z;do if(a){a=Ss(b,43828)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](m,a);w=k[m>>2]|0;i[c>>0]=w;i[c+1>>0]=w>>8;i[c+2>>0]=w>>16;i[c+3>>0]=w>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;Sm(n);Mb[k[(k[a>>2]|0)+28>>2]&127](o,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[h>>2]=k[o>>2];k[h+4>>2]=k[o+4>>2];k[h+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;Sm(o);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[d>>0]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[e>>0]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](p,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)};k[f>>2]=k[p>>2];k[f+4>>2]=k[p+4>>2];k[f+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);Mb[k[(k[a>>2]|0)+24>>2]&127](q,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;Sm(q);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(b,43764)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](s,a);s=k[s>>2]|0;i[c>>0]=s;i[c+1>>0]=s>>8;i[c+2>>0]=s>>16;i[c+3>>0]=s>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](t,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[j>>2]=k[t>>2];k[j+4>>2]=k[t+4>>2];k[j+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;Sm(t);Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;Sm(u);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[d>>0]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[e>>0]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](v,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)};k[f>>2]=k[v>>2];k[f+4>>2]=k[v+4>>2];k[f+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[a>>2]|0)+24>>2]&127](w,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[w>>2];k[g+4>>2]=k[w+4>>2];k[g+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;Sm(w);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}while(0);k[l>>2]=y;r=z;return}function cs(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;e=i[a>>0]|0;g=a+4|0;f=k[g>>2]|0;a:do if(((e&1)==0?(e&255)>>>1:f)|0){if((b|0)!=(c|0)){e=c+-4|0;if(e>>>0>b>>>0){f=b;do{h=k[f>>2]|0;k[f>>2]=k[e>>2];k[e>>2]=h;f=f+4|0;e=e+-4|0}while(f>>>0>>0)}e=i[a>>0]|0;f=k[g>>2]|0}h=(e&1)==0;g=h?a+1|0:k[a+8>>2]|0;c=c+-4|0;a=g+(h?(e&255)>>>1:f)|0;f=i[g>>0]|0;e=f<<24>>24<1|f<<24>>24==127;b:do if(c>>>0>b>>>0){while(1){if(!e?(f<<24>>24|0)!=(k[b>>2]|0):0)break;g=(a-g|0)>1?g+1|0:g;b=b+4|0;f=i[g>>0]|0;e=f<<24>>24<1|f<<24>>24==127;if(b>>>0>=c>>>0)break b}k[d>>2]=4;break a}while(0);if(!e?((k[c>>2]|0)+-1|0)>>>0>=f<<24>>24>>>0:0)k[d>>2]=4}while(0);return}function ds(a){a=a|0;return}function es(a){a=a|0;mj(a);return}function fs(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;B=r;r=r+576|0;w=B+424|0;A=B;a=B+24|0;D=B+16|0;y=B+12|0;C=B+8|0;n=B+464|0;j=B+4|0;z=B+468|0;k[D>>2]=a;F=D+4|0;k[F>>2]=189;l=a+400|0;x=0;h=ta(68,e|0)|0;v=x;x=0;if(!(v&1)){k[C>>2]=h;x=0;a=Aa(37,C|0,44212)|0;v=x;x=0;a:do if(!(v&1)?(i[n>>0]=0,k[j>>2]=k[c>>2],m=k[e+4>>2]|0,x=0,k[w>>2]=k[j>>2],m=ua(2,b|0,w|0,d|0,C|0,m|0,f|0,n|0,a|0,D|0,y|0,l|0)|0,v=x,x=0,!(v&1)):0){b:do if(m){x=0;Ea(k[(k[a>>2]|0)+48>>2]|0,a|0,59007,59017,w|0)|0;v=x;x=0;if(v&1){G=10;break a}j=k[y>>2]|0;l=k[D>>2]|0;a=j-l|0;if((a|0)>392){a=Pl((a>>2)+2|0)|0;h=a;if(!a){x=0;Ga(6);v=x;x=0;if(!(v&1)){a=0;G=13}}else G=13}else{h=0;a=z;G=13}do if((G|0)==13){if(i[n>>0]|0){i[a>>0]=45;a=a+1|0}u=w+40|0;v=w;if(l>>>0>>0){m=w+4|0;d=m+4|0;e=d+4|0;n=e+4|0;o=n+4|0;p=o+4|0;q=p+4|0;s=q+4|0;t=s+4|0;do{j=k[l>>2]|0;do if((k[w>>2]|0)!=(j|0))if((k[m>>2]|0)!=(j|0))if((k[d>>2]|0)!=(j|0))if((k[e>>2]|0)!=(j|0))if((k[n>>2]|0)==(j|0))j=n;else{if((k[o>>2]|0)==(j|0)){j=o;break}if((k[p>>2]|0)==(j|0)){j=p;break}if((k[q>>2]|0)==(j|0)){j=q;break}if((k[s>>2]|0)==(j|0)){j=s;break}j=(k[t>>2]|0)==(j|0)?t:u}else j=e;else j=d;else j=m;else j=w;while(0);i[a>>0]=i[59007+(j-v>>2)>>0]|0;l=l+4|0;a=a+1|0}while(l>>>0<(k[y>>2]|0)>>>0)}i[a>>0]=0;k[A>>2]=g;if((jl(z,58987,A)|0)!=1?(x=0,qa(190,58991),g=x,x=0,g&1):0)break;if(h)Ql(h);break b}while(0);a=Wa()|0;if(!h){j=a;h=D;break a}Ql(h);j=a;h=D;break a}while(0);a=k[b>>2]|0;do if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}}else a=k[h>>2]|0;if((a|0)==-1){k[b>>2]=0;j=1;break}else{j=(k[b>>2]|0)==0;break}}else j=1;while(0);a=k[c>>2]|0;do if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}}else a=k[h>>2]|0;if((a|0)!=-1)if(j)break;else{G=40;break}else{k[c>>2]=0;G=38;break}}else G=38;while(0);if((G|0)==38?j:0)G=40;if((G|0)==40)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(k[C>>2]|0)|0;a=k[D>>2]|0;k[D>>2]=0;if((a|0)!=0?(x=0,qa(k[F>>2]|0,a|0),G=x,x=0,G&1):0){G=Wa(0)|0;oc(G)}r=B;return h|0}else G=10;while(0);if((G|0)==10){j=Wa()|0;h=D}zm(k[C>>2]|0)|0;a=k[h>>2]|0;k[h>>2]=0;if(!a)E=j;else{h=k[F>>2]|0;G=47}}else{j=Wa()|0;k[D>>2]=0;h=189;G=47}if((G|0)==47){x=0;qa(h|0,a|0);G=x;x=0;if(G&1){G=Wa(0)|0;oc(G)}else E=j}fb(E|0);return 0}function gs(a,b,c,d,e,f,g,h,j,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;var o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=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;Y=r;r=r+512|0;K=Y+96|0;o=Y+104|0;_=Y+88|0;O=Y+80|0;N=Y+76|0;P=Y+504|0;L=Y+72|0;Q=Y+68|0;T=Y+56|0;X=Y+44|0;V=Y+32|0;U=Y+20|0;W=Y+8|0;M=Y+4|0;S=Y;k[K>>2]=n;k[_>>2]=o;Z=_+4|0;k[Z>>2]=189;k[O>>2]=o;k[N>>2]=o+400;k[T>>2]=0;k[T+4>>2]=0;k[T+8>>2]=0;k[X>>2]=0;k[X+4>>2]=0;k[X+8>>2]=0;k[V>>2]=0;k[V+4>>2]=0;k[V+8>>2]=0;k[U>>2]=0;k[U+4>>2]=0;k[U+8>>2]=0;k[W>>2]=0;k[W+4>>2]=0;k[W+8>>2]=0;x=0;za(2,c|0,d|0,P|0,L|0,Q|0,T|0,X|0,V|0,U|0,M|0);J=x;x=0;a:do if(J&1)c=Wa()|0;else{k[m>>2]=k[j>>2];G=V+4|0;H=U+4|0;I=U+8|0;J=V+8|0;z=(e&512|0)!=0;A=X+8|0;B=X+4|0;C=W+4|0;D=W+8|0;E=P+3|0;F=T+4|0;y=0;q=0;b:while(1){n=k[a>>2]|0;do if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[c>>2]|0;if((n|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);c=k[b>>2]|0;do if(c){n=k[c+12>>2]|0;if((n|0)==(k[c+16>>2]|0)){x=0;n=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[n>>2]|0;if((n|0)!=-1)if(d){w=c;break}else{s=o;R=244;break b}else{k[b>>2]=0;R=16;break}}else R=16;while(0);if((R|0)==16){R=0;if(d){s=o;R=244;break}else w=0}c:do switch(i[P+y>>0]|0){case 1:{if((y|0)!=3){n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=26;break b}}else n=k[c>>2]|0;x=0;n=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,n|0)|0;R=x;x=0;if(R&1){R=26;break b}if(!n){R=42;break b}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=26;break b}}else{k[c>>2]=d+4;n=k[d>>2]|0}x=0;ra(92,W|0,n|0);R=x;x=0;if(R&1){R=26;break b}else{n=w;e=w;R=44}}else n=o;break}case 0:{if((y|0)==3)n=o;else{n=w;e=w;R=44}break}case 3:{c=i[V>>0]|0;n=(c&1)==0?(c&255)>>>1:k[G>>2]|0;d=i[U>>0]|0;e=(d&1)==0?(d&255)>>>1:k[H>>2]|0;if((n|0)==(0-e|0))n=o;else{if(!n){n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}c=i[U>>0]|0}else{n=k[c>>2]|0;c=d}if((n|0)!=(k[((c&1)==0?H:k[I>>2]|0)>>2]|0)){n=o;break c}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;i[g>>0]=1;w=i[U>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[H>>2]|0)>>>0>1?U:q;break c}p=k[a>>2]|0;s=k[p+12>>2]|0;d=k[p+16>>2]|0;n=(s|0)==(d|0);if(!e){if(n){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}c=i[V>>0]|0}else n=k[s>>2]|0;if((n|0)!=(k[((c&1)==0?G:k[J>>2]|0)>>2]|0)){i[g>>0]=1;n=o;break c}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;w=i[V>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[G>>2]|0)>>>0>1?V:q;break c}if(n){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}d=k[a>>2]|0;c=i[V>>0]|0;p=d;s=k[d+12>>2]|0;d=k[d+16>>2]|0}else n=k[s>>2]|0;e=p+12|0;d=(s|0)==(d|0);if((n|0)==(k[((c&1)==0?G:k[J>>2]|0)>>2]|0)){if(d){x=0;ta(k[(k[p>>2]|0)+40>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[e>>2]=s+4;w=i[V>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[G>>2]|0)>>>0>1?V:q;break c}if(d){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[s>>2]|0;if((n|0)!=(k[((i[U>>0]&1)==0?H:k[I>>2]|0)>>2]|0)){R=107;break b}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;i[g>>0]=1;w=i[U>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[H>>2]|0)>>>0>1?U:q}break}case 2:{if(!(y>>>0<2|(q|0)!=0)?!(z|(y|0)==2&(i[E>>0]|0)!=0):0){n=o;q=0;break c}e=i[X>>0]|0;d=k[A>>2]|0;c=(e&1)==0?B:d;n=c;d:do if((y|0)!=0?(l[P+(y+-1)>>0]|0)<2:0){v=(e&1)==0;e:do if((c|0)!=((v?B:d)+((v?(e&255)>>>1:k[B>>2]|0)<<2)|0)){e=c;while(1){x=0;c=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,k[e>>2]|0)|0;v=x;x=0;if(v&1){R=23;break b}if(!c)break;e=e+4|0;n=e;c=i[X>>0]|0;d=k[A>>2]|0;v=(c&1)==0;if((e|0)==((v?B:d)+((v?(c&255)>>>1:k[B>>2]|0)<<2)|0)){e=c;break e}}e=i[X>>0]|0;d=k[A>>2]|0}while(0);s=(e&1)==0?B:d;c=s;t=n-c>>2;u=i[W>>0]|0;p=(u&1)==0;u=p?(u&255)>>>1:k[C>>2]|0;if(u>>>0>=t>>>0){p=p?C:k[D>>2]|0;v=p+(u<<2)|0;if(!t)c=n;else{p=p+(u-t<<2)|0;while(1){if((k[p>>2]|0)!=(k[s>>2]|0))break d;p=p+4|0;if((p|0)==(v|0)){c=n;break}else s=s+4|0}}}}else c=n;while(0);n=(e&1)==0;n=(n?B:d)+((n?(e&255)>>>1:k[B>>2]|0)<<2)|0;f:do if((c|0)!=(n|0)){p=w;e=w;n=c;while(1){c=k[a>>2]|0;do if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=22;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);do if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=22;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(p|0)==0){c=p;s=p;break}else break f;else{k[b>>2]=0;c=0;R=136;break}}else{c=p;R=136}while(0);if((R|0)==136){R=0;if(d)break f;else s=0}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=22;break b}}else d=k[e>>2]|0;if((d|0)!=(k[n>>2]|0))break f;d=k[a>>2]|0;e=d+12|0;p=k[e>>2]|0;if((p|0)==(k[d+16>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=22;break b}}else k[e>>2]=p+4;n=n+4|0;d=i[X>>0]|0;w=(d&1)==0;d=(w?B:k[A>>2]|0)+((w?(d&255)>>>1:k[B>>2]|0)<<2)|0;if((n|0)==(d|0)){n=d;break}else{p=c;e=s}}}while(0);if(z?(w=i[X>>0]|0,v=(w&1)==0,(n|0)!=((v?B:k[A>>2]|0)+((v?(w&255)>>>1:k[B>>2]|0)<<2)|0)):0){R=148;break b}else n=o;break}case 4:{u=k[Q>>2]|0;t=w;p=w;n=o;c=0;g:while(1){d=k[a>>2]|0;do if(d){e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=25;break b}}else d=k[e>>2]|0;if((d|0)==-1){k[a>>2]=0;e=1;break}else{e=(k[a>>2]|0)==0;break}}else e=1;while(0);do if(p){d=k[p+12>>2]|0;if((d|0)==(k[p+16>>2]|0)){x=0;d=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(e^(t|0)==0){d=t;s=t;break}else{o=t;break g}else{k[b>>2]=0;d=0;R=162;break}}else{d=t;R=162}while(0);if((R|0)==162){R=0;if(e){o=d;break}else s=0}e=k[a>>2]|0;o=k[e+12>>2]|0;if((o|0)==(k[e+16>>2]|0)){x=0;e=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=25;break b}}else e=k[o>>2]|0;x=0;o=va(k[(k[h>>2]|0)+12>>2]|0,h|0,2048,e|0)|0;w=x;x=0;if(w&1){R=25;break b}if(o){o=k[m>>2]|0;if((o|0)==(k[K>>2]|0)){x=0;Fa(14,j|0,m|0,K|0);w=x;x=0;if(w&1){R=25;break b}o=k[m>>2]|0}k[m>>2]=o+4;k[o>>2]=e;c=c+1|0}else{w=i[T>>0]|0;if(!((e|0)==(u|0)&((c|0)!=0?(((w&1)==0?(w&255)>>>1:k[F>>2]|0)|0)!=0:0))){o=d;break}if((n|0)==(k[N>>2]|0)){x=0;Fa(13,_|0,O|0,N|0);w=x;x=0;if(w&1){R=25;break b}n=k[O>>2]|0}w=n+4|0;k[O>>2]=w;k[n>>2]=c;n=w;c=0}e=k[a>>2]|0;o=e+12|0;p=k[o>>2]|0;if((p|0)==(k[e+16>>2]|0)){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=25;break b}else{t=d;p=s;continue}}else{k[o>>2]=p+4;t=d;p=s;continue}}if((c|0)!=0?(k[_>>2]|0)!=(n|0):0){if((n|0)==(k[N>>2]|0)){x=0;Fa(13,_|0,O|0,N|0);w=x;x=0;if(w&1){R=26;break b}n=k[O>>2]|0}w=n+4|0;k[O>>2]=w;k[n>>2]=c;n=w}s=k[M>>2]|0;if((s|0)>0){c=k[a>>2]|0;do if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);do if(o){c=k[o+12>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;c=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d)break;else{R=206;break b}else{k[b>>2]=0;R=200;break}}else R=200;while(0);if((R|0)==200){R=0;if(d){R=206;break b}else o=0}c=k[a>>2]|0;d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[d>>2]|0;if((c|0)!=(k[L>>2]|0)){R=206;break b}c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[d>>2]=e+4;if((s|0)>0){p=o;e=o;t=s;while(1){c=k[a>>2]|0;do if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=24;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);do if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=24;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(p|0)==0){c=p;s=p;break}else{R=231;break b}else{k[b>>2]=0;c=0;R=224;break}}else{c=p;R=224}while(0);if((R|0)==224){R=0;if(d){R=231;break b}else s=0}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=24;break b}}else d=k[e>>2]|0;x=0;d=va(k[(k[h>>2]|0)+12>>2]|0,h|0,2048,d|0)|0;w=x;x=0;if(w&1){R=24;break b}if(!d){R=231;break b}if((k[m>>2]|0)==(k[K>>2]|0)?(x=0,Fa(14,j|0,m|0,K|0),w=x,x=0,w&1):0){R=24;break b}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=24;break b}}else d=k[e>>2]|0;e=k[m>>2]|0;k[m>>2]=e+4;k[e>>2]=d;d=t;t=t+-1|0;k[M>>2]=t;e=k[a>>2]|0;o=e+12|0;p=k[o>>2]|0;if((p|0)==(k[e+16>>2]|0)){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=24;break b}}else k[o>>2]=p+4;if((d|0)<=1)break;else{p=c;e=s}}}}if((k[m>>2]|0)==(k[j>>2]|0)){R=242;break b}break}default:n=o}while(0);h:do if((R|0)==44)while(1){R=0;c=k[a>>2]|0;do if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=21;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);do if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=21;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(n|0)==0){p=n;e=n;break}else{n=o;break h}else{k[b>>2]=0;n=0;R=57;break}}else R=57;while(0);if((R|0)==57){R=0;if(d){n=o;break h}else{p=n;e=0}}n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=21;break b}}else n=k[c>>2]|0;x=0;n=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,n|0)|0;w=x;x=0;if(w&1){R=21;break b}if(!n){n=o;break h}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=21;break b}}else{k[c>>2]=d+4;n=k[d>>2]|0}x=0;ra(92,W|0,n|0);R=x;x=0;if(R&1){R=21;break b}else{n=p;R=44}}while(0);y=y+1|0;if(y>>>0>=4){s=n;R=244;break}else o=n}i:switch(R|0){case 21:{c=Wa()|0;break a}case 22:{c=Wa()|0;break a}case 23:{c=Wa()|0;break a}case 24:{c=Wa()|0;break a}case 25:{c=Wa()|0;break a}case 26:{c=Wa()|0;break a}case 42:{k[f>>2]=k[f>>2]|4;c=0;break}case 107:{k[f>>2]=k[f>>2]|4;c=0;break}case 148:{k[f>>2]=k[f>>2]|4;c=0;break}case 206:{k[f>>2]=k[f>>2]|4;c=0;break}case 231:{k[f>>2]=k[f>>2]|4;c=0;break}case 242:{k[f>>2]=k[f>>2]|4;c=0;break}case 244:{j:do if(q){o=q+4|0;p=q+8|0;e=1;k:while(1){n=i[q>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[o>>2]|0;if(e>>>0>=n>>>0)break j;n=k[a>>2]|0;do if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break k}}else n=k[c>>2]|0;if((n|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);n=k[b>>2]|0;do if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break k}}else n=k[c>>2]|0;if((n|0)!=-1)if(d)break;else{R=271;break k}else{k[b>>2]=0;R=263;break}}else R=263;while(0);if((R|0)==263?(R=0,d):0){R=271;break}n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break}}else n=k[c>>2]|0;if(!(i[q>>0]&1))c=o;else c=k[p>>2]|0;if((n|0)!=(k[c+(e<<2)>>2]|0)){R=271;break}n=e+1|0;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;m=x;x=0;if(m&1){R=20;break}else{e=n;continue}}else{k[d>>2]=e+4;e=n;continue}}if((R|0)==20){c=Wa()|0;break a}else if((R|0)==271){k[f>>2]=k[f>>2]|4;c=0;break i}}while(0);n=k[_>>2]|0;if((n|0)!=(s|0)?(k[S>>2]=0,cs(T,n,s,S),(k[S>>2]|0)!=0):0){k[f>>2]=k[f>>2]|4;c=0}else c=1;break}}en(W);en(U);en(V);en(X);Sm(T);n=k[_>>2]|0;k[_>>2]=0;if((n|0)!=0?(x=0,qa(k[Z>>2]|0,n|0),_=x,x=0,_&1):0){_=Wa(0)|0;oc(_)}r=Y;return c|0}while(0);en(W);en(U);en(V);en(X);Sm(T);n=k[_>>2]|0;k[_>>2]=0;if((n|0)!=0?(x=0,qa(k[Z>>2]|0,n|0),_=x,x=0,_&1):0){_=Wa(0)|0;oc(_)}fb(c|0);return 0}function hs(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;v=r;r=r+432|0;h=v+424|0;a=v+24|0;y=v+16|0;q=v+8|0;n=v+4|0;o=v+428|0;j=v;k[y>>2]=a;A=y+4|0;k[A>>2]=189;l=a+400|0;x=0;u=ta(68,e|0)|0;m=x;x=0;if(!(m&1)){k[n>>2]=u;x=0;m=Aa(37,n|0,44212)|0;a=x;x=0;a:do if(!(a&1)?(i[o>>0]=0,s=k[c>>2]|0,k[j>>2]=s,p=k[e+4>>2]|0,t=s,x=0,k[h>>2]=k[j>>2],p=ua(2,b|0,h|0,d|0,n|0,p|0,f|0,o|0,m|0,y|0,q|0,l|0)|0,e=x,x=0,!(e&1)):0){if(p){if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;if(i[o>>0]|0){x=0;a=Aa(k[(k[m>>2]|0)+44>>2]|0,m|0,45)|0;e=x;x=0;if(e&1)break;x=0;ra(92,g|0,a|0);e=x;x=0;if(e&1)break}x=0;j=Aa(k[(k[m>>2]|0)+44>>2]|0,m|0,48)|0;e=x;x=0;if(e&1)break;a=k[y>>2]|0;l=k[q>>2]|0;h=l+-4|0;b:do if(a>>>0>>0)do{if((k[a>>2]|0)!=(j|0))break b;a=a+4|0}while(a>>>0>>0);while(0);x=0;va(33,g|0,a|0,l|0)|0;g=x;x=0;if(g&1)break}a=k[b>>2]|0;do if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1)break a}else a=k[h>>2]|0;if((a|0)==-1){k[b>>2]=0;h=1;break}else{h=(k[b>>2]|0)==0;break}}else h=1;while(0);do if(s){a=k[t+12>>2]|0;if((a|0)==(k[t+16>>2]|0)){x=0;a=ta(k[(k[s>>2]|0)+36>>2]|0,t|0)|0;t=x;x=0;if(t&1)break a}else a=k[a>>2]|0;if((a|0)!=-1)if(h)break;else{z=32;break}else{k[c>>2]=0;z=30;break}}else z=30;while(0);if((z|0)==30?h:0)z=32;if((z|0)==32)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(u)|0;a=k[y>>2]|0;k[y>>2]=0;if((a|0)!=0?(x=0,qa(k[A>>2]|0,a|0),A=x,x=0,A&1):0){A=Wa(0)|0;oc(A)}r=v;return h|0}while(0);h=Wa()|0;zm(u)|0;a=k[y>>2]|0;k[y>>2]=0;if(!a)w=h;else z=38}else{h=Wa()|0;k[y>>2]=0;z=38}if((z|0)==38){x=0;qa(k[A>>2]|0,a|0);A=x;x=0;if(A&1){A=Wa(0)|0;oc(A)}else w=h}fb(w|0);return 0}function is(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;z=r;r=r+112|0;m=z+100|0;n=z+88|0;o=z+76|0;p=z+64|0;q=z+52|0;s=z+48|0;t=z+36|0;u=z+24|0;v=z+12|0;w=z;do if(a){a=Ss(b,43956)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](m,a);w=k[m>>2]|0;i[c>>0]=w;i[c+1>>0]=w>>8;i[c+2>>0]=w>>16;i[c+3>>0]=w>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;en(n);Mb[k[(k[a>>2]|0)+28>>2]&127](o,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[h>>2]=k[o>>2];k[h+4>>2]=k[o+4>>2];k[h+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;en(o);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[d>>2]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[e>>2]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](p,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)};k[f>>2]=k[p>>2];k[f+4>>2]=k[p+4>>2];k[f+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);Mb[k[(k[a>>2]|0)+24>>2]&127](q,a);if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;x=0;ra(93,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;en(q);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(b,43892)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](s,a);s=k[s>>2]|0;i[c>>0]=s;i[c+1>>0]=s>>8;i[c+2>>0]=s>>16;i[c+3>>0]=s>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](t,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[j>>2]=k[t>>2];k[j+4>>2]=k[t+4>>2];k[j+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;en(t);Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;en(u);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[d>>2]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[e>>2]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](v,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)};k[f>>2]=k[v>>2];k[f+4>>2]=k[v+4>>2];k[f+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[a>>2]|0)+24>>2]&127](w,a);if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;x=0;ra(93,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[w>>2];k[g+4>>2]=k[w+4>>2];k[g+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;en(w);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}while(0);k[l>>2]=y;r=z;return}function js(a){a=a|0;return}function ks(a){a=a|0;mj(a);return}function ls(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;D=r;r=r+384|0;u=D+8|0;g=D;j=D+284|0;l=D+72|0;h=D+184|0;F=D+68|0;A=D+80|0;w=D+77|0;B=D+76|0;G=D+56|0;I=D+44|0;H=D+32|0;m=D+28|0;t=D+84|0;z=D+24|0;y=D+20|0;v=D+16|0;k[l>>2]=j;p[u>>3]=f;j=il(j,100,59018,u)|0;do if(j>>>0>99){x=0;a=Da(3)|0;C=x;x=0;if(!(C&1)?(x=0,p[g>>3]=f,q=Ea(17,l|0,a|0,59018,g|0)|0,C=x,x=0,!(C&1)):0){a=k[l>>2]|0;if(!a){x=0;Ga(6);C=x;x=0;if(C&1){a=0;g=0;C=7;break}a=k[l>>2]|0}h=Pl(q)|0;g=h;if(!h){x=0;Ga(6);C=x;x=0;if(C&1)C=7;else{s=0;C=10}}else{s=h;C=10}}else{a=0;g=0;C=7}}else{g=0;a=0;s=h;q=j;C=10}while(0);if((C|0)==10){x=0;h=ta(68,d|0)|0;o=x;x=0;if(o&1)C=7;else{k[F>>2]=h;x=0;o=Aa(37,F|0,44220)|0;n=x;x=0;if(!(n&1)?(n=k[l>>2]|0,x=0,Ea(k[(k[o>>2]|0)+32>>2]|0,o|0,n|0,n+q|0,s|0)|0,n=x,x=0,!(n&1)):0){if(!q)n=0;else n=(i[k[l>>2]>>0]|0)==45;k[G>>2]=0;k[G+4>>2]=0;k[G+8>>2]=0;k[I>>2]=0;k[I+4>>2]=0;k[I+8>>2]=0;k[H>>2]=0;k[H+4>>2]=0;k[H+8>>2]=0;x=0;za(3,c|0,n|0,F|0,A|0,w|0,B|0,G|0,I|0,H|0,m|0);c=x;x=0;if(!(c&1)){m=k[m>>2]|0;if((q|0)>(m|0)){c=i[H>>0]|0;j=i[I>>0]|0;j=(q-m<<1|1)+m+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}else{c=i[H>>0]|0;j=i[I>>0]|0;j=m+2+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}if(j>>>0>100){j=Pl(j)|0;l=j;if(!j){x=0;Ga(6);t=x;x=0;if(!(t&1)){j=0;C=26}}else C=26}else{l=0;j=t;C=26}if((C|0)==26){x=0;wa(1,j|0,z|0,y|0,k[d+4>>2]|0,s|0,s+q|0,o|0,n|0,A|0,i[w>>0]|0,i[B>>0]|0,G|0,I|0,H|0,m|0);B=x;x=0;if(!(B&1)?(k[v>>2]=k[b>>2],b=k[z>>2]|0,E=k[y>>2]|0,x=0,k[u>>2]=k[v>>2],E=sa(39,u|0,j|0,b|0,E|0,d|0,e|0)|0,b=x,x=0,!(b&1)):0){if(l){Ql(l);h=k[F>>2]|0}Sm(H);Sm(I);Sm(G);zm(h)|0;if(g)Ql(g);if(a)Ql(a);r=D;return E|0}}j=Wa()|0;if(l){Ql(l);h=k[F>>2]|0}}else j=Wa()|0;Sm(H);Sm(I);Sm(G)}else j=Wa()|0;zm(h)|0}}if((C|0)==7)j=Wa()|0;if(g)Ql(g);if(a)Ql(a);fb(j|0);return 0}function ms(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;D=r;r=r+112|0;o=D+108|0;p=D+96|0;t=D+92|0;u=D+80|0;v=D+68|0;w=D+56|0;y=D+52|0;z=D+40|0;A=D+36|0;B=D+24|0;q=D+12|0;s=D;do if(a){a=Ss(c,43828)|0;c=k[a>>2]|0;do if(b){Mb[k[c+44>>2]&127](o,a);b=k[o>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](p,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[p>>2];k[j+4>>2]=k[p+4>>2];k[j+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);n=a;break}}else{Mb[k[c+40>>2]&127](t,a);b=k[t>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[u>>2];k[j+4>>2]=k[u+4>>2];k[j+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;Sm(u);n=a;break}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[e>>0]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[f>>0]=j;Mb[k[(k[n>>2]|0)+20>>2]&127](v,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)};k[g>>2]=k[v>>2];k[g+4>>2]=k[v+4>>2];k[g+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[n>>2]|0)+24>>2]&127](w,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[w>>2];k[h+4>>2]=k[w+4>>2];k[h+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;Sm(w);C=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(c,43764)|0;c=k[a>>2]|0;do if(b){Mb[k[c+44>>2]&127](y,a);b=k[y>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](z,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[z>>2];k[j+4>>2]=k[z+4>>2];k[j+8>>2]=k[z+8>>2];k[z>>2]=0;k[z+4>>2]=0;k[z+8>>2]=0;Sm(z);m=a;break}}else{Mb[k[c+40>>2]&127](A,a);b=k[A>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](B,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[B>>2];k[j+4>>2]=k[B+4>>2];k[j+8>>2]=k[B+8>>2];k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;Sm(B);m=a;break}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[e>>0]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[f>>0]=j;Mb[k[(k[m>>2]|0)+20>>2]&127](q,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)};k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;Sm(q);Mb[k[(k[m>>2]|0)+24>>2]&127](s,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[s>>2];k[h+4>>2]=k[s+4>>2];k[h+8>>2]=k[s+8>>2];k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;Sm(s);C=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}while(0);k[l>>2]=C;r=D;return}function ns(a,b,c,d,e,f,g,h,l,m,n,o,p,q,r){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var 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;k[c>>2]=a;N=q+4|0;O=q+8|0;P=q+1|0;H=p+4|0;I=(d&512|0)==0;J=p+8|0;K=p+1|0;L=g+8|0;M=(r|0)>0;A=o+4|0;B=o+8|0;C=o+1|0;D=r+1|0;F=-2-r-((r|0)<0?~r:-1)|0;G=(r|0)>0;z=0;do{switch(i[l+z>>0]|0){case 0:{k[b>>2]=k[c>>2];break}case 1:{k[b>>2]=k[c>>2];x=Vb[k[(k[g>>2]|0)+28>>2]&63](g,32)|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x;break}case 3:{y=i[q>>0]|0;s=(y&1)==0;if((s?(y&255)>>>1:k[N>>2]|0)|0){x=i[(s?P:k[O>>2]|0)>>0]|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x}break}case 2:{u=i[p>>0]|0;s=(u&1)==0;u=s?(u&255)>>>1:k[H>>2]|0;if(!(I|(u|0)==0)){t=s?K:k[J>>2]|0;v=t+u|0;s=k[c>>2]|0;if(u)do{i[s>>0]=i[t>>0]|0;t=t+1|0;s=s+1|0}while((t|0)!=(v|0));k[c>>2]=s}break}case 4:{s=k[c>>2]|0;e=h?e+1|0:e;w=e;v=k[L>>2]|0;a:do if(e>>>0>>0){t=e;do{u=i[t>>0]|0;if(u<<24>>24<=-1)break a;if(!(j[v+(u<<24>>24<<1)>>1]&2048))break a;t=t+1|0}while(t>>>0>>0)}else t=e;while(0);u=t;if(M){x=-2-u-~(u>>>0>w>>>0?w:u)|0;x=F>>>0>x>>>0?F:x;if(t>>>0>e>>>0&G){u=t;w=r;while(1){u=u+-1|0;y=i[u>>0]|0;v=k[c>>2]|0;k[c>>2]=v+1;i[v>>0]=y;v=(w|0)>1;if(!(u>>>0>e>>>0&v))break;else w=w+-1|0}}else v=G;y=D+x|0;u=t+(x+1)|0;if(v)w=Vb[k[(k[g>>2]|0)+28>>2]&63](g,48)|0;else w=0;t=k[c>>2]|0;k[c>>2]=t+1;if((y|0)>0){v=y;while(1){i[t>>0]=w;t=k[c>>2]|0;k[c>>2]=t+1;if((v|0)>1)v=v+-1|0;else break}}i[t>>0]=m}else u=t;if((u|0)!=(e|0)){y=i[o>>0]|0;t=(y&1)==0;if(!((t?(y&255)>>>1:k[A>>2]|0)|0))t=-1;else t=i[(t?C:k[B>>2]|0)>>0]|0;if((u|0)!=(e|0)){v=0;w=0;while(1){if((w|0)==(t|0)){y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=n;v=v+1|0;y=i[o>>0]|0;t=(y&1)==0;if(v>>>0<(t?(y&255)>>>1:k[A>>2]|0)>>>0){t=i[(t?C:k[B>>2]|0)+v>>0]|0;t=t<<24>>24==127?-1:t<<24>>24;w=0}else{t=w;w=0}}u=u+-1|0;x=i[u>>0]|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x;if((u|0)==(e|0))break;else w=w+1|0}}}else{x=Vb[k[(k[g>>2]|0)+28>>2]&63](g,48)|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x}t=k[c>>2]|0;if((s|0)!=(t|0)?(E=t+-1|0,s>>>0>>0):0){t=E;do{y=i[s>>0]|0;i[s>>0]=i[t>>0]|0;i[t>>0]=y;s=s+1|0;t=t+-1|0}while(s>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);t=i[q>>0]|0;e=(t&1)==0;t=e?(t&255)>>>1:k[N>>2]|0;if(t>>>0>1){s=e?P:k[O>>2]|0;u=s+t|0;e=k[c>>2]|0;if((t|0)!=1){s=s+1|0;do{i[e>>0]=i[s>>0]|0;e=e+1|0;s=s+1|0}while((s|0)!=(u|0))}k[c>>2]=e}switch(d&176|0){case 32:{k[b>>2]=k[c>>2];break}case 16:break;default:k[b>>2]=a}return}function os(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;z=r;r=r+176|0;p=z+56|0;B=z+52|0;w=z+64|0;t=z+61|0;y=z+60|0;C=z+40|0;E=z+28|0;D=z+16|0;l=z+12|0;o=z+68|0;v=z+8|0;u=z+4|0;q=z;a=tn(d)|0;k[B>>2]=a;x=0;s=Aa(37,B|0,44220)|0;n=x;x=0;do if(n&1)F=13;else{m=i[f>>0]|0;g=(m&1)==0;n=f+4|0;if(!((g?(m&255)>>>1:k[n>>2]|0)|0))m=0;else{g=i[(g?f+1|0:k[f+8>>2]|0)>>0]|0;x=0;h=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,45)|0;m=x;x=0;if(m&1){F=13;break}m=g<<24>>24==h<<24>>24}k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;za(3,c|0,m|0,B|0,w|0,t|0,y|0,C|0,E|0,D|0,l|0);j=x;x=0;if(!(j&1)){j=i[f>>0]|0;c=k[n>>2]|0;g=(j&1)==0?(j&255)>>>1:c;l=k[l>>2]|0;if((g|0)>(l|0)){G=i[D>>0]|0;h=i[E>>0]|0;g=(g-l<<1|1)+l+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((h&1)==0?(h&255)>>>1:k[E+4>>2]|0)|0}else{G=i[D>>0]|0;g=i[E>>0]|0;g=l+2+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((g&1)==0?(g&255)>>>1:k[E+4>>2]|0)|0}if(g>>>0>100){g=Pl(g)|0;h=g;if(!g){x=0;Ga(6);G=x;x=0;if(!(G&1)){j=i[f>>0]|0;c=k[n>>2]|0;g=0;F=17}}else F=17}else{h=0;g=o;F=17}if((F|0)==17){G=(j&1)==0;f=G?f+1|0:k[f+8>>2]|0;x=0;wa(1,g|0,v|0,u|0,k[d+4>>2]|0,f|0,f+(G?(j&255)>>>1:c)|0,s|0,m|0,w|0,i[t>>0]|0,i[y>>0]|0,C|0,E|0,D|0,l|0);G=x;x=0;if(!(G&1)?(k[q>>2]=k[b>>2],G=k[v>>2]|0,A=k[u>>2]|0,x=0,k[p>>2]=k[q>>2],A=sa(39,p|0,g|0,G|0,A|0,d|0,e|0)|0,G=x,x=0,!(G&1)):0){if(h){Ql(h);a=k[B>>2]|0}Sm(D);Sm(E);Sm(C);zm(a)|0;r=z;return A|0}}g=Wa()|0;if(h){Ql(h);a=k[B>>2]|0}}else g=Wa()|0;Sm(D);Sm(E);Sm(C)}while(0);if((F|0)==13)g=Wa()|0;zm(a)|0;fb(g|0);return 0}function ps(a){a=a|0;return}function qs(a){a=a|0;mj(a);return}function rs(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;D=r;r=r+992|0;u=D+8|0;g=D;j=D+888|0;l=D+880|0;h=D+480|0;F=D+76|0;A=D+884|0;w=D+72|0;B=D+68|0;G=D+56|0;I=D+44|0;H=D+32|0;m=D+28|0;t=D+80|0;z=D+24|0;y=D+20|0;v=D+16|0;k[l>>2]=j;p[u>>3]=f;j=il(j,100,59018,u)|0;do if(j>>>0>99){x=0;a=Da(3)|0;C=x;x=0;if(!(C&1)?(x=0,p[g>>3]=f,q=Ea(17,l|0,a|0,59018,g|0)|0,C=x,x=0,!(C&1)):0){a=k[l>>2]|0;if(!a){x=0;Ga(6);C=x;x=0;if(C&1){a=0;g=0;C=7;break}a=k[l>>2]|0}h=Pl(q<<2)|0;g=h;if(!h){x=0;Ga(6);C=x;x=0;if(C&1)C=7;else{s=0;C=10}}else{s=h;C=10}}else{a=0;g=0;C=7}}else{g=0;a=0;s=h;q=j;C=10}while(0);if((C|0)==10){x=0;h=ta(68,d|0)|0;o=x;x=0;if(o&1)C=7;else{k[F>>2]=h;x=0;o=Aa(37,F|0,44212)|0;n=x;x=0;if(!(n&1)?(n=k[l>>2]|0,x=0,Ea(k[(k[o>>2]|0)+48>>2]|0,o|0,n|0,n+q|0,s|0)|0,n=x,x=0,!(n&1)):0){if(!q)n=0;else n=(i[k[l>>2]>>0]|0)==45;k[G>>2]=0;k[G+4>>2]=0;k[G+8>>2]=0;k[I>>2]=0;k[I+4>>2]=0;k[I+8>>2]=0;k[H>>2]=0;k[H+4>>2]=0;k[H+8>>2]=0;x=0;za(4,c|0,n|0,F|0,A|0,w|0,B|0,G|0,I|0,H|0,m|0);c=x;x=0;if(!(c&1)){m=k[m>>2]|0;if((q|0)>(m|0)){c=i[H>>0]|0;j=i[I>>0]|0;j=(q-m<<1|1)+m+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}else{c=i[H>>0]|0;j=i[I>>0]|0;j=m+2+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}if(j>>>0>100){j=Pl(j<<2)|0;l=j;if(!j){x=0;Ga(6);t=x;x=0;if(!(t&1)){j=0;C=26}}else C=26}else{l=0;j=t;C=26}if((C|0)==26){x=0;wa(2,j|0,z|0,y|0,k[d+4>>2]|0,s|0,s+(q<<2)|0,o|0,n|0,A|0,k[w>>2]|0,k[B>>2]|0,G|0,I|0,H|0,m|0);B=x;x=0;if(!(B&1)?(k[v>>2]=k[b>>2],b=k[z>>2]|0,E=k[y>>2]|0,x=0,k[u>>2]=k[v>>2],E=sa(40,u|0,j|0,b|0,E|0,d|0,e|0)|0,b=x,x=0,!(b&1)):0){if(l){Ql(l);h=k[F>>2]|0}en(H);en(I);Sm(G);zm(h)|0;if(g)Ql(g);if(a)Ql(a);r=D;return E|0}}j=Wa()|0;if(l){Ql(l);h=k[F>>2]|0}}else j=Wa()|0;en(H);en(I);Sm(G)}else j=Wa()|0;zm(h)|0}}if((C|0)==7)j=Wa()|0;if(g)Ql(g);if(a)Ql(a);fb(j|0);return 0}function ss(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0;B=r;r=r+112|0;m=B+108|0;n=B+96|0;q=B+92|0;s=B+80|0;t=B+68|0;u=B+56|0;v=B+52|0;w=B+40|0;y=B+36|0;z=B+24|0;o=B+12|0;p=B;do if(a){a=Ss(c,43956)|0;c=k[a>>2]|0;do if(b){Mb[k[c+44>>2]&127](m,a);b=k[m>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;en(n);break}}else{Mb[k[c+40>>2]&127](q,a);b=k[q>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](s,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[s>>2];k[j+4>>2]=k[s+4>>2];k[j+8>>2]=k[s+8>>2];k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;en(s);break}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[e>>2]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[f>>2]=j;Mb[k[(k[a>>2]|0)+20>>2]&127](t,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)};k[g>>2]=k[t>>2];k[g+4>>2]=k[t+4>>2];k[g+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;Sm(t);Mb[k[(k[a>>2]|0)+24>>2]&127](u,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;en(u);A=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(c,43892)|0;c=k[a>>2]|0;do if(b){Mb[k[c+44>>2]&127](v,a);b=k[v>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](w,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[w>>2];k[j+4>>2]=k[w+4>>2];k[j+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;en(w);break}}else{Mb[k[c+40>>2]&127](y,a);b=k[y>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](z,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[z>>2];k[j+4>>2]=k[z+4>>2];k[j+8>>2]=k[z+8>>2];k[z>>2]=0;k[z+4>>2]=0;k[z+8>>2]=0;en(z);break}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[e>>2]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[f>>2]=j;Mb[k[(k[a>>2]|0)+20>>2]&127](o,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)};k[g>>2]=k[o>>2];k[g+4>>2]=k[o+4>>2];k[g+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;Sm(o);Mb[k[(k[a>>2]|0)+24>>2]&127](p,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[p>>2];k[h+4>>2]=k[p+4>>2];k[h+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;en(p);A=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}while(0);k[l>>2]=A;r=B;return}function ts(a,b,c,d,e,f,g,h,j,l,m,n,o,p,q){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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;k[c>>2]=a;J=p+4|0;K=p+8|0;C=o+4|0;D=(d&512|0)==0;E=o+8|0;F=(q|0)>0;G=n+4|0;H=n+8|0;I=n+1|0;A=(q|0)>0;z=0;do{switch(i[j+z>>0]|0){case 0:{k[b>>2]=k[c>>2];break}case 1:{k[b>>2]=k[c>>2];x=Vb[k[(k[g>>2]|0)+44>>2]&63](g,32)|0;y=k[c>>2]|0;k[c>>2]=y+4;k[y>>2]=x;break}case 3:{y=i[p>>0]|0;r=(y&1)==0;if((r?(y&255)>>>1:k[J>>2]|0)|0){x=k[(r?J:k[K>>2]|0)>>2]|0;y=k[c>>2]|0;k[c>>2]=y+4;k[y>>2]=x}break}case 2:{v=i[o>>0]|0;r=(v&1)==0;v=r?(v&255)>>>1:k[C>>2]|0;if(!(D|(v|0)==0)){r=r?C:k[E>>2]|0;t=r+(v<<2)|0;u=k[c>>2]|0;if(v){s=u;while(1){k[s>>2]=k[r>>2];r=r+4|0;if((r|0)==(t|0))break;else s=s+4|0}}k[c>>2]=u+(v<<2)}break}case 4:{r=k[c>>2]|0;e=h?e+4|0:e;a:do if(e>>>0>>0){s=e;do{if(!(Qb[k[(k[g>>2]|0)+12>>2]&63](g,2048,k[s>>2]|0)|0))break a;s=s+4|0}while(s>>>0>>0)}else s=e;while(0);if(F){if(s>>>0>e>>>0&A){v=k[c>>2]|0;u=q;while(1){s=s+-4|0;t=v+4|0;k[v>>2]=k[s>>2];w=u+-1|0;u=(u|0)>1;if(s>>>0>e>>>0&u){v=t;u=w}else{v=w;break}}k[c>>2]=t;t=v}else{u=A;t=q}if(u)w=Vb[k[(k[g>>2]|0)+44>>2]&63](g,48)|0;else w=0;x=k[c>>2]|0;u=t+((t|0)<0?~t:-1)|0;if((t|0)>0){v=x;while(1){k[v>>2]=w;if((t|0)>1){v=v+4|0;t=t+-1|0}else break}}k[c>>2]=x+(u+2<<2);k[x+(u+1<<2)>>2]=l}if((s|0)==(e|0)){x=Vb[k[(k[g>>2]|0)+44>>2]&63](g,48)|0;y=k[c>>2]|0;s=y+4|0;k[c>>2]=s;k[y>>2]=x}else{x=i[n>>0]|0;t=(x&1)==0;y=k[G>>2]|0;if(!((t?(x&255)>>>1:y)|0))t=-1;else t=i[(t?I:k[H>>2]|0)>>0]|0;if((s|0)!=(e|0)){w=0;x=0;while(1){u=k[c>>2]|0;if((x|0)==(t|0)){v=u+4|0;k[c>>2]=v;k[u>>2]=m;w=w+1|0;u=i[n>>0]|0;t=(u&1)==0;if(w>>>0<(t?(u&255)>>>1:y)>>>0){t=i[(t?I:k[H>>2]|0)+w>>0]|0;u=v;t=t<<24>>24==127?-1:t<<24>>24;v=0}else{u=v;t=x;v=0}}else v=x;s=s+-4|0;x=k[s>>2]|0;k[c>>2]=u+4;k[u>>2]=x;if((s|0)==(e|0))break;else x=v+1|0}}s=k[c>>2]|0}if((r|0)!=(s|0)?(B=s+-4|0,r>>>0>>0):0){s=B;do{y=k[r>>2]|0;k[r>>2]=k[s>>2];k[s>>2]=y;r=r+4|0;s=s+-4|0}while(r>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);r=i[p>>0]|0;e=(r&1)==0;r=e?(r&255)>>>1:k[J>>2]|0;if(r>>>0>1){s=e?J:k[K>>2]|0;e=s+4|0;s=s+(r<<2)|0;t=k[c>>2]|0;u=s-e|0;if((r|0)!=1){r=t;while(1){k[r>>2]=k[e>>2];e=e+4|0;if((e|0)==(s|0))break;else r=r+4|0}}k[c>>2]=t+(u>>>2<<2)}switch(d&176|0){case 32:{k[b>>2]=k[c>>2];break}case 16:break;default:k[b>>2]=a}return}function us(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;z=r;r=r+480|0;o=z+468|0;B=z+464|0;w=z+472|0;t=z+56|0;y=z+52|0;C=z+40|0;E=z+28|0;D=z+16|0;l=z+12|0;n=z+64|0;v=z+8|0;u=z+4|0;p=z;a=tn(d)|0;k[B>>2]=a;x=0;q=Aa(37,B|0,44212)|0;s=x;x=0;do if(s&1)F=13;else{m=i[f>>0]|0;g=(m&1)==0;s=f+4|0;if(!((g?(m&255)>>>1:k[s>>2]|0)|0))m=0;else{g=k[(g?s:k[f+8>>2]|0)>>2]|0;x=0;h=Aa(k[(k[q>>2]|0)+44>>2]|0,q|0,45)|0;m=x;x=0;if(m&1){F=13;break}m=(g|0)==(h|0)}k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;za(4,c|0,m|0,B|0,w|0,t|0,y|0,C|0,E|0,D|0,l|0);j=x;x=0;if(!(j&1)){j=i[f>>0]|0;c=k[s>>2]|0;g=(j&1)==0?(j&255)>>>1:c;l=k[l>>2]|0;if((g|0)>(l|0)){G=i[D>>0]|0;h=i[E>>0]|0;g=(g-l<<1|1)+l+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((h&1)==0?(h&255)>>>1:k[E+4>>2]|0)|0}else{G=i[D>>0]|0;g=i[E>>0]|0;g=l+2+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((g&1)==0?(g&255)>>>1:k[E+4>>2]|0)|0}if(g>>>0>100){g=Pl(g<<2)|0;h=g;if(!g){x=0;Ga(6);G=x;x=0;if(!(G&1)){j=i[f>>0]|0;c=k[s>>2]|0;g=0;F=17}}else F=17}else{h=0;g=n;F=17}if((F|0)==17){G=(j&1)==0;f=G?s:k[f+8>>2]|0;x=0;wa(2,g|0,v|0,u|0,k[d+4>>2]|0,f|0,f+((G?(j&255)>>>1:c)<<2)|0,q|0,m|0,w|0,k[t>>2]|0,k[y>>2]|0,C|0,E|0,D|0,l|0);G=x;x=0;if(!(G&1)?(k[p>>2]=k[b>>2],G=k[v>>2]|0,A=k[u>>2]|0,x=0,k[o>>2]=k[p>>2],A=sa(40,o|0,g|0,G|0,A|0,d|0,e|0)|0,G=x,x=0,!(G&1)):0){if(h){Ql(h);a=k[B>>2]|0}en(D);en(E);Sm(C);zm(a)|0;r=z;return A|0}}g=Wa()|0;if(h){Ql(h);a=k[B>>2]|0}}else g=Wa()|0;en(D);en(E);Sm(C)}while(0);if((F|0)==13)g=Wa()|0;zm(a)|0;fb(g|0);return 0}function vs(a){a=a|0;return}function ws(a){a=a|0;mj(a);return}function xs(a,b,c){a=a|0;b=b|0;c=c|0;a=vk((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0,1)|0;return a>>>((a|0)!=(-1|0)&1)|0}function ys(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,j=0,l=0;h=r;r=r+16|0;j=h;k[j>>2]=0;k[j+4>>2]=0;k[j+8>>2]=0;g=i[f>>0]|0;l=(g&1)==0;b=l?f+1|0:k[f+8>>2]|0;g=l?(g&255)>>>1:k[f+4>>2]|0;f=b+g|0;a:do if((g|0)>0){while(1){x=0;ra(67,j|0,i[b>>0]|0);l=x;x=0;if(l&1)break;b=b+1|0;if(b>>>0>=f>>>0){g=4;break a}}b=Wa()|0;g=7}else g=4;while(0);b:do if((g|0)==4){x=0;b=Ea(19,((c|0)==-1?-1:c<<1)|0,d|0,e|0,((i[j>>0]&1)==0?j+1|0:k[j+8>>2]|0)|0)|0;l=x;x=0;if(l&1){b=Wa()|0;g=7;break}k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;l=xl(b)|0;f=b+l|0;c:do if((l|0)>0){while(1){x=0;ra(67,a|0,i[b>>0]|0);l=x;x=0;if(l&1)break;b=b+1|0;if(b>>>0>=f>>>0)break c}b=Wa()|0;Sm(a);break b}while(0);Sm(j);r=h;return}while(0);Sm(j);fb(b|0)}function zs(a,b){a=a|0;b=b|0;return}function As(a){a=a|0;return}function Bs(a){a=a|0;mj(a);return}function Cs(a,b,c){a=a|0;b=b|0;c=c|0;a=vk((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0,1)|0;return a>>>((a|0)!=(-1|0)&1)|0}function Ds(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;v=r;r=r+224|0;n=v+184|0;m=v+192|0;l=v+180|0;o=v+176|0;t=v+168|0;s=v+40|0;q=v+32|0;u=v+28|0;w=v+16|0;j=v+8|0;p=v;k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;k[j+4>>2]=0;k[j>>2]=44696;h=i[f>>0]|0;y=(h&1)==0;g=f+4|0;b=y?g:k[f+8>>2]|0;f=y?(h&255)>>>1:k[g>>2]|0;g=b+(f<<2)|0;h=m+32|0;a:do if((f|0)>0){b:while(1){k[o>>2]=b;x=0;f=Ha(k[(k[j>>2]|0)+12>>2]|0,j|0,n|0,b|0,g|0,o|0,m|0,h|0,l|0)|0;y=x;x=0;if(y&1){f=12;break}if((f|0)==2?1:(k[o>>2]|0)==(b|0)){f=5;break}if(m>>>0<(k[l>>2]|0)>>>0){b=m;do{x=0;ra(67,w|0,i[b>>0]|0);y=x;x=0;if(y&1){f=11;break b}b=b+1|0}while(b>>>0<(k[l>>2]|0)>>>0)}b=k[o>>2]|0;if(!((f|0)!=2&b>>>0>>0)){f=9;break a}}if((f|0)==5){x=0;qa(190,58955);x=0;b=Wa()|0}else if((f|0)==11)b=Wa()|0;else if((f|0)==12)b=Wa()|0}else f=9;while(0);c:do if((f|0)==9){x=0;b=Ea(19,((c|0)==-1?-1:c<<1)|0,d|0,e|0,((i[w>>0]&1)==0?w+1|0:k[w+8>>2]|0)|0)|0;y=x;x=0;if(y&1){b=Wa()|0;break}k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[p+4>>2]=0;k[p>>2]=44744;y=xl(b)|0;g=b+y|0;h=g;j=s+128|0;d:do if((y|0)>0){e:while(1){k[u>>2]=b;x=0;f=Ha(k[(k[p>>2]|0)+16>>2]|0,p|0,t|0,b|0,((h-b|0)>32?b+32|0:g)|0,u|0,s|0,j|0,q|0)|0;y=x;x=0;if(y&1){f=24;break}if((f|0)==2?1:(k[u>>2]|0)==(b|0)){f=18;break}if(s>>>0<(k[q>>2]|0)>>>0){b=s;do{x=0;ra(92,a|0,k[b>>2]|0);y=x;x=0;if(y&1){f=23;break e}b=b+4|0}while(b>>>0<(k[q>>2]|0)>>>0)}b=k[u>>2]|0;if(!((f|0)!=2&b>>>0>>0))break d}if((f|0)==18){x=0;qa(190,58955);x=0;b=Wa()|0}else if((f|0)==23)b=Wa()|0;else if((f|0)==24)b=Wa()|0;en(a);break c}while(0);Sm(w);r=v;return}while(0);Sm(w);fb(b|0)}function Es(a,b){a=a|0;b=b|0;return}function Fs(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;k[a+4>>2]=b+-1;k[a>>2]=44196;f=a+8|0;x=0;ra(94,f|0,28);e=x;x=0;if(e&1)b=Wa()|0;else{e=a+144|0;x=0;Fa(5,e|0,58885,1);d=x;x=0;if(d&1)b=Wa()|0;else{c=k[f>>2]|0;d=a+12|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do b=b+-4|0;while((b|0)!=(c|0));k[d>>2]=b}k[495]=0;k[494]=43124;x=0;ra(95,a|0,1976);d=x;x=0;do if(((((((((((((!(d&1)?(k[497]=0,k[496]=43164,x=0,ra(96,a|0,1984),d=x,x=0,!(d&1)):0)?(k[499]=0,k[498]=44236,k[500]=0,i[2004]=0,d=Ys()|0,k[500]=d,x=0,ra(97,a|0,1992),d=x,x=0,!(d&1)):0)?(k[503]=0,k[502]=44484,x=0,ra(98,a|0,2008),d=x,x=0,!(d&1)):0)?(k[505]=0,k[504]=44552,x=0,ra(99,a|0,2016),d=x,x=0,!(d&1)):0)?(x=0,ra(100,2024,1),d=x,x=0,!(d&1)):0)?(x=0,ra(101,a|0,2024),d=x,x=0,!(d&1)):0)?(k[511]=0,k[510]=44600,x=0,ra(102,a|0,2040),d=x,x=0,!(d&1)):0)?(k[513]=0,k[512]=44648,x=0,ra(103,a|0,2048),d=x,x=0,!(d&1)):0)?(bu(2056,1),x=0,ra(104,a|0,2056),d=x,x=0,!(d&1)):0)?(cu(2080,1),x=0,ra(105,a|0,2080),d=x,x=0,!(d&1)):0)?(k[529]=0,k[528]=43204,x=0,ra(106,a|0,2112),d=x,x=0,!(d&1)):0)?(k[531]=0,k[530]=43276,x=0,ra(107,a|0,2120),d=x,x=0,!(d&1)):0)?(k[533]=0,k[532]=43348,x=0,ra(108,a|0,2128),d=x,x=0,!(d&1)):0){k[535]=0;k[534]=43408;x=0;ra(109,a|0,2136);d=x;x=0;if(d&1){g=42;break}k[537]=0;k[536]=43716;x=0;ra(110,a|0,2144);d=x;x=0;if(d&1){g=42;break}k[539]=0;k[538]=43780;x=0;ra(111,a|0,2152);d=x;x=0;if(d&1){g=42;break}k[541]=0;k[540]=43844;x=0;ra(112,a|0,2160);d=x;x=0;if(d&1){g=42;break}k[543]=0;k[542]=43908;x=0;ra(113,a|0,2168);d=x;x=0;if(d&1){g=42;break}k[545]=0;k[544]=43972;x=0;ra(114,a|0,2176);d=x;x=0;if(d&1){g=42;break}k[547]=0;k[546]=44008;x=0;ra(115,a|0,2184);d=x;x=0;if(d&1){g=42;break}k[549]=0;k[548]=44044;x=0;ra(116,a|0,2192);d=x;x=0;if(d&1){g=42;break}k[551]=0;k[550]=44080;x=0;ra(117,a|0,2200);d=x;x=0;if(d&1){g=42;break}k[553]=0;k[552]=43468;k[554]=43516;x=0;ra(118,a|0,2208);d=x;x=0;if(d&1){g=42;break}k[557]=0;k[556]=43560;k[558]=43608;x=0;ra(119,a|0,2224);d=x;x=0;if(d&1){g=42;break}k[561]=0;k[560]=44464;x=0;b=Da(3)|0;d=x;x=0;if(d&1){b=Wa()|0;break}k[562]=b;k[560]=43652;x=0;ra(120,a|0,2240);d=x;x=0;if(d&1){g=42;break}k[565]=0;k[564]=44464;x=0;b=Da(3)|0;d=x;x=0;if(d&1){b=Wa()|0;break}k[566]=b;k[564]=43684;x=0;ra(121,a|0,2256);g=x;x=0;if(g&1){g=42;break}k[569]=0;k[568]=44116;x=0;ra(122,a|0,2272);g=x;x=0;if(g&1){g=42;break}k[571]=0;k[570]=44156;x=0;ra(123,a|0,2280);g=x;x=0;if(g&1){g=42;break}return}else g=42;while(0);if((g|0)==42)b=Wa()|0;Sm(e)}Nv(f)}fb(b|0)}function Gs(){var a=0;do if((i[2288]|0)==0?(Qa(2288)|0)!=0:0){x=0;Da(4)|0;a=x;x=0;if(a&1){a=Wa()|0;Bb(2288);fb(a|0)}else{k[11246]=44980;Ya(2288);break}}while(0);return k[11246]|0}function Hs(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;ym(b);e=a+8|0;d=k[e>>2]|0;do if((k[a+12>>2]|0)-d>>2>>>0<=c>>>0){x=0;ra(124,e|0,c+1|0);a=x;x=0;if(!(a&1)){d=k[e>>2]|0;break}d=Wa()|0;if(b)zm(b)|0;fb(d|0)}while(0);a=k[d+(c<<2)>>2]|0;if(a){zm(a)|0;d=k[e>>2]|0}k[d+(c<<2)>>2]=b;return}function Is(a){a=a|0;var b=0,c=0,d=0,e=0;k[a>>2]=44196;d=a+8|0;e=a+12|0;b=k[d>>2]|0;if((k[e>>2]|0)!=(b|0)){c=0;do{b=k[b+(c<<2)>>2]|0;if(b)zm(b)|0;c=c+1|0;b=k[d>>2]|0}while(c>>>0<(k[e>>2]|0)-b>>2>>>0)}Sm(a+144|0);Nv(d);return}function Js(a){a=a|0;Is(a);mj(a);return}function Ks(a,b){a=a|0;b=b|0;if(Pv(a,b)|0)return k[(k[a+8>>2]|0)+(b<<2)>>2]|0;else{a=Va(4)|0;Aj(a);ub(a|0,640,82)}return 0}function Ls(){Fs(2296,1);k[11245]=2296;return 44980}function Ms(){var a=0;a=Gs()|0;a=k[a>>2]|0;k[11247]=a;ym(a);return 44988}function Ns(){var a=0;do if((i[2456]|0)==0?(Qa(2456)|0)!=0:0){x=0;Da(5)|0;a=x;x=0;if(a&1){a=Wa()|0;Bb(2456);fb(a|0)}else{k[11248]=44988;Ya(2456);break}}while(0);return k[11248]|0}function Os(a){a=a|0;var b=0,c=0;x=0;b=Da(6)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}else{c=k[b>>2]|0;k[a>>2]=c;ym(c);return}}function Ps(a,b){a=a|0;b=b|0;b=k[b>>2]|0;k[a>>2]=b;ym(b);return}function Qs(a){a=a|0;zm(k[a>>2]|0)|0;return}function Rs(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;if((k[a>>2]|0)!=-1){k[b>>2]=a;k[b+4>>2]=191;k[b+8>>2]=0;Om(a,b,192)}r=c;return (k[a+4>>2]|0)+-1|0}function Ss(a,b){a=a|0;b=b|0;a=k[a>>2]|0;return Ks(a,Rs(b)|0)|0}function Ts(a){a=a|0;mj(a);return}function Us(a){a=a|0;if(a)Lb[k[(k[a>>2]|0)+4>>2]&255](a);return}function Vs(a){a=a|0;var b=0;b=k[11052]|0;k[11052]=b+1;k[a+4>>2]=b+1;return}function Ws(a){a=a|0;mj(a);return}function Xs(a,b,c){a=a|0;b=b|0;c=c|0;if(c>>>0<128){c=(Ys()|0)+(c<<1)|0;c=(j[c>>1]&b)<<16>>16!=0}else c=0;return c|0}function Ys(){var a=0,b=0;x=0;a=Da(7)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function Zs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=(c-b|0)>>>2;if((b|0)!=(c|0)){e=b;while(1){a=k[e>>2]|0;if(a>>>0<128){a=(Ys()|0)+(a<<1)|0;a=m[a>>1]|0}else a=0;j[d>>1]=a;e=e+4|0;if((e|0)==(c|0))break;else d=d+2|0}}return b+(f<<2)|0}function _s(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:do if((c|0)==(d|0))c=d;else while(1){a=k[c>>2]|0;if(a>>>0<128?(a=(Ys()|0)+(a<<1)|0,(j[a>>1]&b)<<16>>16!=0):0)break a;c=c+4|0;if((c|0)==(d|0)){c=d;break}}while(0);return c|0}function $s(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:do if((c|0)==(d|0))c=d;else while(1){a=k[c>>2]|0;if(a>>>0>=128)break a;a=(Ys()|0)+(a<<1)|0;if(!((j[a>>1]&b)<<16>>16))break a;c=c+4|0;if((c|0)==(d|0)){c=d;break}}while(0);return c|0}function at(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(bt()|0)+(b<<2)|0;b=k[b>>2]|0}return b|0}function bt(){var a=0,b=0;x=0;a=Da(8)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function ct(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(c-b|0)>>>2;if((b|0)!=(c|0)){d=b;do{a=k[d>>2]|0;if(a>>>0<128){a=(bt()|0)+(a<<2)|0;a=k[a>>2]|0}k[d>>2]=a;d=d+4|0}while((d|0)!=(c|0))}return b+(e<<2)|0}function dt(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(et()|0)+(b<<2)|0;b=k[b>>2]|0}return b|0}function et(){var a=0,b=0;x=0;a=Da(9)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function ft(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(c-b|0)>>>2;if((b|0)!=(c|0)){d=b;do{a=k[d>>2]|0;if(a>>>0<128){a=(et()|0)+(a<<2)|0;a=k[a>>2]|0}k[d>>2]=a;d=d+4|0}while((d|0)!=(c|0))}return b+(e<<2)|0}function gt(a,b){a=a|0;b=b|0;return b<<24>>24|0}function ht(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((b|0)!=(c|0))while(1){k[d>>2]=i[b>>0];b=b+1|0;if((b|0)==(c|0))break;else d=d+4|0}return c|0}function it(a,b,c){a=a|0;b=b|0;c=c|0;return (b>>>0<128?b&255:c)|0}function jt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=(c-b|0)>>>2;if((b|0)!=(c|0)){f=b;a=e;while(1){e=k[f>>2]|0;i[a>>0]=e>>>0<128?e&255:d;f=f+4|0;if((f|0)==(c|0))break;else a=a+1|0}}return b+(g<<2)|0}function kt(a){a=a|0;var b=0;k[a>>2]=44236;b=k[a+8>>2]|0;if((b|0)!=0?(i[a+12>>0]|0)!=0:0)nj(b);return}function lt(a){a=a|0;kt(a);mj(a);return}function mt(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(bt()|0)+((b&255)<<2)|0;b=k[b>>2]&255}return b|0}function nt(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)!=(c|0)){a=b;do{b=i[a>>0]|0;if(b<<24>>24>-1){b=(bt()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}i[a>>0]=b;a=a+1|0}while((a|0)!=(c|0))}return c|0}function ot(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(et()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}return b|0}function pt(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)!=(c|0)){a=b;do{b=i[a>>0]|0;if(b<<24>>24>-1){b=(et()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}i[a>>0]=b;a=a+1|0}while((a|0)!=(c|0))}return c|0}function qt(a,b){a=a|0;b=b|0;return b|0}function rt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((b|0)!=(c|0))while(1){i[d>>0]=i[b>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else d=d+1|0}return c|0}function st(a,b,c){a=a|0;b=b|0;c=c|0;return (b<<24>>24>-1?b:c)|0}function tt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if((b|0)!=(c|0))while(1){a=i[b>>0]|0;i[e>>0]=a<<24>>24>-1?a:d;b=b+1|0;if((b|0)==(c|0))break;else e=e+1|0}return c|0}function ut(a){a=a|0;mj(a);return}function vt(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;k[e>>2]=c;k[h>>2]=f;return 3}function wt(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;k[e>>2]=c;k[h>>2]=f;return 3}function xt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function yt(a){a=a|0;return 1}function zt(a){a=a|0;return 1}function At(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=d-c|0;return (a>>>0>>0?a:e)|0}function Bt(a){a=a|0;return 1}function Ct(a,b){a=a|0;b=b|0;var c=0;k[a+4>>2]=b+-1;k[a>>2]=44304;x=0;b=Da(3)|0;c=x;x=0;if(c&1){c=Wa()|0;fb(c|0)}else{k[a+8>>2]=b;return}}function Dt(a){a=a|0;Gu(a);mj(a);return} -function Hl(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,m=0,n=0.0,o=0,q=0,s=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=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;ga=r;r=r+624|0;ba=ga+24|0;da=ga+16|0;ca=ga+588|0;Y=ga+576|0;aa=ga;V=ga+536|0;fa=ga+8|0;ea=ga+528|0;L=(a|0)!=0;N=V+40|0;U=N;V=V+39|0;W=fa+4|0;X=Y+12|0;Y=Y+11|0;Z=ca;_=X;$=_-Z|0;O=-2-Z|0;P=_+2|0;Q=ba+288|0;R=ca+9|0;S=R;T=ca+8|0;f=0;w=b;g=0;b=0;a:while(1){do if((f|0)>-1)if((g|0)>(2147483647-f|0)){f=mk()|0;k[f>>2]=75;f=-1;break}else{f=g+f|0;break}while(0);g=i[w>>0]|0;if(!(g<<24>>24)){K=245;break}else h=w;b:while(1){switch(g<<24>>24){case 37:{g=h;K=9;break b}case 0:{g=h;break b}default:{}}J=h+1|0;g=i[J>>0]|0;h=J}c:do if((K|0)==9)while(1){K=0;if((i[g+1>>0]|0)!=37)break c;h=h+1|0;g=g+2|0;if((i[g>>0]|0)==37)K=9;else break}while(0);y=h-w|0;if(L?(k[a>>2]&32|0)==0:0)fl(w,y,a)|0;if((h|0)!=(w|0)){w=g;g=y;continue}o=g+1|0;h=i[o>>0]|0;m=(h<<24>>24)+-48|0;if(m>>>0<10){J=(i[g+2>>0]|0)==36;o=J?g+3|0:o;h=i[o>>0]|0;u=J?m:-1;b=J?1:b}else u=-1;g=h<<24>>24;d:do if((g&-32|0)==32){m=0;while(1){if(!(1<>24)+-32|m;o=o+1|0;h=i[o>>0]|0;g=h<<24>>24;if((g&-32|0)!=32){q=m;g=o;break}}}else{q=0;g=o}while(0);do if(h<<24>>24==42){m=g+1|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[e+(h<<2)>>2]=10;b=1;g=g+3|0;h=k[d+((i[m>>0]|0)+-48<<3)>>2]|0}else{if(b){f=-1;break a}if(!L){x=q;g=m;b=0;J=0;break}b=(k[c>>2]|0)+(4-1)&~(4-1);h=k[b>>2]|0;k[c>>2]=b+4;b=0;g=m}if((h|0)<0){x=q|8192;J=0-h|0}else{x=q;J=h}}else{m=(h<<24>>24)+-48|0;if(m>>>0<10){h=0;do{h=(h*10|0)+m|0;g=g+1|0;m=(i[g>>0]|0)+-48|0}while(m>>>0<10);if((h|0)<0){f=-1;break a}else{x=q;J=h}}else{x=q;J=0}}while(0);e:do if((i[g>>0]|0)==46){m=g+1|0;h=i[m>>0]|0;if(h<<24>>24!=42){o=(h<<24>>24)+-48|0;if(o>>>0<10){g=m;h=0}else{g=m;o=0;break}while(1){h=(h*10|0)+o|0;g=g+1|0;o=(i[g>>0]|0)+-48|0;if(o>>>0>=10){o=h;break e}}}m=g+2|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+3>>0]|0)==36:0){k[e+(h<<2)>>2]=10;g=g+4|0;o=k[d+((i[m>>0]|0)+-48<<3)>>2]|0;break}if(b){f=-1;break a}if(L){g=(k[c>>2]|0)+(4-1)&~(4-1);o=k[g>>2]|0;k[c>>2]=g+4;g=m}else{g=m;o=0}}else o=-1;while(0);s=0;while(1){h=(i[g>>0]|0)+-65|0;if(h>>>0>57){f=-1;break a}m=g+1|0;h=i[56223+(s*58|0)+h>>0]|0;q=h&255;if((q+-1|0)>>>0<8){g=m;s=q}else{I=m;break}}if(!(h<<24>>24)){f=-1;break}m=(u|0)>-1;do if(h<<24>>24==19)if(m){f=-1;break a}else K=52;else{if(m){k[e+(u<<2)>>2]=q;G=d+(u<<3)|0;H=k[G+4>>2]|0;K=aa;k[K>>2]=k[G>>2];k[K+4>>2]=H;K=52;break}if(!L){f=0;break a}Ml(aa,q,c)}while(0);if((K|0)==52?(K=0,!L):0){w=I;g=y;continue}u=i[g>>0]|0;u=(s|0)!=0&(u&15|0)==3?u&-33:u;m=x&-65537;H=(x&8192|0)==0?x:m;f:do switch(u|0){case 110:switch(s|0){case 0:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 1:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 2:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}case 3:{j[k[aa>>2]>>1]=f;w=I;g=y;continue a}case 4:{i[k[aa>>2]>>0]=f;w=I;g=y;continue a}case 6:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 7:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}default:{w=I;g=y;continue a}}case 112:{s=H|8;o=o>>>0>8?o:8;u=120;K=64;break}case 88:case 120:{s=H;K=64;break}case 111:{m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;if((h|0)==0&(m|0)==0)g=N;else{g=N;do{g=g+-1|0;i[g>>0]=h&7|48;h=uw(h|0,m|0,3)|0;m=M}while(!((h|0)==0&(m|0)==0))}if(!(H&8)){h=H;s=0;q=56703;K=77}else{s=U-g+1|0;h=H;o=(o|0)<(s|0)?s:o;s=0;q=56703;K=77}break}case 105:case 100:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;if((h|0)<0){g=rw(0,0,g|0,h|0)|0;h=M;m=aa;k[m>>2]=g;k[m+4>>2]=h;m=1;q=56703;K=76;break f}if(!(H&2048)){q=H&1;m=q;q=(q|0)==0?56703:56705;K=76}else{m=1;q=56704;K=76}break}case 117:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;m=0;q=56703;K=76;break}case 99:{i[V>>0]=k[aa>>2];w=V;h=1;s=0;u=56703;g=N;break}case 109:{g=mk()|0;g=nk(k[g>>2]|0)|0;K=82;break}case 115:{g=k[aa>>2]|0;g=(g|0)!=0?g:56713;K=82;break}case 67:{k[fa>>2]=k[aa>>2];k[W>>2]=0;k[aa>>2]=fa;o=-1;K=86;break}case 83:{if(!o){Ol(a,32,J,0,H);g=0;K=98}else K=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{n=+p[aa>>3];k[da>>2]=0;p[t>>3]=n;if((k[t+4>>2]|0)>=0)if(!(H&2048)){G=H&1;F=G;G=(G|0)==0?56721:56726}else{F=1;G=56723}else{n=-n;F=1;G=56720}p[t>>3]=n;E=k[t+4>>2]&2146435072;do if(E>>>0<2146435072|(E|0)==2146435072&0<0){v=+Gk(n,da)*2.0;h=v!=0.0;if(h)k[da>>2]=(k[da>>2]|0)+-1;C=u|32;if((C|0)==97){w=u&32;y=(w|0)==0?G:G+9|0;x=F|2;g=12-o|0;do if(!(o>>>0>11|(g|0)==0)){n=8.0;do{g=g+-1|0;n=n*16.0}while((g|0)!=0);if((i[y>>0]|0)==45){n=-(n+(-v-n));break}else{n=v+n-n;break}}else n=v;while(0);h=k[da>>2]|0;g=(h|0)<0?0-h|0:h;g=Nl(g,((g|0)<0)<<31>>31,X)|0;if((g|0)==(X|0)){i[Y>>0]=48;g=Y}i[g+-1>>0]=(h>>31&2)+43;s=g+-2|0;i[s>>0]=u+15;q=(o|0)<1;m=(H&8|0)==0;h=ca;while(1){G=~~n;g=h+1|0;i[h>>0]=l[56687+G>>0]|w;n=(n-+(G|0))*16.0;do if((g-Z|0)==1){if(m&(q&n==0.0))break;i[g>>0]=46;g=h+2|0}while(0);if(!(n!=0.0))break;else h=g}o=(o|0)!=0&(O+g|0)<(o|0)?P+o-s|0:$-s+g|0;m=o+x|0;Ol(a,32,J,m,H);if(!(k[a>>2]&32))fl(y,x,a)|0;Ol(a,48,J,m,H^65536);g=g-Z|0;if(!(k[a>>2]&32))fl(ca,g,a)|0;h=_-s|0;Ol(a,48,o-(g+h)|0,0,0);if(!(k[a>>2]&32))fl(s,h,a)|0;Ol(a,32,J,m,H^8192);g=(m|0)<(J|0)?J:m;break}g=(o|0)<0?6:o;if(h){h=(k[da>>2]|0)+-28|0;k[da>>2]=h;n=v*268435456.0}else{n=v;h=k[da>>2]|0}E=(h|0)<0?ba:Q;D=E;h=E;do{B=~~n>>>0;k[h>>2]=B;h=h+4|0;n=(n-+(B>>>0))*1.0e9}while(n!=0.0);m=h;h=k[da>>2]|0;if((h|0)>0){q=E;while(1){s=(h|0)>29?29:h;o=m+-4|0;do if(o>>>0>>0)o=q;else{h=0;do{B=ww(k[o>>2]|0,0,s|0)|0;B=tw(B|0,M|0,h|0,0)|0;h=M;A=Fw(B|0,h|0,1e9,0)|0;k[o>>2]=A;h=Ew(B|0,h|0,1e9,0)|0;o=o+-4|0}while(o>>>0>=q>>>0);if(!h){o=q;break}o=q+-4|0;k[o>>2]=h}while(0);while(1){if(m>>>0<=o>>>0)break;h=m+-4|0;if(!(k[h>>2]|0))m=h;else break}h=(k[da>>2]|0)-s|0;k[da>>2]=h;if((h|0)>0)q=o;else break}}else o=E;if((h|0)<0){y=((g+25|0)/9|0)+1|0;z=(C|0)==102;w=o;while(1){x=0-h|0;x=(x|0)>9?9:x;do if(w>>>0>>0){h=(1<>>x;o=0;s=w;do{B=k[s>>2]|0;k[s>>2]=(B>>>x)+o;o=ia(B&h,q)|0;s=s+4|0}while(s>>>0>>0);h=(k[w>>2]|0)==0?w+4|0:w;if(!o){o=h;break}k[m>>2]=o;o=h;m=m+4|0}else o=(k[w>>2]|0)==0?w+4|0:w;while(0);h=z?E:o;m=(m-h>>2|0)>(y|0)?h+(y<<2)|0:m;h=(k[da>>2]|0)+x|0;k[da>>2]=h;if((h|0)>=0){w=o;break}else w=o}}else w=o;do if(w>>>0>>0){h=(D-w>>2)*9|0;q=k[w>>2]|0;if(q>>>0<10)break;else o=10;do{o=o*10|0;h=h+1|0}while(q>>>0>=o>>>0)}else h=0;while(0);A=(C|0)==103;B=(g|0)!=0;o=g-((C|0)!=102?h:0)+((B&A)<<31>>31)|0;if((o|0)<(((m-D>>2)*9|0)+-9|0)){s=o+9216|0;z=(s|0)/9|0;o=E+(z+-1023<<2)|0;s=((s|0)%9|0)+1|0;if((s|0)<9){q=10;do{q=q*10|0;s=s+1|0}while((s|0)!=9)}else q=10;x=k[o>>2]|0;y=(x>>>0)%(q>>>0)|0;if((y|0)==0?(E+(z+-1022<<2)|0)==(m|0):0)q=w;else K=163;do if((K|0)==163){K=0;v=(((x>>>0)/(q>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;s=(q|0)/2|0;do if(y>>>0>>0)n=.5;else{if((y|0)==(s|0)?(E+(z+-1022<<2)|0)==(m|0):0){n=1.0;break}n=1.5}while(0);do if(F){if((i[G>>0]|0)!=45)break;v=-v;n=-n}while(0);s=x-y|0;k[o>>2]=s;if(!(v+n!=v)){q=w;break}C=s+q|0;k[o>>2]=C;if(C>>>0>999999999){h=w;while(1){q=o+-4|0;k[o>>2]=0;if(q>>>0>>0){h=h+-4|0;k[h>>2]=0}C=(k[q>>2]|0)+1|0;k[q>>2]=C;if(C>>>0>999999999)o=q;else{w=h;o=q;break}}}h=(D-w>>2)*9|0;s=k[w>>2]|0;if(s>>>0<10){q=w;break}else q=10;do{q=q*10|0;h=h+1|0}while(s>>>0>=q>>>0);q=w}while(0);C=o+4|0;w=q;m=m>>>0>C>>>0?C:m}y=0-h|0;while(1){if(m>>>0<=w>>>0){z=0;C=m;break}o=m+-4|0;if(!(k[o>>2]|0))m=o;else{z=1;C=m;break}}do if(A){g=(B&1^1)+g|0;if((g|0)>(h|0)&(h|0)>-5){u=u+-1|0;g=g+-1-h|0}else{u=u+-2|0;g=g+-1|0}m=H&8;if(m)break;do if(z){m=k[C+-4>>2]|0;if(!m){o=9;break}if(!((m>>>0)%10|0)){q=10;o=0}else{o=0;break}do{q=q*10|0;o=o+1|0}while(((m>>>0)%(q>>>0)|0|0)==0)}else o=9;while(0);m=((C-D>>2)*9|0)+-9|0;if((u|32|0)==102){m=m-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}else{m=m+h-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}}else m=H&8;while(0);x=g|m;q=(x|0)!=0&1;s=(u|32|0)==102;if(s){h=(h|0)>0?h:0;u=0}else{o=(h|0)<0?y:h;o=Nl(o,((o|0)<0)<<31>>31,X)|0;if((_-o|0)<2)do{o=o+-1|0;i[o>>0]=48}while((_-o|0)<2);i[o+-1>>0]=(h>>31&2)+43;D=o+-2|0;i[D>>0]=u;h=_-D|0;u=D}y=F+1+g+q+h|0;Ol(a,32,J,y,H);if(!(k[a>>2]&32))fl(G,F,a)|0;Ol(a,48,J,y,H^65536);do if(s){o=w>>>0>E>>>0?E:w;h=o;do{m=Nl(k[h>>2]|0,0,R)|0;do if((h|0)==(o|0)){if((m|0)!=(R|0))break;i[T>>0]=48;m=T}else{if(m>>>0<=ca>>>0)break;do{m=m+-1|0;i[m>>0]=48}while(m>>>0>ca>>>0)}while(0);if(!(k[a>>2]&32))fl(m,S-m|0,a)|0;h=h+4|0}while(h>>>0<=E>>>0);do if(x){if(k[a>>2]&32)break;fl(56755,1,a)|0}while(0);if((g|0)>0&h>>>0>>0){m=h;while(1){h=Nl(k[m>>2]|0,0,R)|0;if(h>>>0>ca>>>0)do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0);if(!(k[a>>2]&32))fl(h,(g|0)>9?9:g,a)|0;m=m+4|0;h=g+-9|0;if(!((g|0)>9&m>>>0>>0)){g=h;break}else g=h}}Ol(a,48,g+9|0,9,0)}else{s=z?C:w+4|0;if((g|0)>-1){q=(m|0)==0;o=w;do{h=Nl(k[o>>2]|0,0,R)|0;if((h|0)==(R|0)){i[T>>0]=48;h=T}do if((o|0)==(w|0)){m=h+1|0;if(!(k[a>>2]&32))fl(h,1,a)|0;if(q&(g|0)<1){h=m;break}if(k[a>>2]&32){h=m;break}fl(56755,1,a)|0;h=m}else{if(h>>>0<=ca>>>0)break;do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0)}while(0);m=S-h|0;if(!(k[a>>2]&32))fl(h,(g|0)>(m|0)?m:g,a)|0;g=g-m|0;o=o+4|0}while(o>>>0>>0&(g|0)>-1)}Ol(a,48,g+18|0,18,0);if(k[a>>2]&32)break;fl(u,_-u|0,a)|0}while(0);Ol(a,32,J,y,H^8192);g=(y|0)<(J|0)?J:y}else{s=(u&32|0)!=0;q=n!=n|0.0!=0.0;h=q?0:F;o=h+3|0;Ol(a,32,J,o,m);g=k[a>>2]|0;if(!(g&32)){fl(G,h,a)|0;g=k[a>>2]|0}if(!(g&32))fl(q?(s?56747:56751):s?56739:56743,3,a)|0;Ol(a,32,J,o,H^8192);g=(o|0)<(J|0)?J:o}while(0);w=I;continue a}default:{m=H;h=o;s=0;u=56703;g=N}}while(0);g:do if((K|0)==64){m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;q=u&32;if(!((h|0)==0&(m|0)==0)){g=N;do{g=g+-1|0;i[g>>0]=l[56687+(h&15)>>0]|q;h=uw(h|0,m|0,4)|0;m=M}while(!((h|0)==0&(m|0)==0));K=aa;if((s&8|0)==0|(k[K>>2]|0)==0&(k[K+4>>2]|0)==0){h=s;s=0;q=56703;K=77}else{h=s;s=2;q=56703+(u>>4)|0;K=77}}else{g=N;h=s;s=0;q=56703;K=77}}else if((K|0)==76){g=Nl(g,h,N)|0;h=H;s=m;K=77}else if((K|0)==82){K=0;H=tl(g,0,o)|0;G=(H|0)==0;w=g;h=G?o:H-g|0;s=0;u=56703;g=G?g+o|0:H}else if((K|0)==86){K=0;h=0;g=0;q=k[aa>>2]|0;while(1){m=k[q>>2]|0;if(!m)break;g=Sk(ea,m)|0;if((g|0)<0|g>>>0>(o-h|0)>>>0)break;h=g+h|0;if(o>>>0>h>>>0)q=q+4|0;else break}if((g|0)<0){f=-1;break a}Ol(a,32,J,h,H);if(!h){g=0;K=98}else{m=0;o=k[aa>>2]|0;while(1){g=k[o>>2]|0;if(!g){g=h;K=98;break g}g=Sk(ea,g)|0;m=g+m|0;if((m|0)>(h|0)){g=h;K=98;break g}if(!(k[a>>2]&32))fl(ea,g,a)|0;if(m>>>0>=h>>>0){g=h;K=98;break}else o=o+4|0}}}while(0);if((K|0)==98){K=0;Ol(a,32,J,g,H^8192);w=I;g=(J|0)>(g|0)?J:g;continue}if((K|0)==77){K=0;m=(o|0)>-1?h&-65537:h;h=aa;h=(k[h>>2]|0)!=0|(k[h+4>>2]|0)!=0;if((o|0)!=0|h){h=(h&1^1)+(U-g)|0;w=g;h=(o|0)>(h|0)?o:h;u=q;g=N}else{w=N;h=0;u=q;g=N}}q=g-w|0;h=(h|0)<(q|0)?q:h;o=s+h|0;g=(J|0)<(o|0)?o:J;Ol(a,32,g,o,m);if(!(k[a>>2]&32))fl(u,s,a)|0;Ol(a,48,g,o,m^65536);Ol(a,48,h,q,0);if(!(k[a>>2]&32))fl(w,q,a)|0;Ol(a,32,g,o,m^8192);w=I}h:do if((K|0)==245)if(!a)if(b){f=1;while(1){b=k[e+(f<<2)>>2]|0;if(!b)break;Ml(d+(f<<3)|0,b,c);f=f+1|0;if((f|0)>=10){f=1;break h}}if((f|0)<10)while(1){if(k[e+(f<<2)>>2]|0){f=-1;break h}f=f+1|0;if((f|0)>=10){f=1;break}}else f=1}else f=0;while(0);r=ga;return f|0}function Il(a,b,c){a=a|0;b=b|0;c=c|0;return $k(a,b,c)|0}function Jl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+112|0;g=h;e=g;f=e+112|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(f|0));e=g+4|0;k[e>>2]=a;f=g+8|0;k[f>>2]=-1;k[g+44>>2]=a;k[g+76>>2]=-1;qk(g,0);d=+ok(g,c,1);c=(k[e>>2]|0)-(k[f>>2]|0)+(k[g+108>>2]|0)|0;if(b)k[b>>2]=(c|0)!=0?a+c|0:a;r=h;return +d}function Kl(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;i=r;r=r+112|0;h=i;k[h>>2]=0;f=h+4|0;k[f>>2]=a;k[h+44>>2]=a;g=h+8|0;k[g>>2]=(a|0)<0?-1:a+2147483647|0;k[h+76>>2]=-1;qk(h,0);d=pk(h,c,1,d,e)|0;if(b)k[b>>2]=a+((k[f>>2]|0)+(k[h+108>>2]|0)-(k[g>>2]|0));r=i;return d|0}function Ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a+20|0;e=k[d>>2]|0;a=(k[a+16>>2]|0)-e|0;a=a>>>0>c>>>0?c:a;vw(e|0,b|0,a|0)|0;k[d>>2]=(k[d>>2]|0)+a;return c|0}function Ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;k[a>>2]=b;break a}case 10:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=0;break a}case 12:{d=(k[c>>2]|0)+(8-1)&~(8-1);b=d;e=k[b>>2]|0;b=k[b+4>>2]|0;k[c>>2]=d+8;d=a;k[d>>2]=e;k[d+4>>2]=b;break a}case 13:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&65535)<<16>>16;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 14:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&65535;k[e+4>>2]=0;break a}case 15:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&255)<<24>>24;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 16:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&255;k[e+4>>2]=0;break a}case 17:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}case 18:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}default:break a}while(0);while(0);return}function Nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(b>>>0>0|(b|0)==0&a>>>0>4294967295)while(1){d=Fw(a|0,b|0,10,0)|0;c=c+-1|0;i[c>>0]=d|48;d=Ew(a|0,b|0,10,0)|0;if(b>>>0>9|(b|0)==9&a>>>0>4294967295){a=d;b=M}else{a=d;break}}if(a)while(1){c=c+-1|0;i[c>>0]=(a>>>0)%10|0|48;if(a>>>0<10)break;else a=(a>>>0)/10|0}return c|0}function Ol(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;h=r;r=r+256|0;g=h;do if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;sw(g|0,b|0,(e>>>0>256?256:e)|0)|0;b=k[a>>2]|0;f=(b&32|0)==0;if(e>>>0>255){d=c-d|0;do{if(f){fl(g,256,a)|0;b=k[a>>2]|0}e=e+-256|0;f=(b&32|0)==0}while(e>>>0>255);if(f)e=d&255;else break}else if(!f)break;fl(g,e,a)|0}while(0);r=h;return}function Pl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=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;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;h=k[10218]|0;c=h>>>a;if(c&3){a=(c&1^1)+a|0;d=a<<1;c=40912+(d<<2)|0;d=40912+(d+2<<2)|0;e=k[d>>2]|0;f=e+8|0;g=k[f>>2]|0;do if((c|0)!=(g|0)){if(g>>>0<(k[10222]|0)>>>0)Pa();b=g+12|0;if((k[b>>2]|0)==(e|0)){k[b>>2]=c;k[d>>2]=g;break}else Pa()}else k[10218]=h&~(1<>2]=M|3;M=e+(M|4)|0;k[M>>2]=k[M>>2]|1;M=f;return M|0}g=k[10220]|0;if(o>>>0>g>>>0){if(c){d=2<>>12&16;d=d>>>i;e=d>>>5&8;d=d>>>e;f=d>>>2&4;d=d>>>f;c=d>>>1&2;d=d>>>c;a=d>>>1&1;a=(e|i|f|c|a)+(d>>>a)|0;d=a<<1;c=40912+(d<<2)|0;d=40912+(d+2<<2)|0;f=k[d>>2]|0;i=f+8|0;e=k[i>>2]|0;do if((c|0)!=(e|0)){if(e>>>0<(k[10222]|0)>>>0)Pa();b=e+12|0;if((k[b>>2]|0)==(f|0)){k[b>>2]=c;k[d>>2]=e;j=k[10220]|0;break}else Pa()}else{k[10218]=h&~(1<>2]=o|3;h=f+o|0;k[f+(o|4)>>2]=g|1;k[f+M>>2]=g;if(j){e=k[10223]|0;c=j>>>3;b=c<<1;d=40912+(b<<2)|0;a=k[10218]|0;c=1<>2]|0;if(b>>>0<(k[10222]|0)>>>0)Pa();else{l=a;m=b}}else{k[10218]=a|c;l=40912+(b+2<<2)|0;m=d}k[l>>2]=e;k[m+12>>2]=e;k[e+8>>2]=m;k[e+12>>2]=d}k[10220]=g;k[10223]=h;M=i;return M|0}a=k[10219]|0;if(a){c=(a&0-a)+-1|0;L=c>>>12&16;c=c>>>L;K=c>>>5&8;c=c>>>K;M=c>>>2&4;c=c>>>M;a=c>>>1&2;c=c>>>a;d=c>>>1&1;d=k[41176+((K|L|M|a|d)+(c>>>d)<<2)>>2]|0;c=(k[d+4>>2]&-8)-o|0;a=d;while(1){b=k[a+16>>2]|0;if(!b){b=k[a+20>>2]|0;if(!b){i=c;break}}a=(k[b+4>>2]&-8)-o|0;M=a>>>0>>0;c=M?a:c;a=b;d=M?b:d}f=k[10222]|0;if(d>>>0>>0)Pa();h=d+o|0;if(d>>>0>=h>>>0)Pa();g=k[d+24>>2]|0;c=k[d+12>>2]|0;do if((c|0)==(d|0)){a=d+20|0;b=k[a>>2]|0;if(!b){a=d+16|0;b=k[a>>2]|0;if(!b){n=0;break}}while(1){c=b+20|0;e=k[c>>2]|0;if(e){b=e;a=c;continue}c=b+16|0;e=k[c>>2]|0;if(!e)break;else{b=e;a=c}}if(a>>>0>>0)Pa();else{k[a>>2]=0;n=b;break}}else{e=k[d+8>>2]|0;if(e>>>0>>0)Pa();b=e+12|0;if((k[b>>2]|0)!=(d|0))Pa();a=c+8|0;if((k[a>>2]|0)==(d|0)){k[b>>2]=c;k[a>>2]=e;n=c;break}else Pa()}while(0);do if(g){b=k[d+28>>2]|0;a=41176+(b<<2)|0;if((d|0)==(k[a>>2]|0)){k[a>>2]=n;if(!n){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(d|0))k[b>>2]=n;else k[g+20>>2]=n;if(!n)break}a=k[10222]|0;if(n>>>0>>0)Pa();k[n+24>>2]=g;b=k[d+16>>2]|0;do if(b)if(b>>>0>>0)Pa();else{k[n+16>>2]=b;k[b+24>>2]=n;break}while(0);b=k[d+20>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[n+20>>2]=b;k[b+24>>2]=n;break}}while(0);if(i>>>0<16){M=i+o|0;k[d+4>>2]=M|3;M=d+(M+4)|0;k[M>>2]=k[M>>2]|1}else{k[d+4>>2]=o|3;k[d+(o|4)>>2]=i|1;k[d+(i+o)>>2]=i;b=k[10220]|0;if(b){f=k[10223]|0;c=b>>>3;b=c<<1;e=40912+(b<<2)|0;a=k[10218]|0;c=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{p=b;q=a}}else{k[10218]=a|c;p=40912+(b+2<<2)|0;q=e}k[p>>2]=f;k[q+12>>2]=f;k[f+8>>2]=q;k[f+12>>2]=e}k[10220]=i;k[10223]=h}M=d+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=k[10219]|0;if(l){c=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)j=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;j=14-(p|q|j)+(v<>>15)|0;j=m>>>(j+7|0)&1|j<<1}else j=0;a=k[41176+(j<<2)>>2]|0;a:do if(!a){e=0;a=0;v=86}else{g=c;e=0;h=m<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){f=k[i+4>>2]&-8;c=f-m|0;if(c>>>0>>0)if((f|0)==(m|0)){f=i;a=i;v=90;break a}else a=i;else c=g;v=k[i+20>>2]|0;i=k[i+16+(h>>>31<<2)>>2]|0;e=(v|0)==0|(v|0)==(i|0)?e:v;if(!i){v=86;break}else{g=c;h=h<<1}}}while(0);if((v|0)==86){if((e|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;e=a>>>1&1;e=k[41176+((l|n|p|q|e)+(a>>>e)<<2)>>2]|0;a=0}if(!e){h=c;i=a}else{f=e;v=90}}if((v|0)==90)while(1){v=0;q=(k[f+4>>2]&-8)-m|0;e=q>>>0>>0;c=e?q:c;a=e?f:a;e=k[f+16>>2]|0;if(e){f=e;v=90;continue}f=k[f+20>>2]|0;if(!f){h=c;i=a;break}else v=90}if((i|0)!=0?h>>>0<((k[10220]|0)-m|0)>>>0:0){e=k[10222]|0;if(i>>>0>>0)Pa();g=i+m|0;if(i>>>0>=g>>>0)Pa();f=k[i+24>>2]|0;c=k[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;b=k[a>>2]|0;if(!b){a=i+16|0;b=k[a>>2]|0;if(!b){o=0;break}}while(1){c=b+20|0;d=k[c>>2]|0;if(d){b=d;a=c;continue}c=b+16|0;d=k[c>>2]|0;if(!d)break;else{b=d;a=c}}if(a>>>0>>0)Pa();else{k[a>>2]=0;o=b;break}}else{d=k[i+8>>2]|0;if(d>>>0>>0)Pa();b=d+12|0;if((k[b>>2]|0)!=(i|0))Pa();a=c+8|0;if((k[a>>2]|0)==(i|0)){k[b>>2]=c;k[a>>2]=d;o=c;break}else Pa()}while(0);do if(f){b=k[i+28>>2]|0;a=41176+(b<<2)|0;if((i|0)==(k[a>>2]|0)){k[a>>2]=o;if(!o){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=f+16|0;if((k[b>>2]|0)==(i|0))k[b>>2]=o;else k[f+20>>2]=o;if(!o)break}a=k[10222]|0;if(o>>>0>>0)Pa();k[o+24>>2]=f;b=k[i+16>>2]|0;do if(b)if(b>>>0>>0)Pa();else{k[o+16>>2]=b;k[b+24>>2]=o;break}while(0);b=k[i+20>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[o+20>>2]=b;k[b+24>>2]=o;break}}while(0);b:do if(h>>>0>=16){k[i+4>>2]=m|3;k[i+(m|4)>>2]=h|1;k[i+(h+m)>>2]=h;b=h>>>3;if(h>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{s=b;t=a}}else{k[10218]=c|b;s=40912+(a+2<<2)|0;t=d}k[s>>2]=g;k[t+12>>2]=g;k[i+(m+8)>>2]=t;k[i+(m+12)>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=41176+(d<<2)|0;k[i+(m+28)>>2]=d;k[i+(m+20)>>2]=0;k[i+(m+16)>>2]=0;a=k[10219]|0;c=1<>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break}b=k[b>>2]|0;c:do if((k[b+4>>2]&-8|0)!=(h|0)){d=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(h|0)){y=c;break c}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break b}}else y=b;while(0);b=y+8|0;a=k[b>>2]|0;M=k[10222]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[i+(m+8)>>2]=a;k[i+(m+12)>>2]=y;k[i+(m+24)>>2]=0;break}else Pa()}else{M=h+m|0;k[i+4>>2]=M|3;M=i+(M+4)|0;k[M>>2]=k[M>>2]|1}while(0);M=i+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);c=k[10220]|0;if(c>>>0>=q>>>0){b=c-q|0;a=k[10223]|0;if(b>>>0>15){k[10223]=a+q;k[10220]=b;k[a+(q+4)>>2]=b|1;k[a+c>>2]=b;k[a+4>>2]=q|3}else{k[10220]=0;k[10223]=0;k[a+4>>2]=c|3;M=a+(c+4)|0;k[M>>2]=k[M>>2]|1}M=a+8|0;return M|0}a=k[10221]|0;if(a>>>0>q>>>0){L=a-q|0;k[10221]=L;M=k[10224]|0;k[10224]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(k[10336]|0)){a=hb(30)|0;if(!(a+-1&a)){k[10338]=a;k[10337]=a;k[10339]=-1;k[10340]=-1;k[10341]=0;k[10329]=0;y=(zb(0)|0)&-16^1431655768;k[10336]=y;break}else Pa()}while(0);i=q+48|0;h=k[10338]|0;j=q+47|0;g=h+j|0;h=0-h|0;l=g&h;if(l>>>0<=q>>>0){M=0;return M|0}a=k[10328]|0;if((a|0)!=0?(t=k[10326]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(k[10329]&4)){a=k[10224]|0;e:do if(a){e=41320;while(1){c=k[e>>2]|0;if(c>>>0<=a>>>0?(r=e+4|0,(c+(k[r>>2]|0)|0)>>>0>a>>>0):0){f=e;a=r;break}e=k[e+8>>2]|0;if(!e){v=174;break e}}c=g-(k[10221]|0)&h;if(c>>>0<2147483647){e=bb(c|0)|0;y=(e|0)==((k[f>>2]|0)+(k[a>>2]|0)|0);a=y?c:0;if(y){if((e|0)!=(-1|0)){w=e;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){f=bb(0)|0;if((f|0)!=(-1|0)){a=f;c=k[10337]|0;e=c+-1|0;if(!(e&a))c=l;else c=l-a+(e+a&0-c)|0;a=k[10326]|0;e=a+c|0;if(c>>>0>q>>>0&c>>>0<2147483647){y=k[10328]|0;if((y|0)!=0?e>>>0<=a>>>0|e>>>0>y>>>0:0){a=0;break}e=bb(c|0)|0;y=(e|0)==(f|0);a=y?c:0;if(y){w=f;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){f=0-c|0;do if(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))?(u=k[10338]|0,u=j-c+u&0-u,u>>>0<2147483647):0)if((bb(u|0)|0)==(-1|0)){bb(f|0)|0;break f}else{c=u+c|0;break}while(0);if((e|0)!=(-1|0)){w=e;p=c;v=194;break d}}while(0);k[10329]=k[10329]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=bb(l|0)|0,x=bb(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(k[10326]|0)+p|0;k[10326]=a;if(a>>>0>(k[10327]|0)>>>0)k[10327]=a;g=k[10224]|0;g:do if(g){f=41320;do{a=k[f>>2]|0;c=f+4|0;e=k[c>>2]|0;if((w|0)==(a+e|0)){B=a;C=c;D=e;E=f;v=204;break}f=k[f+8>>2]|0}while((f|0)!=0);if(((v|0)==204?(k[E+12>>2]&8|0)==0:0)?g>>>0>>0&g>>>0>=B>>>0:0){k[C>>2]=D+p;M=(k[10221]|0)+p|0;L=g+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;k[10224]=g+L;k[10221]=K;k[g+(L+4)>>2]=K|1;k[g+(M+4)>>2]=40;k[10225]=k[10340];break}a=k[10222]|0;if(w>>>0>>0){k[10222]=w;a=w}c=w+p|0;f=41320;while(1){if((k[f>>2]|0)==(c|0)){e=f;c=f;v=212;break}f=k[f+8>>2]|0;if(!f){c=41320;break}}if((v|0)==212)if(!(k[c+12>>2]&8)){k[e>>2]=w;n=c+4|0;k[n>>2]=(k[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;j=w+(p+8)|0;j=(j&7|0)==0?0:0-j&7;b=w+(j+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;k[w+(n+4)>>2]=q|3;h:do if((b|0)!=(g|0)){if((b|0)==(k[10223]|0)){M=(k[10220]|0)+l|0;k[10220]=M;k[10223]=o;k[w+(m+4)>>2]=M|1;k[w+(M+m)>>2]=M;break}h=p+4|0;c=k[w+(h+j)>>2]|0;if((c&3|0)==1){i=c&-8;f=c>>>3;i:do if(c>>>0>=256){g=k[w+((j|24)+p)>>2]|0;d=k[w+(p+12+j)>>2]|0;do if((d|0)==(b|0)){e=j|16;d=w+(h+e)|0;c=k[d>>2]|0;if(!c){d=w+(e+p)|0;c=k[d>>2]|0;if(!c){J=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;J=c;break}}else{e=k[w+((j|8)+p)>>2]|0;if(e>>>0>>0)Pa();a=e+12|0;if((k[a>>2]|0)!=(b|0))Pa();c=d+8|0;if((k[c>>2]|0)==(b|0)){k[a>>2]=d;k[c>>2]=e;J=d;break}else Pa()}while(0);if(!g)break;a=k[w+(p+28+j)>>2]|0;c=41176+(a<<2)|0;do if((b|0)!=(k[c>>2]|0)){if(g>>>0<(k[10222]|0)>>>0)Pa();a=g+16|0;if((k[a>>2]|0)==(b|0))k[a>>2]=J;else k[g+20>>2]=J;if(!J)break i}else{k[c>>2]=J;if(J)break;k[10219]=k[10219]&~(1<>>0>>0)Pa();k[J+24>>2]=g;b=j|16;a=k[w+(b+p)>>2]|0;do if(a)if(a>>>0>>0)Pa();else{k[J+16>>2]=a;k[a+24>>2]=J;break}while(0);b=k[w+(h+b)>>2]|0;if(!b)break;if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[J+20>>2]=b;k[b+24>>2]=J;break}}else{d=k[w+((j|8)+p)>>2]|0;e=k[w+(p+12+j)>>2]|0;c=40912+(f<<1<<2)|0;do if((d|0)!=(c|0)){if(d>>>0>>0)Pa();if((k[d+12>>2]|0)==(b|0))break;Pa()}while(0);if((e|0)==(d|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();a=e+8|0;if((k[a>>2]|0)==(b|0)){F=a;break}Pa()}while(0);k[d+12>>2]=e;k[F>>2]=d}while(0);b=w+((i|j)+p)|0;e=i+l|0}else e=l;b=b+4|0;k[b>>2]=k[b>>2]&-2;k[w+(m+4)>>2]=e|1;k[w+(e+m)>>2]=e;b=e>>>3;if(e>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0>=(k[10222]|0)>>>0){K=b;L=a;break}Pa()}while(0);k[K>>2]=o;k[L+12>>2]=o;k[w+(m+8)>>2]=L;k[w+(m+12)>>2]=d;break}b=e>>>8;do if(!b)d=0;else{if(e>>>0>16777215){d=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=e>>>(d+7|0)&1|d<<1}while(0);b=41176+(d<<2)|0;k[w+(m+28)>>2]=d;k[w+(m+20)>>2]=0;k[w+(m+16)>>2]=0;a=k[10219]|0;c=1<>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break}b=k[b>>2]|0;j:do if((k[b+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(e|0)){M=c;break j}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=k[b>>2]|0;L=k[10222]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){k[a+12>>2]=o;k[b>>2]=o;k[w+(m+8)>>2]=a;k[w+(m+12)>>2]=M;k[w+(m+24)>>2]=0;break}else Pa()}else{M=(k[10221]|0)+l|0;k[10221]=M;k[10224]=o;k[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else c=41320;while(1){a=k[c>>2]|0;if(a>>>0<=g>>>0?(b=k[c+4>>2]|0,d=a+b|0,d>>>0>g>>>0):0)break;c=k[c+8>>2]|0}e=a+(b+-39)|0;a=a+(b+-47+((e&7|0)==0?0:0-e&7))|0;e=g+16|0;a=a>>>0>>0?g:a;b=a+8|0;c=w+8|0;c=(c&7|0)==0?0:0-c&7;M=p+-40-c|0;k[10224]=w+c;k[10221]=M;k[w+(c+4)>>2]=M|1;k[w+(p+-36)>>2]=40;k[10225]=k[10340];c=a+4|0;k[c>>2]=27;k[b>>2]=k[10330];k[b+4>>2]=k[10331];k[b+8>>2]=k[10332];k[b+12>>2]=k[10333];k[10330]=w;k[10331]=p;k[10333]=0;k[10332]=b;b=a+28|0;k[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;k[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(g|0)){f=a-g|0;k[c>>2]=k[c>>2]&-2;k[g+4>>2]=f|1;k[a>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{G=b;H=a}}else{k[10218]=c|b;G=40912+(a+2<<2)|0;H=d}k[G>>2]=g;k[H+12>>2]=g;k[g+8>>2]=H;k[g+12>>2]=d;break}b=f>>>8;if(b)if(f>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=f>>>(d+7|0)&1|d<<1}else d=0;c=41176+(d<<2)|0;k[g+28>>2]=d;k[g+20>>2]=0;k[e>>2]=0;b=k[10219]|0;a=1<>2]=g;k[g+24>>2]=c;k[g+12>>2]=g;k[g+8>>2]=g;break}b=k[c>>2]|0;k:do if((k[b+4>>2]&-8|0)!=(f|0)){d=f<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(f|0)){I=c;break k}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=g;k[g+24>>2]=b;k[g+12>>2]=g;k[g+8>>2]=g;break g}}else I=b;while(0);b=I+8|0;a=k[b>>2]|0;M=k[10222]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[g+8>>2]=a;k[g+12>>2]=I;k[g+24>>2]=0;break}else Pa()}}else{M=k[10222]|0;if((M|0)==0|w>>>0>>0)k[10222]=w;k[10330]=w;k[10331]=p;k[10333]=0;k[10227]=k[10336];k[10226]=-1;b=0;do{M=b<<1;L=40912+(M<<2)|0;k[40912+(M+3<<2)>>2]=L;k[40912+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;k[10224]=w+M;k[10221]=L;k[w+(M+4)>>2]=L|1;k[w+(p+-36)>>2]=40;k[10225]=k[10340]}while(0);b=k[10221]|0;if(b>>>0>q>>>0){L=b-q|0;k[10221]=L;M=k[10224]|0;k[10224]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}}M=mk()|0;k[M>>2]=12;M=0;return M|0}function Ql(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;h=k[10222]|0;if(b>>>0>>0)Pa();c=k[a+-4>>2]|0;d=c&3;if((d|0)==1)Pa();o=c&-8;q=a+(o+-8)|0;do if(!(c&1)){b=k[b>>2]|0;if(!d)return;i=-8-b|0;l=a+i|0;m=b+o|0;if(l>>>0>>0)Pa();if((l|0)==(k[10223]|0)){b=a+(o+-4)|0;c=k[b>>2]|0;if((c&3|0)!=3){u=l;f=m;break}k[10220]=m;k[b>>2]=c&-2;k[a+(i+4)>>2]=m|1;k[q>>2]=m;return}e=b>>>3;if(b>>>0<256){d=k[a+(i+8)>>2]|0;c=k[a+(i+12)>>2]|0;b=40912+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0>>0)Pa();if((k[d+12>>2]|0)!=(l|0))Pa()}if((c|0)==(d|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();b=c+8|0;if((k[b>>2]|0)==(l|0))g=b;else Pa()}else g=c+8|0;k[d+12>>2]=c;k[g>>2]=d;u=l;f=m;break}g=k[a+(i+24)>>2]|0;d=k[a+(i+12)>>2]|0;do if((d|0)==(l|0)){c=a+(i+20)|0;b=k[c>>2]|0;if(!b){c=a+(i+16)|0;b=k[c>>2]|0;if(!b){j=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0>>0)Pa();else{k[c>>2]=0;j=b;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Pa();b=e+12|0;if((k[b>>2]|0)!=(l|0))Pa();c=d+8|0;if((k[c>>2]|0)==(l|0)){k[b>>2]=d;k[c>>2]=e;j=d;break}else Pa()}while(0);if(g){b=k[a+(i+28)>>2]|0;c=41176+(b<<2)|0;if((l|0)==(k[c>>2]|0)){k[c>>2]=j;if(!j){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(l|0))k[b>>2]=j;else k[g+20>>2]=j;if(!j){u=l;f=m;break}}c=k[10222]|0;if(j>>>0>>0)Pa();k[j+24>>2]=g;b=k[a+(i+16)>>2]|0;do if(b)if(b>>>0>>0)Pa();else{k[j+16>>2]=b;k[b+24>>2]=j;break}while(0);b=k[a+(i+20)>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[j+20>>2]=b;k[b+24>>2]=j;u=l;f=m;break}else{u=l;f=m}}else{u=l;f=m}}else{u=b;f=o}while(0);if(u>>>0>=q>>>0)Pa();b=a+(o+-4)|0;c=k[b>>2]|0;if(!(c&1))Pa();if(!(c&2)){if((q|0)==(k[10224]|0)){t=(k[10221]|0)+f|0;k[10221]=t;k[10224]=u;k[u+4>>2]=t|1;if((u|0)!=(k[10223]|0))return;k[10223]=0;k[10220]=0;return}if((q|0)==(k[10223]|0)){t=(k[10220]|0)+f|0;k[10220]=t;k[10223]=u;k[u+4>>2]=t|1;k[u+t>>2]=t;return}f=(c&-8)+f|0;e=c>>>3;do if(c>>>0>=256){g=k[a+(o+16)>>2]|0;b=k[a+(o|4)>>2]|0;do if((b|0)==(q|0)){c=a+(o+12)|0;b=k[c>>2]|0;if(!b){c=a+(o+8)|0;b=k[c>>2]|0;if(!b){p=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[c>>2]=0;p=b;break}}else{c=k[a+o>>2]|0;if(c>>>0<(k[10222]|0)>>>0)Pa();d=c+12|0;if((k[d>>2]|0)!=(q|0))Pa();e=b+8|0;if((k[e>>2]|0)==(q|0)){k[d>>2]=b;k[e>>2]=c;p=b;break}else Pa()}while(0);if(g){b=k[a+(o+20)>>2]|0;c=41176+(b<<2)|0;if((q|0)==(k[c>>2]|0)){k[c>>2]=p;if(!p){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(q|0))k[b>>2]=p;else k[g+20>>2]=p;if(!p)break}c=k[10222]|0;if(p>>>0>>0)Pa();k[p+24>>2]=g;b=k[a+(o+8)>>2]|0;do if(b)if(b>>>0>>0)Pa();else{k[p+16>>2]=b;k[b+24>>2]=p;break}while(0);b=k[a+(o+12)>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[p+20>>2]=b;k[b+24>>2]=p;break}}}else{d=k[a+o>>2]|0;c=k[a+(o|4)>>2]|0;b=40912+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0<(k[10222]|0)>>>0)Pa();if((k[d+12>>2]|0)!=(q|0))Pa()}if((c|0)==(d|0)){k[10218]=k[10218]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=c+8|0;if((k[b>>2]|0)==(q|0))n=b;else Pa()}else n=c+8|0;k[d+12>>2]=c;k[n>>2]=d}while(0);k[u+4>>2]=f|1;k[u+f>>2]=f;if((u|0)==(k[10223]|0)){k[10220]=f;return}}else{k[b>>2]=c&-2;k[u+4>>2]=f|1;k[u+f>>2]=f}b=f>>>3;if(f>>>0<256){c=b<<1;e=40912+(c<<2)|0;d=k[10218]|0;b=1<>2]|0;if(c>>>0<(k[10222]|0)>>>0)Pa();else{r=b;s=c}}else{k[10218]=d|b;r=40912+(c+2<<2)|0;s=e}k[r>>2]=u;k[s+12>>2]=u;k[u+8>>2]=s;k[u+12>>2]=e;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;e=14-(q|r|e)+(s<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=41176+(e<<2)|0;k[u+28>>2]=e;k[u+20>>2]=0;k[u+16>>2]=0;c=k[10219]|0;d=1<>2]|0;b:do if((k[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){c=b+16+(e>>>31<<2)|0;d=k[c>>2]|0;if(!d)break;if((k[d+4>>2]&-8|0)==(f|0)){t=d;break b}else{e=e<<1;b=d}}if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[c>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;c=k[b>>2]|0;s=k[10222]|0;if(c>>>0>=s>>>0&t>>>0>=s>>>0){k[c+12>>2]=u;k[b>>2]=u;k[u+8>>2]=c;k[u+12>>2]=t;k[u+24>>2]=0;break}else Pa()}else{k[10219]=c|d;k[b>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u}while(0);u=(k[10226]|0)+-1|0;k[10226]=u;if(!u)b=41328;else return;while(1){b=k[b>>2]|0;if(!b)break;else b=b+8|0}k[10226]=-1;return}function Rl(a,b){a=a|0;b=b|0;var c=0;if(a){c=ia(b,a)|0;if((b|a)>>>0>65535)c=((c>>>0)/(a>>>0)|0|0)==(b|0)?c:-1}else c=0;b=Pl(c)|0;if(!b)return b|0;if(!(k[b+-4>>2]&3))return b|0;sw(b|0,0,c|0)|0;return b|0}function Sl(a,b){a=a|0;b=b|0;var c=0,d=0;if(!a){a=Pl(b)|0;return a|0}if(b>>>0>4294967231){a=mk()|0;k[a>>2]=12;a=0;return a|0}c=Tl(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(c){a=c+8|0;return a|0}c=Pl(b)|0;if(!c){a=0;return a|0}d=k[a+-4>>2]|0;d=(d&-8)-((d&3|0)==0?8:4)|0;vw(c|0,a|0,(d>>>0>>0?d:b)|0)|0;Ql(a);a=c;return a|0}function Tl(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,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=k[o>>2]|0;i=p&-8;l=a+i|0;h=k[10222]|0;c=p&3;if(!((c|0)!=1&a>>>0>=h>>>0&a>>>0>>0))Pa();d=a+(i|4)|0;e=k[d>>2]|0;if(!(e&1))Pa();if(!c){if(b>>>0<256){a=0;return a|0}if(i>>>0>=(b+4|0)>>>0?(i-b|0)>>>0<=k[10338]<<1>>>0:0)return a|0;a=0;return a|0}if(i>>>0>=b>>>0){c=i-b|0;if(c>>>0<=15)return a|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|3;k[d>>2]=k[d>>2]|1;Ul(a+b|0,c);return a|0}if((l|0)==(k[10224]|0)){c=(k[10221]|0)+i|0;if(c>>>0<=b>>>0){a=0;return a|0}n=c-b|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|1;k[10224]=a+b;k[10221]=n;return a|0}if((l|0)==(k[10223]|0)){d=(k[10220]|0)+i|0;if(d>>>0>>0){a=0;return a|0}c=d-b|0;if(c>>>0>15){k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|1;k[a+d>>2]=c;d=a+(d+4)|0;k[d>>2]=k[d>>2]&-2;d=a+b|0}else{k[o>>2]=p&1|d|2;d=a+(d+4)|0;k[d>>2]=k[d>>2]|1;d=0;c=0}k[10220]=c;k[10223]=d;return a|0}if(e&2){a=0;return a|0}m=(e&-8)+i|0;if(m>>>0>>0){a=0;return a|0}n=m-b|0;f=e>>>3;do if(e>>>0>=256){g=k[a+(i+24)>>2]|0;f=k[a+(i+12)>>2]|0;do if((f|0)==(l|0)){d=a+(i+20)|0;c=k[d>>2]|0;if(!c){d=a+(i+16)|0;c=k[d>>2]|0;if(!c){j=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;j=c;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Pa();c=e+12|0;if((k[c>>2]|0)!=(l|0))Pa();d=f+8|0;if((k[d>>2]|0)==(l|0)){k[c>>2]=f;k[d>>2]=e;j=f;break}else Pa()}while(0);if(g){c=k[a+(i+28)>>2]|0;d=41176+(c<<2)|0;if((l|0)==(k[d>>2]|0)){k[d>>2]=j;if(!j){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=g+16|0;if((k[c>>2]|0)==(l|0))k[c>>2]=j;else k[g+20>>2]=j;if(!j)break}d=k[10222]|0;if(j>>>0>>0)Pa();k[j+24>>2]=g;c=k[a+(i+16)>>2]|0;do if(c)if(c>>>0>>0)Pa();else{k[j+16>>2]=c;k[c+24>>2]=j;break}while(0);c=k[a+(i+20)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[j+20>>2]=c;k[c+24>>2]=j;break}}}else{e=k[a+(i+8)>>2]|0;d=k[a+(i+12)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(l|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(l|0))g=c;else Pa()}else g=d+8|0;k[e+12>>2]=d;k[g>>2]=e}while(0);if(n>>>0<16){k[o>>2]=m|p&1|2;b=a+(m|4)|0;k[b>>2]=k[b>>2]|1;return a|0}else{k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|3;p=a+(m|4)|0;k[p>>2]=k[p>>2]|1;Ul(a+b|0,n);return a|0}return 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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;c=k[a+4>>2]|0;do if(!(c&1)){j=k[a>>2]|0;if(!(c&3))return;n=a+(0-j)|0;m=j+b|0;i=k[10222]|0;if(n>>>0>>0)Pa();if((n|0)==(k[10223]|0)){d=a+(b+4)|0;c=k[d>>2]|0;if((c&3|0)!=3){t=n;g=m;break}k[10220]=m;k[d>>2]=c&-2;k[a+(4-j)>>2]=m|1;k[q>>2]=m;return}f=j>>>3;if(j>>>0<256){e=k[a+(8-j)>>2]|0;d=k[a+(12-j)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(n|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(n|0))h=c;else Pa()}else h=d+8|0;k[e+12>>2]=d;k[h>>2]=e;t=n;g=m;break}h=k[a+(24-j)>>2]|0;e=k[a+(12-j)>>2]|0;do if((e|0)==(n|0)){e=16-j|0;d=a+(e+4)|0;c=k[d>>2]|0;if(!c){d=a+e|0;c=k[d>>2]|0;if(!c){l=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;l=c;break}}else{f=k[a+(8-j)>>2]|0;if(f>>>0>>0)Pa();c=f+12|0;if((k[c>>2]|0)!=(n|0))Pa();d=e+8|0;if((k[d>>2]|0)==(n|0)){k[c>>2]=e;k[d>>2]=f;l=e;break}else Pa()}while(0);if(h){c=k[a+(28-j)>>2]|0;d=41176+(c<<2)|0;if((n|0)==(k[d>>2]|0)){k[d>>2]=l;if(!l){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=h+16|0;if((k[c>>2]|0)==(n|0))k[c>>2]=l;else k[h+20>>2]=l;if(!l){t=n;g=m;break}}e=k[10222]|0;if(l>>>0>>0)Pa();k[l+24>>2]=h;c=16-j|0;d=k[a+c>>2]|0;do if(d)if(d>>>0>>0)Pa();else{k[l+16>>2]=d;k[d+24>>2]=l;break}while(0);c=k[a+(c+4)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[l+20>>2]=c;k[c+24>>2]=l;t=n;g=m;break}else{t=n;g=m}}else{t=n;g=m}}else{t=a;g=b}while(0);i=k[10222]|0;if(q>>>0>>0)Pa();c=a+(b+4)|0;d=k[c>>2]|0;if(!(d&2)){if((q|0)==(k[10224]|0)){s=(k[10221]|0)+g|0;k[10221]=s;k[10224]=t;k[t+4>>2]=s|1;if((t|0)!=(k[10223]|0))return;k[10223]=0;k[10220]=0;return}if((q|0)==(k[10223]|0)){s=(k[10220]|0)+g|0;k[10220]=s;k[10223]=t;k[t+4>>2]=s|1;k[t+s>>2]=s;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=k[a+(b+24)>>2]|0;e=k[a+(b+12)>>2]|0;do if((e|0)==(q|0)){d=a+(b+20)|0;c=k[d>>2]|0;if(!c){d=a+(b+16)|0;c=k[d>>2]|0;if(!c){p=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;p=c;break}}else{f=k[a+(b+8)>>2]|0;if(f>>>0>>0)Pa();c=f+12|0;if((k[c>>2]|0)!=(q|0))Pa();d=e+8|0;if((k[d>>2]|0)==(q|0)){k[c>>2]=e;k[d>>2]=f;p=e;break}else Pa()}while(0);if(h){c=k[a+(b+28)>>2]|0;d=41176+(c<<2)|0;if((q|0)==(k[d>>2]|0)){k[d>>2]=p;if(!p){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=h+16|0;if((k[c>>2]|0)==(q|0))k[c>>2]=p;else k[h+20>>2]=p;if(!p)break}d=k[10222]|0;if(p>>>0>>0)Pa();k[p+24>>2]=h;c=k[a+(b+16)>>2]|0;do if(c)if(c>>>0>>0)Pa();else{k[p+16>>2]=c;k[c+24>>2]=p;break}while(0);c=k[a+(b+20)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[p+20>>2]=c;k[c+24>>2]=p;break}}}else{e=k[a+(b+8)>>2]|0;d=k[a+(b+12)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(q|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(q|0))o=c;else Pa()}else o=d+8|0;k[e+12>>2]=d;k[o>>2]=e}while(0);k[t+4>>2]=g|1;k[t+g>>2]=g;if((t|0)==(k[10223]|0)){k[10220]=g;return}}else{k[c>>2]=d&-2;k[t+4>>2]=g|1;k[t+g>>2]=g}c=g>>>3;if(g>>>0<256){d=c<<1;f=40912+(d<<2)|0;e=k[10218]|0;c=1<>2]|0;if(d>>>0<(k[10222]|0)>>>0)Pa();else{r=c;s=d}}else{k[10218]=e|c;r=40912+(d+2<<2)|0;s=f}k[r>>2]=t;k[s+12>>2]=t;k[t+8>>2]=s;k[t+12>>2]=f;return}c=g>>>8;if(c)if(g>>>0>16777215)f=31;else{r=(c+1048320|0)>>>16&8;s=c<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;c=41176+(f<<2)|0;k[t+28>>2]=f;k[t+20>>2]=0;k[t+16>>2]=0;d=k[10219]|0;e=1<>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}c=k[c>>2]|0;a:do if((k[c+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=c+16+(f>>>31<<2)|0;e=k[d>>2]|0;if(!e)break;if((k[e+4>>2]&-8|0)==(g|0)){c=e;break a}else{f=f<<1;c=e}}if(d>>>0<(k[10222]|0)>>>0)Pa();k[d>>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}while(0);d=c+8|0;e=k[d>>2]|0;s=k[10222]|0;if(!(e>>>0>=s>>>0&c>>>0>=s>>>0))Pa();k[e+12>>2]=t;k[d>>2]=t;k[t+8>>2]=e;k[t+12>>2]=c;k[t+24>>2]=0;return}function Vl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;d=k[9321]|0;Zl(42048,d,42104);k[10342]=42892;k[10344]=42912;k[10343]=0;a=k[10720]|0;x=0;ra(62,41368+a|0,42048);f=x;x=0;if(f&1){f=Wa()|0;qn(41376);fb(f|0)}k[41368+(a+72)>>2]=0;k[41368+(a+76)>>2]=-1;e=k[9322]|0;_l(42152,e,42112);k[10364]=42972;k[10365]=42992;c=k[10740]|0;x=0;ra(62,41456+c|0,42152);f=x;x=0;if(f&1){f=Wa()|0;qn(41460);fb(f|0)}a=c+72|0;k[41456+a>>2]=0;b=c+76|0;k[41456+b>>2]=-1;f=k[9320]|0;_l(42200,f,42120);k[10385]=42972;k[10386]=42992;x=0;ra(62,41540+c|0,42200);g=x;x=0;if(g&1){g=Wa()|0;qn(41544);fb(g|0)}k[41540+a>>2]=0;k[41540+b>>2]=-1;g=k[41540+((k[(k[10385]|0)+-12>>2]|0)+24)>>2]|0;k[10406]=42972;k[10407]=42992;x=0;ra(62,41624+c|0,g|0);g=x;x=0;if(g&1){g=Wa()|0;qn(41628);fb(g|0)}k[41624+a>>2]=0;k[41624+b>>2]=-1;k[41368+((k[(k[10342]|0)+-12>>2]|0)+72)>>2]=41456;a=41540+((k[(k[10385]|0)+-12>>2]|0)+4)|0;k[a>>2]=k[a>>2]|8192;k[41540+((k[(k[10385]|0)+-12>>2]|0)+72)>>2]=41456;$l(42248,d,42128);k[10427]=42932;k[10429]=42952;k[10428]=0;a=k[10730]|0;x=0;ra(62,41708+a|0,42248);g=x;x=0;if(g&1){g=Wa()|0;vn(41716);fb(g|0)}k[41708+(a+72)>>2]=0;k[41708+(a+76)>>2]=-1;am(42304,e,42136);k[10449]=43012;k[10450]=43032;c=k[10750]|0;x=0;ra(62,41796+c|0,42304);g=x;x=0;if(g&1){g=Wa()|0;vn(41800);fb(g|0)}a=c+72|0;k[41796+a>>2]=0;b=c+76|0;k[41796+b>>2]=-1;am(42352,f,42144);k[10470]=43012;k[10471]=43032;x=0;ra(62,41880+c|0,42352);g=x;x=0;if(g&1){g=Wa()|0;vn(41884);fb(g|0)}k[41880+a>>2]=0;k[41880+b>>2]=-1;g=k[41880+((k[(k[10470]|0)+-12>>2]|0)+24)>>2]|0;k[10491]=43012;k[10492]=43032;x=0;ra(62,41964+c|0,g|0);g=x;x=0;if(g&1){g=Wa()|0;vn(41968);fb(g|0)}else{k[41964+a>>2]=0;k[41964+b>>2]=-1;k[41708+((k[(k[10427]|0)+-12>>2]|0)+72)>>2]=41796;g=41880+((k[(k[10470]|0)+-12>>2]|0)+4)|0;k[g>>2]=k[g>>2]|8192;k[41880+((k[(k[10470]|0)+-12>>2]|0)+72)>>2]=41796;return}}function Wl(a){a=a|0;x=0;ta(70,41456)|0;a=x;x=0;if(((!(a&1)?(x=0,ta(70,41624)|0,a=x,x=0,!(a&1)):0)?(x=0,ta(71,41796)|0,a=x,x=0,!(a&1)):0)?(x=0,ta(71,41964)|0,a=x,x=0,!(a&1)):0)return;a=Wa(0)|0;oc(a)}function Xl(){Vl(0);tb(187,56757,w|0)|0;return}function Yl(){return}function Zl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;zn(a);k[a>>2]=42600;k[a+32>>2]=b;k[a+40>>2]=c;k[a+48>>2]=-1;i[a+52>>0]=0;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;ra(23,a|0,d|0);c=x;x=0;if(c&1){f=Wa()|0;Qs(d);xn(a);fb(f|0)}else{Qs(d);r=e;return}}function _l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;zn(a);k[a>>2]=42536;k[a+32>>2]=b;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;b=Aa(37,d|0,44280)|0;f=x;x=0;if(f&1){f=Wa()|0;Qs(d);xn(a);fb(f|0)}else{Qs(d);k[a+36>>2]=b;k[a+40>>2]=c;f=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=f;r=e;return}}function $l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;On(a);k[a>>2]=42472;k[a+32>>2]=b;k[a+40>>2]=c;k[a+48>>2]=-1;i[a+52>>0]=0;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;ra(21,a|0,d|0);c=x;x=0;if(c&1){f=Wa()|0;Qs(d);Mn(a);fb(f|0)}else{Qs(d);r=e;return}}function am(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;On(a);k[a>>2]=42408;k[a+32>>2]=b;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;b=Aa(37,d|0,44288)|0;f=x;x=0;if(f&1){f=Wa()|0;Qs(d);Mn(a);fb(f|0)}else{Qs(d);k[a+36>>2]=b;k[a+40>>2]=c;f=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=f;r=e;return}}function bm(a){a=a|0;Mn(a);mj(a);return}function cm(a,b){a=a|0;b=b|0;Ob[k[(k[a>>2]|0)+24>>2]&127](a)|0;b=Ss(b,44288)|0;k[a+36>>2]=b;b=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=b;return}function dm(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j;c=a+36|0;d=a+40|0;e=h+8|0;f=h;b=a+32|0;a:while(1){a=k[c>>2]|0;a=Wb[k[(k[a>>2]|0)+20>>2]&31](a,k[d>>2]|0,h,e,g)|0;l=(k[g>>2]|0)-f|0;if((gl(h,1,l,k[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{i=4;break a}}}if((i|0)==4)a=((dl(k[b>>2]|0)|0)!=0)<<31>>31;r=j;return a|0}function em(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do if(!(i[a+44>>0]|0))if((c|0)>0){d=b;b=0;while(1){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,k[d>>2]|0)|0)==-1)break a;b=b+1|0;if((b|0)<(c|0))d=d+4|0;else break}}else b=0;else b=gl(b,4,c,k[a+32>>2]|0)|0;while(0);return b|0}function fm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+32|0;o=s+16|0;c=s+8|0;n=s+4|0;m=s;p=(b|0)==-1;a:do if(!p){k[c>>2]=b;if(i[a+44>>0]|0)if((gl(c,4,1,k[a+32>>2]|0)|0)==1){q=11;break}else{c=-1;break}k[n>>2]=o;j=c+4|0;l=a+36|0;e=a+40|0;f=o+8|0;g=o;h=a+32|0;while(1){a=k[l>>2]|0;a=ac[k[(k[a>>2]|0)+12>>2]&15](a,k[e>>2]|0,c,j,m,o,f,n)|0;if((k[m>>2]|0)==(c|0)){c=-1;break a}if((a|0)==3)break;d=(a|0)==1;if(a>>>0>=2){c=-1;break a}a=(k[n>>2]|0)-g|0;if((gl(o,1,a,k[h>>2]|0)|0)!=(a|0)){c=-1;break a}if(d)c=d?k[m>>2]|0:c;else{q=11;break a}}if((gl(c,1,1,k[h>>2]|0)|0)!=1)c=-1;else q=11}else q=11;while(0);if((q|0)==11)c=p?0:b;r=s;return c|0}function gm(a,b){a=a|0;b=b|0;var c=0,d=0;d=Ss(b,44288)|0;c=a+36|0;k[c>>2]=d;d=Ob[k[(k[d>>2]|0)+24>>2]&127](d)|0;b=a+44|0;k[b>>2]=d;c=k[c>>2]|0;c=(Ob[k[(k[c>>2]|0)+28>>2]&127](c)|0)&1;i[a+53>>0]=c;if((k[b>>2]|0)>8)$r(56783);return}function hm(a){a=a|0;Mn(a);mj(a);return}function im(a){a=a|0;return lm(a,0)|0}function jm(a){a=a|0;return lm(a,1)|0}function km(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;j=l+16|0;h=l+8|0;d=l+4|0;e=l;f=a+52|0;c=(i[f>>0]|0)!=0;a:do if((b|0)==-1)if(c)b=-1;else{b=k[a+48>>2]|0;i[f>>0]=(b|0)!=-1&1}else{g=a+48|0;b:do if(c){k[d>>2]=k[g>>2];c=k[a+36>>2]|0;switch(ac[k[(k[c>>2]|0)+12>>2]&15](c,k[a+40>>2]|0,d,d+4|0,e,j,j+8|0,h)|0){case 1:case 2:{b=-1;break a}case 3:{i[j>>0]=k[g>>2];k[h>>2]=j+1;break}default:{}}c=a+32|0;while(1){d=k[h>>2]|0;if(d>>>0<=j>>>0)break b;a=d+-1|0;k[h>>2]=a;if((kl(i[a>>0]|0,k[c>>2]|0)|0)==-1){b=-1;break a}}}while(0);k[g>>2]=b;i[f>>0]=1}while(0);r=l;return b|0}function lm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+32|0;p=q+16|0;o=q+8|0;l=q+4|0;m=q;e=a+52|0;a:do if(i[e>>0]|0){d=a+48|0;c=k[d>>2]|0;if(b){k[d>>2]=-1;i[e>>0]=0}}else{c=k[a+44>>2]|0;c=(c|0)>1?c:1;n=a+32|0;if((c|0)>0){e=0;do{d=hl(k[n>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[p+e>>0]=d;e=e+1|0}while((e|0)<(c|0))}b:do if(!(i[a+53>>0]|0)){g=a+40|0;h=a+36|0;j=o+4|0;c:while(1){s=k[g>>2]|0;e=s;d=k[e>>2]|0;e=k[e+4>>2]|0;t=k[h>>2]|0;f=p+c|0;switch(ac[k[(k[t>>2]|0)+16>>2]&15](t,s,p,f,l,o,j,m)|0){case 2:{c=-1;break a}case 3:break c;case 1:break;default:break b}t=k[g>>2]|0;k[t>>2]=d;k[t+4>>2]=e;if((c|0)==8){c=-1;break a}d=hl(k[n>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[f>>0]=d;c=c+1|0}k[o>>2]=i[p>>0]}else k[o>>2]=i[p>>0];while(0);if(b){c=k[o>>2]|0;k[a+48>>2]=c;break}while(1){if((c|0)<=0)break;c=c+-1|0;if((kl(i[p+c>>0]|0,k[n>>2]|0)|0)==-1){c=-1;break a}}c=k[o>>2]|0}while(0);r=q;return c|0}function mm(a){a=a|0;xn(a);mj(a);return}function nm(a,b){a=a|0;b=b|0;Ob[k[(k[a>>2]|0)+24>>2]&127](a)|0;b=Ss(b,44280)|0;k[a+36>>2]=b;b=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=b;return}function om(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j;c=a+36|0;d=a+40|0;e=h+8|0;f=h;b=a+32|0;a:while(1){a=k[c>>2]|0;a=Wb[k[(k[a>>2]|0)+20>>2]&31](a,k[d>>2]|0,h,e,g)|0;l=(k[g>>2]|0)-f|0;if((gl(h,1,l,k[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{i=4;break a}}}if((i|0)==4)a=((dl(k[b>>2]|0)|0)!=0)<<31>>31;r=j;return a|0}function pm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do if(!(i[a+44>>0]|0))if((c|0)>0){d=b;b=0;while(1){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,l[d>>0]|0)|0)==-1)break a;b=b+1|0;if((b|0)<(c|0))d=d+1|0;else break}}else b=0;else b=gl(b,1,c,k[a+32>>2]|0)|0;while(0);return b|0}function qm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+32|0;o=s+16|0;c=s+8|0;n=s+4|0;m=s;p=(b|0)==-1;a:do if(!p){i[c>>0]=b;if(i[a+44>>0]|0)if((gl(c,1,1,k[a+32>>2]|0)|0)==1){q=11;break}else{c=-1;break}k[n>>2]=o;l=c+1|0;e=a+36|0;f=a+40|0;g=o+8|0;h=o;j=a+32|0;while(1){a=k[e>>2]|0;a=ac[k[(k[a>>2]|0)+12>>2]&15](a,k[f>>2]|0,c,l,m,o,g,n)|0;if((k[m>>2]|0)==(c|0)){c=-1;break a}if((a|0)==3)break;d=(a|0)==1;if(a>>>0>=2){c=-1;break a}a=(k[n>>2]|0)-h|0;if((gl(o,1,a,k[j>>2]|0)|0)!=(a|0)){c=-1;break a}if(d)c=d?k[m>>2]|0:c;else{q=11;break a}}if((gl(c,1,1,k[j>>2]|0)|0)!=1)c=-1;else q=11}else q=11;while(0);if((q|0)==11)c=p?0:b;r=s;return c|0}function rm(a,b){a=a|0;b=b|0;var c=0,d=0;d=Ss(b,44280)|0;c=a+36|0;k[c>>2]=d;d=Ob[k[(k[d>>2]|0)+24>>2]&127](d)|0;b=a+44|0;k[b>>2]=d;c=k[c>>2]|0;c=(Ob[k[(k[c>>2]|0)+28>>2]&127](c)|0)&1;i[a+53>>0]=c;if((k[b>>2]|0)>8)$r(56783);return}function sm(a){a=a|0;xn(a);mj(a);return}function tm(a){a=a|0;return wm(a,0)|0}function um(a){a=a|0;return wm(a,1)|0}function vm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;j=l+16|0;h=l+4|0;d=l+8|0;e=l;f=a+52|0;c=(i[f>>0]|0)!=0;a:do if((b|0)==-1)if(c)b=-1;else{b=k[a+48>>2]|0;i[f>>0]=(b|0)!=-1&1}else{g=a+48|0;b:do if(c){i[d>>0]=k[g>>2];c=k[a+36>>2]|0;switch(ac[k[(k[c>>2]|0)+12>>2]&15](c,k[a+40>>2]|0,d,d+1|0,e,j,j+8|0,h)|0){case 1:case 2:{b=-1;break a}case 3:{i[j>>0]=k[g>>2];k[h>>2]=j+1;break}default:{}}c=a+32|0;while(1){d=k[h>>2]|0;if(d>>>0<=j>>>0)break b;a=d+-1|0;k[h>>2]=a;if((kl(i[a>>0]|0,k[c>>2]|0)|0)==-1){b=-1;break a}}}while(0);k[g>>2]=b;i[f>>0]=1}while(0);r=l;return b|0}function wm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0;s=r;r=r+32|0;q=s+16|0;p=s+8|0;m=s+4|0;n=s;e=a+52|0;a:do if(i[e>>0]|0){d=a+48|0;c=k[d>>2]|0;if(b){k[d>>2]=-1;i[e>>0]=0}}else{c=k[a+44>>2]|0;c=(c|0)>1?c:1;o=a+32|0;if((c|0)>0){e=0;do{d=hl(k[o>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[q+e>>0]=d;e=e+1|0}while((e|0)<(c|0))}b:do if(!(i[a+53>>0]|0)){g=a+40|0;h=a+36|0;j=p+1|0;c:while(1){t=k[g>>2]|0;e=t;d=k[e>>2]|0;e=k[e+4>>2]|0;u=k[h>>2]|0;f=q+c|0;switch(ac[k[(k[u>>2]|0)+16>>2]&15](u,t,q,f,m,p,j,n)|0){case 2:{c=-1;break a}case 3:break c;case 1:break;default:break b}u=k[g>>2]|0;k[u>>2]=d;k[u+4>>2]=e;if((c|0)==8){c=-1;break a}d=hl(k[o>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[f>>0]=d;c=c+1|0}i[p>>0]=i[q>>0]|0}else i[p>>0]=i[q>>0]|0;while(0);if(b){c=i[p>>0]|0;k[a+48>>2]=c&255}else{while(1){if((c|0)<=0)break;c=c+-1|0;if((kl(l[q+c>>0]|0,k[o>>2]|0)|0)==-1){c=-1;break a}}c=i[p>>0]|0}c=c&255}while(0);r=s;return c|0}function xm(a){a=a|0;return}function ym(a){a=a|0;a=a+4|0;k[a>>2]=(k[a>>2]|0)+1;return}function zm(a){a=a|0;var b=0,c=0;c=a+4|0;b=k[c>>2]|0;k[c>>2]=b+-1;if(!b){Lb[k[(k[a>>2]|0)+8>>2]&255](a);a=1}else a=0;return a|0}function Am(a,b){a=a|0;b=b|0;k[a>>2]=36868;x=0;ra(86,a+4|0,((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0)|0);a=x;x=0;if(a&1){a=Wa()|0;fb(a|0)}else return}function Bm(a,b){a=a|0;b=b|0;k[a>>2]=36868;x=0;ra(86,a+4|0,b|0);a=x;x=0;if(a&1){a=Wa()|0;fb(a|0)}else return}function Cm(a,b){a=a|0;b=b|0;var c=0,d=0;d=xl(b)|0;c=lj(d+13|0)|0;k[c>>2]=d;k[c+4>>2]=d;k[c+8>>2]=0;c=c+12|0;vw(c|0,b|0,d+1|0)|0;k[a>>2]=c;return}function Dm(a,b,c){a=a|0;b=b|0;c=c|0;k[a>>2]=c;k[a+4>>2]=b;return}function Em(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;_b[k[(k[a>>2]|0)+12>>2]&15](d,a,b);if((k[d+4>>2]|0)==(k[c+4>>2]|0))d=(k[d>>2]|0)==(k[c>>2]|0);else d=0;r=e;return d|0}function Fm(a,b,c){a=a|0;b=b|0;c=c|0;return ((k[b>>2]|0)==(c|0)?(k[b+4>>2]|0)==(a|0):0)|0}function Gm(a,b,c){a=a|0;b=b|0;c=c|0;b=nk(c)|0;Qm(a,b,xl(b)|0);return}function Hm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+16|0;f=g;d=k[b>>2]|0;do if(d){e=i[c>>0]|0;if(!(e&1))e=(e&255)>>>1;else e=k[c+4>>2]|0;if(e){Zm(c,56990)|0;d=k[b>>2]|0}b=k[b+4>>2]|0;_b[k[(k[b>>2]|0)+24>>2]&15](f,b,d);b=i[f>>0]|0;e=(b&1)==0;x=0;va(30,c|0,(e?f+1|0:k[f+8>>2]|0)|0,(e?(b&255)>>>1:k[f+4>>2]|0)|0)|0;b=x;x=0;if(b&1){g=Wa()|0;Sm(f);fb(g|0)}else{Sm(f);break}}while(0);k[a>>2]=k[c>>2];k[a+4>>2]=k[c+4>>2];k[a+8>>2]=k[c+8>>2];k[c>>2]=0;k[c+4>>2]=0;k[c+8>>2]=0;r=g;return}function Im(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;d=e+12|0;f=e;Qm(f,c,xl(c)|0);x=0;Fa(10,d|0,b|0,f|0);c=x;x=0;do if(!(c&1)){x=0;ra(87,a|0,d|0);c=x;x=0;if(c&1){e=Wa()|0;Sm(d);d=e;break}else{Sm(d);Sm(f);k[a>>2]=42664;c=k[b+4>>2]|0;f=a+8|0;k[f>>2]=k[b>>2];k[f+4>>2]=c;r=e;return}}else d=Wa()|0;while(0);Sm(f);fb(d|0)}function Jm(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;f=r;r=r+48|0;e=f+24|0;h=f+16|0;g=f;k[h>>2]=b;k[h+4>>2]=c;Pm(g,d);x=0;Fa(10,e|0,h|0,g|0);d=x;x=0;do if(!(d&1)){x=0;ra(87,a|0,e|0);h=x;x=0;if(h&1){h=Wa()|0;Sm(e);e=h;break}else{Sm(e);Sm(g);k[a>>2]=42664;k[a+8>>2]=b;k[a+12>>2]=c;r=f;return}}else e=Wa()|0;while(0);Sm(g);fb(e|0)}function Km(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=r;r=r+48|0;d=e+24|0;g=e+16|0;f=e;k[g>>2]=b;k[g+4>>2]=c;Qm(f,58898,0);x=0;Fa(10,d|0,g|0,f|0);g=x;x=0;do if(!(g&1)){x=0;ra(87,a|0,d|0);g=x;x=0;if(g&1){g=Wa()|0;Sm(d);d=g;break}else{Sm(d);Sm(f);k[a>>2]=42664;k[a+8>>2]=b;k[a+12>>2]=c;r=e;return}}else d=Wa()|0;while(0);Sm(f);fb(d|0)}function Lm(a){a=a|0;wj(a);return}function Mm(a){a=a|0;wj(a);mj(a);return}function Nm(a){a=a|0;return}function Om(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;Ab(42676)|0;if((k[a>>2]|0)==1)do Ma(42704,42676)|0;while((k[a>>2]|0)==1);do if(!(k[a>>2]|0)){k[a>>2]=1;x=0;ta(72,42676)|0;d=x;x=0;if((((!(d&1)?(x=0,qa(c|0,b|0),d=x,x=0,!(d&1)):0)?(x=0,ta(73,42676)|0,d=x,x=0,!(d&1)):0)?(k[a>>2]=-1,x=0,ta(72,42676)|0,d=x,x=0,!(d&1)):0)?(x=0,ta(74,42704)|0,d=x,x=0,!(d&1)):0)break;d=Wa(0)|0;cb(d|0)|0;x=0;ta(73,42676)|0;d=x;x=0;if((!(d&1)?(k[a>>2]=0,x=0,ta(72,42676)|0,d=x,x=0,!(d&1)):0)?(x=0,ta(74,42704)|0,d=x,x=0,!(d&1)):0){x=0;Ga(5);x=0}b=Wa()|0;x=0;Ga(3);d=x;x=0;if(d&1){d=Wa(0)|0;oc(d)}else fb(b|0)}else lb(42676)|0;while(0);return}function Pm(a,b){a=a|0;b=b|0;if(!(i[b>>0]&1)){k[a>>2]=k[b>>2];k[a+4>>2]=k[b+4>>2];k[a+8>>2]=k[b+8>>2]}else Qm(a,k[b+8>>2]|0,k[b+4>>2]|0);return}function Qm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(c>>>0>4294967279)ij(a);if(c>>>0<11){i[a>>0]=c<<1;a=a+1|0}else{e=c+16&-16;d=lj(e)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=c;a=d}vw(a|0,b|0,c|0)|0;i[a+c>>0]=0;return}function Rm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(b>>>0>4294967279)ij(a);if(b>>>0<11){i[a>>0]=b<<1;a=a+1|0}else{e=b+16&-16;d=lj(e)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=b;a=d}sw(a|0,c|0,b|0)|0;i[a+b>>0]=0;return}function Sm(a){a=a|0;if(i[a>>0]&1)mj(k[a+8>>2]|0);return}function Tm(a,b){a=a|0;b=b|0;var c=0,d=0;if((a|0)!=(b|0)){c=i[b>>0]|0;d=(c&1)==0;Vm(a,d?b+1|0:k[b+8>>2]|0,d?(c&255)>>>1:k[b+4>>2]|0)|0}return a|0}function Um(a,b){a=a|0;b=b|0;return Vm(a,b,xl(b)|0)|0}function Vm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))f=10;else{d=k[a>>2]|0;f=(d&-2)+-1|0;d=d&255}e=(d&1)==0;do if(f>>>0>=c>>>0){if(e)d=a+1|0;else d=k[a+8>>2]|0;xw(d|0,b|0,c|0)|0;i[d+c>>0]=0;if(!(i[a>>0]&1)){i[a>>0]=c<<1;break}else{k[a+4>>2]=c;break}}else{if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;an(a,f,c-f|0,d,0,d,c,b)}while(0);return a|0}function Wm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i[a>>0]|0;e=(d&1)==0;if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;do if(d>>>0>=b>>>0)if(e){i[a+1+b>>0]=0;i[a>>0]=b<<1;break}else{i[(k[a+8>>2]|0)+b>>0]=0;k[a+4>>2]=b;break}else Xm(a,b-d|0,c)|0;while(0);return}function Xm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;if(b){d=i[a>>0]|0;if(!(d&1))e=10;else{d=k[a>>2]|0;e=(d&-2)+-1|0;d=d&255}if(!(d&1))f=(d&255)>>>1;else f=k[a+4>>2]|0;if((e-f|0)>>>0>>0){bn(a,e,b-e+f|0,f,f,0,0);d=i[a>>0]|0}if(!(d&1))e=a+1|0;else e=k[a+8>>2]|0;sw(e+f|0,c|0,b|0)|0;d=f+b|0;if(!(i[a>>0]&1))i[a>>0]=d<<1;else k[a+4>>2]=d;i[e+d>>0]=0}return a|0}function Ym(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>4294967279)ij(a);c=i[a>>0]|0;if(!(c&1))d=10;else{c=k[a>>2]|0;d=(c&-2)+-1|0;c=c&255}if(!(c&1))h=(c&255)>>>1;else h=k[a+4>>2]|0;b=h>>>0>b>>>0?h:b;if(b>>>0<11)g=10;else g=(b+16&-16)+-1|0;a:do if((g|0)!=(d|0)){do if((g|0)!=10){b=g+1|0;if(g>>>0<=d>>>0){x=0;b=ta(67,b|0)|0;f=x;x=0;if(f&1){a=Wa(0)|0;cb(a|0)|0;eb();break a}}else b=lj(b)|0;if(!(c&1)){d=1;e=a+1|0;f=0;break}else{d=1;e=k[a+8>>2]|0;f=1;break}}else{b=a+1|0;d=0;e=k[a+8>>2]|0;f=1}while(0);if(!(c&1))c=(c&255)>>>1;else c=k[a+4>>2]|0;vw(b|0,e|0,c+1|0)|0;if(f)mj(e);if(d){k[a>>2]=g+1|1;k[a+4>>2]=h;k[a+8>>2]=b;break}else{i[a>>0]=h<<1;break}}while(0);return}function Zm(a,b){a=a|0;b=b|0;return $m(a,b,xl(b)|0)|0}function _m(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i[a>>0]|0;d=(c&1)!=0;if(d){e=(k[a>>2]&-2)+-1|0;f=k[a+4>>2]|0}else{e=10;f=(c&255)>>>1}if((f|0)==(e|0)){bn(a,e,1,e,e,0,0);if(!(i[a>>0]&1))e=7;else e=8}else if(d)e=8;else e=7;if((e|0)==7){i[a>>0]=(f<<1)+2;c=a+1|0;d=f+1|0}else if((e|0)==8){c=k[a+8>>2]|0;d=f+1|0;k[a+4>>2]=d}i[c+f>>0]=b;i[c+d>>0]=0;return}function $m(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))e=10;else{d=k[a>>2]|0;e=(d&-2)+-1|0;d=d&255}if(!(d&1))f=(d&255)>>>1;else f=k[a+4>>2]|0;if((e-f|0)>>>0>=c>>>0){if(c){if(!(d&1))e=a+1|0;else e=k[a+8>>2]|0;vw(e+f|0,b|0,c|0)|0;d=f+c|0;if(!(i[a>>0]&1))i[a>>0]=d<<1;else k[a+4>>2]=d;i[e+d>>0]=0}}else an(a,e,c-e+f|0,f,f,0,c,b);return a|0}function an(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 j=0,l=0,m=0;if((-18-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))m=a+1|0;else m=k[a+8>>2]|0;if(b>>>0<2147483623){j=c+b|0;l=b<<1;j=j>>>0>>0?l:j;j=j>>>0<11?11:j+16&-16}else j=-17;l=lj(j)|0;if(e)vw(l|0,m|0,e|0)|0;if(g)vw(l+e|0,h|0,g|0)|0;c=d-f|0;if((c|0)!=(e|0))vw(l+(g+e)|0,m+(f+e)|0,c-e|0)|0;if((b|0)!=10)mj(m);k[a+8>>2]=l;k[a>>2]=j|1;b=c+g|0;k[a+4>>2]=b;i[l+b>>0]=0;return}function bn(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0;if((-17-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))l=a+1|0;else l=k[a+8>>2]|0;if(b>>>0<2147483623){h=c+b|0;j=b<<1;h=h>>>0>>0?j:h;h=h>>>0<11?11:h+16&-16}else h=-17;j=lj(h)|0;if(e)vw(j|0,l|0,e|0)|0;c=d-f|0;if((c|0)!=(e|0))vw(j+(g+e)|0,l+(f+e)|0,c-e|0)|0;if((b|0)!=10)mj(l);k[a+8>>2]=j;k[a>>2]=h|1;return}function cn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(c>>>0>1073741807)ij(a);if(c>>>0<2){i[a>>0]=c<<1;a=a+4|0}else{e=c+4&-4;d=lj(e<<2)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=c;a=d}Al(a,b,c)|0;k[a+(c<<2)>>2]=0;return}function dn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(b>>>0>1073741807)ij(a);if(b>>>0<2){i[a>>0]=b<<1;a=a+4|0}else{e=b+4&-4;d=lj(e<<2)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=b;a=d}Cl(a,c,b)|0;k[a+(b<<2)>>2]=0;return}function en(a){a=a|0;if(i[a>>0]&1)mj(k[a+8>>2]|0);return}function fn(a,b){a=a|0;b=b|0;return gn(a,b,zl(b)|0)|0}function gn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))f=1;else{d=k[a>>2]|0;f=(d&-2)+-1|0;d=d&255}e=(d&1)==0;do if(f>>>0>=c>>>0){if(e)d=a+4|0;else d=k[a+8>>2]|0;Bl(d,b,c)|0;k[d+(c<<2)>>2]=0;if(!(i[a>>0]&1)){i[a>>0]=c<<1;break}else{k[a+4>>2]=c;break}}else{if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;kn(a,f,c-f|0,d,0,d,c,b)}while(0);return a|0}function hn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>1073741807)ij(a);c=i[a>>0]|0;if(!(c&1))d=1;else{c=k[a>>2]|0;d=(c&-2)+-1|0;c=c&255}if(!(c&1))h=(c&255)>>>1;else h=k[a+4>>2]|0;b=h>>>0>b>>>0?h:b;if(b>>>0<2)g=1;else g=(b+4&-4)+-1|0;a:do if((g|0)!=(d|0)){do if((g|0)!=1){b=(g<<2)+4|0;if(g>>>0<=d>>>0){x=0;b=ta(67,b|0)|0;f=x;x=0;if(f&1){a=Wa(0)|0;cb(a|0)|0;eb();break a}}else b=lj(b)|0;if(!(c&1)){d=1;e=a+4|0;f=0;break}else{d=1;e=k[a+8>>2]|0;f=1;break}}else{b=a+4|0;d=0;e=k[a+8>>2]|0;f=1}while(0);if(!(c&1))c=(c&255)>>>1;else c=k[a+4>>2]|0;Al(b,e,c+1|0)|0;if(f)mj(e);if(d){k[a>>2]=g+1|1;k[a+4>>2]=h;k[a+8>>2]=b;break}else{i[a>>0]=h<<1;break}}while(0);return}function jn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i[a>>0]|0;d=(c&1)!=0;if(d){e=(k[a>>2]&-2)+-1|0;f=k[a+4>>2]|0}else{e=1;f=(c&255)>>>1}if((f|0)==(e|0)){ln(a,e,1,e,e,0,0);if(!(i[a>>0]&1))e=7;else e=8}else if(d)e=8;else e=7;if((e|0)==7){i[a>>0]=(f<<1)+2;c=a+4|0;d=f+1|0}else if((e|0)==8){c=k[a+8>>2]|0;d=f+1|0;k[a+4>>2]=d}k[c+(f<<2)>>2]=b;k[c+(d<<2)>>2]=0;return}function kn(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 j=0,l=0,m=0;if((1073741806-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))m=a+4|0;else m=k[a+8>>2]|0;if(b>>>0<536870887){j=c+b|0;l=b<<1;j=j>>>0>>0?l:j;j=j>>>0<2?2:j+4&-4}else j=1073741807;l=lj(j<<2)|0;if(e)Al(l,m,e)|0;if(g)Al(l+(e<<2)|0,h,g)|0;c=d-f|0;if((c|0)!=(e|0))Al(l+(g+e<<2)|0,m+(f+e<<2)|0,c-e|0)|0;if((b|0)!=1)mj(m);k[a+8>>2]=l;k[a>>2]=j|1;b=c+g|0;k[a+4>>2]=b;k[l+(b<<2)>>2]=0;return}function ln(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0;if((1073741807-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))l=a+4|0;else l=k[a+8>>2]|0;if(b>>>0<536870887){h=c+b|0;j=b<<1;h=h>>>0>>0?j:h;h=h>>>0<2?2:h+4&-4}else h=1073741807;j=lj(h<<2)|0;if(e)Al(j,l,e)|0;c=d-f|0;if((c|0)!=(e|0))Al(j+(g+e<<2)|0,l+(f+e<<2)|0,c-e|0)|0;if((b|0)!=1)mj(l);k[a+8>>2]=j;k[a>>2]=h|1;return}function mn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=b;d=c-e|0;if(d>>>0>4294967279)ij(a);if(d>>>0<11){i[a>>0]=d<<1;f=a+1|0}else{g=d+16&-16;f=lj(g)|0;k[a+8>>2]=f;k[a>>2]=g|1;k[a+4>>2]=d}a=c-e|0;if((b|0)!=(c|0)){d=f;while(1){i[d>>0]=i[b>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else d=d+1|0}}i[f+a>>0]=0;return}function nn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b;d=c-f|0;e=d>>2;if(e>>>0>1073741807)ij(a);if(e>>>0<2){i[a>>0]=d>>>1;a=a+4|0}else{g=e+4&-4;d=lj(g<<2)|0;k[a+8>>2]=d;k[a>>2]=g|1;k[a+4>>2]=e;a=d}e=(c-f|0)>>>2;if((b|0)!=(c|0)){d=a;while(1){k[d>>2]=k[b>>2];b=b+4|0;if((b|0)==(c|0))break;else d=d+4|0}}k[a+(e<<2)>>2]=0;return}function on(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=r;r=r+16|0;d=c;e=(k[a+24>>2]|0)==0;k[a+16>>2]=e&1|b;if(!((e&1|b)&k[a+20>>2])){r=c;return}b=Va(16)|0;Co()|0;k[d>>2]=1;k[d+4>>2]=43112;x=0;Fa(11,b|0,57437,d|0);e=x;x=0;if(e&1){e=Wa()|0;Ua(b|0);fb(e|0)}else ub(b|0,864,112)}function pn(a){a=a|0;var b=0;k[a>>2]=43068;x=0;ra(88,a|0,0);b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else{Qs(a+28|0);Ql(k[a+32>>2]|0);Ql(k[a+36>>2]|0);Ql(k[a+48>>2]|0);Ql(k[a+60>>2]|0);return}}function qn(a){a=a|0;pn(a);return}function rn(a){a=a|0;pn(a);mj(a);return}function sn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=k[a+40>>2]|0;d=a+32|0;e=a+36|0;if(c)do{c=c+-1|0;_b[k[(k[d>>2]|0)+(c<<2)>>2]&15](b,a,k[(k[e>>2]|0)+(c<<2)>>2]|0)}while((c|0)!=0);return}function tn(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;Ps(b,a+28|0);r=c;return k[b>>2]|0}function un(a,b){a=a|0;b=b|0;var c=0;k[a+24>>2]=b;k[a+16>>2]=(b|0)==0&1;k[a+20>>2]=0;k[a+4>>2]=4098;k[a+12>>2]=0;k[a+8>>2]=6;c=a+28|0;b=a+32|0;a=b+40|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(a|0));Os(c);return}function vn(a){a=a|0;pn(a);return}function wn(a){a=a|0;pn(a);mj(a);return}function xn(a){a=a|0;k[a>>2]=42760;Qs(a+4|0);return}function yn(a){a=a|0;k[a>>2]=42760;Qs(a+4|0);mj(a);return}function zn(a){a=a|0;k[a>>2]=42760;Os(a+4|0);a=a+8|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;return}function An(a,b){a=a|0;b=b|0;return}function Bn(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Cn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Dn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function En(a){a=a|0;return 0}function Fn(a){a=a|0;return 0}function Gn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+12|0;g=a+16|0;a:do if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0<(k[g>>2]|0)>>>0){k[f>>2]=d+1;d=i[d>>0]|0}else{d=Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;if((d|0)==-1)break a;d=d&255}i[e>>0]=d;b=b+1|0;if((b|0)<(c|0))e=e+1|0;else break}}else b=0;while(0);return b|0}function Hn(a){a=a|0;return -1}function In(a){a=a|0;var b=0;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=k[b>>2]|0;k[b>>2]=a+1;a=l[a>>0]|0}return a|0}function Jn(a,b){a=a|0;b=b|0;return -1}function Kn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=a+24|0;g=a+28|0;a:do if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,l[e>>0]|0)|0)==-1)break a}else{h=i[e>>0]|0;k[f>>2]=d+1;i[d>>0]=h}b=b+1|0;if((b|0)<(c|0))e=e+1|0;else break}}else b=0;while(0);return b|0}function Ln(a,b){a=a|0;b=b|0;return -1}function Mn(a){a=a|0;k[a>>2]=42824;Qs(a+4|0);return}function Nn(a){a=a|0;k[a>>2]=42824;Qs(a+4|0);mj(a);return}function On(a){a=a|0;k[a>>2]=42824;Os(a+4|0);a=a+8|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;return}function Pn(a,b){a=a|0;b=b|0;return}function Qn(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Rn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Sn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Tn(a){a=a|0;return 0}function Un(a){a=a|0;return 0}function Vn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+12|0;g=a+16|0;a:do if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){d=Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;if((d|0)==-1)break a}else{k[f>>2]=d+4;d=k[d>>2]|0}k[e>>2]=d;b=b+1|0;if((b|0)<(c|0))e=e+4|0;else break}}else b=0;while(0);return b|0}function Wn(a){a=a|0;return -1}function Xn(a){a=a|0;var b=0;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=k[b>>2]|0;k[b>>2]=a+4;a=k[a>>2]|0}return a|0}function Yn(a,b){a=a|0;b=b|0;return -1}function Zn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=a+24|0;g=a+28|0;a:do if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,k[e>>2]|0)|0)==-1)break a}else{h=k[e>>2]|0;k[f>>2]=d+4;k[d>>2]=h}b=b+1|0;if((b|0)<(c|0))e=e+4|0;else break}}else b=0;while(0);return b|0}function _n(a,b){a=a|0;b=b|0;return -1}function $n(a){a=a|0;pn(a+8|0);return}function ao(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+8)|0);return}function bo(a){a=a|0;pn(a+8|0);mj(a);return}function co(a){a=a|0;bo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function eo(a){a=a|0;var b=0,c=0,d=0,e=0;d=r;r=r+16|0;c=d;a:do if(k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0){x=0;ra(65,c|0,a|0);b=x;x=0;b:do if(b&1)b=Wa(0)|0;else{do if(i[c>>0]|0){b=k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;e=x;x=0;if(!(e&1)){if((b|0)!=-1)break;e=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+e|0,k[a+(e+16)>>2]|1|0);e=x;x=0;if(!(e&1))break}b=Wa(0)|0;ro(c);break b}while(0);ro(c);break a}while(0);cb(b|0)|0;x=0;qa(181,a+(k[(k[a>>2]|0)+-12>>2]|0)|0);e=x;x=0;if(!(e&1)){eb();break}b=Wa()|0;x=0;Ga(3);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else fb(b|0)}while(0);r=d;return a|0}function fo(a){a=a|0;var b=0;b=a+16|0;k[b>>2]=k[b>>2]|1;if(!(k[a+20>>2]&1))return;else vb()}function go(a){a=a|0;pn(a+8|0);return}function ho(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+8)|0);return}function io(a){a=a|0;pn(a+8|0);mj(a);return}function jo(a){a=a|0;io(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function ko(a){a=a|0;var b=0,c=0,d=0,e=0;d=r;r=r+16|0;c=d;a:do if(k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0){x=0;ra(89,c|0,a|0);b=x;x=0;b:do if(b&1)b=Wa(0)|0;else{do if(i[c>>0]|0){b=k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;e=x;x=0;if(!(e&1)){if((b|0)!=-1)break;e=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+e|0,k[a+(e+16)>>2]|1|0);e=x;x=0;if(!(e&1))break}b=Wa(0)|0;zo(c);break b}while(0);zo(c);break a}while(0);cb(b|0)|0;x=0;qa(181,a+(k[(k[a>>2]|0)+-12>>2]|0)|0);e=x;x=0;if(!(e&1)){eb();break}b=Wa()|0;x=0;Ga(3);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else fb(b|0)}while(0);r=d;return a|0}function lo(a,b){a=a|0;b=b|0;return}function mo(a){a=a|0;pn(a+4|0);return}function no(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+4)|0);return}function oo(a){a=a|0;pn(a+4|0);mj(a);return}function po(a){a=a|0;oo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function qo(a,b){a=a|0;b=b|0;var c=0;i[a>>0]=0;k[a+4>>2]=b;c=k[(k[b>>2]|0)+-12>>2]|0;if(!(k[b+(c+16)>>2]|0)){c=k[b+(c+72)>>2]|0;if(c)eo(c)|0;i[a>>0]=1}return}function ro(a){a=a|0;var b=0,c=0;a=a+4|0;c=k[a>>2]|0;b=k[(k[c>>2]|0)+-12>>2]|0;do if((((k[c+(b+24)>>2]|0)!=0?(k[c+(b+16)>>2]|0)==0:0)?(k[c+(b+4)>>2]&8192|0)!=0:0)?!(gb()|0):0){b=k[a>>2]|0;b=k[b+((k[(k[b>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;c=x;x=0;if(!(c&1)){if((b|0)!=-1)break;b=k[a>>2]|0;c=k[(k[b>>2]|0)+-12>>2]|0;x=0;ra(66,b+c|0,k[b+(c+16)>>2]|1|0);c=x;x=0;if(!(c&1))break}c=Wa(0)|0;cb(c|0)|0;x=0;Ga(3);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}}while(0);return}function so(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;h=o+20|0;j=o+16|0;m=o+8|0;c=o;x=0;ra(65,m|0,a|0);l=x;x=0;a:do if(l&1){c=Wa(0)|0;d=a;e=a;n=19}else{do if(i[m>>0]|0){l=tn(a+(k[(k[a>>2]|0)+-12>>2]|0)|0)|0;k[c>>2]=l;x=0;l=Aa(37,c|0,43392)|0;g=x;x=0;if(g&1){n=Wa(0)|0;Qs(c);c=n}else{Qs(c);e=k[(k[a>>2]|0)+-12>>2]|0;g=k[a+(e+24)>>2]|0;d=a+e|0;e=a+(e+76)|0;c=k[e>>2]|0;do if((c|0)==-1){c=tn(d)|0;k[h>>2]=c;x=0;c=Aa(37,h|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(h);c=f<<24>>24;k[e>>2]=c;n=10;break}c=Wa(0)|0;Qs(h)}else n=10;while(0);if((n|0)==10){p=k[(k[l>>2]|0)+16>>2]|0;k[j>>2]=g;x=0;k[h>>2]=k[j>>2];c=Ba(p|0,l|0,h|0,d|0,c&255|0,b|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break}c=Wa(0)|0}}ro(m);d=a;e=a;n=19;break a}while(0);ro(m)}while(0);do if((n|0)==19){cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();break}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0)}while(0);r=o;return a|0}function to(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;h=o+20|0;j=o+16|0;m=o+8|0;c=o;x=0;ra(65,m|0,a|0);l=x;x=0;a:do if(l&1){c=Wa(0)|0;d=a;e=a;n=19}else{do if(i[m>>0]|0){l=tn(a+(k[(k[a>>2]|0)+-12>>2]|0)|0)|0;k[c>>2]=l;x=0;l=Aa(37,c|0,43392)|0;g=x;x=0;if(g&1){n=Wa(0)|0;Qs(c);c=n}else{Qs(c);e=k[(k[a>>2]|0)+-12>>2]|0;g=k[a+(e+24)>>2]|0;d=a+e|0;e=a+(e+76)|0;c=k[e>>2]|0;do if((c|0)==-1){c=tn(d)|0;k[h>>2]=c;x=0;c=Aa(37,h|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(h);c=f<<24>>24;k[e>>2]=c;n=10;break}c=Wa(0)|0;Qs(h)}else n=10;while(0);if((n|0)==10){p=k[(k[l>>2]|0)+24>>2]|0;k[j>>2]=g;x=0;k[h>>2]=k[j>>2];c=Ba(p|0,l|0,h|0,d|0,c&255|0,b|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break}c=Wa(0)|0}}ro(m);d=a;e=a;n=19;break a}while(0);ro(m)}while(0);do if((n|0)==19){cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();break}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0)}while(0);r=o;return a|0}function uo(a){a=a|0;pn(a+4|0);return}function vo(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+4)|0);return}function wo(a){a=a|0;pn(a+4|0);mj(a);return}function xo(a){a=a|0;wo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function yo(a,b){a=a|0;b=b|0;var c=0;i[a>>0]=0;k[a+4>>2]=b;c=k[(k[b>>2]|0)+-12>>2]|0;if(!(k[b+(c+16)>>2]|0)){c=k[b+(c+72)>>2]|0;if(c)ko(c)|0;i[a>>0]=1}return}function zo(a){a=a|0;var b=0,c=0;a=a+4|0;c=k[a>>2]|0;b=k[(k[c>>2]|0)+-12>>2]|0;do if((((k[c+(b+24)>>2]|0)!=0?(k[c+(b+16)>>2]|0)==0:0)?(k[c+(b+4)>>2]&8192|0)!=0:0)?!(gb()|0):0){b=k[a>>2]|0;b=k[b+((k[(k[b>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;c=x;x=0;if(!(c&1)){if((b|0)!=-1)break;b=k[a>>2]|0;c=k[(k[b>>2]|0)+-12>>2]|0;x=0;ra(66,b+c|0,k[b+(c+16)>>2]|1|0);c=x;x=0;if(!(c&1))break}c=Wa(0)|0;cb(c|0)|0;x=0;Ga(3);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}}while(0);return}function Ao(a){a=a|0;return 57453}function Bo(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)!=1&(c|0)<257)Gm(a,b,c);else Qm(a,57462,35);return}function Co(){if((i[1048]|0)==0?(Qa(1048)|0)!=0:0){k[10778]=43084;tb(72,43112,w|0)|0;Ya(1048)}return 43112}function Do(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=r;r=r+16|0;e=d+8|0;f=d;h=c;g=k[h+4>>2]|0;c=f;k[c>>2]=k[h>>2];k[c+4>>2]=g;k[e>>2]=k[f>>2];k[e+4>>2]=k[f+4>>2];Im(a,e,b);k[a>>2]=43048;r=d;return}function Eo(a){a=a|0;Lm(a);return}function Fo(a){a=a|0;Lm(a);mj(a);return}function Go(a){a=a|0;pn(a);mj(a);return}function Ho(a){a=a|0;mj(a);return}function Io(a){a=a|0;return}function Jo(a){a=a|0;return}function Ko(a){a=a|0;mj(a);return}function Lo(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;a:do if((d|0)==(e|0))g=6;else while(1){if((b|0)==(c|0)){b=-1;break a}a=i[b>>0]|0;f=i[d>>0]|0;if(a<<24>>24>24){b=-1;break a}if(f<<24>>24>24){b=1;break a}b=b+1|0;d=d+1|0;if((d|0)==(e|0)){g=6;break}}while(0);if((g|0)==6)b=(b|0)!=(c|0)&1;return b|0}function Mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mn(a,c,d);return}function No(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)==(c|0))a=0;else{a=0;do{a=(i[b>>0]|0)+(a<<4)|0;d=a&-268435456;a=(d>>>24|d)^a;b=b+1|0}while((b|0)!=(c|0))}return a|0}function Oo(a){a=a|0;return}function Po(a){a=a|0;mj(a);return}function Qo(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;a:do if((d|0)==(e|0))g=6;else while(1){if((b|0)==(c|0)){b=-1;break a}a=k[b>>2]|0;f=k[d>>2]|0;if((a|0)<(f|0)){b=-1;break a}if((f|0)<(a|0)){b=1;break a}b=b+4|0;d=d+4|0;if((d|0)==(e|0)){g=6;break}}while(0);if((g|0)==6)b=(b|0)!=(c|0)&1;return b|0}function Ro(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;nn(a,c,d);return}function So(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)==(c|0))a=0;else{a=0;do{a=(k[b>>2]|0)+(a<<4)|0;d=a&-268435456;a=(d>>>24|d)^a;b=b+4|0}while((b|0)!=(c|0))}return a|0}function To(a){a=a|0;return}function Uo(a){a=a|0;mj(a);return}function Vo(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;q=r;r=r+64|0;o=q+56|0;g=q+52|0;m=q+48|0;h=q+44|0;j=q+40|0;l=q+36|0;n=q+32|0;s=q+8|0;p=q;a:do if(!(k[d+4>>2]&1)){k[m>>2]=-1;s=k[(k[a>>2]|0)+16>>2]|0;k[h>>2]=k[b>>2];k[j>>2]=k[c>>2];k[g>>2]=k[h>>2];k[o>>2]=k[j>>2];g=Nb[s&63](a,g,o,d,e,m)|0;k[b>>2]=g;switch(k[m>>2]|0){case 0:{i[f>>0]=0;break a}case 1:{i[f>>0]=1;break a}default:{i[f>>0]=1;k[e>>2]=4;break a}}}else{g=tn(d)|0;k[l>>2]=g;x=0;a=Aa(37,l|0,44220)|0;m=x;x=0;do if(!(m&1)){zm(g)|0;g=tn(d)|0;k[n>>2]=g;x=0;j=Aa(37,n|0,44360)|0;n=x;x=0;if(n&1){s=Wa()|0;zm(g)|0;g=s;break}zm(g)|0;x=0;ra(k[(k[j>>2]|0)+24>>2]|0,s|0,j|0);n=x;x=0;if(!(n&1)){h=s+12|0;x=0;ra(k[(k[j>>2]|0)+28>>2]|0,h|0,j|0);n=x;x=0;if(!(n&1)){k[p>>2]=k[c>>2];x=0;k[o>>2]=k[p>>2];g=na(7,b|0,o|0,s|0,s+24|0,a|0,e|0,1)|0;e=x;x=0;if(e&1){g=Wa()|0;Sm(s+12|0);Sm(s);break}else{i[f>>0]=(g|0)==(s|0)&1;g=k[b>>2]|0;Sm(s+12|0);Sm(s);break a}}}else h=s;g=Wa()|0;j=M;if((s|0)!=(h|0))do{h=h+-12|0;Sm(h)}while((h|0)!=(s|0))}else{s=Wa()|0;zm(g)|0;g=s}while(0);fb(g|0)}while(0);r=q;return g|0}function Wo(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Iu(a,i,h,d,e,f)|0;r=g;return a|0}function Xo(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ju(a,i,h,d,e,f)|0;r=g;return a|0}function Yo(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ku(a,i,h,d,e,f)|0;r=g;return a|0}function Zo(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Lu(a,i,h,d,e,f)|0;r=g;return a|0}function _o(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Mu(a,i,h,d,e,f)|0;r=g;return a|0}function $o(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Nu(a,i,h,d,e,f)|0;r=g;return a|0}function ap(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ou(a,i,h,d,e,f)|0;r=g;return a|0}function bp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Pu(a,i,h,d,e,f)|0;r=g;return a|0}function cp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Qu(a,i,h,d,e,f)|0;r=g;return a|0}function dp(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;C=r;r=r+240|0;w=C;q=C+208|0;E=C+32|0;a=C+28|0;D=C+16|0;v=C+12|0;t=C+48|0;u=C+8|0;s=C+4|0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;x=0;d=ta(68,d|0)|0;p=x;x=0;do if(p&1)a=Wa()|0;else{k[a>>2]=d;x=0;a=Aa(37,a|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,Ea(k[(k[a>>2]|0)+32>>2]|0,a|0,57498,57524,q|0)|0,p=x,x=0,!(p&1)):0){zm(d)|0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;if(!(i[D>>0]&1))a=10;else a=(k[D>>2]&-2)+-1|0;x=0;Fa(8,D|0,a|0,0);p=x;x=0;a:do if(!(p&1)){o=D+8|0;p=D+1|0;d=(i[D>>0]&1)==0?p:k[o>>2]|0;k[v>>2]=d;k[u>>2]=t;k[s>>2]=0;n=D+4|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){F=29;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){F=29;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;F=19;break}}else F=19;while(0);if((F|0)==19){F=0;if(h){g=0;break}else g=0}h=i[D>>0]|0;h=(h&1)==0?(h&255)>>>1:k[n>>2]|0;if((k[v>>2]|0)==(d+h|0)){x=0;Fa(8,D|0,h<<1|0,0);m=x;x=0;if(m&1){F=29;break}if(!(i[D>>0]&1))d=10;else d=(k[D>>2]&-2)+-1|0;x=0;Fa(8,D|0,d|0,0);m=x;x=0;if(m&1){F=29;break}d=(i[D>>0]&1)==0?p:k[o>>2]|0;k[v>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=29;break}}else h=l[h>>0]|0;if(ep(h&255,16,d,v,s,0,E,t,u,q)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=29;break}else continue}else{k[j>>2]=g+1;continue}}if((F|0)==29){a=Wa()|0;break}x=0;Fa(8,D|0,(k[v>>2]|0)-d|0,0);G=x;x=0;if((!(G&1)?(y=i[D>>0]|0,z=k[o>>2]|0,x=0,A=Da(3)|0,G=x,x=0,!(G&1)):0)?(x=0,k[w>>2]=f,B=Ea(16,((y&1)==0?p:z)|0,A|0,58882,w|0)|0,G=x,x=0,!(G&1)):0){if((B|0)!=1)k[e>>2]=4;if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=30;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;G=x;x=0;if(G&1){F=30;break a}if((a|0)==-1){k[c>>2]=0;F=55;break}}if(!d)F=56}else F=55;while(0);if((F|0)==55?d:0)F=56;if((F|0)==56)k[e>>2]=k[e>>2]|2;G=k[b>>2]|0;Sm(D);Sm(E);r=C;return G|0}else F=30}else F=30;while(0);if((F|0)==30)a=Wa()|0;Sm(D);break}a=Wa()|0;zm(d)|0}while(0);Sm(E);fb(a|0);return 0}function ep(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0;o=k[d>>2]|0;p=(o|0)==(c|0);do if(p){m=(i[l+24>>0]|0)==a<<24>>24;if(!m?(i[l+25>>0]|0)!=a<<24>>24:0){n=5;break}k[d>>2]=c+1;i[c>>0]=m?43:45;k[e>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=i[g>>0]|0;if(a<<24>>24==f<<24>>24?(((n&1)==0?(n&255)>>>1:k[g+4>>2]|0)|0)!=0:0){m=k[j>>2]|0;if((m-h|0)>=160){m=0;break}b=k[e>>2]|0;k[j>>2]=m+4;k[m>>2]=b;k[e>>2]=0;m=0;break}g=l+26|0;m=l;while(1){if((i[m>>0]|0)==a<<24>>24)break;m=m+1|0;if((m|0)==(g|0)){m=g;break}}m=m-l|0;if((m|0)>23)m=-1;else{switch(b|0){case 10:case 8:{if((m|0)>=(b|0)){m=-1;break a}break}case 16:{if((m|0)>=22){if(p){m=-1;break a}if((o-c|0)>=3){m=-1;break a}if((i[o+-1>>0]|0)!=48){m=-1;break a}k[e>>2]=0;m=i[57498+m>>0]|0;k[d>>2]=o+1;i[o>>0]=m;m=0;break a}break}default:{}}m=i[57498+m>>0]|0;k[d>>2]=o+1;i[o>>0]=m;k[e>>2]=(k[e>>2]|0)+1;m=0}}while(0);return m|0}function fp(){var a=0,b=0;do if((i[1968]|0)==0?(Qa(1968)|0)!=0:0){x=0;a=va(31,2147483647,58885,0)|0;b=x;x=0;if(b&1){b=Wa()|0;Bb(1968);fb(b|0)}else{k[11196]=a;Ya(1968);break}}while(0);return k[11196]|0}function gp(a){a=a|0;return}function hp(a){a=a|0;mj(a);return}function ip(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;q=r;r=r+64|0;o=q+56|0;g=q+52|0;m=q+48|0;h=q+44|0;j=q+40|0;l=q+36|0;n=q+32|0;s=q+8|0;p=q;a:do if(!(k[d+4>>2]&1)){k[m>>2]=-1;s=k[(k[a>>2]|0)+16>>2]|0;k[h>>2]=k[b>>2];k[j>>2]=k[c>>2];k[g>>2]=k[h>>2];k[o>>2]=k[j>>2];g=Nb[s&63](a,g,o,d,e,m)|0;k[b>>2]=g;switch(k[m>>2]|0){case 0:{i[f>>0]=0;break a}case 1:{i[f>>0]=1;break a}default:{i[f>>0]=1;k[e>>2]=4;break a}}}else{g=tn(d)|0;k[l>>2]=g;x=0;a=Aa(37,l|0,44212)|0;m=x;x=0;do if(!(m&1)){zm(g)|0;g=tn(d)|0;k[n>>2]=g;x=0;j=Aa(37,n|0,44368)|0;n=x;x=0;if(n&1){s=Wa()|0;zm(g)|0;g=s;break}zm(g)|0;x=0;ra(k[(k[j>>2]|0)+24>>2]|0,s|0,j|0);n=x;x=0;if(!(n&1)){h=s+12|0;x=0;ra(k[(k[j>>2]|0)+28>>2]|0,h|0,j|0);n=x;x=0;if(!(n&1)){k[p>>2]=k[c>>2];x=0;k[o>>2]=k[p>>2];g=na(8,b|0,o|0,s|0,s+24|0,a|0,e|0,1)|0;e=x;x=0;if(e&1){g=Wa()|0;en(s+12|0);en(s);break}else{i[f>>0]=(g|0)==(s|0)&1;g=k[b>>2]|0;en(s+12|0);en(s);break a}}}else h=s;g=Wa()|0;j=M;if((s|0)!=(h|0))do{h=h+-12|0;en(h)}while((h|0)!=(s|0))}else{s=Wa()|0;zm(g)|0;g=s}while(0);fb(g|0)}while(0);r=q;return g|0}function jp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Tu(a,i,h,d,e,f)|0;r=g;return a|0}function kp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Uu(a,i,h,d,e,f)|0;r=g;return a|0}function lp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Vu(a,i,h,d,e,f)|0;r=g;return a|0}function mp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Wu(a,i,h,d,e,f)|0;r=g;return a|0}function np(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Xu(a,i,h,d,e,f)|0;r=g;return a|0}function op(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Yu(a,i,h,d,e,f)|0;r=g;return a|0}function pp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Zu(a,i,h,d,e,f)|0;r=g;return a|0}function qp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=_u(a,i,h,d,e,f)|0;r=g;return a|0}function rp(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,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=$u(a,i,h,d,e,f)|0;r=g;return a|0}function sp(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=r;r=r+320|0;v=B;p=B+208|0;D=B+32|0;a=B+28|0;C=B+16|0;u=B+12|0;s=B+48|0;t=B+8|0;q=B+4|0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;d=ta(68,d|0)|0;o=x;x=0;do if(o&1)a=Wa()|0;else{k[a>>2]=d;x=0;a=Aa(37,a|0,44212)|0;o=x;x=0;if(!(o&1)?(x=0,Ea(k[(k[a>>2]|0)+48>>2]|0,a|0,57498,57524,p|0)|0,o=x,x=0,!(o&1)):0){zm(d)|0;k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);o=x;x=0;a:do if(!(o&1)){n=C+8|0;o=C+1|0;a=(i[C>>0]&1)==0?o:k[n>>2]|0;k[u>>2]=a;k[t>>2]=s;k[q>>2]=0;m=C+4|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){E=30;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){E=30;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h){g=j;break}else{g=j;break b}else{k[c>>2]=0;E=20;break}}else E=20;while(0);if((E|0)==20){E=0;if(h){g=0;break}else g=0}h=i[C>>0]|0;h=(h&1)==0?(h&255)>>>1:k[m>>2]|0;if((k[u>>2]|0)==(a+h|0)){x=0;Fa(8,C|0,h<<1|0,0);l=x;x=0;if(l&1){E=30;break}if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);l=x;x=0;if(l&1){E=30;break}a=(i[C>>0]&1)==0?o:k[n>>2]|0;k[u>>2]=a+h}j=d+12|0;h=k[j>>2]|0;l=d+16|0;if((h|0)==(k[l>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=30;break}}else h=k[h>>2]|0;if(tp(h,16,a,u,q,0,D,s,t,p)|0)break;g=k[j>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=30;break}else{g=d;continue}}else{k[j>>2]=g+4;g=d;continue}}if((E|0)==30){a=Wa()|0;break}x=0;Fa(8,C|0,(k[u>>2]|0)-a|0,0);F=x;x=0;if((!(F&1)?(w=i[C>>0]|0,y=k[n>>2]|0,x=0,z=Da(3)|0,F=x,x=0,!(F&1)):0)?(x=0,k[v>>2]=f,A=Ea(16,((w&1)==0?o:y)|0,z|0,58882,v|0)|0,F=x,x=0,!(F&1)):0){if((A|0)!=1)k[e>>2]=4;if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=31;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;F=x;x=0;if(F&1){E=31;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{E=59;break}else{k[c>>2]=0;E=57;break}}else E=57;while(0);if((E|0)==57?d:0)E=59;if((E|0)==59)k[e>>2]=k[e>>2]|2;F=k[b>>2]|0;Sm(C);Sm(D);r=B;return F|0}else E=31}else E=31;while(0);if((E|0)==31)a=Wa()|0;Sm(C);break}a=Wa()|0;zm(d)|0}while(0);Sm(D);fb(a|0);return 0}function tp(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0;o=k[d>>2]|0;p=(o|0)==(c|0);do if(p){m=(k[l+96>>2]|0)==(a|0);if(!m?(k[l+100>>2]|0)!=(a|0):0){n=5;break}k[d>>2]=c+1;i[c>>0]=m?43:45;k[e>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=i[g>>0]|0;if((a|0)==(f|0)?(((n&1)==0?(n&255)>>>1:k[g+4>>2]|0)|0)!=0:0){m=k[j>>2]|0;if((m-h|0)>=160){m=0;break}b=k[e>>2]|0;k[j>>2]=m+4;k[m>>2]=b;k[e>>2]=0;m=0;break}g=l+104|0;m=l;while(1){if((k[m>>2]|0)==(a|0))break;m=m+4|0;if((m|0)==(g|0)){m=g;break}}m=m-l|0;g=m>>2;if((m|0)>92)m=-1;else{switch(b|0){case 10:case 8:{if((g|0)>=(b|0)){m=-1;break a}break}case 16:{if((m|0)>=88){if(p){m=-1;break a}if((o-c|0)>=3){m=-1;break a}if((i[o+-1>>0]|0)!=48){m=-1;break a}k[e>>2]=0;m=i[57498+g>>0]|0;k[d>>2]=o+1;i[o>>0]=m;m=0;break a}break}default:{}}m=i[57498+g>>0]|0;k[d>>2]=o+1;i[o>>0]=m;k[e>>2]=(k[e>>2]|0)+1;m=0}}while(0);return m|0}function up(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,j=0,l=0;j=r;r=r+16|0;h=j;b=tn(b)|0;k[h>>2]=b;x=0;e=Aa(37,h|0,44220)|0;l=x;x=0;if((((!(l&1)?(x=0,Ea(k[(k[e>>2]|0)+32>>2]|0,e|0,57498,57524,c|0)|0,l=x,x=0,!(l&1)):0)?(x=0,g=Aa(37,h|0,44360)|0,l=x,x=0,!(l&1)):0)?(x=0,f=ta(k[(k[g>>2]|0)+16>>2]|0,g|0)|0,l=x,x=0,!(l&1)):0)?(i[d>>0]=f,x=0,ra(k[(k[g>>2]|0)+20>>2]|0,a|0,g|0),l=x,x=0,!(l&1)):0){zm(b)|0;r=j;return}l=Wa()|0;zm(b)|0;fb(l|0)}function vp(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,j=0,l=0,m=0,n=0;m=r;r=r+16|0;l=m;b=tn(b)|0;k[l>>2]=b;x=0;f=Aa(37,l|0,44220)|0;n=x;x=0;if(((((!(n&1)?(x=0,Ea(k[(k[f>>2]|0)+32>>2]|0,f|0,57498,57530,c|0)|0,n=x,x=0,!(n&1)):0)?(x=0,j=Aa(37,l|0,44360)|0,n=x,x=0,!(n&1)):0)?(x=0,g=ta(k[(k[j>>2]|0)+12>>2]|0,j|0)|0,n=x,x=0,!(n&1)):0)?(i[d>>0]=g,x=0,h=ta(k[(k[j>>2]|0)+16>>2]|0,j|0)|0,n=x,x=0,!(n&1)):0)?(i[e>>0]=h,x=0,ra(k[(k[j>>2]|0)+20>>2]|0,a|0,j|0),n=x,x=0,!(n&1)):0){zm(b)|0;r=m;return}n=Wa()|0;zm(b)|0;fb(n|0)}function wp(a,b,c,d,e,f,g,h,j,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do if(a<<24>>24==f<<24>>24)if(i[b>>0]|0){i[b>>0]=0;c=k[e>>2]|0;k[e>>2]=c+1;i[c>>0]=46;c=i[h>>0]|0;if((((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0?(p=k[m>>2]|0,(p-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;p=0}else p=0}else p=-1;else{if(a<<24>>24==g<<24>>24?(g=i[h>>0]|0,(((g&1)==0?(g&255)>>>1:k[h+4>>2]|0)|0)!=0):0){if(!(i[b>>0]|0)){p=-1;break}p=k[m>>2]|0;if((p-j|0)>=160){p=0;break}j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;k[n>>2]=0;p=0;break}f=o+32|0;p=o;while(1){if((i[p>>0]|0)==a<<24>>24)break;p=p+1|0;if((p|0)==(f|0)){p=f;break}}f=p-o|0;if((f|0)>31)p=-1;else{g=i[57498+f>>0]|0;switch(f|0){case 24:case 25:{p=k[e>>2]|0;if((p|0)!=(d|0)?(l[p+-1>>0]&95|0)!=(l[c>>0]&127|0):0){p=-1;break a}k[e>>2]=p+1;i[p>>0]=g;p=0;break a}case 23:case 22:{i[c>>0]=80;p=k[e>>2]|0;k[e>>2]=p+1;i[p>>0]=g;p=0;break a}default:{p=g&95;if((((p|0)==(i[c>>0]|0)?(i[c>>0]=p|128,(i[b>>0]|0)!=0):0)?(i[b>>0]=0,c=i[h>>0]|0,(((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0):0)?(q=k[m>>2]|0,(q-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=q+4;k[q>>2]=j}m=k[e>>2]|0;k[e>>2]=m+1;i[m>>0]=g;if((f|0)>21){p=0;break a}k[n>>2]=(k[n>>2]|0)+1;p=0;break a}}}}while(0);return p|0}function xp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=r;r=r+16|0;h=i;b=tn(b)|0;k[h>>2]=b;x=0;e=Aa(37,h|0,44212)|0;j=x;x=0;if((((!(j&1)?(x=0,Ea(k[(k[e>>2]|0)+48>>2]|0,e|0,57498,57524,c|0)|0,j=x,x=0,!(j&1)):0)?(x=0,g=Aa(37,h|0,44368)|0,j=x,x=0,!(j&1)):0)?(x=0,f=ta(k[(k[g>>2]|0)+16>>2]|0,g|0)|0,j=x,x=0,!(j&1)):0)?(k[d>>2]=f,x=0,ra(k[(k[g>>2]|0)+20>>2]|0,a|0,g|0),j=x,x=0,!(j&1)):0){zm(b)|0;r=i;return}j=Wa()|0;zm(b)|0;fb(j|0)}function yp(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,l=0,m=0;l=r;r=r+16|0;j=l;b=tn(b)|0;k[j>>2]=b;x=0;f=Aa(37,j|0,44212)|0;m=x;x=0;if(((((!(m&1)?(x=0,Ea(k[(k[f>>2]|0)+48>>2]|0,f|0,57498,57530,c|0)|0,m=x,x=0,!(m&1)):0)?(x=0,i=Aa(37,j|0,44368)|0,m=x,x=0,!(m&1)):0)?(x=0,g=ta(k[(k[i>>2]|0)+12>>2]|0,i|0)|0,m=x,x=0,!(m&1)):0)?(k[d>>2]=g,x=0,h=ta(k[(k[i>>2]|0)+16>>2]|0,i|0)|0,m=x,x=0,!(m&1)):0)?(k[e>>2]=h,x=0,ra(k[(k[i>>2]|0)+20>>2]|0,a|0,i|0),m=x,x=0,!(m&1)):0){zm(b)|0;r=l;return}m=Wa()|0;zm(b)|0;fb(m|0)}function zp(a,b,c,d,e,f,g,h,j,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do if((a|0)==(f|0))if(i[b>>0]|0){i[b>>0]=0;c=k[e>>2]|0;k[e>>2]=c+1;i[c>>0]=46;c=i[h>>0]|0;if((((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0?(p=k[m>>2]|0,(p-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;p=0}else p=0}else p=-1;else{if((a|0)==(g|0)?(g=i[h>>0]|0,(((g&1)==0?(g&255)>>>1:k[h+4>>2]|0)|0)!=0):0){if(!(i[b>>0]|0)){p=-1;break}p=k[m>>2]|0;if((p-j|0)>=160){p=0;break}j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;k[n>>2]=0;p=0;break}f=o+128|0;p=o;while(1){if((k[p>>2]|0)==(a|0))break;p=p+4|0;if((p|0)==(f|0)){p=f;break}}f=p-o|0;p=f>>2;if((f|0)<=124){g=i[57498+p>>0]|0;switch(p|0){case 24:case 25:{p=k[e>>2]|0;if((p|0)!=(d|0)?(l[p+-1>>0]&95|0)!=(l[c>>0]&127|0):0){p=-1;break a}k[e>>2]=p+1;i[p>>0]=g;p=0;break a}case 23:case 22:{i[c>>0]=80;break}default:{p=g&95;if((((p|0)==(i[c>>0]|0)?(i[c>>0]=p|128,(i[b>>0]|0)!=0):0)?(i[b>>0]=0,c=i[h>>0]|0,(((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0):0)?(q=k[m>>2]|0,(q-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=q+4;k[q>>2]=j}}}m=k[e>>2]|0;k[e>>2]=m+1;i[m>>0]=g;if((f|0)>84)p=0;else{k[n>>2]=(k[n>>2]|0)+1;p=0}}else p=-1}while(0);return p|0}function Ap(a){a=a|0;return}function Bp(a){a=a|0;mj(a);return}function Cp(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,j=0,l=0,m=0;m=r;r=r+32|0;f=m+20|0;g=m+16|0;h=m+12|0;l=m;a:do if(!(k[c+4>>2]&1)){l=k[(k[a>>2]|0)+24>>2]|0;k[g>>2]=k[b>>2];k[f>>2]=k[g>>2];f=Wb[l&31](a,f,c,d,e&1)|0}else{f=tn(c)|0;k[h>>2]=f;x=0;g=Aa(37,h|0,44360)|0;j=x;x=0;b:do if(j&1){m=Wa()|0;zm(f)|0;f=m}else{zm(f)|0;f=k[g>>2]|0;if(e)Mb[k[f+24>>2]&127](l,g);else Mb[k[f+28>>2]&127](l,g);a=i[l>>0]|0;j=(a&1)==0;f=l+1|0;e=l+8|0;h=j?f:l+1|0;f=j?f:k[l+8>>2]|0;j=l+4|0;c=(a&1)==0;c:do if((f|0)!=((c?h:k[e>>2]|0)+(c?(a&255)>>>1:k[j>>2]|0)|0)){d:while(1){g=i[f>>0]|0;d=k[b>>2]|0;do if(d){c=d+24|0;a=k[c>>2]|0;if((a|0)!=(k[d+28>>2]|0)){k[c>>2]=a+1;i[a>>0]=g;break}x=0;g=Aa(k[(k[d>>2]|0)+52>>2]|0,d|0,g&255|0)|0;a=x;x=0;if(a&1)break d;if((g|0)==-1)k[b>>2]=0}while(0);f=f+1|0;a=i[l>>0]|0;c=(a&1)==0;if((f|0)==((c?h:k[e>>2]|0)+(c?(a&255)>>>1:k[j>>2]|0)|0))break c}f=Wa()|0;Sm(l);break b}while(0);f=k[b>>2]|0;Sm(l);break a}while(0);fb(f|0)}while(0);r=m;return f|0}function Dp(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+64|0;f=m;o=m+56|0;p=m+44|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,1,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=md(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Ep(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;if(d&2048){i[a>>0]=43;a=a+1|0}if(d&512){i[a>>0]=35;a=a+1|0}e=i[b>>0]|0;if(e<<24>>24){f=b;while(1){f=f+1|0;b=a+1|0;i[a>>0]=e;e=i[f>>0]|0;if(!(e<<24>>24)){a=b;break}else a=b}}a:do switch(d&74|0){case 64:{i[a>>0]=111;break}case 8:if(!(d&16384)){i[a>>0]=120;break a}else{i[a>>0]=88;break a}default:if(c){i[a>>0]=100;break a}else{i[a>>0]=117;break a}}while(0);return}function Fp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do switch(k[c+4>>2]&176|0){case 16:{c=i[a>>0]|0;switch(c<<24>>24){case 43:case 45:{a=a+1|0;break a}default:{}}if((b-a|0)>1&c<<24>>24==48){switch(i[a+1>>0]|0){case 88:case 120:break;default:{d=7;break a}}a=a+2|0}else d=7;break}case 32:{a=b;break}default:d=7}while(0);return a|0}function Gp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;s=Ss(g,44220)|0;l=Ss(g,44360)|0;Mb[k[(k[l>>2]|0)+20>>2]&127](v,l);p=i[v>>0]|0;q=v+4|0;a:do if(!(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0)){x=0;Ea(k[(k[s>>2]|0)+32>>2]|0,s|0,a|0,c|0,d|0)|0;t=x;x=0;if(t&1)t=5;else{g=d+(c-a)|0;k[f>>2]=g;t=29}}else{k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,g|0)|0;p=x;x=0;if(p&1){t=5;break a}j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=g;j=a+1|0;break}default:j=a}b:do if((c-j|0)>1?(i[j>>0]|0)==48:0){g=j+1|0;switch(i[g>>0]|0){case 88:case 120:break;default:break b}x=0;h=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,48)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+1;i[p>>0]=h;x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,i[g>>0]|0)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+1;i[p>>0]=g;j=j+2|0}while(0);if((j|0)!=(c|0)?(m=c+-1|0,j>>>0>>0):0){h=j;g=m;do{p=i[h>>0]|0;i[h>>0]=i[g>>0]|0;i[g>>0]=p;h=h+1|0;g=g+-1|0}while(h>>>0>>0)}x=0;m=ta(k[(k[l>>2]|0)+16>>2]|0,l|0)|0;p=x;x=0;if(!(p&1)){n=v+8|0;o=v+1|0;c:do if(j>>>0>>0){g=0;h=0;p=j;while(1){l=i[((i[v>>0]&1)==0?o:k[n>>2]|0)+h>>0]|0;if(l<<24>>24!=0&(g|0)==(l<<24>>24|0)){g=k[f>>2]|0;k[f>>2]=g+1;i[g>>0]=m;g=i[v>>0]|0;l=0;h=(h>>>0<(((g&1)==0?(g&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+h|0}else l=g;x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,i[p>>0]|0)|0;w=x;x=0;if(w&1)break;w=k[f>>2]|0;k[f>>2]=w+1;i[w>>0]=g;p=p+1|0;if(p>>>0>=c>>>0)break c;else g=l+1|0}g=Wa()|0;break a}while(0);h=a;g=d+(j-h)|0;a=k[f>>2]|0;if((g|0)==(a|0)){a=h;t=29}else{a=a+-1|0;if(g>>>0>>0)do{w=i[g>>0]|0;i[g>>0]=i[a>>0]|0;i[a>>0]=w;g=g+1|0;a=a+-1|0}while(g>>>0>>0);a=h;g=k[f>>2]|0;t=29}}else t=5}while(0);if((t|0)==5)g=Wa()|0;else if((t|0)==29){k[e>>2]=(b|0)==(c|0)?g:d+(b-a)|0;Sm(v);r=u;return}Sm(v);fb(g|0)}function Hp(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,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+96|0;g=m+8|0;a=m;o=m+74|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,1,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,22,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=md(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Ip(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+64|0;f=m;o=m+56|0;p=m+44|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,0,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=md(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Jp(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,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+112|0;g=m+8|0;a=m;o=m+75|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,0,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,23,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=md(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Kp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+176|0;t=z+84|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+88|0;s=z+80|0;h=z+118|0;y=z+76|0;w=z+72|0;u=z+68|0;v=z+64|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58898,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,k[n>>2]=k[c+8>>2],p[n+8>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<1)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}while(0);do if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(2,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(39,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Lp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;if(c&2048){i[a>>0]=43;a=a+1|0}if(c&1024){i[a>>0]=35;a=a+1|0}g=c&260;e=c>>>14;h=(g|0)==260;if(h)f=0;else{i[a>>0]=46;i[a+1>>0]=42;a=a+2|0;f=1}c=i[b>>0]|0;if(c<<24>>24){d=a;while(1){b=b+1|0;a=d+1|0;i[d>>0]=c;c=i[b>>0]|0;if(!(c<<24>>24))break;else d=a}}a:do switch(g|0){case 4:if(!(e&1)){i[a>>0]=102;break a}else{i[a>>0]=70;break a}case 256:if(!(e&1)){i[a>>0]=101;break a}else{i[a>>0]=69;break a}default:{c=(e&1|0)!=0;if(h)if(c){i[a>>0]=65;break a}else{i[a>>0]=97;break a}else if(c){i[a>>0]=71;break a}else{i[a>>0]=103;break a}}}while(0);return f|0}function Mp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0;z=r;r=r+16|0;A=z;y=Ss(g,44220)|0;v=Ss(g,44360)|0;Mb[k[(k[v>>2]|0)+20>>2]&127](A,v);k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,g|0)|0;w=x;x=0;if(w&1)u=8;else{m=k[f>>2]|0;k[f>>2]=m+1;i[m>>0]=g;m=a+1|0;u=10}break}default:{m=a;u=10}}a:do if((u|0)==10){w=c;b:do if((w-m|0)>1?(i[m>>0]|0)==48:0){j=m+1|0;switch(i[j>>0]|0){case 88:case 120:break;default:{u=11;break b}}x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,48)|0;t=x;x=0;if(t&1){u=8;break a}t=k[f>>2]|0;k[f>>2]=t+1;i[t>>0]=g;m=m+2|0;x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,i[j>>0]|0)|0;t=x;x=0;if(t&1){u=8;break a}t=k[f>>2]|0;k[f>>2]=t+1;i[t>>0]=g;if(m>>>0>>0){g=m;while(1){j=i[g>>0]|0;x=0;l=Da(3)|0;t=x;x=0;if(t&1)break;x=0;j=Aa(39,j<<24>>24|0,l|0)|0;t=x;x=0;if(t&1)break;if(!j){t=m;break b}g=g+1|0;if(g>>>0>=c>>>0){t=m;break b}}g=Wa()|0;break a}else{t=m;g=m}}else u=11;while(0);c:do if((u|0)==11)if(m>>>0>>0){g=m;while(1){j=i[g>>0]|0;x=0;l=Da(3)|0;t=x;x=0;if(t&1)break;x=0;j=Aa(40,j<<24>>24|0,l|0)|0;t=x;x=0;if(t&1)break;if(!j){t=m;break c}g=g+1|0;if(g>>>0>=c>>>0){t=m;break c}}g=Wa()|0;break a}else{t=m;g=m}while(0);q=i[A>>0]|0;s=A+4|0;if(((q&1)==0?(q&255)>>>1:k[s>>2]|0)|0){if((t|0)!=(g|0)?(n=g+-1|0,t>>>0>>0):0){l=t;j=n;do{q=i[l>>0]|0;i[l>>0]=i[j>>0]|0;i[j>>0]=q;l=l+1|0;j=j+-1|0}while(l>>>0>>0)}x=0;n=ta(k[(k[v>>2]|0)+16>>2]|0,v|0)|0;q=x;x=0;if(q&1){u=8;break}o=A+8|0;p=A+1|0;d:do if(t>>>0>>0){j=0;l=0;q=t;while(1){m=i[((i[A>>0]&1)==0?p:k[o>>2]|0)+l>>0]|0;if(m<<24>>24>0&(j|0)==(m<<24>>24|0)){j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=n;j=i[A>>0]|0;m=0;l=(l>>>0<(((j&1)==0?(j&255)>>>1:k[s>>2]|0)+-1|0)>>>0&1)+l|0}else m=j;x=0;j=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,i[q>>0]|0)|0;B=x;x=0;if(B&1)break;B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=j;q=q+1|0;if(q>>>0>=g>>>0)break d;else j=m+1|0}g=Wa()|0;break a}while(0);j=d+(t-a)|0;l=k[f>>2]|0;if((j|0)!=(l|0)?(h=l+-1|0,j>>>0>>0):0){do{B=i[j>>0]|0;i[j>>0]=i[h>>0]|0;i[h>>0]=B;j=j+1|0;h=h+-1|0}while(j>>>0>>0);j=y}else j=y}else{x=0;Ea(k[(k[y>>2]|0)+32>>2]|0,y|0,t|0,g|0,k[f>>2]|0)|0;B=x;x=0;if(B&1){u=8;break}k[f>>2]=(k[f>>2]|0)+(g-t);j=y}e:do if(g>>>0>>0){while(1){h=i[g>>0]|0;if(h<<24>>24==46)break;x=0;h=Aa(k[(k[j>>2]|0)+28>>2]|0,y|0,h|0)|0;B=x;x=0;if(B&1){u=4;break}B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=h;g=g+1|0;if(g>>>0>=c>>>0)break e}if((u|0)==4){g=Wa()|0;break a}x=0;h=ta(k[(k[v>>2]|0)+12>>2]|0,v|0)|0;B=x;x=0;if(B&1){u=8;break a}B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=h;g=g+1|0}while(0);x=0;Ea(k[(k[y>>2]|0)+32>>2]|0,y|0,g|0,c|0,k[f>>2]|0)|0;B=x;x=0;if(B&1)u=8;else{B=(k[f>>2]|0)+(w-g)|0;k[f>>2]=B;k[e>>2]=(b|0)==(c|0)?B:d+(b-a)|0;Sm(A);r=z;return}}while(0);if((u|0)==8)g=Wa()|0;Sm(A);fb(g|0)}function Np(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+176|0;t=z+76|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+80|0;s=z+72|0;h=z+110|0;y=z+68|0;w=z+64|0;u=z+60|0;v=z+56|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58899,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,p[n>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<1)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}while(0);do if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(2,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(39,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Op(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,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+80|0;j=o;a=o+70|0;m=o+12|0;n=o+32|0;h=o+8|0;l=o+4|0;i[a>>0]=i[58901]|0;i[a+1>>0]=i[58902]|0;i[a+2>>0]=i[58903]|0;i[a+3>>0]=i[58904]|0;i[a+4>>0]=i[58905]|0;i[a+5>>0]=i[58906]|0;f=fp()|0;k[j>>2]=e;a=av(m,20,f,a,j)|0;e=m+a|0;f=Fp(m,e,c)|0;g=tn(c)|0;k[h>>2]=g;x=0;h=Aa(37,h|0,44220)|0;p=x;x=0;if(p&1){p=Wa()|0;zm(g)|0;fb(p|0)}else{zm(g)|0;Zb[k[(k[h>>2]|0)+32>>2]&31](h,m,e,n)|0;p=n+a|0;k[l>>2]=k[b>>2];k[j>>2]=k[l>>2];p=md(j,n,(f|0)==(e|0)?p:n+(f-m)|0,p,c,d)|0;r=o;return p|0}return 0}function Pp(a){a=a|0;return}function Qp(a){a=a|0;mj(a);return}function Rp(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,j=0,l=0;l=r;r=r+32|0;f=l+20|0;g=l+16|0;h=l+12|0;j=l;a:do if(!(k[c+4>>2]&1)){j=k[(k[a>>2]|0)+24>>2]|0;k[g>>2]=k[b>>2];k[f>>2]=k[g>>2];f=Wb[j&31](a,f,c,d,e&1)|0}else{f=tn(c)|0;k[h>>2]=f;x=0;g=Aa(37,h|0,44368)|0;h=x;x=0;b:do if(h&1){l=Wa()|0;zm(f)|0;f=l}else{zm(f)|0;f=k[g>>2]|0;if(e)Mb[k[f+24>>2]&127](j,g);else Mb[k[f+28>>2]&127](j,g);a=i[j>>0]|0;c=(a&1)==0;f=j+4|0;e=j+8|0;h=c?f:j+4|0;f=c?f:k[j+8>>2]|0;c=(a&1)==0;c:do if((f|0)!=((c?h:k[e>>2]|0)+((c?(a&255)>>>1:k[h>>2]|0)<<2)|0)){while(1){g=k[f>>2]|0;d=k[b>>2]|0;if(d){c=d+24|0;a=k[c>>2]|0;if((a|0)==(k[d+28>>2]|0)){x=0;g=Aa(k[(k[d>>2]|0)+52>>2]|0,d|0,g|0)|0;a=x;x=0;if(a&1)break}else{k[c>>2]=a+4;k[a>>2]=g}if((g|0)==-1)k[b>>2]=0}f=f+4|0;a=i[j>>0]|0;c=(a&1)==0;if((f|0)==((c?h:k[e>>2]|0)+((c?(a&255)>>>1:k[h>>2]|0)<<2)|0))break c}f=Wa()|0;en(j);break b}while(0);f=k[b>>2]|0;en(j);break a}while(0);fb(f|0)}while(0);r=l;return f|0}function Sp(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,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+128|0;f=m;o=m+116|0;p=m+104|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,1,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=cv(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Tp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;s=Ss(g,44212)|0;l=Ss(g,44368)|0;Mb[k[(k[l>>2]|0)+20>>2]&127](v,l);p=i[v>>0]|0;q=v+4|0;a:do if(!(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0)){x=0;Ea(k[(k[s>>2]|0)+48>>2]|0,s|0,a|0,c|0,d|0)|0;t=x;x=0;if(t&1)t=5;else{g=d+(c-a<<2)|0;k[f>>2]=g;t=28}}else{k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,g|0)|0;p=x;x=0;if(p&1){t=5;break a}j=k[f>>2]|0;k[f>>2]=j+4;k[j>>2]=g;j=a+1|0;break}default:j=a}b:do if((c-j|0)>1?(i[j>>0]|0)==48:0){g=j+1|0;switch(i[g>>0]|0){case 88:case 120:break;default:{p=j;break b}}x=0;h=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,48)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+4;k[p>>2]=h;x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,i[g>>0]|0)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+4;k[p>>2]=g;p=j+2|0}else p=j;while(0);if((p|0)!=(c|0)?(m=c+-1|0,p>>>0>>0):0){h=p;g=m;do{o=i[h>>0]|0;i[h>>0]=i[g>>0]|0;i[g>>0]=o;h=h+1|0;g=g+-1|0}while(h>>>0>>0)}x=0;l=ta(k[(k[l>>2]|0)+16>>2]|0,l|0)|0;o=x;x=0;if(!(o&1)){m=v+8|0;n=v+1|0;c:do if(p>>>0>>0){g=0;h=0;o=p;while(1){j=i[((i[v>>0]&1)==0?n:k[m>>2]|0)+h>>0]|0;if(j<<24>>24!=0&(g|0)==(j<<24>>24|0)){g=k[f>>2]|0;k[f>>2]=g+4;k[g>>2]=l;g=i[v>>0]|0;j=0;h=(h>>>0<(((g&1)==0?(g&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+h|0}else j=g;x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,i[o>>0]|0)|0;w=x;x=0;if(w&1)break;w=k[f>>2]|0;k[f>>2]=w+4;k[w>>2]=g;o=o+1|0;if(o>>>0>=c>>>0)break c;else g=j+1|0}g=Wa()|0;break a}while(0);j=a;g=d+(p-j<<2)|0;h=k[f>>2]|0;if((g|0)!=(h|0)){a=h+-4|0;if(g>>>0>>0){do{w=k[g>>2]|0;k[g>>2]=k[a>>2];k[a>>2]=w;g=g+4|0;a=a+-4|0}while(g>>>0>>0);a=j;g=h;t=28}else{a=j;g=h;t=28}}else{a=j;t=28}}else t=5}while(0);if((t|0)==5)g=Wa()|0;else if((t|0)==28){k[e>>2]=(b|0)==(c|0)?g:d+(b-a<<2)|0;Sm(v);r=u;return}Sm(v);fb(g|0)}function Up(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,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+224|0;g=m+8|0;a=m;o=m+196|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,1,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,22,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=cv(g,i,p,q,c,d)|0;r=m;return q|0}return 0} -function Et(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 j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;t=r;r=r+16|0;q=t;o=t+8|0;a:do if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(k[j>>2]|0))break a;j=j+4|0;if((j|0)==(d|0)){j=d;break}}}while(0);k[h>>2]=f;k[e>>2]=c;m=g;p=a+8|0;b:do if(!((f|0)==(g|0)|(c|0)==(d|0))){a=f;l=j;c:while(1){v=b;f=k[v+4>>2]|0;j=q;k[j>>2]=k[v>>2];k[j+4>>2]=f;j=Ak(k[p>>2]|0)|0;x=0;f=Ba(21,a|0,e|0,l-c>>2|0,m-a|0,b|0)|0;v=x;x=0;if(v&1){u=9;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=8;break}switch(f|0){case 0:{n=1;break b}case -1:{j=a;u=14;break c}default:{}}j=(k[h>>2]|0)+f|0;k[h>>2]=j;if((j|0)==(g|0)){u=27;break}if((l|0)==(d|0)){c=k[e>>2]|0;a=j;j=d}else{j=Ak(k[p>>2]|0)|0;x=0;c=va(34,o|0,0,b|0)|0;v=x;x=0;if(v&1){u=35;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=34;break}if((c|0)==-1){n=2;break b}if(c>>>0>(m-(k[h>>2]|0)|0)>>>0){n=1;break b}if(c){j=o;while(1){l=i[j>>0]|0;v=k[h>>2]|0;k[h>>2]=v+1;i[v>>0]=l;c=c+-1|0;if(!c)break;else j=j+1|0}}c=(k[e>>2]|0)+4|0;k[e>>2]=c;d:do if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(k[j>>2]|0))break d;j=j+4|0;if((j|0)==(d|0)){j=d;break}}}while(0);a=k[h>>2]|0}if((a|0)==(g|0)|(c|0)==(d|0)){u=47;break b}else l=j}if((u|0)==8){v=Wa(0)|0;oc(v)}else if((u|0)==9){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==14){k[h>>2]=j;e:do if((c|0)!=(k[e>>2]|0)){while(1){v=k[c>>2]|0;a=Ak(k[p>>2]|0)|0;x=0;j=va(34,j|0,v|0,q|0)|0;v=x;x=0;if(v&1){s=a;break}if((a|0)!=0?(x=0,ta(75,a|0)|0,v=x,x=0,v&1):0){u=18;break}if((j|0)==-1)break e;j=(k[h>>2]|0)+j|0;k[h>>2]=j;c=c+4|0;if((c|0)==(k[e>>2]|0))break e}if((u|0)==18){v=Wa(0)|0;oc(v)}c=Wa()|0;if((s|0)!=0?(x=0,ta(75,s|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}while(0);k[e>>2]=c;n=2;break}else if((u|0)==27){c=k[e>>2]|0;u=47;break}else if((u|0)==34){v=Wa(0)|0;oc(v)}else if((u|0)==35){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}else u=47;while(0);if((u|0)==47)n=(c|0)!=(d|0)&1;r=t;return n|0}function Ft(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 j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;t=r;r=r+16|0;s=t;a:do if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(i[j>>0]|0))break a;j=j+1|0;if((j|0)==(d|0)){j=d;break}}}while(0);k[h>>2]=f;k[e>>2]=c;n=g;p=a+8|0;b:do if(!((f|0)==(g|0)|(c|0)==(d|0))){a=f;m=j;c:while(1){l=b;j=k[l+4>>2]|0;f=s;k[f>>2]=k[l>>2];k[f+4>>2]=j;f=m;j=Ak(k[p>>2]|0)|0;x=0;l=Ba(22,a|0,e|0,f-c|0,n-a>>2|0,b|0)|0;v=x;x=0;if(v&1){u=9;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=8;break}switch(l|0){case 0:{o=2;break b}case -1:{j=a;u=14;break c}default:{}}a=(k[h>>2]|0)+(l<<2)|0;k[h>>2]=a;if((a|0)==(g|0)){u=31;break}c=k[e>>2]|0;if((m|0)==(d|0))j=d;else{j=Ak(k[p>>2]|0)|0;x=0;c=Ea(20,a|0,c|0,1,b|0)|0;v=x;x=0;if(v&1){u=38;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=37;break}if(c){o=2;break b}k[h>>2]=(k[h>>2]|0)+4;c=(k[e>>2]|0)+1|0;k[e>>2]=c;d:do if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(i[j>>0]|0))break d;j=j+1|0;if((j|0)==(d|0)){j=d;break}}}while(0);a=k[h>>2]|0}if((a|0)==(g|0)|(c|0)==(d|0)){u=47;break b}else m=j}if((u|0)==8){v=Wa(0)|0;oc(v)}else if((u|0)==9){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==14){k[h>>2]=j;e:do if((c|0)!=(k[e>>2]|0)){a=j;f:while(1){j=Ak(k[p>>2]|0)|0;x=0;a=Ea(20,a|0,c|0,f-c|0,s|0)|0;v=x;x=0;if(v&1){u=19;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=18;break}switch(a|0){case -1:{u=25;break f}case -2:{u=26;break f}case 0:{c=c+1|0;break}default:c=c+a|0}a=(k[h>>2]|0)+4|0;k[h>>2]=a;if((c|0)==(k[e>>2]|0)){q=c;break e}}if((u|0)==18){v=Wa(0)|0;oc(v)}else if((u|0)==19){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==25){k[e>>2]=c;o=2;break b}else if((u|0)==26){k[e>>2]=c;o=1;break b}}else q=c;while(0);k[e>>2]=q;o=(q|0)!=(d|0)&1;break}else if((u|0)==31){c=k[e>>2]|0;u=47;break}else if((u|0)==37){v=Wa(0)|0;oc(v)}else if((u|0)==38){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}else u=47;while(0);if((u|0)==47)o=(c|0)!=(d|0)&1;r=t;return o|0}function Gt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=r;r=r+16|0;f=g;k[e>>2]=c;c=Ak(k[a+8>>2]|0)|0;x=0;a=va(34,f|0,0,b|0)|0;b=x;x=0;if(b&1){f=Wa()|0;if((c|0)!=0?(x=0,ta(75,c|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}fb(f|0)}if((c|0)!=0?(x=0,ta(75,c|0)|0,b=x,x=0,b&1):0){b=Wa(0)|0;oc(b)}switch(a|0){case 0:case -1:{f=2;break}default:{a=a+-1|0;if(a>>>0<=(d-(k[e>>2]|0)|0)>>>0)if(!a)f=0;else while(1){b=i[f>>0]|0;d=k[e>>2]|0;k[e>>2]=d+1;i[d>>0]=b;a=a+-1|0;if(!a){f=0;break}else f=f+1|0}else f=1}}r=g;return f|0}function Ht(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=a+8|0;x=0;c=ta(75,k[b>>2]|0)|0;d=x;x=0;do if(d&1)e=16;else{x=0;d=va(35,0,0,4)|0;a=x;x=0;if(a&1){a=Wa(0)|0;if(!c)break;x=0;ta(75,c|0)|0;g=x;x=0;if(!(g&1))break;g=Wa(0)|0;oc(g)}if((c|0)!=0?(x=0,ta(75,c|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}if(!d){a=k[b>>2]|0;if(a){x=0;a=ta(75,a|0)|0;g=x;x=0;if(g&1){e=16;break}if((a|0)!=0?(x=0,ta(75,a|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}else f=0}else f=1}else f=-1;return f|0}while(0);if((e|0)==16)a=Wa(0)|0;oc(a);return 0}function It(a){a=a|0;return 0}function Jt(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,l=0,m=0,n=0;j=d;i=a+8|0;a:do if((c|0)==(d|0)|(e|0)==0)a=0;else{a=0;h=0;while(1){g=Ak(k[i>>2]|0)|0;x=0;f=va(36,c|0,j-c|0,b|0)|0;n=x;x=0;if(n&1){m=g;break}if((g|0)!=0?(x=0,ta(75,g|0)|0,n=x,x=0,n&1):0){l=5;break}switch(f|0){case -2:case -1:break a;case 0:{c=c+1|0;f=1;break}default:c=c+f|0}a=f+a|0;h=h+1|0;if((c|0)==(d|0)|h>>>0>=e>>>0)break a}if((l|0)==5){n=Wa(0)|0;oc(n)}a=Wa()|0;if((m|0)!=0?(x=0,ta(75,m|0)|0,n=x,x=0,n&1):0){n=Wa(0)|0;oc(n)}fb(a|0)}while(0);return a|0}function Kt(a){a=a|0;var b=0,c=0;a=k[a+8>>2]|0;if(a){x=0;a=ta(75,a|0)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}if((a|0)!=0?(x=0,ta(75,a|0)|0,c=x,x=0,c&1):0){c=Wa(0)|0;oc(c)}else b=4}else b=1;return b|0}function Lt(a){a=a|0;mj(a);return}function Mt(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;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Rv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Nt(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;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Sv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Ot(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function Pt(a){a=a|0;return 0}function Qt(a){a=a|0;return 0}function Rt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Tv(c,d,e,1114111,0)|0}function St(a){a=a|0;return 4}function Tt(a){a=a|0;mj(a);return}function Ut(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;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Uv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Vt(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;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Vv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Wt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function Xt(a){a=a|0;return 0}function Yt(a){a=a|0;return 0}function Zt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Wv(c,d,e,1114111,0)|0}function _t(a){a=a|0;return 4}function $t(a){a=a|0;mj(a);return}function au(a){a=a|0;mj(a);return}function bu(a,b){a=a|0;b=b|0;k[a+4>>2]=b+-1;k[a>>2]=44384;i[a+8>>0]=46;i[a+9>>0]=44;a=a+12|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function cu(a,b){a=a|0;b=b|0;k[a+4>>2]=b+-1;k[a>>2]=44424;k[a+8>>2]=46;k[a+12>>2]=44;a=a+16|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function du(a){a=a|0;k[a>>2]=44384;Sm(a+12|0);return}function eu(a){a=a|0;du(a);mj(a);return}function fu(a){a=a|0;k[a>>2]=44424;Sm(a+16|0);return}function gu(a){a=a|0;fu(a);mj(a);return}function hu(a){a=a|0;return i[a+8>>0]|0}function iu(a){a=a|0;return k[a+8>>2]|0}function ju(a){a=a|0;return i[a+9>>0]|0}function ku(a){a=a|0;return k[a+12>>2]|0}function lu(a,b){a=a|0;b=b|0;Pm(a,b+12|0);return}function mu(a,b){a=a|0;b=b|0;Pm(a,b+16|0);return}function nu(a,b){a=a|0;b=b|0;Qm(a,59024,4);return}function ou(a,b){a=a|0;b=b|0;cn(a,44996,zl(44996)|0);return}function pu(a,b){a=a|0;b=b|0;Qm(a,59029,5);return}function qu(a,b){a=a|0;b=b|0;cn(a,45016,zl(45016)|0);return}function ru(a){a=a|0;switch(k[a+4>>2]&74|0){case 64:{a=8;break}case 8:{a=16;break}case 0:{a=0;break}default:a=10}return a|0}function su(a){a=a|0;do if((i[2464]|0)==0?(Qa(2464)|0)!=0:0){if((i[2472]|0)==0?(Qa(2472)|0)!=0:0){a=45040;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=45208);tb(193,0,w|0)|0;Ya(2472)}x=0;Aa(41,45040,59035)|0;a=x;x=0;if(((((((((((((!(a&1)?(x=0,Aa(41,45052,59042)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45064,59049)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45076,59057)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45088,59067)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45100,59076)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45112,59083)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45124,59092)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45136,59096)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45148,59100)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45160,59104)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45172,59108)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45184,59112)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45196,59116)|0,a=x,x=0,!(a&1)):0){k[11302]=45040;Ya(2464);break}a=Wa()|0;Bb(2464);fb(a|0)}while(0);return k[11302]|0}function tu(a){a=a|0;do if((i[2480]|0)==0?(Qa(2480)|0)!=0:0){if((i[2488]|0)==0?(Qa(2488)|0)!=0:0){a=45212;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=45380);tb(194,0,w|0)|0;Ya(2488)}x=0;Aa(42,45212,45380)|0;a=x;x=0;if(((((((((((((!(a&1)?(x=0,Aa(42,45224,45408)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45236,45436)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45248,45468)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45260,45508)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45272,45544)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45284,45572)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45296,45608)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45308,45624)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45320,45640)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45332,45656)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45344,45672)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45356,45688)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45368,45704)|0,a=x,x=0,!(a&1)):0){k[11430]=45212;Ya(2480);break}a=Wa()|0;Bb(2480);fb(a|0)}while(0);return k[11430]|0}function uu(a){a=a|0;a:do if((i[2496]|0)==0?(Qa(2496)|0)!=0:0){if((i[2504]|0)==0?(Qa(2504)|0)!=0:0){a=45724;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=46012);tb(195,0,w|0)|0;Ya(2504)}x=0;Aa(41,45724,59120)|0;a=x;x=0;do if((((((((((((((!(a&1)?(x=0,Aa(41,45736,59128)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45748,59137)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45760,59143)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45772,59149)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45784,59153)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45796,59158)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45808,59163)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45820,59170)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45832,59180)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45844,59188)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45856,59197)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45868,59206)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45880,59210)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45892,59214)|0,a=x,x=0,!(a&1)):0){x=0;Aa(41,45904,59218)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45916,59149)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45928,59222)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45940,59226)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45952,59230)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45964,59234)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45976,59238)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45988,59242)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,46e3,59246)|0;a=x;x=0;if(a&1)break;k[11503]=45724;Ya(2496);break a}while(0);a=Wa()|0;Bb(2496);fb(a|0)}while(0);return k[11503]|0}function vu(a){a=a|0;a:do if((i[2512]|0)==0?(Qa(2512)|0)!=0:0){if((i[2520]|0)==0?(Qa(2520)|0)!=0:0){a=46016;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=46304);tb(196,0,w|0)|0;Ya(2520)}x=0;Aa(42,46016,46304)|0;a=x;x=0;do if((((((((((((((!(a&1)?(x=0,Aa(42,46028,46336)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46040,46372)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46052,46396)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46064,46420)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46076,46436)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46088,46456)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46100,46476)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46112,46504)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46124,46544)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46136,46576)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46148,46612)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46160,46648)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46172,46664)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46184,46680)|0,a=x,x=0,!(a&1)):0){x=0;Aa(42,46196,46696)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46208,46420)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46220,46712)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46232,46728)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46244,46744)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46256,46760)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46268,46776)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46280,46792)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46292,46808)|0;a=x;x=0;if(a&1)break;k[11706]=46016;Ya(2512);break a}while(0);a=Wa()|0;Bb(2512);fb(a|0)}while(0);return k[11706]|0}function wu(a){a=a|0;do if((i[2528]|0)==0?(Qa(2528)|0)!=0:0){if((i[2536]|0)==0?(Qa(2536)|0)!=0:0){a=46828;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=47116);tb(197,0,w|0)|0;Ya(2536)}x=0;Aa(41,46828,59250)|0;a=x;x=0;if(!(a&1)?(x=0,Aa(41,46840,59253)|0,a=x,x=0,!(a&1)):0){k[11779]=46828;Ya(2528);break}a=Wa()|0;Bb(2528);fb(a|0)}while(0);return k[11779]|0}function xu(a){a=a|0;do if((i[2544]|0)==0?(Qa(2544)|0)!=0:0){if((i[2552]|0)==0?(Qa(2552)|0)!=0:0){a=47120;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=47408);tb(198,0,w|0)|0;Ya(2552)}x=0;Aa(42,47120,47408)|0;a=x;x=0;if(!(a&1)?(x=0,Aa(42,47132,47420)|0,a=x,x=0,!(a&1)):0){k[11858]=47120;Ya(2544);break}a=Wa()|0;Bb(2544);fb(a|0)}while(0);return k[11858]|0}function yu(a){a=a|0;do if((i[2560]|0)==0?(Qa(2560)|0)!=0:0){x=0;Fa(5,47436,59256,8);a=x;x=0;if(a&1){a=Wa()|0;Bb(2560);fb(a|0)}else{tb(199,47436,w|0)|0;Ya(2560);break}}while(0);return 47436}function zu(a){a=a|0;var b=0;do if((i[2568]|0)==0?(Qa(2568)|0)!=0:0){x=0;a=ta(76,47448)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47484,47448,a|0),b=x,x=0,!(b&1)):0){tb(200,47484,w|0)|0;Ya(2568);break}b=Wa()|0;Bb(2568);fb(b|0)}while(0);return 47484}function Au(a){a=a|0;do if((i[2576]|0)==0?(Qa(2576)|0)!=0:0){x=0;Fa(5,47496,59265,8);a=x;x=0;if(a&1){a=Wa()|0;Bb(2576);fb(a|0)}else{tb(199,47496,w|0)|0;Ya(2576);break}}while(0);return 47496}function Bu(a){a=a|0;var b=0;do if((i[2584]|0)==0?(Qa(2584)|0)!=0:0){x=0;a=ta(76,47508)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47544,47508,a|0),b=x,x=0,!(b&1)):0){tb(200,47544,w|0)|0;Ya(2584);break}b=Wa()|0;Bb(2584);fb(b|0)}while(0);return 47544}function Cu(a){a=a|0;do if((i[2592]|0)==0?(Qa(2592)|0)!=0:0){x=0;Fa(5,47556,59274,20);a=x;x=0;if(a&1){a=Wa()|0;Bb(2592);fb(a|0)}else{tb(199,47556,w|0)|0;Ya(2592);break}}while(0);return 47556}function Du(a){a=a|0;var b=0;do if((i[2600]|0)==0?(Qa(2600)|0)!=0:0){x=0;a=ta(76,47568)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47652,47568,a|0),b=x,x=0,!(b&1)):0){tb(200,47652,w|0)|0;Ya(2600);break}b=Wa()|0;Bb(2600);fb(b|0)}while(0);return 47652}function Eu(a){a=a|0;do if((i[2608]|0)==0?(Qa(2608)|0)!=0:0){x=0;Fa(5,47664,59295,11);a=x;x=0;if(a&1){a=Wa()|0;Bb(2608);fb(a|0)}else{tb(199,47664,w|0)|0;Ya(2608);break}}while(0);return 47664}function Fu(a){a=a|0;var b=0;do if((i[2616]|0)==0?(Qa(2616)|0)!=0:0){x=0;a=ta(76,47676)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47724,47676,a|0),b=x,x=0,!(b&1)):0){tb(200,47724,w|0)|0;Ya(2616);break}b=Wa()|0;Bb(2616);fb(b|0)}while(0);return 47724}function Gu(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=44304;a=a+8|0;b=k[a>>2]|0;x=0;c=Da(3)|0;d=x;x=0;do if(!(d&1)){if((b|0)!=(c|0)?(x=0,qa(188,k[a>>2]|0),d=x,x=0,d&1):0)break;return}while(0);d=Wa(0)|0;oc(d)}function Hu(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+112|0;j=z;n=(d-c|0)/12|0;do if(n>>>0>100){j=Pl(n)|0;if((j|0)==0?(x=0,Ga(6),y=x,x=0,y&1):0){h=0;q=6;break}h=j;q=11}else{h=0;q=11}while(0);a:do if((q|0)==11){if((c|0)==(d|0))m=0;else{q=c;o=0;p=j;while(1){m=i[q>>0]|0;if(!(m&1))m=(m&255)>>>1;else m=k[q+4>>2]|0;if(!m){i[p>>0]=2;m=o+1|0;n=n+-1|0}else{i[p>>0]=1;m=o}q=q+12|0;if((q|0)==(d|0))break;else{o=m;p=p+1|0}}}w=(c|0)==(d|0);y=(c|0)==(d|0);v=0;s=m;b:while(1){m=k[a>>2]|0;do if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;u=x;x=0;if(u&1){q=5;break b}if((m|0)==-1){k[a>>2]=0;m=0;break}else{m=k[a>>2]|0;break}}}else m=0;while(0);q=(m|0)==0;o=k[b>>2]|0;if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;m=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;u=x;x=0;if(u&1){q=5;break}if((m|0)==-1){k[b>>2]=0;o=0}}}else o=0;p=(o|0)==0;m=k[a>>2]|0;if(!((n|0)!=0&(q^p))){q=64;break}o=k[m+12>>2]|0;if((o|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;u=x;x=0;if(u&1){q=5;break}}else m=l[o>>0]|0;m=m&255;if(!g){x=0;m=Aa(k[(k[e>>2]|0)+12>>2]|0,e|0,m|0)|0;u=x;x=0;if(u&1){q=5;break}}u=v+1|0;if(w){m=0;q=s}else{p=0;t=c;q=s;s=j;while(1){do if((i[s>>0]|0)==1){if(!(i[t>>0]&1))o=t+1|0;else o=k[t+8>>2]|0;o=i[o+v>>0]|0;if(!g){x=0;o=Aa(k[(k[e>>2]|0)+12>>2]|0,e|0,o|0)|0;A=x;x=0;if(A&1){q=4;break b}}if(m<<24>>24!=o<<24>>24){i[s>>0]=0;o=p;n=n+-1|0;break}o=i[t>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[t+4>>2]|0;if((o|0)==(u|0)){i[s>>0]=2;o=1;q=q+1|0;n=n+-1|0}else o=1}else o=p;while(0);t=t+12|0;if((t|0)==(d|0)){m=o;break}else{p=o;s=s+1|0}}}if(!m){v=u;s=q;continue}m=k[a>>2]|0;o=m+12|0;p=k[o>>2]|0;if((p|0)==(k[m+16>>2]|0)){x=0;ta(k[(k[m>>2]|0)+40>>2]|0,m|0)|0;A=x;x=0;if(A&1){q=5;break}}else k[o>>2]=p+1;if((q+n|0)>>>0<2|y){v=u;s=q;continue}else{m=c;p=q;q=j}while(1){if((i[q>>0]|0)==2){o=i[m>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[m+4>>2]|0;if((o|0)!=(u|0)){i[q>>0]=0;p=p+-1|0}}m=m+12|0;if((m|0)==(d|0)){v=u;s=p;continue b}else q=q+1|0}}if((q|0)==4){c=Wa()|0;break}else if((q|0)==5){c=Wa()|0;break}else if((q|0)==64){do if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;A=x;x=0;if(A&1){q=6;break a}if((m|0)==-1){k[a>>2]=0;m=0;break}else{m=k[a>>2]|0;break}}}else m=0;while(0);n=(m|0)==0;do if(!p){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;m=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;A=x;x=0;if(A&1){q=6;break a}if((m|0)==-1){k[b>>2]=0;q=76;break}}if(!n)q=77}else q=76;while(0);if((q|0)==76?n:0)q=77;if((q|0)==77)k[f>>2]=k[f>>2]|2;c:do if((c|0)==(d|0))q=81;else while(1){if((i[j>>0]|0)==2)break c;c=c+12|0;if((c|0)==(d|0)){q=81;break}else j=j+1|0}while(0);if((q|0)==81){k[f>>2]=k[f>>2]|4;c=d}if(h)Ql(h);r=z;return c|0}}while(0);if((q|0)==6)c=Wa()|0;if(h)Ql(h);fb(c|0);return 0}function Iu(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(21,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ju(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;g=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(g)break;else break b;x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(g)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(g){h=0;break}else h=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+g}j=a+12|0;g=k[j>>2]|0;m=a+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else g=l[g>>0]|0;if(ep(g&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(22,d|0,k[u>>2]|0,e|0,t|0)|0;g=M;E=x;x=0;if(!(E&1)){E=f;k[E>>2]=d;k[E+4>>2]=g;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ku(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,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=r;r=r+240|0;t=B+202|0;g=B+200|0;D=B+24|0;C=B+12|0;v=B+8|0;z=B+40|0;A=B+4|0;w=B;u=ru(d)|0;up(D,d,t,g);k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);s=x;x=0;a:do if(!(s&1)){p=C+8|0;q=C+1|0;d=(i[C>>0]&1)==0?q:k[p>>2]|0;k[v>>2]=d;k[A>>2]=z;k[w>>2]=0;s=C+4|0;o=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){E=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;m=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;n=x;x=0;if(n&1){E=24;break b}if((m|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;E=16;break}}else E=16;while(0);if((E|0)==16){E=0;if(h){g=0;break}else g=0}h=i[C>>0]|0;h=(h&1)==0?(h&255)>>>1:k[s>>2]|0;if((k[v>>2]|0)==(d+h|0)){x=0;Fa(8,C|0,h<<1|0,0);n=x;x=0;if(n&1){E=24;break}if(!(i[C>>0]&1))d=10;else d=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,d|0,0);n=x;x=0;if(n&1){E=24;break}d=(i[C>>0]&1)==0?q:k[p>>2]|0;k[v>>2]=d+h}m=a+12|0;h=k[m>>2]|0;n=a+16|0;if((h|0)==(k[n>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=24;break}}else h=l[h>>0]|0;if(ep(h&255,u,d,v,w,o,D,z,A,t)|0)break;g=k[m>>2]|0;if((g|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=24;break}else continue}else{k[m>>2]=g+1;continue}}if((E|0)==24){a=Wa()|0;break}F=i[D>>0]|0;if((((F&1)==0?(F&255)>>>1:k[D+4>>2]|0)|0)!=0?(y=k[A>>2]|0,(y-z|0)<160):0){F=k[w>>2]|0;k[A>>2]=y+4;k[y>>2]=F}x=0;d=Ea(23,d|0,k[v>>2]|0,e|0,u|0)|0;F=x;x=0;if(!(F&1)){j[f>>1]=d;cs(D,z,k[A>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;F=x;x=0;if(F&1){E=25;break a}if((a|0)==-1){k[c>>2]=0;E=49;break}}if(!d)E=50}else E=49;while(0);if((E|0)==49?d:0)E=50;if((E|0)==50)k[e>>2]=k[e>>2]|2;F=k[b>>2]|0;Sm(C);Sm(D);r=B;return F|0}else E=25}else E=25;while(0);if((E|0)==25)a=Wa()|0;Sm(C);Sm(D);fb(a|0);return 0}function Lu(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(24,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Mu(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(25,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Nu(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,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;g=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(g)break;else break b;x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(g)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(g){h=0;break}else h=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+g}j=a+12|0;g=k[j>>2]|0;m=a+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else g=l[g>>0]|0;if(ep(g&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(26,d|0,k[u>>2]|0,e|0,t|0)|0;g=M;E=x;x=0;if(!(E&1)){E=f;k[E>>2]=d;k[E+4>>2]=g;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ou(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.0,h=0,j=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;p=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16;while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,p,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(1,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){o[f>>2]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49;while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25;while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Pu(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.0,h=0,j=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;o=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16;while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,o,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(2,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){p[f>>3]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49;while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25;while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Qu(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.0,h=0,j=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;o=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16;while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,o,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(3,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){p[f>>3]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49;while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25;while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Ru(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=Ak(b)|0;b=pl(a,c,f)|0;if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}r=e;return b|0}function Su(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;y=r;r=r+112|0;j=y;m=(d-c|0)/12|0;do if(m>>>0>100){j=Pl(m)|0;if((j|0)==0?(x=0,Ga(6),w=x,x=0,w&1):0){h=0;o=6;break}h=j;o=11}else{h=0;o=11}while(0);a:do if((o|0)==11){if((c|0)==(d|0))l=0;else{p=c;n=0;o=j;while(1){l=i[p>>0]|0;if(!(l&1))l=(l&255)>>>1;else l=k[p+4>>2]|0;if(!l){i[o>>0]=2;l=n+1|0;m=m+-1|0}else{i[o>>0]=1;l=n}p=p+12|0;if((p|0)==(d|0))break;else{n=l;o=o+1|0}}}v=(c|0)==(d|0);w=(c|0)==(d|0);u=0;q=m;b:while(1){m=k[a>>2]|0;do if(m){n=k[m+12>>2]|0;if((n|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;t=x;x=0;if(t&1){o=5;break b}}else m=k[n>>2]|0;if((m|0)==-1){k[a>>2]=0;p=1;break}else{p=(k[a>>2]|0)==0;break}}else p=1;while(0);n=k[b>>2]|0;if(n){m=k[n+12>>2]|0;if((m|0)==(k[n+16>>2]|0)){x=0;m=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;t=x;x=0;if(t&1){o=5;break}}else m=k[m>>2]|0;if((m|0)==-1){k[b>>2]=0;n=0;o=1}else o=0}else{n=0;o=1}m=k[a>>2]|0;if(!((q|0)!=0&(p^o))){o=66;break}n=k[m+12>>2]|0;if((n|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;t=x;x=0;if(t&1){o=5;break}}else m=k[n>>2]|0;if(!g){x=0;m=Aa(k[(k[e>>2]|0)+28>>2]|0,e|0,m|0)|0;t=x;x=0;if(t&1){o=5;break}}t=u+1|0;if(v){m=0;p=q}else{p=0;s=c;o=q;q=j;while(1){do if((i[q>>0]|0)==1){if(!(i[s>>0]&1))n=s+4|0;else n=k[s+8>>2]|0;n=k[n+(u<<2)>>2]|0;if(!g){x=0;n=Aa(k[(k[e>>2]|0)+28>>2]|0,e|0,n|0)|0;z=x;x=0;if(z&1){o=4;break b}}if((m|0)!=(n|0)){i[q>>0]=0;n=p;o=o+-1|0;break}n=i[s>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[s+4>>2]|0;if((n|0)==(t|0)){i[q>>0]=2;n=1;l=l+1|0;o=o+-1|0}else n=1}else n=p;while(0);s=s+12|0;if((s|0)==(d|0)){m=n;p=o;break}else{p=n;q=q+1|0}}}if(!m){u=t;q=p;continue}m=k[a>>2]|0;n=m+12|0;o=k[n>>2]|0;if((o|0)==(k[m+16>>2]|0)){x=0;ta(k[(k[m>>2]|0)+40>>2]|0,m|0)|0;z=x;x=0;if(z&1){o=5;break}}else k[n>>2]=o+4;if((l+p|0)>>>0<2|w){u=t;q=p;continue}else{m=c;o=j}while(1){if((i[o>>0]|0)==2){n=i[m>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[m+4>>2]|0;if((n|0)!=(t|0)){i[o>>0]=0;l=l+-1|0}}m=m+12|0;if((m|0)==(d|0)){u=t;q=p;continue b}else o=o+1|0}}if((o|0)==4){c=Wa()|0;break}else if((o|0)==5){c=Wa()|0;break}else if((o|0)==66){do if(m){l=k[m+12>>2]|0;if((l|0)==(k[m+16>>2]|0)){x=0;l=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;z=x;x=0;if(z&1){o=6;break a}}else l=k[l>>2]|0;if((l|0)==-1){k[a>>2]=0;m=1;break}else{m=(k[a>>2]|0)==0;break}}else m=1;while(0);do if(n){l=k[n+12>>2]|0;if((l|0)==(k[n+16>>2]|0)){x=0;l=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;z=x;x=0;if(z&1){o=6;break a}}else l=k[l>>2]|0;if((l|0)!=-1)if(m)break;else{o=81;break}else{k[b>>2]=0;o=79;break}}else o=79;while(0);if((o|0)==79?m:0)o=81;if((o|0)==81)k[f>>2]=k[f>>2]|2;c:do if((c|0)==(d|0))o=85;else while(1){if((i[j>>0]|0)==2)break c;c=c+12|0;if((c|0)==(d|0)){o=85;break}else j=j+1|0}while(0);if((o|0)==85){k[f>>2]=k[f>>2]|4;c=d}if(h)Ql(h);r=y;return c|0}}while(0);if((o|0)==6)c=Wa()|0;if(h)Ql(h);fb(c|0);return 0}function Tu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(21,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Uu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;g=0;j=1}else j=0}else{g=0;j=1}h=k[c>>2]|0;do if(h){d=k[h+12>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;d=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;l=x;x=0;if(l&1){C=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(j){h=0;break}else h=0}d=i[A>>0]|0;d=(d&1)==0?(d&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+d|0)){x=0;Fa(8,A|0,d<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+d}j=g+12|0;d=k[j>>2]|0;l=g+16|0;if((d|0)==(k[l>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}}else d=k[d>>2]|0;if(tp(d,s,a,t,u,m,B,w,y,q)|0)break;d=k[j>>2]|0;if((d|0)==(k[l>>2]|0)){x=0;ta(k[(k[g>>2]|0)+40>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}else continue}else{k[j>>2]=d+4;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(22,a|0,k[t>>2]|0,e|0,s|0)|0;d=M;D=x;x=0;if(!(D&1)){D=f;k[D>>2]=a;k[D+4>>2]=d;cs(B,w,k[y>>2]|0,e);if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Vu(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,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+320|0;s=A+208|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;xp(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;a=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=a;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}l=k[c>>2]|0;do if(l){g=k[l+12>>2]|0;if((g|0)==(k[l+16>>2]|0)){x=0;g=ta(k[(k[l>>2]|0)+36>>2]|0,l|0)|0;m=x;x=0;if(m&1){D=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=l;break b}else{k[c>>2]=0;D=17;break}}else D=17;while(0);if((D|0)==17){D=0;if(h){g=0;break}else l=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(a+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=25;break}if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);m=x;x=0;if(m&1){D=25;break}a=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=a+g}h=d+12|0;g=k[h>>2]|0;m=d+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=25;break}}else g=k[g>>2]|0;if(tp(g,t,a,u,v,n,C,y,z,s)|0){g=l;break}g=k[h>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((D|0)==25){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;a=Ea(23,a|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){j[f>>1]=a;cs(C,y,k[z>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{D=53;break}else{k[c>>2]=0;D=51;break}}else D=51;while(0);if((D|0)==51?d:0)D=53;if((D|0)==53)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=26}else D=26;while(0);if((D|0)==26)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Wu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(24,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Xu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(25,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Yu(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;g=0;j=1}else j=0}else{g=0;j=1}h=k[c>>2]|0;do if(h){d=k[h+12>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;d=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;l=x;x=0;if(l&1){C=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(j){h=0;break}else h=0}d=i[A>>0]|0;d=(d&1)==0?(d&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+d|0)){x=0;Fa(8,A|0,d<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+d}j=g+12|0;d=k[j>>2]|0;l=g+16|0;if((d|0)==(k[l>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}}else d=k[d>>2]|0;if(tp(d,s,a,t,u,m,B,w,y,q)|0)break;d=k[j>>2]|0;if((d|0)==(k[l>>2]|0)){x=0;ta(k[(k[g>>2]|0)+40>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}else continue}else{k[j>>2]=d+4;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(26,a|0,k[t>>2]|0,e|0,s|0)|0;d=M;D=x;x=0;if(!(D&1)){D=f;k[D>>2]=a;k[D+4>>2]=d;cs(B,w,k[y>>2]|0,e);if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Zu(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.0,h=0,j=0,l=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;p=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17;while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,p,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(1,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){o[f>>2]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51;while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26;while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function _u(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.0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;o=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17;while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,o,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(2,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){p[f>>3]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51;while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26;while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function $u(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.0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;o=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17;while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,o,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(3,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){p[f>>3]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51;while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26;while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function av(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;f=r;r=r+16|0;g=f;k[g>>2]=e;e=Ak(c)|0;c=ol(a,b,d,g)|0;if((e|0)!=0?(x=0,ta(75,e|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}r=f;return c|0}function bv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=Ak(b)|0;x=0;b=va(37,a|0,c|0,f|0)|0;a=x;x=0;if(a&1){b=Wa()|0;if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}fb(b|0)}else{if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}r=e;return b|0}return 0}function cv(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,j=0,l=0,m=0,n=0,o=0;n=r;r=r+16|0;m=n;g=k[a>>2]|0;a:do if(!g)g=0;else{o=b;j=d-o>>2;l=e+12|0;h=k[l>>2]|0;j=(h|0)>(j|0)?h-j|0:0;h=c;o=h-o|0;e=o>>2;if((o|0)>0?(Qb[k[(k[g>>2]|0)+48>>2]&63](g,b,e)|0)!=(e|0):0){k[a>>2]=0;g=0;break}do if((j|0)>0){dn(m,j,f);x=0;e=va(k[(k[g>>2]|0)+48>>2]|0,g|0,((i[m>>0]&1)==0?m+4|0:k[m+8>>2]|0)|0,j|0)|0;o=x;x=0;if(o&1){o=Wa()|0;en(m);fb(o|0)}if((e|0)==(j|0)){en(m);break}else{k[a>>2]=0;en(m);g=0;break a}}while(0);o=d-h|0;d=o>>2;if((o|0)>0?(Qb[k[(k[g>>2]|0)+48>>2]&63](g,c,d)|0)!=(d|0):0){k[a>>2]=0;g=0;break}k[l>>2]=0}while(0);r=n;return g|0}function dv(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,m=0,n=0,o=0,p=0,q=0,r=0;f=k[a>>2]|0;do if(f){if((k[f+12>>2]|0)==(k[f+16>>2]|0))if((Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0)==-1){k[a>>2]=0;f=0;break}else{f=k[a>>2]|0;break}}else f=0;while(0);g=(f|0)==0;f=k[b>>2]|0;do if(f){if((k[f+12>>2]|0)==(k[f+16>>2]|0)?(Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0)==-1:0){k[b>>2]=0;r=11;break}if(g)r=13;else r=12}else r=11;while(0);if((r|0)==11)if(g)r=12;else{f=0;r=13}a:do if((r|0)==12){k[c>>2]=k[c>>2]|6;f=0}else if((r|0)==13){g=k[a>>2]|0;h=k[g+12>>2]|0;if((h|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=l[h>>0]|0;h=g&255;if(h<<24>>24>-1?(q=d+8|0,(j[(k[q>>2]|0)+(g<<24>>24<<1)>>1]&2048)!=0):0){m=(Qb[k[(k[d>>2]|0)+36>>2]&63](d,h,0)|0)<<24>>24;g=k[a>>2]|0;h=g+12|0;i=k[h>>2]|0;if((i|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;o=e;n=f;e=f;f=m}else{k[h>>2]=i+1;o=e;n=f;e=f;f=m}while(1){f=f+-48|0;p=o+-1|0;g=k[a>>2]|0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0))if((Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1){k[a>>2]=0;g=0;break}else{g=k[a>>2]|0;break}}else g=0;while(0);i=(g|0)==0;if(e)if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;h=0;e=0}else{h=n;e=n}else h=n;else{h=n;e=0}g=k[a>>2]|0;if(!((o|0)>1&(i^(e|0)==0)))break;i=k[g+12>>2]|0;if((i|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=l[i>>0]|0;i=g&255;if(i<<24>>24<=-1)break a;if(!(j[(k[q>>2]|0)+(g<<24>>24<<1)>>1]&2048))break a;f=((Qb[k[(k[d>>2]|0)+36>>2]&63](d,i,0)|0)<<24>>24)+(f*10|0)|0;g=k[a>>2]|0;i=g+12|0;m=k[i>>2]|0;if((m|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;o=p;n=h;continue}else{k[i>>2]=m+1;o=p;n=h;continue}}do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0))if((Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1){k[a>>2]=0;g=0;break}else{g=k[a>>2]|0;break}}else g=0;while(0);g=(g|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)?(Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0)==-1:0){k[b>>2]=0;r=50;break}if(g)break a}else r=50;while(0);if((r|0)==50?!g:0)break;k[c>>2]=k[c>>2]|2;break}k[c>>2]=k[c>>2]|4;f=0}while(0);return f|0}function ev(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,l=0,m=0,n=0,o=0;f=k[a>>2]|0;do if(f){g=k[f+12>>2]|0;if((g|0)==(k[f+16>>2]|0))f=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else f=k[g>>2]|0;if((f|0)==-1){k[a>>2]=0;h=1;break}else{h=(k[a>>2]|0)==0;break}}else h=1;while(0);g=k[b>>2]|0;do if(g){f=k[g+12>>2]|0;if((f|0)==(k[g+16>>2]|0))f=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else f=k[f>>2]|0;if((f|0)!=-1)if(h){o=17;break}else{o=16;break}else{k[b>>2]=0;o=14;break}}else o=14;while(0);if((o|0)==14)if(h)o=16;else{g=0;o=17}a:do if((o|0)==16){k[c>>2]=k[c>>2]|6;f=0}else if((o|0)==17){f=k[a>>2]|0;h=k[f+12>>2]|0;if((h|0)==(k[f+16>>2]|0))f=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else f=k[h>>2]|0;if(!(Qb[k[(k[d>>2]|0)+12>>2]&63](d,2048,f)|0)){k[c>>2]=k[c>>2]|4;f=0;break}f=(Qb[k[(k[d>>2]|0)+52>>2]&63](d,f,0)|0)<<24>>24;h=k[a>>2]|0;i=h+12|0;j=k[i>>2]|0;if((j|0)==(k[h+16>>2]|0)){Ob[k[(k[h>>2]|0)+40>>2]&127](h)|0;m=e;l=g;i=g}else{k[i>>2]=j+4;m=e;l=g;i=g}while(1){f=f+-48|0;n=m+-1|0;g=k[a>>2]|0;do if(g){h=k[g+12>>2]|0;if((h|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=k[h>>2]|0;if((g|0)==-1){k[a>>2]=0;j=1;break}else{j=(k[a>>2]|0)==0;break}}else j=1;while(0);do if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)==-1){k[b>>2]=0;i=0;e=0;g=1;break}else{i=l;e=l;g=(l|0)==0;break}}else{i=l;e=0;g=1}while(0);h=k[a>>2]|0;if(!((m|0)>1&(j^g)))break;g=k[h+12>>2]|0;if((g|0)==(k[h+16>>2]|0))g=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else g=k[g>>2]|0;if(!(Qb[k[(k[d>>2]|0)+12>>2]&63](d,2048,g)|0))break a;f=((Qb[k[(k[d>>2]|0)+52>>2]&63](d,g,0)|0)<<24>>24)+(f*10|0)|0;g=k[a>>2]|0;h=g+12|0;j=k[h>>2]|0;if((j|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;m=n;l=i;i=e;continue}else{k[h>>2]=j+4;m=n;l=i;i=e;continue}}do if(h){g=k[h+12>>2]|0;if((g|0)==(k[h+16>>2]|0))g=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else g=k[g>>2]|0;if((g|0)==-1){k[a>>2]=0;h=1;break}else{h=(k[a>>2]|0)==0;break}}else h=1;while(0);do if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)!=-1)if(h)break a;else break;else{k[b>>2]=0;o=60;break}}else o=60;while(0);if((o|0)==60?!h:0)break;k[c>>2]=k[c>>2]|2}while(0);return f|0}function fv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g|0;h=Sl(d?h:0,e)|0;if(!h)ak();do if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}while(0);k[f>>2]=201;k[b>>2]=i+g;k[c>>2]=(k[a>>2]|0)+e;return}function gv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g>>2;h=Sl(d?h:0,e)|0;if(!h)ak();do if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}while(0);k[f>>2]=201;k[b>>2]=i+(g<<2);k[c>>2]=(k[a>>2]|0)+(e>>>2<<2);return}function hv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=b;d=i[a>>0]|0;if(!(d&1)){e=10;j=(d&255)>>>1}else{d=k[a>>2]|0;e=(d&-2)+-1|0;j=k[a+4>>2]|0;d=d&255}h=c-f|0;do if((c|0)!=(b|0)){if((e-j|0)>>>0>>0){bn(a,e,j+h-e|0,j,j,0,0);d=i[a>>0]|0}if(!(d&1))g=a+1|0;else g=k[a+8>>2]|0;f=c+(j-f)|0;if((b|0)!=(c|0)){d=b;e=g+j|0;while(1){i[e>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(c|0))break;else e=e+1|0}}i[g+f>>0]=0;d=j+h|0;if(!(i[a>>0]&1)){i[a>>0]=d<<1;break}else{k[a+4>>2]=d;break}}while(0);return a|0}function iv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g>>2;h=Sl(d?h:0,e)|0;if(!h)ak();do if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}while(0);k[f>>2]=201;k[b>>2]=i+(g<<2);k[c>>2]=(k[a>>2]|0)+(e>>>2<<2);return}function jv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=b;d=i[a>>0]|0;if(!(d&1)){e=1;j=(d&255)>>>1}else{d=k[a>>2]|0;e=(d&-2)+-1|0;j=k[a+4>>2]|0;d=d&255}h=c-f>>2;do if(h){if((e-j|0)>>>0>>0){ln(a,e,j+h-e|0,j,j,0,0);d=i[a>>0]|0}if(!(d&1))g=a+4|0;else g=k[a+8>>2]|0;f=j+((c-f|0)>>>2)|0;if((b|0)!=(c|0)){d=b;e=g+(j<<2)|0;while(1){k[e>>2]=k[d>>2];d=d+4|0;if((d|0)==(c|0))break;else e=e+4|0}}k[g+(f<<2)>>2]=0;d=j+h|0;if(!(i[a>>0]&1)){i[a>>0]=d<<1;break}else{k[a+4>>2]=d;break}}while(0);return a|0}function kv(a,b){a=a|0;b=b|0;var c=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;i[a+128>>0]=0;do if(b){x=0;ra(125,a|0,b|0);c=x;x=0;if(c&1){c=Wa()|0;Nv(a);fb(c|0)}else{cw(a,b);break}}while(0);return}function lv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43148)|0);return}function mv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43188)|0);return}function nv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44220)|0);return}function ov(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44212)|0);return}function pv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44280)|0);return}function qv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44288)|0);return}function rv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44344)|0);return}function sv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44352)|0);return}function tv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44360)|0);return}function uv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44368)|0);return}function vv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43260)|0);return}function wv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43332)|0);return}function xv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43392)|0);return}function yv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43452)|0);return}function zv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43764)|0);return}function Av(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43828)|0);return}function Bv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43892)|0);return}function Cv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43956)|0);return}function Dv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43992)|0);return}function Ev(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44028)|0);return}function Fv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44064)|0);return}function Gv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44100)|0);return}function Hv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43544)|0);return}function Iv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43636)|0);return}function Jv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43668)|0);return}function Kv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43700)|0);return}function Lv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44140)|0);return}function Mv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44180)|0);return}function Nv(a){a=a|0;var b=0,c=0,d=0;c=k[a>>2]|0;do if(c){d=a+4|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do b=b+-4|0;while((b|0)!=(c|0));k[d>>2]=b}if((a+16|0)==(c|0)){i[a+128>>0]=0;break}else{mj(c);break}}while(0);return}function Ov(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;g=a+4|0;c=k[g>>2]|0;d=k[a>>2]|0;e=c-d>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0?(f=d+(b<<2)|0,(c|0)!=(f|0)):0){do c=c+-4|0;while((c|0)!=(f|0));k[g>>2]=c}}else bw(a,b-e|0);return}function Pv(a,b){a=a|0;b=b|0;var c=0;c=k[a+8>>2]|0;if((k[a+12>>2]|0)-c>>2>>>0>b>>>0)c=(k[c+(b<<2)>>2]|0)!=0;else c=0;return c|0}function Qv(a){a=a|0;var b=0,c=0;c=a+4|0;b=k[c>>2]|0;c=k[c+4>>2]|0;a=(k[a>>2]|0)+(c>>1)|0;if(c&1)b=k[(k[a>>2]|0)+b>>2]|0;Lb[b&255](a);return}function Rv(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 l=0,n=0;k[c>>2]=a;k[f>>2]=d;if(h&2)if((e-d|0)<3)a=1;else{k[f>>2]=d+1;i[d>>0]=-17;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=-69;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=-65;l=4}else l=4;a:do if((l|0)==4){n=b;a=k[c>>2]|0;if(a>>>0>>0)while(1){h=j[a>>1]|0;l=h&65535;if(l>>>0>g>>>0){a=2;break a}do if((h&65535)<128){a=k[f>>2]|0;if((e-a|0)<1){a=1;break a}k[f>>2]=a+1;i[a>>0]=h}else{if((h&65535)<2048){a=k[f>>2]|0;if((e-a|0)<2){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>6|192;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((h&65535)<55296){a=k[f>>2]|0;if((e-a|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>12|224;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>6&63|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((h&65535)>=56320){if((h&65535)<57344){a=2;break a}a=k[f>>2]|0;if((e-a|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>12|224;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>6&63|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((n-a|0)<4){a=1;break a}a=a+2|0;h=m[a>>1]|0;if((h&64512|0)!=56320){a=2;break a}if((e-(k[f>>2]|0)|0)<4){a=1;break a}d=l&960;if(((d<<10)+65536|l<<10&64512|h&1023)>>>0>g>>>0){a=2;break a}k[c>>2]=a;a=(d>>>6)+1|0;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=a>>>2|240;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>2&15|a<<4&48|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l<<4&48|h>>>6&15|128;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=h&63|128}while(0);a=(k[c>>2]|0)+2|0;k[c>>2]=a;if(a>>>0>=b>>>0){a=0;break}}else a=0}while(0);return a|0}function Sv(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 m=0,n=0,o=0,p=0,q=0,r=0;k[c>>2]=a;k[f>>2]=d;if(h&4){a=k[c>>2]|0;h=b;if((((h-a|0)>2?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)?(i[a+2>>0]|0)==-65:0){k[c>>2]=a+3;m=k[f>>2]|0}else m=d}else{m=d;h=b}q=e;d=k[c>>2]|0;a=d>>>0>>0;a:do if(a&m>>>0>>0)while(1){a=i[d>>0]|0;o=a&255;if(o>>>0>g>>>0){a=2;break a}do if(a<<24>>24>-1){j[m>>1]=a&255;k[c>>2]=d+1}else{if((a&255)<194){a=2;break a}if((a&255)<224){if((h-d|0)<2){a=1;break a}a=l[d+1>>0]|0;if((a&192|0)!=128){a=2;break a}a=a&63|o<<6&1984;if(a>>>0>g>>>0){a=2;break a}j[m>>1]=a;k[c>>2]=d+2;break}if((a&255)<240){if((h-d|0)<3){a=1;break a}n=i[d+1>>0]|0;a=i[d+2>>0]|0;switch(o|0){case 224:{if((n&-32)<<24>>24!=-96){a=2;break a}break}case 237:{if((n&-32)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}a=a&255;if((a&192|0)!=128){a=2;break a}a=(n&255)<<6&4032|o<<12|a&63;if((a&65535)>>>0>g>>>0){a=2;break a}j[m>>1]=a;k[c>>2]=d+3;break}if((a&255)>=245){a=2;break a}if((h-d|0)<4){a=1;break a}n=i[d+1>>0]|0;a=i[d+2>>0]|0;d=i[d+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){a=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}p=a&255;if((p&192|0)!=128){a=2;break a}a=d&255;if((a&192|0)!=128){a=2;break a}if((q-m|0)<4){a=1;break a}o=o&7;d=n&255;n=p<<6;a=a&63;if((d<<12&258048|o<<18|n&4032|a)>>>0>g>>>0){a=2;break a}j[m>>1]=d<<2&60|p>>>4&3|((d>>>4&3|o<<2)<<6)+16320|55296;p=m+2|0;k[f>>2]=p;j[p>>1]=a|n&960|56320;k[c>>2]=(k[c>>2]|0)+4}while(0);m=(k[f>>2]|0)+2|0;k[f>>2]=m;d=k[c>>2]|0;a=d>>>0>>0;if(!(a&m>>>0>>0)){r=39;break}}else r=39;while(0);if((r|0)==39)a=a&1;return a|0}function Tv(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,j=0,k=0,m=0,n=0;n=b;if((((e&4|0)!=0?(n-a|0)>2:0)?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)e=(i[a+2>>0]|0)==-65?a+3|0:a;else e=a;a:do if((c|0)!=0&e>>>0>>0){m=e;f=0;b:while(1){e=i[m>>0]|0;k=e&255;if(k>>>0>d>>>0){e=m;f=42;break a}do if(e<<24>>24>-1)e=m+1|0;else{if((e&255)<194){e=m;f=42;break a}if((e&255)<224){if((n-m|0)<2){e=m;f=42;break a}e=l[m+1>>0]|0;if((e&192|0)!=128){e=m;f=42;break a}if((e&63|k<<6&1984)>>>0>d>>>0){e=m;f=42;break a}e=m+2|0;break}if((e&255)<240){e=m;if((n-e|0)<3){e=m;f=42;break a}h=i[m+1>>0]|0;g=i[m+2>>0]|0;switch(k|0){case 224:{if((h&-32)<<24>>24!=-96){f=20;break b}break}case 237:{if((h&-32)<<24>>24!=-128){f=22;break b}break}default:if((h&-64)<<24>>24!=-128){f=24;break b}}e=g&255;if((e&192|0)!=128){e=m;f=42;break a}if(((h&255)<<6&4032|k<<12&61440|e&63)>>>0>d>>>0){e=m;f=42;break a}e=m+3|0;break}if((e&255)>=245){e=m;f=42;break a}e=m;if((c-f|0)>>>0<2|(n-e|0)<4){e=m;f=42;break a}j=i[m+1>>0]|0;g=i[m+2>>0]|0;h=i[m+3>>0]|0;switch(k|0){case 240:{if((j+112&255)>=48){f=32;break b}break}case 244:{if((j&-16)<<24>>24!=-128){f=34;break b}break}default:if((j&-64)<<24>>24!=-128){f=36;break b}}g=g&255;if((g&192|0)!=128){e=m;f=42;break a}e=h&255;if((e&192|0)!=128){e=m;f=42;break a}if(((j&255)<<12&258048|k<<18&1835008|g<<6&4032|e&63)>>>0>d>>>0){e=m;f=42;break a}e=m+4|0;f=f+1|0}while(0);f=f+1|0;if(!(f>>>0>>0&e>>>0>>0)){f=42;break a}else m=e}if((f|0)==20){e=e-a|0;break}else if((f|0)==22){e=e-a|0;break}else if((f|0)==24){e=e-a|0;break}else if((f|0)==32){e=e-a|0;break}else if((f|0)==34){e=e-a|0;break}else if((f|0)==36){e=e-a|0;break}}else f=42;while(0);if((f|0)==42)e=e-a|0;return e|0}function Uv(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 j=0,l=0;k[c>>2]=a;k[f>>2]=d;l=e;if(h&2)if((l-d|0)<3)a=1;else{k[f>>2]=d+1;i[d>>0]=-17;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=-69;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=-65;j=4}else j=4;a:do if((j|0)==4){a=k[c>>2]|0;if(a>>>0>>0)while(1){h=k[a>>2]|0;if(h>>>0>g>>>0|(h&-2048|0)==55296){a=2;break a}do if(h>>>0>=128){if(h>>>0<2048){a=k[f>>2]|0;if((l-a|0)<2){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>6|192;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}a=k[f>>2]|0;e=l-a|0;if(h>>>0<65536){if((e|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>12|224;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>6&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}else{if((e|0)<4){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>18|240;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>12&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>6&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}}else{a=k[f>>2]|0;if((l-a|0)<1){a=1;break a}k[f>>2]=a+1;i[a>>0]=h}while(0);a=(k[c>>2]|0)+4|0;k[c>>2]=a;if(a>>>0>=b>>>0){a=0;break}}else a=0}while(0);return a|0}function Vv(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 j=0,m=0,n=0,o=0,p=0,q=0;k[c>>2]=a;k[f>>2]=d;if(h&4){a=k[c>>2]|0;h=b;if((((h-a|0)>2?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)?(i[a+2>>0]|0)==-65:0){k[c>>2]=a+3;d=k[f>>2]|0;p=h}else p=h}else p=b;h=k[c>>2]|0;a=h>>>0>>0;a:do if(a&d>>>0>>0)while(1){a=i[h>>0]|0;o=a&255;do if(a<<24>>24>-1){if(o>>>0>g>>>0){a=2;break a}k[d>>2]=o;k[c>>2]=h+1}else{if((a&255)<194){a=2;break a}if((a&255)<224){if((p-h|0)<2){a=1;break a}a=l[h+1>>0]|0;if((a&192|0)!=128){a=2;break a}a=a&63|o<<6&1984;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+2;break}if((a&255)<240){if((p-h|0)<3){a=1;break a}j=i[h+1>>0]|0;a=i[h+2>>0]|0;switch(o|0){case 224:{if((j&-32)<<24>>24!=-96){a=2;break a}break}case 237:{if((j&-32)<<24>>24!=-128){a=2;break a}break}default:if((j&-64)<<24>>24!=-128){a=2;break a}}a=a&255;if((a&192|0)!=128){a=2;break a}a=(j&255)<<6&4032|o<<12&61440|a&63;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+3;break}if((a&255)>=245){a=2;break a}if((p-h|0)<4){a=1;break a}n=i[h+1>>0]|0;a=i[h+2>>0]|0;j=i[h+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){a=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}m=a&255;if((m&192|0)!=128){a=2;break a}a=j&255;if((a&192|0)!=128){a=2;break a}a=(n&255)<<12&258048|o<<18&1835008|m<<6&4032|a&63;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+4}while(0);d=(k[f>>2]|0)+4|0;k[f>>2]=d;h=k[c>>2]|0;a=h>>>0>>0;if(!(a&d>>>0>>0)){q=38;break}}else q=38;while(0);if((q|0)==38)a=a&1;return a|0}function Wv(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,j=0,k=0,m=0,n=0;n=b;if((((e&4|0)!=0?(n-a|0)>2:0)?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)e=(i[a+2>>0]|0)==-65?a+3|0:a;else e=a;a:do if((c|0)!=0&e>>>0>>0){k=e;m=0;b:while(1){e=i[k>>0]|0;j=e&255;do if(e<<24>>24>-1){if(j>>>0>d>>>0){e=k;f=42;break a}e=k+1|0}else{if((e&255)<194){e=k;f=42;break a}if((e&255)<224){if((n-k|0)<2){e=k;f=42;break a}e=l[k+1>>0]|0;if((e&192|0)!=128){e=k;f=42;break a}if((e&63|j<<6&1984)>>>0>d>>>0){e=k;f=42;break a}e=k+2|0;break}if((e&255)<240){e=k;if((n-e|0)<3){e=k;f=42;break a}g=i[k+1>>0]|0;f=i[k+2>>0]|0;switch(j|0){case 224:{if((g&-32)<<24>>24!=-96){f=20;break b}break}case 237:{if((g&-32)<<24>>24!=-128){f=22;break b}break}default:if((g&-64)<<24>>24!=-128){f=24;break b}}e=f&255;if((e&192|0)!=128){e=k;f=42;break a}if(((g&255)<<6&4032|j<<12&61440|e&63)>>>0>d>>>0){e=k;f=42;break a}e=k+3|0;break}if((e&255)>=245){e=k;f=42;break a}e=k;if((n-e|0)<4){e=k;f=42;break a}h=i[k+1>>0]|0;f=i[k+2>>0]|0;g=i[k+3>>0]|0;switch(j|0){case 240:{if((h+112&255)>=48){f=32;break b}break}case 244:{if((h&-16)<<24>>24!=-128){f=34;break b}break}default:if((h&-64)<<24>>24!=-128){f=36;break b}}f=f&255;if((f&192|0)!=128){e=k;f=42;break a}e=g&255;if((e&192|0)!=128){e=k;f=42;break a}if(((h&255)<<12&258048|j<<18&1835008|f<<6&4032|e&63)>>>0>d>>>0){e=k;f=42;break a}e=k+4|0}while(0);m=m+1|0;if(!(m>>>0>>0&e>>>0>>0)){f=42;break a}else k=e}if((f|0)==20){e=e-a|0;break}else if((f|0)==22){e=e-a|0;break}else if((f|0)==24){e=e-a|0;break}else if((f|0)==32){e=e-a|0;break}else if((f|0)==34){e=e-a|0;break}else if((f|0)==36){e=e-a|0;break}}else f=42;while(0);if((f|0)==42)e=e-a|0;return e|0}function Xv(a){a=a|0;Sm(45196);Sm(45184);Sm(45172);Sm(45160);Sm(45148);Sm(45136);Sm(45124);Sm(45112);Sm(45100);Sm(45088);Sm(45076);Sm(45064);Sm(45052);Sm(45040);return}function Yv(a){a=a|0;en(45368);en(45356);en(45344);en(45332);en(45320);en(45308);en(45296);en(45284);en(45272);en(45260);en(45248);en(45236);en(45224);en(45212);return}function Zv(a){a=a|0;Sm(46e3);Sm(45988);Sm(45976);Sm(45964);Sm(45952);Sm(45940);Sm(45928);Sm(45916);Sm(45904);Sm(45892);Sm(45880);Sm(45868);Sm(45856);Sm(45844);Sm(45832);Sm(45820);Sm(45808);Sm(45796);Sm(45784);Sm(45772);Sm(45760);Sm(45748);Sm(45736);Sm(45724);return}function _v(a){a=a|0;en(46292);en(46280);en(46268);en(46256);en(46244);en(46232);en(46220);en(46208);en(46196);en(46184);en(46172);en(46160);en(46148);en(46136);en(46124);en(46112);en(46100);en(46088);en(46076);en(46064);en(46052);en(46040);en(46028);en(46016);return}function $v(a){a=a|0;Sm(47104);Sm(47092);Sm(47080);Sm(47068);Sm(47056);Sm(47044);Sm(47032);Sm(47020);Sm(47008);Sm(46996);Sm(46984);Sm(46972);Sm(46960);Sm(46948);Sm(46936);Sm(46924);Sm(46912);Sm(46900);Sm(46888);Sm(46876);Sm(46864);Sm(46852);Sm(46840);Sm(46828);return}function aw(a){a=a|0;en(47396);en(47384);en(47372);en(47360);en(47348);en(47336);en(47324);en(47312);en(47300);en(47288);en(47276);en(47264);en(47252);en(47240);en(47228);en(47216);en(47204);en(47192);en(47180);en(47168);en(47156);en(47144);en(47132);en(47120);return}function bw(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+32|0;h=i;f=k[a+8>>2]|0;c=k[a+4>>2]|0;if(f-c>>2>>>0>>0){d=k[a>>2]|0;g=c-d>>2;e=g+b|0;if(e>>>0>1073741823)jj(a);c=f-d|0;if(c>>2>>>0<536870911){c=c>>1;c=c>>>0>>0?e:c}else c=1073741823;dw(h,c,g,a+16|0);g=h+8|0;f=k[g>>2]|0;sw(f|0,0,b<<2|0)|0;k[g>>2]=f+(b<<2);ew(a,h);fw(h)}else cw(a,b);r=i;return}function cw(a,b){a=a|0;b=b|0;var c=0;c=a+4|0;a=b;b=k[c>>2]|0;do{k[b>>2]=0;b=(k[c>>2]|0)+4|0;k[c>>2]=b;a=a+-1|0}while((a|0)!=0);return}function dw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;k[a+12>>2]=0;k[a+16>>2]=d;do if(b){e=d+112|0;if(b>>>0<29&(i[e>>0]|0)==0){i[e>>0]=1;break}else{d=lj(b<<2)|0;break}}else d=0;while(0);k[a>>2]=d;c=d+(c<<2)|0;k[a+8>>2]=c;k[a+4>>2]=c;k[a+12>>2]=d+(b<<2);return}function ew(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=k[a>>2]|0;f=a+4|0;c=b+4|0;e=(k[f>>2]|0)-d|0;g=(k[c>>2]|0)+(0-(e>>2)<<2)|0;k[c>>2]=g;vw(g|0,d|0,e|0)|0;e=k[a>>2]|0;k[a>>2]=k[c>>2];k[c>>2]=e;e=b+8|0;d=k[f>>2]|0;k[f>>2]=k[e>>2];k[e>>2]=d;e=a+8|0;a=b+12|0;d=k[e>>2]|0;k[e>>2]=k[a>>2];k[a>>2]=d;k[b>>2]=k[c>>2];return}function fw(a){a=a|0;var b=0,c=0,d=0;c=k[a+4>>2]|0;d=a+8|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do b=b+-4|0;while((b|0)!=(c|0));k[d>>2]=b}c=k[a>>2]|0;do if(c){b=k[a+16>>2]|0;if((b|0)==(c|0)){i[b+112>>0]=0;break}else{mj(c);break}}while(0);return}function gw(a,b){a=a|0;b=b|0;var c=0;if(b>>>0>1073741823)jj(a);c=a+128|0;if(b>>>0<29&(i[c>>0]|0)==0){i[c>>0]=1;c=a+16|0}else c=lj(b<<2)|0;k[a+4>>2]=c;k[a>>2]=c;k[a+8>>2]=c+(b<<2);return}function hw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do if((a|0)!=(b|0)){e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}else{k[c>>2]=4;d=0.0}while(0);r=h;return +d}function iw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do if((a|0)!=(b|0)){e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}else{k[c>>2]=4;d=0.0}while(0);r=h;return +d}function jw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do if((a|0)==(b|0)){k[c>>2]=4;d=0.0}else{e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}while(0);r=h;return +d}function kw(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;h=r;r=r+16|0;g=h;do if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;d=0;a=0;break}e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;a=fk(a,g,d,fp()|0)|0;d=k[e>>2]|0;if(!d)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0;a=0;break}if((d|0)==34){k[c>>2]=4;d=-1;a=-1}else d=M}else{k[c>>2]=4;d=0;a=0}while(0);M=d;r=h;return a|0}function lw(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,j=0;j=r;r=r+16|0;h=j;do if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>4294967295|(e|0)==34){k[c>>2]=4;a=-1;break}else break}else{k[c>>2]=4;a=0}while(0);r=j;return a|0}function mw(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,j=0;j=r;r=r+16|0;h=j;do if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>4294967295|(e|0)==34){k[c>>2]=4;a=-1;break}else break}else{k[c>>2]=4;a=0}while(0);r=j;return a|0}function nw(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,j=0;j=r;r=r+16|0;h=j;do if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>65535|(e|0)==34){k[c>>2]=4;a=-1;break}else{a=a&65535;break}}else{k[c>>2]=4;a=0}while(0);r=j;return a|0}function ow(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;i=r;r=r+16|0;h=i;do if((a|0)!=(b|0)){f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=gk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;d=0;a=0;break}if((e|0)==34){k[c>>2]=4;h=(d|0)>0|(d|0)==0&a>>>0>0;M=h?2147483647:-2147483648;r=i;return (h?-1:0)|0}}else{k[c>>2]=4;d=0;a=0}while(0);M=d;r=i;return a|0}function pw(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;i=r;r=r+16|0;h=i;a:do if((a|0)==(b|0)){k[c>>2]=4;a=0}else{f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=gk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}do if((e|0)==34){k[c>>2]=4;if((d|0)>0|(d|0)==0&a>>>0>0){a=2147483647;break a}}else{if((d|0)<-1|(d|0)==-1&a>>>0<2147483648){k[c>>2]=4;break}if((d|0)>0|(d|0)==0&a>>>0>2147483647){k[c>>2]=4;a=2147483647;break a}else break a}while(0);a=-2147483648}while(0);r=i;return a|0}function qw(){}function rw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (M=d,a-c>>>0|0)|0}function sw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+c|0;if((c|0)>=20){b=b&255;f=a&3;g=b|b<<8|b<<16|b<<24;e=d&~3;if(f){f=a+4-f|0;while((a|0)<(f|0)){i[a>>0]=b;a=a+1|0}}while((a|0)<(e|0)){k[a>>2]=g;a=a+4|0}}while((a|0)<(d|0)){i[a>>0]=b;a=a+1|0}return a-c|0}function tw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (M=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function uw(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b>>>c;return a>>>c|(b&(1<>>c-32|0}function vw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((c|0)>=4096)return db(a|0,b|0,c|0)|0;d=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return d|0;i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){k[a>>2]=k[b>>2];a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}return d|0}function ww(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b<>>32-c;return a<0){a=a-1|0;b=b-1|0;c=c-1|0;i[a>>0]=i[b>>0]|0}a=d}else vw(a,b,c)|0;return a|0}function yw(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b>>c;return a>>>c|(b&(1<>c-32|0}function zw(a){a=a|0;var b=0;b=i[v+(a&255)>>0]|0;if((b|0)<8)return b|0;b=i[v+(a>>8&255)>>0]|0;if((b|0)<8)return b+8|0;b=i[v+(a>>16&255)>>0]|0;if((b|0)<8)return b+16|0;return (i[v+(a>>>24)>>0]|0)+24|0}function Aw(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=ia(e,f)|0;d=a>>>16;a=(c>>>16)+(ia(e,d)|0)|0;e=b>>>16;b=ia(e,f)|0;return (M=(a>>>16)+(ia(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Bw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=rw(j^a,i^b,j,i)|0;g=M;a=f^j;b=e^i;return rw((Gw(h,g,rw(f^c,e^d,f,e)|0,M,0)|0)^a,M^b,a,b)|0}function Cw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=r;r=r+16|0;h=e|0;g=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=d>>31|((d|0)<0?-1:0)<<1;i=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=rw(g^a,f^b,g,f)|0;b=M;Gw(a,b,rw(j^c,i^d,j,i)|0,M,h)|0;d=rw(k[h>>2]^g,k[h+4>>2]^f,g,f)|0;c=M;r=e;return (M=c,d)|0}function Dw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Aw(e,f)|0;a=M;return (M=(ia(b,f)|0)+(ia(d,e)|0)+a|a&0,c|0|0)|0}function Ew(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Gw(a,b,c,d,0)|0}function Fw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=r;r=r+16|0;e=f|0;Gw(a,b,c,d,e)|0;r=f;return (M=k[e+4>>2]|0,k[e>>2]|0)|0}function Gw(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,l=0,m=0,n=0,o=0,p=0;l=a;i=b;j=i;g=c;n=d;h=n;if(!j){f=(e|0)!=0;if(!h){if(f){k[e>>2]=(l>>>0)%(g>>>0);k[e+4>>2]=0}n=0;e=(l>>>0)/(g>>>0)>>>0;return (M=n,e)|0}else{if(!f){n=0;e=0;return (M=n,e)|0}k[e>>2]=a|0;k[e+4>>2]=b&0;n=0;e=0;return (M=n,e)|0}}f=(h|0)==0;do if(g){if(!f){f=(ka(h|0)|0)-(ka(j|0)|0)|0;if(f>>>0<=31){m=f+1|0;h=31-f|0;b=f-31>>31;g=m;a=l>>>(m>>>0)&b|j<>>(m>>>0)&b;f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;n=0;e=0;return (M=n,e)|0}f=g-1|0;if(f&g){h=(ka(g|0)|0)+33-(ka(j|0)|0)|0;p=64-h|0;m=32-h|0;i=m>>31;o=h-32|0;b=o>>31;g=h;a=m-1>>31&j>>>(o>>>0)|(j<>>(h>>>0))&b;b=b&j>>>(h>>>0);f=l<>>(o>>>0))&i|l<>31;break}if(e){k[e>>2]=f&l;k[e+4>>2]=0}if((g|0)==1){o=i|b&0;p=a|0|0;return (M=o,p)|0}else{p=zw(g|0)|0;o=j>>>(p>>>0)|0;p=j<<32-p|l>>>(p>>>0)|0;return (M=o,p)|0}}else{if(f){if(e){k[e>>2]=(j>>>0)%(g>>>0);k[e+4>>2]=0}o=0;p=(j>>>0)/(g>>>0)>>>0;return (M=o,p)|0}if(!l){if(e){k[e>>2]=0;k[e+4>>2]=(j>>>0)%(h>>>0)}o=0;p=(j>>>0)/(h>>>0)>>>0;return (M=o,p)|0}f=h-1|0;if(!(f&h)){if(e){k[e>>2]=a|0;k[e+4>>2]=f&j|b&0}o=0;p=j>>>((zw(h|0)|0)>>>0);return (M=o,p)|0}f=(ka(h|0)|0)-(ka(j|0)|0)|0;if(f>>>0<=30){b=f+1|0;h=31-f|0;g=b;a=j<>>(b>>>0);b=j>>>(b>>>0);f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;o=0;p=0;return (M=o,p)|0}while(0);if(!g){j=h;i=0;h=0}else{m=c|0|0;l=n|d&0;j=tw(m|0,l|0,-1,-1)|0;c=M;i=h;h=0;do{d=i;i=f>>>31|i<<1;f=h|f<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;rw(j,c,d,n)|0;p=M;o=p>>31|((p|0)<0?-1:0)<<1;h=o&1;a=rw(d,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=M;g=g-1|0}while((g|0)!=0);j=i;i=0}g=0;if(e){k[e>>2]=a;k[e+4>>2]=b}o=(f|0)>>>31|(j|g)<<1|(g<<1|f>>>31)&0|i;p=(f<<1|0>>>31)&-2|h;return (M=o,p)|0}function Hw(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return Ib[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function Iw(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Jb[a&15](b|0,c|0,d|0,e|0,f|0)}function Jw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;return Kb[a&3](b|0,c|0,d|0,e|0,f|0,+g)|0}function Kw(a,b){a=a|0;b=b|0;Lb[a&255](b|0)}function Lw(a,b,c){a=a|0;b=b|0;c=c|0;Mb[a&127](b|0,c|0)}function Mw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Nb[a&63](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Nw(a,b){a=a|0;b=b|0;return Ob[a&127](b|0)|0}function Ow(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|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;return Pb[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0)|0}function Pw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Qb[a&63](b|0,c|0,d|0)|0}function Qw(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){a=a|0;b=b|0;c=c|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;n=n|0;o=o|0;p=p|0;Rb[a&3](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)}function Rw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Sb[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function Sw(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;Tb[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Tw(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|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;Ub[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Uw(a,b,c){a=a|0;b=b|0;c=c|0;return Vb[a&63](b|0,c|0)|0}function Vw(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 Wb[a&31](b|0,c|0,d|0,e|0,f|0)|0}function Ww(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +Xb[a&3](b|0,c|0,d|0)}function Xw(a){a=a|0;return Yb[a&15]()|0}function Yw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Zb[a&31](b|0,c|0,d|0,e|0)|0}function Zw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_b[a&15](b|0,c|0,d|0)}function _w(a){a=a|0;$b[a&7]()}function $w(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return ac[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function ax(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return bc[a&7](b|0,c|0,d|0,e|0,+f)|0}function bx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;cc[a&63](b|0,c|0,d|0,e|0)}function cx(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;la(0);return 0}function dx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;la(1)}function ex(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;la(2);return 0}function fx(a){a=a|0;la(3)}function gx(a,b){a=a|0;b=b|0;la(4)}function hx(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;la(5);return 0}function ix(a){a=a|0;la(6);return 0}function jx(a){a=a|0;return lb(a|0)|0}function kx(a){a=a|0;return Ab(a|0)|0}function lx(a){a=a|0;return qb(a|0)|0}function mx(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|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;la(7);return 0}function nx(a,b,c){a=a|0;b=b|0;c=c|0;la(8);return 0}function ox(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a=a|0;b=b|0;c=c|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;n=n|0;o=o|0;la(9)}function px(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;la(10)}function qx(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;la(11)}function rx(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;la(12)}function sx(a,b){a=a|0;b=b|0;la(13);return 0}function tx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;la(14);return 0}function ux(a,b,c){a=a|0;b=b|0;c=c|0;la(15);return 0.0}function vx(){la(16);return 0}function wx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;la(17);return 0}function xx(a,b,c){a=a|0;b=b|0;c=c|0;la(18)}function yx(a,b,c){a=a|0;b=b|0;c=c|0;ub(a|0,b|0,c|0)}function zx(){la(19)}function Ax(){yb()}function Bx(){eb()}function Cx(){vb()}function Dx(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;la(20);return 0}function Ex(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;la(21);return 0}function Fx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;la(22)} -function ni(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8900]|0;k[a+4580>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+256;g=a+160|0;e=a+156|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function oi(a){a=a|0;var b=0,c=0;k[a>>2]=35660;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function pi(a){a=a|0;var b=0,c=0;k[a>>2]=35660;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function qi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;zi(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function si(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);ti(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function ti(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;h=a+172|0;y=(k[h>>2]|0)+4|0;if((k[a+28>>2]|0)==1)j=k[a+20>>2]|0;else j=1;b=ia(j<<1,y)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))w=6;if((w|0)==6?(x=0,c=ta(67,b|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[D>>2]|0)+1|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!j)w=19;else{if(!(j>>>0>1073741823?(x=0,qa(178,z|0),v=x,x=0,v&1):0))w=17;if((w|0)==17?(d=j<<2,x=0,e=ta(67,d|0)|0,v=x,x=0,!(v&1)):0){k[z>>2]=e;w=e+(j<<2)|0;k[z+8>>2]=w;sw(e|0,0,d|0)|0;k[B>>2]=w;w=19;break}c=Wa()|0;b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}while(0);if((w|0)==19){l=a+8|0;b=k[l>>2]|0;b:do if((b|0)>0){m=a+4596|0;n=ia(j,y)|0;o=n+1|0;p=a+4600|0;q=a+160|0;s=a+168|0;t=a+164|0;u=a+156|0;v=a+88|0;g=a+4592|0;if((j|0)>0)f=0;else{f=0;while(1){e=k[C>>2]|0;c=e+1|0;k[m>>2]=c;d=e+o|0;k[p>>2]=d;if(!(f&1))c=o;else{k[m>>2]=d;k[p>>2]=c;c=1}j=k[q>>2]|0;if((j|0)<=(f|0)?(f|0)<((k[s>>2]|0)+j|0):0){j=k[v>>2]|0;x=0;Ja(k[(k[j>>2]|0)+8>>2]|0,j|0,e+(c+((k[u>>2]|0)-n))|0,k[t>>2]|0,y|0);j=x;x=0;if(j&1)break;b=k[l>>2]|0}f=f+1|0;if((f|0)>=(b|0)){w=50;break b}}c=Wa()|0;break}c:while(1){c=k[C>>2]|0;b=c+1|0;k[m>>2]=b;c=c+o|0;k[p>>2]=c;if(f&1){k[m>>2]=c;k[p>>2]=b;b=c}e=k[z>>2]|0;c=b;d=0;do{k[g>>2]=k[e+(d<<2)>>2];w=k[h>>2]|0;i[c+w>>0]=i[c+(w+-1)>>0]|0;i[(k[p>>2]|0)+-1>>0]=i[k[m>>2]>>0]|0;x=0;ra(83,a|0,0);w=x;x=0;if(w&1){w=38;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[g>>2];c=(k[m>>2]|0)+y|0;k[m>>2]=c;b=k[p>>2]|0;k[p>>2]=b+y;d=d+1|0}while((d|0)<(j|0));w=k[q>>2]|0;if(((w|0)<=(f|0)?(f|0)<((k[s>>2]|0)+w|0):0)?(w=k[v>>2]|0,x=0,Ja(k[(k[w>>2]|0)+8>>2]|0,w|0,b+(y+((k[u>>2]|0)-n))|0,k[t>>2]|0,y|0),w=x,x=0,w&1):0){w=30;break}f=f+1|0;if((f|0)>=(k[l>>2]|0)){w=50;break b}}if((w|0)==30){c=Wa()|0;break}else if((w|0)==38){c=Wa()|0;break}}else w=50;while(0);do if((w|0)==50){x=0;qa(183,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);r=A;return}while(0);b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}function ui(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=a+4596|0;c=k[p>>2]|0;t=a+172|0;b=k[t>>2]|0;if((b|0)<=0)return;q=a+4600|0;r=a+4604|0;s=a+4592|0;h=c;f=l[c+-1>>0]|0;c=l[c>>0]|0;o=0;while(1){m=k[q>>2]|0;g=i[m+(o+-1)>>0]|0;n=g&255;e=o+1|0;d=l[h+e>>0]|0;j=k[r>>2]|0;h=c-f|0;f=f-n|0;j=((((i[j+(d-c)>>0]|0)*9|0)+(i[j+h>>0]|0)|0)*9|0)+(i[j+f>>0]|0)|0;m=m+o|0;if(!j){b=wi(a,g,m,b-o|0)|0;c=b+o|0;if((c|0)!=(k[t>>2]|0)){n=xi(a,n,l[(k[p>>2]|0)+c>>0]|0)|0;i[(k[q>>2]|0)+c>>0]=n;n=k[s>>2]|0;k[s>>2]=(n|0)<1?0:n+-1|0;b=b+1|0}e=b+o|0;d=k[p>>2]|0;c=l[d+(e+-1)>>0]|0;d=l[d+e>>0]|0}else{b=c-n>>31;if((b^f|0)<0)b=c;else b=n+((b^h|0)<0?0:h)|0;n=vi(a,j,l[m>>0]|0,b,0)|0;i[(k[q>>2]|0)+o>>0]=n}b=k[t>>2]|0;if((b|0)<=(e|0))break;h=k[p>>2]|0;f=c;c=d;o=e}return}function vi(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&255;return a|0}a=c&~(e>>31);a=a&255;return a|0}function wi(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,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;sw(c|0,b|0,e|0)|0;return e|0}function xi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b-c|0;g=a+128|0;d=a+136|0;if((((f|0)>-1?f:0-f|0)|0)>(k[d>>2]|0)){b=ia(yi(a,a+4568|0)|0,c-b>>31|1)|0;e=k[d>>2]|0;f=e<<1|1;b=(ia(b,f)|0)+c|0;if((b|0)>=(0-e|0)){d=k[g>>2]|0;if((d+e|0)<(b|0))b=b-(ia(k[a+132>>2]|0,f)|0)|0}else{b=(ia(k[a+132>>2]|0,f)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&255;return a|0}a=d&~(b>>31);a=a&255;return a|0}else{c=yi(a,a+4580|0)|0;f=k[d>>2]|0;e=f<<1|1;b=(ia(e,c)|0)+b|0;if((b|0)>=(0-f|0)){d=k[g>>2]|0;if((d+f|0)<(b|0))b=b-(ia(k[a+132>>2]|0,e)|0)|0}else{b=(ia(k[a+132>>2]|0,e)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&255;return a|0}a=d&~(b>>31);a=a&255;return a|0}return 0}function yi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function zi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0;while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Ai(a){a=a|0;mj(a);return}function Bi(a){a=a|0;return 50767}function Ci(a,b,c){a=a|0;b=b|0;c=c|0;Qm(a,50754,12);return}function Di(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+16|0;s=q;k[s>>2]=0;t=s+4|0;k[t>>2]=0;k[s+8>>2]=0;o=s+8|0;x=0;e=ta(67,1)|0;n=x;x=0;a:do if((!(n&1)?(n=e+1|0,i[e>>0]=c,k[s>>2]=e,k[t>>2]=n,k[o>>2]=n,x=0,ra(84,s|0,b&65535|0),n=x,x=0,!(n&1)):0)?(x=0,ra(84,s|0,a&65535|0),n=x,x=0,!(n&1)):0){l=d&255;e=k[t>>2]|0;c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);n=x;x=0;if(n&1){p=52;break}a=k[s>>2]|0;c=k[o>>2]|0;b=a}j=b;e=c-j|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;c=k[t>>2]|0;h=c-j|0;if(!e){e=0;g=0}else p=12}else{h=k[t>>2]|0;e=2147483647;c=h;h=h-j|0;p=12}if((p|0)==12){x=0;g=ta(67,e|0)|0;n=x;x=0;if(n&1){p=52;break}}i[g+h>>0]=l;m=c-j|0;n=g+(h-m)|0;vw(n|0,b|0,m|0)|0;k[s>>2]=n;k[t>>2]=g+(h+1);k[o>>2]=g+e;if(a)mj(a)}else{i[e>>0]=l;k[t>>2]=(k[t>>2]|0)+1}b:do if((d|0)>0){n=0;while(1){n=n+1|0;m=n&255;e=k[t>>2]|0;b=k[o>>2]|0;if(e>>>0>=b>>>0){a=k[s>>2]|0;c=a;g=e-c+1|0;if((g|0)<0){x=0;qa(178,s|0);l=x;x=0;if(l&1)break;a=k[s>>2]|0;c=a;b=k[o>>2]|0}l=a;e=b-l|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;b=k[t>>2]|0;h=b-l|0;if(!e){j=0;g=0}else p=25}else{h=k[t>>2]|0;e=2147483647;b=h;h=h-l|0;p=25}if((p|0)==25){p=0;x=0;g=ta(67,e|0)|0;j=x;x=0;if(j&1)break;else j=e}i[g+h>>0]=m;e=g+(h+1)|0;l=b-l|0;m=g+(h-l)|0;vw(m|0,a|0,l|0)|0;k[s>>2]=m;k[t>>2]=e;k[o>>2]=g+j;if(c){mj(c);e=k[t>>2]|0}}else{i[e>>0]=m;e=(k[t>>2]|0)+1|0;k[t>>2]=e}c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);m=x;x=0;if(m&1)break;a=k[s>>2]|0;c=k[o>>2]|0;b=a}l=b;e=c-l|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;g=k[t>>2]|0;h=g-l|0;if(!e){j=0;c=0}else p=36}else{h=k[t>>2]|0;e=2147483647;g=h;h=h-l|0;p=36}if((p|0)==36){p=0;x=0;c=ta(67,e|0)|0;m=x;x=0;if(m&1)break;else j=e}i[c+h>>0]=17;e=c+(h+1)|0;l=g-l|0;m=c+(h-l)|0;vw(m|0,b|0,l|0)|0;k[s>>2]=m;k[t>>2]=e;k[o>>2]=c+j;if(a){mj(a);e=k[t>>2]|0}}else{i[e>>0]=17;e=(k[t>>2]|0)+1|0;k[t>>2]=e}c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);m=x;x=0;if(m&1)break;a=k[s>>2]|0;c=k[o>>2]|0;b=a}j=b;e=c-j|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;c=k[t>>2]|0;h=c-j|0;if(!e){e=0;g=0}else p=48}else{h=k[t>>2]|0;e=2147483647;c=h;h=h-j|0;p=48}if((p|0)==48){p=0;x=0;g=ta(67,e|0)|0;m=x;x=0;if(m&1)break}i[g+h>>0]=0;l=c-j|0;m=g+(h-l)|0;vw(m|0,b|0,l|0)|0;k[s>>2]=m;k[t>>2]=g+(h+1);k[o>>2]=g+e;if(a)mj(a)}else{i[e>>0]=0;k[t>>2]=(k[t>>2]|0)+1}if((n|0)>=(d|0))break b}f=Wa()|0;break a}while(0);x=0;h=ta(67,20)|0;d=x;x=0;if(!(d&1)){k[h>>2]=36800;i[h+4>>0]=-9;a=h+8|0;k[a>>2]=0;g=h+12|0;k[g>>2]=0;c=h+16|0;k[c>>2]=0;e=k[t>>2]|0;d=k[s>>2]|0;b=e-d|0;do if((e|0)!=(d|0)){if(!((b|0)<0?(x=0,qa(178,a|0),d=x,x=0,d&1):0))p=62;if((p|0)==62?(x=0,f=ta(67,b|0)|0,d=x,x=0,!(d&1)):0){k[g>>2]=f;k[a>>2]=f;k[c>>2]=f+b;e=k[s>>2]|0;c=k[t>>2]|0;if((e|0)==(c|0))break;do{i[f>>0]=i[e>>0]|0;f=(k[g>>2]|0)+1|0;k[g>>2]=f;e=e+1|0}while((e|0)!=(c|0));e=k[s>>2]|0;break}f=Wa()|0;e=k[a>>2]|0;if(e){if((k[g>>2]|0)!=(e|0))k[g>>2]=e;mj(e)}mj(h);break a}while(0);if(!e){r=q;return h|0}if((k[t>>2]|0)!=(e|0))k[t>>2]=e;mj(e);r=q;return h|0}else p=52}else p=52;while(0);if((p|0)==52)f=Wa()|0;e=k[s>>2]|0;if(!e)fb(f|0);if((k[t>>2]|0)!=(e|0))k[t>>2]=e;mj(e);fb(f|0);return 0}function Ei(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;p=t+28|0;v=t+16|0;s=t+4|0;q=t;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;n=lj(5)|0;k[v>>2]=n;o=v+8|0;k[o>>2]=n+5;i[n>>0]=74;i[n+1>>0]=70;i[n+2>>0]=73;i[n+3>>0]=70;i[n+4>>0]=0;k[w>>2]=n+5;x=0;ra(84,v|0,k[a>>2]&65535|0);n=x;x=0;a:do if(!(n&1)){l=k[a+4>>2]&255;b=k[w>>2]|0;d=k[o>>2]|0;if(b>>>0>=d>>>0){e=k[v>>2]|0;f=e;g=b-f+1|0;if((g|0)<0){x=0;qa(178,v|0);n=x;x=0;if(n&1){u=43;break}f=k[v>>2]|0;d=k[o>>2]|0;e=f}j=e;b=d-j|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;d=k[w>>2]|0;h=d-j|0;if(!b){b=0;g=0}else u=10}else{h=k[w>>2]|0;b=2147483647;d=h;h=h-j|0;u=10}if((u|0)==10){x=0;g=ta(67,b|0)|0;n=x;x=0;if(n&1){u=43;break}}i[g+h>>0]=l;m=d-j|0;n=g+(h-m)|0;vw(n|0,e|0,m|0)|0;k[v>>2]=n;k[w>>2]=g+(h+1);k[o>>2]=g+b;if(f)mj(f)}else{i[b>>0]=l;k[w>>2]=(k[w>>2]|0)+1}x=0;ra(84,v|0,k[a+8>>2]&65535|0);n=x;x=0;if(!(n&1)?(x=0,ra(84,v|0,k[a+12>>2]&65535|0),n=x,x=0,!(n&1)):0){n=a+16|0;m=k[n>>2]&255;b=k[w>>2]|0;e=k[o>>2]|0;if(b>>>0>=e>>>0){f=k[v>>2]|0;d=f;g=b-d+1|0;if((g|0)<0){x=0;qa(178,v|0);l=x;x=0;if(l&1){u=43;break}f=k[v>>2]|0;d=f;e=k[o>>2]|0}l=f;b=e-l|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;g=k[w>>2]|0;h=g-l|0;if(!b){j=0;e=0}else u=23}else{h=k[w>>2]|0;b=2147483647;g=h;h=h-l|0;u=23}if((u|0)==23){x=0;e=ta(67,b|0)|0;j=x;x=0;if(j&1){u=43;break}else j=b}i[e+h>>0]=m;b=e+(h+1)|0;l=g-l|0;m=e+(h-l)|0;vw(m|0,f|0,l|0)|0;k[v>>2]=m;k[w>>2]=b;k[o>>2]=e+j;if(d){mj(d);b=k[w>>2]|0}}else{i[b>>0]=m;b=(k[w>>2]|0)+1|0;k[w>>2]=b}m=a+20|0;l=k[m>>2]&255;d=k[o>>2]|0;if(b>>>0>=d>>>0){e=k[v>>2]|0;f=e;g=b-f+1|0;if((g|0)<0){x=0;qa(178,v|0);j=x;x=0;if(j&1){u=43;break}f=k[v>>2]|0;d=k[o>>2]|0;e=f}j=e;b=d-j|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;d=k[w>>2]|0;h=d-j|0;if(!b){b=0;g=0}else u=34}else{h=k[w>>2]|0;b=2147483647;d=h;h=h-j|0;u=34}if((u|0)==34){x=0;g=ta(67,b|0)|0;y=x;x=0;if(y&1){u=43;break}}i[g+h>>0]=l;l=d-j|0;y=g+(h-l)|0;vw(y|0,e|0,l|0)|0;k[v>>2]=y;k[w>>2]=g+(h+1);k[o>>2]=g+b;if(f)mj(f)}else{i[b>>0]=l;k[w>>2]=(k[w>>2]|0)+1}b=k[n>>2]|0;do if((b|0)>0){if(!(k[a+24>>2]|0)){k[q>>2]=k[w>>2];y=0+(ia(b*3|0,k[m>>2]|0)|0)|0;x=0;k[p>>2]=k[q>>2];Ea(15,v|0,p|0,0,y|0)|0;y=x;x=0;if(y&1){u=43;break a}else break}d=Va(16)|0;x=0;Fa(5,s|0,50792,57);y=x;x=0;if(!(y&1)){x=0;b=Da(1)|0;y=x;x=0;if(!(y&1)?(x=0,Ja(36,d|0,1,b|0,s|0),y=x,x=0,!(y&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;b=Wa()|0;Sm(s);if(!c){c=b;break a}}else b=Wa()|0;Ua(d|0);c=b;break a}while(0);x=0;h=ta(67,20)|0;y=x;x=0;if(!(y&1)){k[h>>2]=36800;i[h+4>>0]=-32;f=h+8|0;k[f>>2]=0;g=h+12|0;k[g>>2]=0;d=h+16|0;k[d>>2]=0;b=k[w>>2]|0;y=k[v>>2]|0;e=b-y|0;do if((b|0)!=(y|0)){if(!((e|0)<0?(x=0,qa(178,f|0),y=x,x=0,y&1):0))u=53;if((u|0)==53?(x=0,c=ta(67,e|0)|0,y=x,x=0,!(y&1)):0){k[g>>2]=c;k[f>>2]=c;k[d>>2]=c+e;b=k[v>>2]|0;d=k[w>>2]|0;if((b|0)==(d|0))break;do{i[c>>0]=i[b>>0]|0;c=(k[g>>2]|0)+1|0;k[g>>2]=c;b=b+1|0}while((b|0)!=(d|0));b=k[v>>2]|0;break}b=Wa()|0;c=k[f>>2]|0;if(c){if((k[g>>2]|0)!=(c|0))k[g>>2]=c;mj(c)}mj(h);u=44;break a}while(0);if(!b){r=t;return h|0}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return h|0}else u=43}else u=43}else u=43;while(0);if((u|0)==43){b=Wa()|0;u=44}if((u|0)==44)c=b;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0);return 0}function Fi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;h=r;r=r+16|0;l=h;k[l>>2]=0;m=l+4|0;k[m>>2]=0;k[l+8>>2]=0;x=0;b=ta(67,1)|0;g=x;x=0;a:do if((((((!(g&1)?(g=b+1|0,i[b>>0]=1,k[l>>2]=b,k[m>>2]=g,k[l+8>>2]=g,x=0,ra(84,l|0,k[a>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+4>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+8>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+12>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+16>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,j=ta(67,20)|0,g=x,x=0,!(g&1)):0){k[j>>2]=36800;i[j+4>>0]=-8;e=j+8|0;k[e>>2]=0;g=j+12|0;k[g>>2]=0;a=j+16|0;k[a>>2]=0;b=k[m>>2]|0;n=k[l>>2]|0;d=b-n|0;do if((b|0)!=(n|0)){if(!((d|0)<0?(x=0,qa(178,e|0),n=x,x=0,n&1):0))f=11;if((f|0)==11?(x=0,c=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[g>>2]=c;k[e>>2]=c;k[a>>2]=c+d;b=k[l>>2]|0;a=k[m>>2]|0;if((b|0)==(a|0))break;do{i[c>>0]=i[b>>0]|0;c=(k[g>>2]|0)+1|0;k[g>>2]=c;b=b+1|0}while((b|0)!=(a|0));b=k[l>>2]|0;break}c=Wa()|0;b=k[e>>2]|0;if(b){if((k[g>>2]|0)!=(b|0))k[g>>2]=b;mj(b)}mj(j);break a}while(0);if(!b){r=h;return j|0}if((k[m>>2]|0)!=(b|0))k[m>>2]=b;mj(b);r=h;return j|0}else f=25;while(0);if((f|0)==25)c=Wa()|0;b=k[l>>2]|0;if(!b)fb(c|0);if((k[m>>2]|0)!=(b|0))k[m>>2]=b;mj(b);fb(c|0);return 0}function Gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;f=lj(5)|0;i[f>>0]=109;i[f+1>>0]=114;i[f+2>>0]=102;i[f+3>>0]=120;i[f+4>>0]=a;x=0;e=ta(67,20)|0;d=x;x=0;if(d&1){e=Wa()|0;mj(f);fb(e|0)}k[e>>2]=36800;i[e+4>>0]=-24;a=e+8|0;k[a>>2]=0;b=e+12|0;k[b>>2]=0;c=e+16|0;k[c>>2]=0;x=0;d=ta(67,5)|0;g=x;x=0;if(!(g&1)){k[b>>2]=d;k[a>>2]=d;k[c>>2]=d+5;i[d>>0]=109;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=f+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=d+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=d+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;i[g>>0]=i[d+1>>0]|0;k[b>>2]=(k[b>>2]|0)+1;mj(f);return e|0}g=Wa()|0;mj(e);mj(f);fb(g|0);return 0}function Hi(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;s=v+8|0;x=0;e=ta(67,1)|0;q=x;x=0;a:do if(!(q&1)){h=e+1|0;q=h;i[e>>0]=b;k[v>>2]=e;k[w>>2]=q;k[s>>2]=q;if((b|0)>0){g=h;q=0;do{p=q+a&255;if(g>>>0>=h>>>0){e=k[v>>2]|0;j=e;g=g-j+1|0;if((g|0)<0){x=0;qa(178,v|0);o=x;x=0;if(o&1){t=28;break}j=k[v>>2]|0;h=k[s>>2]|0;o=j}else o=e;n=o;e=h-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;h=k[w>>2]|0;l=h-n|0;if(!e){m=0;g=0}else t=13}else{l=k[w>>2]|0;e=2147483647;h=l;l=l-n|0;t=13}if((t|0)==13){t=0;x=0;g=ta(67,e|0)|0;m=x;x=0;if(m&1){t=28;break}else m=e}i[g+l>>0]=p;e=g+(l+1)|0;n=h-n|0;p=g+(l-n)|0;vw(p|0,o|0,n|0)|0;k[v>>2]=p;k[w>>2]=e;k[s>>2]=g+m;if(j){mj(j);e=k[w>>2]|0}}else{i[g>>0]=p;e=(k[w>>2]|0)+1|0;k[w>>2]=e}h=k[s>>2]|0;if(e>>>0>=h>>>0){j=k[v>>2]|0;g=j;l=e-g+1|0;if((l|0)<0){x=0;qa(178,v|0);p=x;x=0;if(p&1){t=28;break}j=k[v>>2]|0;g=j;h=k[s>>2]|0}n=j;e=h-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?l:e;l=k[w>>2]|0;h=l-n|0;if(!e){e=0;m=0}else t=24}else{h=k[w>>2]|0;e=2147483647;l=h;h=h-n|0;t=24}if((t|0)==24){t=0;x=0;m=ta(67,e|0)|0;p=x;x=0;if(p&1){t=28;break}}i[m+h>>0]=0;o=l-n|0;p=m+(h-o)|0;vw(p|0,j|0,o|0)|0;k[v>>2]=p;k[w>>2]=m+(h+1);k[s>>2]=m+e;if(g)mj(g)}else{i[e>>0]=0;k[w>>2]=(k[w>>2]|0)+1}q=q+1|0;g=k[w>>2]|0;h=k[s>>2]|0}while((q|0)<(b|0));if((t|0)==28){f=Wa()|0;break}e=c&255;if(g>>>0>>0){i[g>>0]=e;g=(k[w>>2]|0)+1|0;k[w>>2]=g}else t=37}else{g=h;e=c&255;t=37}if((t|0)==37){j=k[v>>2]|0;l=j;m=g-l+1|0;if((m|0)<0){x=0;qa(178,v|0);c=x;x=0;if(c&1){t=29;break}l=k[v>>2]|0;h=k[s>>2]|0;j=l}p=j;g=h-p|0;if(g>>>0<1073741823){g=g<<1;g=g>>>0>>0?m:g;m=k[w>>2]|0;n=m-p|0;if(!g){o=0;h=0}else t=43}else{n=k[w>>2]|0;g=2147483647;m=n;n=n-p|0;t=43}if((t|0)==43){x=0;h=ta(67,g|0)|0;c=x;x=0;if(c&1){t=29;break}else o=g}i[h+n>>0]=e;g=h+(n+1)|0;a=m-p|0;c=h+(n-a)|0;vw(c|0,j|0,a|0)|0;k[v>>2]=c;k[w>>2]=g;k[s>>2]=h+o;if(l){mj(l);g=k[w>>2]|0}}p=d&255;e=k[s>>2]|0;if(g>>>0>=e>>>0){h=k[v>>2]|0;j=h;g=g-j+1|0;if((g|0)<0){x=0;qa(178,v|0);d=x;x=0;if(d&1){t=29;break}j=k[v>>2]|0;e=k[s>>2]|0;h=j}o=h;e=e-o|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;l=k[w>>2]|0;m=l-o|0;if(!e){n=0;g=0}else t=54}else{m=k[w>>2]|0;e=2147483647;l=m;m=m-o|0;t=54}if((t|0)==54){x=0;g=ta(67,e|0)|0;d=x;x=0;if(d&1){t=29;break}else n=e}i[g+m>>0]=p;e=g+(m+1)|0;c=l-o|0;d=g+(m-c)|0;vw(d|0,h|0,c|0)|0;k[v>>2]=d;k[w>>2]=e;k[s>>2]=g+n;if(j){mj(j);e=k[w>>2]|0}}else{i[g>>0]=p;e=(k[w>>2]|0)+1|0;k[w>>2]=e}g=k[s>>2]|0;if(e>>>0>=g>>>0){h=k[v>>2]|0;j=h;l=e-j+1|0;if((l|0)<0){x=0;qa(178,v|0);d=x;x=0;if(d&1){t=29;break}j=k[v>>2]|0;g=k[s>>2]|0;h=j}n=h;e=g-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?l:e;g=k[w>>2]|0;m=g-n|0;if(!e){e=0;l=0}else t=65}else{m=k[w>>2]|0;e=2147483647;g=m;m=m-n|0;t=65}if((t|0)==65){x=0;l=ta(67,e|0)|0;d=x;x=0;if(d&1){t=29;break}}i[l+m>>0]=0;c=g-n|0;d=l+(m-c)|0;vw(d|0,h|0,c|0)|0;k[v>>2]=d;k[w>>2]=l+(m+1);k[s>>2]=l+e;if(j)mj(j)}else{i[e>>0]=0;k[w>>2]=(k[w>>2]|0)+1}x=0;m=ta(67,20)|0;s=x;x=0;if(!(s&1)){k[m>>2]=36800;i[m+4>>0]=-38;j=m+8|0;k[j>>2]=0;l=m+12|0;k[l>>2]=0;g=m+16|0;k[g>>2]=0;e=k[w>>2]|0;s=k[v>>2]|0;h=e-s|0;do if((e|0)!=(s|0)){if(!((h|0)<0?(x=0,qa(178,j|0),s=x,x=0,s&1):0))t=72;if((t|0)==72?(x=0,f=ta(67,h|0)|0,s=x,x=0,!(s&1)):0){k[l>>2]=f;k[j>>2]=f;k[g>>2]=f+h;e=k[v>>2]|0;g=k[w>>2]|0;if((e|0)==(g|0))break;do{i[f>>0]=i[e>>0]|0;f=(k[l>>2]|0)+1|0;k[l>>2]=f;e=e+1|0}while((e|0)!=(g|0));e=k[v>>2]|0;break}f=Wa()|0;e=k[j>>2]|0;if(e){if((k[l>>2]|0)!=(e|0))k[l>>2]=e;mj(e)}mj(m);break a}while(0);if(!e){r=u;return m|0}if((k[w>>2]|0)!=(e|0))k[w>>2]=e;mj(e);r=u;return m|0}else t=29}else t=29;while(0);if((t|0)==29)f=Wa()|0;e=k[v>>2]|0;if(!e)fb(f|0);if((k[w>>2]|0)!=(e|0))k[w>>2]=e;mj(e);fb(f|0);return 0}function Ii(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=(b&65535)>>>8&255;o=a+4|0;c=k[o>>2]|0;p=a+8|0;d=k[p>>2]|0;if(c>>>0>=d>>>0){e=k[a>>2]|0;f=e;g=c-f+1|0;if((g|0)<0){jj(a);f=k[a>>2]|0;d=k[p>>2]|0;e=f}m=e;c=d-m|0;if(c>>>0<1073741823){c=c<<1;c=c>>>0>>0?g:c;g=k[o>>2]|0;d=g-m|0;if(!c){l=0;j=0;h=d;c=g}else q=8}else{d=k[o>>2]|0;c=2147483647;g=d;d=d-m|0;q=8}if((q|0)==8){l=c;j=lj(c)|0;h=d;c=g}i[j+h>>0]=n;d=j+(h+1)|0;m=c-m|0;n=j+(h-m)|0;vw(n|0,e|0,m|0)|0;k[a>>2]=n;k[o>>2]=d;k[p>>2]=j+l;if(f){mj(f);d=k[o>>2]|0}}else{i[c>>0]=n;d=(k[o>>2]|0)+1|0;k[o>>2]=d}m=b&255;c=k[p>>2]|0;if(d>>>0>>0){i[d>>0]=m;k[o>>2]=(k[o>>2]|0)+1;return}e=k[a>>2]|0;f=e;d=d-f+1|0;if((d|0)<0){jj(a);f=k[a>>2]|0;c=k[p>>2]|0;e=f}l=e;c=c-l|0;if(c>>>0<1073741823){c=c<<1;c=c>>>0>>0?d:c;g=k[o>>2]|0;d=g-l|0;if(!c){j=0;h=0;c=g}else q=18}else{d=k[o>>2]|0;c=2147483647;g=d;d=d-l|0;q=18}if((q|0)==18){j=c;h=lj(c)|0;c=g}i[h+d>>0]=m;b=c-l|0;q=h+(d-b)|0;vw(q|0,e|0,b|0)|0;k[a>>2]=q;k[o>>2]=h+(d+1);k[p>>2]=h+j;if(!f)return;mj(f);return}function Ji(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=k[a>>2]|0;q=k[b>>2]|0;p=q;j=e;n=c;l=d-n|0;if((l|0)<=0){r=q;return r|0}o=a+8|0;b=k[o>>2]|0;r=a+4|0;m=k[r>>2]|0;f=m;if((l|0)<=(b-f|0)){h=f-p|0;if((l|0)>(h|0)){g=c+h|0;if((g|0)==(d|0))b=m;else{f=g;b=m;do{i[b>>0]=i[f>>0]|0;b=(k[r>>2]|0)+1|0;k[r>>2]=b;f=f+1|0}while((f|0)!=(d|0))}if((h|0)>0)h=b;else{r=q;return r|0}}else{h=m;g=d}e=h-(e+(l-j+p))|0;b=q+e|0;if(b>>>0>>0){f=h;do{i[f>>0]=i[b>>0]|0;b=b+1|0;f=(k[r>>2]|0)+1|0;k[r>>2]=f}while((b|0)!=(m|0))}xw(h+(0-e)|0,q|0,e|0)|0;xw(q|0,c|0,g-n|0)|0;r=q;return r|0}f=f-j+l|0;if((f|0)<0){jj(a);b=k[o>>2]|0;e=k[a>>2]|0}g=e;b=b-g|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?f:b;f=p-g|0;if(!b){g=0;l=0}else h=15}else{b=2147483647;f=p-g|0;h=15}if((h|0)==15){g=b;l=lj(b)|0}j=l+f|0;b=j;h=l+g|0;if((c|0)!=(d|0)){e=c;g=j;do{i[g>>0]=i[e>>0]|0;g=b+1|0;b=g;e=e+1|0}while((e|0)!=(d|0));e=k[a>>2]|0}c=p-e|0;d=l+(f-c)|0;vw(d|0,e|0,c|0)|0;p=(k[r>>2]|0)-p|0;c=b;vw(c|0,q|0,p|0)|0;b=k[a>>2]|0;k[a>>2]=d;k[r>>2]=c+p;k[o>>2]=h;if(!b){r=j;return r|0}mj(b);r=j;return r|0}function Ki(a){a=a|0;var b=0;k[a>>2]=36800;b=k[a+8>>2]|0;if(!b)return;a=a+12|0;if((k[a>>2]|0)!=(b|0))k[a>>2]=b;mj(b);return}function Li(a){a=a|0;var b=0,c=0;k[a>>2]=36800;b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Ni(b,-1);Ni(b,i[a+4>>0]|0);e=a+12|0;d=a+8|0;a=(k[e>>2]|0)-(k[d>>2]|0)+2|0;Ni(b,(a&65535)>>>8&255);Ni(b,a&255);a=k[d>>2]|0;if((k[e>>2]|0)==(a|0))return;else c=0;do{Ni(b,i[a+c>>0]|0);c=c+1|0;a=k[d>>2]|0}while(c>>>0<((k[e>>2]|0)-a|0)>>>0);return}function Ni(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=k[a+4>>2]|0;if(e){c=e+24|0;d=k[c>>2]|0;if((d|0)==(k[e+28>>2]|0)){Vb[k[(k[e>>2]|0)+52>>2]&63](e,b&255)|0;return}else{k[c>>2]=d+1;i[d>>0]=b;return}}c=a+16|0;d=k[c>>2]|0;if(d>>>0<(k[a+12>>2]|0)>>>0){k[c>>2]=d+1;i[(k[a+8>>2]|0)+d>>0]=b;return}c=Va(16)|0;x=0;d=Da(1)|0;b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}x=0;Fa(7,c|0,4,d|0);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}function Oi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;e=(b|0)<4095?(b+128|0)/256|0:16;f=(c*3|0)+2+e|0;d=c+1|0;f=(f|0)<(d|0)|(f|0)>(b|0)?d:f;k[a+4>>2]=f;d=(e<<2|3)+(c*5|0)|0;d=(d|0)>(b|0)|(d|0)<(f|0)?f:d;k[a+8>>2]=d;c=(c*7|0)+4+(e*17|0)|0;k[a+12>>2]=(c|0)>(b|0)|(c|0)<(d|0)?d:c;k[a>>2]=b;k[a+16>>2]=64;return}function Pi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;l=r;r=r+128|0;h=l+100|0;d=l+16|0;c=l+112|0;j=l+4|0;m=l;e=d;f=a+20|0;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));k[d+16>>2]=k[a+4>>2];f=zc(c,d,a+56|0)|0;c=k[(k[f>>2]|0)+16>>2]|0;a=a+8|0;x=0;k[h>>2]=k[a>>2];k[h+4>>2]=k[a+4>>2];k[h+8>>2]=k[a+8>>2];c=Aa(c|0,f|0,h|0)|0;a=x;x=0;do if(a&1)c=Wa()|0;else{e=b+4|0;k[j>>2]=k[e>>2];k[j+4>>2]=k[e+4>>2];k[j+8>>2]=k[e+8>>2];e=b+16|0;a=k[e>>2]|0;h=j+8|0;k[h>>2]=(k[h>>2]|0)-a;h=j+4|0;k[h>>2]=(k[h>>2]|0)+a;h=k[(k[f>>2]|0)+12>>2]|0;k[m>>2]=c;x=0;c=Ea(h|0,f|0,m|0,j|0,((i[b>>0]|0)==0?0:(k[b+8>>2]|0)+a|0)|0)|0;j=x;x=0;if(j&1){c=Wa()|0;d=k[m>>2]|0;k[m>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}d=k[m>>2]|0;k[m>>2]=0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d);if(!(k[b+4>>2]|0))k[e>>2]=(k[e>>2]|0)+c;if(!f){r=l;return}Lb[k[(k[f>>2]|0)+4>>2]&255](f);r=l;return}while(0);if(!f)fb(c|0);Lb[k[(k[f>>2]|0)+4>>2]&255](f);fb(c|0)}function Qi(a,b){a=a|0;b=b|0;k[a>>2]=k[b>>2];k[a+4>>2]=k[b+4>>2];k[a+8>>2]=k[b+8>>2];i[a+12>>0]=0;b=a+16|0;a=b+100|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function Ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+32|0;t=u+4|0;o=u+16|0;v=u;Si(a);p=a+16|0;e=k[a+24>>2]|0;a:do if((e+-2|0)>>>0<=14){q=a+40|0;c=k[q>>2]|0;if(c>>>0>2)c=5;else{s=a+32|0;f=k[s>>2]|0;switch(f|0){case 0:{c=1;break a}case 4:{if((c|0)==2){c=2;break a}break}case 3:break;default:if(c){c=2;break a}}n=a+100|0;c=a+108|0;d=k[c>>2]|0;if((d|0)<1){d=k[p>>2]|0;k[c>>2]=d;c=k[a+20>>2]|0;k[a+112>>2]=c}else c=k[a+112>>2]|0;j=Dw(c|0,((c|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;h=(e+7|0)/8|0;h=Dw(j|0,M|0,h|0,((h|0)<0)<<31>>31|0)|0;j=b+4|0;c=k[j>>2]|0;g=b+8|0;if((c|0)!=0?(l=k[g>>2]|0,m=Dw(f|0,((f|0)<0)<<31>>31|0,h|0,M|0)|0,e=M,0<(e|0)|0==(e|0)&l>>>0>>0):0){c=Va(16)|0;x=0;d=Da(1)|0;v=x;x=0;if(!(v&1)?(x=0,Fa(7,c|0,3,d|0),v=x,x=0,!(v&1)):0)ub(c|0,824,96);v=Wa()|0;Ua(c|0);fb(v|0)}l=a+52|0;m=a+12|0;if((f|0)>0)f=0;else{r=u;return}while(1){Ti(a,(f|0)==0);d=xc(o,p,l)|0;e=k[(k[d>>2]|0)+8>>2]|0;x=0;k[t>>2]=k[b>>2];k[t+4>>2]=k[b+4>>2];k[t+8>>2]=k[b+8>>2];e=Aa(e|0,d|0,t|0)|0;w=x;x=0;if(w&1){e=32;break}w=k[(k[d>>2]|0)+16>>2]|0;k[v>>2]=e;x=0;oa(w|0,d|0,v|0,n|0,a|0,(i[m>>0]|0)!=0|0);w=x;x=0;if(w&1){e=30;break}e=k[v>>2]|0;k[v>>2]=0;if(e)Lb[k[(k[e>>2]|0)+4>>2]&255](e);if(!c)c=0;else{c=c+h|0;k[j>>2]=c;k[g>>2]=(k[g>>2]|0)-h}e=(k[q>>2]|0)==0;f=(e&1)+f|0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d);if(!e){e=34;break}if((f|0)>=(k[s>>2]|0)){e=34;break}}if((e|0)==30){c=Wa()|0;e=k[v>>2]|0;k[v>>2]=0;if(e)Lb[k[(k[e>>2]|0)+4>>2]&255](e)}else if((e|0)==32){c=Wa()|0;if(!d){w=c;fb(w|0)}}else if((e|0)==34){r=u;return}Lb[k[(k[d>>2]|0)+4>>2]&255](d);w=c;fb(w|0)}}else c=2;while(0);d=Va(16)|0;x=0;e=Da(1)|0;w=x;x=0;if(!(w&1)?(x=0,Fa(7,d|0,c|0,e|0),w=x,x=0,!(w&1)):0)ub(d|0,824,96);w=Wa()|0;Ua(d|0);fb(w|0)}function Si(a){a=a|0;var b=0,c=0,d=0,e=0;if((Wi(a)|0)<<24>>24!=-40){b=Va(16)|0;x=0;c=Da(1)|0;e=x;x=0;if(!(e&1)?(x=0,Fa(7,b|0,5,c|0),e=x,x=0,!(e&1)):0)ub(b|0,824,96);e=Wa()|0;Ua(b|0);fb(e|0)}b=Wi(a)|0;if(b<<24>>24==-38)return;while(1){d=((Vi(a)|0)&255)<<8;d=d|(Vi(a)|0)&255;b=Xi(a,b)|0;c=-2-b+d|0;if((c|0)<0)break;if((c|0)>0){b=d+-2-b|0;c=0;do{Vi(a)|0;c=c+1|0}while((c|0)!=(b|0))}b=Wi(a)|0;if(b<<24>>24==-38){e=8;break}}if((e|0)==8)return;b=Va(16)|0;x=0;c=Da(1)|0;e=x;x=0;if(!(e&1)?(x=0,Fa(7,b|0,5,c|0),e=x,x=0,!(e&1)):0)ub(b|0,824,96);e=Wa()|0;Ua(b|0);fb(e|0)}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if(!b){if((Vi(a)|0)<<24>>24!=-1){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,12,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}if((Vi(a)|0)<<24>>24!=-38){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}Vi(a)|0;Vi(a)|0;c=Vi(a)|0;d=c&255;do if(c<<24>>24==1){Vi(a)|0;c=0;e=20}else{if((d|0)==(k[a+32>>2]|0)){b=Vi(a)|0;if(!(c<<24>>24))break;else{c=0;e=20;break}}b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,2,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}while(0);if((e|0)==20)while(1){Vi(a)|0;c=c+1|0;b=Vi(a)|0;if((c|0)==(d|0))break;else e=20}k[a+36>>2]=b&255;e=Vi(a)|0;c=a+40|0;k[c>>2]=e&255;if((e&255)>=3){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}if((Vi(a)|0)<<24>>24){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}d=a+28|0;if(k[d>>2]|0)return;b=k[a+108>>2]|0;if(!b)b=k[a+16>>2]|0;if(!(k[c>>2]|0))c=1;else c=k[a+32>>2]|0;e=ia(c,b)|0;a=ia(e,((k[a+24>>2]|0)+7|0)/8|0)|0;k[d>>2]=a;return}function Ui(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((c|0)<=0)return;n=b+4|0;o=b+8|0;q=0;do{p=Vi(a)|0;d=k[n>>2]|0;e=k[o>>2]|0;if(d>>>0>=e>>>0){f=k[b>>2]|0;g=f;h=d-g+1|0;if((h|0)<0){jj(b);g=k[b>>2]|0;e=k[o>>2]|0;f=g}m=f;d=e-m|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?h:d;h=k[n>>2]|0;e=h-m|0;if(!d){l=0;j=0;d=h}else r=10}else{e=k[n>>2]|0;d=2147483647;h=e;e=e-m|0;r=10}if((r|0)==10){r=0;l=d;j=lj(d)|0;d=h}i[j+e>>0]=p;m=d-m|0;p=j+(e-m)|0;vw(p|0,f|0,m|0)|0;k[b>>2]=p;k[n>>2]=j+(e+1);k[o>>2]=j+l;if(g)mj(g)}else{i[d>>0]=p;k[n>>2]=(k[n>>2]|0)+1}q=q+1|0}while((q|0)!=(c|0));return}function Vi(a){a=a|0;var b=0,c=0,d=0,e=0;c=k[a>>2]|0;if(c){a=c+12|0;b=k[a>>2]|0;if((b|0)==(k[c+16>>2]|0))a=Ob[k[(k[c>>2]|0)+40>>2]&127](c)|0;else{k[a>>2]=b+1;a=l[b>>0]|0}e=a&255;return e|0}d=a+8|0;e=k[d>>2]|0;if(e){a=a+4|0;b=k[a>>2]|0;c=i[b>>0]|0;if(!b){e=c;return e|0}k[a>>2]=b+1;k[d>>2]=e+-1;e=c;return e|0}a=Va(16)|0;x=0;b=Da(1)|0;e=x;x=0;if(e&1){e=Wa()|0;Ua(a|0);fb(e|0)}x=0;Fa(7,a|0,4,b|0);e=x;x=0;if(e&1){e=Wa()|0;Ua(a|0);fb(e|0)}else ub(a|0,824,96);return 0}function Wi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=r;r=r+176|0;b=c+152|0;i=c+16|0;g=c;h=Vi(a)|0;d=h&255;if(h<<24>>24==-1){do b=Vi(a)|0;while(b<<24>>24==-1);r=c;return b|0}h=i+56|0;f=i+4|0;k[i>>2]=36160;k[h>>2]=36180;x=0;ra(62,i+56|0,f|0);e=x;x=0;if(e&1){i=Wa()|0;qn(h);fb(i|0)}k[i+128>>2]=0;k[i+132>>2]=-1;k[i>>2]=36200;k[i+56>>2]=36220;x=0;qa(180,f|0);e=x;x=0;do if(e&1)b=Wa()|0;else{k[f>>2]=36236;e=i+36|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[i+52>>2]=16;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;x=0;ra(63,f|0,b|0);c=x;x=0;if(c&1){i=Wa()|0;Sm(b);Sm(e);xn(f);b=i;break}Sm(b);k[i+((k[(k[i>>2]|0)+-12>>2]|0)+76)>>2]=48;x=0;b=va(28,i|0,50907,62)|0;c=x;x=0;if(!(c&1)?(c=b+((k[(k[b>>2]|0)+-12>>2]|0)+4)|0,k[c>>2]=k[c>>2]&-75|8,c=b+((k[(k[b>>2]|0)+-12>>2]|0)+4)|0,k[c>>2]=k[c>>2]|16384,k[b+((k[(k[b>>2]|0)+-12>>2]|0)+12)>>2]=2,x=0,Aa(38,b|0,d|0)|0,d=x,x=0,!(d&1)):0){c=Va(16)|0;x=0;ra(64,g|0,f|0);d=x;x=0;if(!(d&1)){x=0;b=Da(1)|0;d=x;x=0;if(!(d&1)?(x=0,Ja(36,c|0,12,b|0,g|0),d=x,x=0,!(d&1)):0){x=0;Fa(6,c|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(g);if(!a){g=b;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}else b=Wa()|0;Ua(c|0);g=b;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}g=Wa()|0;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}while(0);i=b;qn(h);fb(i|0);return 0}function Xi(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,l=0,m=0,n=0;c=r;r=r+320|0;h=c+300|0;l=c+152|0;i=c+288|0;m=c+16|0;j=c;switch(b<<24>>24){case -9:{n=(Vi(a)|0)&255;k[a+24>>2]=n;n=((Vi(a)|0)&255)<<8|(Vi(a)|0)&255;m=((Vi(a)|0)&255)<<8|(Vi(a)|0)&255;k[a+16>>2]=m;k[a+20>>2]=n;n=(Vi(a)|0)&255;k[a+32>>2]=n;n=6;r=c;return n|0}case -8:{n=Yi(a)|0;r=c;return n|0}case -24:{n=Zi(a)|0;r=c;return n|0}case -53:case -54:case -55:case -57:case -58:case -59:case -61:case -62:case -63:case -64:{g=l+56|0;e=l+4|0;k[l>>2]=36160;k[g>>2]=36180;x=0;ra(62,l+56|0,e|0);m=x;x=0;if(m&1){n=Wa()|0;qn(g);fb(n|0)}k[l+128>>2]=0;k[l+132>>2]=-1;k[l>>2]=36200;k[l+56>>2]=36220;x=0;qa(180,e|0);m=x;x=0;do if(m&1)a=Wa()|0;else{k[e>>2]=36236;f=l+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[l+52>>2]=16;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;x=0;ra(63,e|0,h|0);m=x;x=0;if(m&1){a=Wa()|0;Sm(h);Sm(f);xn(e);break}Sm(h);x=0;a=va(28,l|0,50970,26)|0;m=x;x=0;do if((!(m&1)?(x=0,d=Aa(38,a|0,b&255|0)|0,m=x,x=0,!(m&1)):0)?(x=0,va(28,d|0,50997,18)|0,m=x,x=0,!(m&1)):0){d=Va(16)|0;x=0;ra(64,i|0,e|0);m=x;x=0;if(!(m&1)){x=0;a=Da(1)|0;m=x;x=0;if(!(m&1)?(x=0,Ja(36,d|0,10,a|0,i|0),m=x,x=0,!(m&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;a=Wa()|0;Sm(i);if(!c)break}else a=Wa()|0;Ua(d|0)}else n=20;while(0);if((n|0)==20)a=Wa()|0;k[l>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);n=a;fb(n|0)}while(0);n=a;qn(g);fb(n|0)}case -25:case -32:case -2:{n=0;r=c;return n|0}default:{i=m+56|0;f=m+4|0;k[m>>2]=36160;k[i>>2]=36180;x=0;ra(62,m+56|0,f|0);l=x;x=0;if(l&1){n=Wa()|0;qn(i);fb(n|0)}k[m+128>>2]=0;k[m+132>>2]=-1;k[m>>2]=36200;k[m+56>>2]=36220;x=0;qa(180,f|0);l=x;x=0;do if(l&1)a=Wa()|0;else{k[f>>2]=36236;g=m+36|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[m+52>>2]=16;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;x=0;ra(63,f|0,h|0);l=x;x=0;if(l&1){a=Wa()|0;Sm(h);Sm(g);xn(f);break}Sm(h);x=0;a=va(28,m|0,51016,20)|0;l=x;x=0;do if((!(l&1)?(x=0,e=Aa(38,a|0,b&255|0)|0,l=x,x=0,!(l&1)):0)?(x=0,va(28,e|0,51037,13)|0,l=x,x=0,!(l&1)):0){d=Va(16)|0;x=0;ra(64,j|0,f|0);l=x;x=0;if(!(l&1)){x=0;a=Da(1)|0;l=x;x=0;if(!(l&1)?(x=0,Ja(36,d|0,11,a|0,j|0),l=x,x=0,!(l&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;a=Wa()|0;Sm(j);if(!c)break}else a=Wa()|0;Ua(d|0)}else n=40;while(0);if((n|0)==40)a=Wa()|0;k[m>>2]=36200;k[i>>2]=36220;k[f>>2]=36236;Sm(g);xn(f);qn(i);n=a;fb(n|0)}while(0);n=a;qn(i);fb(n|0)}}return 0}function Yi(a){a=a|0;var b=0;if((Vi(a)|0)<<24>>24!=1){a=1;return a|0}b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+52>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+56>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+60>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+64>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+68>>2]=b;a=11;return a|0}function Zi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;c=r;r=r+16|0;e=c;k[e>>2]=0;f=e+4|0;k[f>>2]=0;k[e+8>>2]=0;x=0;Fa(9,a|0,e|0,4);b=x;x=0;a:do if(b&1)d=3;else{b=k[e>>2]|0;b:do if(!(yl(b,51051,4)|0)){x=0;b=ta(69,a|0)|0;g=x;x=0;if(g&1){d=3;break a}b=b&255;switch(b|0){case 3:case 2:case 1:case 0:{k[a+44>>2]=b;a=5;b=k[e>>2]|0;break b}case 5:case 4:{b=Va(16)|0;x=0;a=Da(1)|0;g=x;x=0;if(!(g&1)?(x=0,Fa(7,b|0,7,a|0),g=x,x=0,!(g&1)):0){x=0;Fa(6,b|0,824,96);x=0;d=3;break a}a=Wa()|0;Ua(b|0);break a}default:{b=Va(16)|0;x=0;a=Da(1)|0;g=x;x=0;if(!(g&1)?(x=0,Fa(7,b|0,5,a|0),g=x,x=0,!(g&1)):0){x=0;Fa(6,b|0,824,96);x=0;d=3;break a}a=Wa()|0;Ua(b|0);break a}}}else a=4;while(0);if(!b){r=c;return a|0}if((k[f>>2]|0)!=(b|0))k[f>>2]=b;mj(b);r=c;return a|0}while(0);if((d|0)==3)a=Wa()|0;b=k[e>>2]|0;if(!b)fb(a|0);if((k[f>>2]|0)!=(b|0))k[f>>2]=b;mj(b);fb(a|0);return 0}function _i(a){a=a|0;var b=0,c=0,d=0;d=k[(k[a>>2]|0)+-12>>2]|0;k[a+d>>2]=36200;b=a+(d+56)|0;k[b>>2]=36220;c=a+(d+4)|0;k[c>>2]=36236;Sm(a+(d+36)|0);xn(c);qn(b);return}function $i(a){a=a|0;return}function aj(a){a=a|0;mj(a);return}function bj(a){a=a|0;i[a>>0]=0;a=a+4|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;k[a+24>>2]=0;k[a+28>>2]=0;return}function cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;e=r;r=r+16|0;f=e;b=Gi(b)|0;k[f>>2]=b;c=a+28|0;d=k[c>>2]|0;if(d>>>0<(k[a+32>>2]|0)>>>0){k[d>>2]=b;k[c>>2]=d+4;k[f>>2]=0;r=e;return}x=0;ra(57,a+24|0,f|0);a=x;x=0;if(a&1){b=Wa()|0;c=k[f>>2]|0;k[f>>2]=0;if(!c)fb(b|0);Lb[k[(k[c>>2]|0)+4>>2]&255](c);fb(b|0)}else{b=k[f>>2]|0;k[f>>2]=0;if(!b){r=e;return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);r=e;return}}function dj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=a+4|0;k[d>>2]=k[b>>2];k[d+4>>2]=k[b+4>>2];k[d+8>>2]=k[b+8>>2];Ni(a,-1);Ni(a,-40);d=a+28|0;e=a+24|0;b=k[e>>2]|0;if((k[d>>2]|0)==(b|0)){Ni(a,-1);Ni(a,-39);a=a+16|0;a=k[a>>2]|0;return a|0}else c=0;do{f=k[b+(c<<2)>>2]|0;Mb[k[(k[f>>2]|0)+8>>2]&127](f,a);c=c+1|0;b=k[e>>2]|0}while(c>>>0<(k[d>>2]|0)-b>>2>>>0);Ni(a,-1);Ni(a,-39);f=a+16|0;f=k[f>>2]|0;return f|0}function ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;m=r;r=r+48|0;h=m+32|0;e=m+12|0;i=m+8|0;l=m+4|0;n=m;d=c+36|0;do if(((((k[d>>2]|0)==0?(k[c+40>>2]|0)==0:0)?(k[c+44>>2]|0)==0:0)?(k[c+48>>2]|0)==0:0)?(k[c+52>>2]|0)==0:0){d=k[c+8>>2]|0;if((d|0)<=12){f=a+28|0;g=a+32|0;break}Oi(e,(1<>2]|0);d=Fi(e)|0;k[i>>2]=d;f=a+28|0;e=k[f>>2]|0;g=a+32|0;if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[i>>2]=0;break}x=0;ra(57,a+24|0,i|0);h=x;x=0;if(!(h&1)){d=k[i>>2]|0;k[i>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[i>>2]|0;k[i>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}else j=6;while(0);do if((j|0)==6){d=Fi(d)|0;k[h>>2]=d;f=a+28|0;e=k[f>>2]|0;g=a+32|0;if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[h>>2]=0;break}x=0;ra(57,a+24|0,h|0);j=x;x=0;if(!(j&1)){d=k[h>>2]|0;k[h>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[h>>2]|0;k[h>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}while(0);d=a+20|0;e=(k[d>>2]|0)+1|0;k[d>>2]=e;d=k[c+24>>2]|0;h=(d|0)==0?1:k[c+16>>2]|0;d=Hi(e,h,k[c+20>>2]|0,d)|0;k[l>>2]=d;e=k[f>>2]|0;do if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[l>>2]=0}else{x=0;ra(57,a+24|0,l|0);j=x;x=0;if(!(j&1)){d=k[l>>2]|0;k[l>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[l>>2]|0;k[l>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}while(0);i=lj(104)|0;k[i>>2]=36820;k[i+4>>2]=h;e=i+8|0;k[e>>2]=k[b>>2];k[e+4>>2]=k[b+4>>2];k[e+8>>2]=k[b+8>>2];e=i+20|0;d=e+84|0;do{k[e>>2]=k[c>>2];e=e+4|0;c=c+4|0}while((e|0)<(d|0));k[n>>2]=i;c=k[f>>2]|0;if(c>>>0<(k[g>>2]|0)>>>0){k[c>>2]=i;k[f>>2]=c+4;k[n>>2]=0;r=m;return}x=0;ra(57,a+24|0,n|0);a=x;x=0;if(a&1){c=Wa()|0;d=k[n>>2]|0;k[n>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}else{c=k[n>>2]|0;k[n>>2]=0;if(!c){r=m;return}Lb[k[(k[c>>2]|0)+4>>2]&255](c);r=m;return}}function fj(a,b,c,d,e,f,g,h,j,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,s=0,t=0,u=0;p=r;r=r+96|0;o=p;n=sc(a,b,o,0)|0;if(n){e=n;r=p;return e|0}i[o+32>>0]=0;s=k[o+8>>2]|0;u=k[o>>2]|0;t=k[o+4>>2]|0;n=ia(t,u)|0;q=k[o+16>>2]|0;n=ia(ia(n,(s|0)<9?1:2)|0,q)|0;k[d>>2]=n;n=Pl(n)|0;k[c>>2]=n;k[e>>2]=u;k[f>>2]=t;k[g>>2]=s;k[h>>2]=k[o+12>>2];k[j>>2]=q;k[l>>2]=k[o+20>>2];k[m>>2]=k[o+24>>2];e=tc(n,k[d>>2]|0,a,b,0,0)|0;r=p;return e|0}function gj(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,l=0,m=0,n=0;m=r;r=r+96|0;j=m+4|0;g=m;l=j;n=l+84|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(n|0));k[j+16>>2]=f;k[j+8>>2]=e;k[j>>2]=c;k[j+4>>2]=d;c=Pl(b)|0;k[h>>2]=c;k[g>>2]=0;c=rc(h,b,g,a,b,j,0)|0;k[i>>2]=k[g>>2];r=m;return c|0}function hj(a,b){a=a|0;b=b|0;var c=0;c=r;r=r+16|0;k[c>>2]=b;b=k[9320]|0;ml(b,a,c)|0;el(10,b)|0;Pa()}function ij(a){a=a|0;Ta(51337,51366,1164,51442)}function jj(a){a=a|0;Ta(51463,51486,303,51442)}function kj(){var a=0,b=0;a=r;r=r+16|0;if(!(mb(37024,4)|0)){b=ib(k[9255]|0)|0;r=a;return b|0}else hj(51562,a);return 0}function lj(a){a=a|0;var b=0;b=(a|0)==0?1:a;a=Pl(b)|0;a:do if(!a){while(1){a=uj()|0;if(!a)break;$b[a&7]();a=Pl(b)|0;if(a)break a}b=Va(4)|0;k[b>>2]=36844;ub(b|0,592,78)}while(0);return a|0}function mj(a){a=a|0;Ql(a);return}function nj(a){a=a|0;mj(a);return}function oj(a){a=a|0;k[a>>2]=36844;return}function pj(a){a=a|0;return}function qj(a){a=a|0;mj(a);return}function rj(a){a=a|0;return 51611}function sj(a){a=a|0;var b=0;b=r;r=r+16|0;x=0;Ga(a|0);a=x;x=0;if(!(a&1)){x=0;ra(85,51626,b|0);x=0}a=Wa(0)|0;cb(a|0)|0;x=0;ra(85,51666,b+8|0);x=0;a=Wa(0)|0;x=0;Ga(3);b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else oc(a)}function tj(){var a=0,b=0,c=0;x=0;a=Da(2)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}if(((a|0)!=0?(b=k[a>>2]|0,(b|0)!=0):0)?(c=b+48|0,(k[c>>2]&-256|0)==1126902528?(k[c+4>>2]|0)==1129074247:0):0)sj(k[b+12>>2]|0);c=k[9208]|0;k[9208]=c+0;sj(c)}function uj(){var a=0;a=k[9214]|0;k[9214]=a+0;return a|0}function vj(a){a=a|0;return}function wj(a){a=a|0;k[a>>2]=36868;dk(a+4|0);return}function xj(a){a=a|0;wj(a);mj(a);return}function yj(a){a=a|0;return k[a+4>>2]|0}function zj(a){a=a|0;return}function Aj(a){a=a|0;k[a>>2]=36888;return}function Bj(a){a=a|0;return}function Cj(a){a=a|0;mj(a);return}function Dj(a){a=a|0;return 51716}function Ej(a){a=a|0;return}function Fj(a){a=a|0;return}function Gj(a){a=a|0;return}function Hj(a){a=a|0;mj(a);return}function Ij(a){a=a|0;mj(a);return}function Jj(a){a=a|0;mj(a);return}function Kj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+64|0;f=g;if((a|0)!=(b|0))if((b|0)!=0?(e=Qj(b,656,672,0)|0,(e|0)!=0):0){b=f;d=b+56|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(d|0));k[f>>2]=e;k[f+8>>2]=a;k[f+12>>2]=-1;k[f+48>>2]=1;cc[k[(k[e>>2]|0)+28>>2]&63](e,f,k[c>>2]|0,1);if((k[f+24>>2]|0)==1){k[c>>2]=k[f+16>>2];b=1}else b=0}else b=0;else b=1;r=g;return b|0}function Lj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=b+16|0;e=k[a>>2]|0;do if(e){if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}else{k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1}while(0);return}function Mj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Lj(0,b,c,d);return}function Nj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Lj(0,b,c,d);else{a=k[a+8>>2]|0;cc[k[(k[a>>2]|0)+28>>2]&63](a,b,c,d)}return}function Oj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=k[a+4>>2]|0;e=f>>8;if(f&1)e=k[(k[c>>2]|0)+e>>2]|0;a=k[a>>2]|0;cc[k[(k[a>>2]|0)+28>>2]&63](a,b,c+e|0,(f&2|0)!=0?d:2);return}function Pj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if((a|0)!=(k[b+8>>2]|0)){f=k[a+12>>2]|0;e=a+16+(f<<3)|0;Oj(a+16|0,b,c,d);if((f|0)>1){f=b+54|0;a=a+24|0;do{Oj(a,b,c,d);if(i[f>>0]|0)break a;a=a+8|0}while(a>>>0>>0)}}else Lj(0,b,c,d);while(0);return}function Qj(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,l=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+64|0;p=q;o=k[a>>2]|0;n=a+(k[o+-8>>2]|0)|0;o=k[o+-4>>2]|0;k[p>>2]=c;k[p+4>>2]=a;k[p+8>>2]=b;k[p+12>>2]=d;d=p+16|0;a=p+20|0;b=p+24|0;e=p+28|0;f=p+32|0;g=p+40|0;h=(o|0)==(c|0);l=d;m=l+36|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(m|0));j[d+36>>1]=0;i[d+38>>0]=0;a:do if(h){k[p+48>>2]=1;Sb[k[(k[c>>2]|0)+20>>2]&15](c,p,n,n,1,0);d=(k[b>>2]|0)==1?n:0}else{Jb[k[(k[o>>2]|0)+24>>2]&15](o,p,n,1,0);switch(k[p+36>>2]|0){case 0:{d=(k[g>>2]|0)==1&(k[e>>2]|0)==1&(k[f>>2]|0)==1?k[a>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((k[b>>2]|0)!=1?!((k[g>>2]|0)==0&(k[e>>2]|0)==1&(k[f>>2]|0)==1):0){d=0;break}d=k[d>>2]|0}while(0);r=q;return d|0}function Rj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;i[b+53>>0]=1;do if((k[b+4>>2]|0)==(d|0)){i[b+52>>0]=1;d=b+16|0;a=k[d>>2]|0;if(!a){k[d>>2]=c;k[b+24>>2]=e;k[b+36>>2]=1;if(!((e|0)==1?(k[b+48>>2]|0)==1:0))break;i[b+54>>0]=1;break}if((a|0)!=(c|0)){e=b+36|0;k[e>>2]=(k[e>>2]|0)+1;i[b+54>>0]=1;break}a=b+24|0;d=k[a>>2]|0;if((d|0)==2){k[a>>2]=e;d=e}if((d|0)==1?(k[b+48>>2]|0)==1:0)i[b+54>>0]=1}while(0);return}function Sj(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,j=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){q=k[a+12>>2]|0;h=a+16+(q<<3)|0;Uj(a+16|0,b,c,d,e);f=a+24|0;if((q|0)<=1)break;g=k[a+8>>2]|0;if((g&2|0)==0?(j=b+36|0,(k[j>>2]|0)!=1):0){if(!(g&1)){g=b+54|0;while(1){if(i[g>>0]|0)break a;if((k[j>>2]|0)==1)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+24|0;a=b+54|0;while(1){if(i[a>>0]|0)break a;if((k[j>>2]|0)==1?(k[g>>2]|0)==1:0)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+54|0;while(1){if(i[g>>0]|0)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}if((k[b+16>>2]|0)!=(c|0)?(p=b+20|0,(k[p>>2]|0)!=(c|0)):0){k[b+32>>2]=d;m=b+44|0;if((k[m>>2]|0)==4)break;g=k[a+12>>2]|0;h=a+16+(g<<3)|0;j=b+52|0;d=b+53|0;n=b+54|0;l=a+8|0;o=b+24|0;b:do if((g|0)>0){g=0;f=0;a=a+16|0;while(1){i[j>>0]=0;i[d>>0]=0;Tj(a,b,c,c,1,e);if(i[n>>0]|0){q=20;break b}do if(i[d>>0]|0){if(!(i[j>>0]|0))if(!(k[l>>2]&1)){f=1;q=20;break b}else{f=1;break}if((k[o>>2]|0)==1)break b;if(!(k[l>>2]&2))break b;else{g=1;f=1}}while(0);a=a+8|0;if(a>>>0>=h>>>0){q=20;break}}}else{g=0;f=0;q=20}while(0);do if((q|0)==20){if((!g?(k[p>>2]=c,c=b+40|0,k[c>>2]=(k[c>>2]|0)+1,(k[b+36>>2]|0)==1):0)?(k[o>>2]|0)==2:0){i[n>>0]=1;if(f)break}else q=24;if((q|0)==24?f:0)break;k[m>>2]=4;break a}while(0);k[m>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function Tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=k[a+4>>2]|0;g=h>>8;if(h&1)g=k[(k[d>>2]|0)+g>>2]|0;a=k[a>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,d+g|0,(h&2|0)!=0?e:2,f);return}function Uj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=k[a+4>>2]|0;f=g>>8;if(g&1)f=k[(k[c>>2]|0)+f>>2]|0;a=k[a>>2]|0;Jb[k[(k[a>>2]|0)+24>>2]&15](a,b,c+f|0,(g&2|0)!=0?d:2,e);return}function Vj(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,j=0;a:do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){h=k[a+8>>2]|0;Jb[k[(k[h>>2]|0)+24>>2]&15](h,b,c,d,e);break}if((k[b+16>>2]|0)!=(c|0)?(g=b+20|0,(k[g>>2]|0)!=(c|0)):0){k[b+32>>2]=d;d=b+44|0;if((k[d>>2]|0)==4)break;f=b+52|0;i[f>>0]=0;j=b+53|0;i[j>>0]=0;a=k[a+8>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,c,1,e);if(i[j>>0]|0){if(!(i[f>>0]|0)){f=1;h=13}}else{f=0;h=13}do if((h|0)==13){k[g>>2]=c;j=b+40|0;k[j>>2]=(k[j>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0){i[b+54>>0]=1;if(f)break}else h=16;if((h|0)==16?f:0)break;k[d>>2]=4;break a}while(0);k[d>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function Wj(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;do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(g=b+28|0,(k[g>>2]|0)!=1):0)k[g>>2]=d}else if((a|0)==(k[b>>2]|0)){if((k[b+16>>2]|0)!=(c|0)?(f=b+20|0,(k[f>>2]|0)!=(c|0)):0){k[b+32>>2]=d;k[f>>2]=c;e=b+40|0;k[e>>2]=(k[e>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0)i[b+54>>0]=1;k[b+44>>2]=4;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function Xj(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,j=0,l=0,m=0,n=0,o=0,p=0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);else{m=b+52|0;n=i[m>>0]|0;o=b+53|0;p=i[o>>0]|0;l=k[a+12>>2]|0;g=a+16+(l<<3)|0;i[m>>0]=0;i[o>>0]=0;Tj(a+16|0,b,c,d,e,f);a:do if((l|0)>1){h=b+24|0;j=a+8|0;l=b+54|0;a=a+24|0;do{if(i[l>>0]|0)break a;if(!(i[m>>0]|0)){if((i[o>>0]|0)!=0?(k[j>>2]&1|0)==0:0)break a}else{if((k[h>>2]|0)==1)break a;if(!(k[j>>2]&2))break a}i[m>>0]=0;i[o>>0]=0;Tj(a,b,c,d,e,f);a=a+8|0}while(a>>>0>>0)}while(0);i[m>>0]=n;i[o>>0]=p}return}function Yj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);else{a=k[a+8>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,d,e,f)}return}function Zj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);return}function _j(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;k[d>>2]=k[c>>2];a=Qb[k[(k[a>>2]|0)+16>>2]&63](a,b,d)|0;if(a)k[c>>2]=k[d>>2];r=e;return a&1|0}function $j(a){a=a|0;if(!a)a=0;else a=(Qj(a,656,704,0)|0)!=0;return a&1|0}function ak(){var a=0;a=Va(4)|0;oj(a);ub(a|0,592,78)}function bk(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+48|0;g=e+32|0;c=e+24|0;h=e+16|0;f=e;e=e+36|0;a=kj()|0;if((a|0)!=0?(d=k[a>>2]|0,(d|0)!=0):0){a=d+48|0;b=k[a>>2]|0;a=k[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){k[c>>2]=k[9257];hj(51919,c)}if((b|0)==1126902529&(a|0)==1129074247)a=k[d+44>>2]|0;else a=d+80|0;k[e>>2]=a;d=k[d>>2]|0;a=k[d+4>>2]|0;if(Qb[k[(k[608>>2]|0)+16>>2]&63](608,d,e)|0){h=k[e>>2]|0;e=k[9257]|0;h=Ob[k[(k[h>>2]|0)+8>>2]&127](h)|0;k[f>>2]=e;k[f+4>>2]=a;k[f+8>>2]=h;hj(51833,f)}else{k[h>>2]=k[9257];k[h+4>>2]=a;hj(51878,h)}}hj(51957,g)}function ck(){var a=0;a=r;r=r+16|0;if(!(Oa(37020,184)|0)){r=a;return}else hj(51730,a)}function dk(a){a=a|0;var b=0,c=0;c=(k[a>>2]|0)+-4|0;b=k[c>>2]|0;k[c>>2]=b+-1;if((b+-1|0)<0)mj((k[a>>2]|0)+-12|0);return}function ek(a){a=a|0;var b=0;b=r;r=r+16|0;Ql(a);if(!(sb(k[9255]|0,0)|0)){r=b;return}else hj(51780,b)}function fk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=rl(a,b,c)|0;return a|0}function gk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=sl(a,b,c)|0;return a|0}function hk(){return 37296}function ik(){return 37300}function jk(){return 37304}function kk(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function lk(a){a=a|0;if((a+-48|0)>>>0<10)a=1;else a=((a|32)+-97|0)>>>0<6;return a&1|0}function mk(){var a=0;if(!(k[9258]|0))a=37308;else{a=(kb()|0)+60|0;a=k[a>>2]|0}return a|0}function nk(a){a=a|0;var b=0,c=0;b=0;while(1){if((l[51978+b>>0]|0)==(a|0)){c=2;break}b=b+1|0;if((b|0)==87){b=87;a=52066;c=5;break}}if((c|0)==2)if(!b)a=52066;else{a=52066;c=5}if((c|0)==5)while(1){c=a;while(1){a=c+1|0;if(!(i[c>>0]|0))break;else c=a}b=b+-1|0;if(!b)break;else c=5}return a|0}function ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0.0,g=0,h=0,j=0.0,m=0,n=0,o=0,p=0.0,q=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0;K=r;r=r+512|0;G=K;switch(b|0){case 0:{J=24;I=-149;y=4;break}case 1:{J=53;I=-1074;y=4;break}case 2:{J=53;I=-1074;y=4;break}default:d=0.0}a:do if((y|0)==4){D=a+4|0;A=a+100|0;do{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0}while((kk(b)|0)!=0);b:do switch(b|0){case 43:case 45:{e=1-(((b|0)==45&1)<<1)|0;b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;H=e;break b}else{b=rk(a)|0;H=e;break b}}default:H=1}while(0);e=b;b=0;do{if((e|32|0)!=(i[53870+b>>0]|0))break;do if(b>>>0<7){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0;break}else{e=rk(a)|0;break}}while(0);b=b+1|0}while(b>>>0<8);c:do switch(b|0){case 8:break;case 3:{y=23;break}default:{g=(c|0)!=0;if(g&b>>>0>3)if((b|0)==8)break c;else{y=23;break c}d:do if(!b){b=0;do{if((e|32|0)!=(i[56747+b>>0]|0))break d;do if(b>>>0<2){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0;break}else{e=rk(a)|0;break}}while(0);b=b+1|0}while(b>>>0<3)}while(0);switch(b|0){case 3:{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==40)b=1;else{if(!(k[A>>2]|0)){d=B;break a}k[D>>2]=(k[D>>2]|0)+-1;d=B;break a}while(1){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0}else e=rk(a)|0;if(!((e+-48|0)>>>0<10|(e+-65|0)>>>0<26)?!((e|0)==95|(e+-97|0)>>>0<26):0)break;b=b+1|0}if((e|0)==41){d=B;break a}e=(k[A>>2]|0)==0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if(!g){J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0;break a}if(!b){d=B;break a}while(1){b=b+-1|0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if(!b){d=B;break a}}}case 0:{do if((e|0)==48){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|32|0)!=120){if(!(k[A>>2]|0)){b=48;break}k[D>>2]=(k[D>>2]|0)+-1;b=48;break}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=0}else{b=rk(a)|0;g=0}e:while(1){switch(b|0){case 46:{y=74;break e}case 48:break;default:{w=0;h=0;v=0;e=0;m=g;n=0;u=0;j=1.0;g=0;d=0.0;break e}}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=1;continue}else{b=rk(a)|0;g=1;continue}}if((y|0)==74){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48){g=0;e=0;do{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;g=tw(g|0,e|0,-1,-1)|0;e=M}while((b|0)==48);w=0;h=0;v=g;m=1;n=1;u=0;j=1.0;g=0;d=0.0}else{w=0;h=0;v=0;e=0;m=g;n=1;u=0;j=1.0;g=0;d=0.0}}while(1){s=b+-48|0;o=b|32;if(s>>>0>=10){t=(b|0)==46;if(!(t|(o+-97|0)>>>0<6)){o=v;s=w;break}if(t)if(!n){t=h;e=w;s=w;n=1;o=u;f=j}else{o=v;s=w;b=46;break}else y=86}else y=86;if((y|0)==86){y=0;b=(b|0)>57?o+-87|0:s;do if(!((w|0)<0|(w|0)==0&h>>>0<8)){if((w|0)<0|(w|0)==0&h>>>0<14){q=j*.0625;o=u;f=q;d=d+q*+(b|0);break}if((u|0)!=0|(b|0)==0){o=u;f=j}else{o=1;f=j;d=d+j*.5}}else{o=u;f=j;g=b+(g<<4)|0}while(0);h=tw(h|0,w|0,1,0)|0;t=v;s=M;m=1}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;w=s;v=t;b=l[b>>0]|0;u=o;j=f;continue}else{w=s;v=t;b=rk(a)|0;u=o;j=f;continue}}if(!m){b=(k[A>>2]|0)==0;if(!b)k[D>>2]=(k[D>>2]|0)+-1;if(c){if(!b?(x=k[D>>2]|0,k[D>>2]=x+-1,(n|0)!=0):0)k[D>>2]=x+-2}else qk(a,0);d=+(H|0)*0.0;break a}m=(n|0)==0;n=m?h:o;m=m?s:e;if((s|0)<0|(s|0)==0&h>>>0<8){e=s;do{g=g<<4;h=tw(h|0,e|0,1,0)|0;e=M}while((e|0)<0|(e|0)==0&h>>>0<8)}if((b|32|0)==112){e=Dl(a,c)|0;b=M;if((e|0)==0&(b|0)==-2147483648){if(!c){qk(a,0);d=0.0;break a}if(!(k[A>>2]|0)){e=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;e=0;b=0}}}else if(!(k[A>>2]|0)){e=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;e=0;b=0}G=ww(n|0,m|0,2)|0;G=tw(G|0,M|0,-32,-1)|0;b=tw(G|0,M|0,e|0,b|0)|0;e=M;if(!g){d=+(H|0)*0.0;break a}if((e|0)>0|(e|0)==0&b>>>0>(0-I|0)>>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}G=I+-106|0;F=((G|0)<0)<<31>>31;if((e|0)<(F|0)|(e|0)==(F|0)&b>>>0>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((g|0)>-1){do{F=!(d>=.5);G=F&1|g<<1;g=G^1;d=d+(F?d:d+-1.0);b=tw(b|0,e|0,-1,-1)|0;e=M}while((G|0)>-1);h=b;j=d}else{h=b;j=d}b=rw(32,0,I|0,((I|0)<0)<<31>>31|0)|0;b=tw(h|0,e|0,b|0,M|0)|0;I=M;if(0>(I|0)|0==(I|0)&J>>>0>b>>>0)if((b|0)<0){b=0;y=127}else y=125;else{b=J;y=125}if((y|0)==125)if((b|0)<53)y=127;else{e=b;f=+(H|0);d=0.0}if((y|0)==127){d=+(H|0);e=b;f=d;d=+Ck(+Hk(1.0,84-b|0),d)}J=(g&1|0)==0&(j!=0.0&(e|0)<32);d=f*(J?0.0:j)+(d+f*+(((J&1)+g|0)>>>0))-d;if(!(d!=0.0)){J=mk()|0;k[J>>2]=34}d=+Ik(d,h);break a}else b=e;while(0);E=I+J|0;F=0-E|0;g=0;f:while(1){switch(b|0){case 46:{y=138;break f}case 48:break;default:{e=0;o=0;n=0;break f}}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=1;continue}else{b=rk(a)|0;g=1;continue}}if((y|0)==138){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48){e=0;b=0;while(1){e=tw(e|0,b|0,-1,-1)|0;g=M;b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48)b=g;else{o=g;g=1;n=1;break}}}else{e=0;o=0;n=1}}k[G>>2]=0;m=b+-48|0;h=(b|0)==46;g:do if(h|m>>>0<10){z=G+496|0;w=0;t=0;u=h;y=o;s=g;x=n;g=0;h=0;n=0;h:while(1){do if(u)if(!x){e=w;o=t;x=1}else{o=y;b=w;m=t;break h}else{u=tw(w|0,t|0,1,0)|0;t=M;v=(b|0)!=48;if((h|0)>=125){if(!v){o=y;w=u;break}k[z>>2]=k[z>>2]|1;o=y;w=u;break}o=G+(h<<2)|0;if(g)m=b+-48+((k[o>>2]|0)*10|0)|0;k[o>>2]=m;g=g+1|0;m=(g|0)==9;o=y;w=u;s=1;g=m?0:g;h=(m&1)+h|0;n=v?u:n}while(0);b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;m=b+-48|0;u=(b|0)==46;if(!(u|m>>>0<10)){m=x;y=161;break g}else y=o}s=(s|0)!=0;y=169}else{w=0;t=0;s=g;m=n;g=0;h=0;n=0;y=161}while(0);do if((y|0)==161){z=(m|0)==0;e=z?w:e;o=z?t:o;s=(s|0)!=0;if(!((b|32|0)==101&s))if((b|0)>-1){b=w;m=t;y=169;break}else{b=w;m=t;y=171;break}m=Dl(a,c)|0;b=M;if((m|0)==0&(b|0)==-2147483648){if(!c){qk(a,0);d=0.0;break}if(!(k[A>>2]|0)){m=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;m=0;b=0}}e=tw(m|0,b|0,e|0,o|0)|0;s=w;o=M;m=t;y=173}while(0);if((y|0)==169)if(k[A>>2]|0){k[D>>2]=(k[D>>2]|0)+-1;if(s){s=b;y=173}else y=172}else y=171;if((y|0)==171)if(s){s=b;y=173}else y=172;do if((y|0)==172){J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0}else if((y|0)==173){b=k[G>>2]|0;if(!b){d=+(H|0)*0.0;break}if(((m|0)<0|(m|0)==0&s>>>0<10)&((e|0)==(s|0)&(o|0)==(m|0))?J>>>0>30|(b>>>J|0)==0:0){d=+(H|0)*+(b>>>0);break}a=(I|0)/-2|0;D=((a|0)<0)<<31>>31;if((o|0)>(D|0)|(o|0)==(D|0)&e>>>0>a>>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=I+-106|0;D=((a|0)<0)<<31>>31;if((o|0)<(D|0)|(o|0)==(D|0)&e>>>0>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(g){if((g|0)<9){m=G+(h<<2)|0;b=k[m>>2]|0;do{b=b*10|0;g=g+1|0}while((g|0)!=9);k[m>>2]=b}h=h+1|0}if((n|0)<9?(n|0)<=(e|0)&(e|0)<18:0){if((e|0)==9){d=+(H|0)*+((k[G>>2]|0)>>>0);break}if((e|0)<9){d=+(H|0)*+((k[G>>2]|0)>>>0)/+(k[37312+(8-e<<2)>>2]|0);break}a=J+27+(ia(e,-3)|0)|0;b=k[G>>2]|0;if((a|0)>30|(b>>>a|0)==0){d=+(H|0)*+(b>>>0)*+(k[37312+(e+-10<<2)>>2]|0);break}}b=(e|0)%9|0;if(!b){g=0;b=0}else{s=(e|0)>-1?b:b+9|0;m=k[37312+(8-s<<2)>>2]|0;if(h){n=1e9/(m|0)|0;g=0;b=0;o=0;do{A=G+(o<<2)|0;D=k[A>>2]|0;a=((D>>>0)/(m>>>0)|0)+b|0;k[A>>2]=a;b=ia((D>>>0)%(m>>>0)|0,n)|0;a=(o|0)==(g|0)&(a|0)==0;o=o+1|0;e=a?e+-9|0:e;g=a?o&127:g}while((o|0)!=(h|0));if(b){k[G+(h<<2)>>2]=b;h=h+1|0}}else{g=0;h=0}b=0;e=9-s+e|0}i:while(1){t=(e|0)<18;u=(e|0)==18;v=G+(g<<2)|0;do{if(!t){if(!u)break i;if((k[v>>2]|0)>>>0>=9007199){e=18;break i}}m=0;n=h+127|0;while(1){s=n&127;o=G+(s<<2)|0;n=ww(k[o>>2]|0,0,29)|0;n=tw(n|0,M|0,m|0,0)|0;m=M;if(m>>>0>0|(m|0)==0&n>>>0>1e9){a=Ew(n|0,m|0,1e9,0)|0;n=Fw(n|0,m|0,1e9,0)|0;m=a}else m=0;k[o>>2]=n;a=(s|0)==(g|0);h=(s|0)!=(h+127&127|0)|a?h:(n|0)==0?s:h;if(a)break;else n=s+-1|0}b=b+-29|0}while((m|0)==0);g=g+127&127;if((g|0)==(h|0)){a=h+127&127;h=G+((h+126&127)<<2)|0;k[h>>2]=k[h>>2]|k[G+(a<<2)>>2];h=a}k[G+(g<<2)>>2]=m;e=e+9|0}j:while(1){w=h+1&127;v=G+((h+127&127)<<2)|0;while(1){t=(e|0)==18;u=(e|0)>27?9:1;s=t^1;while(1){n=g&127;o=(n|0)==(h|0);do if(!o){m=k[G+(n<<2)>>2]|0;if(m>>>0<9007199){y=219;break}if(m>>>0>9007199)break;m=g+1&127;if((m|0)==(h|0)){y=219;break}m=k[G+(m<<2)>>2]|0;if(m>>>0<254740991){y=219;break}if(!(m>>>0>254740991|s)){e=n;break j}}else y=219;while(0);if((y|0)==219?(y=0,t):0){y=220;break j}b=b+u|0;if((g|0)==(h|0))g=h;else break}s=(1<>>u;n=g;m=0;o=g;while(1){D=G+(o<<2)|0;a=k[D>>2]|0;g=(a>>>u)+m|0;k[D>>2]=g;m=ia(a&s,t)|0;g=(o|0)==(n|0)&(g|0)==0;o=o+1&127;e=g?e+-9|0:e;g=g?o:n;if((o|0)==(h|0))break;else n=g}if(!m)continue;if((w|0)!=(g|0))break;k[v>>2]=k[v>>2]|1}k[G+(h<<2)>>2]=m;h=w}if((y|0)==220)if(o){k[G+(w+-1<<2)>>2]=0;e=h;h=w}else e=n;d=+((k[G+(e<<2)>>2]|0)>>>0);e=g+1&127;if((e|0)==(h|0)){h=g+2&127;k[G+(h+-1<<2)>>2]=0}q=+(H|0);f=q*(d*1.0e9+ +((k[G+(e<<2)>>2]|0)>>>0));t=b+53|0;o=t-I|0;s=(o|0)<(J|0);e=s&1;n=s?((o|0)<0?0:o):J;if((n|0)<53){L=+Ck(+Hk(1.0,105-n|0),f);j=+Ek(f,+Hk(1.0,53-n|0));p=L;d=j;j=L+(f-j)}else{p=0.0;d=0.0;j=f}m=g+2&127;do if((m|0)==(h|0))f=d;else{m=k[G+(m<<2)>>2]|0;do if(m>>>0>=5e8){if(m>>>0>5e8){d=q*.75+d;break}if((g+3&127|0)==(h|0)){d=q*.5+d;break}else{d=q*.75+d;break}}else{if((m|0)==0?(g+3&127|0)==(h|0):0)break;d=q*.25+d}while(0);if((53-n|0)<=1){f=d;break}if(+Ek(d,1.0)!=0.0){f=d;break}f=d+1.0}while(0);d=j+f-p;do if((t&2147483647|0)>(-2-E|0)){if(+X(+d)>=9007199254740992.0){e=s&(n|0)==(o|0)?0:e;b=b+1|0;d=d*.5}if((b+50|0)<=(F|0)?!(f!=0.0&(e|0)!=0):0)break;J=mk()|0;k[J>>2]=34}while(0);d=+Ik(d,b)}while(0);break a}default:{if(k[A>>2]|0)k[D>>2]=(k[D>>2]|0)+-1;J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0;break a}}}}while(0);if((y|0)==23){e=(k[A>>2]|0)==0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if((c|0)!=0&b>>>0>3)do{if(!e)k[D>>2]=(k[D>>2]|0)+-1;b=b+-1|0}while(b>>>0>3)}d=+(H|0)*C}while(0);r=K;return +d}function pk(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,j=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(b>>>0>36){e=mk()|0;k[e>>2]=22;e=0;d=0}else{r=a+4|0;q=a+100|0;do{f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((kk(f)|0)!=0);b:do switch(f|0){case 43:case 45:{g=((f|0)==45)<<31>>31;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0;p=g;break b}else{f=rk(a)|0;p=g;break b}}default:p=0}while(0);g=(b|0)==0;do if((b&-17|0)==0&(f|0)==48){f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;if((f|32|0)!=120)if(g){b=8;n=46;break}else{n=32;break}b=k[r>>2]|0;if(b>>>0<(k[q>>2]|0)>>>0){k[r>>2]=b+1;f=l[b>>0]|0}else f=rk(a)|0;if((l[53879+(f+1)>>0]|0)>15){d=(k[q>>2]|0)==0;if(!d)k[r>>2]=(k[r>>2]|0)+-1;if(!c){qk(a,0);e=0;d=0;break a}if(d){e=0;d=0;break a}k[r>>2]=(k[r>>2]|0)+-1;e=0;d=0;break a}else{b=16;n=46}}else{b=g?10:b;if((l[53879+(f+1)>>0]|0)>>>0>>0)n=32;else{if(k[q>>2]|0)k[r>>2]=(k[r>>2]|0)+-1;qk(a,0);e=mk()|0;k[e>>2]=22;e=0;d=0;break a}}while(0);if((n|0)==32)if((b|0)==10){b=f+-48|0;if(b>>>0<10){f=0;while(1){g=(f*10|0)+b|0;b=k[r>>2]|0;if(b>>>0<(k[q>>2]|0)>>>0){k[r>>2]=b+1;f=l[b>>0]|0}else f=rk(a)|0;b=f+-48|0;if(!(b>>>0<10&g>>>0<429496729)){b=g;break}else f=g}g=0}else{b=0;g=0}c=f+-48|0;if(c>>>0<10){while(1){h=Dw(b|0,g|0,10,0)|0;j=M;m=((c|0)<0)<<31>>31;o=~m;if(j>>>0>o>>>0|(j|0)==(o|0)&h>>>0>~c>>>0){h=b;break}b=tw(h|0,j|0,c|0,m|0)|0;g=M;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;c=f+-48|0;if(!(c>>>0<10&(g>>>0<429496729|(g|0)==429496729&b>>>0<2576980378))){h=b;break}}if(c>>>0>9){f=h;b=p}else{b=10;n=72}}else{f=b;b=p}}else n=46;c:do if((n|0)==46){if(!(b+-1&b)){n=i[54136+((b*23|0)>>>5&7)>>0]|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(c>>>0>>0){f=0;while(1){h=c|f<>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(!(h>>>0<134217728&c>>>0>>0))break;else f=h}c=0}else{c=0;h=0}j=uw(-1,-1,n|0)|0;m=M;if((g&255)>>>0>=b>>>0|(c>>>0>m>>>0|(c|0)==(m|0)&h>>>0>j>>>0)){g=c;n=72;break}else f=c;while(1){h=ww(h|0,f|0,n|0)|0;c=M;h=g&255|h;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;if((g&255)>>>0>=b>>>0|(c>>>0>m>>>0|(c|0)==(m|0)&h>>>0>j>>>0)){g=c;n=72;break c}else f=c}}g=i[53879+(f+1)>>0]|0;c=g&255;if(c>>>0>>0){f=0;while(1){h=c+(ia(f,b)|0)|0;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(!(h>>>0<119304647&c>>>0>>0))break;else f=h}c=0}else{h=0;c=0}if((g&255)>>>0>>0){n=Ew(-1,-1,b|0,0)|0;o=M;m=c;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&h>>>0>n>>>0){g=m;n=72;break c}c=Dw(h|0,m|0,b|0,0)|0;j=M;g=g&255;if(j>>>0>4294967295|(j|0)==-1&c>>>0>~g>>>0){g=m;n=72;break c}h=tw(g|0,0,c|0,j|0)|0;c=M;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;if((g&255)>>>0>=b>>>0){g=c;n=72;break}else m=c}}else{g=c;n=72}}while(0);if((n|0)==72)if((l[53879+(f+1)>>0]|0)>>>0>>0){do{f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((l[53879+(f+1)>>0]|0)>>>0>>0);g=mk()|0;k[g>>2]=34;g=e;f=d;b=(d&1|0)==0&0==0?p:0}else{f=h;b=p}if(k[q>>2]|0)k[r>>2]=(k[r>>2]|0)+-1;if(!(g>>>0>>0|(g|0)==(e|0)&f>>>0>>0)){if(!((d&1|0)!=0|0!=0|(b|0)!=0)){r=mk()|0;k[r>>2]=34;d=tw(d|0,e|0,-1,-1)|0;e=M;break}if(g>>>0>e>>>0|(g|0)==(e|0)&f>>>0>d>>>0){r=mk()|0;k[r>>2]=34;break}}d=((b|0)<0)<<31>>31;d=rw(f^b|0,g^d|0,b|0,d|0)|0;e=M}while(0);M=e;return d|0}function qk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;k[a+104>>2]=b;c=k[a+4>>2]|0;d=k[a+8>>2]|0;e=d-c|0;k[a+108>>2]=e;if((b|0)!=0&(e|0)>(b|0))k[a+100>>2]=c+b;else k[a+100>>2]=d;return}function rk(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;c=a+104|0;f=k[c>>2]|0;if((f|0)!=0?(k[a+108>>2]|0)>=(f|0):0)g=4;else{b=cl(a)|0;if((b|0)>=0){e=k[c>>2]|0;c=a+8|0;if(e){d=k[c>>2]|0;f=k[a+4>>2]|0;c=d;e=e-(k[a+108>>2]|0)+-1|0;if((c-f|0)>(e|0))k[a+100>>2]=f+e;else g=9}else{d=k[c>>2]|0;c=d;g=9}if((g|0)==9)k[a+100>>2]=c;c=k[a+4>>2]|0;if(d){a=a+108|0;k[a>>2]=d+1-c+(k[a>>2]|0)}c=c+-1|0;if((l[c>>0]|0|0)!=(b|0))i[c>>0]=b}else g=4}if((g|0)==4){k[a+100>>2]=0;b=-1}return b|0}function sk(a){a=a|0;var b=0;if(a>>>0>4294963200){b=mk()|0;k[b>>2]=0-a;a=-1}return a|0}function tk(a){a=a|0;return 0}function uk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return d|0}function vk(a,b){a=a|0;b=b|0;return -1|0}function wk(a){a=a|0;Ql(a);return}function xk(a,b){a=a|0;b=b|0;return (a+-48|0)>>>0<10|0}function yk(a,b){a=a|0;b=b|0;return lk(a)|0}function zk(a,b,c){a=a|0;b=b|0;c=c|0;if(((i[b>>0]|0)!=0?(vl(b,58885)|0)!=0:0)?(vl(b,54145)|0)!=0:0)c=0;else if(!c)c=Rl(1,4)|0;return c|0}function Ak(a){a=a|0;var b=0,c=0;b=(kb()|0)+176|0;c=k[b>>2]|0;if(a)k[b>>2]=a;return c|0}function Bk(a,b){a=+a;b=+b;var c=0,d=0;p[t>>3]=a;d=k[t>>2]|0;c=k[t+4>>2]|0;p[t>>3]=b;c=k[t+4>>2]&-2147483648|c&2147483647;k[t>>2]=d;k[t+4>>2]=c;return +(+p[t>>3])}function Ck(a,b){a=+a;b=+b;return +(+Bk(a,b))}function Dk(a,b){a=+a;b=+b;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;p[t>>3]=a;c=k[t>>2]|0;j=k[t+4>>2]|0;p[t>>3]=b;l=k[t>>2]|0;m=k[t+4>>2]|0;d=uw(c|0,j|0,52)|0;d=d&2047;h=uw(l|0,m|0,52)|0;h=h&2047;n=j&-2147483648;g=ww(l|0,m|0,1)|0;i=M;a:do if(!((g|0)==0&(i|0)==0)?(f=m&2147483647,!(f>>>0>2146435072|(f|0)==2146435072&l>>>0>0|(d|0)==2047)):0){e=ww(c|0,j|0,1)|0;f=M;if(!(f>>>0>i>>>0|(f|0)==(i|0)&e>>>0>g>>>0))return +((e|0)==(g|0)&(f|0)==(i|0)?a*0.0:a);if(!d){d=ww(c|0,j|0,12)|0;e=M;if((e|0)>-1|(e|0)==-1&d>>>0>4294967295){f=d;d=0;do{d=d+-1|0;f=ww(f|0,e|0,1)|0;e=M}while((e|0)>-1|(e|0)==-1&f>>>0>4294967295)}else d=0;c=ww(c|0,j|0,1-d|0)|0;e=M}else e=j&1048575|1048576;if(!h){f=ww(l|0,m|0,12)|0;g=M;if((g|0)>-1|(g|0)==-1&f>>>0>4294967295){h=0;do{h=h+-1|0;f=ww(f|0,g|0,1)|0;g=M}while((g|0)>-1|(g|0)==-1&f>>>0>4294967295)}else h=0;l=ww(l|0,m|0,1-h|0)|0;j=M}else j=m&1048575|1048576;i=rw(c|0,e|0,l|0,j|0)|0;g=M;f=(g|0)>-1|(g|0)==-1&i>>>0>4294967295;b:do if((d|0)>(h|0)){while(1){if(f)if((c|0)==(l|0)&(e|0)==(j|0))break;else{c=i;e=g}c=ww(c|0,e|0,1)|0;e=M;d=d+-1|0;i=rw(c|0,e|0,l|0,j|0)|0;g=M;f=(g|0)>-1|(g|0)==-1&i>>>0>4294967295;if((d|0)<=(h|0))break b}b=a*0.0;break a}while(0);if(f)if((c|0)==(l|0)&(e|0)==(j|0)){b=a*0.0;break}else{e=g;c=i}if(e>>>0<1048576|(e|0)==1048576&c>>>0<0)do{c=ww(c|0,e|0,1)|0;e=M;d=d+-1|0}while(e>>>0<1048576|(e|0)==1048576&c>>>0<0);if((d|0)>0){m=tw(c|0,e|0,0,-1048576)|0;c=M;d=ww(d|0,0,52)|0;c=c|M;d=m|d}else{d=uw(c|0,e|0,1-d|0)|0;c=M}k[t>>2]=d;k[t+4>>2]=c|n;b=+p[t>>3]}else o=3;while(0);if((o|0)==3){b=a*b;b=b/b}return +b}function Ek(a,b){a=+a;b=+b;return +(+Dk(a,b))}function Fk(a,b){a=+a;b=b|0;var c=0,d=0,e=0;p[t>>3]=a;c=k[t>>2]|0;d=k[t+4>>2]|0;e=uw(c|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{if(a!=0.0){a=+Fk(a*18446744073709551616.0,b);c=(k[b>>2]|0)+-64|0}else c=0;k[b>>2]=c;break}case 2047:break;default:{k[b>>2]=e+-1022;k[t>>2]=c;k[t+4>>2]=d&-2146435073|1071644672;a=+p[t>>3]}}return +a}function Gk(a,b){a=+a;b=b|0;return +(+Fk(a,b))}function Hk(a,b){a=+a;b=b|0;var c=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;c=b+-1023|0;if((c|0)>1023){c=b+-2046|0;c=(c|0)>1023?1023:c;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;c=b+1022|0;if((c|0)<-1022){c=b+2044|0;c=(c|0)<-1022?-1022:c;a=a*2.2250738585072014e-308}}else c=b;c=ww(c+1023|0,0,52)|0;b=M;k[t>>2]=c;k[t+4>>2]=b;return +(a*+p[t>>3])}function Ik(a,b){a=+a;b=b|0;return +(+Hk(a,b))}function Jk(a,b,c){a=a|0;b=b|0;c=c|0;return Kk(0,a,b,(c|0)!=0?c:37344)|0}function Kk(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,j=0,l=0;j=r;r=r+16|0;e=j;g=(d|0)==0?37348:d;d=k[g>>2]|0;a:do if(!b)if(!d)d=0;else h=15;else{f=(a|0)==0?e:a;if(!c)d=-2;else{if(!d){d=i[b>>0]|0;e=d&255;if(d<<24>>24>-1){k[f>>2]=e;d=d<<24>>24!=0&1;break}d=e+-194|0;if(d>>>0>50){h=15;break}d=k[37076+(d<<2)>>2]|0;e=c+-1|0;if(e){b=b+1|0;h=9}}else{e=c;h=9}b:do if((h|0)==9){a=i[b>>0]|0;l=(a&255)>>>3;if((l+-16|l+(d>>26))>>>0>7){h=15;break a}while(1){b=b+1|0;d=(a&255)+-128|d<<6;e=e+-1|0;if((d|0)>=0)break;if(!e)break b;a=i[b>>0]|0;if((a&-64)<<24>>24!=-128){h=15;break a}}k[g>>2]=0;k[f>>2]=d;d=c-e|0;break a}while(0);k[g>>2]=d;d=-2}}while(0);if((h|0)==15){k[g>>2]=0;d=mk()|0;k[d>>2]=84;d=-1}r=j;return d|0}function Lk(a){a=a|0;if(!a)a=1;else a=(k[a>>2]|0)==0;return a&1|0}function Mk(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,l=0,m=0,n=0,o=0;n=r;r=r+1040|0;j=n+8|0;m=n;i=k[b>>2]|0;k[m>>2]=i;l=(a|0)!=0;d=l?d:256;a=l?a:j;f=i;a:do if((d|0)!=0&(i|0)!=0){h=d;i=f;d=0;while(1){f=c>>>2;g=f>>>0>=h>>>0;if(!(c>>>0>131|g)){f=i;break a}f=g?h:f;c=c-f|0;f=Nk(a,m,f,e)|0;if((f|0)==-1){d=c;break}o=(a|0)==(j|0);i=o?0:f;g=h-i|0;a=o?a:a+(f<<2)|0;d=f+d|0;f=k[m>>2]|0;if((h|0)!=(i|0)&(f|0)!=0){h=g;i=f}else{h=g;break a}}c=d;h=0;f=k[m>>2]|0;d=-1}else{h=d;d=0}while(0);b:do if((f|0)!=0?(h|0)!=0&(c|0)!=0:0){g=f;f=a;while(1){a=Kk(f,g,c,e)|0;if((a+2|0)>>>0<3)break;g=(k[m>>2]|0)+a|0;k[m>>2]=g;h=h+-1|0;d=d+1|0;if(!((h|0)!=0&(c|0)!=(a|0)))break b;else{c=c-a|0;f=f+4|0}}switch(a|0){case -1:{d=-1;break b}case 0:{k[m>>2]=0;break b}default:{k[e>>2]=0;break b}}}while(0);if(l)k[b>>2]=k[m>>2];r=n;return d|0}function Nk(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,j=0,m=0;e=k[b>>2]|0;if((d|0)!=0?(f=k[d>>2]|0,(f|0)!=0):0)if(!a){d=c;g=e;m=16}else{k[d>>2]=0;j=a;d=c;h=f;m=37}else if(!a){d=c;m=7}else{f=a;d=c;m=6}a:while(1)if((m|0)==6){if(!d){m=26;break}else a=f;while(1){f=i[e>>0]|0;do if(((f&255)+-1|0)>>>0<127?d>>>0>4&(e&3|0)==0:0){g=e;while(1){e=k[g>>2]|0;if((e+-16843009|e)&-2139062144){f=e;e=g;m=32;break}k[a>>2]=e&255;k[a+4>>2]=l[g+1>>0];k[a+8>>2]=l[g+2>>0];e=g+4|0;f=a+16|0;k[a+12>>2]=l[g+3>>0];d=d+-4|0;if(d>>>0>4){a=f;g=e}else{m=31;break}}if((m|0)==31){a=f;f=i[e>>0]|0;break}else if((m|0)==32){f=f&255;break}}while(0);f=f&255;if((f+-1|0)>>>0>=127)break;e=e+1|0;k[a>>2]=f;d=d+-1|0;if(!d){m=26;break a}else a=a+4|0}f=f+-194|0;if(f>>>0>50){m=48;break}j=a;h=k[37076+(f<<2)>>2]|0;e=e+1|0;m=37;continue}else if((m|0)==7){f=i[e>>0]|0;if(((f&255)+-1|0)>>>0<127?(e&3|0)==0:0){f=k[e>>2]|0;if(!((f+-16843009|f)&-2139062144))do{e=e+4|0;d=d+-4|0;f=k[e>>2]|0}while(((f+-16843009|f)&-2139062144|0)==0);f=f&255}f=f&255;if((f+-1|0)>>>0<127){d=d+-1|0;e=e+1|0;m=7;continue}f=f+-194|0;if(f>>>0>50){m=48;break}f=k[37076+(f<<2)>>2]|0;g=e+1|0;m=16;continue}else if((m|0)==16){m=(l[g>>0]|0)>>>3;if((m+-16|m+(f>>26))>>>0>7){m=17;break}e=g+1|0;if(f&33554432){if((i[e>>0]&-64)<<24>>24!=-128){m=20;break}e=g+2|0;if(f&524288){if((i[e>>0]&-64)<<24>>24!=-128){m=23;break}e=g+3|0}}d=d+-1|0;m=7;continue}else if((m|0)==37){f=l[e>>0]|0;m=f>>>3;if((m+-16|m+(h>>26))>>>0>7){m=38;break}g=e+1|0;a=f+-128|h<<6;if((a|0)<0){f=l[g>>0]|0;if((f&192|0)!=128){m=41;break}g=e+2|0;a=f+-128|a<<6;if((a|0)<0){f=l[g>>0]|0;if((f&192|0)!=128){m=44;break}a=f+-128|a<<6;e=e+3|0}else e=g}else e=g;k[j>>2]=a;f=j+4|0;d=d+-1|0;m=6;continue}if((m|0)==17){e=g+-1|0;m=47}else if((m|0)==20){e=g+-1|0;m=47}else if((m|0)==23){e=g+-1|0;m=47}else if((m|0)==26)k[b>>2]=e;else if((m|0)==38){a=j;f=h;e=e+-1|0;m=47}else if((m|0)==41){d=j;c=e+-1|0;m=52}else if((m|0)==44){d=j;c=e+-1|0;m=52}if((m|0)==47)if(!f)m=48;else{d=a;c=e;m=52}if((m|0)==48)if(!(i[e>>0]|0)){if(a){k[a>>2]=0;k[b>>2]=0}c=c-d|0}else{d=a;c=e;m=52}if((m|0)==52){m=mk()|0;k[m>>2]=84;if(!d)c=-1;else{k[b>>2]=c;c=-1}}return c|0}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+16|0;d=g;a:do if(!b)d=0;else{do if(c){f=(a|0)==0?d:a;d=i[b>>0]|0;a=d&255;if(d<<24>>24>-1){k[f>>2]=a;d=d<<24>>24!=0&1;break a}d=a+-194|0;if(d>>>0<=50){a=b+1|0;e=k[37076+(d<<2)>>2]|0;if(c>>>0<4?(e&-2147483648>>>((c*6|0)+-6|0)|0)!=0:0)break;d=l[a>>0]|0;c=d>>>3;if((c+-16|c+(e>>26))>>>0<=7){d=d+-128|e<<6;if((d|0)>=0){k[f>>2]=d;d=2;break a}a=l[b+2>>0]|0;if((a&192|0)==128){a=a+-128|d<<6;if((a|0)>=0){k[f>>2]=a;d=3;break a}d=l[b+3>>0]|0;if((d&192|0)==128){k[f>>2]=d+-128|a<<6;d=4;break a}}}}}while(0);d=mk()|0;k[d>>2]=84;d=-1}while(0);r=g;return d|0}function Pk(a,b,c){a=a|0;b=b|0;c=c|0;do if(a){if(b>>>0<128){i[a>>0]=b;a=1;break}if(b>>>0<2048){i[a>>0]=b>>>6|192;i[a+1>>0]=b&63|128;a=2;break}if(b>>>0<55296|(b&-8192|0)==57344){i[a>>0]=b>>>12|224;i[a+1>>0]=b>>>6&63|128;i[a+2>>0]=b&63|128;a=3;break}if((b+-65536|0)>>>0<1048576){i[a>>0]=b>>>18|240;i[a+1>>0]=b>>>12&63|128;i[a+2>>0]=b>>>6&63|128;i[a+3>>0]=b&63|128;a=4;break}else{a=mk()|0;k[a>>2]=84;a=-1;break}}else a=1;while(0);return a|0}function Qk(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,l=0,m=0,n=0;l=r;r=r+272|0;h=l+8|0;j=l;g=k[b>>2]|0;k[j>>2]=g;i=(a|0)!=0;e=i?d:256;d=i?a:h;a=g;a:do if((e|0)!=0&(g|0)!=0){g=e;f=a;e=0;while(1){a=c>>>0>=g>>>0;if(!(a|c>>>0>32)){a=f;break a}a=a?g:c;c=c-a|0;a=Rk(d,j,a,0)|0;if((a|0)==-1){e=c;break}n=(d|0)==(h|0);m=n?0:a;f=g-m|0;d=n?d:d+a|0;e=a+e|0;a=k[j>>2]|0;if((g|0)!=(m|0)&(a|0)!=0){g=f;f=a}else{g=f;break a}}c=e;g=0;a=k[j>>2]|0;e=-1}else{g=e;e=0}while(0);b:do if((a|0)!=0?(g|0)!=0&(c|0)!=0:0){f=a;a=d;while(1){d=Pk(a,k[f>>2]|0,0)|0;if((d+1|0)>>>0<2)break;f=(k[j>>2]|0)+4|0;k[j>>2]=f;c=c+-1|0;e=e+1|0;if(!((g|0)!=(d|0)&(c|0)!=0))break b;else{g=g-d|0;a=a+d|0}}if(!d)k[j>>2]=0;else e=-1}while(0);if(i)k[b>>2]=k[j>>2];r=l;return e|0}function Rk(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;h=r;r=r+16|0;g=h;a:do if(!a){a=k[b>>2]|0;d=k[a>>2]|0;if(!d)c=0;else{c=0;do{if(d>>>0>127){d=Pk(g,d,0)|0;if((d|0)==-1){c=-1;break a}}else d=1;c=d+c|0;a=a+4|0;d=k[a>>2]|0}while((d|0)!=0)}}else{b:do if(c>>>0>3){d=c;e=k[b>>2]|0;while(1){f=k[e>>2]|0;if((f+-1|0)>>>0>126){if(!f)break;f=Pk(a,f,0)|0;if((f|0)==-1){c=-1;break a}a=a+f|0;d=d-f|0}else{i[a>>0]=f;a=a+1|0;d=d+-1|0;e=k[b>>2]|0}e=e+4|0;k[b>>2]=e;if(d>>>0<=3)break b}i[a>>0]=0;k[b>>2]=0;c=c-d|0;break a}else d=c;while(0);if(d){e=k[b>>2]|0;while(1){f=k[e>>2]|0;if((f+-1|0)>>>0>126){if(!f){e=19;break}f=Pk(g,f,0)|0;if((f|0)==-1){c=-1;break a}if(d>>>0>>0){e=22;break}Pk(a,k[e>>2]|0,0)|0;a=a+f|0;d=d-f|0}else{i[a>>0]=f;a=a+1|0;d=d+-1|0;e=k[b>>2]|0}e=e+4|0;k[b>>2]=e;if(!d)break a}if((e|0)==19){i[a>>0]=0;k[b>>2]=0;c=c-d|0;break}else if((e|0)==22){c=c-d|0;break}}}while(0);r=h;return c|0}function Sk(a,b){a=a|0;b=b|0;if(!a)a=0;else a=Pk(a,b,0)|0;return a|0}function Tk(a){a=a|0;return 0}function Uk(a){a=a|0;return}function Vk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;g=b&255;i[h>>0]=g;d=a+16|0;e=k[d>>2]|0;if(!e)if(!(bl(a)|0)){e=k[d>>2]|0;f=4}else c=-1;else f=4;do if((f|0)==4){d=a+20|0;f=k[d>>2]|0;if(f>>>0>>0?(c=b&255,(c|0)!=(i[a+75>>0]|0)):0){k[d>>2]=f+1;i[f>>0]=g;break}if((Qb[k[a+36>>2]&63](a,h,1)|0)==1)c=l[h>>0]|0;else c=-1}while(0);r=j;return c|0}function Wk(a){a=a|0;var b=0,c=0;b=r;r=r+16|0;c=b;k[c>>2]=k[a+60>>2];a=sk(wb(6,c|0)|0)|0;r=b;return a|0}function Xk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;l=r;r=r+48|0;f=l+16|0;e=l;d=l+32|0;k[d>>2]=b;g=d+4|0;j=a+48|0;m=k[j>>2]|0;k[g>>2]=c-((m|0)!=0&1);h=a+44|0;k[d+8>>2]=k[h>>2];k[d+12>>2]=m;if(!(k[9258]|0)){k[f>>2]=k[a+60>>2];k[f+4>>2]=d;k[f+8>>2]=2;d=sk(Eb(145,f|0)|0)|0}else{xb(185,a|0);k[e>>2]=k[a+60>>2];k[e+4>>2]=d;k[e+8>>2]=2;d=sk(Eb(145,e|0)|0)|0;pb(0)}if((d|0)>=1){g=k[g>>2]|0;if(d>>>0>g>>>0){f=k[h>>2]|0;e=a+4|0;k[e>>2]=f;k[a+8>>2]=f+(d-g);if(!(k[j>>2]|0))d=c;else{k[e>>2]=f+1;i[b+(c+-1)>>0]=i[f>>0]|0;d=c}}}else{k[a>>2]=k[a>>2]|d&48^16;k[a+8>>2]=0;k[a+4>>2]=0}r=l;return d|0}function Yk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;f=e;d=e+20|0;k[f>>2]=k[a+60>>2];k[f+4>>2]=0;k[f+8>>2]=b;k[f+12>>2]=d;k[f+16>>2]=c;if((sk(Db(140,f|0)|0)|0)<0){k[d>>2]=-1;a=-1}else a=k[d>>2]|0;r=e;return a|0}function Zk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;p=r;r=r+48|0;m=p+16|0;l=p;d=p+32|0;n=a+28|0;e=k[n>>2]|0;k[d>>2]=e;o=a+20|0;e=(k[o>>2]|0)-e|0;k[d+4>>2]=e;k[d+8>>2]=b;k[d+12>>2]=c;i=a+60|0;j=a+44|0;b=2;e=e+c|0;while(1){if(!(k[9258]|0)){k[m>>2]=k[i>>2];k[m+4>>2]=d;k[m+8>>2]=b;g=sk(Fb(146,m|0)|0)|0}else{xb(186,a|0);k[l>>2]=k[i>>2];k[l+4>>2]=d;k[l+8>>2]=b;g=sk(Fb(146,l|0)|0)|0;pb(0)}if((e|0)==(g|0)){e=6;break}if((g|0)<0){e=8;break}e=e-g|0;f=k[d+4>>2]|0;if(g>>>0<=f>>>0)if((b|0)==2){k[n>>2]=(k[n>>2]|0)+g;h=f;b=2}else h=f;else{h=k[j>>2]|0;k[n>>2]=h;k[o>>2]=h;h=k[d+12>>2]|0;g=g-f|0;d=d+8|0;b=b+-1|0}k[d>>2]=(k[d>>2]|0)+g;k[d+4>>2]=h-g}if((e|0)==6){m=k[j>>2]|0;k[a+16>>2]=m+(k[a+48>>2]|0);a=m;k[n>>2]=a;k[o>>2]=a}else if((e|0)==8){k[a+16>>2]=0;k[n>>2]=0;k[o>>2]=0;k[a>>2]=k[a>>2]|32;if((b|0)==2)c=0;else c=c-(k[d+4>>2]|0)|0}r=p;return c|0}function _k(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+80|0;d=e;k[a+36>>2]=8;if((k[a>>2]&64|0)==0?(k[d>>2]=k[a+60>>2],k[d+4>>2]=21505,k[d+8>>2]=e+12,(nb(54,d|0)|0)!=0):0)i[a+75>>0]=-1;d=Zk(a,b,c)|0;r=e;return d|0}function $k(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+84|0;f=k[d>>2]|0;g=c+256|0;e=tl(f,0,g)|0;e=(e|0)==0?g:e-f|0;c=e>>>0>>0?e:c;vw(b|0,f|0,c|0)|0;k[a+4>>2]=f+c;b=f+e|0;k[a+8>>2]=b;k[d>>2]=b;return c|0}function al(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=a+20|0;c=a+44|0;if((k[b>>2]|0)>>>0>(k[c>>2]|0)>>>0)Qb[k[a+36>>2]&63](a,0,0)|0;k[a+16>>2]=0;k[a+28>>2]=0;k[b>>2]=0;b=k[a>>2]|0;if(b&20)if(!(b&4))b=-1;else{k[a>>2]=b|32;b=-1}else{b=k[c>>2]|0;k[a+8>>2]=b;k[a+4>>2]=b;b=0}return b|0}function bl(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=k[a>>2]|0;if(!(b&8)){k[a+8>>2]=0;k[a+4>>2]=0;b=k[a+44>>2]|0;k[a+28>>2]=b;k[a+20>>2]=b;k[a+16>>2]=b+(k[a+48>>2]|0);b=0}else{k[a>>2]=b|32;b=-1}return b|0}function cl(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;if((k[a+8>>2]|0)==0?(al(a)|0)!=0:0)b=-1;else if((Qb[k[a+32>>2]&63](a,b,1)|0)==1)b=l[b>>0]|0;else b=-1;r=c;return b|0}function dl(a){a=a|0;var b=0,c=0;do if(a){if((k[a+76>>2]|0)<=-1){b=Gl(a)|0;break}c=(Tk(a)|0)==0;b=Gl(a)|0;if(!c)Uk(a)}else{if(!(k[9323]|0))b=0;else b=dl(k[9323]|0)|0;Na(37060);a=k[9264]|0;if(a)do{if((k[a+76>>2]|0)>-1)c=Tk(a)|0;else c=0;if((k[a+20>>2]|0)>>>0>(k[a+28>>2]|0)>>>0)b=Gl(a)|0|b;if(c)Uk(a);a=k[a+56>>2]|0}while((a|0)!=0);ob(37060)}while(0);return b|0}function el(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;if((k[b+76>>2]|0)>=0?(Tk(b)|0)!=0:0){if((i[b+75>>0]|0)!=(a|0)?(d=b+20|0,e=k[d>>2]|0,e>>>0<(k[b+16>>2]|0)>>>0):0){k[d>>2]=e+1;i[e>>0]=a;c=a&255}else c=Vk(b,a)|0;Uk(b)}else g=3;do if((g|0)==3){if((i[b+75>>0]|0)!=(a|0)?(f=b+20|0,c=k[f>>2]|0,c>>>0<(k[b+16>>2]|0)>>>0):0){k[f>>2]=c+1;i[c>>0]=a;c=a&255;break}c=Vk(b,a)|0}while(0);return c|0}function fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=c+16|0;e=k[d>>2]|0;if(!e)if(!(bl(c)|0)){e=k[d>>2]|0;f=4}else d=0;else f=4;a:do if((f|0)==4){g=c+20|0;f=k[g>>2]|0;if((e-f|0)>>>0>>0){d=Qb[k[c+36>>2]&63](c,a,b)|0;break}b:do if((i[c+75>>0]|0)>-1){d=b;while(1){if(!d){e=f;d=0;break b}e=d+-1|0;if((i[a+e>>0]|0)==10)break;else d=e}if((Qb[k[c+36>>2]&63](c,a,d)|0)>>>0>>0)break a;b=b-d|0;a=a+d|0;e=k[g>>2]|0}else{e=f;d=0}while(0);vw(e|0,a|0,b|0)|0;k[g>>2]=(k[g>>2]|0)+b;d=d+b|0}while(0);return d|0}function gl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ia(c,b)|0;if((k[d+76>>2]|0)>-1){f=(Tk(d)|0)==0;a=fl(a,e,d)|0;if(!f)Uk(d)}else a=fl(a,e,d)|0;if((a|0)!=(e|0))c=(a>>>0)/(b>>>0)|0;return c|0}function hl(a){a=a|0;var b=0,c=0,d=0;if((k[a+76>>2]|0)>=0?(Tk(a)|0)!=0:0){b=a+4|0;c=k[b>>2]|0;if(c>>>0<(k[a+8>>2]|0)>>>0){k[b>>2]=c+1;b=l[c>>0]|0}else b=cl(a)|0}else d=3;do if((d|0)==3){b=a+4|0;c=k[b>>2]|0;if(c>>>0<(k[a+8>>2]|0)>>>0){k[b>>2]=c+1;b=l[c>>0]|0;break}else{b=cl(a)|0;break}}while(0);return b|0}function il(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=ol(a,b,c,f)|0;r=e;return d|0}function jl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=r;r=r+16|0;e=d;k[e>>2]=c;c=pl(a,b,e)|0;r=d;return c|0}function kl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;do if((a|0)!=-1){if((k[b+76>>2]|0)>-1)e=Tk(b)|0;else e=0;if(!((k[b+8>>2]|0)==0?(al(b)|0)!=0:0))f=6;if((f|0)==6?(c=b+4|0,d=k[c>>2]|0,d>>>0>((k[b+44>>2]|0)+-8|0)>>>0):0){f=d+-1|0;k[c>>2]=f;i[f>>0]=a;k[b>>2]=k[b>>2]&-17;if(!e)break;Uk(b);break}if(e){Uk(b);a=-1}else a=-1}else a=-1;while(0);return a|0}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;d=h;e=Pl(240)|0;do if(e){k[d>>2]=k[c>>2];d=ol(e,240,b,d)|0;if(d>>>0<240){b=Sl(e,d+1|0)|0;k[a>>2]=(b|0)!=0?b:e;break}Ql(e);if((d|0)>=0?(g=d+1|0,f=Pl(g)|0,k[a>>2]=f,(f|0)!=0):0)d=ol(f,g,b,c)|0;else d=-1}else d=-1;while(0);r=h;return d|0}function ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+224|0;n=s+80|0;q=s+96|0;p=s;o=s+136|0;d=q;e=d+40|0;do{k[d>>2]=0;d=d+4|0}while((d|0)<(e|0));k[n>>2]=k[c>>2];if((Hl(0,b,n,p,q)|0)<0)c=-1;else{if((k[a+76>>2]|0)>-1)l=Tk(a)|0;else l=0;c=k[a>>2]|0;m=c&32;if((i[a+74>>0]|0)<1)k[a>>2]=c&-33;c=a+48|0;if(!(k[c>>2]|0)){e=a+44|0;f=k[e>>2]|0;k[e>>2]=o;g=a+28|0;k[g>>2]=o;h=a+20|0;k[h>>2]=o;k[c>>2]=80;j=a+16|0;k[j>>2]=o+80;d=Hl(a,b,n,p,q)|0;if(f){Qb[k[a+36>>2]&63](a,0,0)|0;d=(k[h>>2]|0)==0?-1:d;k[e>>2]=f;k[c>>2]=0;k[j>>2]=0;k[g>>2]=0;k[h>>2]=0}}else d=Hl(a,b,n,p,q)|0;c=k[a>>2]|0;k[a>>2]=c|m;if(l)Uk(a);c=(c&32|0)==0?d:-1}r=s;return c|0}function nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,m=0.0,n=0,q=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,N=0,O=0,P=0,Q=0;P=r;r=r+304|0;G=P+16|0;I=P+8|0;H=P+33|0;J=P;y=P+32|0;if((k[a+76>>2]|0)>-1)O=Tk(a)|0;else O=0;d=i[b>>0]|0;a:do if(d<<24>>24){K=a+4|0;L=a+100|0;F=a+108|0;z=a+8|0;A=H+10|0;B=H+33|0;C=I+4|0;D=H+46|0;E=H+94|0;f=d;d=0;g=b;s=0;e=0;b=0;b:while(1){c:do if(!(kk(f&255)|0)){f=(i[g>>0]|0)==37;d:do if(f){n=g+1|0;h=i[n>>0]|0;e:do switch(h<<24>>24){case 37:break d;case 42:{x=0;h=g+2|0;break}default:{h=(h&255)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[G>>2]=k[c>>2];while(1){x=(k[G>>2]|0)+(4-1)&~(4-1);f=k[x>>2]|0;k[G>>2]=x+4;if(h>>>0>1)h=h+-1|0;else break}x=f;h=g+3|0;break e}h=(k[c>>2]|0)+(4-1)&~(4-1);x=k[h>>2]|0;k[c>>2]=h+4;h=n}}while(0);f=i[h>>0]|0;g=f&255;if((g+-48|0)>>>0<10){f=0;while(1){n=(f*10|0)+-48+g|0;h=h+1|0;f=i[h>>0]|0;g=f&255;if((g+-48|0)>>>0>=10)break;else f=n}}else n=0;if(f<<24>>24==109){h=h+1|0;q=i[h>>0]|0;f=(x|0)!=0&1;e=0;b=0}else{q=f;f=0}g=h+1|0;switch(q&255|0){case 104:{w=(i[g>>0]|0)==104;g=w?h+2|0:g;h=w?-2:-1;break}case 108:{w=(i[g>>0]|0)==108;g=w?h+2|0:g;h=w?3:1;break}case 106:{h=3;break}case 116:case 122:{h=1;break}case 76:{h=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:{g=h;h=0;break}default:{N=152;break b}}q=l[g>>0]|0;t=(q&47|0)==3;q=t?q|32:q;t=t?1:h;switch(q|0){case 99:{w=s;v=(n|0)<1?1:n;break}case 91:{w=s;v=n;break}case 110:{if(!x){h=s;break c}switch(t|0){case -2:{i[x>>0]=s;h=s;break c}case -1:{j[x>>1]=s;h=s;break c}case 0:{k[x>>2]=s;h=s;break c}case 1:{k[x>>2]=s;h=s;break c}case 3:{h=x;k[h>>2]=s;k[h+4>>2]=((s|0)<0)<<31>>31;h=s;break c}default:{h=s;break c}}}default:{qk(a,0);do{h=k[K>>2]|0;if(h>>>0<(k[L>>2]|0)>>>0){k[K>>2]=h+1;h=l[h>>0]|0}else h=rk(a)|0}while((kk(h)|0)!=0);h=k[K>>2]|0;if(k[L>>2]|0){h=h+-1|0;k[K>>2]=h}w=(k[F>>2]|0)+s+h-(k[z>>2]|0)|0;v=n}}qk(a,v);h=k[K>>2]|0;n=k[L>>2]|0;if(h>>>0>>0)k[K>>2]=h+1;else{if((rk(a)|0)<0){N=152;break b}n=k[L>>2]|0}if(n)k[K>>2]=(k[K>>2]|0)+-1;f:do switch(q|0){case 91:case 99:case 115:{u=(q|0)==99;g:do if((q&239|0)==99){sw(H|0,-1,257)|0;i[H>>0]=0;if((q|0)==115){i[B>>0]=0;i[A>>0]=0;i[A+1>>0]=0;i[A+2>>0]=0;i[A+3>>0]=0;i[A+4>>0]=0}}else{Q=g+1|0;s=(i[Q>>0]|0)==94;h=s&1;q=s?Q:g;g=s?g+2|0:Q;sw(H|0,s&1|0,257)|0;i[H>>0]=0;switch(i[g>>0]|0){case 45:{s=(h^1)&255;i[D>>0]=s;g=q+2|0;break}case 93:{s=(h^1)&255;i[E>>0]=s;g=q+2|0;break}default:s=(h^1)&255}while(1){h=i[g>>0]|0;h:do switch(h<<24>>24){case 0:{N=152;break b}case 93:break g;case 45:{q=g+1|0;h=i[q>>0]|0;switch(h<<24>>24){case 93:case 0:{h=45;break h}default:{}}g=i[g+-1>>0]|0;if((g&255)<(h&255)){g=g&255;do{g=g+1|0;i[H+g>>0]=s;h=i[q>>0]|0}while((g|0)<(h&255|0));g=q}else g=q;break}default:{}}while(0);i[H+((h&255)+1)>>0]=s;g=g+1|0}}while(0);q=u?v+1|0:31;s=(t|0)==1;t=(f|0)!=0;i:do if(s){if(t){b=Pl(q<<2)|0;if(!b){e=0;N=152;break b}}else b=x;k[I>>2]=0;k[C>>2]=0;e=0;j:while(1){n=(b|0)==0;do{k:while(1){h=k[K>>2]|0;if(h>>>0<(k[L>>2]|0)>>>0){k[K>>2]=h+1;h=l[h>>0]|0}else h=rk(a)|0;if(!(i[H+(h+1)>>0]|0))break j;i[y>>0]=h;switch(Kk(J,y,1,I)|0){case -1:{e=0;N=152;break b}case -2:break;default:break k}}if(!n){k[b+(e<<2)>>2]=k[J>>2];e=e+1|0}}while(!(t&(e|0)==(q|0)));e=q<<1|1;h=Sl(b,e<<2)|0;if(!h){e=0;N=152;break b}Q=q;q=e;b=h;e=Q}if(!(Lk(I)|0)){e=0;N=152;break b}else{n=e;e=0}}else{if(t){e=Pl(q)|0;if(!e){e=0;b=0;N=152;break b}else h=0;while(1){do{b=k[K>>2]|0;if(b>>>0<(k[L>>2]|0)>>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=h;b=0;break i}i[e+h>>0]=b;h=h+1|0}while((h|0)!=(q|0));b=q<<1|1;h=Sl(e,b)|0;if(!h){b=0;N=152;break b}else{Q=q;q=b;e=h;h=Q}}}if(!x){e=n;while(1){b=k[K>>2]|0;if(b>>>0>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=0;e=0;b=0;break i}e=k[L>>2]|0}}else{e=0;while(1){b=k[K>>2]|0;if(b>>>0>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=e;e=x;b=0;break i}i[x+e>>0]=b;n=k[L>>2]|0;e=e+1|0}}}while(0);h=k[K>>2]|0;if(k[L>>2]|0){h=h+-1|0;k[K>>2]=h}h=h-(k[z>>2]|0)+(k[F>>2]|0)|0;if(!h)break b;if(!((h|0)==(v|0)|u^1))break b;do if(t)if(s){k[x>>2]=b;break}else{k[x>>2]=e;break}while(0);if(!u){if(b)k[b+(n<<2)>>2]=0;if(!e){e=0;break f}i[e+n>>0]=0}break}case 120:case 88:case 112:{h=16;N=134;break}case 111:{h=8;N=134;break}case 117:case 100:{h=10;N=134;break}case 105:{h=0;N=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{m=+ok(a,t,0);if((k[F>>2]|0)==((k[z>>2]|0)-(k[K>>2]|0)|0))break b;if(x)switch(t|0){case 0:{o[x>>2]=m;break f}case 1:{p[x>>3]=m;break f}case 2:{p[x>>3]=m;break f}default:break f}break}default:{}}while(0);l:do if((N|0)==134){N=0;h=pk(a,h,0,-1,-1)|0;if((k[F>>2]|0)==((k[z>>2]|0)-(k[K>>2]|0)|0))break b;if((x|0)!=0&(q|0)==112){k[x>>2]=h;break}if(x)switch(t|0){case -2:{i[x>>0]=h;break l}case -1:{j[x>>1]=h;break l}case 0:{k[x>>2]=h;break l}case 1:{k[x>>2]=h;break l}case 3:{Q=x;k[Q>>2]=h;k[Q+4>>2]=M;break l}default:break l}}while(0);d=((x|0)!=0&1)+d|0;h=(k[F>>2]|0)+w+(k[K>>2]|0)-(k[z>>2]|0)|0;break c}while(0);g=g+(f&1)|0;qk(a,0);f=k[K>>2]|0;if(f>>>0<(k[L>>2]|0)>>>0){k[K>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;if((f|0)!=(l[g>>0]|0)){N=21;break b}h=s+1|0}else{while(1){f=g+1|0;if(!(kk(l[f>>0]|0)|0))break;else g=f}qk(a,0);do{f=k[K>>2]|0;if(f>>>0<(k[L>>2]|0)>>>0){k[K>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((kk(f)|0)!=0);f=k[K>>2]|0;if(k[L>>2]|0){f=f+-1|0;k[K>>2]=f}h=(k[F>>2]|0)+s+f-(k[z>>2]|0)|0}while(0);g=g+1|0;f=i[g>>0]|0;if(!(f<<24>>24))break a;else s=h}if((N|0)==21){if(k[L>>2]|0)k[K>>2]=(k[K>>2]|0)+-1;if((d|0)!=0|(f|0)>-1)break;else{d=0;N=153}}else if((N|0)==152)if(!d){d=f;N=153}if((N|0)==153){f=d;d=-1}if(f){Ql(e);Ql(b)}}else d=0;while(0);if(O)Uk(a);r=P;return d|0}function ol(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,j=0,l=0,m=0;m=r;r=r+128|0;e=m+112|0;l=m;f=l;g=37352;h=f+112|0;do{k[f>>2]=k[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if((b+-1|0)>>>0>2147483646)if(!b){b=1;j=4}else{b=mk()|0;k[b>>2]=75;b=-1}else{e=a;j=4}if((j|0)==4){j=-2-e|0;j=b>>>0>j>>>0?j:b;k[l+48>>2]=j;a=l+20|0;k[a>>2]=e;k[l+44>>2]=e;b=e+j|0;e=l+16|0;k[e>>2]=b;k[l+28>>2]=b;b=ml(l,c,d)|0;if(j){c=k[a>>2]|0;i[c+(((c|0)==(k[e>>2]|0))<<31>>31)>>0]=0}}r=m;return b|0}function pl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=r;r=r+112|0;d=f;e=d;g=e+112|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[d+32>>2]=29;k[d+44>>2]=a;k[d+76>>2]=-1;k[d+84>>2]=a;g=nl(d,b,c)|0;r=f;return g|0}function ql(a,b,c){a=a|0;b=b|0;c=c|0;return +(+Jl(a,b,2))}function rl(a,b,c){a=a|0;b=b|0;c=c|0;a=Kl(a,b,c,-1,-1)|0;return a|0}function sl(a,b,c){a=a|0;b=b|0;c=c|0;a=Kl(a,b,c,0,-2147483648)|0;return a|0}function tl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b&255;d=(c|0)!=0;a:do if(d&(a&3|0)!=0){e=b&255;while(1){if((i[a>>0]|0)==e<<24>>24){g=6;break a}a=a+1|0;c=c+-1|0;d=(c|0)!=0;if(!(d&(a&3|0)!=0)){g=5;break}}}else g=5;while(0);if((g|0)==5)if(d)g=6;else c=0;b:do if((g|0)==6){e=b&255;if((i[a>>0]|0)!=e<<24>>24){d=ia(f,16843009)|0;c:do if(c>>>0>3)while(1){f=k[a>>2]^d;if((f&-2139062144^-2139062144)&f+-16843009)break;a=a+4|0;c=c+-4|0;if(c>>>0<=3){g=11;break c}}else g=11;while(0);if((g|0)==11)if(!c){c=0;break}while(1){if((i[a>>0]|0)==e<<24>>24)break b;a=a+1|0;c=c+-1|0;if(!c){c=0;break}}}}while(0);return ((c|0)!=0?a:0)|0}function ul(a,b){a=a|0;b=b|0;var c=0,d=0;c=b;a:do if(!((c^a)&3)){if(c&3)do{c=i[b>>0]|0;i[a>>0]=c;if(!(c<<24>>24))break a;b=b+1|0;a=a+1|0}while((b&3|0)!=0);c=k[b>>2]|0;if(!((c&-2139062144^-2139062144)&c+-16843009)){d=a;while(1){b=b+4|0;a=d+4|0;k[d>>2]=c;c=k[b>>2]|0;if((c&-2139062144^-2139062144)&c+-16843009)break;else d=a}}d=8}else d=8;while(0);if((d|0)==8){d=i[b>>0]|0;i[a>>0]=d;if(d<<24>>24)do{b=b+1|0;a=a+1|0;d=i[b>>0]|0;i[a>>0]=d}while(d<<24>>24!=0)}return a|0}function vl(a,b){a=a|0;b=b|0;var c=0,d=0;d=i[a>>0]|0;c=i[b>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=c<<24>>24)b=d;else{do{a=a+1|0;b=b+1|0;d=i[a>>0]|0;c=i[b>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=c<<24>>24));b=d}return (b&255)-(c&255)|0}function wl(a,b){a=a|0;b=b|0;ul(a,b)|0;return a|0}function xl(a){a=a|0;var b=0,c=0,d=0;d=a;a:do if(!(d&3))c=4;else{b=a;a=d;while(1){if(!(i[b>>0]|0))break a;b=b+1|0;a=b;if(!(a&3)){a=b;c=4;break}}}while(0);if((c|0)==4){while(1){b=k[a>>2]|0;if(!((b&-2139062144^-2139062144)&b+-16843009))a=a+4|0;else break}if((b&255)<<24>>24)do a=a+1|0;while((i[a>>0]|0)!=0)}return a-d|0}function yl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(!c)b=0;else{d=i[a>>0]|0;a:do if(!(d<<24>>24))d=0;else while(1){c=c+-1|0;e=i[b>>0]|0;if(!(d<<24>>24==e<<24>>24&((c|0)!=0&e<<24>>24!=0)))break a;a=a+1|0;b=b+1|0;d=i[a>>0]|0;if(!(d<<24>>24)){d=0;break}}while(0);b=(d&255)-(l[b>>0]|0)|0}return b|0}function zl(a){a=a|0;var b=0;b=a;while(1)if(!(k[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(c){d=a;while(1){c=c+-1|0;k[d>>2]=k[b>>2];if(!c)break;else{b=b+4|0;d=d+4|0}}}return a|0}function Bl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=(c|0)==0;if(a-b>>2>>>0>>0){if(!d)do{c=c+-1|0;k[a+(c<<2)>>2]=k[b+(c<<2)>>2]}while((c|0)!=0)}else if(!d){d=b;b=a;while(1){c=c+-1|0;k[b>>2]=k[d>>2];if(!c)break;else{d=d+4|0;b=b+4|0}}}return a|0}function Cl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(c){d=a;while(1){c=c+-1|0;k[d>>2]=b;if(!c)break;else d=d+4|0}}return a|0}function Dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=a+4|0;c=k[g>>2]|0;h=a+100|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0;switch(c|0){case 43:case 45:{d=(c|0)==45&1;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0;if((b|0)!=0&(c+-48|0)>>>0>9?(k[h>>2]|0)!=0:0){k[g>>2]=(k[g>>2]|0)+-1;f=d}else f=d;break}default:f=0}if((c+-48|0)>>>0>9)if(!(k[h>>2]|0)){d=-2147483648;c=0}else{k[g>>2]=(k[g>>2]|0)+-1;d=-2147483648;c=0}else{d=0;do{d=c+-48+(d*10|0)|0;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10&(d|0)<214748364);b=((d|0)<0)<<31>>31;if((c+-48|0)>>>0<10){do{b=Dw(d|0,b|0,10,0)|0;d=M;c=tw(c|0,((c|0)<0)<<31>>31|0,-48,-1)|0;d=tw(c|0,M|0,b|0,d|0)|0;b=M;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&d>>>0<2061584302));e=d}else e=d;if((c+-48|0)>>>0<10)do{c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10);if(k[h>>2]|0)k[g>>2]=(k[g>>2]|0)+-1;a=(f|0)!=0;c=rw(0,0,e|0,b|0)|0;d=a?M:b;c=a?c:e}M=d;return c|0}function El(a){a=a|0;if(!(k[a+68>>2]|0))Uk(a);return}function Fl(a){a=a|0;if(!(k[a+68>>2]|0))Uk(a);return}function Gl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=a+20|0;f=a+28|0;if((k[b>>2]|0)>>>0>(k[f>>2]|0)>>>0?(Qb[k[a+36>>2]&63](a,0,0)|0,(k[b>>2]|0)==0):0)b=-1;else{g=a+4|0;c=k[g>>2]|0;d=a+8|0;e=k[d>>2]|0;if(c>>>0>>0)Qb[k[a+40>>2]&63](a,c-e|0,1)|0;k[a+16>>2]=0;k[f>>2]=0;k[b>>2]=0;k[d>>2]=0;k[g>>2]=0;b=0}return b|0} - -// EMSCRIPTEN_END_FUNCS -var Ib=[cx,_q,cr,Yr,as,fs,hs,Hu,Su,cx,cx,cx,cx,cx,cx,cx];var Jb=[dx,si,gi,Wh,Kh,yh,mh,ah,Lg,Wj,Vj,Sj,dx,dx,dx,dx];var Kb=[ex,ls,rs,ex];var Lb=[fx,oi,pi,ci,di,Sh,Th,Gh,Hh,uh,vh,ih,jh,Yg,Zg,Hg,Ig,ug,vg,ig,jg,Yf,Zf,Mf,Nf,Af,Bf,Ie,Je,ve,we,Dc,Ec,Zd,be,_d,mo,oo,no,po,ud,vd,_i,wd,nd,od,Sc,Tc,_c,$c,fd,gd,xd,yd,Ed,Fd,Ld,Md,Sd,Td,te,ue,Re,Se,Ye,Ze,df,ef,lf,mf,Wg,Xg,Nm,Ai,Ki,Li,$i,aj,pj,qj,wj,xj,Bj,Cj,Ej,Hj,Fj,Gj,Ij,Jj,Mn,bm,hm,xn,mm,sm,Lm,Mm,yn,Nn,$n,bo,ao,co,go,io,ho,jo,uo,wo,vo,xo,Eo,Fo,pn,Go,Ho,Io,Ko,Us,Oo,Po,To,Uo,gp,hp,Ap,Bp,Pp,Qp,aq,bq,zq,Aq,Xq,Zq,ar,br,er,fr,pr,qr,Ar,Br,Lr,Mr,Wr,Xr,ds,es,js,ks,ps,qs,vs,ws,As,Bs,Is,Js,kt,lt,Gu,Dt,du,eu,fu,gu,Jo,Ts,Ws,ut,Lt,Tt,$t,au,bj,Si,jj,Cc,zn,fo,ie,Og,ek,El,Fl,Wl,wk,Zr,$r,Vs,Qv,Xv,Yv,Zv,_v,$v,aw,Sm,en,Ql,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx];var Mb=[gx,ri,fi,Vh,Jh,xh,lh,$g,Kg,wg,kg,_f,Of,Cf,Ke,xe,Fc,An,Mi,Pi,cm,gm,nm,rm,Pn,ir,jr,kr,lr,nr,or,tr,ur,vr,wr,yr,zr,Er,Fr,Gr,Hr,Jr,Kr,Pr,Qr,Rr,Sr,Ur,Vr,zs,Es,lu,nu,pu,mu,ou,qu,uc,cj,Qi,Ri,Ti,un,Mc,Oc,qo,on,_m,he,Be,tf,Gf,Sf,cg,og,Ag,Ng,ch,oh,Ah,Mh,Yh,ii,ui,Ii,hj,Cm,Am,sn,yo,Bm,Ym,jn,hn,kv,lv,mv,nv,ov,pv,Ct,qv,rv,sv,tv,uv,vv,wv,xv,yv,zv,Av,Bv,Cv,Dv,Ev,Fv,Gv,Hv,Iv,Jv,Kv,Lv,Mv,Ov,gw,gx,gx];var Nb=[hx,Vo,Wo,Xo,Yo,Zo,_o,$o,ap,bp,cp,dp,ip,jp,kp,lp,mp,np,op,pp,qp,rp,sp,Hp,Jp,Up,Wp,dq,eq,fq,hq,jq,Cq,Dq,Eq,Gq,Iq,os,us,md,cv,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx];var Ob=[ix,En,Fn,rd,In,Bi,rj,yj,Dj,Wk,dm,Un,Wn,Xn,Tn,im,jm,om,Hn,tm,um,Ao,cq,su,uu,wu,Cu,Eu,yu,Au,Bq,tu,vu,xu,Du,Fu,zu,Bu,gr,hr,mr,rr,sr,xr,Cr,Dr,Ir,Nr,Or,Tr,Ht,It,Kt,hu,ju,iu,ku,yt,zt,Bt,Pt,Qt,St,Xt,Yt,_t,Ei,lj,tn,Vi,eo,ko,jx,kx,lx,Ak,zl,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix];var Pb=[mx,_r,gs,mx];var Qb=[nx,Bn,Gn,Kn,Em,Fm,Kj,Ll,Zk,Yk,Xk,_k,Qn,Vn,em,Zn,pm,No,So,xs,Cs,nt,pt,st,Xs,ct,ft,it,Nc,Il,$m,zk,hv,jv,Pk,Ok,Jk,ll,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx];var Rb=[ox,ns,ts,ox];var Sb=[px,pd,Zj,Yj,Xj,Rn,Cn,ys,Ds,px,px,px,px,px,px,px];var Tb=[qx,Gp,Mp,Tp,Yp,qx,qx,qx];var Ub=[rx,bs,is,ms,ss,rx,rx,rx];var Vb=[sx,qi,ei,Uh,Ih,wh,kh,_g,Jg,yg,mg,ag,Qf,Ef,Me,ze,Hc,sd,td,Yn,fm,km,_n,Jn,qm,vm,Ln,mt,ot,qt,at,dt,gt,dj,yc,Ac,so,Ss,to,yk,xk,Um,fn,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx];var Wb=[tx,Lo,Qo,Cp,Dp,Ip,Op,Rp,Sp,Vp,_p,tt,Gt,Jt,jt,xt,At,Ot,Rt,Wt,Zt,Qk,Mk,tx,tx,tx,tx,tx,tx,tx,tx,tx];var Xb=[ux,jw,iw,hw];var Yb=[vx,vc,kj,fp,Ls,Ms,Ns,hk,jk,ik,vx,vx,vx,vx,vx,vx];var Zb=[wx,xg,lg,$f,Pf,Df,Le,ye,Gc,rt,Zs,_s,$s,ht,Di,Ji,Ru,bv,Nk,uk,Kk,pw,ow,nw,mw,lw,kw,wx,wx,wx,wx,wx];var _b=[xx,Dm,Ci,Bo,ej,Qm,yx,Km,Wm,Ui,Hm,Do,fv,gv,iv,cn];var $b=[zx,Ax,bk,Bx,ck,Cx,ak,zx];var ac=[Dx,lq,Kq,Et,Ft,vt,wt,Mt,Nt,Ut,Vt,Dx,Dx,Dx,Dx,Dx];var bc=[Ex,Kp,Np,Xp,Zp,Ex,Ex,Ex];var cc=[Fx,ce,de,$d,ae,qd,Uc,Vc,ad,bd,hd,id,zd,Ad,Gd,Hd,Nd,Od,Ud,Vd,Te,Ue,_e,$e,ff,gf,nf,of,Mj,Nj,Pj,Sn,Dn,Mo,Ro,nc,Jm,Ic,Jc,Kc,Lc,Pc,Qc,Rc,Ne,Oe,Pe,Qe,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx];return{_jpegls_encode:gj,___cxa_can_catch:_j,_free:Ql,_jpegls_decode:fj,___cxa_is_pointer_type:$j,_i64Add:tw,_memmove:xw,_i64Subtract:rw,_memset:sw,_malloc:Pl,_memcpy:vw,_bitshift64Lshr:uw,_bitshift64Shl:ww,__GLOBAL__I_000101:Xl,__GLOBAL__sub_I_jpegls_cpp:Bc,__GLOBAL__sub_I_iostream_cpp:Yl,runPostSets:qw,_emscripten_replace_memory:Hb,stackAlloc:dc,stackSave:ec,stackRestore:fc,establishStackSpace:gc,setThrew:hc,setTempRet0:kc,getTempRet0:lc,dynCall_iiiiiiii:Hw,dynCall_viiiii:Iw,dynCall_iiiiiid:Jw,dynCall_vi:Kw,dynCall_vii:Lw,dynCall_iiiiiii:Mw,dynCall_ii:Nw,dynCall_iiiiiiiiiiii:Ow,dynCall_iiii:Pw,dynCall_viiiiiiiiiiiiiii:Qw,dynCall_viiiiii:Rw,dynCall_viiiiiii:Sw,dynCall_viiiiiiiiii:Tw,dynCall_iii:Uw,dynCall_iiiiii:Vw,dynCall_diii:Ww,dynCall_i:Xw,dynCall_iiiii:Yw,dynCall_viii:Zw,dynCall_v:_w,dynCall_iiiiiiiii:$w,dynCall_iiiiid:ax,dynCall_viiii:bx}}) - - -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _jpegls_encode=Module["_jpegls_encode"]=asm["_jpegls_encode"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var _jpegls_decode=Module["_jpegls_decode"]=asm["_jpegls_decode"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memmove=Module["_memmove"]=asm["_memmove"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var __GLOBAL__sub_I_iostream_cpp=Module["__GLOBAL__sub_I_iostream_cpp"]=asm["__GLOBAL__sub_I_iostream_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var __GLOBAL__sub_I_jpegls_cpp=Module["__GLOBAL__sub_I_jpegls_cpp"]=asm["__GLOBAL__sub_I_jpegls_cpp"];var __GLOBAL__I_000101=Module["__GLOBAL__I_000101"]=asm["__GLOBAL__I_000101"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=asm["dynCall_iiiiiiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=asm["dynCall_iiiiiid"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=asm["dynCall_iiiiiiiiiiii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=asm["dynCall_viiiiiiiiiiiiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=asm["dynCall_viiiiiiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_diii=Module["dynCall_diii"]=asm["dynCall_diii"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_iiiiid=Module["dynCall_iiiiid"]=asm["dynCall_iiiiid"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() - - - - - - return Module; +"use strict"; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = CharLS; -} - -}).call(this)}).call(this,require('_process'),"/lib") -},{"_process":33,"fs":5,"path":32}],2:[function(require,module,exports){ -/* - Copyright 2011 notmasteryet - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ -// - The JPEG specification can be found in the ITU CCITT Recommendation T.81 -// (www.w3.org/Graphics/JPEG/itu-t81.pdf) -// - The JFIF specification can be found in the JPEG File Interchange Format -// (www.w3.org/Graphics/JPEG/jfif3.pdf) -// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters -// in PostScript Level 2, Technical Note #5116 -// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf) - -var ColorSpace = {Unkown: 0, Grayscale: 1, AdobeRGB: 2, RGB: 3, CYMK: 4}; -var JpegImage = (function jpegImage() { +// src/compression-utils.js +var require_compression_utils = __commonJS({ + "src/compression-utils.js"(exports2, module2) { "use strict"; - var dctZigZag = new Int32Array([ - 0, - 1, 8, - 16, 9, 2, - 3, 10, 17, 24, - 32, 25, 18, 11, 4, - 5, 12, 19, 26, 33, 40, - 48, 41, 34, 27, 20, 13, 6, - 7, 14, 21, 28, 35, 42, 49, 56, - 57, 50, 43, 36, 29, 22, 15, - 23, 30, 37, 44, 51, 58, - 59, 52, 45, 38, 31, - 39, 46, 53, 60, - 61, 54, 47, - 55, 62, - 63 - ]); - - var dctCos1 = 4017; // cos(pi/16) - var dctSin1 = 799; // sin(pi/16) - var dctCos3 = 3406; // cos(3*pi/16) - var dctSin3 = 2276; // sin(3*pi/16) - var dctCos6 = 1567; // cos(6*pi/16) - var dctSin6 = 3784; // sin(6*pi/16) - var dctSqrt2 = 5793; // sqrt(2) - var dctSqrt1d2 = 2896; // sqrt(2) / 2 - - function constructor() { - } - - function buildHuffmanTable(codeLengths, values) { - var k = 0, code = [], i, j, length = 16; - while (length > 0 && !codeLengths[length - 1]) - length--; - code.push({children: [], index: 0}); - var p = code[0], q; - for (i = 0; i < length; i++) { - for (j = 0; j < codeLengths[i]; j++) { - p = code.pop(); - p.children[p.index] = values[k]; - while (p.index > 0) { - p = code.pop(); - } - p.index++; - code.push(p); - while (code.length <= i) { - code.push(q = {children: [], index: 0}); - p.children[p.index] = q.children; - p = q; - } - k++; - } - if (i + 1 < length) { - // p here points to last code - code.push(q = {children: [], index: 0}); - p.children[p.index] = q.children; - p = q; - } - } - return code[0].children; - } - - function getBlockBufferOffset(component, row, col) { - return 64 * ((component.blocksPerLine + 1) * row + col); - } - - function decodeScan(data, offset, - frame, components, resetInterval, - spectralStart, spectralEnd, - successivePrev, successive) { - var precision = frame.precision; - var samplesPerLine = frame.samplesPerLine; - var scanLines = frame.scanLines; - var mcusPerLine = frame.mcusPerLine; - var progressive = frame.progressive; - var maxH = frame.maxH, maxV = frame.maxV; - - var startOffset = offset, bitsData = 0, bitsCount = 0; - - function readBit() { - if (bitsCount > 0) { - bitsCount--; - return (bitsData >> bitsCount) & 1; - } - bitsData = data[offset++]; - if (bitsData == 0xFF) { - var nextByte = data[offset++]; - if (nextByte) { - throw "unexpected marker: " + ((bitsData << 8) | nextByte).toString(16); - } - // unstuff 0 - } - bitsCount = 7; - return bitsData >>> 7; - } - - function decodeHuffman(tree) { - var node = tree; - var bit; - while ((bit = readBit()) !== null) { - node = node[bit]; - if (typeof node === 'number') - return node; - if (typeof node !== 'object') - throw "invalid huffman sequence"; - } - return null; - } - - function receive(length) { - var n = 0; - while (length > 0) { - var bit = readBit(); - if (bit === null) - return; - n = (n << 1) | bit; - length--; - } - return n; - } - - function receiveAndExtend(length) { - var n = receive(length); - if (n >= 1 << (length - 1)) - return n; - return n + (-1 << length) + 1; - } - - function decodeBaseline(component, offset) { - var t = decodeHuffman(component.huffmanTableDC); - var diff = t === 0 ? 0 : receiveAndExtend(t); - component.blockData[offset] = (component.pred += diff); - var k = 1; - while (k < 64) { - var rs = decodeHuffman(component.huffmanTableAC); - var s = rs & 15, r = rs >> 4; - if (s === 0) { - if (r < 15) - break; - k += 16; - continue; - } - k += r; - var z = dctZigZag[k]; - component.blockData[offset + z] = receiveAndExtend(s); - k++; - } - } - - function decodeDCFirst(component, offset) { - var t = decodeHuffman(component.huffmanTableDC); - var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive); - component.blockData[offset] = (component.pred += diff); + var daikon2 = daikon2 || {}; + daikon2.CompressionUtils = daikon2.CompressionUtils || {}; + daikon2.CompressionUtils.JPEG_MAGIC_NUMBER = [255, 216]; + daikon2.CompressionUtils.JPEG2000_MAGIC_NUMBER = [255, 79, 255, 81]; + daikon2.CompressionUtils.isHeaderJPEG = function(data) { + if (data) { + if (data.getUint8(0) !== daikon2.CompressionUtils.JPEG_MAGIC_NUMBER[0]) { + return false; } - - function decodeDCSuccessive(component, offset) { - component.blockData[offset] |= readBit() << successive; + if (data.getUint8(1) !== daikon2.CompressionUtils.JPEG_MAGIC_NUMBER[1]) { + return false; } - - var eobrun = 0; - function decodeACFirst(component, offset) { - if (eobrun > 0) { - eobrun--; - return; - } - var k = spectralStart, e = spectralEnd; - while (k <= e) { - var rs = decodeHuffman(component.huffmanTableAC); - var s = rs & 15, r = rs >> 4; - if (s === 0) { - if (r < 15) { - eobrun = receive(r) + (1 << r) - 1; - break; - } - k += 16; - continue; - } - k += r; - var z = dctZigZag[k]; - component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive); - k++; - } + return true; + } + return false; + }; + daikon2.CompressionUtils.isHeaderJPEG2000 = function(data) { + var ctr; + if (data) { + for (ctr = 0; ctr < daikon2.CompressionUtils.JPEG2000_MAGIC_NUMBER.length; ctr += 1) { + if (data.getUint8(ctr) !== daikon2.CompressionUtils.JPEG2000_MAGIC_NUMBER[ctr]) { + return false; + } } + return true; + } + return false; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.CompressionUtils; + } + } +}); - var successiveACState = 0, successiveACNextValue; - function decodeACSuccessive(component, offset) { - var k = spectralStart, e = spectralEnd, r = 0; - while (k <= e) { - var z = dctZigZag[k]; - switch (successiveACState) { - case 0: // initial state - var rs = decodeHuffman(component.huffmanTableAC); - var s = rs & 15; - r = rs >> 4; - if (s === 0) { - if (r < 15) { - eobrun = receive(r) + (1 << r); - successiveACState = 4; - } else { - r = 16; - successiveACState = 1; - } - } else { - if (s !== 1) - throw "invalid ACn encoding"; - successiveACNextValue = receiveAndExtend(s); - successiveACState = r ? 2 : 3; - } - continue; - case 1: // skipping r zero items - case 2: - if (component.blockData[offset + z]) { - component.blockData[offset + z] += (readBit() << successive); - } else { - r--; - if (r === 0) - successiveACState = successiveACState == 2 ? 3 : 0; - } - break; - case 3: // set value for a zero item - if (component.blockData[offset + z]) { - component.blockData[offset + z] += (readBit() << successive); - } else { - component.blockData[offset + z] = successiveACNextValue << successive; - successiveACState = 0; - } - break; - case 4: // eob - if (component.blockData[offset + z]) { - component.blockData[offset + z] += (readBit() << successive); - } - break; - } - k++; - } - if (successiveACState === 4) { - eobrun--; - if (eobrun === 0) - successiveACState = 0; - } +// src/utilities.js +var require_utilities = __commonJS({ + "src/utilities.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Utils = daikon2.Utils || {}; + daikon2.Utils.crcTable = null; + daikon2.Utils.MAX_VALUE = 9007199254740991; + daikon2.Utils.MIN_VALUE = -9007199254740991; + daikon2.Utils.dec2hex = function(i2) { + return (i2 + 65536).toString(16).substr(-4).toUpperCase(); + }; + daikon2.Utils.createArray = function(length) { + var arr = new Array(length || 0), i2 = length; + if (arguments.length > 1) { + var args = Array.prototype.slice.call(arguments, 1); + while (i2--) + arr[length - 1 - i2] = daikon2.Utils.createArray.apply(this, args); + } + return arr; + }; + daikon2.Utils.getStringAt = function(dataview, start, length, charset, vr) { + var str = "", ctr, ch; + for (ctr = 0; ctr < length; ctr += 1) { + ch = dataview.getUint8(start + ctr); + if (ch !== 0) { + str += String.fromCharCode(ch); } - - function decodeMcu(component, decode, mcu, row, col) { - var mcuRow = (mcu / mcusPerLine) | 0; - var mcuCol = mcu % mcusPerLine; - var blockRow = mcuRow * component.v + row; - var blockCol = mcuCol * component.h + col; - var offset = getBlockBufferOffset(component, blockRow, blockCol); - decode(component, offset); + } + return str; + }; + daikon2.Utils.trim = function(str) { + return str.replace(/^\s\s*/, "").replace(/\s\s*$/, ""); + }; + daikon2.Utils.stripLeadingZeros = function(str) { + return str.replace(/^[0]+/g, ""); + }; + daikon2.Utils.safeParseInt = function(str) { + str = daikon2.Utils.stripLeadingZeros(str); + if (str.length > 0) { + return parseInt(str, 10); + } + return 0; + }; + daikon2.Utils.convertCamcelCaseToTitleCase = function(str) { + var result = str.replace(/([A-Z][a-z])/g, " $1"); + return daikon2.Utils.trim(result.charAt(0).toUpperCase() + result.slice(1)); + }; + daikon2.Utils.safeParseFloat = function(str) { + str = daikon2.Utils.stripLeadingZeros(str); + if (str.length > 0) { + return parseFloat(str); + } + return 0; + }; + daikon2.Utils.bytesToDouble = function(data) { + var sign = (data[0] & 1 << 7) >> 7; + var exponent = (data[0] & 127) << 4 | (data[1] & 15 << 4) >> 4; + if (exponent == 0) + return 0; + if (exponent == 2047) + return sign ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + var mul = Math.pow(2, exponent - 1023 - 52); + var mantissa = data[7] + data[6] * Math.pow(2, 8) + data[5] * Math.pow(2, 8 * 2) + data[4] * Math.pow(2, 8 * 3) + data[3] * Math.pow(2, 8 * 4) + data[2] * Math.pow(2, 8 * 5) + (data[1] & 15) * Math.pow(2, 8 * 6) + Math.pow(2, 52); + return Math.pow(-1, sign) * mantissa * mul; + }; + daikon2.Utils.concatArrayBuffers = function(buffer1, buffer2) { + var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength); + tmp.set(new Uint8Array(buffer1), 0); + tmp.set(new Uint8Array(buffer2), buffer1.byteLength); + return tmp.buffer; + }; + daikon2.Utils.concatArrayBuffers2 = function(buffers) { + var length = 0, offset = 0, ctr; + for (ctr = 0; ctr < buffers.length; ctr += 1) { + length += buffers[ctr].byteLength; + } + var tmp = new Uint8Array(length); + for (ctr = 0; ctr < buffers.length; ctr += 1) { + tmp.set(new Uint8Array(buffers[ctr]), offset); + offset += buffers[ctr].byteLength; + } + return tmp.buffer; + }; + daikon2.Utils.fillBuffer = function(array, buffer2, offset, numBytes) { + var ctr; + if (numBytes === 1) { + for (ctr = 0; ctr < array.length; ctr += 1) { + buffer2.setUint8(offset + ctr, array[ctr]); } - - function decodeBlock(component, decode, mcu) { - var blockRow = (mcu / component.blocksPerLine) | 0; - var blockCol = mcu % component.blocksPerLine; - var offset = getBlockBufferOffset(component, blockRow, blockCol); - decode(component, offset); + } else if (numBytes === 2) { + for (ctr = 0; ctr < array.length; ctr += 1) { + buffer2.setUint16(offset + ctr * 2, array[ctr], true); } - - var componentsLength = components.length; - var component, i, j, k, n; - var decodeFn; - if (progressive) { - if (spectralStart === 0) - decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; - else - decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; - } else { - decodeFn = decodeBaseline; + } + }; + daikon2.Utils.fillBufferRGB = function(array, buffer2, offset) { + var r, g, b, ctr, numElements = parseInt(array.length / 3); + for (ctr = 0; ctr < numElements; ctr += 1) { + r = array[ctr * 3]; + g = array[ctr * 3 + 1]; + b = array[ctr * 3 + 2]; + buffer2.setUint8(offset + ctr, parseInt((r + b + g) / 3), true); + } + }; + daikon2.Utils.bind = function(scope, fn, args, appendArgs) { + if (arguments.length === 2) { + return function() { + return fn.apply(scope, arguments); + }; + } + var method = fn, slice = Array.prototype.slice; + return function() { + var callArgs = args || arguments; + if (appendArgs === true) { + callArgs = slice.call(arguments, 0); + callArgs = callArgs.concat(args); + } else if (typeof appendArgs === "number") { + callArgs = slice.call(arguments, 0); + Ext.Array.insert(callArgs, appendArgs, args); } - - var mcu = 0, marker; - var mcuExpected; - if (componentsLength == 1) { - mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + return method.apply(scope || window, callArgs); + }; + }; + daikon2.Utils.toArrayBuffer = function(buffer2) { + var ab, view, i2; + ab = new ArrayBuffer(buffer2.length); + view = new Uint8Array(ab); + for (i2 = 0; i2 < buffer2.length; i2 += 1) { + view[i2] = buffer2[i2]; + } + return ab; + }; + daikon2.Utils.isString = function(s) { + return typeof s === "string" || s instanceof String; + }; + daikon2.Utils.isValidDate = function(d) { + if (Object.prototype.toString.call(d) === "[object Date]") { + if (isNaN(d.getTime())) { + return false; } else { - mcuExpected = mcusPerLine * frame.mcusPerColumn; + return true; } - if (!resetInterval) { - resetInterval = mcuExpected; + } else { + return false; + } + }; + daikon2.Utils.swap32 = function(val) { + return (val & 255) << 24 | (val & 65280) << 8 | val >> 8 & 65280 | val >> 24 & 255; + }; + daikon2.Utils.swap16 = function(val) { + return ((val & 255) << 8 | val >> 8 & 255) << 16 >> 16; + }; + daikon2.Utils.makeCRCTable = function() { + var c; + var crcTable = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; } - - var h, v; - while (mcu < mcuExpected) { - // reset interval stuff - for (i = 0; i < componentsLength; i++) { - components[i].pred = 0; - } - eobrun = 0; - - if (componentsLength == 1) { - component = components[0]; - for (n = 0; n < resetInterval; n++) { - decodeBlock(component, decodeFn, mcu); - mcu++; - } - } else { - for (n = 0; n < resetInterval; n++) { - for (i = 0; i < componentsLength; i++) { - component = components[i]; - h = component.h; - v = component.v; - for (j = 0; j < v; j++) { - for (k = 0; k < h; k++) { - decodeMcu(component, decodeFn, mcu, j, k); - } - } - } - mcu++; - } - } - - // find marker - bitsCount = 0; - marker = (data[offset] << 8) | data[offset + 1]; - if (marker <= 0xFF00) { - throw "marker was not found"; - } - - if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx - offset += 2; - } else { - break; - } + crcTable[n] = c; + } + return crcTable; + }; + daikon2.Utils.crc32 = function(dataView) { + var crcTable = daikon2.Utils.crcTable || (daikon2.Utils.crcTable = daikon2.Utils.makeCRCTable()); + var crc = 0 ^ -1; + for (var i2 = 0; i2 < dataView.byteLength; i2++) { + crc = crc >>> 8 ^ crcTable[(crc ^ dataView.getUint8(i2)) & 255]; + } + return (crc ^ -1) >>> 0; + }; + daikon2.Utils.createBitMask = function(numBytes, bitsStored, unsigned) { + var mask = 4294967295; + mask >>>= (4 - numBytes) * 8 + (numBytes * 8 - bitsStored); + if (unsigned) { + if (numBytes == 1) { + mask &= 255; + } else if (numBytes == 2) { + mask &= 65535; + } else if (numBytes == 4) { + mask &= 4294967295; + } else if (numBytes == 8) { + mask = 4294967295; } - - return offset - startOffset; + } else { + mask = 4294967295; + } + return mask; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Utils; } + } +}); - // A port of poppler's IDCT method which in turn is taken from: - // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz, - // "Practical Fast 1-D DCT Algorithms with 11 Multiplications", - // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989, - // 988-991. - function quantizeAndInverse(component, blockBufferOffset, p) { - var qt = component.quantizationTable; - var v0, v1, v2, v3, v4, v5, v6, v7, t; - var i; - - // dequant - for (i = 0; i < 64; i++) { - p[i] = component.blockData[blockBufferOffset + i] * qt[i]; - } - - // inverse DCT on rows - for (i = 0; i < 8; ++i) { - var row = 8 * i; - - // check for all-zero AC coefficients - if (p[1 + row] === 0 && p[2 + row] === 0 && p[3 + row] === 0 && - p[4 + row] === 0 && p[5 + row] === 0 && p[6 + row] === 0 && - p[7 + row] === 0) { - t = (dctSqrt2 * p[0 + row] + 512) >> 10; - p[0 + row] = t; - p[1 + row] = t; - p[2 + row] = t; - p[3 + row] = t; - p[4 + row] = t; - p[5 + row] = t; - p[6 + row] = t; - p[7 + row] = t; - continue; - } - - // stage 4 - v0 = (dctSqrt2 * p[0 + row] + 128) >> 8; - v1 = (dctSqrt2 * p[4 + row] + 128) >> 8; - v2 = p[2 + row]; - v3 = p[6 + row]; - v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8; - v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8; - v5 = p[3 + row] << 4; - v6 = p[5 + row] << 4; - - // stage 3 - t = (v0 - v1 + 1) >> 1; - v0 = (v0 + v1 + 1) >> 1; - v1 = t; - t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8; - v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8; - v3 = t; - t = (v4 - v6 + 1) >> 1; - v4 = (v4 + v6 + 1) >> 1; - v6 = t; - t = (v7 + v5 + 1) >> 1; - v5 = (v7 - v5 + 1) >> 1; - v7 = t; +// src/dictionary.js +var require_dictionary = __commonJS({ + "src/dictionary.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Dictionary = daikon2.Dictionary || {}; + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Dictionary.dictPrivate = { + "0207": { + "101F": ["FE", "ElscintDataScale"] + // uses special Elscint double type (see Tag class) + } + }; + daikon2.Dictionary.dict = { + "0002": { + "0001": ["OB", "FileMetaInformationVersion"], + "0002": ["UI", "MediaStoredSOPClassUID"], + "0003": ["UI", "MediaStoredSOPInstanceUID"], + "0010": ["UI", "TransferSyntaxUID"], + "0012": ["UI", "ImplementationClassUID"], + "0013": ["SH", "ImplementationVersionName"], + "0016": ["AE", "SourceApplicationEntityTitle"], + "0100": ["UI", "PrivateInformationCreatorUID"], + "0102": ["OB", "PrivateInformation"] + }, + "0004": { + "1130": ["CS", "FilesetID"], + "1141": ["CS", "FilesetDescriptorFileFileID"], + "1142": ["CS", "FilesetDescriptorFileFormat"], + "1200": ["UL", "RootDirectoryEntitysFirstDirectoryRecordOffset"], + "1202": ["UL", "RootDirectoryEntitysLastDirectoryRecordOffset"], + "1212": ["US", "File-setConsistenceFlag"], + "1220": ["SQ", "DirectoryRecordSequence"], + "1400": ["UL", "NextDirectoryRecordOffset"], + "1410": ["US", "RecordInuseFlag"], + "1420": ["UL", "ReferencedLowerlevelDirectoryEntityOffset"], + "1430": ["CS", "DirectoryRecordType"], + "1432": ["UI", "PrivateRecordUID"], + "1500": ["CS", "ReferencedFileID"], + "1510": ["UI", "ReferencedSOPClassUIDInFile"], + "1511": ["UI", "ReferencedSOPInstanceUIDInFile"], + "1600": ["UL", "NumberOfReferences"] + }, + "0008": { + "0001": ["UL", "LengthToEnd"], + "0005": ["CS", "SpecificCharacterSet"], + "0006": ["SQ", "LanguageCodeSequence"], + "0008": ["CS", "ImageType"], + "0010": ["SH", "RecognitionCode"], + "0012": ["DA", "InstanceCreationDate"], + "0013": ["TM", "InstanceCreationTime"], + "0014": ["UI", "InstanceCreatorUID"], + "0016": ["UI", "SOPClassUID"], + "0018": ["UI", "SOPInstanceUID"], + "001A": ["UI", "RelatedGeneralSOPClassUID"], + "001B": ["UI", "OriginalSpecializedSOPClassUID"], + "0020": ["DA", "StudyDate"], + "0021": ["DA", "SeriesDate"], + "0022": ["DA", "AcquisitionDate"], + "0023": ["DA", "ContentDate"], + "0024": ["DA", "OverlayDate"], + "0025": ["DA", "CurveDate"], + "002A": ["DT", "AcquisitionDateTime"], + "0030": ["TM", "StudyTime"], + "0031": ["TM", "SeriesTime"], + "0032": ["TM", "AcquisitionTime"], + "0033": ["TM", "ContentTime"], + "0034": ["TM", "OverlayTime"], + "0035": ["TM", "CurveTime"], + "0040": ["US", "DataSetType"], + "0041": ["LO", "DataSetSubtype"], + "0042": ["CS", "NuclearMedicineSeriesType"], + "0050": ["SH", "AccessionNumber"], + "0051": ["SQ", "IssuerOfAccessionNumberSequence"], + "0052": ["CS", "QueryRetrieveLevel"], + "0054": ["AE", "RetrieveAETitle"], + "0056": ["CS", "InstanceAvailability"], + "0058": ["UI", "FailedSOPInstanceUIDList"], + "0060": ["CS", "Modality"], + "0061": ["CS", "ModalitiesInStudy"], + "0062": ["UI", "SOPClassesInStudy"], + "0064": ["CS", "ConversionType"], + "0068": ["CS", "PresentationIntentType"], + "0070": ["LO", "Manufacturer"], + "0080": ["LO", "InstitutionName"], + "0081": ["ST", "InstitutionAddress"], + "0082": ["SQ", "InstitutionCodeSequence"], + "0090": ["PN", "ReferringPhysicianName"], + "0092": ["ST", "ReferringPhysicianAddress"], + "0094": ["SH", "ReferringPhysicianTelephoneNumbers"], + "0096": ["SQ", "ReferringPhysicianIdentificationSequence"], + "0100": ["SH", "CodeValue"], + "0102": ["SH", "CodingSchemeDesignator"], + "0103": ["SH", "CodingSchemeVersion"], + "0104": ["LO", "CodeMeaning"], + "0105": ["CS", "MappingResource"], + "0106": ["DT", "ContextGroupVersion"], + "0107": ["DT", "ContextGroupLocalVersion"], + "010B": ["CS", "ContextGroupExtensionFlag"], + "010C": ["UI", "CodingSchemeUID"], + "010D": ["UI", "ContextGroupExtensionCreatorUID"], + "010F": ["CS", "ContextIdentifier"], + "0110": ["SQ", "CodingSchemeIdentificationSequence"], + "0112": ["LO", "CodingSchemeRegistry"], + "0114": ["ST", "CodingSchemeExternalID"], + "0115": ["ST", "CodingSchemeName"], + "0116": ["ST", "CodingSchemeResponsibleOrganization"], + "0117": ["UI", "ContextUID"], + "0201": ["SH", "TimezoneOffsetFromUTC"], + "1000": ["AE", "NetworkID"], + "1010": ["SH", "StationName"], + "1030": ["LO", "StudyDescription"], + "1032": ["SQ", "ProcedureCodeSequence"], + "103E": ["LO", "SeriesDescription"], + "103F": ["SQ", "SeriesDescriptionCodeSequence"], + "1040": ["LO", "InstitutionalDepartmentName"], + "1048": ["PN", "PhysiciansOfRecord"], + "1049": ["SQ", "PhysiciansOfRecordIdentificationSequence"], + "1050": ["PN", "PerformingPhysicianName"], + "1052": ["SQ", "PerformingPhysicianIdentificationSequence"], + "1060": ["PN", "NameOfPhysiciansReadingStudy"], + "1062": ["SQ", "PhysiciansReadingStudyIdentificationSequence"], + "1070": ["PN", "OperatorsName"], + "1072": ["SQ", "OperatorIdentificationSequence"], + "1080": ["LO", "AdmittingDiagnosesDescription"], + "1084": ["SQ", "AdmittingDiagnosesCodeSequence"], + "1090": ["LO", "ManufacturerModelName"], + "1100": ["SQ", "ReferencedResultsSequence"], + "1110": ["SQ", "ReferencedStudySequence"], + "1111": ["SQ", "ReferencedPerformedProcedureStepSequence"], + "1115": ["SQ", "ReferencedSeriesSequence"], + "1120": ["SQ", "ReferencedPatientSequence"], + "1125": ["SQ", "ReferencedVisitSequence"], + "1130": ["SQ", "ReferencedOverlaySequence"], + "1134": ["SQ", "ReferencedStereometricInstanceSequence"], + "113A": ["SQ", "ReferencedWaveformSequence"], + "1140": ["SQ", "ReferencedImageSequence"], + "1145": ["SQ", "ReferencedCurveSequence"], + "114A": ["SQ", "ReferencedInstanceSequence"], + "114B": ["SQ", "ReferencedRealWorldValueMappingInstanceSequence"], + "1150": ["UI", "ReferencedSOPClassUID"], + "1155": ["UI", "ReferencedSOPInstanceUID"], + "115A": ["UI", "SOPClassesSupported"], + "1160": ["IS", "ReferencedFrameNumber"], + "1161": ["UL", "SimpleFrameList"], + "1162": ["UL", "CalculatedFrameList"], + "1163": ["FD", "TimeRange"], + "1164": ["SQ", "FrameExtractionSequence"], + "1167": ["UI", "MultiFrameSourceSOPInstanceUID"], + "1195": ["UI", "TransactionUID"], + "1197": ["US", "FailureReason"], + "1198": ["SQ", "FailedSOPSequence"], + "1199": ["SQ", "ReferencedSOPSequence"], + "1200": ["SQ", "StudiesContainingOtherReferencedInstancesSequence"], + "1250": ["SQ", "RelatedSeriesSequence"], + "2110": ["CS", "LossyImageCompressionRetired"], + "2111": ["ST", "DerivationDescription"], + "2112": ["SQ", "SourceImageSequence"], + "2120": ["SH", "StageName"], + "2122": ["IS", "StageNumber"], + "2124": ["IS", "NumberOfStages"], + "2127": ["SH", "ViewName"], + "2128": ["IS", "ViewNumber"], + "2129": ["IS", "NumberOfEventTimers"], + "212A": ["IS", "NumberOfViewsInStage"], + "2130": ["DS", "EventElapsedTimes"], + "2132": ["LO", "EventTimerNames"], + "2133": ["SQ", "EventTimerSequence"], + "2134": ["FD", "EventTimeOffset"], + "2135": ["SQ", "EventCodeSequence"], + "2142": ["IS", "StartTrim"], + "2143": ["IS", "StopTrim"], + "2144": ["IS", "RecommendedDisplayFrameRate"], + "2200": ["CS", "TransducerPosition"], + "2204": ["CS", "TransducerOrientation"], + "2208": ["CS", "AnatomicStructure"], + "2218": ["SQ", "AnatomicRegionSequence"], + "2220": ["SQ", "AnatomicRegionModifierSequence"], + "2228": ["SQ", "PrimaryAnatomicStructureSequence"], + "2229": ["SQ", "AnatomicStructureSpaceOrRegionSequence"], + "2230": ["SQ", "PrimaryAnatomicStructureModifierSequence"], + "2240": ["SQ", "TransducerPositionSequence"], + "2242": ["SQ", "TransducerPositionModifierSequence"], + "2244": ["SQ", "TransducerOrientationSequence"], + "2246": ["SQ", "TransducerOrientationModifierSequence"], + "2251": ["SQ", "AnatomicStructureSpaceOrRegionCodeSequenceTrial"], + "2253": ["SQ", "AnatomicPortalOfEntranceCodeSequenceTrial"], + "2255": ["SQ", "AnatomicApproachDirectionCodeSequenceTrial"], + "2256": ["ST", "AnatomicPerspectiveDescriptionTrial"], + "2257": ["SQ", "AnatomicPerspectiveCodeSequenceTrial"], + "2258": ["ST", "AnatomicLocationOfExaminingInstrumentDescriptionTrial"], + "2259": ["SQ", "AnatomicLocationOfExaminingInstrumentCodeSequenceTrial"], + "225A": ["SQ", "AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial"], + "225C": ["SQ", "OnAxisBackgroundAnatomicStructureCodeSequenceTrial"], + "3001": ["SQ", "AlternateRepresentationSequence"], + "3010": ["UI", "IrradiationEventUID"], + "4000": ["LT", "IdentifyingComments"], + "9007": ["CS", "FrameType"], + "9092": ["SQ", "ReferencedImageEvidenceSequence"], + "9121": ["SQ", "ReferencedRawDataSequence"], + "9123": ["UI", "CreatorVersionUID"], + "9124": ["SQ", "DerivationImageSequence"], + "9154": ["SQ", "SourceImageEvidenceSequence"], + "9205": ["CS", "PixelPresentation"], + "9206": ["CS", "VolumetricProperties"], + "9207": ["CS", "VolumeBasedCalculationTechnique"], + "9208": ["CS", "ComplexImageComponent"], + "9209": ["CS", "AcquisitionContrast"], + "9215": ["SQ", "DerivationCodeSequence"], + "9237": ["SQ", "ReferencedPresentationStateSequence"], + "9410": ["SQ", "ReferencedOtherPlaneSequence"], + "9458": ["SQ", "FrameDisplaySequence"], + "9459": ["FL", "RecommendedDisplayFrameRateInFloat"], + "9460": ["CS", "SkipFrameRangeFlag"] + }, + "0010": { + "0010": ["PN", "PatientName"], + "0020": ["LO", "PatientID"], + "0021": ["LO", "IssuerOfPatientID"], + "0022": ["CS", "TypeOfPatientID"], + "0024": ["SQ", "IssuerOfPatientIDQualifiersSequence"], + "0030": ["DA", "PatientBirthDate"], + "0032": ["TM", "PatientBirthTime"], + "0040": ["CS", "PatientSex"], + "0050": ["SQ", "PatientInsurancePlanCodeSequence"], + "0101": ["SQ", "PatientPrimaryLanguageCodeSequence"], + "0102": ["SQ", "PatientPrimaryLanguageModifierCodeSequence"], + "1000": ["LO", "OtherPatientIDs"], + "1001": ["PN", "OtherPatientNames"], + "1002": ["SQ", "OtherPatientIDsSequence"], + "1005": ["PN", "PatientBirthName"], + "1010": ["AS", "PatientAge"], + "1020": ["DS", "PatientSize"], + "1021": ["SQ", "PatientSizeCodeSequence"], + "1030": ["DS", "PatientWeight"], + "1040": ["LO", "PatientAddress"], + "1050": ["LO", "InsurancePlanIdentification"], + "1060": ["PN", "PatientMotherBirthName"], + "1080": ["LO", "MilitaryRank"], + "1081": ["LO", "BranchOfService"], + "1090": ["LO", "MedicalRecordLocator"], + "2000": ["LO", "MedicalAlerts"], + "2110": ["LO", "Allergies"], + "2150": ["LO", "CountryOfResidence"], + "2152": ["LO", "RegionOfResidence"], + "2154": ["SH", "PatientTelephoneNumbers"], + "2160": ["SH", "EthnicGroup"], + "2180": ["SH", "Occupation"], + "21A0": ["CS", "SmokingStatus"], + "21B0": ["LT", "AdditionalPatientHistory"], + "21C0": ["US", "PregnancyStatus"], + "21D0": ["DA", "LastMenstrualDate"], + "21F0": ["LO", "PatientReligiousPreference"], + "2201": ["LO", "PatientSpeciesDescription"], + "2202": ["SQ", "PatientSpeciesCodeSequence"], + "2203": ["CS", "PatientSexNeutered"], + "2210": ["CS", "AnatomicalOrientationType"], + "2292": ["LO", "PatientBreedDescription"], + "2293": ["SQ", "PatientBreedCodeSequence"], + "2294": ["SQ", "BreedRegistrationSequence"], + "2295": ["LO", "BreedRegistrationNumber"], + "2296": ["SQ", "BreedRegistryCodeSequence"], + "2297": ["PN", "ResponsiblePerson"], + "2298": ["CS", "ResponsiblePersonRole"], + "2299": ["LO", "ResponsibleOrganization"], + "4000": ["LT", "PatientComments"], + "9431": ["FL", "ExaminedBodyThickness"] + }, + "0012": { + "0010": ["LO", "ClinicalTrialSponsorName"], + "0020": ["LO", "ClinicalTrialProtocolID"], + "0021": ["LO", "ClinicalTrialProtocolName"], + "0030": ["LO", "ClinicalTrialSiteID"], + "0031": ["LO", "ClinicalTrialSiteName"], + "0040": ["LO", "ClinicalTrialSubjectID"], + "0042": ["LO", "ClinicalTrialSubjectReadingID"], + "0050": ["LO", "ClinicalTrialTimePointID"], + "0051": ["ST", "ClinicalTrialTimePointDescription"], + "0060": ["LO", "ClinicalTrialCoordinatingCenterName"], + "0062": ["CS", "PatientIdentityRemoved"], + "0063": ["LO", "DeidentificationMethod"], + "0064": ["SQ", "DeidentificationMethodCodeSequence"], + "0071": ["LO", "ClinicalTrialSeriesID"], + "0072": ["LO", "ClinicalTrialSeriesDescription"], + "0081": ["LO", "ClinicalTrialProtocolEthicsCommitteeName"], + "0082": ["LO", "ClinicalTrialProtocolEthicsCommitteeApprovalNumber"], + "0083": ["SQ", "ConsentForClinicalTrialUseSequence"], + "0084": ["CS", "DistributionType"], + "0085": ["CS", "ConsentForDistributionFlag"] + }, + "0014": { + "0023": ["ST", "CADFileFormat"], + "0024": ["ST", "ComponentReferenceSystem"], + "0025": ["ST", "ComponentManufacturingProcedure"], + "0028": ["ST", "ComponentManufacturer"], + "0030": ["DS", "MaterialThickness"], + "0032": ["DS", "MaterialPipeDiameter"], + "0034": ["DS", "MaterialIsolationDiameter"], + "0042": ["ST", "MaterialGrade"], + "0044": ["ST", "MaterialPropertiesFileID"], + "0045": ["ST", "MaterialPropertiesFileFormat"], + "0046": ["LT", "MaterialNotes"], + "0050": ["CS", "ComponentShape"], + "0052": ["CS", "CurvatureType"], + "0054": ["DS", "OuterDiameter"], + "0056": ["DS", "InnerDiameter"], + "1010": ["ST", "ActualEnvironmentalConditions"], + "1020": ["DA", "ExpiryDate"], + "1040": ["ST", "EnvironmentalConditions"], + "2002": ["SQ", "EvaluatorSequence"], + "2004": ["IS", "EvaluatorNumber"], + "2006": ["PN", "EvaluatorName"], + "2008": ["IS", "EvaluationAttempt"], + "2012": ["SQ", "IndicationSequence"], + "2014": ["IS", "IndicationNumber "], + "2016": ["SH", "IndicationLabel"], + "2018": ["ST", "IndicationDescription"], + "201A": ["CS", "IndicationType"], + "201C": ["CS", "IndicationDisposition"], + "201E": ["SQ", "IndicationROISequence"], + "2030": ["SQ", "IndicationPhysicalPropertySequence"], + "2032": ["SH", "PropertyLabel"], + "2202": ["IS", "CoordinateSystemNumberOfAxes "], + "2204": ["SQ", "CoordinateSystemAxesSequence"], + "2206": ["ST", "CoordinateSystemAxisDescription"], + "2208": ["CS", "CoordinateSystemDataSetMapping"], + "220A": ["IS", "CoordinateSystemAxisNumber"], + "220C": ["CS", "CoordinateSystemAxisType"], + "220E": ["CS", "CoordinateSystemAxisUnits"], + "2210": ["OB", "CoordinateSystemAxisValues"], + "2220": ["SQ", "CoordinateSystemTransformSequence"], + "2222": ["ST", "TransformDescription"], + "2224": ["IS", "TransformNumberOfAxes"], + "2226": ["IS", "TransformOrderOfAxes"], + "2228": ["CS", "TransformedAxisUnits"], + "222A": ["DS", "CoordinateSystemTransformRotationAndScaleMatrix"], + "222C": ["DS", "CoordinateSystemTransformTranslationMatrix"], + "3011": ["DS", "InternalDetectorFrameTime"], + "3012": ["DS", "NumberOfFramesIntegrated"], + "3020": ["SQ", "DetectorTemperatureSequence"], + "3022": ["DS", "SensorName"], + "3024": ["DS", "HorizontalOffsetOfSensor"], + "3026": ["DS", "VerticalOffsetOfSensor"], + "3028": ["DS", "SensorTemperature"], + "3040": ["SQ", "DarkCurrentSequence"], + "3050": ["OB", "DarkCurrentCounts"], + "3060": ["SQ", "GainCorrectionReferenceSequence"], + "3070": ["OB", "AirCounts"], + "3071": ["DS", "KVUsedInGainCalibration"], + "3072": ["DS", "MAUsedInGainCalibration"], + "3073": ["DS", "NumberOfFramesUsedForIntegration"], + "3074": ["LO", "FilterMaterialUsedInGainCalibration"], + "3075": ["DS", "FilterThicknessUsedInGainCalibration"], + "3076": ["DA", "DateOfGainCalibration"], + "3077": ["TM", "TimeOfGainCalibration"], + "3080": ["OB", "BadPixelImage"], + "3099": ["LT", "CalibrationNotes"], + "4002": ["SQ", "PulserEquipmentSequence"], + "4004": ["CS", "PulserType"], + "4006": ["LT", "PulserNotes"], + "4008": ["SQ", "ReceiverEquipmentSequence"], + "400A": ["CS", "AmplifierType"], + "400C": ["LT", "ReceiverNotes"], + "400E": ["SQ", "PreAmplifierEquipmentSequence"], + "400F": ["LT", "PreAmplifierNotes"], + "4010": ["SQ", "TransmitTransducerSequence"], + "4011": ["SQ", "ReceiveTransducerSequence"], + "4012": ["US", "NumberOfElements"], + "4013": ["CS", "ElementShape"], + "4014": ["DS", "ElementDimensionA"], + "4015": ["DS", "ElementDimensionB"], + "4016": ["DS", "ElementPitch"], + "4017": ["DS", "MeasuredBeamDimensionA"], + "4018": ["DS", "MeasuredBeamDimensionB"], + "4019": ["DS", "LocationOfMeasuredBeamDiameter"], + "401A": ["DS", "NominalFrequency"], + "401B": ["DS", "MeasuredCenterFrequency"], + "401C": ["DS", "MeasuredBandwidth"], + "4020": ["SQ", "PulserSettingsSequence"], + "4022": ["DS", "PulseWidth"], + "4024": ["DS", "ExcitationFrequency"], + "4026": ["CS", "ModulationType"], + "4028": ["DS", "Damping"], + "4030": ["SQ", "ReceiverSettingsSequence"], + "4031": ["DS", "AcquiredSoundpathLength"], + "4032": ["CS", "AcquisitionCompressionType"], + "4033": ["IS", "AcquisitionSampleSize"], + "4034": ["DS", "RectifierSmoothing"], + "4035": ["SQ", "DACSequence"], + "4036": ["CS", "DACType"], + "4038": ["DS", "DACGainPoints"], + "403A": ["DS", "DACTimePoints"], + "403C": ["DS", "DACAmplitude"], + "4040": ["SQ", "PreAmplifierSettingsSequence"], + "4050": ["SQ", "TransmitTransducerSettingsSequence"], + "4051": ["SQ", "ReceiveTransducerSettingsSequence"], + "4052": ["DS", "IncidentAngle"], + "4054": ["ST", "CouplingTechnique"], + "4056": ["ST", "CouplingMedium"], + "4057": ["DS", "CouplingVelocity"], + "4058": ["DS", "CrystalCenterLocationX"], + "4059": ["DS", "CrystalCenterLocationZ"], + "405A": ["DS", "SoundPathLength"], + "405C": ["ST", "DelayLawIdentifier"], + "4060": ["SQ", "GateSettingsSequence"], + "4062": ["DS", "GateThreshold"], + "4064": ["DS", "VelocityOfSound"], + "4070": ["SQ", "CalibrationSettingsSequence"], + "4072": ["ST", "CalibrationProcedure"], + "4074": ["SH", "ProcedureVersion"], + "4076": ["DA", "ProcedureCreationDate"], + "4078": ["DA", "ProcedureExpirationDate"], + "407A": ["DA", "ProcedureLastModifiedDate"], + "407C": ["TM", "CalibrationTime"], + "407E": ["DA", "CalibrationDate"], + "5002": ["IS", "LINACEnergy"], + "5004": ["IS", "LINACOutput"] + }, + "0018": { + "0010": ["LO", "ContrastBolusAgent"], + "0012": ["SQ", "ContrastBolusAgentSequence"], + "0014": ["SQ", "ContrastBolusAdministrationRouteSequence"], + "0015": ["CS", "BodyPartExamined"], + "0020": ["CS", "ScanningSequence"], + "0021": ["CS", "SequenceVariant"], + "0022": ["CS", "ScanOptions"], + "0023": ["CS", "MRAcquisitionType"], + "0024": ["SH", "SequenceName"], + "0025": ["CS", "AngioFlag"], + "0026": ["SQ", "InterventionDrugInformationSequence"], + "0027": ["TM", "InterventionDrugStopTime"], + "0028": ["DS", "InterventionDrugDose"], + "0029": ["SQ", "InterventionDrugCodeSequence"], + "002A": ["SQ", "AdditionalDrugSequence"], + "0030": ["LO", "Radionuclide"], + "0031": ["LO", "Radiopharmaceutical"], + "0032": ["DS", "EnergyWindowCenterline"], + "0033": ["DS", "EnergyWindowTotalWidth"], + "0034": ["LO", "InterventionDrugName"], + "0035": ["TM", "InterventionDrugStartTime"], + "0036": ["SQ", "InterventionSequence"], + "0037": ["CS", "TherapyType"], + "0038": ["CS", "InterventionStatus"], + "0039": ["CS", "TherapyDescription"], + "003A": ["ST", "InterventionDescription"], + "0040": ["IS", "CineRate"], + "0042": ["CS", "InitialCineRunState"], + "0050": ["DS", "SliceThickness"], + "0060": ["DS", "KVP"], + "0070": ["IS", "CountsAccumulated"], + "0071": ["CS", "AcquisitionTerminationCondition"], + "0072": ["DS", "EffectiveDuration"], + "0073": ["CS", "AcquisitionStartCondition"], + "0074": ["IS", "AcquisitionStartConditionData"], + "0075": ["IS", "AcquisitionTerminationConditionData"], + "0080": ["DS", "RepetitionTime"], + "0081": ["DS", "EchoTime"], + "0082": ["DS", "InversionTime"], + "0083": ["DS", "NumberOfAverages"], + "0084": ["DS", "ImagingFrequency"], + "0085": ["SH", "ImagedNucleus"], + "0086": ["IS", "EchoNumbers"], + "0087": ["DS", "MagneticFieldStrength"], + "0088": ["DS", "SpacingBetweenSlices"], + "0089": ["IS", "NumberOfPhaseEncodingSteps"], + "0090": ["DS", "DataCollectionDiameter"], + "0091": ["IS", "EchoTrainLength"], + "0093": ["DS", "PercentSampling"], + "0094": ["DS", "PercentPhaseFieldOfView"], + "0095": ["DS", "PixelBandwidth"], + "1000": ["LO", "DeviceSerialNumber"], + "1002": ["UI", "DeviceUID"], + "1003": ["LO", "DeviceID"], + "1004": ["LO", "PlateID"], + "1005": ["LO", "GeneratorID"], + "1006": ["LO", "GridID"], + "1007": ["LO", "CassetteID"], + "1008": ["LO", "GantryID"], + "1010": ["LO", "SecondaryCaptureDeviceID"], + "1011": ["LO", "HardcopyCreationDeviceID"], + "1012": ["DA", "DateOfSecondaryCapture"], + "1014": ["TM", "TimeOfSecondaryCapture"], + "1016": ["LO", "SecondaryCaptureDeviceManufacturer"], + "1017": ["LO", "HardcopyDeviceManufacturer"], + "1018": ["LO", "SecondaryCaptureDeviceManufacturerModelName"], + "1019": ["LO", "SecondaryCaptureDeviceSoftwareVersions"], + "101A": ["LO", "HardcopyDeviceSoftwareVersion"], + "101B": ["LO", "HardcopyDeviceManufacturerModelName"], + "1020": ["LO", "SoftwareVersions"], + "1022": ["SH", "VideoImageFormatAcquired"], + "1023": ["LO", "DigitalImageFormatAcquired"], + "1030": ["LO", "ProtocolName"], + "1040": ["LO", "ContrastBolusRoute"], + "1041": ["DS", "ContrastBolusVolume"], + "1042": ["TM", "ContrastBolusStartTime"], + "1043": ["TM", "ContrastBolusStopTime"], + "1044": ["DS", "ContrastBolusTotalDose"], + "1045": ["IS", "SyringeCounts"], + "1046": ["DS", "ContrastFlowRate"], + "1047": ["DS", "ContrastFlowDuration"], + "1048": ["CS", "ContrastBolusIngredient"], + "1049": ["DS", "ContrastBolusIngredientConcentration"], + "1050": ["DS", "SpatialResolution"], + "1060": ["DS", "TriggerTime"], + "1061": ["LO", "TriggerSourceOrType"], + "1062": ["IS", "NominalInterval"], + "1063": ["DS", "FrameTime"], + "1064": ["LO", "CardiacFramingType"], + "1065": ["DS", "FrameTimeVector"], + "1066": ["DS", "FrameDelay"], + "1067": ["DS", "ImageTriggerDelay"], + "1068": ["DS", "MultiplexGroupTimeOffset"], + "1069": ["DS", "TriggerTimeOffset"], + "106A": ["CS", "SynchronizationTrigger"], + "106C": ["US", "SynchronizationChannel"], + "106E": ["UL", "TriggerSamplePosition"], + "1070": ["LO", "RadiopharmaceuticalRoute"], + "1071": ["DS", "RadiopharmaceuticalVolume"], + "1072": ["TM", "RadiopharmaceuticalStartTime"], + "1073": ["TM", "RadiopharmaceuticalStopTime"], + "1074": ["DS", "RadionuclideTotalDose"], + "1075": ["DS", "RadionuclideHalfLife"], + "1076": ["DS", "RadionuclidePositronFraction"], + "1077": ["DS", "RadiopharmaceuticalSpecificActivity"], + "1078": ["DT", "RadiopharmaceuticalStartDateTime"], + "1079": ["DT", "RadiopharmaceuticalStopDateTime"], + "1080": ["CS", "BeatRejectionFlag"], + "1081": ["IS", "LowRRValue"], + "1082": ["IS", "HighRRValue"], + "1083": ["IS", "IntervalsAcquired"], + "1084": ["IS", "IntervalsRejected"], + "1085": ["LO", "PVCRejection"], + "1086": ["IS", "SkipBeats"], + "1088": ["IS", "HeartRate"], + "1090": ["IS", "CardiacNumberOfImages"], + "1094": ["IS", "TriggerWindow"], + "1100": ["DS", "ReconstructionDiameter"], + "1110": ["DS", "DistanceSourceToDetector"], + "1111": ["DS", "DistanceSourceToPatient"], + "1114": ["DS", "EstimatedRadiographicMagnificationFactor"], + "1120": ["DS", "GantryDetectorTilt"], + "1121": ["DS", "GantryDetectorSlew"], + "1130": ["DS", "TableHeight"], + "1131": ["DS", "TableTraverse"], + "1134": ["CS", "TableMotion"], + "1135": ["DS", "TableVerticalIncrement"], + "1136": ["DS", "TableLateralIncrement"], + "1137": ["DS", "TableLongitudinalIncrement"], + "1138": ["DS", "TableAngle"], + "113A": ["CS", "TableType"], + "1140": ["CS", "RotationDirection"], + "1141": ["DS", "AngularPosition"], + "1142": ["DS", "RadialPosition"], + "1143": ["DS", "ScanArc"], + "1144": ["DS", "AngularStep"], + "1145": ["DS", "CenterOfRotationOffset"], + "1146": ["DS", "RotationOffset"], + "1147": ["CS", "FieldOfViewShape"], + "1149": ["IS", "FieldOfViewDimensions"], + "1150": ["IS", "ExposureTime"], + "1151": ["IS", "XRayTubeCurrent"], + "1152": ["IS", "Exposure"], + "1153": ["IS", "ExposureInuAs"], + "1154": ["DS", "AveragePulseWidth"], + "1155": ["CS", "RadiationSetting"], + "1156": ["CS", "RectificationType"], + "115A": ["CS", "RadiationMode"], + "115E": ["DS", "ImageAndFluoroscopyAreaDoseProduct"], + "1160": ["SH", "FilterType"], + "1161": ["LO", "TypeOfFilters"], + "1162": ["DS", "IntensifierSize"], + "1164": ["DS", "ImagerPixelSpacing"], + "1166": ["CS", "Grid"], + "1170": ["IS", "GeneratorPower"], + "1180": ["SH", "CollimatorGridName"], + "1181": ["CS", "CollimatorType"], + "1182": ["IS", "FocalDistance"], + "1183": ["DS", "XFocusCenter"], + "1184": ["DS", "YFocusCenter"], + "1190": ["DS", "FocalSpots"], + "1191": ["CS", "AnodeTargetMaterial"], + "11A0": ["DS", "BodyPartThickness"], + "11A2": ["DS", "CompressionForce"], + "1200": ["DA", "DateOfLastCalibration"], + "1201": ["TM", "TimeOfLastCalibration"], + "1210": ["SH", "ConvolutionKernel"], + "1240": ["IS", "UpperLowerPixelValues"], + "1242": ["IS", "ActualFrameDuration"], + "1243": ["IS", "CountRate"], + "1244": ["US", "PreferredPlaybackSequencing"], + "1250": ["SH", "ReceiveCoilName"], + "1251": ["SH", "TransmitCoilName"], + "1260": ["SH", "PlateType"], + "1261": ["LO", "PhosphorType"], + "1300": ["DS", "ScanVelocity"], + "1301": ["CS", "WholeBodyTechnique"], + "1302": ["IS", "ScanLength"], + "1310": ["US", "AcquisitionMatrix"], + "1312": ["CS", "InPlanePhaseEncodingDirection"], + "1314": ["DS", "FlipAngle"], + "1315": ["CS", "VariableFlipAngleFlag"], + "1316": ["DS", "SAR"], + "1318": ["DS", "dBdt"], + "1400": ["LO", "AcquisitionDeviceProcessingDescription"], + "1401": ["LO", "AcquisitionDeviceProcessingCode"], + "1402": ["CS", "CassetteOrientation"], + "1403": ["CS", "CassetteSize"], + "1404": ["US", "ExposuresOnPlate"], + "1405": ["IS", "RelativeXRayExposure"], + "1411": ["DS", "ExposureIndex"], + "1412": ["DS", "TargetExposureIndex"], + "1413": ["DS", "DeviationIndex"], + "1450": ["DS", "ColumnAngulation"], + "1460": ["DS", "TomoLayerHeight"], + "1470": ["DS", "TomoAngle"], + "1480": ["DS", "TomoTime"], + "1490": ["CS", "TomoType"], + "1491": ["CS", "TomoClass"], + "1495": ["IS", "NumberOfTomosynthesisSourceImages"], + "1500": ["CS", "PositionerMotion"], + "1508": ["CS", "PositionerType"], + "1510": ["DS", "PositionerPrimaryAngle"], + "1511": ["DS", "PositionerSecondaryAngle"], + "1520": ["DS", "PositionerPrimaryAngleIncrement"], + "1521": ["DS", "PositionerSecondaryAngleIncrement"], + "1530": ["DS", "DetectorPrimaryAngle"], + "1531": ["DS", "DetectorSecondaryAngle"], + "1600": ["CS", "ShutterShape"], + "1602": ["IS", "ShutterLeftVerticalEdge"], + "1604": ["IS", "ShutterRightVerticalEdge"], + "1606": ["IS", "ShutterUpperHorizontalEdge"], + "1608": ["IS", "ShutterLowerHorizontalEdge"], + "1610": ["IS", "CenterOfCircularShutter"], + "1612": ["IS", "RadiusOfCircularShutter"], + "1620": ["IS", "VerticesOfThePolygonalShutter"], + "1622": ["US", "ShutterPresentationValue"], + "1623": ["US", "ShutterOverlayGroup"], + "1624": ["US", "ShutterPresentationColorCIELabValue"], + "1700": ["CS", "CollimatorShape"], + "1702": ["IS", "CollimatorLeftVerticalEdge"], + "1704": ["IS", "CollimatorRightVerticalEdge"], + "1706": ["IS", "CollimatorUpperHorizontalEdge"], + "1708": ["IS", "CollimatorLowerHorizontalEdge"], + "1710": ["IS", "CenterOfCircularCollimator"], + "1712": ["IS", "RadiusOfCircularCollimator"], + "1720": ["IS", "VerticesOfThePolygonalCollimator"], + "1800": ["CS", "AcquisitionTimeSynchronized"], + "1801": ["SH", "TimeSource"], + "1802": ["CS", "TimeDistributionProtocol"], + "1803": ["LO", "NTPSourceAddress"], + "2001": ["IS", "PageNumberVector"], + "2002": ["SH", "FrameLabelVector"], + "2003": ["DS", "FramePrimaryAngleVector"], + "2004": ["DS", "FrameSecondaryAngleVector"], + "2005": ["DS", "SliceLocationVector"], + "2006": ["SH", "DisplayWindowLabelVector"], + "2010": ["DS", "NominalScannedPixelSpacing"], + "2020": ["CS", "DigitizingDeviceTransportDirection"], + "2030": ["DS", "RotationOfScannedFilm"], + "3100": ["CS", "IVUSAcquisition"], + "3101": ["DS", "IVUSPullbackRate"], + "3102": ["DS", "IVUSGatedRate"], + "3103": ["IS", "IVUSPullbackStartFrameNumber"], + "3104": ["IS", "IVUSPullbackStopFrameNumber"], + "3105": ["IS", "LesionNumber"], + "4000": ["LT", "AcquisitionComments"], + "5000": ["SH", "OutputPower"], + "5010": ["LO", "TransducerData"], + "5012": ["DS", "FocusDepth"], + "5020": ["LO", "ProcessingFunction"], + "5021": ["LO", "PostprocessingFunction"], + "5022": ["DS", "MechanicalIndex"], + "5024": ["DS", "BoneThermalIndex"], + "5026": ["DS", "CranialThermalIndex"], + "5027": ["DS", "SoftTissueThermalIndex"], + "5028": ["DS", "SoftTissueFocusThermalIndex"], + "5029": ["DS", "SoftTissueSurfaceThermalIndex"], + "5030": ["DS", "DynamicRange"], + "5040": ["DS", "TotalGain"], + "5050": ["IS", "DepthOfScanField"], + "5100": ["CS", "PatientPosition"], + "5101": ["CS", "ViewPosition"], + "5104": ["SQ", "ProjectionEponymousNameCodeSequence"], + "5210": ["DS", "ImageTransformationMatrix"], + "5212": ["DS", "ImageTranslationVector"], + "6000": ["DS", "Sensitivity"], + "6011": ["SQ", "SequenceOfUltrasoundRegions"], + "6012": ["US", "RegionSpatialFormat"], + "6014": ["US", "RegionDataType"], + "6016": ["UL", "RegionFlags"], + "6018": ["UL", "RegionLocationMinX0"], + "601A": ["UL", "RegionLocationMinY0"], + "601C": ["UL", "RegionLocationMaxX1"], + "601E": ["UL", "RegionLocationMaxY1"], + "6020": ["SL", "ReferencePixelX0"], + "6022": ["SL", "ReferencePixelY0"], + "6024": ["US", "PhysicalUnitsXDirection"], + "6026": ["US", "PhysicalUnitsYDirection"], + "6028": ["FD", "ReferencePixelPhysicalValueX"], + "602A": ["FD", "ReferencePixelPhysicalValueY"], + "602C": ["FD", "PhysicalDeltaX"], + "602E": ["FD", "PhysicalDeltaY"], + "6030": ["UL", "TransducerFrequency"], + "6031": ["CS", "TransducerType"], + "6032": ["UL", "PulseRepetitionFrequency"], + "6034": ["FD", "DopplerCorrectionAngle"], + "6036": ["FD", "SteeringAngle"], + "6038": ["UL", "DopplerSampleVolumeXPositionRetired"], + "6039": ["SL", "DopplerSampleVolumeXPosition"], + "603A": ["UL", "DopplerSampleVolumeYPositionRetired"], + "603B": ["SL", "DopplerSampleVolumeYPosition"], + "603C": ["UL", "TMLinePositionX0Retired"], + "603D": ["SL", "TMLinePositionX0"], + "603E": ["UL", "TMLinePositionY0Retired"], + "603F": ["SL", "TMLinePositionY0"], + "6040": ["UL", "TMLinePositionX1Retired"], + "6041": ["SL", "TMLinePositionX1"], + "6042": ["UL", "TMLinePositionY1Retired"], + "6043": ["SL", "TMLinePositionY1"], + "6044": ["US", "PixelComponentOrganization"], + "6046": ["UL", "PixelComponentMask"], + "6048": ["UL", "PixelComponentRangeStart"], + "604A": ["UL", "PixelComponentRangeStop"], + "604C": ["US", "PixelComponentPhysicalUnits"], + "604E": ["US", "PixelComponentDataType"], + "6050": ["UL", "NumberOfTableBreakPoints"], + "6052": ["UL", "TableOfXBreakPoints"], + "6054": ["FD", "TableOfYBreakPoints"], + "6056": ["UL", "NumberOfTableEntries"], + "6058": ["UL", "TableOfPixelValues"], + "605A": ["FL", "TableOfParameterValues"], + "6060": ["FL", "RWaveTimeVector"], + "7000": ["CS", "DetectorConditionsNominalFlag"], + "7001": ["DS", "DetectorTemperature"], + "7004": ["CS", "DetectorType"], + "7005": ["CS", "DetectorConfiguration"], + "7006": ["LT", "DetectorDescription"], + "7008": ["LT", "DetectorMode"], + "700A": ["SH", "DetectorID"], + "700C": ["DA", "DateOfLastDetectorCalibration"], + "700E": ["TM", "TimeOfLastDetectorCalibration"], + "7010": ["IS", "ExposuresOnDetectorSinceLastCalibration"], + "7011": ["IS", "ExposuresOnDetectorSinceManufactured"], + "7012": ["DS", "DetectorTimeSinceLastExposure"], + "7014": ["DS", "DetectorActiveTime"], + "7016": ["DS", "DetectorActivationOffsetFromExposure"], + "701A": ["DS", "DetectorBinning"], + "7020": ["DS", "DetectorElementPhysicalSize"], + "7022": ["DS", "DetectorElementSpacing"], + "7024": ["CS", "DetectorActiveShape"], + "7026": ["DS", "DetectorActiveDimensions"], + "7028": ["DS", "DetectorActiveOrigin"], + "702A": ["LO", "DetectorManufacturerName"], + "702B": ["LO", "DetectorManufacturerModelName"], + "7030": ["DS", "FieldOfViewOrigin"], + "7032": ["DS", "FieldOfViewRotation"], + "7034": ["CS", "FieldOfViewHorizontalFlip"], + "7036": ["FL", "PixelDataAreaOriginRelativeToFOV"], + "7038": ["FL", "PixelDataAreaRotationAngleRelativeToFOV"], + "7040": ["LT", "GridAbsorbingMaterial"], + "7041": ["LT", "GridSpacingMaterial"], + "7042": ["DS", "GridThickness"], + "7044": ["DS", "GridPitch"], + "7046": ["IS", "GridAspectRatio"], + "7048": ["DS", "GridPeriod"], + "704C": ["DS", "GridFocalDistance"], + "7050": ["CS", "FilterMaterial"], + "7052": ["DS", "FilterThicknessMinimum"], + "7054": ["DS", "FilterThicknessMaximum"], + "7056": ["FL", "FilterBeamPathLengthMinimum"], + "7058": ["FL", "FilterBeamPathLengthMaximum"], + "7060": ["CS", "ExposureControlMode"], + "7062": ["LT", "ExposureControlModeDescription"], + "7064": ["CS", "ExposureStatus"], + "7065": ["DS", "PhototimerSetting"], + "8150": ["DS", "ExposureTimeInuS"], + "8151": ["DS", "XRayTubeCurrentInuA"], + "9004": ["CS", "ContentQualification"], + "9005": ["SH", "PulseSequenceName"], + "9006": ["SQ", "MRImagingModifierSequence"], + "9008": ["CS", "EchoPulseSequence"], + "9009": ["CS", "InversionRecovery"], + "9010": ["CS", "FlowCompensation"], + "9011": ["CS", "MultipleSpinEcho"], + "9012": ["CS", "MultiPlanarExcitation"], + "9014": ["CS", "PhaseContrast"], + "9015": ["CS", "TimeOfFlightContrast"], + "9016": ["CS", "Spoiling"], + "9017": ["CS", "SteadyStatePulseSequence"], + "9018": ["CS", "EchoPlanarPulseSequence"], + "9019": ["FD", "TagAngleFirstAxis"], + "9020": ["CS", "MagnetizationTransfer"], + "9021": ["CS", "T2Preparation"], + "9022": ["CS", "BloodSignalNulling"], + "9024": ["CS", "SaturationRecovery"], + "9025": ["CS", "SpectrallySelectedSuppression"], + "9026": ["CS", "SpectrallySelectedExcitation"], + "9027": ["CS", "SpatialPresaturation"], + "9028": ["CS", "Tagging"], + "9029": ["CS", "OversamplingPhase"], + "9030": ["FD", "TagSpacingFirstDimension"], + "9032": ["CS", "GeometryOfKSpaceTraversal"], + "9033": ["CS", "SegmentedKSpaceTraversal"], + "9034": ["CS", "RectilinearPhaseEncodeReordering"], + "9035": ["FD", "TagThickness"], + "9036": ["CS", "PartialFourierDirection"], + "9037": ["CS", "CardiacSynchronizationTechnique"], + "9041": ["LO", "ReceiveCoilManufacturerName"], + "9042": ["SQ", "MRReceiveCoilSequence"], + "9043": ["CS", "ReceiveCoilType"], + "9044": ["CS", "QuadratureReceiveCoil"], + "9045": ["SQ", "MultiCoilDefinitionSequence"], + "9046": ["LO", "MultiCoilConfiguration"], + "9047": ["SH", "MultiCoilElementName"], + "9048": ["CS", "MultiCoilElementUsed"], + "9049": ["SQ", "MRTransmitCoilSequence"], + "9050": ["LO", "TransmitCoilManufacturerName"], + "9051": ["CS", "TransmitCoilType"], + "9052": ["FD", "SpectralWidth"], + "9053": ["FD", "ChemicalShiftReference"], + "9054": ["CS", "VolumeLocalizationTechnique"], + "9058": ["US", "MRAcquisitionFrequencyEncodingSteps"], + "9059": ["CS", "Decoupling"], + "9060": ["CS", "DecoupledNucleus"], + "9061": ["FD", "DecouplingFrequency"], + "9062": ["CS", "DecouplingMethod"], + "9063": ["FD", "DecouplingChemicalShiftReference"], + "9064": ["CS", "KSpaceFiltering"], + "9065": ["CS", "TimeDomainFiltering"], + "9066": ["US", "NumberOfZeroFills"], + "9067": ["CS", "BaselineCorrection"], + "9069": ["FD", "ParallelReductionFactorInPlane"], + "9070": ["FD", "CardiacRRIntervalSpecified"], + "9073": ["FD", "AcquisitionDuration"], + "9074": ["DT", "FrameAcquisitionDateTime"], + "9075": ["CS", "DiffusionDirectionality"], + "9076": ["SQ", "DiffusionGradientDirectionSequence"], + "9077": ["CS", "ParallelAcquisition"], + "9078": ["CS", "ParallelAcquisitionTechnique"], + "9079": ["FD", "InversionTimes"], + "9080": ["ST", "MetaboliteMapDescription"], + "9081": ["CS", "PartialFourier"], + "9082": ["FD", "EffectiveEchoTime"], + "9083": ["SQ", "MetaboliteMapCodeSequence"], + "9084": ["SQ", "ChemicalShiftSequence"], + "9085": ["CS", "CardiacSignalSource"], + "9087": ["FD", "DiffusionBValue"], + "9089": ["FD", "DiffusionGradientOrientation"], + "9090": ["FD", "VelocityEncodingDirection"], + "9091": ["FD", "VelocityEncodingMinimumValue"], + "9092": ["SQ", "VelocityEncodingAcquisitionSequence"], + "9093": ["US", "NumberOfKSpaceTrajectories"], + "9094": ["CS", "CoverageOfKSpace"], + "9095": ["UL", "SpectroscopyAcquisitionPhaseRows"], + "9096": ["FD", "ParallelReductionFactorInPlaneRetired"], + "9098": ["FD", "TransmitterFrequency"], + "9100": ["CS", "ResonantNucleus"], + "9101": ["CS", "FrequencyCorrection"], + "9103": ["SQ", "MRSpectroscopyFOVGeometrySequence"], + "9104": ["FD", "SlabThickness"], + "9105": ["FD", "SlabOrientation"], + "9106": ["FD", "MidSlabPosition"], + "9107": ["SQ", "MRSpatialSaturationSequence"], + "9112": ["SQ", "MRTimingAndRelatedParametersSequence"], + "9114": ["SQ", "MREchoSequence"], + "9115": ["SQ", "MRModifierSequence"], + "9117": ["SQ", "MRDiffusionSequence"], + "9118": ["SQ", "CardiacSynchronizationSequence"], + "9119": ["SQ", "MRAveragesSequence"], + "9125": ["SQ", "MRFOVGeometrySequence"], + "9126": ["SQ", "VolumeLocalizationSequence"], + "9127": ["UL", "SpectroscopyAcquisitionDataColumns"], + "9147": ["CS", "DiffusionAnisotropyType"], + "9151": ["DT", "FrameReferenceDateTime"], + "9152": ["SQ", "MRMetaboliteMapSequence"], + "9155": ["FD", "ParallelReductionFactorOutOfPlane"], + "9159": ["UL", "SpectroscopyAcquisitionOutOfPlanePhaseSteps"], + "9166": ["CS", "BulkMotionStatus"], + "9168": ["FD", "ParallelReductionFactorSecondInPlane"], + "9169": ["CS", "CardiacBeatRejectionTechnique"], + "9170": ["CS", "RespiratoryMotionCompensationTechnique"], + "9171": ["CS", "RespiratorySignalSource"], + "9172": ["CS", "BulkMotionCompensationTechnique"], + "9173": ["CS", "BulkMotionSignalSource"], + "9174": ["CS", "ApplicableSafetyStandardAgency"], + "9175": ["LO", "ApplicableSafetyStandardDescription"], + "9176": ["SQ", "OperatingModeSequence"], + "9177": ["CS", "OperatingModeType"], + "9178": ["CS", "OperatingMode"], + "9179": ["CS", "SpecificAbsorptionRateDefinition"], + "9180": ["CS", "GradientOutputType"], + "9181": ["FD", "SpecificAbsorptionRateValue"], + "9182": ["FD", "GradientOutput"], + "9183": ["CS", "FlowCompensationDirection"], + "9184": ["FD", "TaggingDelay"], + "9185": ["ST", "RespiratoryMotionCompensationTechniqueDescription"], + "9186": ["SH", "RespiratorySignalSourceID"], + "9195": ["FD", "ChemicalShiftMinimumIntegrationLimitInHz"], + "9196": ["FD", "ChemicalShiftMaximumIntegrationLimitInHz"], + "9197": ["SQ", "MRVelocityEncodingSequence"], + "9198": ["CS", "FirstOrderPhaseCorrection"], + "9199": ["CS", "WaterReferencedPhaseCorrection"], + "9200": ["CS", "MRSpectroscopyAcquisitionType"], + "9214": ["CS", "RespiratoryCyclePosition"], + "9217": ["FD", "VelocityEncodingMaximumValue"], + "9218": ["FD", "TagSpacingSecondDimension"], + "9219": ["SS", "TagAngleSecondAxis"], + "9220": ["FD", "FrameAcquisitionDuration"], + "9226": ["SQ", "MRImageFrameTypeSequence"], + "9227": ["SQ", "MRSpectroscopyFrameTypeSequence"], + "9231": ["US", "MRAcquisitionPhaseEncodingStepsInPlane"], + "9232": ["US", "MRAcquisitionPhaseEncodingStepsOutOfPlane"], + "9234": ["UL", "SpectroscopyAcquisitionPhaseColumns"], + "9236": ["CS", "CardiacCyclePosition"], + "9239": ["SQ", "SpecificAbsorptionRateSequence"], + "9240": ["US", "RFEchoTrainLength"], + "9241": ["US", "GradientEchoTrainLength"], + "9250": ["CS", "ArterialSpinLabelingContrast"], + "9251": ["SQ", "MRArterialSpinLabelingSequence"], + "9252": ["LO", "ASLTechniqueDescription"], + "9253": ["US", "ASLSlabNumber"], + "9254": ["FD ", "ASLSlabThickness"], + "9255": ["FD ", "ASLSlabOrientation"], + "9256": ["FD ", "ASLMidSlabPosition"], + "9257": ["CS", "ASLContext"], + "9258": ["UL", "ASLPulseTrainDuration"], + "9259": ["CS", "ASLCrusherFlag"], + "925A": ["FD", "ASLCrusherFlow"], + "925B": ["LO", "ASLCrusherDescription"], + "925C": ["CS", "ASLBolusCutoffFlag"], + "925D": ["SQ", "ASLBolusCutoffTimingSequence"], + "925E": ["LO", "ASLBolusCutoffTechnique"], + "925F": ["UL", "ASLBolusCutoffDelayTime"], + "9260": ["SQ", "ASLSlabSequence"], + "9295": ["FD", "ChemicalShiftMinimumIntegrationLimitInppm"], + "9296": ["FD", "ChemicalShiftMaximumIntegrationLimitInppm"], + "9301": ["SQ", "CTAcquisitionTypeSequence"], + "9302": ["CS", "AcquisitionType"], + "9303": ["FD", "TubeAngle"], + "9304": ["SQ", "CTAcquisitionDetailsSequence"], + "9305": ["FD", "RevolutionTime"], + "9306": ["FD", "SingleCollimationWidth"], + "9307": ["FD", "TotalCollimationWidth"], + "9308": ["SQ", "CTTableDynamicsSequence"], + "9309": ["FD", "TableSpeed"], + "9310": ["FD", "TableFeedPerRotation"], + "9311": ["FD", "SpiralPitchFactor"], + "9312": ["SQ", "CTGeometrySequence"], + "9313": ["FD", "DataCollectionCenterPatient"], + "9314": ["SQ", "CTReconstructionSequence"], + "9315": ["CS", "ReconstructionAlgorithm"], + "9316": ["CS", "ConvolutionKernelGroup"], + "9317": ["FD", "ReconstructionFieldOfView"], + "9318": ["FD", "ReconstructionTargetCenterPatient"], + "9319": ["FD", "ReconstructionAngle"], + "9320": ["SH", "ImageFilter"], + "9321": ["SQ", "CTExposureSequence"], + "9322": ["FD", "ReconstructionPixelSpacing"], + "9323": ["CS", "ExposureModulationType"], + "9324": ["FD", "EstimatedDoseSaving"], + "9325": ["SQ", "CTXRayDetailsSequence"], + "9326": ["SQ", "CTPositionSequence"], + "9327": ["FD", "TablePosition"], + "9328": ["FD", "ExposureTimeInms"], + "9329": ["SQ", "CTImageFrameTypeSequence"], + "9330": ["FD", "XRayTubeCurrentInmA"], + "9332": ["FD", "ExposureInmAs"], + "9333": ["CS", "ConstantVolumeFlag"], + "9334": ["CS", "FluoroscopyFlag"], + "9335": ["FD", "DistanceSourceToDataCollectionCenter"], + "9337": ["US", "ContrastBolusAgentNumber"], + "9338": ["SQ", "ContrastBolusIngredientCodeSequence"], + "9340": ["SQ", "ContrastAdministrationProfileSequence"], + "9341": ["SQ", "ContrastBolusUsageSequence"], + "9342": ["CS", "ContrastBolusAgentAdministered"], + "9343": ["CS", "ContrastBolusAgentDetected"], + "9344": ["CS", "ContrastBolusAgentPhase"], + "9345": ["FD", "CTDIvol"], + "9346": ["SQ", "CTDIPhantomTypeCodeSequence"], + "9351": ["FL", "CalciumScoringMassFactorPatient"], + "9352": ["FL", "CalciumScoringMassFactorDevice"], + "9353": ["FL", "EnergyWeightingFactor"], + "9360": ["SQ", "CTAdditionalXRaySourceSequence"], + "9401": ["SQ", "ProjectionPixelCalibrationSequence"], + "9402": ["FL", "DistanceSourceToIsocenter"], + "9403": ["FL", "DistanceObjectToTableTop"], + "9404": ["FL", "ObjectPixelSpacingInCenterOfBeam"], + "9405": ["SQ", "PositionerPositionSequence"], + "9406": ["SQ", "TablePositionSequence"], + "9407": ["SQ", "CollimatorShapeSequence"], + "9410": ["CS", "PlanesInAcquisition"], + "9412": ["SQ", "XAXRFFrameCharacteristicsSequence"], + "9417": ["SQ", "FrameAcquisitionSequence"], + "9420": ["CS", "XRayReceptorType"], + "9423": ["LO", "AcquisitionProtocolName"], + "9424": ["LT", "AcquisitionProtocolDescription"], + "9425": ["CS", "ContrastBolusIngredientOpaque"], + "9426": ["FL", "DistanceReceptorPlaneToDetectorHousing"], + "9427": ["CS", "IntensifierActiveShape"], + "9428": ["FL", "IntensifierActiveDimensions"], + "9429": ["FL", "PhysicalDetectorSize"], + "9430": ["FL", "PositionOfIsocenterProjection"], + "9432": ["SQ", "FieldOfViewSequence"], + "9433": ["LO", "FieldOfViewDescription"], + "9434": ["SQ", "ExposureControlSensingRegionsSequence"], + "9435": ["CS", "ExposureControlSensingRegionShape"], + "9436": ["SS", "ExposureControlSensingRegionLeftVerticalEdge"], + "9437": ["SS", "ExposureControlSensingRegionRightVerticalEdge"], + "9438": ["SS", "ExposureControlSensingRegionUpperHorizontalEdge"], + "9439": ["SS", "ExposureControlSensingRegionLowerHorizontalEdge"], + "9440": ["SS", "CenterOfCircularExposureControlSensingRegion"], + "9441": ["US", "RadiusOfCircularExposureControlSensingRegion"], + "9442": ["SS", "VerticesOfThePolygonalExposureControlSensingRegion"], + "9447": ["FL", "ColumnAngulationPatient"], + "9449": ["FL", "BeamAngle"], + "9451": ["SQ", "FrameDetectorParametersSequence"], + "9452": ["FL", "CalculatedAnatomyThickness"], + "9455": ["SQ", "CalibrationSequence"], + "9456": ["SQ", "ObjectThicknessSequence"], + "9457": ["CS", "PlaneIdentification"], + "9461": ["FL", "FieldOfViewDimensionsInFloat"], + "9462": ["SQ", "IsocenterReferenceSystemSequence"], + "9463": ["FL", "PositionerIsocenterPrimaryAngle"], + "9464": ["FL", "PositionerIsocenterSecondaryAngle"], + "9465": ["FL", "PositionerIsocenterDetectorRotationAngle"], + "9466": ["FL", "TableXPositionToIsocenter"], + "9467": ["FL", "TableYPositionToIsocenter"], + "9468": ["FL", "TableZPositionToIsocenter"], + "9469": ["FL", "TableHorizontalRotationAngle"], + "9470": ["FL", "TableHeadTiltAngle"], + "9471": ["FL", "TableCradleTiltAngle"], + "9472": ["SQ", "FrameDisplayShutterSequence"], + "9473": ["FL", "AcquiredImageAreaDoseProduct"], + "9474": ["CS", "CArmPositionerTabletopRelationship"], + "9476": ["SQ", "XRayGeometrySequence"], + "9477": ["SQ", "IrradiationEventIdentificationSequence"], + "9504": ["SQ", "XRay3DFrameTypeSequence"], + "9506": ["SQ", "ContributingSourcesSequence"], + "9507": ["SQ", "XRay3DAcquisitionSequence"], + "9508": ["FL", "PrimaryPositionerScanArc"], + "9509": ["FL", "SecondaryPositionerScanArc"], + "9510": ["FL ", "PrimaryPositionerScanStartAngle"], + "9511": ["FL", "SecondaryPositionerScanStartAngle"], + "9514": ["FL", "PrimaryPositionerIncrement"], + "9515": ["FL", "SecondaryPositionerIncrement"], + "9516": ["DT", "StartAcquisitionDateTime"], + "9517": ["DT", "EndAcquisitionDateTime"], + "9524": ["LO", "ApplicationName"], + "9525": ["LO", "ApplicationVersion"], + "9526": ["LO", "ApplicationManufacturer"], + "9527": ["CS", "AlgorithmType"], + "9528": ["LO", "AlgorithmDescription"], + "9530": ["SQ", "XRay3DReconstructionSequence"], + "9531": ["LO", "ReconstructionDescription"], + "9538": ["SQ", "PerProjectionAcquisitionSequence"], + "9601": ["SQ", "DiffusionBMatrixSequence"], + "9602": ["FD", "DiffusionBValueXX"], + "9603": ["FD", "DiffusionBValueXY"], + "9604": ["FD", "DiffusionBValueXZ"], + "9605": ["FD", "DiffusionBValueYY"], + "9606": ["FD", "DiffusionBValueYZ"], + "9607": ["FD", "DiffusionBValueZZ"], + "9701": ["DT", "DecayCorrectionDateTime"], + "9715": ["FD", "StartDensityThreshold"], + "9716": ["FD", "StartRelativeDensityDifferenceThreshold"], + "9717": ["FD", "StartCardiacTriggerCountThreshold"], + "9718": ["FD", "StartRespiratoryTriggerCountThreshold"], + "9719": ["FD", "TerminationCountsThreshold"], + "9720": ["FD", "TerminationDensityThreshold"], + "9721": ["FD", "TerminationRelativeDensityThreshold"], + "9722": ["FD", "TerminationTimeThreshold"], + "9723": ["FD", "TerminationCardiacTriggerCountThreshold"], + "9724": ["FD", "TerminationRespiratoryTriggerCountThreshold"], + "9725": ["CS", "DetectorGeometry"], + "9726": ["FD", "TransverseDetectorSeparation"], + "9727": ["FD", "AxialDetectorDimension"], + "9729": ["US", "RadiopharmaceuticalAgentNumber"], + "9732": ["SQ", "PETFrameAcquisitionSequence"], + "9733": ["SQ", "PETDetectorMotionDetailsSequence"], + "9734": ["SQ", "PETTableDynamicsSequence"], + "9735": ["SQ", "PETPositionSequence"], + "9736": ["SQ", "PETFrameCorrectionFactorsSequence"], + "9737": ["SQ", "RadiopharmaceuticalUsageSequence"], + "9738": ["CS", "AttenuationCorrectionSource"], + "9739": ["US", "NumberOfIterations"], + "9740": ["US", "NumberOfSubsets"], + "9749": ["SQ", "PETReconstructionSequence"], + "9751": ["SQ", "PETFrameTypeSequence"], + "9755": ["CS", "TimeOfFlightInformationUsed"], + "9756": ["CS", "ReconstructionType"], + "9758": ["CS", "DecayCorrected"], + "9759": ["CS", "AttenuationCorrected"], + "9760": ["CS", "ScatterCorrected"], + "9761": ["CS", "DeadTimeCorrected"], + "9762": ["CS", "GantryMotionCorrected"], + "9763": ["CS", "PatientMotionCorrected"], + "9764": ["CS", "CountLossNormalizationCorrected"], + "9765": ["CS", "RandomsCorrected"], + "9766": ["CS", "NonUniformRadialSamplingCorrected"], + "9767": ["CS", "SensitivityCalibrated"], + "9768": ["CS", "DetectorNormalizationCorrection"], + "9769": ["CS", "IterativeReconstructionMethod"], + "9770": ["CS", "AttenuationCorrectionTemporalRelationship"], + "9771": ["SQ", "PatientPhysiologicalStateSequence"], + "9772": ["SQ", "PatientPhysiologicalStateCodeSequence"], + "9801": ["FD", "DepthsOfFocus"], + "9803": ["SQ", "ExcludedIntervalsSequence"], + "9804": ["DT", "ExclusionStartDatetime"], + "9805": ["FD", "ExclusionDuration"], + "9806": ["SQ", "USImageDescriptionSequence"], + "9807": ["SQ", "ImageDataTypeSequence"], + "9808": ["CS", "DataType"], + "9809": ["SQ", "TransducerScanPatternCodeSequence"], + "980B": ["CS", "AliasedDataType"], + "980C": ["CS", "PositionMeasuringDeviceUsed"], + "980D": ["SQ", "TransducerGeometryCodeSequence"], + "980E": ["SQ", "TransducerBeamSteeringCodeSequence"], + "980F": ["SQ", "TransducerApplicationCodeSequence"], + "A001": ["SQ", "ContributingEquipmentSequence"], + "A002": ["DT", "ContributionDateTime"], + "A003": ["ST", "ContributionDescription"] + }, + "0020": { + "000D": ["UI", "StudyInstanceUID"], + "000E": ["UI", "SeriesInstanceUID"], + "0010": ["SH", "StudyID"], + "0011": ["IS", "SeriesNumber"], + "0012": ["IS", "AcquisitionNumber"], + "0013": ["IS", "InstanceNumber"], + "0014": ["IS", "IsotopeNumber"], + "0015": ["IS", "PhaseNumber"], + "0016": ["IS", "IntervalNumber"], + "0017": ["IS", "TimeSlotNumber"], + "0018": ["IS", "AngleNumber"], + "0019": ["IS", "ItemNumber"], + "0020": ["CS", "PatientOrientation"], + "0022": ["IS", "OverlayNumber"], + "0024": ["IS", "CurveNumber"], + "0026": ["IS", "LUTNumber"], + "0030": ["DS", "ImagePosition"], + "0032": ["DS", "ImagePositionPatient"], + "0035": ["DS", "ImageOrientation"], + "0037": ["DS", "ImageOrientationPatient"], + "0050": ["DS", "Location"], + "0052": ["UI", "FrameOfReferenceUID"], + "0060": ["CS", "Laterality"], + "0062": ["CS", "ImageLaterality"], + "0070": ["LO", "ImageGeometryType"], + "0080": ["CS", "MaskingImage"], + "00AA": ["IS", "ReportNumber"], + "0100": ["IS", "TemporalPositionIdentifier"], + "0105": ["IS", "NumberOfTemporalPositions"], + "0110": ["DS", "TemporalResolution"], + "0200": ["UI", "SynchronizationFrameOfReferenceUID"], + "0242": ["UI", "SOPInstanceUIDOfConcatenationSource"], + "1000": ["IS", "SeriesInStudy"], + "1001": ["IS", "AcquisitionsInSeries"], + "1002": ["IS", "ImagesInAcquisition"], + "1003": ["IS", "ImagesInSeries"], + "1004": ["IS", "AcquisitionsInStudy"], + "1005": ["IS", "ImagesInStudy"], + "1020": ["LO", "Reference"], + "1040": ["LO", "PositionReferenceIndicator"], + "1041": ["DS", "SliceLocation"], + "1070": ["IS", "OtherStudyNumbers"], + "1200": ["IS", "NumberOfPatientRelatedStudies"], + "1202": ["IS", "NumberOfPatientRelatedSeries"], + "1204": ["IS", "NumberOfPatientRelatedInstances"], + "1206": ["IS", "NumberOfStudyRelatedSeries"], + "1208": ["IS", "NumberOfStudyRelatedInstances"], + "1209": ["IS", "NumberOfSeriesRelatedInstances"], + "3401": ["CS", "ModifyingDeviceID"], + "3402": ["CS", "ModifiedImageID"], + "3403": ["DA", "ModifiedImageDate"], + "3404": ["LO", "ModifyingDeviceManufacturer"], + "3405": ["TM", "ModifiedImageTime"], + "3406": ["LO", "ModifiedImageDescription"], + "4000": ["LT", "ImageComments"], + "5000": ["AT", "OriginalImageIdentification"], + "5002": ["LO", "OriginalImageIdentificationNomenclature"], + "9056": ["SH", "StackID"], + "9057": ["UL", "InStackPositionNumber"], + "9071": ["SQ", "FrameAnatomySequence"], + "9072": ["CS", "FrameLaterality"], + "9111": ["SQ", "FrameContentSequence"], + "9113": ["SQ", "PlanePositionSequence"], + "9116": ["SQ", "PlaneOrientationSequence"], + "9128": ["UL", "TemporalPositionIndex"], + "9153": ["FD", "NominalCardiacTriggerDelayTime"], + "9154": ["FL", "NominalCardiacTriggerTimePriorToRPeak"], + "9155": ["FL", "ActualCardiacTriggerTimePriorToRPeak"], + "9156": ["US", "FrameAcquisitionNumber"], + "9157": ["UL", "DimensionIndexValues"], + "9158": ["LT", "FrameComments"], + "9161": ["UI", "ConcatenationUID"], + "9162": ["US", "InConcatenationNumber"], + "9163": ["US", "InConcatenationTotalNumber"], + "9164": ["UI", "DimensionOrganizationUID"], + "9165": ["AT", "DimensionIndexPointer"], + "9167": ["AT", "FunctionalGroupPointer"], + "9213": ["LO", "DimensionIndexPrivateCreator"], + "9221": ["SQ", "DimensionOrganizationSequence"], + "9222": ["SQ", "DimensionIndexSequence"], + "9228": ["UL", "ConcatenationFrameOffsetNumber"], + "9238": ["LO", "FunctionalGroupPrivateCreator"], + "9241": ["FL", "NominalPercentageOfCardiacPhase"], + "9245": ["FL", "NominalPercentageOfRespiratoryPhase"], + "9246": ["FL", "StartingRespiratoryAmplitude"], + "9247": ["CS", "StartingRespiratoryPhase"], + "9248": ["FL", "EndingRespiratoryAmplitude"], + "9249": ["CS", "EndingRespiratoryPhase"], + "9250": ["CS", "RespiratoryTriggerType"], + "9251": ["FD", "RRIntervalTimeNominal"], + "9252": ["FD", "ActualCardiacTriggerDelayTime"], + "9253": ["SQ", "RespiratorySynchronizationSequence"], + "9254": ["FD", "RespiratoryIntervalTime"], + "9255": ["FD", "NominalRespiratoryTriggerDelayTime"], + "9256": ["FD", "RespiratoryTriggerDelayThreshold"], + "9257": ["FD", "ActualRespiratoryTriggerDelayTime"], + "9301": ["FD", "ImagePositionVolume"], + "9302": ["FD", "ImageOrientationVolume"], + "9307": ["CS", "UltrasoundAcquisitionGeometry"], + "9308": ["FD", "ApexPosition"], + "9309": ["FD", "VolumeToTransducerMappingMatrix"], + "930A": ["FD", "VolumeToTableMappingMatrix"], + "930C": ["CS", "PatientFrameOfReferenceSource"], + "930D": ["FD", "TemporalPositionTimeOffset"], + "930E": ["SQ", "PlanePositionVolumeSequence"], + "930F": ["SQ", "PlaneOrientationVolumeSequence"], + "9310": ["SQ", "TemporalPositionSequence"], + "9311": ["CS", "DimensionOrganizationType"], + "9312": ["UI", "VolumeFrameOfReferenceUID"], + "9313": ["UI", "TableFrameOfReferenceUID"], + "9421": ["LO", "DimensionDescriptionLabel"], + "9450": ["SQ", "PatientOrientationInFrameSequence"], + "9453": ["LO", "FrameLabel"], + "9518": ["US", "AcquisitionIndex"], + "9529": ["SQ", "ContributingSOPInstancesReferenceSequence"], + "9536": ["US", "ReconstructionIndex"] + }, + "0022": { + "0001": ["US", "LightPathFilterPassThroughWavelength"], + "0002": ["US", "LightPathFilterPassBand"], + "0003": ["US", "ImagePathFilterPassThroughWavelength"], + "0004": ["US", "ImagePathFilterPassBand"], + "0005": ["CS", "PatientEyeMovementCommanded"], + "0006": ["SQ", "PatientEyeMovementCommandCodeSequence"], + "0007": ["FL", "SphericalLensPower"], + "0008": ["FL", "CylinderLensPower"], + "0009": ["FL", "CylinderAxis"], + "000A": ["FL", "EmmetropicMagnification"], + "000B": ["FL", "IntraOcularPressure"], + "000C": ["FL", "HorizontalFieldOfView"], + "000D": ["CS", "PupilDilated"], + "000E": ["FL", "DegreeOfDilation"], + "0010": ["FL", "StereoBaselineAngle"], + "0011": ["FL", "StereoBaselineDisplacement"], + "0012": ["FL", "StereoHorizontalPixelOffset"], + "0013": ["FL", "StereoVerticalPixelOffset"], + "0014": ["FL", "StereoRotation"], + "0015": ["SQ", "AcquisitionDeviceTypeCodeSequence"], + "0016": ["SQ", "IlluminationTypeCodeSequence"], + "0017": ["SQ", "LightPathFilterTypeStackCodeSequence"], + "0018": ["SQ", "ImagePathFilterTypeStackCodeSequence"], + "0019": ["SQ", "LensesCodeSequence"], + "001A": ["SQ", "ChannelDescriptionCodeSequence"], + "001B": ["SQ", "RefractiveStateSequence"], + "001C": ["SQ", "MydriaticAgentCodeSequence"], + "001D": ["SQ", "RelativeImagePositionCodeSequence"], + "001E": ["FL", "CameraAngleOfView"], + "0020": ["SQ", "StereoPairsSequence"], + "0021": ["SQ", "LeftImageSequence"], + "0022": ["SQ", "RightImageSequence"], + "0030": ["FL", "AxialLengthOfTheEye"], + "0031": ["SQ", "OphthalmicFrameLocationSequence"], + "0032": ["FL", "ReferenceCoordinates"], + "0035": ["FL", "DepthSpatialResolution"], + "0036": ["FL", "MaximumDepthDistortion"], + "0037": ["FL", "AlongScanSpatialResolution"], + "0038": ["FL", "MaximumAlongScanDistortion"], + "0039": ["CS", "OphthalmicImageOrientation"], + "0041": ["FL", "DepthOfTransverseImage"], + "0042": ["SQ", "MydriaticAgentConcentrationUnitsSequence"], + "0048": ["FL", "AcrossScanSpatialResolution"], + "0049": ["FL", "MaximumAcrossScanDistortion"], + "004E": ["DS", "MydriaticAgentConcentration"], + "0055": ["FL", "IlluminationWaveLength"], + "0056": ["FL", "IlluminationPower"], + "0057": ["FL", "IlluminationBandwidth"], + "0058": ["SQ", "MydriaticAgentSequence"], + "1007": ["SQ", "OphthalmicAxialMeasurementsRightEyeSequence"], + "1008": ["SQ", "OphthalmicAxialMeasurementsLeftEyeSequence"], + "1010": ["CS", "OphthalmicAxialLengthMeasurementsType"], + "1019": ["FL", "OphthalmicAxialLength"], + "1024": ["SQ", "LensStatusCodeSequence"], + "1025": ["SQ", "VitreousStatusCodeSequence"], + "1028": ["SQ", "IOLFormulaCodeSequence"], + "1029": ["LO", "IOLFormulaDetail"], + "1033": ["FL", "KeratometerIndex"], + "1035": ["SQ", "SourceOfOphthalmicAxialLengthCodeSequence"], + "1037": ["FL", "TargetRefraction"], + "1039": ["CS", "RefractiveProcedureOccurred"], + "1040": ["SQ", "RefractiveSurgeryTypeCodeSequence"], + "1044": ["SQ", "OphthalmicUltrasoundAxialMeasurementsTypeCodeSequence"], + "1050": ["SQ", "OphthalmicAxialLengthMeasurementsSequence"], + "1053": ["FL", "IOLPower"], + "1054": ["FL", "PredictedRefractiveError"], + "1059": ["FL", "OphthalmicAxialLengthVelocity"], + "1065": ["LO", "LensStatusDescription"], + "1066": ["LO", "VitreousStatusDescription"], + "1090": ["SQ", "IOLPowerSequence"], + "1092": ["SQ", "LensConstantSequence"], + "1093": ["LO", "IOLManufacturer"], + "1094": ["LO", "LensConstantDescription"], + "1096": ["SQ", "KeratometryMeasurementTypeCodeSequence"], + "1100": ["SQ", "ReferencedOphthalmicAxialMeasurementsSequence"], + "1101": ["SQ", "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence"], + "1103": ["SQ", "RefractiveErrorBeforeRefractiveSurgeryCodeSequence"], + "1121": ["FL", "IOLPowerForExactEmmetropia"], + "1122": ["FL", "IOLPowerForExactTargetRefraction"], + "1125": ["SQ", "AnteriorChamberDepthDefinitionCodeSequence"], + "1130": ["FL", "LensThickness"], + "1131": ["FL", "AnteriorChamberDepth"], + "1132": ["SQ", "SourceOfLensThicknessDataCodeSequence"], + "1133": ["SQ", "SourceOfAnteriorChamberDepthDataCodeSequence"], + "1135": ["SQ", "SourceOfRefractiveErrorDataCodeSequence"], + "1140": ["CS", "OphthalmicAxialLengthMeasurementModified"], + "1150": ["SQ", "OphthalmicAxialLengthDataSourceCodeSequence"], + "1153": ["SQ", "OphthalmicAxialLengthAcquisitionMethodCodeSequence"], + "1155": ["FL", "SignalToNoiseRatio"], + "1159": ["LO", "OphthalmicAxialLengthDataSourceDescription"], + "1210": ["SQ", "OphthalmicAxialLengthMeasurementsTotalLengthSequence"], + "1211": ["SQ", "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"], + "1212": ["SQ", "OphthalmicAxialLengthMeasurementsLengthSummationSequence"], + "1220": ["SQ", "UltrasoundOphthalmicAxialLengthMeasurementsSequence"], + "1225": ["SQ", "OpticalOphthalmicAxialLengthMeasurementsSequence"], + "1230": ["SQ", "UltrasoundSelectedOphthalmicAxialLengthSequence"], + "1250": ["SQ", "OphthalmicAxialLengthSelectionMethodCodeSequence"], + "1255": ["SQ", "OpticalSelectedOphthalmicAxialLengthSequence"], + "1257": ["SQ", "SelectedSegmentalOphthalmicAxialLengthSequence"], + "1260": ["SQ", "SelectedTotalOphthalmicAxialLengthSequence"], + "1262": ["SQ", "OphthalmicAxialLengthQualityMetricSequence"], + "1273": ["LO", "OphthalmicAxialLengthQualityMetricTypeDescription"], + "1300": ["SQ", "IntraocularLensCalculationsRightEyeSequence"], + "1310": ["SQ", "IntraocularLensCalculationsLeftEyeSequence"], + "1330": ["SQ", "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence"] + }, + "0024": { + "0010": ["FL", "VisualFieldHorizontalExtent"], + "0011": ["FL", "VisualFieldVerticalExtent"], + "0012": ["CS", "VisualFieldShape"], + "0016": ["SQ", "ScreeningTestModeCodeSequence"], + "0018": ["FL", "MaximumStimulusLuminance"], + "0020": ["FL", "BackgroundLuminance"], + "0021": ["SQ", "StimulusColorCodeSequence"], + "0024": ["SQ", "BackgroundIlluminationColorCodeSequence"], + "0025": ["FL", "StimulusArea"], + "0028": ["FL", "StimulusPresentationTime"], + "0032": ["SQ", "FixationSequence"], + "0033": ["SQ", "FixationMonitoringCodeSequence"], + "0034": ["SQ", "VisualFieldCatchTrialSequence"], + "0035": ["US", "FixationCheckedQuantity"], + "0036": ["US", "PatientNotProperlyFixatedQuantity"], + "0037": ["CS", "PresentedVisualStimuliDataFlag"], + "0038": ["US", "NumberOfVisualStimuli"], + "0039": ["CS", "ExcessiveFixationLossesDataFlag"], + "0040": ["CS", "ExcessiveFixationLosses"], + "0042": ["US", "StimuliRetestingQuantity"], + "0044": ["LT", "CommentsOnPatientPerformanceOfVisualField"], + "0045": ["CS", "FalseNegativesEstimateFlag"], + "0046": ["FL", "FalseNegativesEstimate"], + "0048": ["US", "NegativeCatchTrialsQuantity"], + "0050": ["US", "FalseNegativesQuantity"], + "0051": ["CS", "ExcessiveFalseNegativesDataFlag"], + "0052": ["CS", "ExcessiveFalseNegatives"], + "0053": ["CS", "FalsePositivesEstimateFlag"], + "0054": ["FL", "FalsePositivesEstimate"], + "0055": ["CS", "CatchTrialsDataFlag"], + "0056": ["US", "PositiveCatchTrialsQuantity"], + "0057": ["CS", "TestPointNormalsDataFlag"], + "0058": ["SQ", "TestPointNormalsSequence"], + "0059": ["CS", "GlobalDeviationProbabilityNormalsFlag"], + "0060": ["US", "FalsePositivesQuantity"], + "0061": ["CS", "ExcessiveFalsePositivesDataFlag"], + "0062": ["CS", "ExcessiveFalsePositives"], + "0063": ["CS", "VisualFieldTestNormalsFlag"], + "0064": ["SQ", "ResultsNormalsSequence"], + "0065": ["SQ", "AgeCorrectedSensitivityDeviationAlgorithmSequence"], + "0066": ["FL", "GlobalDeviationFromNormal"], + "0067": ["SQ", "GeneralizedDefectSensitivityDeviationAlgorithmSequence"], + "0068": ["FL", "LocalizedDeviationfromNormal"], + "0069": ["LO", "PatientReliabilityIndicator"], + "0070": ["FL", "VisualFieldMeanSensitivity"], + "0071": ["FL", "GlobalDeviationProbability"], + "0072": ["CS", "LocalDeviationProbabilityNormalsFlag"], + "0073": ["FL", "LocalizedDeviationProbability"], + "0074": ["CS", "ShortTermFluctuationCalculated"], + "0075": ["FL", "ShortTermFluctuation"], + "0076": ["CS", "ShortTermFluctuationProbabilityCalculated"], + "0077": ["FL", "ShortTermFluctuationProbability"], + "0078": ["CS", "CorrectedLocalizedDeviationFromNormalCalculated"], + "0079": ["FL", "CorrectedLocalizedDeviationFromNormal"], + "0080": ["CS", "CorrectedLocalizedDeviationFromNormalProbabilityCalculated"], + "0081": ["FL", "CorrectedLocalizedDeviationFromNormalProbability"], + "0083": ["SQ", "GlobalDeviationProbabilitySequence"], + "0085": ["SQ", "LocalizedDeviationProbabilitySequence"], + "0086": ["CS", "FovealSensitivityMeasured"], + "0087": ["FL", "FovealSensitivity"], + "0088": ["FL", "VisualFieldTestDuration"], + "0089": ["SQ", "VisualFieldTestPointSequence"], + "0090": ["FL", "VisualFieldTestPointXCoordinate"], + "0091": ["FL", "VisualFieldTestPointYCoordinate"], + "0092": ["FL", "AgeCorrectedSensitivityDeviationValue"], + "0093": ["CS", "StimulusResults"], + "0094": ["FL", "SensitivityValue"], + "0095": ["CS", "RetestStimulusSeen"], + "0096": ["FL", "RetestSensitivityValue"], + "0097": ["SQ", "VisualFieldTestPointNormalsSequence"], + "0098": ["FL", "QuantifiedDefect"], + "0100": ["FL", "AgeCorrectedSensitivityDeviationProbabilityValue"], + "0102": ["CS", "GeneralizedDefectCorrectedSensitivityDeviationFlag "], + "0103": ["FL", "GeneralizedDefectCorrectedSensitivityDeviationValue "], + "0104": ["FL", "GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue"], + "0105": ["FL ", "MinimumSensitivityValue"], + "0106": ["CS", "BlindSpotLocalized"], + "0107": ["FL", "BlindSpotXCoordinate"], + "0108": ["FL", "BlindSpotYCoordinate "], + "0110": ["SQ", "VisualAcuityMeasurementSequence"], + "0112": ["SQ", "RefractiveParametersUsedOnPatientSequence"], + "0113": ["CS", "MeasurementLaterality"], + "0114": ["SQ", "OphthalmicPatientClinicalInformationLeftEyeSequence"], + "0115": ["SQ", "OphthalmicPatientClinicalInformationRightEyeSequence"], + "0117": ["CS", "FovealPointNormativeDataFlag"], + "0118": ["FL", "FovealPointProbabilityValue"], + "0120": ["CS", "ScreeningBaselineMeasured"], + "0122": ["SQ", "ScreeningBaselineMeasuredSequence"], + "0124": ["CS", "ScreeningBaselineType"], + "0126": ["FL", "ScreeningBaselineValue"], + "0202": ["LO", "AlgorithmSource"], + "0306": ["LO", "DataSetName"], + "0307": ["LO", "DataSetVersion"], + "0308": ["LO", "DataSetSource"], + "0309": ["LO", "DataSetDescription"], + "0317": ["SQ", "VisualFieldTestReliabilityGlobalIndexSequence"], + "0320": ["SQ", "VisualFieldGlobalResultsIndexSequence"], + "0325": ["SQ", "DataObservationSequence"], + "0338": ["CS", "IndexNormalsFlag"], + "0341": ["FL", "IndexProbability"], + "0344": ["SQ", "IndexProbabilitySequence"] + }, + "0028": { + "0002": ["US", "SamplesPerPixel"], + "0003": ["US", "SamplesPerPixelUsed"], + "0004": ["CS", "PhotometricInterpretation"], + "0005": ["US", "ImageDimensions"], + "0006": ["US", "PlanarConfiguration"], + "0008": ["IS", "NumberOfFrames"], + "0009": ["AT", "FrameIncrementPointer"], + "000A": ["AT", "FrameDimensionPointer"], + "0010": ["US", "Rows"], + "0011": ["US", "Columns"], + "0012": ["US", "Planes"], + "0014": ["US", "UltrasoundColorDataPresent"], + "0030": ["DS", "PixelSpacing"], + "0031": ["DS", "ZoomFactor"], + "0032": ["DS", "ZoomCenter"], + "0034": ["IS", "PixelAspectRatio"], + "0040": ["CS", "ImageFormat"], + "0050": ["LO", "ManipulatedImage"], + "0051": ["CS", "CorrectedImage"], + "005F": ["LO", "CompressionRecognitionCode"], + "0060": ["CS", "CompressionCode"], + "0061": ["SH", "CompressionOriginator"], + "0062": ["LO", "CompressionLabel"], + "0063": ["SH", "CompressionDescription"], + "0065": ["CS", "CompressionSequence"], + "0066": ["AT", "CompressionStepPointers"], + "0068": ["US", "RepeatInterval"], + "0069": ["US", "BitsGrouped"], + "0070": ["US", "PerimeterTable"], + "0071": ["SS", "PerimeterValue"], + "0080": ["US", "PredictorRows"], + "0081": ["US", "PredictorColumns"], + "0082": ["US", "PredictorConstants"], + "0090": ["CS", "BlockedPixels"], + "0091": ["US", "BlockRows"], + "0092": ["US", "BlockColumns"], + "0093": ["US", "RowOverlap"], + "0094": ["US", "ColumnOverlap"], + "0100": ["US", "BitsAllocated"], + "0101": ["US", "BitsStored"], + "0102": ["US", "HighBit"], + "0103": ["US", "PixelRepresentation"], + "0104": ["SS", "SmallestValidPixelValue"], + "0105": ["SS", "LargestValidPixelValue"], + "0106": ["SS", "SmallestImagePixelValue"], + "0107": ["SS", "LargestImagePixelValue"], + "0108": ["SS", "SmallestPixelValueInSeries"], + "0109": ["SS", "LargestPixelValueInSeries"], + "0110": ["SS", "SmallestImagePixelValueInPlane"], + "0111": ["SS", "LargestImagePixelValueInPlane"], + "0120": ["SS", "PixelPaddingValue"], + "0121": ["SS", "PixelPaddingRangeLimit"], + "0200": ["US", "ImageLocation"], + "0300": ["CS", "QualityControlImage"], + "0301": ["CS", "BurnedInAnnotation"], + "0302": ["CS", "RecognizableVisualFeatures"], + "0303": ["CS", "LongitudinalTemporalInformationModified"], + "0400": ["LO", "TransformLabel"], + "0401": ["LO", "TransformVersionNumber"], + "0402": ["US", "NumberOfTransformSteps"], + "0403": ["LO", "SequenceOfCompressedData"], + "0404": ["AT", "DetailsOfCoefficients"], + "0700": ["LO", "DCTLabel"], + "0701": ["CS", "DataBlockDescription"], + "0702": ["AT", "DataBlock"], + "0710": ["US", "NormalizationFactorFormat"], + "0720": ["US", "ZonalMapNumberFormat"], + "0721": ["AT", "ZonalMapLocation"], + "0722": ["US", "ZonalMapFormat"], + "0730": ["US", "AdaptiveMapFormat"], + "0740": ["US", "CodeNumberFormat"], + "0A02": ["CS", "PixelSpacingCalibrationType"], + "0A04": ["LO", "PixelSpacingCalibrationDescription"], + "1040": ["CS", "PixelIntensityRelationship"], + "1041": ["SS", "PixelIntensityRelationshipSign"], + "1050": ["DS", "WindowCenter"], + "1051": ["DS", "WindowWidth"], + "1052": ["DS", "RescaleIntercept"], + "1053": ["DS", "RescaleSlope"], + "1054": ["LO", "RescaleType"], + "1055": ["LO", "WindowCenterWidthExplanation"], + "1056": ["CS", "VOILUTFunction"], + "1080": ["CS", "GrayScale"], + "1090": ["CS", "RecommendedViewingMode"], + "1100": ["SS", "GrayLookupTableDescriptor"], + "1101": ["SS", "RedPaletteColorLookupTableDescriptor"], + "1102": ["SS", "GreenPaletteColorLookupTableDescriptor"], + "1103": ["SS", "BluePaletteColorLookupTableDescriptor"], + "1104": ["US", "AlphaPaletteColorLookupTableDescriptor"], + "1111": ["SS", "LargeRedPaletteColorLookupTableDescriptor"], + "1112": ["SS", "LargeGreenPaletteColorLookupTableDescriptor"], + "1113": ["SS", "LargeBluePaletteColorLookupTableDescriptor"], + "1199": ["UI", "PaletteColorLookupTableUID"], + "1200": ["OW", "GrayLookupTableData"], + "1201": ["OW", "RedPaletteColorLookupTableData"], + "1202": ["OW", "GreenPaletteColorLookupTableData"], + "1203": ["OW", "BluePaletteColorLookupTableData"], + "1204": ["OW", "AlphaPaletteColorLookupTableData"], + "1211": ["OW", "LargeRedPaletteColorLookupTableData"], + "1212": ["OW", "LargeGreenPaletteColorLookupTableData"], + "1213": ["OW", "LargeBluePaletteColorLookupTableData"], + "1214": ["UI", "LargePaletteColorLookupTableUID"], + "1221": ["OW", "SegmentedRedPaletteColorLookupTableData"], + "1222": ["OW", "SegmentedGreenPaletteColorLookupTableData"], + "1223": ["OW", "SegmentedBluePaletteColorLookupTableData"], + "1300": ["CS", "BreastImplantPresent"], + "1350": ["CS", "PartialView"], + "1351": ["ST", "PartialViewDescription"], + "1352": ["SQ", "PartialViewCodeSequence"], + "135A": ["CS", "SpatialLocationsPreserved"], + "1401": ["SQ", "DataFrameAssignmentSequence"], + "1402": ["CS", "DataPathAssignment"], + "1403": ["US", "BitsMappedToColorLookupTable"], + "1404": ["SQ", "BlendingLUT1Sequence"], + "1405": ["CS", "BlendingLUT1TransferFunction"], + "1406": ["FD", "BlendingWeightConstant"], + "1407": ["US", "BlendingLookupTableDescriptor"], + "1408": ["OW", "BlendingLookupTableData"], + "140B": ["SQ", "EnhancedPaletteColorLookupTableSequence"], + "140C": ["SQ", "BlendingLUT2Sequence"], + "140D": ["CS", "BlendingLUT2TransferFunction"], + "140E": ["CS", "DataPathID"], + "140F": ["CS", "RGBLUTTransferFunction"], + "1410": ["CS", "AlphaLUTTransferFunction"], + "2000": ["OB", "ICCProfile"], + "2110": ["CS", "LossyImageCompression"], + "2112": ["DS", "LossyImageCompressionRatio"], + "2114": ["CS", "LossyImageCompressionMethod"], + "3000": ["SQ", "ModalityLUTSequence"], + "3002": ["SS", "LUTDescriptor"], + "3003": ["LO", "LUTExplanation"], + "3004": ["LO", "ModalityLUTType"], + "3006": ["OW", "LUTData"], + "3010": ["SQ", "VOILUTSequence"], + "3110": ["SQ", "SoftcopyVOILUTSequence"], + "4000": ["LT", "ImagePresentationComments"], + "5000": ["SQ", "BiPlaneAcquisitionSequence"], + "6010": ["US", "RepresentativeFrameNumber"], + "6020": ["US", "FrameNumbersOfInterest"], + "6022": ["LO", "FrameOfInterestDescription"], + "6023": ["CS", "FrameOfInterestType"], + "6030": ["US", "MaskPointers"], + "6040": ["US", "RWavePointer"], + "6100": ["SQ", "MaskSubtractionSequence"], + "6101": ["CS", "MaskOperation"], + "6102": ["US", "ApplicableFrameRange"], + "6110": ["US", "MaskFrameNumbers"], + "6112": ["US", "ContrastFrameAveraging"], + "6114": ["FL", "MaskSubPixelShift"], + "6120": ["SS", "TIDOffset"], + "6190": ["ST", "MaskOperationExplanation"], + "7FE0": ["UT", "PixelDataProviderURL"], + "9001": ["UL", "DataPointRows"], + "9002": ["UL", "DataPointColumns"], + "9003": ["CS", "SignalDomainColumns"], + "9099": ["US", "LargestMonochromePixelValue"], + "9108": ["CS", "DataRepresentation"], + "9110": ["SQ", "PixelMeasuresSequence"], + "9132": ["SQ", "FrameVOILUTSequence"], + "9145": ["SQ", "PixelValueTransformationSequence"], + "9235": ["CS", "SignalDomainRows"], + "9411": ["FL", "DisplayFilterPercentage"], + "9415": ["SQ", "FramePixelShiftSequence"], + "9416": ["US", "SubtractionItemID"], + "9422": ["SQ", "PixelIntensityRelationshipLUTSequence"], + "9443": ["SQ", "FramePixelDataPropertiesSequence"], + "9444": ["CS", "GeometricalProperties"], + "9445": ["FL", "GeometricMaximumDistortion"], + "9446": ["CS", "ImageProcessingApplied"], + "9454": ["CS", "MaskSelectionMode"], + "9474": ["CS", "LUTFunction"], + "9478": ["FL", "MaskVisibilityPercentage"], + "9501": ["SQ", "PixelShiftSequence"], + "9502": ["SQ", "RegionPixelShiftSequence"], + "9503": ["SS", "VerticesOfTheRegion"], + "9505": ["SQ", "MultiFramePresentationSequence"], + "9506": ["US", "PixelShiftFrameRange"], + "9507": ["US", "LUTFrameRange"], + "9520": ["DS", "ImageToEquipmentMappingMatrix"], + "9537": ["CS", "EquipmentCoordinateSystemIdentification"] + }, + "0032": { + "000A": ["CS", "StudyStatusID"], + "000C": ["CS", "StudyPriorityID"], + "0012": ["LO", "StudyIDIssuer"], + "0032": ["DA", "StudyVerifiedDate"], + "0033": ["TM", "StudyVerifiedTime"], + "0034": ["DA", "StudyReadDate"], + "0035": ["TM", "StudyReadTime"], + "1000": ["DA", "ScheduledStudyStartDate"], + "1001": ["TM", "ScheduledStudyStartTime"], + "1010": ["DA", "ScheduledStudyStopDate"], + "1011": ["TM", "ScheduledStudyStopTime"], + "1020": ["LO", "ScheduledStudyLocation"], + "1021": ["AE", "ScheduledStudyLocationAETitle"], + "1030": ["LO", "ReasonForStudy"], + "1031": ["SQ", "RequestingPhysicianIdentificationSequence"], + "1032": ["PN", "RequestingPhysician"], + "1033": ["LO", "RequestingService"], + "1034": ["SQ", "RequestingServiceCodeSequence"], + "1040": ["DA", "StudyArrivalDate"], + "1041": ["TM", "StudyArrivalTime"], + "1050": ["DA", "StudyCompletionDate"], + "1051": ["TM", "StudyCompletionTime"], + "1055": ["CS", "StudyComponentStatusID"], + "1060": ["LO", "RequestedProcedureDescription"], + "1064": ["SQ", "RequestedProcedureCodeSequence"], + "1070": ["LO", "RequestedContrastAgent"], + "4000": ["LT", "StudyComments"] + }, + "0038": { + "0004": ["SQ", "ReferencedPatientAliasSequence"], + "0008": ["CS", "VisitStatusID"], + "0010": ["LO", "AdmissionID"], + "0011": ["LO", "IssuerOfAdmissionID"], + "0014": ["SQ", "IssuerOfAdmissionIDSequence"], + "0016": ["LO", "RouteOfAdmissions"], + "001A": ["DA", "ScheduledAdmissionDate"], + "001B": ["TM", "ScheduledAdmissionTime"], + "001C": ["DA", "ScheduledDischargeDate"], + "001D": ["TM", "ScheduledDischargeTime"], + "001E": ["LO", "ScheduledPatientInstitutionResidence"], + "0020": ["DA", "AdmittingDate"], + "0021": ["TM", "AdmittingTime"], + "0030": ["DA", "DischargeDate"], + "0032": ["TM", "DischargeTime"], + "0040": ["LO", "DischargeDiagnosisDescription"], + "0044": ["SQ", "DischargeDiagnosisCodeSequence"], + "0050": ["LO", "SpecialNeeds"], + "0060": ["LO", "ServiceEpisodeID"], + "0061": ["LO", "IssuerOfServiceEpisodeID"], + "0062": ["LO", "ServiceEpisodeDescription"], + "0064": ["SQ", "IssuerOfServiceEpisodeIDSequence"], + "0100": ["SQ", "PertinentDocumentsSequence"], + "0300": ["LO", "CurrentPatientLocation"], + "0400": ["LO", "PatientInstitutionResidence"], + "0500": ["LO", "PatientState"], + "0502": ["SQ", "PatientClinicalTrialParticipationSequence"], + "4000": ["LT", "VisitComments"] + }, + "003A": { + "0004": ["CS", "WaveformOriginality"], + "0005": ["US", "NumberOfWaveformChannels"], + "0010": ["UL", "NumberOfWaveformSamples"], + "001A": ["DS", "SamplingFrequency"], + "0020": ["SH", "MultiplexGroupLabel"], + "0200": ["SQ", "ChannelDefinitionSequence"], + "0202": ["IS", "WaveformChannelNumber"], + "0203": ["SH", "ChannelLabel"], + "0205": ["CS", "ChannelStatus"], + "0208": ["SQ", "ChannelSourceSequence"], + "0209": ["SQ", "ChannelSourceModifiersSequence"], + "020A": ["SQ", "SourceWaveformSequence"], + "020C": ["LO", "ChannelDerivationDescription"], + "0210": ["DS", "ChannelSensitivity"], + "0211": ["SQ", "ChannelSensitivityUnitsSequence"], + "0212": ["DS", "ChannelSensitivityCorrectionFactor"], + "0213": ["DS", "ChannelBaseline"], + "0214": ["DS", "ChannelTimeSkew"], + "0215": ["DS", "ChannelSampleSkew"], + "0218": ["DS", "ChannelOffset"], + "021A": ["US", "WaveformBitsStored"], + "0220": ["DS", "FilterLowFrequency"], + "0221": ["DS", "FilterHighFrequency"], + "0222": ["DS", "NotchFilterFrequency"], + "0223": ["DS", "NotchFilterBandwidth"], + "0230": ["FL", "WaveformDataDisplayScale"], + "0231": ["US", "WaveformDisplayBackgroundCIELabValue"], + "0240": ["SQ", "WaveformPresentationGroupSequence"], + "0241": ["US", "PresentationGroupNumber"], + "0242": ["SQ", "ChannelDisplaySequence"], + "0244": ["US", "ChannelRecommendedDisplayCIELabValue"], + "0245": ["FL", "ChannelPosition"], + "0246": ["CS", "DisplayShadingFlag"], + "0247": ["FL", "FractionalChannelDisplayScale"], + "0248": ["FL", "AbsoluteChannelDisplayScale"], + "0300": ["SQ", "MultiplexedAudioChannelsDescriptionCodeSequence"], + "0301": ["IS", "ChannelIdentificationCode"], + "0302": ["CS", "ChannelMode"] + }, + "0040": { + "0001": ["AE", "ScheduledStationAETitle"], + "0002": ["DA", "ScheduledProcedureStepStartDate"], + "0003": ["TM", "ScheduledProcedureStepStartTime"], + "0004": ["DA", "ScheduledProcedureStepEndDate"], + "0005": ["TM", "ScheduledProcedureStepEndTime"], + "0006": ["PN", "ScheduledPerformingPhysicianName"], + "0007": ["LO", "ScheduledProcedureStepDescription"], + "0008": ["SQ", "ScheduledProtocolCodeSequence"], + "0009": ["SH", "ScheduledProcedureStepID"], + "000A": ["SQ", "StageCodeSequence"], + "000B": ["SQ", "ScheduledPerformingPhysicianIdentificationSequence"], + "0010": ["SH", "ScheduledStationName"], + "0011": ["SH", "ScheduledProcedureStepLocation"], + "0012": ["LO", "PreMedication"], + "0020": ["CS", "ScheduledProcedureStepStatus"], + "0026": ["SQ", "OrderPlacerIdentifierSequence"], + "0027": ["SQ", "OrderFillerIdentifierSequence"], + "0031": ["UT", "LocalNamespaceEntityID"], + "0032": ["UT", "UniversalEntityID"], + "0033": ["CS", "UniversalEntityIDType"], + "0035": ["CS", "IdentifierTypeCode"], + "0036": ["SQ", "AssigningFacilitySequence"], + "0039": ["SQ", "AssigningJurisdictionCodeSequence"], + "003A": ["SQ", "AssigningAgencyOrDepartmentCodeSequence"], + "0100": ["SQ", "ScheduledProcedureStepSequence"], + "0220": ["SQ", "ReferencedNonImageCompositeSOPInstanceSequence"], + "0241": ["AE", "PerformedStationAETitle"], + "0242": ["SH", "PerformedStationName"], + "0243": ["SH", "PerformedLocation"], + "0244": ["DA", "PerformedProcedureStepStartDate"], + "0245": ["TM", "PerformedProcedureStepStartTime"], + "0250": ["DA", "PerformedProcedureStepEndDate"], + "0251": ["TM", "PerformedProcedureStepEndTime"], + "0252": ["CS", "PerformedProcedureStepStatus"], + "0253": ["SH", "PerformedProcedureStepID"], + "0254": ["LO", "PerformedProcedureStepDescription"], + "0255": ["LO", "PerformedProcedureTypeDescription"], + "0260": ["SQ", "PerformedProtocolCodeSequence"], + "0261": ["CS", "PerformedProtocolType"], + "0270": ["SQ", "ScheduledStepAttributesSequence"], + "0275": ["SQ", "RequestAttributesSequence"], + "0280": ["ST", "CommentsOnThePerformedProcedureStep"], + "0281": ["SQ", "PerformedProcedureStepDiscontinuationReasonCodeSequence"], + "0293": ["SQ", "QuantitySequence"], + "0294": ["DS", "Quantity"], + "0295": ["SQ", "MeasuringUnitsSequence"], + "0296": ["SQ", "BillingItemSequence"], + "0300": ["US", "TotalTimeOfFluoroscopy"], + "0301": ["US", "TotalNumberOfExposures"], + "0302": ["US", "EntranceDose"], + "0303": ["US", "ExposedArea"], + "0306": ["DS", "DistanceSourceToEntrance"], + "0307": ["DS", "DistanceSourceToSupport"], + "030E": ["SQ", "ExposureDoseSequence"], + "0310": ["ST", "CommentsOnRadiationDose"], + "0312": ["DS", "XRayOutput"], + "0314": ["DS", "HalfValueLayer"], + "0316": ["DS", "OrganDose"], + "0318": ["CS", "OrganExposed"], + "0320": ["SQ", "BillingProcedureStepSequence"], + "0321": ["SQ", "FilmConsumptionSequence"], + "0324": ["SQ", "BillingSuppliesAndDevicesSequence"], + "0330": ["SQ", "ReferencedProcedureStepSequence"], + "0340": ["SQ", "PerformedSeriesSequence"], + "0400": ["LT", "CommentsOnTheScheduledProcedureStep"], + "0440": ["SQ", "ProtocolContextSequence"], + "0441": ["SQ", "ContentItemModifierSequence"], + "0500": ["SQ", "ScheduledSpecimenSequence"], + "050A": ["LO", "SpecimenAccessionNumber"], + "0512": ["LO", "ContainerIdentifier"], + "0513": ["SQ", "IssuerOfTheContainerIdentifierSequence"], + "0515": ["SQ", "AlternateContainerIdentifierSequence"], + "0518": ["SQ", "ContainerTypeCodeSequence"], + "051A": ["LO", "ContainerDescription"], + "0520": ["SQ", "ContainerComponentSequence"], + "0550": ["SQ", "SpecimenSequence"], + "0551": ["LO", "SpecimenIdentifier"], + "0552": ["SQ", "SpecimenDescriptionSequenceTrial"], + "0553": ["ST", "SpecimenDescriptionTrial"], + "0554": ["UI", "SpecimenUID"], + "0555": ["SQ", "AcquisitionContextSequence"], + "0556": ["ST", "AcquisitionContextDescription"], + "059A": ["SQ", "SpecimenTypeCodeSequence"], + "0560": ["SQ", "SpecimenDescriptionSequence"], + "0562": ["SQ", "IssuerOfTheSpecimenIdentifierSequence"], + "0600": ["LO", "SpecimenShortDescription"], + "0602": ["UT", "SpecimenDetailedDescription"], + "0610": ["SQ", "SpecimenPreparationSequence"], + "0612": ["SQ", "SpecimenPreparationStepContentItemSequence"], + "0620": ["SQ", "SpecimenLocalizationContentItemSequence"], + "06FA": ["LO", "SlideIdentifier"], + "071A": ["SQ", "ImageCenterPointCoordinatesSequence"], + "072A": ["DS", "XOffsetInSlideCoordinateSystem"], + "073A": ["DS", "YOffsetInSlideCoordinateSystem"], + "074A": ["DS", "ZOffsetInSlideCoordinateSystem"], + "08D8": ["SQ", "PixelSpacingSequence"], + "08DA": ["SQ", "CoordinateSystemAxisCodeSequence"], + "08EA": ["SQ", "MeasurementUnitsCodeSequence"], + "09F8": ["SQ", "VitalStainCodeSequenceTrial"], + "1001": ["SH", "RequestedProcedureID"], + "1002": ["LO", "ReasonForTheRequestedProcedure"], + "1003": ["SH", "RequestedProcedurePriority"], + "1004": ["LO", "PatientTransportArrangements"], + "1005": ["LO", "RequestedProcedureLocation"], + "1006": ["SH", "PlacerOrderNumberProcedure"], + "1007": ["SH", "FillerOrderNumberProcedure"], + "1008": ["LO", "ConfidentialityCode"], + "1009": ["SH", "ReportingPriority"], + "100A": ["SQ", "ReasonForRequestedProcedureCodeSequence"], + "1010": ["PN", "NamesOfIntendedRecipientsOfResults"], + "1011": ["SQ", "IntendedRecipientsOfResultsIdentificationSequence"], + "1012": ["SQ", "ReasonForPerformedProcedureCodeSequence"], + "1060": ["LO", "RequestedProcedureDescriptionTrial"], + "1101": ["SQ", "PersonIdentificationCodeSequence"], + "1102": ["ST", "PersonAddress"], + "1103": ["LO", "PersonTelephoneNumbers"], + "1400": ["LT", "RequestedProcedureComments"], + "2001": ["LO", "ReasonForTheImagingServiceRequest"], + "2004": ["DA", "IssueDateOfImagingServiceRequest"], + "2005": ["TM", "IssueTimeOfImagingServiceRequest"], + "2006": ["SH", "PlacerOrderNumberImagingServiceRequestRetired"], + "2007": ["SH", "FillerOrderNumberImagingServiceRequestRetired"], + "2008": ["PN", "OrderEnteredBy"], + "2009": ["SH", "OrderEntererLocation"], + "2010": ["SH", "OrderCallbackPhoneNumber"], + "2016": ["LO", "PlacerOrderNumberImagingServiceRequest"], + "2017": ["LO", "FillerOrderNumberImagingServiceRequest"], + "2400": ["LT", "ImagingServiceRequestComments"], + "3001": ["LO", "ConfidentialityConstraintOnPatientDataDescription"], + "4001": ["CS", "GeneralPurposeScheduledProcedureStepStatus"], + "4002": ["CS", "GeneralPurposePerformedProcedureStepStatus"], + "4003": ["CS", "GeneralPurposeScheduledProcedureStepPriority"], + "4004": ["SQ", "ScheduledProcessingApplicationsCodeSequence"], + "4005": ["DT", "ScheduledProcedureStepStartDateTime"], + "4006": ["CS", "MultipleCopiesFlag"], + "4007": ["SQ", "PerformedProcessingApplicationsCodeSequence"], + "4009": ["SQ", "HumanPerformerCodeSequence"], + "4010": ["DT", "ScheduledProcedureStepModificationDateTime"], + "4011": ["DT", "ExpectedCompletionDateTime"], + "4015": ["SQ", "ResultingGeneralPurposePerformedProcedureStepsSequence"], + "4016": ["SQ", "ReferencedGeneralPurposeScheduledProcedureStepSequence"], + "4018": ["SQ", "ScheduledWorkitemCodeSequence"], + "4019": ["SQ", "PerformedWorkitemCodeSequence"], + "4020": ["CS", "InputAvailabilityFlag"], + "4021": ["SQ", "InputInformationSequence"], + "4022": ["SQ", "RelevantInformationSequence"], + "4023": ["UI", "ReferencedGeneralPurposeScheduledProcedureStepTransactionUID"], + "4025": ["SQ", "ScheduledStationNameCodeSequence"], + "4026": ["SQ", "ScheduledStationClassCodeSequence"], + "4027": ["SQ", "ScheduledStationGeographicLocationCodeSequence"], + "4028": ["SQ", "PerformedStationNameCodeSequence"], + "4029": ["SQ", "PerformedStationClassCodeSequence"], + "4030": ["SQ", "PerformedStationGeographicLocationCodeSequence"], + "4031": ["SQ", "RequestedSubsequentWorkitemCodeSequence"], + "4032": ["SQ", "NonDICOMOutputCodeSequence"], + "4033": ["SQ", "OutputInformationSequence"], + "4034": ["SQ", "ScheduledHumanPerformersSequence"], + "4035": ["SQ", "ActualHumanPerformersSequence"], + "4036": ["LO", "HumanPerformerOrganization"], + "4037": ["PN", "HumanPerformerName"], + "4040": ["CS", "RawDataHandling"], + "4041": ["CS", "InputReadinessState"], + "4050": ["DT", "PerformedProcedureStepStartDateTime"], + "4051": ["DT", "PerformedProcedureStepEndDateTime"], + "4052": ["DT", "ProcedureStepCancellationDateTime"], + "8302": ["DS", "EntranceDoseInmGy"], + "9094": ["SQ", "ReferencedImageRealWorldValueMappingSequence"], + "9096": ["SQ", "RealWorldValueMappingSequence"], + "9098": ["SQ", "PixelValueMappingCodeSequence"], + "9210": ["SH", "LUTLabel"], + "9211": ["SS", "RealWorldValueLastValueMapped"], + "9212": ["FD", "RealWorldValueLUTData"], + "9216": ["SS", "RealWorldValueFirstValueMapped"], + "9224": ["FD", "RealWorldValueIntercept"], + "9225": ["FD", "RealWorldValueSlope"], + "A007": ["CS", "FindingsFlagTrial"], + "A010": ["CS", "RelationshipType"], + "A020": ["SQ", "FindingsSequenceTrial"], + "A021": ["UI", "FindingsGroupUIDTrial"], + "A022": ["UI", "ReferencedFindingsGroupUIDTrial"], + "A023": ["DA", "FindingsGroupRecordingDateTrial"], + "A024": ["TM", "FindingsGroupRecordingTimeTrial"], + "A026": ["SQ", "FindingsSourceCategoryCodeSequenceTrial"], + "A027": ["LO", "VerifyingOrganization"], + "A028": ["SQ", "DocumentingOrganizationIdentifierCodeSequenceTrial"], + "A030": ["DT", "VerificationDateTime"], + "A032": ["DT", "ObservationDateTime"], + "A040": ["CS", "ValueType"], + "A043": ["SQ", "ConceptNameCodeSequence"], + "A047": ["LO", "MeasurementPrecisionDescriptionTrial"], + "A050": ["CS", "ContinuityOfContent"], + "A057": ["CS", "UrgencyOrPriorityAlertsTrial"], + "A060": ["LO", "SequencingIndicatorTrial"], + "A066": ["SQ", "DocumentIdentifierCodeSequenceTrial"], + "A067": ["PN", "DocumentAuthorTrial"], + "A068": ["SQ", "DocumentAuthorIdentifierCodeSequenceTrial"], + "A070": ["SQ", "IdentifierCodeSequenceTrial"], + "A073": ["SQ", "VerifyingObserverSequence"], + "A074": ["OB", "ObjectBinaryIdentifierTrial"], + "A075": ["PN", "VerifyingObserverName"], + "A076": ["SQ", "DocumentingObserverIdentifierCodeSequenceTrial"], + "A078": ["SQ", "AuthorObserverSequence"], + "A07A": ["SQ", "ParticipantSequence"], + "A07C": ["SQ", "CustodialOrganizationSequence"], + "A080": ["CS", "ParticipationType"], + "A082": ["DT", "ParticipationDateTime"], + "A084": ["CS", "ObserverType"], + "A085": ["SQ", "ProcedureIdentifierCodeSequenceTrial"], + "A088": ["SQ", "VerifyingObserverIdentificationCodeSequence"], + "A089": ["OB", "ObjectDirectoryBinaryIdentifierTrial"], + "A090": ["SQ", "EquivalentCDADocumentSequence"], + "A0B0": ["US", "ReferencedWaveformChannels"], + "A110": ["DA", "DateOfDocumentOrVerbalTransactionTrial"], + "A112": ["TM", "TimeOfDocumentCreationOrVerbalTransactionTrial"], + "A120": ["DT", "DateTime"], + "A121": ["DA", "Date"], + "A122": ["TM", "Time"], + "A123": ["PN", "PersonName"], + "A124": ["UI", "UID"], + "A125": ["CS", "ReportStatusIDTrial"], + "A130": ["CS", "TemporalRangeType"], + "A132": ["UL", "ReferencedSamplePositions"], + "A136": ["US", "ReferencedFrameNumbers"], + "A138": ["DS", "ReferencedTimeOffsets"], + "A13A": ["DT", "ReferencedDateTime"], + "A160": ["UT", "TextValue"], + "A167": ["SQ", "ObservationCategoryCodeSequenceTrial"], + "A168": ["SQ", "ConceptCodeSequence"], + "A16A": ["ST", "BibliographicCitationTrial"], + "A170": ["SQ", "PurposeOfReferenceCodeSequence"], + "A171": ["UI", "ObservationUIDTrial"], + "A172": ["UI", "ReferencedObservationUIDTrial"], + "A173": ["CS", "ReferencedObservationClassTrial"], + "A174": ["CS", "ReferencedObjectObservationClassTrial"], + "A180": ["US", "AnnotationGroupNumber"], + "A192": ["DA", "ObservationDateTrial"], + "A193": ["TM", "ObservationTimeTrial"], + "A194": ["CS", "MeasurementAutomationTrial"], + "A195": ["SQ", "ModifierCodeSequence"], + "A224": ["ST", "IdentificationDescriptionTrial"], + "A290": ["CS", "CoordinatesSetGeometricTypeTrial"], + "A296": ["SQ", "AlgorithmCodeSequenceTrial"], + "A297": ["ST", "AlgorithmDescriptionTrial"], + "A29A": ["SL", "PixelCoordinatesSetTrial"], + "A300": ["SQ", "MeasuredValueSequence"], + "A301": ["SQ", "NumericValueQualifierCodeSequence"], + "A307": ["PN", "CurrentObserverTrial"], + "A30A": ["DS", "NumericValue"], + "A313": ["SQ", "ReferencedAccessionSequenceTrial"], + "A33A": ["ST", "ReportStatusCommentTrial"], + "A340": ["SQ", "ProcedureContextSequenceTrial"], + "A352": ["PN", "VerbalSourceTrial"], + "A353": ["ST", "AddressTrial"], + "A354": ["LO", "TelephoneNumberTrial"], + "A358": ["SQ", "VerbalSourceIdentifierCodeSequenceTrial"], + "A360": ["SQ", "PredecessorDocumentsSequence"], + "A370": ["SQ", "ReferencedRequestSequence"], + "A372": ["SQ", "PerformedProcedureCodeSequence"], + "A375": ["SQ", "CurrentRequestedProcedureEvidenceSequence"], + "A380": ["SQ", "ReportDetailSequenceTrial"], + "A385": ["SQ", "PertinentOtherEvidenceSequence"], + "A390": ["SQ", "HL7StructuredDocumentReferenceSequence"], + "A402": ["UI", "ObservationSubjectUIDTrial"], + "A403": ["CS", "ObservationSubjectClassTrial"], + "A404": ["SQ", "ObservationSubjectTypeCodeSequenceTrial"], + "A491": ["CS", "CompletionFlag"], + "A492": ["LO", "CompletionFlagDescription"], + "A493": ["CS", "VerificationFlag"], + "A494": ["CS", "ArchiveRequested"], + "A496": ["CS", "PreliminaryFlag"], + "A504": ["SQ", "ContentTemplateSequence"], + "A525": ["SQ", "IdenticalDocumentsSequence"], + "A600": ["CS", "ObservationSubjectContextFlagTrial"], + "A601": ["CS", "ObserverContextFlagTrial"], + "A603": ["CS", "ProcedureContextFlagTrial"], + "A730": ["SQ", "ContentSequence"], + "A731": ["SQ", "RelationshipSequenceTrial"], + "A732": ["SQ", "RelationshipTypeCodeSequenceTrial"], + "A744": ["SQ", "LanguageCodeSequenceTrial"], + "A992": ["ST", "UniformResourceLocatorTrial"], + "B020": ["SQ", "WaveformAnnotationSequence"], + "DB00": ["CS", "TemplateIdentifier"], + "DB06": ["DT", "TemplateVersion"], + "DB07": ["DT", "TemplateLocalVersion"], + "DB0B": ["CS", "TemplateExtensionFlag"], + "DB0C": ["UI", "TemplateExtensionOrganizationUID"], + "DB0D": ["UI", "TemplateExtensionCreatorUID"], + "DB73": ["UL", "ReferencedContentItemIdentifier"], + "E001": ["ST", "HL7InstanceIdentifier"], + "E004": ["DT", "HL7DocumentEffectiveTime"], + "E006": ["SQ", "HL7DocumentTypeCodeSequence"], + "E008": ["SQ", "DocumentClassCodeSequence"], + "E010": ["UT", "RetrieveURI"], + "E011": ["UI", "RetrieveLocationUID"], + "E020": ["CS", "TypeOfInstances"], + "E021": ["SQ", "DICOMRetrievalSequence"], + "E022": ["SQ", "DICOMMediaRetrievalSequence"], + "E023": ["SQ", "WADORetrievalSequence"], + "E024": ["SQ", "XDSRetrievalSequence"], + "E030": ["UI", "RepositoryUniqueID"], + "E031": ["UI", "HomeCommunityID"] + }, + "0042": { + "0010": ["ST", "DocumentTitle"], + "0011": ["OB", "EncapsulatedDocument"], + "0012": ["LO", "MIMETypeOfEncapsulatedDocument"], + "0013": ["SQ", "SourceInstanceSequence"], + "0014": ["LO", "ListOfMIMETypes"] + }, + "0044": { + "0001": ["ST", "ProductPackageIdentifier"], + "0002": ["CS", "SubstanceAdministrationApproval"], + "0003": ["LT", "ApprovalStatusFurtherDescription"], + "0004": ["DT", "ApprovalStatusDateTime"], + "0007": ["SQ", "ProductTypeCodeSequence"], + "0008": ["LO", "ProductName"], + "0009": ["LT", "ProductDescription"], + "000A": ["LO", "ProductLotIdentifier"], + "000B": ["DT", "ProductExpirationDateTime"], + "0010": ["DT", "SubstanceAdministrationDateTime"], + "0011": ["LO", "SubstanceAdministrationNotes"], + "0012": ["LO", "SubstanceAdministrationDeviceID"], + "0013": ["SQ", "ProductParameterSequence"], + "0019": ["SQ", "SubstanceAdministrationParameterSequence"] + }, + "0046": { + "0012": ["LO", "LensDescription"], + "0014": ["SQ", "RightLensSequence"], + "0015": ["SQ", "LeftLensSequence"], + "0016": ["SQ", "UnspecifiedLateralityLensSequence"], + "0018": ["SQ", "CylinderSequence"], + "0028": ["SQ", "PrismSequence"], + "0030": ["FD", "HorizontalPrismPower"], + "0032": ["CS", "HorizontalPrismBase"], + "0034": ["FD", "VerticalPrismPower"], + "0036": ["CS", "VerticalPrismBase"], + "0038": ["CS", "LensSegmentType"], + "0040": ["FD", "OpticalTransmittance"], + "0042": ["FD", "ChannelWidth"], + "0044": ["FD", "PupilSize"], + "0046": ["FD", "CornealSize"], + "0050": ["SQ", "AutorefractionRightEyeSequence"], + "0052": ["SQ", "AutorefractionLeftEyeSequence"], + "0060": ["FD", "DistancePupillaryDistance"], + "0062": ["FD", "NearPupillaryDistance"], + "0063": ["FD", "IntermediatePupillaryDistance"], + "0064": ["FD", "OtherPupillaryDistance"], + "0070": ["SQ", "KeratometryRightEyeSequence"], + "0071": ["SQ", "KeratometryLeftEyeSequence"], + "0074": ["SQ", "SteepKeratometricAxisSequence"], + "0075": ["FD", "RadiusOfCurvature"], + "0076": ["FD", "KeratometricPower"], + "0077": ["FD", "KeratometricAxis"], + "0080": ["SQ", "FlatKeratometricAxisSequence"], + "0092": ["CS", "BackgroundColor"], + "0094": ["CS", "Optotype"], + "0095": ["CS", "OptotypePresentation"], + "0097": ["SQ", "SubjectiveRefractionRightEyeSequence"], + "0098": ["SQ", "SubjectiveRefractionLeftEyeSequence"], + "0100": ["SQ", "AddNearSequence"], + "0101": ["SQ", "AddIntermediateSequence"], + "0102": ["SQ", "AddOtherSequence"], + "0104": ["FD", "AddPower"], + "0106": ["FD", "ViewingDistance"], + "0121": ["SQ", "VisualAcuityTypeCodeSequence"], + "0122": ["SQ", "VisualAcuityRightEyeSequence"], + "0123": ["SQ", "VisualAcuityLeftEyeSequence"], + "0124": ["SQ", "VisualAcuityBothEyesOpenSequence"], + "0125": ["CS", "ViewingDistanceType"], + "0135": ["SS", "VisualAcuityModifiers"], + "0137": ["FD", "DecimalVisualAcuity"], + "0139": ["LO", "OptotypeDetailedDefinition"], + "0145": ["SQ", "ReferencedRefractiveMeasurementsSequence"], + "0146": ["FD", "SpherePower"], + "0147": ["FD", "CylinderPower"] + }, + "0048": { + "0001": ["FL", "ImagedVolumeWidth"], + "0002": ["FL", "ImagedVolumeHeight"], + "0003": ["FL", "ImagedVolumeDepth"], + "0006": ["UL", "TotalPixelMatrixColumns"], + "0007": ["UL", "TotalPixelMatrixRows"], + "0008": ["SQ", "TotalPixelMatrixOriginSequence"], + "0010": ["CS", "SpecimenLabelInImage"], + "0011": ["CS", "FocusMethod"], + "0012": ["CS", "ExtendedDepthOfField"], + "0013": ["US", "NumberOfFocalPlanes"], + "0014": ["FL", "DistanceBetweenFocalPlanes"], + "0015": ["US", "RecommendedAbsentPixelCIELabValue"], + "0100": ["SQ", "IlluminatorTypeCodeSequence"], + "0102": ["DS", "ImageOrientationSlide"], + "0105": ["SQ", "OpticalPathSequence"], + "0106": ["SH", "OpticalPathIdentifier"], + "0107": ["ST", "OpticalPathDescription"], + "0108": ["SQ", "IlluminationColorCodeSequence"], + "0110": ["SQ", "SpecimenReferenceSequence"], + "0111": ["DS", "CondenserLensPower"], + "0112": ["DS", "ObjectiveLensPower"], + "0113": ["DS", "ObjectiveLensNumericalAperture"], + "0120": ["SQ", "PaletteColorLookupTableSequence"], + "0200": ["SQ", "ReferencedImageNavigationSequence"], + "0201": ["US", "TopLeftHandCornerOfLocalizerArea"], + "0202": ["US", "BottomRightHandCornerOfLocalizerArea"], + "0207": ["SQ", "OpticalPathIdentificationSequence"], + "021A": ["SQ", "PlanePositionSlideSequence"], + "021E": ["SL", "RowPositionInTotalImagePixelMatrix"], + "021F": ["SL", "ColumnPositionInTotalImagePixelMatrix"], + "0301": ["CS", "PixelOriginInterpretation"] + }, + "0050": { + "0004": ["CS", "CalibrationImage"], + "0010": ["SQ", "DeviceSequence"], + "0012": ["SQ", "ContainerComponentTypeCodeSequence"], + "0013": ["FD", "ContainerComponentThickness"], + "0014": ["DS", "DeviceLength"], + "0015": ["FD", "ContainerComponentWidth"], + "0016": ["DS", "DeviceDiameter"], + "0017": ["CS", "DeviceDiameterUnits"], + "0018": ["DS", "DeviceVolume"], + "0019": ["DS", "InterMarkerDistance"], + "001A": ["CS", "ContainerComponentMaterial"], + "001B": ["LO", "ContainerComponentID"], + "001C": ["FD", "ContainerComponentLength"], + "001D": ["FD", "ContainerComponentDiameter"], + "001E": ["LO", "ContainerComponentDescription"], + "0020": ["LO", "DeviceDescription"] + }, + "0052": { + "0001": ["FL", "ContrastBolusIngredientPercentByVolume"], + "0002": ["FD", "OCTFocalDistance"], + "0003": ["FD", "BeamSpotSize"], + "0004": ["FD", "EffectiveRefractiveIndex"], + "0006": ["CS", "OCTAcquisitionDomain"], + "0007": ["FD", "OCTOpticalCenterWavelength"], + "0008": ["FD", "AxialResolution"], + "0009": ["FD", "RangingDepth"], + "0011": ["FD", "ALineRate"], + "0012": ["US", "ALinesPerFrame"], + "0013": ["FD", "CatheterRotationalRate"], + "0014": ["FD", "ALinePixelSpacing"], + "0016": ["SQ", "ModeOfPercutaneousAccessSequence"], + "0025": ["SQ", "IntravascularOCTFrameTypeSequence"], + "0026": ["CS", "OCTZOffsetApplied"], + "0027": ["SQ", "IntravascularFrameContentSequence"], + "0028": ["FD", "IntravascularLongitudinalDistance"], + "0029": ["SQ", "IntravascularOCTFrameContentSequence"], + "0030": ["SS", "OCTZOffsetCorrection"], + "0031": ["CS", "CatheterDirectionOfRotation"], + "0033": ["FD", "SeamLineLocation"], + "0034": ["FD", "FirstALineLocation"], + "0036": ["US", "SeamLineIndex"], + "0038": ["US", "NumberOfPaddedAlines"], + "0039": ["CS", "InterpolationType"], + "003A": ["CS", "RefractiveIndexApplied"] + }, + "0054": { + "0010": ["US", "EnergyWindowVector"], + "0011": ["US", "NumberOfEnergyWindows"], + "0012": ["SQ", "EnergyWindowInformationSequence"], + "0013": ["SQ", "EnergyWindowRangeSequence"], + "0014": ["DS", "EnergyWindowLowerLimit"], + "0015": ["DS", "EnergyWindowUpperLimit"], + "0016": ["SQ", "RadiopharmaceuticalInformationSequence"], + "0017": ["IS", "ResidualSyringeCounts"], + "0018": ["SH", "EnergyWindowName"], + "0020": ["US", "DetectorVector"], + "0021": ["US", "NumberOfDetectors"], + "0022": ["SQ", "DetectorInformationSequence"], + "0030": ["US", "PhaseVector"], + "0031": ["US", "NumberOfPhases"], + "0032": ["SQ", "PhaseInformationSequence"], + "0033": ["US", "NumberOfFramesInPhase"], + "0036": ["IS", "PhaseDelay"], + "0038": ["IS", "PauseBetweenFrames"], + "0039": ["CS", "PhaseDescription"], + "0050": ["US", "RotationVector"], + "0051": ["US", "NumberOfRotations"], + "0052": ["SQ", "RotationInformationSequence"], + "0053": ["US", "NumberOfFramesInRotation"], + "0060": ["US", "RRIntervalVector"], + "0061": ["US", "NumberOfRRIntervals"], + "0062": ["SQ", "GatedInformationSequence"], + "0063": ["SQ", "DataInformationSequence"], + "0070": ["US", "TimeSlotVector"], + "0071": ["US", "NumberOfTimeSlots"], + "0072": ["SQ", "TimeSlotInformationSequence"], + "0073": ["DS", "TimeSlotTime"], + "0080": ["US", "SliceVector"], + "0081": ["US", "NumberOfSlices"], + "0090": ["US", "AngularViewVector"], + "0100": ["US", "TimeSliceVector"], + "0101": ["US", "NumberOfTimeSlices"], + "0200": ["DS", "StartAngle"], + "0202": ["CS", "TypeOfDetectorMotion"], + "0210": ["IS", "TriggerVector"], + "0211": ["US", "NumberOfTriggersInPhase"], + "0220": ["SQ", "ViewCodeSequence"], + "0222": ["SQ", "ViewModifierCodeSequence"], + "0300": ["SQ", "RadionuclideCodeSequence"], + "0302": ["SQ", "AdministrationRouteCodeSequence"], + "0304": ["SQ", "RadiopharmaceuticalCodeSequence"], + "0306": ["SQ", "CalibrationDataSequence"], + "0308": ["US", "EnergyWindowNumber"], + "0400": ["SH", "ImageID"], + "0410": ["SQ", "PatientOrientationCodeSequence"], + "0412": ["SQ", "PatientOrientationModifierCodeSequence"], + "0414": ["SQ", "PatientGantryRelationshipCodeSequence"], + "0500": ["CS", "SliceProgressionDirection"], + "1000": ["CS", "SeriesType"], + "1001": ["CS", "Units"], + "1002": ["CS", "CountsSource"], + "1004": ["CS", "ReprojectionMethod"], + "1006": ["CS", "SUVType"], + "1100": ["CS", "RandomsCorrectionMethod"], + "1101": ["LO", "AttenuationCorrectionMethod"], + "1102": ["CS", "DecayCorrection"], + "1103": ["LO", "ReconstructionMethod"], + "1104": ["LO", "DetectorLinesOfResponseUsed"], + "1105": ["LO", "ScatterCorrectionMethod"], + "1200": ["DS", "AxialAcceptance"], + "1201": ["IS", "AxialMash"], + "1202": ["IS", "TransverseMash"], + "1203": ["DS", "DetectorElementSize"], + "1210": ["DS", "CoincidenceWindowWidth"], + "1220": ["CS", "SecondaryCountsType"], + "1300": ["DS", "FrameReferenceTime"], + "1310": ["IS", "PrimaryPromptsCountsAccumulated"], + "1311": ["IS", "SecondaryCountsAccumulated"], + "1320": ["DS", "SliceSensitivityFactor"], + "1321": ["DS", "DecayFactor"], + "1322": ["DS", "DoseCalibrationFactor"], + "1323": ["DS", "ScatterFractionFactor"], + "1324": ["DS", "DeadTimeFactor"], + "1330": ["US", "ImageIndex"], + "1400": ["CS", "CountsIncluded"], + "1401": ["CS", "DeadTimeCorrectionFlag"] + }, + "0060": { + "3000": ["SQ", "HistogramSequence"], + "3002": ["US", "HistogramNumberOfBins"], + "3004": ["SS", "HistogramFirstBinValue"], + "3006": ["SS", "HistogramLastBinValue"], + "3008": ["US", "HistogramBinWidth"], + "3010": ["LO", "HistogramExplanation"], + "3020": ["UL", "HistogramData"] + }, + "0062": { + "0001": ["CS", "SegmentationType"], + "0002": ["SQ", "SegmentSequence"], + "0003": ["SQ", "SegmentedPropertyCategoryCodeSequence"], + "0004": ["US", "SegmentNumber"], + "0005": ["LO", "SegmentLabel"], + "0006": ["ST", "SegmentDescription"], + "0008": ["CS", "SegmentAlgorithmType"], + "0009": ["LO", "SegmentAlgorithmName"], + "000A": ["SQ", "SegmentIdentificationSequence"], + "000B": ["US", "ReferencedSegmentNumber"], + "000C": ["US", "RecommendedDisplayGrayscaleValue"], + "000D": ["US", "RecommendedDisplayCIELabValue"], + "000E": ["US", "MaximumFractionalValue"], + "000F": ["SQ", "SegmentedPropertyTypeCodeSequence"], + "0010": ["CS", "SegmentationFractionalType"] + }, + "0064": { + "0002": ["SQ", "DeformableRegistrationSequence"], + "0003": ["UI", "SourceFrameOfReferenceUID"], + "0005": ["SQ", "DeformableRegistrationGridSequence"], + "0007": ["UL", "GridDimensions"], + "0008": ["FD", "GridResolution"], + "0009": ["OF", "VectorGridData"], + "000F": ["SQ", "PreDeformationMatrixRegistrationSequence"], + "0010": ["SQ", "PostDeformationMatrixRegistrationSequence"] + }, + "0066": { + "0001": ["UL", "NumberOfSurfaces"], + "0002": ["SQ", "SurfaceSequence"], + "0003": ["UL", "SurfaceNumber"], + "0004": ["LT", "SurfaceComments"], + "0009": ["CS", "SurfaceProcessing"], + "000A": ["FL", "SurfaceProcessingRatio"], + "000B": ["LO", "SurfaceProcessingDescription"], + "000C": ["FL", "RecommendedPresentationOpacity"], + "000D": ["CS", "RecommendedPresentationType"], + "000E": ["CS", "FiniteVolume"], + "0010": ["CS", "Manifold"], + "0011": ["SQ", "SurfacePointsSequence"], + "0012": ["SQ", "SurfacePointsNormalsSequence"], + "0013": ["SQ", "SurfaceMeshPrimitivesSequence"], + "0015": ["UL", "NumberOfSurfacePoints"], + "0016": ["OF", "PointCoordinatesData"], + "0017": ["FL", "PointPositionAccuracy"], + "0018": ["FL", "MeanPointDistance"], + "0019": ["FL", "MaximumPointDistance"], + "001A": ["FL", "PointsBoundingBoxCoordinates"], + "001B": ["FL", "AxisOfRotation"], + "001C": ["FL", "CenterOfRotation"], + "001E": ["UL", "NumberOfVectors"], + "001F": ["US", "VectorDimensionality"], + "0020": ["FL", "VectorAccuracy"], + "0021": ["OF", "VectorCoordinateData"], + "0023": ["OW", "TrianglePointIndexList"], + "0024": ["OW", "EdgePointIndexList"], + "0025": ["OW", "VertexPointIndexList"], + "0026": ["SQ", "TriangleStripSequence"], + "0027": ["SQ", "TriangleFanSequence"], + "0028": ["SQ", "LineSequence"], + "0029": ["OW", "PrimitivePointIndexList"], + "002A": ["UL", "SurfaceCount"], + "002B": ["SQ", "ReferencedSurfaceSequence"], + "002C": ["UL", "ReferencedSurfaceNumber"], + "002D": ["SQ", "SegmentSurfaceGenerationAlgorithmIdentificationSequence"], + "002E": ["SQ", "SegmentSurfaceSourceInstanceSequence"], + "002F": ["SQ", "AlgorithmFamilyCodeSequence"], + "0030": ["SQ", "AlgorithmNameCodeSequence"], + "0031": ["LO", "AlgorithmVersion"], + "0032": ["LT", "AlgorithmParameters"], + "0034": ["SQ", "FacetSequence"], + "0035": ["SQ", "SurfaceProcessingAlgorithmIdentificationSequence"], + "0036": ["LO", "AlgorithmName"] + }, + "0068": { + "6210": ["LO", "ImplantSize"], + "6221": ["LO", "ImplantTemplateVersion"], + "6222": ["SQ", "ReplacedImplantTemplateSequence"], + "6223": ["CS", "ImplantType"], + "6224": ["SQ", "DerivationImplantTemplateSequence"], + "6225": ["SQ", "OriginalImplantTemplateSequence"], + "6226": ["DT", "EffectiveDateTime"], + "6230": ["SQ", "ImplantTargetAnatomySequence"], + "6260": ["SQ", "InformationFromManufacturerSequence"], + "6265": ["SQ", "NotificationFromManufacturerSequence"], + "6270": ["DT", "InformationIssueDateTime"], + "6280": ["ST", "InformationSummary"], + "62A0": ["SQ", "ImplantRegulatoryDisapprovalCodeSequence"], + "62A5": ["FD", "OverallTemplateSpatialTolerance"], + "62C0": ["SQ", "HPGLDocumentSequence"], + "62D0": ["US", "HPGLDocumentID"], + "62D5": ["LO", "HPGLDocumentLabel"], + "62E0": ["SQ", "ViewOrientationCodeSequence"], + "62F0": ["FD", "ViewOrientationModifier"], + "62F2": ["FD", "HPGLDocumentScaling"], + "6300": ["OB", "HPGLDocument"], + "6310": ["US", "HPGLContourPenNumber"], + "6320": ["SQ", "HPGLPenSequence"], + "6330": ["US", "HPGLPenNumber"], + "6340": ["LO", "HPGLPenLabel"], + "6345": ["ST", "HPGLPenDescription"], + "6346": ["FD", "RecommendedRotationPoint"], + "6347": ["FD", "BoundingRectangle"], + "6350": ["US", "ImplantTemplate3DModelSurfaceNumber"], + "6360": ["SQ", "SurfaceModelDescriptionSequence"], + "6380": ["LO", "SurfaceModelLabel"], + "6390": ["FD", "SurfaceModelScalingFactor"], + "63A0": ["SQ", "MaterialsCodeSequence"], + "63A4": ["SQ", "CoatingMaterialsCodeSequence"], + "63A8": ["SQ", "ImplantTypeCodeSequence"], + "63AC": ["SQ", "FixationMethodCodeSequence"], + "63B0": ["SQ", "MatingFeatureSetsSequence"], + "63C0": ["US", "MatingFeatureSetID"], + "63D0": ["LO", "MatingFeatureSetLabel"], + "63E0": ["SQ", "MatingFeatureSequence"], + "63F0": ["US", "MatingFeatureID"], + "6400": ["SQ", "MatingFeatureDegreeOfFreedomSequence"], + "6410": ["US", "DegreeOfFreedomID"], + "6420": ["CS", "DegreeOfFreedomType"], + "6430": ["SQ", "TwoDMatingFeatureCoordinatesSequence"], + "6440": ["US", "ReferencedHPGLDocumentID"], + "6450": ["FD", "TwoDMatingPoint"], + "6460": ["FD", "TwoDMatingAxes"], + "6470": ["SQ", "TwoDDegreeOfFreedomSequence"], + "6490": ["FD", "ThreeDDegreeOfFreedomAxis"], + "64A0": ["FD", "RangeOfFreedom"], + "64C0": ["FD", "ThreeDMatingPoint"], + "64D0": ["FD", "ThreeDMatingAxes"], + "64F0": ["FD", "TwoDDegreeOfFreedomAxis"], + "6500": ["SQ", "PlanningLandmarkPointSequence"], + "6510": ["SQ", "PlanningLandmarkLineSequence"], + "6520": ["SQ", "PlanningLandmarkPlaneSequence"], + "6530": ["US", "PlanningLandmarkID"], + "6540": ["LO", "PlanningLandmarkDescription"], + "6545": ["SQ", "PlanningLandmarkIdentificationCodeSequence"], + "6550": ["SQ", "TwoDPointCoordinatesSequence"], + "6560": ["FD", "TwoDPointCoordinates"], + "6590": ["FD", "ThreeDPointCoordinates"], + "65A0": ["SQ", "TwoDLineCoordinatesSequence"], + "65B0": ["FD", "TwoDLineCoordinates"], + "65D0": ["FD", "ThreeDLineCoordinates"], + "65E0": ["SQ", "TwoDPlaneCoordinatesSequence"], + "65F0": ["FD", "TwoDPlaneIntersection"], + "6610": ["FD", "ThreeDPlaneOrigin"], + "6620": ["FD", "ThreeDPlaneNormal"] + }, + "0070": { + "0001": ["SQ", "GraphicAnnotationSequence"], + "0002": ["CS", "GraphicLayer"], + "0003": ["CS", "BoundingBoxAnnotationUnits"], + "0004": ["CS", "AnchorPointAnnotationUnits"], + "0005": ["CS", "GraphicAnnotationUnits"], + "0006": ["ST", "UnformattedTextValue"], + "0008": ["SQ", "TextObjectSequence"], + "0009": ["SQ", "GraphicObjectSequence"], + "0010": ["FL", "BoundingBoxTopLeftHandCorner"], + "0011": ["FL", "BoundingBoxBottomRightHandCorner"], + "0012": ["CS", "BoundingBoxTextHorizontalJustification"], + "0014": ["FL", "AnchorPoint"], + "0015": ["CS", "AnchorPointVisibility"], + "0020": ["US", "GraphicDimensions"], + "0021": ["US", "NumberOfGraphicPoints"], + "0022": ["FL", "GraphicData"], + "0023": ["CS", "GraphicType"], + "0024": ["CS", "GraphicFilled"], + "0040": ["IS", "ImageRotationRetired"], + "0041": ["CS", "ImageHorizontalFlip"], + "0042": ["US", "ImageRotation"], + "0050": ["US", "DisplayedAreaTopLeftHandCornerTrial"], + "0051": ["US", "DisplayedAreaBottomRightHandCornerTrial"], + "0052": ["SL", "DisplayedAreaTopLeftHandCorner"], + "0053": ["SL", "DisplayedAreaBottomRightHandCorner"], + "005A": ["SQ", "DisplayedAreaSelectionSequence"], + "0060": ["SQ", "GraphicLayerSequence"], + "0062": ["IS", "GraphicLayerOrder"], + "0066": ["US", "GraphicLayerRecommendedDisplayGrayscaleValue"], + "0067": ["US", "GraphicLayerRecommendedDisplayRGBValue"], + "0068": ["LO", "GraphicLayerDescription"], + "0080": ["CS", "ContentLabel"], + "0081": ["LO", "ContentDescription"], + "0082": ["DA", "PresentationCreationDate"], + "0083": ["TM", "PresentationCreationTime"], + "0084": ["PN", "ContentCreatorName"], + "0086": ["SQ", "ContentCreatorIdentificationCodeSequence"], + "0087": ["SQ", "AlternateContentDescriptionSequence"], + "0100": ["CS", "PresentationSizeMode"], + "0101": ["DS", "PresentationPixelSpacing"], + "0102": ["IS", "PresentationPixelAspectRatio"], + "0103": ["FL", "PresentationPixelMagnificationRatio"], + "0207": ["LO", "GraphicGroupLabel"], + "0208": ["ST", "GraphicGroupDescription"], + "0209": ["SQ", "CompoundGraphicSequence"], + "0226": ["UL", "CompoundGraphicInstanceID"], + "0227": ["LO", "FontName"], + "0228": ["CS", "FontNameType"], + "0229": ["LO", "CSSFontName"], + "0230": ["FD", "RotationAngle"], + "0231": ["SQ", "TextStyleSequence"], + "0232": ["SQ", "LineStyleSequence"], + "0233": ["SQ", "FillStyleSequence"], + "0234": ["SQ", "GraphicGroupSequence"], + "0241": ["US", "TextColorCIELabValue"], + "0242": ["CS", "HorizontalAlignment"], + "0243": ["CS", "VerticalAlignment"], + "0244": ["CS", "ShadowStyle"], + "0245": ["FL", "ShadowOffsetX"], + "0246": ["FL", "ShadowOffsetY"], + "0247": ["US", "ShadowColorCIELabValue"], + "0248": ["CS", "Underlined"], + "0249": ["CS", "Bold"], + "0250": ["CS", "Italic"], + "0251": ["US", "PatternOnColorCIELabValue"], + "0252": ["US", "PatternOffColorCIELabValue"], + "0253": ["FL", "LineThickness"], + "0254": ["CS", "LineDashingStyle"], + "0255": ["UL", "LinePattern"], + "0256": ["OB", "FillPattern"], + "0257": ["CS", "FillMode"], + "0258": ["FL", "ShadowOpacity"], + "0261": ["FL", "GapLength"], + "0262": ["FL", "DiameterOfVisibility"], + "0273": ["FL", "RotationPoint"], + "0274": ["CS", "TickAlignment"], + "0278": ["CS", "ShowTickLabel"], + "0279": ["CS", "TickLabelAlignment"], + "0282": ["CS", "CompoundGraphicUnits"], + "0284": ["FL", "PatternOnOpacity"], + "0285": ["FL", "PatternOffOpacity"], + "0287": ["SQ", "MajorTicksSequence"], + "0288": ["FL", "TickPosition"], + "0289": ["SH", "TickLabel"], + "0294": ["CS", "CompoundGraphicType"], + "0295": ["UL", "GraphicGroupID"], + "0306": ["CS", "ShapeType"], + "0308": ["SQ", "RegistrationSequence"], + "0309": ["SQ", "MatrixRegistrationSequence"], + "030A": ["SQ", "MatrixSequence"], + "030C": ["CS", "FrameOfReferenceTransformationMatrixType"], + "030D": ["SQ", "RegistrationTypeCodeSequence"], + "030F": ["ST", "FiducialDescription"], + "0310": ["SH", "FiducialIdentifier"], + "0311": ["SQ", "FiducialIdentifierCodeSequence"], + "0312": ["FD", "ContourUncertaintyRadius"], + "0314": ["SQ", "UsedFiducialsSequence"], + "0318": ["SQ", "GraphicCoordinatesDataSequence"], + "031A": ["UI", "FiducialUID"], + "031C": ["SQ", "FiducialSetSequence"], + "031E": ["SQ", "FiducialSequence"], + "0401": ["US", "GraphicLayerRecommendedDisplayCIELabValue"], + "0402": ["SQ", "BlendingSequence"], + "0403": ["FL", "RelativeOpacity"], + "0404": ["SQ", "ReferencedSpatialRegistrationSequence"], + "0405": ["CS", "BlendingPosition"] + }, + "0072": { + "0002": ["SH", "HangingProtocolName"], + "0004": ["LO", "HangingProtocolDescription"], + "0006": ["CS", "HangingProtocolLevel"], + "0008": ["LO", "HangingProtocolCreator"], + "000A": ["DT", "HangingProtocolCreationDateTime"], + "000C": ["SQ", "HangingProtocolDefinitionSequence"], + "000E": ["SQ", "HangingProtocolUserIdentificationCodeSequence"], + "0010": ["LO", "HangingProtocolUserGroupName"], + "0012": ["SQ", "SourceHangingProtocolSequence"], + "0014": ["US", "NumberOfPriorsReferenced"], + "0020": ["SQ", "ImageSetsSequence"], + "0022": ["SQ", "ImageSetSelectorSequence"], + "0024": ["CS", "ImageSetSelectorUsageFlag"], + "0026": ["AT", "SelectorAttribute"], + "0028": ["US", "SelectorValueNumber"], + "0030": ["SQ", "TimeBasedImageSetsSequence"], + "0032": ["US", "ImageSetNumber"], + "0034": ["CS", "ImageSetSelectorCategory"], + "0038": ["US", "RelativeTime"], + "003A": ["CS", "RelativeTimeUnits"], + "003C": ["SS", "AbstractPriorValue"], + "003E": ["SQ", "AbstractPriorCodeSequence"], + "0040": ["LO", "ImageSetLabel"], + "0050": ["CS", "SelectorAttributeVR"], + "0052": ["AT", "SelectorSequencePointer"], + "0054": ["LO", "SelectorSequencePointerPrivateCreator"], + "0056": ["LO", "SelectorAttributePrivateCreator"], + "0060": ["AT", "SelectorATValue"], + "0062": ["CS", "SelectorCSValue"], + "0064": ["IS", "SelectorISValue"], + "0066": ["LO", "SelectorLOValue"], + "0068": ["LT", "SelectorLTValue"], + "006A": ["PN", "SelectorPNValue"], + "006C": ["SH", "SelectorSHValue"], + "006E": ["ST", "SelectorSTValue"], + "0070": ["UT", "SelectorUTValue"], + "0072": ["DS", "SelectorDSValue"], + "0074": ["FD", "SelectorFDValue"], + "0076": ["FL", "SelectorFLValue"], + "0078": ["UL", "SelectorULValue"], + "007A": ["US", "SelectorUSValue"], + "007C": ["SL", "SelectorSLValue"], + "007E": ["SS", "SelectorSSValue"], + "0080": ["SQ", "SelectorCodeSequenceValue"], + "0100": ["US", "NumberOfScreens"], + "0102": ["SQ", "NominalScreenDefinitionSequence"], + "0104": ["US", "NumberOfVerticalPixels"], + "0106": ["US", "NumberOfHorizontalPixels"], + "0108": ["FD", "DisplayEnvironmentSpatialPosition"], + "010A": ["US", "ScreenMinimumGrayscaleBitDepth"], + "010C": ["US", "ScreenMinimumColorBitDepth"], + "010E": ["US", "ApplicationMaximumRepaintTime"], + "0200": ["SQ", "DisplaySetsSequence"], + "0202": ["US", "DisplaySetNumber"], + "0203": ["LO", "DisplaySetLabel"], + "0204": ["US", "DisplaySetPresentationGroup"], + "0206": ["LO", "DisplaySetPresentationGroupDescription"], + "0208": ["CS", "PartialDataDisplayHandling"], + "0210": ["SQ", "SynchronizedScrollingSequence"], + "0212": ["US", "DisplaySetScrollingGroup"], + "0214": ["SQ", "NavigationIndicatorSequence"], + "0216": ["US", "NavigationDisplaySet"], + "0218": ["US", "ReferenceDisplaySets"], + "0300": ["SQ", "ImageBoxesSequence"], + "0302": ["US", "ImageBoxNumber"], + "0304": ["CS", "ImageBoxLayoutType"], + "0306": ["US", "ImageBoxTileHorizontalDimension"], + "0308": ["US", "ImageBoxTileVerticalDimension"], + "0310": ["CS", "ImageBoxScrollDirection"], + "0312": ["CS", "ImageBoxSmallScrollType"], + "0314": ["US", "ImageBoxSmallScrollAmount"], + "0316": ["CS", "ImageBoxLargeScrollType"], + "0318": ["US", "ImageBoxLargeScrollAmount"], + "0320": ["US", "ImageBoxOverlapPriority"], + "0330": ["FD", "CineRelativeToRealTime"], + "0400": ["SQ", "FilterOperationsSequence"], + "0402": ["CS", "FilterByCategory"], + "0404": ["CS", "FilterByAttributePresence"], + "0406": ["CS", "FilterByOperator"], + "0420": ["US", "StructuredDisplayBackgroundCIELabValue"], + "0421": ["US", "EmptyImageBoxCIELabValue"], + "0422": ["SQ", "StructuredDisplayImageBoxSequence"], + "0424": ["SQ", "StructuredDisplayTextBoxSequence"], + "0427": ["SQ", "ReferencedFirstFrameSequence"], + "0430": ["SQ", "ImageBoxSynchronizationSequence"], + "0432": ["US", "SynchronizedImageBoxList"], + "0434": ["CS", "TypeOfSynchronization"], + "0500": ["CS", "BlendingOperationType"], + "0510": ["CS", "ReformattingOperationType"], + "0512": ["FD", "ReformattingThickness"], + "0514": ["FD", "ReformattingInterval"], + "0516": ["CS", "ReformattingOperationInitialViewDirection"], + "0520": ["CS", "ThreeDRenderingType"], + "0600": ["SQ", "SortingOperationsSequence"], + "0602": ["CS", "SortByCategory"], + "0604": ["CS", "SortingDirection"], + "0700": ["CS", "DisplaySetPatientOrientation"], + "0702": ["CS", "VOIType"], + "0704": ["CS", "PseudoColorType"], + "0705": ["SQ", "PseudoColorPaletteInstanceReferenceSequence"], + "0706": ["CS", "ShowGrayscaleInverted"], + "0710": ["CS", "ShowImageTrueSizeFlag"], + "0712": ["CS", "ShowGraphicAnnotationFlag"], + "0714": ["CS", "ShowPatientDemographicsFlag"], + "0716": ["CS", "ShowAcquisitionTechniquesFlag"], + "0717": ["CS", "DisplaySetHorizontalJustification"], + "0718": ["CS", "DisplaySetVerticalJustification"] + }, + "0074": { + "0120": ["FD", "ContinuationStartMeterset"], + "0121": ["FD", "ContinuationEndMeterset"], + "1000": ["CS", "ProcedureStepState"], + "1002": ["SQ", "ProcedureStepProgressInformationSequence"], + "1004": ["DS", "ProcedureStepProgress"], + "1006": ["ST", "ProcedureStepProgressDescription"], + "1008": ["SQ", "ProcedureStepCommunicationsURISequence"], + "100A": ["ST", "ContactURI"], + "100C": ["LO", "ContactDisplayName"], + "100E": ["SQ", "ProcedureStepDiscontinuationReasonCodeSequence"], + "1020": ["SQ", "BeamTaskSequence"], + "1022": ["CS", "BeamTaskType"], + "1024": ["IS", "BeamOrderIndexTrial"], + "1026": ["FD", "TableTopVerticalAdjustedPosition"], + "1027": ["FD", "TableTopLongitudinalAdjustedPosition"], + "1028": ["FD", "TableTopLateralAdjustedPosition"], + "102A": ["FD", "PatientSupportAdjustedAngle"], + "102B": ["FD", "TableTopEccentricAdjustedAngle"], + "102C": ["FD", "TableTopPitchAdjustedAngle"], + "102D": ["FD", "TableTopRollAdjustedAngle"], + "1030": ["SQ", "DeliveryVerificationImageSequence"], + "1032": ["CS", "VerificationImageTiming"], + "1034": ["CS", "DoubleExposureFlag"], + "1036": ["CS", "DoubleExposureOrdering"], + "1038": ["DS", "DoubleExposureMetersetTrial"], + "103A": ["DS", "DoubleExposureFieldDeltaTrial"], + "1040": ["SQ", "RelatedReferenceRTImageSequence"], + "1042": ["SQ", "GeneralMachineVerificationSequence"], + "1044": ["SQ", "ConventionalMachineVerificationSequence"], + "1046": ["SQ", "IonMachineVerificationSequence"], + "1048": ["SQ", "FailedAttributesSequence"], + "104A": ["SQ", "OverriddenAttributesSequence"], + "104C": ["SQ", "ConventionalControlPointVerificationSequence"], + "104E": ["SQ", "IonControlPointVerificationSequence"], + "1050": ["SQ", "AttributeOccurrenceSequence"], + "1052": ["AT", "AttributeOccurrencePointer"], + "1054": ["UL", "AttributeItemSelector"], + "1056": ["LO", "AttributeOccurrencePrivateCreator"], + "1057": ["IS", "SelectorSequencePointerItems"], + "1200": ["CS", "ScheduledProcedureStepPriority"], + "1202": ["LO", "WorklistLabel"], + "1204": ["LO", "ProcedureStepLabel"], + "1210": ["SQ", "ScheduledProcessingParametersSequence"], + "1212": ["SQ", "PerformedProcessingParametersSequence"], + "1216": ["SQ", "UnifiedProcedureStepPerformedProcedureSequence"], + "1220": ["SQ", "RelatedProcedureStepSequence"], + "1222": ["LO", "ProcedureStepRelationshipType"], + "1224": ["SQ", "ReplacedProcedureStepSequence"], + "1230": ["LO", "DeletionLock"], + "1234": ["AE", "ReceivingAE"], + "1236": ["AE", "RequestingAE"], + "1238": ["LT", "ReasonForCancellation"], + "1242": ["CS", "SCPStatus"], + "1244": ["CS", "SubscriptionListStatus"], + "1246": ["CS", "UnifiedProcedureStepListStatus"], + "1324": ["UL", "BeamOrderIndex"], + "1338": ["FD", "DoubleExposureMeterset"], + "133A": ["FD", "DoubleExposureFieldDelta"] + }, + "0076": { + "0001": ["LO", "ImplantAssemblyTemplateName"], + "0003": ["LO", "ImplantAssemblyTemplateIssuer"], + "0006": ["LO", "ImplantAssemblyTemplateVersion"], + "0008": ["SQ", "ReplacedImplantAssemblyTemplateSequence"], + "000A": ["CS", "ImplantAssemblyTemplateType"], + "000C": ["SQ", "OriginalImplantAssemblyTemplateSequence"], + "000E": ["SQ", "DerivationImplantAssemblyTemplateSequence"], + "0010": ["SQ", "ImplantAssemblyTemplateTargetAnatomySequence"], + "0020": ["SQ", "ProcedureTypeCodeSequence"], + "0030": ["LO", "SurgicalTechnique"], + "0032": ["SQ", "ComponentTypesSequence"], + "0034": ["CS", "ComponentTypeCodeSequence"], + "0036": ["CS", "ExclusiveComponentType"], + "0038": ["CS", "MandatoryComponentType"], + "0040": ["SQ", "ComponentSequence"], + "0055": ["US", "ComponentID"], + "0060": ["SQ", "ComponentAssemblySequence"], + "0070": ["US", "Component1ReferencedID"], + "0080": ["US", "Component1ReferencedMatingFeatureSetID"], + "0090": ["US", "Component1ReferencedMatingFeatureID"], + "00A0": ["US", "Component2ReferencedID"], + "00B0": ["US", "Component2ReferencedMatingFeatureSetID"], + "00C0": ["US", "Component2ReferencedMatingFeatureID"] + }, + "0078": { + "0001": ["LO", "ImplantTemplateGroupName"], + "0010": ["ST", "ImplantTemplateGroupDescription"], + "0020": ["LO", "ImplantTemplateGroupIssuer"], + "0024": ["LO", "ImplantTemplateGroupVersion"], + "0026": ["SQ", "ReplacedImplantTemplateGroupSequence"], + "0028": ["SQ", "ImplantTemplateGroupTargetAnatomySequence"], + "002A": ["SQ", "ImplantTemplateGroupMembersSequence"], + "002E": ["US", "ImplantTemplateGroupMemberID"], + "0050": ["FD", "ThreeDImplantTemplateGroupMemberMatchingPoint"], + "0060": ["FD", "ThreeDImplantTemplateGroupMemberMatchingAxes"], + "0070": ["SQ", "ImplantTemplateGroupMemberMatching2DCoordinatesSequence"], + "0090": ["FD", "TwoDImplantTemplateGroupMemberMatchingPoint"], + "00A0": ["FD", "TwoDImplantTemplateGroupMemberMatchingAxes"], + "00B0": ["SQ", "ImplantTemplateGroupVariationDimensionSequence"], + "00B2": ["LO", "ImplantTemplateGroupVariationDimensionName"], + "00B4": ["SQ", "ImplantTemplateGroupVariationDimensionRankSequence"], + "00B6": ["US", "ReferencedImplantTemplateGroupMemberID"], + "00B8": ["US", "ImplantTemplateGroupVariationDimensionRank"] + }, + "0088": { + "0130": ["SH", "StorageMediaFileSetID"], + "0140": ["UI", "StorageMediaFileSetUID"], + "0200": ["SQ", "IconImageSequence"], + "0904": ["LO", "TopicTitle"], + "0906": ["ST", "TopicSubject"], + "0910": ["LO", "TopicAuthor"], + "0912": ["LO", "TopicKeywords"] + }, + "0100": { + "0410": ["CS", "SOPInstanceStatus"], + "0420": ["DT", "SOPAuthorizationDateTime"], + "0424": ["LT", "SOPAuthorizationComment"], + "0426": ["LO", "AuthorizationEquipmentCertificationNumber"] + }, + "0400": { + "0005": ["US", "MACIDNumber"], + "0010": ["UI", "MACCalculationTransferSyntaxUID"], + "0015": ["CS", "MACAlgorithm"], + "0020": ["AT", "DataElementsSigned"], + "0100": ["UI", "DigitalSignatureUID"], + "0105": ["DT", "DigitalSignatureDateTime"], + "0110": ["CS", "CertificateType"], + "0115": ["OB", "CertificateOfSigner"], + "0120": ["OB", "Signature"], + "0305": ["CS", "CertifiedTimestampType"], + "0310": ["OB", "CertifiedTimestamp"], + "0401": ["SQ", "DigitalSignaturePurposeCodeSequence"], + "0402": ["SQ", "ReferencedDigitalSignatureSequence"], + "0403": ["SQ", "ReferencedSOPInstanceMACSequence"], + "0404": ["OB", "MAC"], + "0500": ["SQ", "EncryptedAttributesSequence"], + "0510": ["UI", "EncryptedContentTransferSyntaxUID"], + "0520": ["OB", "EncryptedContent"], + "0550": ["SQ", "ModifiedAttributesSequence"], + "0561": ["SQ", "OriginalAttributesSequence"], + "0562": ["DT", "AttributeModificationDateTime"], + "0563": ["LO", "ModifyingSystem"], + "0564": ["LO", "SourceOfPreviousValues"], + "0565": ["CS", "ReasonForTheAttributeModification"] + }, + "2000": { + "0010": ["IS", "NumberOfCopies"], + "001E": ["SQ", "PrinterConfigurationSequence"], + "0020": ["CS", "PrintPriority"], + "0030": ["CS", "MediumType"], + "0040": ["CS", "FilmDestination"], + "0050": ["LO", "FilmSessionLabel"], + "0060": ["IS", "MemoryAllocation"], + "0061": ["IS", "MaximumMemoryAllocation"], + "0062": ["CS", "ColorImagePrintingFlag"], + "0063": ["CS", "CollationFlag"], + "0065": ["CS", "AnnotationFlag"], + "0067": ["CS", "ImageOverlayFlag"], + "0069": ["CS", "PresentationLUTFlag"], + "006A": ["CS", "ImageBoxPresentationLUTFlag"], + "00A0": ["US", "MemoryBitDepth"], + "00A1": ["US", "PrintingBitDepth"], + "00A2": ["SQ", "MediaInstalledSequence"], + "00A4": ["SQ", "OtherMediaAvailableSequence"], + "00A8": ["SQ", "SupportedImageDisplayFormatsSequence"], + "0500": ["SQ", "ReferencedFilmBoxSequence"], + "0510": ["SQ", "ReferencedStoredPrintSequence"] + }, + "2010": { + "0010": ["ST", "ImageDisplayFormat"], + "0030": ["CS", "AnnotationDisplayFormatID"], + "0040": ["CS", "FilmOrientation"], + "0050": ["CS", "FilmSizeID"], + "0052": ["CS", "PrinterResolutionID"], + "0054": ["CS", "DefaultPrinterResolutionID"], + "0060": ["CS", "MagnificationType"], + "0080": ["CS", "SmoothingType"], + "00A6": ["CS", "DefaultMagnificationType"], + "00A7": ["CS", "OtherMagnificationTypesAvailable"], + "00A8": ["CS", "DefaultSmoothingType"], + "00A9": ["CS", "OtherSmoothingTypesAvailable"], + "0100": ["CS", "BorderDensity"], + "0110": ["CS", "EmptyImageDensity"], + "0120": ["US", "MinDensity"], + "0130": ["US", "MaxDensity"], + "0140": ["CS", "Trim"], + "0150": ["ST", "ConfigurationInformation"], + "0152": ["LT", "ConfigurationInformationDescription"], + "0154": ["IS", "MaximumCollatedFilms"], + "015E": ["US", "Illumination"], + "0160": ["US", "ReflectedAmbientLight"], + "0376": ["DS", "PrinterPixelSpacing"], + "0500": ["SQ", "ReferencedFilmSessionSequence"], + "0510": ["SQ", "ReferencedImageBoxSequence"], + "0520": ["SQ", "ReferencedBasicAnnotationBoxSequence"] + }, + "2020": { + "0010": ["US", "ImageBoxPosition"], + "0020": ["CS", "Polarity"], + "0030": ["DS", "RequestedImageSize"], + "0040": ["CS", "RequestedDecimateCropBehavior"], + "0050": ["CS", "RequestedResolutionID"], + "00A0": ["CS", "RequestedImageSizeFlag"], + "00A2": ["CS", "DecimateCropResult"], + "0110": ["SQ", "BasicGrayscaleImageSequence"], + "0111": ["SQ", "BasicColorImageSequence"], + "0130": ["SQ", "ReferencedImageOverlayBoxSequence"], + "0140": ["SQ", "ReferencedVOILUTBoxSequence"] + }, + "2030": { + "0010": ["US", "AnnotationPosition"], + "0020": ["LO", "TextString"] + }, + "2040": { + "0010": ["SQ", "ReferencedOverlayPlaneSequence"], + "0011": ["US", "ReferencedOverlayPlaneGroups"], + "0020": ["SQ", "OverlayPixelDataSequence"], + "0060": ["CS", "OverlayMagnificationType"], + "0070": ["CS", "OverlaySmoothingType"], + "0072": ["CS", "OverlayOrImageMagnification"], + "0074": ["US", "MagnifyToNumberOfColumns"], + "0080": ["CS", "OverlayForegroundDensity"], + "0082": ["CS", "OverlayBackgroundDensity"], + "0090": ["CS", "OverlayMode"], + "0100": ["CS", "ThresholdDensity"], + "0500": ["SQ", "ReferencedImageBoxSequenceRetired"] + }, + "2050": { + "0010": ["SQ", "PresentationLUTSequence"], + "0020": ["CS", "PresentationLUTShape"], + "0500": ["SQ", "ReferencedPresentationLUTSequence"] + }, + "2100": { + "0010": ["SH", "PrintJobID"], + "0020": ["CS", "ExecutionStatus"], + "0030": ["CS", "ExecutionStatusInfo"], + "0040": ["DA", "CreationDate"], + "0050": ["TM", "CreationTime"], + "0070": ["AE", "Originator"], + "0140": ["AE", "DestinationAE"], + "0160": ["SH", "OwnerID"], + "0170": ["IS", "NumberOfFilms"], + "0500": ["SQ", "ReferencedPrintJobSequencePullStoredPrint"] + }, + "2110": { + "0010": ["CS", "PrinterStatus"], + "0020": ["CS", "PrinterStatusInfo"], + "0030": ["LO", "PrinterName"], + "0099": ["SH", "PrintQueueID"] + }, + "2120": { + "0010": ["CS", "QueueStatus"], + "0050": ["SQ", "PrintJobDescriptionSequence"], + "0070": ["SQ", "ReferencedPrintJobSequence"] + }, + "2130": { + "0010": ["SQ", "PrintManagementCapabilitiesSequence"], + "0015": ["SQ", "PrinterCharacteristicsSequence"], + "0030": ["SQ", "FilmBoxContentSequence"], + "0040": ["SQ", "ImageBoxContentSequence"], + "0050": ["SQ", "AnnotationContentSequence"], + "0060": ["SQ", "ImageOverlayBoxContentSequence"], + "0080": ["SQ", "PresentationLUTContentSequence"], + "00A0": ["SQ", "ProposedStudySequence"], + "00C0": ["SQ", "OriginalImageSequence"] + }, + "2200": { + "0001": ["CS", "LabelUsingInformationExtractedFromInstances"], + "0002": ["UT", "LabelText"], + "0003": ["CS", "LabelStyleSelection"], + "0004": ["LT", "MediaDisposition"], + "0005": ["LT", "BarcodeValue"], + "0006": ["CS", "BarcodeSymbology"], + "0007": ["CS", "AllowMediaSplitting"], + "0008": ["CS", "IncludeNonDICOMObjects"], + "0009": ["CS", "IncludeDisplayApplication"], + "000A": ["CS", "PreserveCompositeInstancesAfterMediaCreation"], + "000B": ["US", "TotalNumberOfPiecesOfMediaCreated"], + "000C": ["LO", "RequestedMediaApplicationProfile"], + "000D": ["SQ", "ReferencedStorageMediaSequence"], + "000E": ["AT", "FailureAttributes"], + "000F": ["CS", "AllowLossyCompression"], + "0020": ["CS", "RequestPriority"] + }, + "3002": { + "0002": ["SH", "RTImageLabel"], + "0003": ["LO", "RTImageName"], + "0004": ["ST", "RTImageDescription"], + "000A": ["CS", "ReportedValuesOrigin"], + "000C": ["CS", "RTImagePlane"], + "000D": ["DS", "XRayImageReceptorTranslation"], + "000E": ["DS", "XRayImageReceptorAngle"], + "0010": ["DS", "RTImageOrientation"], + "0011": ["DS", "ImagePlanePixelSpacing"], + "0012": ["DS", "RTImagePosition"], + "0020": ["SH", "RadiationMachineName"], + "0022": ["DS", "RadiationMachineSAD"], + "0024": ["DS", "RadiationMachineSSD"], + "0026": ["DS", "RTImageSID"], + "0028": ["DS", "SourceToReferenceObjectDistance"], + "0029": ["IS", "FractionNumber"], + "0030": ["SQ", "ExposureSequence"], + "0032": ["DS", "MetersetExposure"], + "0034": ["DS", "DiaphragmPosition"], + "0040": ["SQ", "FluenceMapSequence"], + "0041": ["CS", "FluenceDataSource"], + "0042": ["DS", "FluenceDataScale"], + "0050": ["SQ", "PrimaryFluenceModeSequence"], + "0051": ["CS", "FluenceMode"], + "0052": ["SH", "FluenceModeID"] + }, + "3004": { + "0001": ["CS", "DVHType"], + "0002": ["CS", "DoseUnits"], + "0004": ["CS", "DoseType"], + "0006": ["LO", "DoseComment"], + "0008": ["DS", "NormalizationPoint"], + "000A": ["CS", "DoseSummationType"], + "000C": ["DS", "GridFrameOffsetVector"], + "000E": ["DS", "DoseGridScaling"], + "0010": ["SQ", "RTDoseROISequence"], + "0012": ["DS", "DoseValue"], + "0014": ["CS", "TissueHeterogeneityCorrection"], + "0040": ["DS", "DVHNormalizationPoint"], + "0042": ["DS", "DVHNormalizationDoseValue"], + "0050": ["SQ", "DVHSequence"], + "0052": ["DS", "DVHDoseScaling"], + "0054": ["CS", "DVHVolumeUnits"], + "0056": ["IS", "DVHNumberOfBins"], + "0058": ["DS", "DVHData"], + "0060": ["SQ", "DVHReferencedROISequence"], + "0062": ["CS", "DVHROIContributionType"], + "0070": ["DS", "DVHMinimumDose"], + "0072": ["DS", "DVHMaximumDose"], + "0074": ["DS", "DVHMeanDose"] + }, + "3006": { + "0002": ["SH", "StructureSetLabel"], + "0004": ["LO", "StructureSetName"], + "0006": ["ST", "StructureSetDescription"], + "0008": ["DA", "StructureSetDate"], + "0009": ["TM", "StructureSetTime"], + "0010": ["SQ", "ReferencedFrameOfReferenceSequence"], + "0012": ["SQ", "RTReferencedStudySequence"], + "0014": ["SQ", "RTReferencedSeriesSequence"], + "0016": ["SQ", "ContourImageSequence"], + "0020": ["SQ", "StructureSetROISequence"], + "0022": ["IS", "ROINumber"], + "0024": ["UI", "ReferencedFrameOfReferenceUID"], + "0026": ["LO", "ROIName"], + "0028": ["ST", "ROIDescription"], + "002A": ["IS", "ROIDisplayColor"], + "002C": ["DS", "ROIVolume"], + "0030": ["SQ", "RTRelatedROISequence"], + "0033": ["CS", "RTROIRelationship"], + "0036": ["CS", "ROIGenerationAlgorithm"], + "0038": ["LO", "ROIGenerationDescription"], + "0039": ["SQ", "ROIContourSequence"], + "0040": ["SQ", "ContourSequence"], + "0042": ["CS", "ContourGeometricType"], + "0044": ["DS", "ContourSlabThickness"], + "0045": ["DS", "ContourOffsetVector"], + "0046": ["IS", "NumberOfContourPoints"], + "0048": ["IS", "ContourNumber"], + "0049": ["IS", "AttachedContours"], + "0050": ["DS", "ContourData"], + "0080": ["SQ", "RTROIObservationsSequence"], + "0082": ["IS", "ObservationNumber"], + "0084": ["IS", "ReferencedROINumber"], + "0085": ["SH", "ROIObservationLabel"], + "0086": ["SQ", "RTROIIdentificationCodeSequence"], + "0088": ["ST", "ROIObservationDescription"], + "00A0": ["SQ", "RelatedRTROIObservationsSequence"], + "00A4": ["CS", "RTROIInterpretedType"], + "00A6": ["PN", "ROIInterpreter"], + "00B0": ["SQ", "ROIPhysicalPropertiesSequence"], + "00B2": ["CS", "ROIPhysicalProperty"], + "00B4": ["DS", "ROIPhysicalPropertyValue"], + "00B6": ["SQ", "ROIElementalCompositionSequence"], + "00B7": ["US", "ROIElementalCompositionAtomicNumber"], + "00B8": ["FL", "ROIElementalCompositionAtomicMassFraction"], + "00C0": ["SQ", "FrameOfReferenceRelationshipSequence"], + "00C2": ["UI", "RelatedFrameOfReferenceUID"], + "00C4": ["CS", "FrameOfReferenceTransformationType"], + "00C6": ["DS", "FrameOfReferenceTransformationMatrix"], + "00C8": ["LO", "FrameOfReferenceTransformationComment"] + }, + "3008": { + "0010": ["SQ", "MeasuredDoseReferenceSequence"], + "0012": ["ST", "MeasuredDoseDescription"], + "0014": ["CS", "MeasuredDoseType"], + "0016": ["DS", "MeasuredDoseValue"], + "0020": ["SQ", "TreatmentSessionBeamSequence"], + "0021": ["SQ", "TreatmentSessionIonBeamSequence"], + "0022": ["IS", "CurrentFractionNumber"], + "0024": ["DA", "TreatmentControlPointDate"], + "0025": ["TM", "TreatmentControlPointTime"], + "002A": ["CS", "TreatmentTerminationStatus"], + "002B": ["SH", "TreatmentTerminationCode"], + "002C": ["CS", "TreatmentVerificationStatus"], + "0030": ["SQ", "ReferencedTreatmentRecordSequence"], + "0032": ["DS", "SpecifiedPrimaryMeterset"], + "0033": ["DS", "SpecifiedSecondaryMeterset"], + "0036": ["DS", "DeliveredPrimaryMeterset"], + "0037": ["DS", "DeliveredSecondaryMeterset"], + "003A": ["DS", "SpecifiedTreatmentTime"], + "003B": ["DS", "DeliveredTreatmentTime"], + "0040": ["SQ", "ControlPointDeliverySequence"], + "0041": ["SQ", "IonControlPointDeliverySequence"], + "0042": ["DS", "SpecifiedMeterset"], + "0044": ["DS", "DeliveredMeterset"], + "0045": ["FL", "MetersetRateSet"], + "0046": ["FL", "MetersetRateDelivered"], + "0047": ["FL", "ScanSpotMetersetsDelivered"], + "0048": ["DS", "DoseRateDelivered"], + "0050": ["SQ", "TreatmentSummaryCalculatedDoseReferenceSequence"], + "0052": ["DS", "CumulativeDoseToDoseReference"], + "0054": ["DA", "FirstTreatmentDate"], + "0056": ["DA", "MostRecentTreatmentDate"], + "005A": ["IS", "NumberOfFractionsDelivered"], + "0060": ["SQ", "OverrideSequence"], + "0061": ["AT", "ParameterSequencePointer"], + "0062": ["AT", "OverrideParameterPointer"], + "0063": ["IS", "ParameterItemIndex"], + "0064": ["IS", "MeasuredDoseReferenceNumber"], + "0065": ["AT", "ParameterPointer"], + "0066": ["ST", "OverrideReason"], + "0068": ["SQ", "CorrectedParameterSequence"], + "006A": ["FL", "CorrectionValue"], + "0070": ["SQ", "CalculatedDoseReferenceSequence"], + "0072": ["IS", "CalculatedDoseReferenceNumber"], + "0074": ["ST", "CalculatedDoseReferenceDescription"], + "0076": ["DS", "CalculatedDoseReferenceDoseValue"], + "0078": ["DS", "StartMeterset"], + "007A": ["DS", "EndMeterset"], + "0080": ["SQ", "ReferencedMeasuredDoseReferenceSequence"], + "0082": ["IS", "ReferencedMeasuredDoseReferenceNumber"], + "0090": ["SQ", "ReferencedCalculatedDoseReferenceSequence"], + "0092": ["IS", "ReferencedCalculatedDoseReferenceNumber"], + "00A0": ["SQ", "BeamLimitingDeviceLeafPairsSequence"], + "00B0": ["SQ", "RecordedWedgeSequence"], + "00C0": ["SQ", "RecordedCompensatorSequence"], + "00D0": ["SQ", "RecordedBlockSequence"], + "00E0": ["SQ", "TreatmentSummaryMeasuredDoseReferenceSequence"], + "00F0": ["SQ", "RecordedSnoutSequence"], + "00F2": ["SQ", "RecordedRangeShifterSequence"], + "00F4": ["SQ", "RecordedLateralSpreadingDeviceSequence"], + "00F6": ["SQ", "RecordedRangeModulatorSequence"], + "0100": ["SQ", "RecordedSourceSequence"], + "0105": ["LO", "SourceSerialNumber"], + "0110": ["SQ", "TreatmentSessionApplicationSetupSequence"], + "0116": ["CS", "ApplicationSetupCheck"], + "0120": ["SQ", "RecordedBrachyAccessoryDeviceSequence"], + "0122": ["IS", "ReferencedBrachyAccessoryDeviceNumber"], + "0130": ["SQ", "RecordedChannelSequence"], + "0132": ["DS", "SpecifiedChannelTotalTime"], + "0134": ["DS", "DeliveredChannelTotalTime"], + "0136": ["IS", "SpecifiedNumberOfPulses"], + "0138": ["IS", "DeliveredNumberOfPulses"], + "013A": ["DS", "SpecifiedPulseRepetitionInterval"], + "013C": ["DS", "DeliveredPulseRepetitionInterval"], + "0140": ["SQ", "RecordedSourceApplicatorSequence"], + "0142": ["IS", "ReferencedSourceApplicatorNumber"], + "0150": ["SQ", "RecordedChannelShieldSequence"], + "0152": ["IS", "ReferencedChannelShieldNumber"], + "0160": ["SQ", "BrachyControlPointDeliveredSequence"], + "0162": ["DA", "SafePositionExitDate"], + "0164": ["TM", "SafePositionExitTime"], + "0166": ["DA", "SafePositionReturnDate"], + "0168": ["TM", "SafePositionReturnTime"], + "0200": ["CS", "CurrentTreatmentStatus"], + "0202": ["ST", "TreatmentStatusComment"], + "0220": ["SQ", "FractionGroupSummarySequence"], + "0223": ["IS", "ReferencedFractionNumber"], + "0224": ["CS", "FractionGroupType"], + "0230": ["CS", "BeamStopperPosition"], + "0240": ["SQ", "FractionStatusSummarySequence"], + "0250": ["DA", "TreatmentDate"], + "0251": ["TM", "TreatmentTime"] + }, + "300A": { + "0002": ["SH", "RTPlanLabel"], + "0003": ["LO", "RTPlanName"], + "0004": ["ST", "RTPlanDescription"], + "0006": ["DA", "RTPlanDate"], + "0007": ["TM", "RTPlanTime"], + "0009": ["LO", "TreatmentProtocols"], + "000A": ["CS", "PlanIntent"], + "000B": ["LO", "TreatmentSites"], + "000C": ["CS", "RTPlanGeometry"], + "000E": ["ST", "PrescriptionDescription"], + "0010": ["SQ", "DoseReferenceSequence"], + "0012": ["IS", "DoseReferenceNumber"], + "0013": ["UI", "DoseReferenceUID"], + "0014": ["CS", "DoseReferenceStructureType"], + "0015": ["CS", "NominalBeamEnergyUnit"], + "0016": ["LO", "DoseReferenceDescription"], + "0018": ["DS", "DoseReferencePointCoordinates"], + "001A": ["DS", "NominalPriorDose"], + "0020": ["CS", "DoseReferenceType"], + "0021": ["DS", "ConstraintWeight"], + "0022": ["DS", "DeliveryWarningDose"], + "0023": ["DS", "DeliveryMaximumDose"], + "0025": ["DS", "TargetMinimumDose"], + "0026": ["DS", "TargetPrescriptionDose"], + "0027": ["DS", "TargetMaximumDose"], + "0028": ["DS", "TargetUnderdoseVolumeFraction"], + "002A": ["DS", "OrganAtRiskFullVolumeDose"], + "002B": ["DS", "OrganAtRiskLimitDose"], + "002C": ["DS", "OrganAtRiskMaximumDose"], + "002D": ["DS", "OrganAtRiskOverdoseVolumeFraction"], + "0040": ["SQ", "ToleranceTableSequence"], + "0042": ["IS", "ToleranceTableNumber"], + "0043": ["SH", "ToleranceTableLabel"], + "0044": ["DS", "GantryAngleTolerance"], + "0046": ["DS", "BeamLimitingDeviceAngleTolerance"], + "0048": ["SQ", "BeamLimitingDeviceToleranceSequence"], + "004A": ["DS", "BeamLimitingDevicePositionTolerance"], + "004B": ["FL", "SnoutPositionTolerance"], + "004C": ["DS", "PatientSupportAngleTolerance"], + "004E": ["DS", "TableTopEccentricAngleTolerance"], + "004F": ["FL", "TableTopPitchAngleTolerance"], + "0050": ["FL", "TableTopRollAngleTolerance"], + "0051": ["DS", "TableTopVerticalPositionTolerance"], + "0052": ["DS", "TableTopLongitudinalPositionTolerance"], + "0053": ["DS", "TableTopLateralPositionTolerance"], + "0055": ["CS", "RTPlanRelationship"], + "0070": ["SQ", "FractionGroupSequence"], + "0071": ["IS", "FractionGroupNumber"], + "0072": ["LO", "FractionGroupDescription"], + "0078": ["IS", "NumberOfFractionsPlanned"], + "0079": ["IS", "NumberOfFractionPatternDigitsPerDay"], + "007A": ["IS", "RepeatFractionCycleLength"], + "007B": ["LT", "FractionPattern"], + "0080": ["IS", "NumberOfBeams"], + "0082": ["DS", "BeamDoseSpecificationPoint"], + "0084": ["DS", "BeamDose"], + "0086": ["DS", "BeamMeterset"], + "0088": ["FL", "BeamDosePointDepth"], + "0089": ["FL", "BeamDosePointEquivalentDepth"], + "008A": ["FL", "BeamDosePointSSD"], + "00A0": ["IS", "NumberOfBrachyApplicationSetups"], + "00A2": ["DS", "BrachyApplicationSetupDoseSpecificationPoint"], + "00A4": ["DS", "BrachyApplicationSetupDose"], + "00B0": ["SQ", "BeamSequence"], + "00B2": ["SH", "TreatmentMachineName"], + "00B3": ["CS", "PrimaryDosimeterUnit"], + "00B4": ["DS", "SourceAxisDistance"], + "00B6": ["SQ", "BeamLimitingDeviceSequence"], + "00B8": ["CS", "RTBeamLimitingDeviceType"], + "00BA": ["DS", "SourceToBeamLimitingDeviceDistance"], + "00BB": ["FL", "IsocenterToBeamLimitingDeviceDistance"], + "00BC": ["IS", "NumberOfLeafJawPairs"], + "00BE": ["DS", "LeafPositionBoundaries"], + "00C0": ["IS", "BeamNumber"], + "00C2": ["LO", "BeamName"], + "00C3": ["ST", "BeamDescription"], + "00C4": ["CS", "BeamType"], + "00C6": ["CS", "RadiationType"], + "00C7": ["CS", "HighDoseTechniqueType"], + "00C8": ["IS", "ReferenceImageNumber"], + "00CA": ["SQ", "PlannedVerificationImageSequence"], + "00CC": ["LO", "ImagingDeviceSpecificAcquisitionParameters"], + "00CE": ["CS", "TreatmentDeliveryType"], + "00D0": ["IS", "NumberOfWedges"], + "00D1": ["SQ", "WedgeSequence"], + "00D2": ["IS", "WedgeNumber"], + "00D3": ["CS", "WedgeType"], + "00D4": ["SH", "WedgeID"], + "00D5": ["IS", "WedgeAngle"], + "00D6": ["DS", "WedgeFactor"], + "00D7": ["FL", "TotalWedgeTrayWaterEquivalentThickness"], + "00D8": ["DS", "WedgeOrientation"], + "00D9": ["FL", "IsocenterToWedgeTrayDistance"], + "00DA": ["DS", "SourceToWedgeTrayDistance"], + "00DB": ["FL", "WedgeThinEdgePosition"], + "00DC": ["SH", "BolusID"], + "00DD": ["ST", "BolusDescription"], + "00E0": ["IS", "NumberOfCompensators"], + "00E1": ["SH", "MaterialID"], + "00E2": ["DS", "TotalCompensatorTrayFactor"], + "00E3": ["SQ", "CompensatorSequence"], + "00E4": ["IS", "CompensatorNumber"], + "00E5": ["SH", "CompensatorID"], + "00E6": ["DS", "SourceToCompensatorTrayDistance"], + "00E7": ["IS", "CompensatorRows"], + "00E8": ["IS", "CompensatorColumns"], + "00E9": ["DS", "CompensatorPixelSpacing"], + "00EA": ["DS", "CompensatorPosition"], + "00EB": ["DS", "CompensatorTransmissionData"], + "00EC": ["DS", "CompensatorThicknessData"], + "00ED": ["IS", "NumberOfBoli"], + "00EE": ["CS", "CompensatorType"], + "00F0": ["IS", "NumberOfBlocks"], + "00F2": ["DS", "TotalBlockTrayFactor"], + "00F3": ["FL", "TotalBlockTrayWaterEquivalentThickness"], + "00F4": ["SQ", "BlockSequence"], + "00F5": ["SH", "BlockTrayID"], + "00F6": ["DS", "SourceToBlockTrayDistance"], + "00F7": ["FL", "IsocenterToBlockTrayDistance"], + "00F8": ["CS", "BlockType"], + "00F9": ["LO", "AccessoryCode"], + "00FA": ["CS", "BlockDivergence"], + "00FB": ["CS", "BlockMountingPosition"], + "00FC": ["IS", "BlockNumber"], + "00FE": ["LO", "BlockName"], + "0100": ["DS", "BlockThickness"], + "0102": ["DS", "BlockTransmission"], + "0104": ["IS", "BlockNumberOfPoints"], + "0106": ["DS", "BlockData"], + "0107": ["SQ", "ApplicatorSequence"], + "0108": ["SH", "ApplicatorID"], + "0109": ["CS", "ApplicatorType"], + "010A": ["LO", "ApplicatorDescription"], + "010C": ["DS", "CumulativeDoseReferenceCoefficient"], + "010E": ["DS", "FinalCumulativeMetersetWeight"], + "0110": ["IS", "NumberOfControlPoints"], + "0111": ["SQ", "ControlPointSequence"], + "0112": ["IS", "ControlPointIndex"], + "0114": ["DS", "NominalBeamEnergy"], + "0115": ["DS", "DoseRateSet"], + "0116": ["SQ", "WedgePositionSequence"], + "0118": ["CS", "WedgePosition"], + "011A": ["SQ", "BeamLimitingDevicePositionSequence"], + "011C": ["DS", "LeafJawPositions"], + "011E": ["DS", "GantryAngle"], + "011F": ["CS", "GantryRotationDirection"], + "0120": ["DS", "BeamLimitingDeviceAngle"], + "0121": ["CS", "BeamLimitingDeviceRotationDirection"], + "0122": ["DS", "PatientSupportAngle"], + "0123": ["CS", "PatientSupportRotationDirection"], + "0124": ["DS", "TableTopEccentricAxisDistance"], + "0125": ["DS", "TableTopEccentricAngle"], + "0126": ["CS", "TableTopEccentricRotationDirection"], + "0128": ["DS", "TableTopVerticalPosition"], + "0129": ["DS", "TableTopLongitudinalPosition"], + "012A": ["DS", "TableTopLateralPosition"], + "012C": ["DS", "IsocenterPosition"], + "012E": ["DS", "SurfaceEntryPoint"], + "0130": ["DS", "SourceToSurfaceDistance"], + "0134": ["DS", "CumulativeMetersetWeight"], + "0140": ["FL", "TableTopPitchAngle"], + "0142": ["CS", "TableTopPitchRotationDirection"], + "0144": ["FL", "TableTopRollAngle"], + "0146": ["CS", "TableTopRollRotationDirection"], + "0148": ["FL", "HeadFixationAngle"], + "014A": ["FL", "GantryPitchAngle"], + "014C": ["CS", "GantryPitchRotationDirection"], + "014E": ["FL", "GantryPitchAngleTolerance"], + "0180": ["SQ", "PatientSetupSequence"], + "0182": ["IS", "PatientSetupNumber"], + "0183": ["LO", "PatientSetupLabel"], + "0184": ["LO", "PatientAdditionalPosition"], + "0190": ["SQ", "FixationDeviceSequence"], + "0192": ["CS", "FixationDeviceType"], + "0194": ["SH", "FixationDeviceLabel"], + "0196": ["ST", "FixationDeviceDescription"], + "0198": ["SH", "FixationDevicePosition"], + "0199": ["FL", "FixationDevicePitchAngle"], + "019A": ["FL", "FixationDeviceRollAngle"], + "01A0": ["SQ", "ShieldingDeviceSequence"], + "01A2": ["CS", "ShieldingDeviceType"], + "01A4": ["SH", "ShieldingDeviceLabel"], + "01A6": ["ST", "ShieldingDeviceDescription"], + "01A8": ["SH", "ShieldingDevicePosition"], + "01B0": ["CS", "SetupTechnique"], + "01B2": ["ST", "SetupTechniqueDescription"], + "01B4": ["SQ", "SetupDeviceSequence"], + "01B6": ["CS", "SetupDeviceType"], + "01B8": ["SH", "SetupDeviceLabel"], + "01BA": ["ST", "SetupDeviceDescription"], + "01BC": ["DS", "SetupDeviceParameter"], + "01D0": ["ST", "SetupReferenceDescription"], + "01D2": ["DS", "TableTopVerticalSetupDisplacement"], + "01D4": ["DS", "TableTopLongitudinalSetupDisplacement"], + "01D6": ["DS", "TableTopLateralSetupDisplacement"], + "0200": ["CS", "BrachyTreatmentTechnique"], + "0202": ["CS", "BrachyTreatmentType"], + "0206": ["SQ", "TreatmentMachineSequence"], + "0210": ["SQ", "SourceSequence"], + "0212": ["IS", "SourceNumber"], + "0214": ["CS", "SourceType"], + "0216": ["LO", "SourceManufacturer"], + "0218": ["DS", "ActiveSourceDiameter"], + "021A": ["DS", "ActiveSourceLength"], + "0222": ["DS", "SourceEncapsulationNominalThickness"], + "0224": ["DS", "SourceEncapsulationNominalTransmission"], + "0226": ["LO", "SourceIsotopeName"], + "0228": ["DS", "SourceIsotopeHalfLife"], + "0229": ["CS", "SourceStrengthUnits"], + "022A": ["DS", "ReferenceAirKermaRate"], + "022B": ["DS", "SourceStrength"], + "022C": ["DA", "SourceStrengthReferenceDate"], + "022E": ["TM", "SourceStrengthReferenceTime"], + "0230": ["SQ", "ApplicationSetupSequence"], + "0232": ["CS", "ApplicationSetupType"], + "0234": ["IS", "ApplicationSetupNumber"], + "0236": ["LO", "ApplicationSetupName"], + "0238": ["LO", "ApplicationSetupManufacturer"], + "0240": ["IS", "TemplateNumber"], + "0242": ["SH", "TemplateType"], + "0244": ["LO", "TemplateName"], + "0250": ["DS", "TotalReferenceAirKerma"], + "0260": ["SQ", "BrachyAccessoryDeviceSequence"], + "0262": ["IS", "BrachyAccessoryDeviceNumber"], + "0263": ["SH", "BrachyAccessoryDeviceID"], + "0264": ["CS", "BrachyAccessoryDeviceType"], + "0266": ["LO", "BrachyAccessoryDeviceName"], + "026A": ["DS", "BrachyAccessoryDeviceNominalThickness"], + "026C": ["DS", "BrachyAccessoryDeviceNominalTransmission"], + "0280": ["SQ", "ChannelSequence"], + "0282": ["IS", "ChannelNumber"], + "0284": ["DS", "ChannelLength"], + "0286": ["DS", "ChannelTotalTime"], + "0288": ["CS", "SourceMovementType"], + "028A": ["IS", "NumberOfPulses"], + "028C": ["DS", "PulseRepetitionInterval"], + "0290": ["IS", "SourceApplicatorNumber"], + "0291": ["SH", "SourceApplicatorID"], + "0292": ["CS", "SourceApplicatorType"], + "0294": ["LO", "SourceApplicatorName"], + "0296": ["DS", "SourceApplicatorLength"], + "0298": ["LO", "SourceApplicatorManufacturer"], + "029C": ["DS", "SourceApplicatorWallNominalThickness"], + "029E": ["DS", "SourceApplicatorWallNominalTransmission"], + "02A0": ["DS", "SourceApplicatorStepSize"], + "02A2": ["IS", "TransferTubeNumber"], + "02A4": ["DS", "TransferTubeLength"], + "02B0": ["SQ", "ChannelShieldSequence"], + "02B2": ["IS", "ChannelShieldNumber"], + "02B3": ["SH", "ChannelShieldID"], + "02B4": ["LO", "ChannelShieldName"], + "02B8": ["DS", "ChannelShieldNominalThickness"], + "02BA": ["DS", "ChannelShieldNominalTransmission"], + "02C8": ["DS", "FinalCumulativeTimeWeight"], + "02D0": ["SQ", "BrachyControlPointSequence"], + "02D2": ["DS", "ControlPointRelativePosition"], + "02D4": ["DS", "ControlPoint3DPosition"], + "02D6": ["DS", "CumulativeTimeWeight"], + "02E0": ["CS", "CompensatorDivergence"], + "02E1": ["CS", "CompensatorMountingPosition"], + "02E2": ["DS", "SourceToCompensatorDistance"], + "02E3": ["FL", "TotalCompensatorTrayWaterEquivalentThickness"], + "02E4": ["FL", "IsocenterToCompensatorTrayDistance"], + "02E5": ["FL", "CompensatorColumnOffset"], + "02E6": ["FL", "IsocenterToCompensatorDistances"], + "02E7": ["FL", "CompensatorRelativeStoppingPowerRatio"], + "02E8": ["FL", "CompensatorMillingToolDiameter"], + "02EA": ["SQ", "IonRangeCompensatorSequence"], + "02EB": ["LT", "CompensatorDescription"], + "0302": ["IS", "RadiationMassNumber"], + "0304": ["IS", "RadiationAtomicNumber"], + "0306": ["SS", "RadiationChargeState"], + "0308": ["CS", "ScanMode"], + "030A": ["FL", "VirtualSourceAxisDistances"], + "030C": ["SQ", "SnoutSequence"], + "030D": ["FL", "SnoutPosition"], + "030F": ["SH", "SnoutID"], + "0312": ["IS", "NumberOfRangeShifters"], + "0314": ["SQ", "RangeShifterSequence"], + "0316": ["IS", "RangeShifterNumber"], + "0318": ["SH", "RangeShifterID"], + "0320": ["CS", "RangeShifterType"], + "0322": ["LO", "RangeShifterDescription"], + "0330": ["IS", "NumberOfLateralSpreadingDevices"], + "0332": ["SQ", "LateralSpreadingDeviceSequence"], + "0334": ["IS", "LateralSpreadingDeviceNumber"], + "0336": ["SH", "LateralSpreadingDeviceID"], + "0338": ["CS", "LateralSpreadingDeviceType"], + "033A": ["LO", "LateralSpreadingDeviceDescription"], + "033C": ["FL", "LateralSpreadingDeviceWaterEquivalentThickness"], + "0340": ["IS", "NumberOfRangeModulators"], + "0342": ["SQ", "RangeModulatorSequence"], + "0344": ["IS", "RangeModulatorNumber"], + "0346": ["SH", "RangeModulatorID"], + "0348": ["CS", "RangeModulatorType"], + "034A": ["LO", "RangeModulatorDescription"], + "034C": ["SH", "BeamCurrentModulationID"], + "0350": ["CS", "PatientSupportType"], + "0352": ["SH", "PatientSupportID"], + "0354": ["LO", "PatientSupportAccessoryCode"], + "0356": ["FL", "FixationLightAzimuthalAngle"], + "0358": ["FL", "FixationLightPolarAngle"], + "035A": ["FL", "MetersetRate"], + "0360": ["SQ", "RangeShifterSettingsSequence"], + "0362": ["LO", "RangeShifterSetting"], + "0364": ["FL", "IsocenterToRangeShifterDistance"], + "0366": ["FL", "RangeShifterWaterEquivalentThickness"], + "0370": ["SQ", "LateralSpreadingDeviceSettingsSequence"], + "0372": ["LO", "LateralSpreadingDeviceSetting"], + "0374": ["FL", "IsocenterToLateralSpreadingDeviceDistance"], + "0380": ["SQ", "RangeModulatorSettingsSequence"], + "0382": ["FL", "RangeModulatorGatingStartValue"], + "0384": ["FL", "RangeModulatorGatingStopValue"], + "0386": ["FL", "RangeModulatorGatingStartWaterEquivalentThickness"], + "0388": ["FL", "RangeModulatorGatingStopWaterEquivalentThickness"], + "038A": ["FL", "IsocenterToRangeModulatorDistance"], + "0390": ["SH", "ScanSpotTuneID"], + "0392": ["IS", "NumberOfScanSpotPositions"], + "0394": ["FL", "ScanSpotPositionMap"], + "0396": ["FL", "ScanSpotMetersetWeights"], + "0398": ["FL", "ScanningSpotSize"], + "039A": ["IS", "NumberOfPaintings"], + "03A0": ["SQ", "IonToleranceTableSequence"], + "03A2": ["SQ", "IonBeamSequence"], + "03A4": ["SQ", "IonBeamLimitingDeviceSequence"], + "03A6": ["SQ", "IonBlockSequence"], + "03A8": ["SQ", "IonControlPointSequence"], + "03AA": ["SQ", "IonWedgeSequence"], + "03AC": ["SQ", "IonWedgePositionSequence"], + "0401": ["SQ", "ReferencedSetupImageSequence"], + "0402": ["ST", "SetupImageComment"], + "0410": ["SQ", "MotionSynchronizationSequence"], + "0412": ["FL", "ControlPointOrientation"], + "0420": ["SQ", "GeneralAccessorySequence"], + "0421": ["SH", "GeneralAccessoryID"], + "0422": ["ST", "GeneralAccessoryDescription"], + "0423": ["CS", "GeneralAccessoryType"], + "0424": ["IS", "GeneralAccessoryNumber"], + "0431": ["SQ", "ApplicatorGeometrySequence"], + "0432": ["CS", "ApplicatorApertureShape"], + "0433": ["FL", "ApplicatorOpening"], + "0434": ["FL", "ApplicatorOpeningX"], + "0435": ["FL", "ApplicatorOpeningY"], + "0436": ["FL", "SourceToApplicatorMountingPositionDistance"] + }, + "300C": { + "0002": ["SQ", "ReferencedRTPlanSequence"], + "0004": ["SQ", "ReferencedBeamSequence"], + "0006": ["IS", "ReferencedBeamNumber"], + "0007": ["IS", "ReferencedReferenceImageNumber"], + "0008": ["DS", "StartCumulativeMetersetWeight"], + "0009": ["DS", "EndCumulativeMetersetWeight"], + "000A": ["SQ", "ReferencedBrachyApplicationSetupSequence"], + "000C": ["IS", "ReferencedBrachyApplicationSetupNumber"], + "000E": ["IS", "ReferencedSourceNumber"], + "0020": ["SQ", "ReferencedFractionGroupSequence"], + "0022": ["IS", "ReferencedFractionGroupNumber"], + "0040": ["SQ", "ReferencedVerificationImageSequence"], + "0042": ["SQ", "ReferencedReferenceImageSequence"], + "0050": ["SQ", "ReferencedDoseReferenceSequence"], + "0051": ["IS", "ReferencedDoseReferenceNumber"], + "0055": ["SQ", "BrachyReferencedDoseReferenceSequence"], + "0060": ["SQ", "ReferencedStructureSetSequence"], + "006A": ["IS", "ReferencedPatientSetupNumber"], + "0080": ["SQ", "ReferencedDoseSequence"], + "00A0": ["IS", "ReferencedToleranceTableNumber"], + "00B0": ["SQ", "ReferencedBolusSequence"], + "00C0": ["IS", "ReferencedWedgeNumber"], + "00D0": ["IS", "ReferencedCompensatorNumber"], + "00E0": ["IS", "ReferencedBlockNumber"], + "00F0": ["IS", "ReferencedControlPointIndex"], + "00F2": ["SQ", "ReferencedControlPointSequence"], + "00F4": ["IS", "ReferencedStartControlPointIndex"], + "00F6": ["IS", "ReferencedStopControlPointIndex"], + "0100": ["IS", "ReferencedRangeShifterNumber"], + "0102": ["IS", "ReferencedLateralSpreadingDeviceNumber"], + "0104": ["IS", "ReferencedRangeModulatorNumber"] + }, + "300E": { + "0002": ["CS", "ApprovalStatus"], + "0004": ["DA", "ReviewDate"], + "0005": ["TM", "ReviewTime"], + "0008": ["PN", "ReviewerName"] + }, + "4000": { + "0010": ["LT", "Arbitrary"], + "4000": ["LT", "TextComments"] + }, + "4008": { + "0040": ["SH", "ResultsID"], + "0042": ["LO", "ResultsIDIssuer"], + "0050": ["SQ", "ReferencedInterpretationSequence"], + "00FF": ["CS", "ReportProductionStatusTrial"], + "0100": ["DA", "InterpretationRecordedDate"], + "0101": ["TM", "InterpretationRecordedTime"], + "0102": ["PN", "InterpretationRecorder"], + "0103": ["LO", "ReferenceToRecordedSound"], + "0108": ["DA", "InterpretationTranscriptionDate"], + "0109": ["TM", "InterpretationTranscriptionTime"], + "010A": ["PN", "InterpretationTranscriber"], + "010B": ["ST", "InterpretationText"], + "010C": ["PN", "InterpretationAuthor"], + "0111": ["SQ", "InterpretationApproverSequence"], + "0112": ["DA", "InterpretationApprovalDate"], + "0113": ["TM", "InterpretationApprovalTime"], + "0114": ["PN", "PhysicianApprovingInterpretation"], + "0115": ["LT", "InterpretationDiagnosisDescription"], + "0117": ["SQ", "InterpretationDiagnosisCodeSequence"], + "0118": ["SQ", "ResultsDistributionListSequence"], + "0119": ["PN", "DistributionName"], + "011A": ["LO", "DistributionAddress"], + "0200": ["SH", "InterpretationID"], + "0202": ["LO", "InterpretationIDIssuer"], + "0210": ["CS", "InterpretationTypeID"], + "0212": ["CS", "InterpretationStatusID"], + "0300": ["ST", "Impressions"], + "4000": ["ST", "ResultsComments"] + }, + "4010": { + "0001": ["CS", "LowEnergyDetectors"], + "0002": ["CS", "HighEnergyDetectors"], + "0004": ["SQ", "DetectorGeometrySequence"], + "1001": ["SQ", "ThreatROIVoxelSequence"], + "1004": ["FL", "ThreatROIBase"], + "1005": ["FL", "ThreatROIExtents"], + "1006": ["OB", "ThreatROIBitmap"], + "1007": ["SH", "RouteSegmentID"], + "1008": ["CS", "GantryType"], + "1009": ["CS", "OOIOwnerType"], + "100A": ["SQ", "RouteSegmentSequence"], + "1010": ["US", "PotentialThreatObjectID"], + "1011": ["SQ", "ThreatSequence"], + "1012": ["CS", "ThreatCategory"], + "1013": ["LT", "ThreatCategoryDescription"], + "1014": ["CS", "ATDAbilityAssessment"], + "1015": ["CS", "ATDAssessmentFlag"], + "1016": ["FL", "ATDAssessmentProbability"], + "1017": ["FL", "Mass"], + "1018": ["FL", "Density"], + "1019": ["FL", "ZEffective"], + "101A": ["SH", "BoardingPassID"], + "101B": ["FL", "CenterOfMass"], + "101C": ["FL", "CenterOfPTO"], + "101D": ["FL", "BoundingPolygon"], + "101E": ["SH", "RouteSegmentStartLocationID"], + "101F": ["SH", "RouteSegmentEndLocationID"], + "1020": ["CS", "RouteSegmentLocationIDType"], + "1021": ["CS", "AbortReason"], + "1023": ["FL", "VolumeOfPTO"], + "1024": ["CS", "AbortFlag"], + "1025": ["DT", "RouteSegmentStartTime"], + "1026": ["DT", "RouteSegmentEndTime"], + "1027": ["CS", "TDRType"], + "1028": ["CS", "InternationalRouteSegment"], + "1029": ["LO", "ThreatDetectionAlgorithmandVersion"], + "102A": ["SH", "AssignedLocation"], + "102B": ["DT", "AlarmDecisionTime"], + "1031": ["CS", "AlarmDecision"], + "1033": ["US", "NumberOfTotalObjects"], + "1034": ["US", "NumberOfAlarmObjects"], + "1037": ["SQ", "PTORepresentationSequence"], + "1038": ["SQ", "ATDAssessmentSequence"], + "1039": ["CS", "TIPType"], + "103A": ["CS", "DICOSVersion"], + "1041": ["DT", "OOIOwnerCreationTime"], + "1042": ["CS", "OOIType"], + "1043": ["FL", "OOISize"], + "1044": ["CS", "AcquisitionStatus"], + "1045": ["SQ", "BasisMaterialsCodeSequence"], + "1046": ["CS", "PhantomType"], + "1047": ["SQ", "OOIOwnerSequence"], + "1048": ["CS", "ScanType"], + "1051": ["LO", "ItineraryID"], + "1052": ["SH", "ItineraryIDType"], + "1053": ["LO", "ItineraryIDAssigningAuthority"], + "1054": ["SH", "RouteID"], + "1055": ["SH", "RouteIDAssigningAuthority"], + "1056": ["CS", "InboundArrivalType"], + "1058": ["SH", "CarrierID"], + "1059": ["CS", "CarrierIDAssigningAuthority"], + "1060": ["FL", "SourceOrientation"], + "1061": ["FL", "SourcePosition"], + "1062": ["FL", "BeltHeight"], + "1064": ["SQ", "AlgorithmRoutingCodeSequence"], + "1067": ["CS", "TransportClassification"], + "1068": ["LT", "OOITypeDescriptor"], + "1069": ["FL", "TotalProcessingTime"], + "106C": ["OB", "DetectorCalibrationData"] + } + }; + daikon2.Dictionary.getVR = function(group, element) { + var vr, elementData, groupData; + groupData = daikon2.Dictionary.dict[daikon2.Utils.dec2hex(group)]; + if (groupData) { + elementData = groupData[daikon2.Utils.dec2hex(element)]; + if (elementData) { + vr = elementData[0]; + } else if (element === 0) { + vr = "UL"; + } + } + if (!vr) { + groupData = daikon2.Dictionary.dictPrivate[daikon2.Utils.dec2hex(group)]; + if (groupData) { + elementData = groupData[daikon2.Utils.dec2hex(element)]; + if (elementData) { + vr = elementData[0]; + } + } + } + if (!vr) { + vr = "OB"; + } + return vr; + }; + daikon2.Dictionary.getDescription = function(group, element) { + var des, elementData, groupData; + groupData = daikon2.Dictionary.dict[daikon2.Utils.dec2hex(group)]; + if (groupData) { + elementData = groupData[daikon2.Utils.dec2hex(element)]; + if (elementData) { + des = elementData[1]; + } else if (element === 0) { + des = "Group " + daikon2.Utils.dec2hex(group) + " Length"; + } + } + if (!des) { + groupData = daikon2.Dictionary.dictPrivate[daikon2.Utils.dec2hex(group)]; + if (groupData) { + elementData = groupData[daikon2.Utils.dec2hex(element)]; + if (elementData) { + des = elementData[1]; + } + } + } + if (!des) { + des = "PrivateData"; + } + return des; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Dictionary; + } + } +}); - // stage 2 - t = (v0 - v3 + 1) >> 1; - v0 = (v0 + v3 + 1) >> 1; - v3 = t; - t = (v1 - v2 + 1) >> 1; - v1 = (v1 + v2 + 1) >> 1; - v2 = t; - t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; - v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; - v7 = t; - t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; - v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; - v6 = t; +// node_modules/cssfilter/lib/default.js +var require_default = __commonJS({ + "node_modules/cssfilter/lib/default.js"(exports2) { + function getDefaultWhiteList() { + var whiteList = {}; + whiteList["align-content"] = false; + whiteList["align-items"] = false; + whiteList["align-self"] = false; + whiteList["alignment-adjust"] = false; + whiteList["alignment-baseline"] = false; + whiteList["all"] = false; + whiteList["anchor-point"] = false; + whiteList["animation"] = false; + whiteList["animation-delay"] = false; + whiteList["animation-direction"] = false; + whiteList["animation-duration"] = false; + whiteList["animation-fill-mode"] = false; + whiteList["animation-iteration-count"] = false; + whiteList["animation-name"] = false; + whiteList["animation-play-state"] = false; + whiteList["animation-timing-function"] = false; + whiteList["azimuth"] = false; + whiteList["backface-visibility"] = false; + whiteList["background"] = true; + whiteList["background-attachment"] = true; + whiteList["background-clip"] = true; + whiteList["background-color"] = true; + whiteList["background-image"] = true; + whiteList["background-origin"] = true; + whiteList["background-position"] = true; + whiteList["background-repeat"] = true; + whiteList["background-size"] = true; + whiteList["baseline-shift"] = false; + whiteList["binding"] = false; + whiteList["bleed"] = false; + whiteList["bookmark-label"] = false; + whiteList["bookmark-level"] = false; + whiteList["bookmark-state"] = false; + whiteList["border"] = true; + whiteList["border-bottom"] = true; + whiteList["border-bottom-color"] = true; + whiteList["border-bottom-left-radius"] = true; + whiteList["border-bottom-right-radius"] = true; + whiteList["border-bottom-style"] = true; + whiteList["border-bottom-width"] = true; + whiteList["border-collapse"] = true; + whiteList["border-color"] = true; + whiteList["border-image"] = true; + whiteList["border-image-outset"] = true; + whiteList["border-image-repeat"] = true; + whiteList["border-image-slice"] = true; + whiteList["border-image-source"] = true; + whiteList["border-image-width"] = true; + whiteList["border-left"] = true; + whiteList["border-left-color"] = true; + whiteList["border-left-style"] = true; + whiteList["border-left-width"] = true; + whiteList["border-radius"] = true; + whiteList["border-right"] = true; + whiteList["border-right-color"] = true; + whiteList["border-right-style"] = true; + whiteList["border-right-width"] = true; + whiteList["border-spacing"] = true; + whiteList["border-style"] = true; + whiteList["border-top"] = true; + whiteList["border-top-color"] = true; + whiteList["border-top-left-radius"] = true; + whiteList["border-top-right-radius"] = true; + whiteList["border-top-style"] = true; + whiteList["border-top-width"] = true; + whiteList["border-width"] = true; + whiteList["bottom"] = false; + whiteList["box-decoration-break"] = true; + whiteList["box-shadow"] = true; + whiteList["box-sizing"] = true; + whiteList["box-snap"] = true; + whiteList["box-suppress"] = true; + whiteList["break-after"] = true; + whiteList["break-before"] = true; + whiteList["break-inside"] = true; + whiteList["caption-side"] = false; + whiteList["chains"] = false; + whiteList["clear"] = true; + whiteList["clip"] = false; + whiteList["clip-path"] = false; + whiteList["clip-rule"] = false; + whiteList["color"] = true; + whiteList["color-interpolation-filters"] = true; + whiteList["column-count"] = false; + whiteList["column-fill"] = false; + whiteList["column-gap"] = false; + whiteList["column-rule"] = false; + whiteList["column-rule-color"] = false; + whiteList["column-rule-style"] = false; + whiteList["column-rule-width"] = false; + whiteList["column-span"] = false; + whiteList["column-width"] = false; + whiteList["columns"] = false; + whiteList["contain"] = false; + whiteList["content"] = false; + whiteList["counter-increment"] = false; + whiteList["counter-reset"] = false; + whiteList["counter-set"] = false; + whiteList["crop"] = false; + whiteList["cue"] = false; + whiteList["cue-after"] = false; + whiteList["cue-before"] = false; + whiteList["cursor"] = false; + whiteList["direction"] = false; + whiteList["display"] = true; + whiteList["display-inside"] = true; + whiteList["display-list"] = true; + whiteList["display-outside"] = true; + whiteList["dominant-baseline"] = false; + whiteList["elevation"] = false; + whiteList["empty-cells"] = false; + whiteList["filter"] = false; + whiteList["flex"] = false; + whiteList["flex-basis"] = false; + whiteList["flex-direction"] = false; + whiteList["flex-flow"] = false; + whiteList["flex-grow"] = false; + whiteList["flex-shrink"] = false; + whiteList["flex-wrap"] = false; + whiteList["float"] = false; + whiteList["float-offset"] = false; + whiteList["flood-color"] = false; + whiteList["flood-opacity"] = false; + whiteList["flow-from"] = false; + whiteList["flow-into"] = false; + whiteList["font"] = true; + whiteList["font-family"] = true; + whiteList["font-feature-settings"] = true; + whiteList["font-kerning"] = true; + whiteList["font-language-override"] = true; + whiteList["font-size"] = true; + whiteList["font-size-adjust"] = true; + whiteList["font-stretch"] = true; + whiteList["font-style"] = true; + whiteList["font-synthesis"] = true; + whiteList["font-variant"] = true; + whiteList["font-variant-alternates"] = true; + whiteList["font-variant-caps"] = true; + whiteList["font-variant-east-asian"] = true; + whiteList["font-variant-ligatures"] = true; + whiteList["font-variant-numeric"] = true; + whiteList["font-variant-position"] = true; + whiteList["font-weight"] = true; + whiteList["grid"] = false; + whiteList["grid-area"] = false; + whiteList["grid-auto-columns"] = false; + whiteList["grid-auto-flow"] = false; + whiteList["grid-auto-rows"] = false; + whiteList["grid-column"] = false; + whiteList["grid-column-end"] = false; + whiteList["grid-column-start"] = false; + whiteList["grid-row"] = false; + whiteList["grid-row-end"] = false; + whiteList["grid-row-start"] = false; + whiteList["grid-template"] = false; + whiteList["grid-template-areas"] = false; + whiteList["grid-template-columns"] = false; + whiteList["grid-template-rows"] = false; + whiteList["hanging-punctuation"] = false; + whiteList["height"] = true; + whiteList["hyphens"] = false; + whiteList["icon"] = false; + whiteList["image-orientation"] = false; + whiteList["image-resolution"] = false; + whiteList["ime-mode"] = false; + whiteList["initial-letters"] = false; + whiteList["inline-box-align"] = false; + whiteList["justify-content"] = false; + whiteList["justify-items"] = false; + whiteList["justify-self"] = false; + whiteList["left"] = false; + whiteList["letter-spacing"] = true; + whiteList["lighting-color"] = true; + whiteList["line-box-contain"] = false; + whiteList["line-break"] = false; + whiteList["line-grid"] = false; + whiteList["line-height"] = false; + whiteList["line-snap"] = false; + whiteList["line-stacking"] = false; + whiteList["line-stacking-ruby"] = false; + whiteList["line-stacking-shift"] = false; + whiteList["line-stacking-strategy"] = false; + whiteList["list-style"] = true; + whiteList["list-style-image"] = true; + whiteList["list-style-position"] = true; + whiteList["list-style-type"] = true; + whiteList["margin"] = true; + whiteList["margin-bottom"] = true; + whiteList["margin-left"] = true; + whiteList["margin-right"] = true; + whiteList["margin-top"] = true; + whiteList["marker-offset"] = false; + whiteList["marker-side"] = false; + whiteList["marks"] = false; + whiteList["mask"] = false; + whiteList["mask-box"] = false; + whiteList["mask-box-outset"] = false; + whiteList["mask-box-repeat"] = false; + whiteList["mask-box-slice"] = false; + whiteList["mask-box-source"] = false; + whiteList["mask-box-width"] = false; + whiteList["mask-clip"] = false; + whiteList["mask-image"] = false; + whiteList["mask-origin"] = false; + whiteList["mask-position"] = false; + whiteList["mask-repeat"] = false; + whiteList["mask-size"] = false; + whiteList["mask-source-type"] = false; + whiteList["mask-type"] = false; + whiteList["max-height"] = true; + whiteList["max-lines"] = false; + whiteList["max-width"] = true; + whiteList["min-height"] = true; + whiteList["min-width"] = true; + whiteList["move-to"] = false; + whiteList["nav-down"] = false; + whiteList["nav-index"] = false; + whiteList["nav-left"] = false; + whiteList["nav-right"] = false; + whiteList["nav-up"] = false; + whiteList["object-fit"] = false; + whiteList["object-position"] = false; + whiteList["opacity"] = false; + whiteList["order"] = false; + whiteList["orphans"] = false; + whiteList["outline"] = false; + whiteList["outline-color"] = false; + whiteList["outline-offset"] = false; + whiteList["outline-style"] = false; + whiteList["outline-width"] = false; + whiteList["overflow"] = false; + whiteList["overflow-wrap"] = false; + whiteList["overflow-x"] = false; + whiteList["overflow-y"] = false; + whiteList["padding"] = true; + whiteList["padding-bottom"] = true; + whiteList["padding-left"] = true; + whiteList["padding-right"] = true; + whiteList["padding-top"] = true; + whiteList["page"] = false; + whiteList["page-break-after"] = false; + whiteList["page-break-before"] = false; + whiteList["page-break-inside"] = false; + whiteList["page-policy"] = false; + whiteList["pause"] = false; + whiteList["pause-after"] = false; + whiteList["pause-before"] = false; + whiteList["perspective"] = false; + whiteList["perspective-origin"] = false; + whiteList["pitch"] = false; + whiteList["pitch-range"] = false; + whiteList["play-during"] = false; + whiteList["position"] = false; + whiteList["presentation-level"] = false; + whiteList["quotes"] = false; + whiteList["region-fragment"] = false; + whiteList["resize"] = false; + whiteList["rest"] = false; + whiteList["rest-after"] = false; + whiteList["rest-before"] = false; + whiteList["richness"] = false; + whiteList["right"] = false; + whiteList["rotation"] = false; + whiteList["rotation-point"] = false; + whiteList["ruby-align"] = false; + whiteList["ruby-merge"] = false; + whiteList["ruby-position"] = false; + whiteList["shape-image-threshold"] = false; + whiteList["shape-outside"] = false; + whiteList["shape-margin"] = false; + whiteList["size"] = false; + whiteList["speak"] = false; + whiteList["speak-as"] = false; + whiteList["speak-header"] = false; + whiteList["speak-numeral"] = false; + whiteList["speak-punctuation"] = false; + whiteList["speech-rate"] = false; + whiteList["stress"] = false; + whiteList["string-set"] = false; + whiteList["tab-size"] = false; + whiteList["table-layout"] = false; + whiteList["text-align"] = true; + whiteList["text-align-last"] = true; + whiteList["text-combine-upright"] = true; + whiteList["text-decoration"] = true; + whiteList["text-decoration-color"] = true; + whiteList["text-decoration-line"] = true; + whiteList["text-decoration-skip"] = true; + whiteList["text-decoration-style"] = true; + whiteList["text-emphasis"] = true; + whiteList["text-emphasis-color"] = true; + whiteList["text-emphasis-position"] = true; + whiteList["text-emphasis-style"] = true; + whiteList["text-height"] = true; + whiteList["text-indent"] = true; + whiteList["text-justify"] = true; + whiteList["text-orientation"] = true; + whiteList["text-overflow"] = true; + whiteList["text-shadow"] = true; + whiteList["text-space-collapse"] = true; + whiteList["text-transform"] = true; + whiteList["text-underline-position"] = true; + whiteList["text-wrap"] = true; + whiteList["top"] = false; + whiteList["transform"] = false; + whiteList["transform-origin"] = false; + whiteList["transform-style"] = false; + whiteList["transition"] = false; + whiteList["transition-delay"] = false; + whiteList["transition-duration"] = false; + whiteList["transition-property"] = false; + whiteList["transition-timing-function"] = false; + whiteList["unicode-bidi"] = false; + whiteList["vertical-align"] = false; + whiteList["visibility"] = false; + whiteList["voice-balance"] = false; + whiteList["voice-duration"] = false; + whiteList["voice-family"] = false; + whiteList["voice-pitch"] = false; + whiteList["voice-range"] = false; + whiteList["voice-rate"] = false; + whiteList["voice-stress"] = false; + whiteList["voice-volume"] = false; + whiteList["volume"] = false; + whiteList["white-space"] = false; + whiteList["widows"] = false; + whiteList["width"] = true; + whiteList["will-change"] = false; + whiteList["word-break"] = true; + whiteList["word-spacing"] = true; + whiteList["word-wrap"] = true; + whiteList["wrap-flow"] = false; + whiteList["wrap-through"] = false; + whiteList["writing-mode"] = false; + whiteList["z-index"] = false; + return whiteList; + } + function onAttr(name, value, options) { + } + function onIgnoreAttr(name, value, options) { + } + var REGEXP_URL_JAVASCRIPT = /javascript\s*\:/img; + function safeAttrValue(name, value) { + if (REGEXP_URL_JAVASCRIPT.test(value)) + return ""; + return value; + } + exports2.whiteList = getDefaultWhiteList(); + exports2.getDefaultWhiteList = getDefaultWhiteList; + exports2.onAttr = onAttr; + exports2.onIgnoreAttr = onIgnoreAttr; + exports2.safeAttrValue = safeAttrValue; + } +}); - // stage 1 - p[0 + row] = v0 + v7; - p[7 + row] = v0 - v7; - p[1 + row] = v1 + v6; - p[6 + row] = v1 - v6; - p[2 + row] = v2 + v5; - p[5 + row] = v2 - v5; - p[3 + row] = v3 + v4; - p[4 + row] = v3 - v4; +// node_modules/cssfilter/lib/util.js +var require_util = __commonJS({ + "node_modules/cssfilter/lib/util.js"(exports2, module2) { + module2.exports = { + indexOf: function(arr, item) { + var i2, j; + if (Array.prototype.indexOf) { + return arr.indexOf(item); } + for (i2 = 0, j = arr.length; i2 < j; i2++) { + if (arr[i2] === item) { + return i2; + } + } + return -1; + }, + forEach: function(arr, fn, scope) { + var i2, j; + if (Array.prototype.forEach) { + return arr.forEach(fn, scope); + } + for (i2 = 0, j = arr.length; i2 < j; i2++) { + fn.call(scope, arr[i2], i2, arr); + } + }, + trim: function(str) { + if (String.prototype.trim) { + return str.trim(); + } + return str.replace(/(^\s*)|(\s*$)/g, ""); + }, + trimRight: function(str) { + if (String.prototype.trimRight) { + return str.trimRight(); + } + return str.replace(/(\s*$)/g, ""); + } + }; + } +}); - // inverse DCT on columns - for (i = 0; i < 8; ++i) { - var col = i; - - // check for all-zero AC coefficients - if (p[1 * 8 + col] === 0 && p[2 * 8 + col] === 0 && p[3 * 8 + col] === 0 && - p[4 * 8 + col] === 0 && p[5 * 8 + col] === 0 && p[6 * 8 + col] === 0 && - p[7 * 8 + col] === 0) { - t = (dctSqrt2 * p[i + 0] + 8192) >> 14; - p[0 * 8 + col] = t; - p[1 * 8 + col] = t; - p[2 * 8 + col] = t; - p[3 * 8 + col] = t; - p[4 * 8 + col] = t; - p[5 * 8 + col] = t; - p[6 * 8 + col] = t; - p[7 * 8 + col] = t; - continue; +// node_modules/cssfilter/lib/parser.js +var require_parser = __commonJS({ + "node_modules/cssfilter/lib/parser.js"(exports2, module2) { + var _ = require_util(); + function parseStyle(css, onAttr) { + css = _.trimRight(css); + if (css[css.length - 1] !== ";") + css += ";"; + var cssLength = css.length; + var isParenthesisOpen = false; + var lastPos = 0; + var i2 = 0; + var retCSS = ""; + function addNewAttr() { + if (!isParenthesisOpen) { + var source = _.trim(css.slice(lastPos, i2)); + var j2 = source.indexOf(":"); + if (j2 !== -1) { + var name = _.trim(source.slice(0, j2)); + var value = _.trim(source.slice(j2 + 1)); + if (name) { + var ret = onAttr(lastPos, retCSS.length, name, value, source); + if (ret) + retCSS += ret + "; "; } - - // stage 4 - v0 = (dctSqrt2 * p[0 * 8 + col] + 2048) >> 12; - v1 = (dctSqrt2 * p[4 * 8 + col] + 2048) >> 12; - v2 = p[2 * 8 + col]; - v3 = p[6 * 8 + col]; - v4 = (dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048) >> 12; - v7 = (dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048) >> 12; - v5 = p[3 * 8 + col]; - v6 = p[5 * 8 + col]; - - // stage 3 - t = (v0 - v1 + 1) >> 1; - v0 = (v0 + v1 + 1) >> 1; - v1 = t; - t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12; - v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12; - v3 = t; - t = (v4 - v6 + 1) >> 1; - v4 = (v4 + v6 + 1) >> 1; - v6 = t; - t = (v7 + v5 + 1) >> 1; - v5 = (v7 - v5 + 1) >> 1; - v7 = t; - - // stage 2 - t = (v0 - v3 + 1) >> 1; - v0 = (v0 + v3 + 1) >> 1; - v3 = t; - t = (v1 - v2 + 1) >> 1; - v1 = (v1 + v2 + 1) >> 1; - v2 = t; - t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; - v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; - v7 = t; - t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; - v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; - v6 = t; - - // stage 1 - p[0 * 8 + col] = v0 + v7; - p[7 * 8 + col] = v0 - v7; - p[1 * 8 + col] = v1 + v6; - p[6 * 8 + col] = v1 - v6; - p[2 * 8 + col] = v2 + v5; - p[5 * 8 + col] = v2 - v5; - p[3 * 8 + col] = v3 + v4; - p[4 * 8 + col] = v3 - v4; + } } - - // convert to 8-bit integers - for (i = 0; i < 64; ++i) { - var index = blockBufferOffset + i; - var q = p[i]; - q = (q <= -2056 / component.bitConversion) ? 0 : - (q >= 2024 / component.bitConversion) ? 255 / component.bitConversion : - (q + 2056 / component.bitConversion) >> 4; - component.blockData[index] = q; + lastPos = i2 + 1; + } + for (; i2 < cssLength; i2++) { + var c = css[i2]; + if (c === "/" && css[i2 + 1] === "*") { + var j = css.indexOf("*/", i2 + 2); + if (j === -1) + break; + i2 = j + 1; + lastPos = i2 + 1; + isParenthesisOpen = false; + } else if (c === "(") { + isParenthesisOpen = true; + } else if (c === ")") { + isParenthesisOpen = false; + } else if (c === ";") { + if (isParenthesisOpen) { + } else { + addNewAttr(); + } + } else if (c === "\n") { + addNewAttr(); } + } + return _.trim(retCSS); } + module2.exports = parseStyle; + } +}); - function buildComponentData(frame, component) { - var lines = []; - var blocksPerLine = component.blocksPerLine; - var blocksPerColumn = component.blocksPerColumn; - var samplesPerLine = blocksPerLine << 3; - var computationBuffer = new Int32Array(64); - - var i, j, ll = 0; - for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { - for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { - var offset = getBlockBufferOffset(component, blockRow, blockCol); - quantizeAndInverse(component, offset, computationBuffer); - } - } - return component.blockData; +// node_modules/cssfilter/lib/css.js +var require_css = __commonJS({ + "node_modules/cssfilter/lib/css.js"(exports2, module2) { + var DEFAULT = require_default(); + var parseStyle = require_parser(); + var _ = require_util(); + function isNull(obj) { + return obj === void 0 || obj === null; } + function shallowCopyObject(obj) { + var ret = {}; + for (var i2 in obj) { + ret[i2] = obj[i2]; + } + return ret; + } + function FilterCSS(options) { + options = shallowCopyObject(options || {}); + options.whiteList = options.whiteList || DEFAULT.whiteList; + options.onAttr = options.onAttr || DEFAULT.onAttr; + options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr; + options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue; + this.options = options; + } + FilterCSS.prototype.process = function(css) { + css = css || ""; + css = css.toString(); + if (!css) + return ""; + var me = this; + var options = me.options; + var whiteList = options.whiteList; + var onAttr = options.onAttr; + var onIgnoreAttr = options.onIgnoreAttr; + var safeAttrValue = options.safeAttrValue; + var retCSS = parseStyle(css, function(sourcePosition, position, name, value, source) { + var check = whiteList[name]; + var isWhite = false; + if (check === true) + isWhite = check; + else if (typeof check === "function") + isWhite = check(value); + else if (check instanceof RegExp) + isWhite = check.test(value); + if (isWhite !== true) + isWhite = false; + value = safeAttrValue(name, value); + if (!value) + return; + var opts = { + position, + sourcePosition, + source, + isWhite + }; + if (isWhite) { + var ret = onAttr(name, value, opts); + if (isNull(ret)) { + return name + ":" + value; + } else { + return ret; + } + } else { + var ret = onIgnoreAttr(name, value, opts); + if (!isNull(ret)) { + return ret; + } + } + }); + return retCSS; + }; + module2.exports = FilterCSS; + } +}); - function clampToUint8(a) { - return a <= 0 ? 0 : a >= 255 ? 255 : a | 0; +// node_modules/cssfilter/lib/index.js +var require_lib = __commonJS({ + "node_modules/cssfilter/lib/index.js"(exports2, module2) { + var DEFAULT = require_default(); + var FilterCSS = require_css(); + function filterCSS(html, options) { + var xss = new FilterCSS(options); + return xss.process(html); + } + exports2 = module2.exports = filterCSS; + exports2.FilterCSS = FilterCSS; + for (i2 in DEFAULT) + exports2[i2] = DEFAULT[i2]; + var i2; + if (typeof window !== "undefined") { + window.filterCSS = module2.exports; } + } +}); - constructor.prototype = { - load: function load(path) { - var handleData = (function (data) { - this.parse(data); - if (this.onload) - this.onload(); - }).bind(this); +// node_modules/xss/lib/util.js +var require_util2 = __commonJS({ + "node_modules/xss/lib/util.js"(exports2, module2) { + module2.exports = { + indexOf: function(arr, item) { + var i2, j; + if (Array.prototype.indexOf) { + return arr.indexOf(item); + } + for (i2 = 0, j = arr.length; i2 < j; i2++) { + if (arr[i2] === item) { + return i2; + } + } + return -1; + }, + forEach: function(arr, fn, scope) { + var i2, j; + if (Array.prototype.forEach) { + return arr.forEach(fn, scope); + } + for (i2 = 0, j = arr.length; i2 < j; i2++) { + fn.call(scope, arr[i2], i2, arr); + } + }, + trim: function(str) { + if (String.prototype.trim) { + return str.trim(); + } + return str.replace(/(^\s*)|(\s*$)/g, ""); + }, + spaceIndex: function(str) { + var reg = /\s|\n|\t/; + var match = reg.exec(str); + return match ? match.index : -1; + } + }; + } +}); - if (path.indexOf("data:") > -1) { - var offset = path.indexOf("base64,") + 7; - var data = atob(path.substring(offset)); - var arr = new Uint8Array(data.length); - for (var i = data.length - 1; i >= 0; i--) { - arr[i] = data.charCodeAt(i); - } - handleData(data); +// node_modules/xss/lib/default.js +var require_default2 = __commonJS({ + "node_modules/xss/lib/default.js"(exports2) { + var FilterCSS = require_lib().FilterCSS; + var getDefaultCSSWhiteList = require_lib().getDefaultWhiteList; + var _ = require_util2(); + function getDefaultWhiteList() { + return { + a: ["target", "href", "title"], + abbr: ["title"], + address: [], + area: ["shape", "coords", "href", "alt"], + article: [], + aside: [], + audio: [ + "autoplay", + "controls", + "crossorigin", + "loop", + "muted", + "preload", + "src" + ], + b: [], + bdi: ["dir"], + bdo: ["dir"], + big: [], + blockquote: ["cite"], + br: [], + caption: [], + center: [], + cite: [], + code: [], + col: ["align", "valign", "span", "width"], + colgroup: ["align", "valign", "span", "width"], + dd: [], + del: ["datetime"], + details: ["open"], + div: [], + dl: [], + dt: [], + em: [], + figcaption: [], + figure: [], + font: ["color", "size", "face"], + footer: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + header: [], + hr: [], + i: [], + img: ["src", "alt", "title", "width", "height"], + ins: ["datetime"], + li: [], + mark: [], + nav: [], + ol: [], + p: [], + pre: [], + s: [], + section: [], + small: [], + span: [], + sub: [], + summary: [], + sup: [], + strong: [], + strike: [], + table: ["width", "border", "align", "valign"], + tbody: ["align", "valign"], + td: ["width", "rowspan", "colspan", "align", "valign"], + tfoot: ["align", "valign"], + th: ["width", "rowspan", "colspan", "align", "valign"], + thead: ["align", "valign"], + tr: ["rowspan", "align", "valign"], + tt: [], + u: [], + ul: [], + video: [ + "autoplay", + "controls", + "crossorigin", + "loop", + "muted", + "playsinline", + "poster", + "preload", + "src", + "height", + "width" + ] + }; + } + var defaultCSSFilter = new FilterCSS(); + function onTag(tag, html, options) { + } + function onIgnoreTag(tag, html, options) { + } + function onTagAttr(tag, name, value) { + } + function onIgnoreTagAttr(tag, name, value) { + } + function escapeHtml(html) { + return html.replace(REGEXP_LT, "<").replace(REGEXP_GT, ">"); + } + function safeAttrValue(tag, name, value, cssFilter) { + value = friendlyAttrValue(value); + if (name === "href" || name === "src") { + value = _.trim(value); + if (value === "#") + return "#"; + if (!(value.substr(0, 7) === "http://" || value.substr(0, 8) === "https://" || value.substr(0, 7) === "mailto:" || value.substr(0, 4) === "tel:" || value.substr(0, 11) === "data:image/" || value.substr(0, 6) === "ftp://" || value.substr(0, 2) === "./" || value.substr(0, 3) === "../" || value[0] === "#" || value[0] === "/")) { + return ""; + } + } else if (name === "background") { + REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0; + if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) { + return ""; + } + } else if (name === "style") { + REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0; + if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) { + return ""; + } + REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0; + if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) { + REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0; + if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) { + return ""; + } + } + if (cssFilter !== false) { + cssFilter = cssFilter || defaultCSSFilter; + value = cssFilter.process(value); + } + } + value = escapeAttrValue(value); + return value; + } + var REGEXP_LT = //g; + var REGEXP_QUOTE = /"/g; + var REGEXP_QUOTE_2 = /"/g; + var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim; + var REGEXP_ATTR_VALUE_COLON = /:?/gim; + var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim; + var REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi; + var REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi; + var REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\s*r\s*l\s*\(.*/gi; + function escapeQuote(str) { + return str.replace(REGEXP_QUOTE, """); + } + function unescapeQuote(str) { + return str.replace(REGEXP_QUOTE_2, '"'); + } + function escapeHtmlEntities(str) { + return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str2, code) { + return code[0] === "x" || code[0] === "X" ? String.fromCharCode(parseInt(code.substr(1), 16)) : String.fromCharCode(parseInt(code, 10)); + }); + } + function escapeDangerHtml5Entities(str) { + return str.replace(REGEXP_ATTR_VALUE_COLON, ":").replace(REGEXP_ATTR_VALUE_NEWLINE, " "); + } + function clearNonPrintableCharacter(str) { + var str2 = ""; + for (var i2 = 0, len = str.length; i2 < len; i2++) { + str2 += str.charCodeAt(i2) < 32 ? " " : str.charAt(i2); + } + return _.trim(str2); + } + function friendlyAttrValue(str) { + str = unescapeQuote(str); + str = escapeHtmlEntities(str); + str = escapeDangerHtml5Entities(str); + str = clearNonPrintableCharacter(str); + return str; + } + function escapeAttrValue(str) { + str = escapeQuote(str); + str = escapeHtml(str); + return str; + } + function onIgnoreTagStripAll() { + return ""; + } + function StripTagBody(tags, next) { + if (typeof next !== "function") { + next = function() { + }; + } + var isRemoveAllTag = !Array.isArray(tags); + function isRemoveTag(tag) { + if (isRemoveAllTag) + return true; + return _.indexOf(tags, tag) !== -1; + } + var removeList = []; + var posStart = false; + return { + onIgnoreTag: function(tag, html, options) { + if (isRemoveTag(tag)) { + if (options.isClosing) { + var ret = "[/removed]"; + var end = options.position + ret.length; + removeList.push([ + posStart !== false ? posStart : options.position, + end + ]); + posStart = false; + return ret; } else { - var xhr = new XMLHttpRequest(); - xhr.open("GET", path, true); - xhr.responseType = "arraybuffer"; - xhr.onload = (function () { - // TODO catch parse error - var data = new Uint8Array(xhr.response); - handleData(data); - }).bind(this); - xhr.send(null); + if (!posStart) { + posStart = options.position; + } + return "[removed]"; } + } else { + return next(tag, html, options); + } }, - parse: function parse(data) { - - function readUint16() { - var value = (data[offset] << 8) | data[offset + 1]; - offset += 2; - return value; - } + remove: function(html) { + var rethtml = ""; + var lastPos = 0; + _.forEach(removeList, function(pos) { + rethtml += html.slice(lastPos, pos[0]); + lastPos = pos[1]; + }); + rethtml += html.slice(lastPos); + return rethtml; + } + }; + } + function stripCommentTag(html) { + var retHtml = ""; + var lastPos = 0; + while (lastPos < html.length) { + var i2 = html.indexOf("", i2); + if (j === -1) { + break; + } + lastPos = j + 3; + } + return retHtml; + } + function stripBlankChar(html) { + var chars = html.split(""); + chars = chars.filter(function(char) { + var c = char.charCodeAt(0); + if (c === 127) + return false; + if (c <= 31) { + if (c === 10 || c === 13) + return true; + return false; + } + return true; + }); + return chars.join(""); + } + exports2.whiteList = getDefaultWhiteList(); + exports2.getDefaultWhiteList = getDefaultWhiteList; + exports2.onTag = onTag; + exports2.onIgnoreTag = onIgnoreTag; + exports2.onTagAttr = onTagAttr; + exports2.onIgnoreTagAttr = onIgnoreTagAttr; + exports2.safeAttrValue = safeAttrValue; + exports2.escapeHtml = escapeHtml; + exports2.escapeQuote = escapeQuote; + exports2.unescapeQuote = unescapeQuote; + exports2.escapeHtmlEntities = escapeHtmlEntities; + exports2.escapeDangerHtml5Entities = escapeDangerHtml5Entities; + exports2.clearNonPrintableCharacter = clearNonPrintableCharacter; + exports2.friendlyAttrValue = friendlyAttrValue; + exports2.escapeAttrValue = escapeAttrValue; + exports2.onIgnoreTagStripAll = onIgnoreTagStripAll; + exports2.StripTagBody = StripTagBody; + exports2.stripCommentTag = stripCommentTag; + exports2.stripBlankChar = stripBlankChar; + exports2.cssFilter = defaultCSSFilter; + exports2.getDefaultCSSWhiteList = getDefaultCSSWhiteList; + } +}); - function readDataBlock() { - var length = readUint16(); - var array = data.subarray(offset, offset + length - 2); - offset += array.length; - return array; +// node_modules/xss/lib/parser.js +var require_parser2 = __commonJS({ + "node_modules/xss/lib/parser.js"(exports2) { + var _ = require_util2(); + function getTagName(html) { + var i2 = _.spaceIndex(html); + var tagName; + if (i2 === -1) { + tagName = html.slice(1, -1); + } else { + tagName = html.slice(1, i2 + 1); + } + tagName = _.trim(tagName).toLowerCase(); + if (tagName.slice(0, 1) === "/") + tagName = tagName.slice(1); + if (tagName.slice(-1) === "/") + tagName = tagName.slice(0, -1); + return tagName; + } + function isClosing(html) { + return html.slice(0, 2) === "" || currentPos === len - 1) { + rethtml += escapeHtml(html.slice(lastPos, tagStart)); + currentHtml = html.slice(tagStart, currentPos + 1); + currentTagName = getTagName(currentHtml); + rethtml += onTag( + tagStart, + rethtml.length, + currentTagName, + currentHtml, + isClosing(currentHtml) + ); + lastPos = currentPos + 1; + tagStart = false; + continue; + } + if (c === '"' || c === "'") { + var i2 = 1; + var ic = html.charAt(currentPos - i2); + while (ic.trim() === "" || ic === "=") { + if (ic === "=") { + quoteStart = c; + continue chariterator; + } + ic = html.charAt(currentPos - ++i2); } - frame.mcusPerLine = mcusPerLine; - frame.mcusPerColumn = mcusPerColumn; - } - - var offset = 0, length = data.length; - var jfif = null; - var adobe = null; - var pixels = null; - var frame, resetInterval; - var quantizationTables = []; - var huffmanTablesAC = [], huffmanTablesDC = []; - var fileMarker = readUint16(); - if (fileMarker != 0xFFD8) { // SOI (Start of Image) - throw "SOI not found"; + } + } else { + if (c === quoteStart) { + quoteStart = false; + continue; + } } - - fileMarker = readUint16(); - while (fileMarker != 0xFFD9) { // EOI (End of image) - var i, j, l; - switch (fileMarker) { - case 0xFFE0: // APP0 (Application Specific) - case 0xFFE1: // APP1 - case 0xFFE2: // APP2 - case 0xFFE3: // APP3 - case 0xFFE4: // APP4 - case 0xFFE5: // APP5 - case 0xFFE6: // APP6 - case 0xFFE7: // APP7 - case 0xFFE8: // APP8 - case 0xFFE9: // APP9 - case 0xFFEA: // APP10 - case 0xFFEB: // APP11 - case 0xFFEC: // APP12 - case 0xFFED: // APP13 - case 0xFFEE: // APP14 - case 0xFFEF: // APP15 - case 0xFFFE: // COM (Comment) - var appData = readDataBlock(); - - if (fileMarker === 0xFFE0) { - if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 && - appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\x00' - jfif = { - version: {major: appData[5], minor: appData[6]}, - densityUnits: appData[7], - xDensity: (appData[8] << 8) | appData[9], - yDensity: (appData[10] << 8) | appData[11], - thumbWidth: appData[12], - thumbHeight: appData[13], - thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) - }; - } - } - // TODO APP1 - Exif - if (fileMarker === 0xFFEE) { - if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && - appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\x00' - adobe = { - version: appData[6], - flags0: (appData[7] << 8) | appData[8], - flags1: (appData[9] << 8) | appData[10], - transformCode: appData[11] - }; - } - } - break; - - case 0xFFDB: // DQT (Define Quantization Tables) - var quantizationTablesLength = readUint16(); - var quantizationTablesEnd = quantizationTablesLength + offset - 2; - while (offset < quantizationTablesEnd) { - var quantizationTableSpec = data[offset++]; - var tableData = new Int32Array(64); - if ((quantizationTableSpec >> 4) === 0) { // 8 bit values - for (j = 0; j < 64; j++) { - var z = dctZigZag[j]; - tableData[z] = data[offset++]; - } - } else if ((quantizationTableSpec >> 4) === 1) { //16 bit - for (j = 0; j < 64; j++) { - var zz = dctZigZag[j]; - tableData[zz] = readUint16(); - } - } else - throw "DQT: invalid table spec"; - quantizationTables[quantizationTableSpec & 15] = tableData; - } - break; - - case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT) - case 0xFFC1: // SOF1 (Start of Frame, Extended DCT) - case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT) - if (frame) { - throw "Only single frame JPEGs supported"; - } - readUint16(); // skip data length - frame = {}; - frame.extended = (fileMarker === 0xFFC1); - frame.progressive = (fileMarker === 0xFFC2); - frame.precision = data[offset++]; - frame.scanLines = readUint16(); - frame.samplesPerLine = readUint16(); - frame.components = []; - frame.componentIds = {}; - var componentsCount = data[offset++], componentId; - var maxH = 0, maxV = 0; - for (i = 0; i < componentsCount; i++) { - componentId = data[offset]; - var h = data[offset + 1] >> 4; - var v = data[offset + 1] & 15; - if (maxH < h) - maxH = h; - if (maxV < v) - maxV = v; - var qId = data[offset + 2]; - l = frame.components.push({ - h: h, - v: v, - quantizationTable: quantizationTables[qId], - quantizationTableId: qId, - bitConversion: 255 / ((1 << frame.precision) - 1) - }); - frame.componentIds[componentId] = l - 1; - offset += 3; - } - frame.maxH = maxH; - frame.maxV = maxV; - prepareComponents(frame); - break; - - case 0xFFC4: // DHT (Define Huffman Tables) - var huffmanLength = readUint16(); - for (i = 2; i < huffmanLength; ) { - var huffmanTableSpec = data[offset++]; - var codeLengths = new Uint8Array(16); - var codeLengthSum = 0; - for (j = 0; j < 16; j++, offset++) - codeLengthSum += (codeLengths[j] = data[offset]); - var huffmanValues = new Uint8Array(codeLengthSum); - for (j = 0; j < codeLengthSum; j++, offset++) - huffmanValues[j] = data[offset]; - i += 17 + codeLengthSum; - - ((huffmanTableSpec >> 4) === 0 ? - huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = - buildHuffmanTable(codeLengths, huffmanValues); - } - break; - - case 0xFFDD: // DRI (Define Restart Interval) - readUint16(); // skip data length - resetInterval = readUint16(); - break; - - case 0xFFDA: // SOS (Start of Scan) - var scanLength = readUint16(); - var selectorsCount = data[offset++]; - var components = [], component; - for (i = 0; i < selectorsCount; i++) { - var componentIndex = frame.componentIds[data[offset++]]; - component = frame.components[componentIndex]; - var tableSpec = data[offset++]; - component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; - component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; - components.push(component); - } - var spectralStart = data[offset++]; - var spectralEnd = data[offset++]; - var successiveApproximation = data[offset++]; - var processed = decodeScan(data, offset, - frame, components, resetInterval, - spectralStart, spectralEnd, - successiveApproximation >> 4, successiveApproximation & 15); - offset += processed; - break; - default: - if (data[offset - 3] == 0xFF && - data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) { - // could be incorrect encoding -- last 0xFF byte of the previous - // block was eaten by the encoder - offset -= 3; - break; - } - throw "unknown JPEG marker " + fileMarker.toString(16); - } - fileMarker = readUint16(); - } - - this.width = frame.samplesPerLine; - this.height = frame.scanLines; - this.jfif = jfif; - this.adobe = adobe; - this.components = []; - switch (frame.components.length) - { - case 1: - this.colorspace = ColorSpace.Grayscale; - break; - case 3: - if (this.adobe) - this.colorspace = ColorSpace.AdobeRGB; - else - this.colorspace = ColorSpace.RGB; - break; - case 4: - this.colorspace = ColorSpace.CYMK; - break; - default: - this.colorspace = ColorSpace.Unknown; - } - for (var i = 0; i < frame.components.length; i++) { - var component = frame.components[i]; - if (!component.quantizationTable && component.quantizationTableId !== null) - component.quantizationTable = quantizationTables[component.quantizationTableId]; - this.components.push({ - output: buildComponentData(frame, component), - scaleX: component.h / frame.maxH, - scaleY: component.v / frame.maxV, - blocksPerLine: component.blocksPerLine, - blocksPerColumn: component.blocksPerColumn, - bitConversion: component.bitConversion - }); - } - }, - getData16: function getData16(width, height) { - if (this.components.length !== 1) - throw 'Unsupported color mode'; - var scaleX = this.width / width, scaleY = this.height / height; - - var component, componentScaleX, componentScaleY; - var x, y, i; - var offset = 0; - var numComponents = this.components.length; - var dataLength = width * height * numComponents; - var data = new Uint16Array(dataLength); - var componentLine; - - // lineData is reused for all components. Assume first component is - // the biggest - var lineData = new Uint16Array((this.components[0].blocksPerLine << 3) * - this.components[0].blocksPerColumn * 8); - - // First construct image data ... - for (i = 0; i < numComponents; i++) { - component = this.components[i]; - var blocksPerLine = component.blocksPerLine; - var blocksPerColumn = component.blocksPerColumn; - var samplesPerLine = blocksPerLine << 3; - - var j, k, ll = 0; - var lineOffset = 0; - for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { - var scanLine = blockRow << 3; - for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { - var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); - var offset = 0, sample = blockCol << 3; - for (j = 0; j < 8; j++) { - var lineOffset = (scanLine + j) * samplesPerLine; - for (k = 0; k < 8; k++) { - lineData[lineOffset + sample + k] = - component.output[bufferOffset + offset++]; - } - } - } - } - - componentScaleX = component.scaleX * scaleX; - componentScaleY = component.scaleY * scaleY; - offset = i; - - var cx, cy; - var index; - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - cy = 0 | (y * componentScaleY); - cx = 0 | (x * componentScaleX); - index = cy * samplesPerLine + cx; - data[offset] = lineData[index]; - offset += numComponents; - } - } + } + } + if (lastPos < len) { + rethtml += escapeHtml(html.substr(lastPos)); + } + return rethtml; + } + var REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9\\_:.-]/gim; + function parseAttr(html, onAttr) { + "use strict"; + var lastPos = 0; + var lastMarkPos = 0; + var retAttrs = []; + var tmpName = false; + var len = html.length; + function addAttr(name, value) { + name = _.trim(name); + name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, "").toLowerCase(); + if (name.length < 1) + return; + var ret = onAttr(name, value || ""); + if (ret) + retAttrs.push(ret); + } + for (var i2 = 0; i2 < len; i2++) { + var c = html.charAt(i2); + var v, j; + if (tmpName === false && c === "=") { + tmpName = html.slice(lastPos, i2); + lastPos = i2 + 1; + lastMarkPos = html.charAt(lastPos) === '"' || html.charAt(lastPos) === "'" ? lastPos : findNextQuotationMark(html, i2 + 1); + continue; + } + if (tmpName !== false) { + if (i2 === lastMarkPos) { + j = html.indexOf(c, i2 + 1); + if (j === -1) { + break; + } else { + v = _.trim(html.slice(lastMarkPos + 1, j)); + addAttr(tmpName, v); + tmpName = false; + i2 = j; + lastPos = i2 + 1; + continue; } - return data; - }, - getData: function getData(width, height) { - var scaleX = this.width / width, scaleY = this.height / height; - - var component, componentScaleX, componentScaleY; - var x, y, i; - var offset = 0; - var Y, Cb, Cr, K, C, M, Ye, R, G, B; - var colorTransform; - var numComponents = this.components.length; - var dataLength = width * height * numComponents; - var data = new Uint8Array(dataLength); - var componentLine; - - // lineData is reused for all components. Assume first component is - // the biggest - var lineData = new Uint8Array((this.components[0].blocksPerLine << 3) * - this.components[0].blocksPerColumn * 8); - - // First construct image data ... - for (i = 0; i < numComponents; i++) { - component = this.components[i]; - var blocksPerLine = component.blocksPerLine; - var blocksPerColumn = component.blocksPerColumn; - var samplesPerLine = blocksPerLine << 3; - - var j, k, ll = 0; - var lineOffset = 0; - for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { - var scanLine = blockRow << 3; - for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { - var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); - var offset = 0, sample = blockCol << 3; - for (j = 0; j < 8; j++) { - var lineOffset = (scanLine + j) * samplesPerLine; - for (k = 0; k < 8; k++) { - lineData[lineOffset + sample + k] = - component.output[bufferOffset + offset++] * component.bitConversion; - } - } - } - } - - componentScaleX = component.scaleX * scaleX; - componentScaleY = component.scaleY * scaleY; - offset = i; - - var cx, cy; - var index; - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - cy = 0 | (y * componentScaleY); - cx = 0 | (x * componentScaleX); - index = cy * samplesPerLine + cx; - data[offset] = lineData[index]; - offset += numComponents; - } - } + } + } + if (/\s|\n|\t/.test(c)) { + html = html.replace(/\s|\n|\t/g, " "); + if (tmpName === false) { + j = findNextEqual(html, i2); + if (j === -1) { + v = _.trim(html.slice(lastPos, i2)); + addAttr(v); + tmpName = false; + lastPos = i2 + 1; + continue; + } else { + i2 = j - 1; + continue; } - - // ... then transform colors, if necessary - switch (numComponents) { - case 1: - case 2: - break; - // no color conversion for one or two compoenents - - case 3: - // The default transform for three components is true - colorTransform = true; - // The adobe transform marker overrides any previous setting - if (this.adobe && this.adobe.transformCode) - colorTransform = true; - else if (typeof this.colorTransform !== 'undefined') - colorTransform = !!this.colorTransform; - - if (colorTransform) { - for (i = 0; i < dataLength; i += numComponents) { - Y = data[i ]; - Cb = data[i + 1]; - Cr = data[i + 2]; - - R = clampToUint8(Y - 179.456 + 1.402 * Cr); - G = clampToUint8(Y + 135.459 - 0.344 * Cb - 0.714 * Cr); - B = clampToUint8(Y - 226.816 + 1.772 * Cb); - - data[i ] = R; - data[i + 1] = G; - data[i + 2] = B; - } - } - break; - case 4: - if (!this.adobe) - throw 'Unsupported color mode (4 components)'; - // The default transform for four components is false - colorTransform = false; - // The adobe transform marker overrides any previous setting - if (this.adobe && this.adobe.transformCode) - colorTransform = true; - else if (typeof this.colorTransform !== 'undefined') - colorTransform = !!this.colorTransform; - - if (colorTransform) { - for (i = 0; i < dataLength; i += numComponents) { - Y = data[i]; - Cb = data[i + 1]; - Cr = data[i + 2]; - - C = clampToUint8(434.456 - Y - 1.402 * Cr); - M = clampToUint8(119.541 - Y + 0.344 * Cb + 0.714 * Cr); - Y = clampToUint8(481.816 - Y - 1.772 * Cb); - - data[i ] = C; - data[i + 1] = M; - data[i + 2] = Y; - // K is unchanged - } - } - break; - default: - throw 'Unsupported color mode'; + } else { + j = findBeforeEqual(html, i2 - 1); + if (j === -1) { + v = _.trim(html.slice(lastPos, i2)); + v = stripQuoteWrap(v); + addAttr(tmpName, v); + tmpName = false; + lastPos = i2 + 1; + continue; + } else { + continue; } - return data; + } } - }; - - return constructor; -})(); -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = { - JpegImage: JpegImage - }; -} -},{}],3:[function(require,module,exports){ -// Adapted from: https://github.com/chafey/cornerstoneWADOImageLoader/blob/73ed7c4bbbd275bb0f7f9f363ef82575c17bb5f1/src/webWorker/decodeTask/decoders/decodeJPEGLS.js -/*! - The MIT License (MIT) - - Copyright (c) 2014 Chris Hafey (chafey@gmail.com) - - 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. - */ - -"use strict"; - -var CharLS = CharLS || ((typeof require !== 'undefined') ? require('../lib/charLS-DynamicMemory-browser.js') : null); - -var JpegLS = (function () { - var charLS; - - function constructor() { - } - - constructor.prototype = { - decodeJPEGLS: function(pixelData, signed) { - return decodeJPEGLS(pixelData, signed); + } + if (lastPos < html.length) { + if (tmpName === false) { + addAttr(html.slice(lastPos)); + } else { + addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos)))); } - }; - - function jpegLSDecode(data, isSigned) { - // prepare input parameters - var dataPtr = charLS._malloc(data.length); - charLS.writeArrayToMemory(data, dataPtr); - - // prepare output parameters - var imagePtrPtr=charLS._malloc(4); - var imageSizePtr=charLS._malloc(4); - var widthPtr=charLS._malloc(4); - var heightPtr=charLS._malloc(4); - var bitsPerSamplePtr=charLS._malloc(4); - var stridePtr=charLS._malloc(4); - var allowedLossyErrorPtr =charLS._malloc(4); - var componentsPtr=charLS._malloc(4); - var interleaveModePtr=charLS._malloc(4); - - // Decode the image - var result = charLS.ccall( - 'jpegls_decode', - 'number', - ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number'], - [dataPtr, data.length, imagePtrPtr, imageSizePtr, widthPtr, heightPtr, bitsPerSamplePtr, stridePtr, componentsPtr, allowedLossyErrorPtr, interleaveModePtr] - ); + } + return _.trim(retAttrs.join(" ")); + } + function findNextEqual(str, i2) { + for (; i2 < str.length; i2++) { + var c = str[i2]; + if (c === " ") + continue; + if (c === "=") + return i2; + return -1; + } + } + function findNextQuotationMark(str, i2) { + for (; i2 < str.length; i2++) { + var c = str[i2]; + if (c === " ") + continue; + if (c === "'" || c === '"') + return i2; + return -1; + } + } + function findBeforeEqual(str, i2) { + for (; i2 > 0; i2--) { + var c = str[i2]; + if (c === " ") + continue; + if (c === "=") + return i2; + return -1; + } + } + function isQuoteWrapString(text) { + if (text[0] === '"' && text[text.length - 1] === '"' || text[0] === "'" && text[text.length - 1] === "'") { + return true; + } else { + return false; + } + } + function stripQuoteWrap(text) { + if (isQuoteWrapString(text)) { + return text.substr(1, text.length - 2); + } else { + return text; + } + } + exports2.parseTag = parseTag; + exports2.parseAttr = parseAttr; + } +}); - // Extract result values into object - var image = { - result : result, - width : charLS.getValue(widthPtr,'i32'), - height : charLS.getValue(heightPtr,'i32'), - bitsPerSample : charLS.getValue(bitsPerSamplePtr,'i32'), - stride : charLS.getValue(stridePtr,'i32'), - components : charLS.getValue(componentsPtr, 'i32'), - allowedLossyError : charLS.getValue(allowedLossyErrorPtr, 'i32'), - interleaveMode: charLS.getValue(interleaveModePtr, 'i32'), - pixelData: undefined +// node_modules/xss/lib/xss.js +var require_xss = __commonJS({ + "node_modules/xss/lib/xss.js"(exports2, module2) { + var FilterCSS = require_lib().FilterCSS; + var DEFAULT = require_default2(); + var parser = require_parser2(); + var parseTag = parser.parseTag; + var parseAttr = parser.parseAttr; + var _ = require_util2(); + function isNull(obj) { + return obj === void 0 || obj === null; + } + function getAttrs(html) { + var i2 = _.spaceIndex(html); + if (i2 === -1) { + return { + html: "", + closing: html[html.length - 2] === "/" }; - - // Copy image from emscripten heap into appropriate array buffer type - var imagePtr = charLS.getValue(imagePtrPtr, '*'); - if(image.bitsPerSample <= 8) { - image.pixelData = new Uint8Array(image.width * image.height * image.components); - image.pixelData.set(new Uint8Array(charLS.HEAP8.buffer, imagePtr, image.pixelData.length)); + } + html = _.trim(html.slice(i2 + 1, -1)); + var isClosing = html[html.length - 1] === "/"; + if (isClosing) + html = _.trim(html.slice(0, -1)); + return { + html, + closing: isClosing + }; + } + function shallowCopyObject(obj) { + var ret = {}; + for (var i2 in obj) { + ret[i2] = obj[i2]; + } + return ret; + } + function keysToLowerCase(obj) { + var ret = {}; + for (var i2 in obj) { + if (Array.isArray(obj[i2])) { + ret[i2.toLowerCase()] = obj[i2].map(function(item) { + return item.toLowerCase(); + }); } else { - // I have seen 16 bit signed images, but I don't know if 16 bit unsigned is valid, hoping to get - // answer here: - // https://github.com/team-charls/charls/issues/14 - if(isSigned) { - image.pixelData = new Int16Array(image.width * image.height * image.components); - image.pixelData.set(new Int16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); - } else { - image.pixelData = new Uint16Array(image.width * image.height * image.components); - image.pixelData.set(new Uint16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); - } + ret[i2.toLowerCase()] = obj[i2]; } - - // free memory and return image object - charLS._free(dataPtr); - charLS._free(imagePtr); - charLS._free(imagePtrPtr); - charLS._free(imageSizePtr); - charLS._free(widthPtr); - charLS._free(heightPtr); - charLS._free(bitsPerSamplePtr); - charLS._free(stridePtr); - charLS._free(componentsPtr); - charLS._free(interleaveModePtr); - - return image; + } + return ret; } - - function initializeJPEGLS() { - // check to make sure codec is loaded - if(typeof CharLS === 'undefined') { - throw 'No JPEG-LS decoder loaded'; - } - - // Try to initialize CharLS - // CharLS https://github.com/chafey/charls - if(!charLS) { - charLS = CharLS(); - if(!charLS || !charLS._jpegls_decode) { - throw 'JPEG-LS failed to initialize'; - } + function FilterXSS(options) { + options = shallowCopyObject(options || {}); + if (options.stripIgnoreTag) { + if (options.onIgnoreTag) { + console.error( + 'Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time' + ); } + options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll; + } + if (options.whiteList || options.allowList) { + options.whiteList = keysToLowerCase(options.whiteList || options.allowList); + } else { + options.whiteList = DEFAULT.whiteList; + } + options.onTag = options.onTag || DEFAULT.onTag; + options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr; + options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag; + options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr; + options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue; + options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml; + this.options = options; + if (options.css === false) { + this.cssFilter = false; + } else { + options.css = options.css || {}; + this.cssFilter = new FilterCSS(options.css); + } } + FilterXSS.prototype.process = function(html) { + html = html || ""; + html = html.toString(); + if (!html) + return ""; + var me = this; + var options = me.options; + var whiteList = options.whiteList; + var onTag = options.onTag; + var onIgnoreTag = options.onIgnoreTag; + var onTagAttr = options.onTagAttr; + var onIgnoreTagAttr = options.onIgnoreTagAttr; + var safeAttrValue = options.safeAttrValue; + var escapeHtml = options.escapeHtml; + var cssFilter = me.cssFilter; + if (options.stripBlankChar) { + html = DEFAULT.stripBlankChar(html); + } + if (!options.allowCommentTag) { + html = DEFAULT.stripCommentTag(html); + } + var stripIgnoreTagBody = false; + if (options.stripIgnoreTagBody) { + stripIgnoreTagBody = DEFAULT.StripTagBody( + options.stripIgnoreTagBody, + onIgnoreTag + ); + onIgnoreTag = stripIgnoreTagBody.onIgnoreTag; + } + var retHtml = parseTag( + html, + function(sourcePosition, position, tag, html2, isClosing) { + var info = { + sourcePosition, + position, + isClosing, + isWhite: Object.prototype.hasOwnProperty.call(whiteList, tag) + }; + var ret = onTag(tag, html2, info); + if (!isNull(ret)) + return ret; + if (info.isWhite) { + if (info.isClosing) { + return ""; + } + var attrs = getAttrs(html2); + var whiteAttrList = whiteList[tag]; + var attrsHtml = parseAttr(attrs.html, function(name, value) { + var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1; + var ret2 = onTagAttr(tag, name, value, isWhiteAttr); + if (!isNull(ret2)) + return ret2; + if (isWhiteAttr) { + value = safeAttrValue(tag, name, value, cssFilter); + if (value) { + return name + '="' + value + '"'; + } else { + return name; + } + } else { + ret2 = onIgnoreTagAttr(tag, name, value, isWhiteAttr); + if (!isNull(ret2)) + return ret2; + return; + } + }); + html2 = "<" + tag; + if (attrsHtml) + html2 += " " + attrsHtml; + if (attrs.closing) + html2 += " /"; + html2 += ">"; + return html2; + } else { + ret = onIgnoreTag(tag, html2, info); + if (!isNull(ret)) + return ret; + return escapeHtml(html2); + } + }, + escapeHtml + ); + if (stripIgnoreTagBody) { + retHtml = stripIgnoreTagBody.remove(retHtml); + } + return retHtml; + }; + module2.exports = FilterXSS; + } +}); - function decodeJPEGLS(pixelData, signed) { - initializeJPEGLS(); - - var image = jpegLSDecode(pixelData, signed); - // console.log(image); - - // throw error if not success or too much data - if(image.result !== 0 && image.result !== 6) { - throw 'JPEG-LS decoder failed to decode frame (error code ' + image.result + ')'; - } - - var imageFrame = {}; - imageFrame.columns = image.width; - imageFrame.rows = image.height; - imageFrame.pixelData = image.pixelData; - - return imageFrame; +// node_modules/xss/lib/index.js +var require_lib2 = __commonJS({ + "node_modules/xss/lib/index.js"(exports2, module2) { + var DEFAULT = require_default2(); + var parser = require_parser2(); + var FilterXSS = require_xss(); + function filterXSS(html, options) { + var xss = new FilterXSS(options); + return xss.process(html); + } + exports2 = module2.exports = filterXSS; + exports2.filterXSS = filterXSS; + exports2.FilterXSS = FilterXSS; + (function() { + for (var i2 in DEFAULT) { + exports2[i2] = DEFAULT[i2]; + } + for (var j in parser) { + exports2[j] = parser[j]; + } + })(); + if (typeof window !== "undefined") { + window.filterXSS = module2.exports; + } + function isWorkerEnv() { + return typeof self !== "undefined" && typeof DedicatedWorkerGlobalScope !== "undefined" && self instanceof DedicatedWorkerGlobalScope; + } + if (isWorkerEnv()) { + self.filterXSS = module2.exports; } - - return constructor; -}()); -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = JpegLS; -} -},{"../lib/charLS-DynamicMemory-browser.js":1}],4:[function(require,module,exports){ -/*! image-JPEG2000 - v0.3.1 - 2015-08-26 | https://github.com/OHIF/image-JPEG2000 */ -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* globals ArithmeticDecoder, globalScope, log2, readUint16, readUint32, - info, warn */ - -'use strict'; - -var JpxImage = (function JpxImageClosure() { - // Table E.1 - var SubbandsGainLog2 = { - 'LL': 0, - 'LH': 1, - 'HL': 1, - 'HH': 2 - }; - function JpxImage() { - this.failOnCorruptedImage = false; } - JpxImage.prototype = { - parse: function JpxImage_parse(data) { +}); - var head = readUint16(data, 0); - // No box header, immediate start of codestream (SOC) - if (head === 0xFF4F) { - this.parseCodestream(data, 0, data.length); - return; +// src/siemens.js +var require_siemens = __commonJS({ + "src/siemens.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Siemens = daikon2.Siemens || function(buffer2) { + this.output = ""; + this.data = new DataView(buffer2, 0); + }; + daikon2.Siemens.CSA2_MAGIC_NUMBER = [83, 86, 49, 48]; + daikon2.Siemens.NAME_LENGTH = 64; + daikon2.Siemens.ELEMENT_CSA1 = 4112; + daikon2.Siemens.ELEMENT_CSA2 = 4128; + daikon2.Siemens.GROUP_CSA = 41; + daikon2.Siemens.prototype.readHeader = function() { + var ctr, match; + try { + if (this.data.byteLength > daikon2.Siemens.CSA2_MAGIC_NUMBER.length) { + match = true; + for (ctr = 0; ctr < daikon2.Siemens.CSA2_MAGIC_NUMBER.length; ctr += 1) { + match &= this.data.getUint8(ctr) === daikon2.Siemens.CSA2_MAGIC_NUMBER[ctr]; + } + if (match) { + this.readHeaderAtOffset(daikon2.Siemens.CSA2_MAGIC_NUMBER.length + 4); + } else { + this.readHeaderAtOffset(0); + } + } + } catch (error) { + console.log(error); } - - var position = 0, length = data.length; - while (position < length) { - var headerSize = 8; - var lbox = readUint32(data, position); - var tbox = readUint32(data, position + 4); - position += headerSize; - if (lbox === 1) { - // XLBox: read UInt64 according to spec. - // JavaScript's int precision of 53 bit should be sufficient here. - lbox = readUint32(data, position) * 4294967296 + - readUint32(data, position + 4); - position += 8; - headerSize += 8; - } - if (lbox === 0) { - lbox = length - position + headerSize; - } - if (lbox < headerSize) { - throw new Error('JPX Error: Invalid box field size'); - } - var dataLength = lbox - headerSize; - var jumpDataLength = true; - switch (tbox) { - case 0x6A703268: // 'jp2h' - jumpDataLength = false; // parsing child boxes - break; - case 0x636F6C72: // 'colr' - // Colorspaces are not used, the CS from the PDF is used. - var method = data[position]; - var precedence = data[position + 1]; - var approximation = data[position + 2]; - if (method === 1) { - // enumerated colorspace - var colorspace = readUint32(data, position + 3); - switch (colorspace) { - case 16: // this indicates a sRGB colorspace - case 17: // this indicates a grayscale colorspace - case 18: // this indicates a YUV colorspace - break; - default: - warn('Unknown colorspace ' + colorspace); - break; - } - } else if (method === 2) { - info('ICC profile not supported'); - } - break; - case 0x6A703263: // 'jp2c' - this.parseCodestream(data, position, position + dataLength); - break; - case 0x6A502020: // 'jP\024\024' - if (0x0d0a870a !== readUint32(data, position)) { - warn('Invalid JP2 signature'); - } - break; - // The following header types are valid but currently not used: - case 0x6A501A1A: // 'jP\032\032' - case 0x66747970: // 'ftyp' - case 0x72726571: // 'rreq' - case 0x72657320: // 'res ' - case 0x69686472: // 'ihdr' - break; - default: - var headerType = String.fromCharCode((tbox >> 24) & 0xFF, - (tbox >> 16) & 0xFF, - (tbox >> 8) & 0xFF, - tbox & 0xFF); - warn('Unsupported header type ' + tbox + ' (' + headerType + ')'); - break; + return this.output; + }; + daikon2.Siemens.prototype.readHeaderAtOffset = function(offset) { + var numTags, ctr; + this.output += "\n"; + numTags = daikon2.Utils.swap32(this.data.getUint32(offset)); + if (numTags < 1 || numTags > 128) { + return this.output; + } + offset += 4; + offset += 4; + for (ctr = 0; ctr < numTags; ctr += 1) { + offset = this.readTag(offset); + if (offset === -1) { + break; } - if (jumpDataLength) { - position += dataLength; - } - } - }, - parseImageProperties: function JpxImage_parseImageProperties(stream) { - var newByte = stream.getByte(); - while (newByte >= 0) { - var oldByte = newByte; - newByte = stream.getByte(); - var code = (oldByte << 8) | newByte; - // Image and tile size (SIZ) - if (code === 0xFF51) { - stream.skip(4); - var Xsiz = stream.getInt32() >>> 0; // Byte 4 - var Ysiz = stream.getInt32() >>> 0; // Byte 8 - var XOsiz = stream.getInt32() >>> 0; // Byte 12 - var YOsiz = stream.getInt32() >>> 0; // Byte 16 - stream.skip(16); - var Csiz = stream.getUint16(); // Byte 36 - this.width = Xsiz - XOsiz; - this.height = Ysiz - YOsiz; - this.componentsCount = Csiz; - // Results are always returned as Uint8Arrays - this.bitsPerComponent = 8; - return; - } - } - throw new Error('JPX Error: No size marker found in JPX stream'); - }, - parseCodestream: function JpxImage_parseCodestream(data, start, end) { - var context = {}; - try { - var doNotRecover = false; - var position = start; - while (position + 1 < end) { - var code = readUint16(data, position); - position += 2; - - var length = 0, j, sqcd, spqcds, spqcdSize, scalarExpounded, tile; - switch (code) { - case 0xFF4F: // Start of codestream (SOC) - context.mainHeader = true; - break; - case 0xFFD9: // End of codestream (EOC) - break; - case 0xFF51: // Image and tile size (SIZ) - length = readUint16(data, position); - var siz = {}; - siz.Xsiz = readUint32(data, position + 4); - siz.Ysiz = readUint32(data, position + 8); - siz.XOsiz = readUint32(data, position + 12); - siz.YOsiz = readUint32(data, position + 16); - siz.XTsiz = readUint32(data, position + 20); - siz.YTsiz = readUint32(data, position + 24); - siz.XTOsiz = readUint32(data, position + 28); - siz.YTOsiz = readUint32(data, position + 32); - var componentsCount = readUint16(data, position + 36); - siz.Csiz = componentsCount; - var components = []; - j = position + 38; - for (var i = 0; i < componentsCount; i++) { - var component = { - precision: (data[j] & 0x7F) + 1, - isSigned: !!(data[j] & 0x80), - XRsiz: data[j + 1], - YRsiz: data[j + 1] - }; - calculateComponentDimensions(component, siz); - components.push(component); - } - context.SIZ = siz; - context.components = components; - calculateTileGrids(context, components); - context.QCC = []; - context.COC = []; - break; - case 0xFF5C: // Quantization default (QCD) - length = readUint16(data, position); - var qcd = {}; - j = position + 2; - sqcd = data[j++]; - switch (sqcd & 0x1F) { - case 0: - spqcdSize = 8; - scalarExpounded = true; - break; - case 1: - spqcdSize = 16; - scalarExpounded = false; - break; - case 2: - spqcdSize = 16; - scalarExpounded = true; - break; - default: - throw new Error('JPX Error: Invalid SQcd value ' + sqcd); - } - qcd.noQuantization = (spqcdSize === 8); - qcd.scalarExpounded = scalarExpounded; - qcd.guardBits = sqcd >> 5; - spqcds = []; - while (j < length + position) { - var spqcd = {}; - if (spqcdSize === 8) { - spqcd.epsilon = data[j++] >> 3; - spqcd.mu = 0; - } else { - spqcd.epsilon = data[j] >> 3; - spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1]; - j += 2; - } - spqcds.push(spqcd); - } - qcd.SPqcds = spqcds; - if (context.mainHeader) { - context.QCD = qcd; - } else { - context.currentTile.QCD = qcd; - context.currentTile.QCC = []; - } - break; - case 0xFF5D: // Quantization component (QCC) - length = readUint16(data, position); - var qcc = {}; - j = position + 2; - var cqcc; - if (context.SIZ.Csiz < 257) { - cqcc = data[j++]; - } else { - cqcc = readUint16(data, j); - j += 2; - } - sqcd = data[j++]; - switch (sqcd & 0x1F) { - case 0: - spqcdSize = 8; - scalarExpounded = true; - break; - case 1: - spqcdSize = 16; - scalarExpounded = false; - break; - case 2: - spqcdSize = 16; - scalarExpounded = true; - break; - default: - throw new Error('JPX Error: Invalid SQcd value ' + sqcd); - } - qcc.noQuantization = (spqcdSize === 8); - qcc.scalarExpounded = scalarExpounded; - qcc.guardBits = sqcd >> 5; - spqcds = []; - while (j < (length + position)) { - spqcd = {}; - if (spqcdSize === 8) { - spqcd.epsilon = data[j++] >> 3; - spqcd.mu = 0; - } else { - spqcd.epsilon = data[j] >> 3; - spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1]; - j += 2; - } - spqcds.push(spqcd); - } - qcc.SPqcds = spqcds; - if (context.mainHeader) { - context.QCC[cqcc] = qcc; - } else { - context.currentTile.QCC[cqcc] = qcc; - } - break; - case 0xFF52: // Coding style default (COD) - length = readUint16(data, position); - var cod = {}; - j = position + 2; - var scod = data[j++]; - cod.entropyCoderWithCustomPrecincts = !!(scod & 1); - cod.sopMarkerUsed = !!(scod & 2); - cod.ephMarkerUsed = !!(scod & 4); - cod.progressionOrder = data[j++]; - cod.layersCount = readUint16(data, j); - j += 2; - cod.multipleComponentTransform = data[j++]; - - cod.decompositionLevelsCount = data[j++]; - cod.xcb = (data[j++] & 0xF) + 2; - cod.ycb = (data[j++] & 0xF) + 2; - var blockStyle = data[j++]; - cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); - cod.resetContextProbabilities = !!(blockStyle & 2); - cod.terminationOnEachCodingPass = !!(blockStyle & 4); - cod.verticalyStripe = !!(blockStyle & 8); - cod.predictableTermination = !!(blockStyle & 16); - cod.segmentationSymbolUsed = !!(blockStyle & 32); - cod.reversibleTransformation = data[j++]; - if (cod.entropyCoderWithCustomPrecincts) { - var precinctsSizes = []; - while (j < length + position) { - var precinctsSize = data[j++]; - precinctsSizes.push({ - PPx: precinctsSize & 0xF, - PPy: precinctsSize >> 4 - }); - } - cod.precinctsSizes = precinctsSizes; - } - var unsupported = []; - if (cod.selectiveArithmeticCodingBypass) { - unsupported.push('selectiveArithmeticCodingBypass'); - } - if (cod.resetContextProbabilities) { - unsupported.push('resetContextProbabilities'); - } - if (cod.terminationOnEachCodingPass) { - unsupported.push('terminationOnEachCodingPass'); - } - if (cod.verticalyStripe) { - unsupported.push('verticalyStripe'); - } - if (cod.predictableTermination) { - unsupported.push('predictableTermination'); - } - if (unsupported.length > 0) { - doNotRecover = true; - throw new Error('JPX Error: Unsupported COD options (' + - unsupported.join(', ') + ')'); - } - if (context.mainHeader) { - context.COD = cod; - } else { - context.currentTile.COD = cod; - context.currentTile.COC = []; - } - break; - case 0xFF90: // Start of tile-part (SOT) - length = readUint16(data, position); - tile = {}; - tile.index = readUint16(data, position + 2); - tile.length = readUint32(data, position + 4); - tile.dataEnd = tile.length + position - 2; - tile.partIndex = data[position + 8]; - tile.partsCount = data[position + 9]; - - context.mainHeader = false; - if (tile.partIndex === 0) { - // reset component specific settings - tile.COD = context.COD; - tile.COC = context.COC.slice(0); // clone of the global COC - tile.QCD = context.QCD; - tile.QCC = context.QCC.slice(0); // clone of the global COC - } - context.currentTile = tile; - break; - case 0xFF93: // Start of data (SOD) - tile = context.currentTile; - if (tile.partIndex === 0) { - initializeTile(context, tile.index); - buildPackets(context); - } - - // moving to the end of the data - length = tile.dataEnd - position; - parseTilePackets(context, data, position, length); - break; - case 0xFF55: // Tile-part lengths, main header (TLM) - case 0xFF57: // Packet length, main header (PLM) - case 0xFF58: // Packet length, tile-part header (PLT) - case 0xFF64: // Comment (COM) - length = readUint16(data, position); - // skipping content - break; - case 0xFF53: // Coding style component (COC) - throw new Error('JPX Error: Codestream code 0xFF53 (COC) is ' + - 'not implemented'); - default: - throw new Error('JPX Error: Unknown codestream code: ' + - code.toString(16)); - } - position += length; + } + return this.output; + }; + daikon2.Siemens.prototype.readTag = function(offset) { + var name, ctr, numItems; + name = this.readString(offset, daikon2.Siemens.NAME_LENGTH); + offset += daikon2.Siemens.NAME_LENGTH; + offset += 4; + offset += 4; + offset += 4; + numItems = daikon2.Utils.swap32(this.data.getUint32(offset)); + offset += 4; + offset += 4; + this.output += " " + name + "="; + for (ctr = 0; ctr < numItems; ctr += 1) { + offset = this.readItem(offset); + if (offset === -1) { + break; + } else if (offset % 4 !== 0) { + offset += 4 - offset % 4; } - } catch (e) { - if (doNotRecover || this.failOnCorruptedImage) { - throw e; - } else { - warn('Trying to recover from ' + e.message); + } + this.output += "\n"; + return offset; + }; + daikon2.Siemens.prototype.readString = function(offset, length) { + var char2, ctr, str = ""; + for (ctr = 0; ctr < length; ctr += 1) { + char2 = this.data.getUint8(offset + ctr); + if (char2 === 0) { + break; } + str += String.fromCharCode(char2); } - this.tiles = transformComponents(context); - this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; - this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; - this.componentsCount = context.SIZ.Csiz; - } - }; - function calculateComponentDimensions(component, siz) { - // Section B.2 Component mapping - component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); - component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); - component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); - component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); - component.width = component.x1 - component.x0; - component.height = component.y1 - component.y0; - } - function calculateTileGrids(context, components) { - var siz = context.SIZ; - // Section B.3 Division into tile and tile-components - var tile, tiles = []; - var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); - var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); - for (var q = 0; q < numYtiles; q++) { - for (var p = 0; p < numXtiles; p++) { - tile = {}; - tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); - tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); - tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); - tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); - tile.width = tile.tx1 - tile.tx0; - tile.height = tile.ty1 - tile.ty0; - tile.components = []; - tiles.push(tile); + return str; + }; + daikon2.Siemens.prototype.readItem = function(offset) { + var itemLength; + itemLength = daikon2.Utils.swap32(this.data.getUint32(offset)); + if (offset + itemLength > this.data.buffer.length) { + return -1; } - } - context.tiles = tiles; - - var componentsCount = siz.Csiz; - for (var i = 0, ii = componentsCount; i < ii; i++) { - var component = components[i]; - for (var j = 0, jj = tiles.length; j < jj; j++) { - var tileComponent = {}; - tile = tiles[j]; - tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); - tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); - tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); - tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); - tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; - tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; - tile.components[i] = tileComponent; + offset += 16; + if (itemLength > 0) { + this.output += this.readString(offset, itemLength) + " "; } - } - } - function getBlocksDimensions(context, component, r) { - var codOrCoc = component.codingStyleParameters; - var result = {}; - if (!codOrCoc.entropyCoderWithCustomPrecincts) { - result.PPx = 15; - result.PPy = 15; - } else { - result.PPx = codOrCoc.precinctsSizes[r].PPx; - result.PPy = codOrCoc.precinctsSizes[r].PPy; - } - // calculate codeblock size as described in section B.7 - result.xcb_ = (r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : - Math.min(codOrCoc.xcb, result.PPx)); - result.ycb_ = (r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : - Math.min(codOrCoc.ycb, result.PPy)); - return result; - } - function buildPrecincts(context, resolution, dimensions) { - // Section B.6 Division resolution to precincts - var precinctWidth = 1 << dimensions.PPx; - var precinctHeight = 1 << dimensions.PPy; - // Jasper introduces codeblock groups for mapping each subband codeblocks - // to precincts. Precinct partition divides a resolution according to width - // and height parameters. The subband that belongs to the resolution level - // has a different size than the level, unless it is the zero resolution. - - // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding: - // The precinct partitioning for a particular subband is derived from a - // partitioning of its parent LL band (i.e., the LL band at the next higher - // resolution level)... The LL band associated with each resolution level is - // divided into precincts... Each of the resulting precinct regions is then - // mapped into its child subbands (if any) at the next lower resolution - // level. This is accomplished by using the coordinate transformation - // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the - // coordinates of a point in the LL band and child subband, respectively. - var isZeroRes = resolution.resLevel === 0; - var precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1)); - var precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1)); - var numprecinctswide = (resolution.trx1 > resolution.trx0 ? - Math.ceil(resolution.trx1 / precinctWidth) - - Math.floor(resolution.trx0 / precinctWidth) : 0); - var numprecinctshigh = (resolution.try1 > resolution.try0 ? - Math.ceil(resolution.try1 / precinctHeight) - - Math.floor(resolution.try0 / precinctHeight) : 0); - var numprecincts = numprecinctswide * numprecinctshigh; - - resolution.precinctParameters = { - precinctWidth: precinctWidth, - precinctHeight: precinctHeight, - numprecinctswide: numprecinctswide, - numprecinctshigh: numprecinctshigh, - numprecincts: numprecincts, - precinctWidthInSubband: precinctWidthInSubband, - precinctHeightInSubband: precinctHeightInSubband + return offset + itemLength; + }; + daikon2.Siemens.prototype.canRead = function(group, element) { + return group === daikon2.Siemens.GROUP_CSA && (element === daikon2.Siemens.ELEMENT_CSA1 || element === daikon2.Siemens.ELEMENT_CSA2); }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Siemens; + } } - function buildCodeblocks(context, subband, dimensions) { - // Section B.7 Division sub-band into code-blocks - var xcb_ = dimensions.xcb_; - var ycb_ = dimensions.ycb_; - var codeblockWidth = 1 << xcb_; - var codeblockHeight = 1 << ycb_; - var cbx0 = subband.tbx0 >> xcb_; - var cby0 = subband.tby0 >> ycb_; - var cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_; - var cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_; - var precinctParameters = subband.resolution.precinctParameters; - var codeblocks = []; - var precincts = []; - var i, j, codeblock, precinctNumber; - for (j = cby0; j < cby1; j++) { - for (i = cbx0; i < cbx1; i++) { - codeblock = { - cbx: i, - cby: j, - tbx0: codeblockWidth * i, - tby0: codeblockHeight * j, - tbx1: codeblockWidth * (i + 1), - tby1: codeblockHeight * (j + 1) - }; - - codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); - codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); - codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); - codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); - - // Calculate precinct number for this codeblock, codeblock position - // should be relative to its subband, use actual dimension and position - // See comment about codeblock group width and height - var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / - precinctParameters.precinctWidthInSubband); - var pj = Math.floor((codeblock.tby0_ - subband.tby0) / - precinctParameters.precinctHeightInSubband); - precinctNumber = pi + (pj * precinctParameters.numprecinctswide); - - codeblock.precinctNumber = precinctNumber; - codeblock.subbandType = subband.type; - codeblock.Lblock = 3; +}); - if (codeblock.tbx1_ <= codeblock.tbx0_ || - codeblock.tby1_ <= codeblock.tby0_) { - continue; +// src/tag.js +var require_tag = __commonJS({ + "src/tag.js"(exports2, module2) { + "use strict"; + var xss = require_lib2(); + var daikon2 = daikon2 || {}; + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Dictionary = daikon2.Dictionary || (typeof require !== "undefined" ? require_dictionary() : null); + daikon2.Siemens = daikon2.Siemens || (typeof require !== "undefined" ? require_siemens() : null); + daikon2.Tag = daikon2.Tag || function(group, element, vr, value, offsetStart, offsetValue, offsetEnd, littleEndian, charset) { + this.group = group; + this.element = element; + this.vr = vr; + this.offsetStart = offsetStart; + this.offsetValue = offsetValue; + this.offsetEnd = offsetEnd; + this.sublist = false; + this.preformatted = false; + this.id = daikon2.Tag.createId(group, element); + if (value instanceof Array) { + this.value = value; + this.sublist = true; + } else if (value !== null) { + var dv = new DataView(value); + this.value = daikon2.Tag.convertValue(vr, dv, littleEndian, charset); + if (this.value === dv && this.isPrivateData()) { + this.value = daikon2.Tag.convertPrivateValue(group, element, dv); + this.preformatted = this.value !== dv; } - codeblocks.push(codeblock); - // building precinct for the sub-band - var precinct = precincts[precinctNumber]; - if (precinct !== undefined) { - if (i < precinct.cbxMin) { - precinct.cbxMin = i; - } else if (i > precinct.cbxMax) { - precinct.cbxMax = i; - } - if (j < precinct.cbyMin) { - precinct.cbxMin = j; - } else if (j > precinct.cbyMax) { - precinct.cbyMax = j; + } else { + this.value = null; + } + }; + daikon2.Tag.PRIVATE_DATA_READERS = [daikon2.Siemens]; + daikon2.Tag.VR_AE_MAX_LENGTH = 16; + daikon2.Tag.VR_AS_MAX_LENGTH = 4; + daikon2.Tag.VR_AT_MAX_LENGTH = 4; + daikon2.Tag.VR_CS_MAX_LENGTH = 16; + daikon2.Tag.VR_DA_MAX_LENGTH = 8; + daikon2.Tag.VR_DS_MAX_LENGTH = 16; + daikon2.Tag.VR_DT_MAX_LENGTH = 26; + daikon2.Tag.VR_FL_MAX_LENGTH = 4; + daikon2.Tag.VR_FD_MAX_LENGTH = 8; + daikon2.Tag.VR_IS_MAX_LENGTH = 12; + daikon2.Tag.VR_LO_MAX_LENGTH = 64; + daikon2.Tag.VR_LT_MAX_LENGTH = 10240; + daikon2.Tag.VR_OB_MAX_LENGTH = -1; + daikon2.Tag.VR_OD_MAX_LENGTH = -1; + daikon2.Tag.VR_OF_MAX_LENGTH = -1; + daikon2.Tag.VR_OW_MAX_LENGTH = -1; + daikon2.Tag.VR_PN_MAX_LENGTH = 64 * 5; + daikon2.Tag.VR_SH_MAX_LENGTH = 16; + daikon2.Tag.VR_SL_MAX_LENGTH = 4; + daikon2.Tag.VR_SS_MAX_LENGTH = 2; + daikon2.Tag.VR_ST_MAX_LENGTH = 1024; + daikon2.Tag.VR_TM_MAX_LENGTH = 16; + daikon2.Tag.VR_UI_MAX_LENGTH = 64; + daikon2.Tag.VR_UL_MAX_LENGTH = 4; + daikon2.Tag.VR_UN_MAX_LENGTH = -1; + daikon2.Tag.VR_US_MAX_LENGTH = 2; + daikon2.Tag.VR_UT_MAX_LENGTH = -1; + daikon2.Tag.VR_UC_MAX_LENGTH = -1; + daikon2.Tag.TAG_TRANSFER_SYNTAX = [2, 16]; + daikon2.Tag.TAG_META_LENGTH = [2, 0]; + daikon2.Tag.TAG_SUBLIST_ITEM = [65534, 57344]; + daikon2.Tag.TAG_SUBLIST_ITEM_DELIM = [65534, 57357]; + daikon2.Tag.TAG_SUBLIST_SEQ_DELIM = [65534, 57565]; + daikon2.Tag.TAG_ROWS = [40, 16]; + daikon2.Tag.TAG_COLS = [40, 17]; + daikon2.Tag.TAG_ACQUISITION_MATRIX = [24, 4880]; + daikon2.Tag.TAG_NUMBER_OF_FRAMES = [40, 8]; + daikon2.Tag.TAG_NUMBER_TEMPORAL_POSITIONS = [32, 261]; + daikon2.Tag.TAG_PIXEL_SPACING = [40, 48]; + daikon2.Tag.TAG_SLICE_THICKNESS = [24, 80]; + daikon2.Tag.TAG_SLICE_GAP = [24, 136]; + daikon2.Tag.TAG_TR = [24, 128]; + daikon2.Tag.TAG_FRAME_TIME = [24, 4195]; + daikon2.Tag.TAG_BITS_ALLOCATED = [40, 256]; + daikon2.Tag.TAG_BITS_STORED = [40, 257]; + daikon2.Tag.TAG_PIXEL_REPRESENTATION = [40, 259]; + daikon2.Tag.TAG_HIGH_BIT = [40, 258]; + daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION = [40, 4]; + daikon2.Tag.TAG_SAMPLES_PER_PIXEL = [40, 2]; + daikon2.Tag.TAG_PLANAR_CONFIG = [40, 6]; + daikon2.Tag.TAG_PALETTE_RED = [40, 4609]; + daikon2.Tag.TAG_PALETTE_GREEN = [40, 4610]; + daikon2.Tag.TAG_PALETTE_BLUE = [40, 4611]; + daikon2.Tag.TAG_DATA_SCALE_SLOPE = [40, 4179]; + daikon2.Tag.TAG_DATA_SCALE_INTERCEPT = [40, 4178]; + daikon2.Tag.TAG_DATA_SCALE_ELSCINT = [519, 4127]; + daikon2.Tag.TAG_PIXEL_BANDWIDTH = [24, 149]; + daikon2.Tag.TAG_IMAGE_MIN = [40, 262]; + daikon2.Tag.TAG_IMAGE_MAX = [40, 263]; + daikon2.Tag.TAG_WINDOW_CENTER = [40, 4176]; + daikon2.Tag.TAG_WINDOW_WIDTH = [40, 4177]; + daikon2.Tag.TAG_SPECIFIC_CHAR_SET = [8, 5]; + daikon2.Tag.TAG_PATIENT_NAME = [16, 16]; + daikon2.Tag.TAG_PATIENT_ID = [16, 32]; + daikon2.Tag.TAG_STUDY_DATE = [8, 32]; + daikon2.Tag.TAG_STUDY_TIME = [8, 48]; + daikon2.Tag.TAG_STUDY_DES = [8, 4144]; + daikon2.Tag.TAG_IMAGE_TYPE = [8, 8]; + daikon2.Tag.TAG_IMAGE_COMMENTS = [32, 16384]; + daikon2.Tag.TAG_SEQUENCE_NAME = [24, 36]; + daikon2.Tag.TAG_MODALITY = [8, 96]; + daikon2.Tag.TAG_FRAME_OF_REF_UID = [32, 82]; + daikon2.Tag.TAG_STUDY_UID = [32, 13]; + daikon2.Tag.TAG_SERIES_DESCRIPTION = [8, 4158]; + daikon2.Tag.TAG_SERIES_INSTANCE_UID = [32, 14]; + daikon2.Tag.TAG_SERIES_NUMBER = [32, 17]; + daikon2.Tag.TAG_ECHO_NUMBER = [24, 134]; + daikon2.Tag.TAG_TEMPORAL_POSITION = [32, 256]; + daikon2.Tag.TAG_IMAGE_NUM = [32, 19]; + daikon2.Tag.TAG_SLICE_LOCATION = [32, 4161]; + daikon2.Tag.TAG_IMAGE_ORIENTATION = [32, 55]; + daikon2.Tag.TAG_IMAGE_POSITION = [32, 50]; + daikon2.Tag.TAG_SLICE_LOCATION_VECTOR = [24, 8197]; + daikon2.Tag.TAG_LUT_SHAPE = [8272, 32]; + daikon2.Tag.TAG_PIXEL_DATA = [32736, 16]; + daikon2.Tag.createId = function(group, element) { + var groupStr = daikon2.Utils.dec2hex(group), elemStr = daikon2.Utils.dec2hex(element); + return groupStr + elemStr; + }; + daikon2.Tag.getUnsignedInteger16 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 2; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getUint16(ctr * 2, littleEndian); + } + return data; + }; + daikon2.Tag.getSignedInteger16 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 2; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getInt16(ctr * 2, littleEndian); + } + return data; + }; + daikon2.Tag.getFloat32 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 4; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getFloat32(ctr * 4, littleEndian); + } + return data; + }; + daikon2.Tag.getSignedInteger32 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 4; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getInt32(ctr * 4, littleEndian); + } + return data; + }; + daikon2.Tag.getUnsignedInteger32 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 4; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getUint32(ctr * 4, littleEndian); + } + return data; + }; + daikon2.Tag.getFloat64 = function(rawData, littleEndian) { + var data, mul, ctr; + if (rawData.byteLength < 8) { + return 0; + } + mul = rawData.byteLength / 8; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getFloat64(ctr * 8, littleEndian); + } + return data; + }; + daikon2.Tag.getDoubleElscint = function(rawData) { + var data = [], reordered = [], ctr; + for (ctr = 0; ctr < 8; ctr += 1) { + data[ctr] = rawData.getUint8(ctr); + } + reordered[0] = data[3]; + reordered[1] = data[2]; + reordered[2] = data[1]; + reordered[3] = data[0]; + reordered[4] = data[7]; + reordered[5] = data[6]; + reordered[6] = data[5]; + reordered[7] = data[4]; + data = [daikon2.Utils.bytesToDouble(reordered)]; + return data; + }; + daikon2.Tag.getFixedLengthStringValue = function(rawData, maxLength, charset, vr) { + var data, mul, ctr; + mul = Math.floor(rawData.byteLength / maxLength); + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = daikon2.Utils.getStringAt(rawData, ctr * maxLength, maxLength, charset, vr); + } + return data; + }; + daikon2.Tag.getStringValue = function(rawData, charset, vr) { + var data = daikon2.Utils.getStringAt(rawData, 0, rawData.byteLength, charset, vr).split("\\"), ctr; + for (ctr = 0; ctr < data.length; ctr += 1) { + data[ctr] = daikon2.Utils.trim(data[ctr]); + } + return data; + }; + daikon2.Tag.getDateStringValue = function(rawData) { + var dotFormat = daikon2.Tag.getSingleStringValue(rawData)[0].indexOf(".") !== -1, stringData = daikon2.Tag.getFixedLengthStringValue(rawData, dotFormat ? 10 : daikon2.Tag.VR_DA_MAX_LENGTH), parts = null, data = [], ctr; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + if (dotFormat) { + parts = stringData[ctr].split("."); + if (parts.length === 3) { + data[ctr] = new Date( + daikon2.Utils.safeParseInt(parts[0]), + daikon2.Utils.safeParseInt(parts[1]) - 1, + daikon2.Utils.safeParseInt(parts[2]) + ); + } else { + data[ctr] = /* @__PURE__ */ new Date(); } + } else if (stringData[ctr].length === 8) { + data[ctr] = new Date( + daikon2.Utils.safeParseInt(stringData[ctr].substring(0, 4)), + daikon2.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1, + daikon2.Utils.safeParseInt(stringData[ctr].substring(6, 8)) + ); } else { - precincts[precinctNumber] = precinct = { - cbxMin: i, - cbyMin: j, - cbxMax: i, - cbyMax: j - }; + data[ctr] = Date.parse(stringData[ctr]); } - codeblock.precinct = precinct; - } - } - subband.codeblockParameters = { - codeblockWidth: xcb_, - codeblockHeight: ycb_, - numcodeblockwide: cbx1 - cbx0 + 1, - numcodeblockhigh: cby1 - cby0 + 1 - }; - subband.codeblocks = codeblocks; - subband.precincts = precincts; - } - function createPacket(resolution, precinctNumber, layerNumber) { - var precinctCodeblocks = []; - // Section B.10.8 Order of info in packet - var subbands = resolution.subbands; - // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence - for (var i = 0, ii = subbands.length; i < ii; i++) { - var subband = subbands[i]; - var codeblocks = subband.codeblocks; - for (var j = 0, jj = codeblocks.length; j < jj; j++) { - var codeblock = codeblocks[j]; - if (codeblock.precinctNumber !== precinctNumber) { - continue; + if (!daikon2.Utils.isValidDate(data[ctr])) { + data[ctr] = stringData[ctr]; } - precinctCodeblocks.push(codeblock); } - } - return { - layerNumber: layerNumber, - codeblocks: precinctCodeblocks + return data; }; - } - function LayerResolutionComponentPositionIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var maxDecompositionLevelsCount = 0; - for (var q = 0; q < componentsCount; q++) { - maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, - tile.components[q].codingStyleParameters.decompositionLevelsCount); - } - - var l = 0, r = 0, i = 0, k = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.1 Layer-resolution-component-position - for (; l < layersCount; l++) { - for (; r <= maxDecompositionLevelsCount; r++) { - for (; i < componentsCount; i++) { - var component = tile.components[i]; - if (r > component.codingStyleParameters.decompositionLevelsCount) { - continue; - } - - var resolution = component.resolutions[r]; - var numprecincts = resolution.precinctParameters.numprecincts; - for (; k < numprecincts;) { - var packet = createPacket(resolution, k, l); - k++; - return packet; - } - k = 0; + daikon2.Tag.getDateTimeStringValue = function(rawData) { + var stringData = daikon2.Tag.getStringValue(rawData), data = [], ctr, year = null, month = null, date = null, hours = null, minutes = null, seconds = null; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + if (stringData[ctr].length >= 4) { + year = parseInt(stringData[ctr].substring(0, 4), 10); + if (stringData[ctr].length >= 6) { + month = daikon2.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1; } - i = 0; + if (stringData[ctr].length >= 8) { + date = daikon2.Utils.safeParseInt(stringData[ctr].substring(6, 8)); + } + if (stringData[ctr].length >= 10) { + hours = daikon2.Utils.safeParseInt(stringData[ctr].substring(8, 10)); + } + if (stringData[ctr].length >= 12) { + minutes = daikon2.Utils.safeParseInt(stringData[ctr].substring(10, 12)); + } + if (stringData[ctr].length >= 14) { + seconds = daikon2.Utils.safeParseInt(stringData[ctr].substring(12, 14)); + } + data[ctr] = new Date(year, month, date, hours, minutes, seconds); + } else { + data[ctr] = Date.parse(stringData[ctr]); + } + if (!daikon2.Utils.isValidDate(data[ctr])) { + data[ctr] = stringData[ctr]; } - r = 0; } + return data; }; - } - function ResolutionLayerComponentPositionIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var maxDecompositionLevelsCount = 0; - for (var q = 0; q < componentsCount; q++) { - maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, - tile.components[q].codingStyleParameters.decompositionLevelsCount); - } - - var r = 0, l = 0, i = 0, k = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.2 Resolution-layer-component-position - for (; r <= maxDecompositionLevelsCount; r++) { - for (; l < layersCount; l++) { - for (; i < componentsCount; i++) { - var component = tile.components[i]; - if (r > component.codingStyleParameters.decompositionLevelsCount) { - continue; + daikon2.Tag.getTimeStringValue = function(rawData, ms) { + var stringData = daikon2.Tag.getStringValue(rawData), data = []; + if (ms) { + var parts = null, ctr, hours = 0, minutes = 0, seconds = 0; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + if (stringData[ctr].indexOf(":") !== -1) { + parts = stringData[ctr].split(":"); + hours = daikon2.Utils.safeParseInt(parts[0]); + if (parts.length > 1) { + minutes = daikon2.Utils.safeParseInt(parts[1]); } - - var resolution = component.resolutions[r]; - var numprecincts = resolution.precinctParameters.numprecincts; - for (; k < numprecincts;) { - var packet = createPacket(resolution, k, l); - k++; - return packet; + if (parts.length > 2) { + seconds = daikon2.Utils.safeParseFloat(parts[2]); } - k = 0; - } - i = 0; - } - l = 0; - } - }; - } - function ResolutionPositionComponentLayerIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var l, r, c, p; - var maxDecompositionLevelsCount = 0; - for (c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, - component.codingStyleParameters.decompositionLevelsCount); - } - var maxNumPrecinctsInLevel = new Int32Array( - maxDecompositionLevelsCount + 1); - for (r = 0; r <= maxDecompositionLevelsCount; ++r) { - var maxNumPrecincts = 0; - for (c = 0; c < componentsCount; ++c) { - var resolutions = tile.components[c].resolutions; - if (r < resolutions.length) { - maxNumPrecincts = Math.max(maxNumPrecincts, - resolutions[r].precinctParameters.numprecincts); - } - } - maxNumPrecinctsInLevel[r] = maxNumPrecincts; - } - l = 0; - r = 0; - c = 0; - p = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.3 Resolution-position-component-layer - for (; r <= maxDecompositionLevelsCount; r++) { - for (; p < maxNumPrecinctsInLevel[r]; p++) { - for (; c < componentsCount; c++) { - var component = tile.components[c]; - if (r > component.codingStyleParameters.decompositionLevelsCount) { - continue; + } else { + if (stringData[ctr].length >= 2) { + hours = daikon2.Utils.safeParseInt(stringData[ctr].substring(0, 2)); } - var resolution = component.resolutions[r]; - var numprecincts = resolution.precinctParameters.numprecincts; - if (p >= numprecincts) { - continue; + if (stringData[ctr].length >= 4) { + minutes = daikon2.Utils.safeParseInt(stringData[ctr].substring(2, 4)); } - for (; l < layersCount;) { - var packet = createPacket(resolution, p, l); - l++; - return packet; + if (stringData[ctr].length >= 6) { + seconds = daikon2.Utils.safeParseFloat(stringData[ctr].substring(4)); } - l = 0; } - c = 0; + data[ctr] = Math.round(hours * 60 * 60 * 1e3 + minutes * 60 * 1e3 + seconds * 1e3); } - p = 0; + return data; } + return stringData; }; - } - function PositionComponentResolutionLayerIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var precinctsSizes = getPrecinctSizesInImageScale(tile); - var precinctsIterationSizes = precinctsSizes; - var l = 0, r = 0, c = 0, px = 0, py = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.4 Position-component-resolution-layer - for (; py < precinctsIterationSizes.maxNumHigh; py++) { - for (; px < precinctsIterationSizes.maxNumWide; px++) { - for (; c < componentsCount; c++) { - var component = tile.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - for (; r <= decompositionLevelsCount; r++) { - var resolution = component.resolutions[r]; - var sizeInImageScale = - precinctsSizes.components[c].resolutions[r]; - var k = getPrecinctIndexIfExist( - px, - py, - sizeInImageScale, - precinctsIterationSizes, - resolution); - if (k === null) { - continue; - } - for (; l < layersCount;) { - var packet = createPacket(resolution, k, l); - l++; - return packet; - } - l = 0; - } - r = 0; - } - c = 0; - } - px = 0; + daikon2.Tag.getDoubleStringValue = function(rawData) { + var stringData = daikon2.Tag.getStringValue(rawData), data = [], ctr; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + data[ctr] = parseFloat(stringData[ctr]); } + return data; }; - } - function ComponentPositionResolutionLayerIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var precinctsSizes = getPrecinctSizesInImageScale(tile); - var l = 0, r = 0, c = 0, px = 0, py = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.5 Component-position-resolution-layer - for (; c < componentsCount; ++c) { - var component = tile.components[c]; - var precinctsIterationSizes = precinctsSizes.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - for (; py < precinctsIterationSizes.maxNumHigh; py++) { - for (; px < precinctsIterationSizes.maxNumWide; px++) { - for (; r <= decompositionLevelsCount; r++) { - var resolution = component.resolutions[r]; - var sizeInImageScale = precinctsIterationSizes.resolutions[r]; - var k = getPrecinctIndexIfExist( - px, - py, - sizeInImageScale, - precinctsIterationSizes, - resolution); - if (k === null) { - continue; - } - for (; l < layersCount;) { - var packet = createPacket(resolution, k, l); - l++; - return packet; - } - l = 0; - } - r = 0; - } - px = 0; + daikon2.Tag.getIntegerStringValue = function(rawData) { + var stringData = daikon2.Tag.getStringValue(rawData), data = [], ctr; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + data[ctr] = parseInt(stringData[ctr], 10); + } + return data; + }; + daikon2.Tag.getSingleStringValue = function(rawData, maxLength, charset, vr) { + var len = rawData.byteLength; + if (maxLength) { + len = Math.min(rawData.byteLength, maxLength); + } + return [daikon2.Utils.trim(daikon2.Utils.getStringAt(rawData, 0, len, charset, vr))]; + }; + daikon2.Tag.getPersonNameStringValue = function(rawData, charset, vr) { + var stringData = daikon2.Tag.getStringValue(rawData, charset, vr), data = [], ctr; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + data[ctr] = stringData[ctr].replace("^", " "); + } + return data; + }; + daikon2.Tag.convertPrivateValue = function(group, element, rawData) { + var ctr, privReader; + for (ctr = 0; ctr < daikon2.Tag.PRIVATE_DATA_READERS.length; ctr += 1) { + privReader = new daikon2.Tag.PRIVATE_DATA_READERS[ctr](rawData.buffer); + if (privReader.canRead(group, element)) { + return privReader.readHeader(); } - py = 0; } + return rawData; }; - } - function getPrecinctIndexIfExist( - pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { - var posX = pxIndex * precinctIterationSizes.minWidth; - var posY = pyIndex * precinctIterationSizes.minHeight; - if (posX % sizeInImageScale.width !== 0 || - posY % sizeInImageScale.height !== 0) { - return null; - } - var startPrecinctRowIndex = - (posY / sizeInImageScale.width) * - resolution.precinctParameters.numprecinctswide; - return (posX / sizeInImageScale.height) + startPrecinctRowIndex; - } - function getPrecinctSizesInImageScale(tile) { - var componentsCount = tile.components.length; - var minWidth = Number.MAX_VALUE; - var minHeight = Number.MAX_VALUE; - var maxNumWide = 0; - var maxNumHigh = 0; - var sizePerComponent = new Array(componentsCount); - for (var c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - var sizePerResolution = new Array(decompositionLevelsCount + 1); - var minWidthCurrentComponent = Number.MAX_VALUE; - var minHeightCurrentComponent = Number.MAX_VALUE; - var maxNumWideCurrentComponent = 0; - var maxNumHighCurrentComponent = 0; - var scale = 1; - for (var r = decompositionLevelsCount; r >= 0; --r) { - var resolution = component.resolutions[r]; - var widthCurrentResolution = - scale * resolution.precinctParameters.precinctWidth; - var heightCurrentResolution = - scale * resolution.precinctParameters.precinctHeight; - minWidthCurrentComponent = Math.min( - minWidthCurrentComponent, - widthCurrentResolution); - minHeightCurrentComponent = Math.min( - minHeightCurrentComponent, - heightCurrentResolution); - maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, - resolution.precinctParameters.numprecinctswide); - maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, - resolution.precinctParameters.numprecinctshigh); - sizePerResolution[r] = { - width: widthCurrentResolution, - height: heightCurrentResolution - }; - scale <<= 1; - } - minWidth = Math.min(minWidth, minWidthCurrentComponent); - minHeight = Math.min(minHeight, minHeightCurrentComponent); - maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); - maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); - sizePerComponent[c] = { - resolutions: sizePerResolution, - minWidth: minWidthCurrentComponent, - minHeight: minHeightCurrentComponent, - maxNumWide: maxNumWideCurrentComponent, - maxNumHigh: maxNumHighCurrentComponent - }; - } - return { - components: sizePerComponent, - minWidth: minWidth, - minHeight: minHeight, - maxNumWide: maxNumWide, - maxNumHigh: maxNumHigh + daikon2.Tag.convertValue = function(vr, rawData, littleEndian, charset) { + var data = null; + if (vr === "AE") { + data = daikon2.Tag.getSingleStringValue(rawData, daikon2.Tag.VR_AE_MAX_LENGTH); + } else if (vr === "AS") { + data = daikon2.Tag.getFixedLengthStringValue(rawData, daikon2.Tag.VR_AS_MAX_LENGTH); + } else if (vr === "AT") { + data = daikon2.Tag.getUnsignedInteger16(rawData, littleEndian); + } else if (vr === "CS") { + data = daikon2.Tag.getStringValue(rawData); + } else if (vr === "DA") { + data = daikon2.Tag.getDateStringValue(rawData); + } else if (vr === "DS") { + data = daikon2.Tag.getDoubleStringValue(rawData); + } else if (vr === "DT") { + data = daikon2.Tag.getDateTimeStringValue(rawData); + } else if (vr === "FL") { + data = daikon2.Tag.getFloat32(rawData, littleEndian); + } else if (vr === "FD") { + data = daikon2.Tag.getFloat64(rawData, littleEndian); + } else if (vr === "FE") { + data = daikon2.Tag.getDoubleElscint(rawData, littleEndian); + } else if (vr === "IS") { + data = daikon2.Tag.getIntegerStringValue(rawData); + } else if (vr === "LO") { + data = daikon2.Tag.getStringValue(rawData, charset, vr); + } else if (vr === "LT") { + data = daikon2.Tag.getSingleStringValue(rawData, daikon2.Tag.VR_AT_MAX_LENGTH, charset, vr); + } else if (vr === "OB") { + data = rawData; + } else if (vr === "OD") { + data = rawData; + } else if (vr === "OF") { + data = rawData; + } else if (vr === "OW") { + data = rawData; + } else if (vr === "PN") { + data = daikon2.Tag.getPersonNameStringValue(rawData, charset, vr); + } else if (vr === "SH") { + data = daikon2.Tag.getStringValue(rawData, charset, vr); + } else if (vr === "SL") { + data = daikon2.Tag.getSignedInteger32(rawData, littleEndian); + } else if (vr === "SQ") { + data = null; + } else if (vr === "SS") { + data = daikon2.Tag.getSignedInteger16(rawData, littleEndian); + } else if (vr === "ST") { + data = daikon2.Tag.getSingleStringValue(rawData, daikon2.Tag.VR_ST_MAX_LENGTH, charset, vr); + } else if (vr === "TM") { + data = daikon2.Tag.getTimeStringValue(rawData); + } else if (vr === "UI") { + data = daikon2.Tag.getStringValue(rawData); + } else if (vr === "UL") { + data = daikon2.Tag.getUnsignedInteger32(rawData, littleEndian); + } else if (vr === "UN") { + data = rawData; + } else if (vr === "US") { + data = daikon2.Tag.getUnsignedInteger16(rawData, littleEndian); + } else if (vr === "UT") { + data = daikon2.Tag.getSingleStringValue(rawData, Number.MAX_SAFE_INTEGER, charset, vr); + } else if (vr === "UC") { + data = daikon2.Tag.getStringValue(rawData); + } + return data; }; - } - function buildPackets(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var componentsCount = siz.Csiz; - // Creating resolutions and sub-bands for each component - for (var c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - // Section B.5 Resolution levels and sub-bands - var resolutions = []; - var subbands = []; - for (var r = 0; r <= decompositionLevelsCount; r++) { - var blocksDimensions = getBlocksDimensions(context, component, r); - var resolution = {}; - var scale = 1 << (decompositionLevelsCount - r); - resolution.trx0 = Math.ceil(component.tcx0 / scale); - resolution.try0 = Math.ceil(component.tcy0 / scale); - resolution.trx1 = Math.ceil(component.tcx1 / scale); - resolution.try1 = Math.ceil(component.tcy1 / scale); - resolution.resLevel = r; - buildPrecincts(context, resolution, blocksDimensions); - resolutions.push(resolution); - - var subband; - if (r === 0) { - // one sub-band (LL) with last decomposition - subband = {}; - subband.type = 'LL'; - subband.tbx0 = Math.ceil(component.tcx0 / scale); - subband.tby0 = Math.ceil(component.tcy0 / scale); - subband.tbx1 = Math.ceil(component.tcx1 / scale); - subband.tby1 = Math.ceil(component.tcy1 / scale); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolution.subbands = [subband]; + daikon2.Tag.prototype.toString = function(level, html) { + var valueStr = "", ctr, groupStr = daikon2.Utils.dec2hex(this.group), elemStr = daikon2.Utils.dec2hex(this.element), tagStr = "(" + groupStr + "," + elemStr + ")", des = "", padding; + if (level === void 0) { + level = 0; + } + padding = ""; + for (ctr = 0; ctr < level; ctr += 1) { + if (html) { + padding += "  "; } else { - var bscale = 1 << (decompositionLevelsCount - r + 1); - var resolutionSubbands = []; - // three sub-bands (HL, LH and HH) with rest of decompositions - subband = {}; - subband.type = 'HL'; - subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); - subband.tby0 = Math.ceil(component.tcy0 / bscale); - subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); - subband.tby1 = Math.ceil(component.tcy1 / bscale); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolutionSubbands.push(subband); - - subband = {}; - subband.type = 'LH'; - subband.tbx0 = Math.ceil(component.tcx0 / bscale); - subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); - subband.tbx1 = Math.ceil(component.tcx1 / bscale); - subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolutionSubbands.push(subband); - - subband = {}; - subband.type = 'HH'; - subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); - subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); - subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); - subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolutionSubbands.push(subband); - - resolution.subbands = resolutionSubbands; + padding += " "; } } - component.resolutions = resolutions; - component.subbands = subbands; - } - // Generate the packets sequence - var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; - switch (progressionOrder) { - case 0: - tile.packetsIterator = - new LayerResolutionComponentPositionIterator(context); - break; - case 1: - tile.packetsIterator = - new ResolutionLayerComponentPositionIterator(context); - break; - case 2: - tile.packetsIterator = - new ResolutionPositionComponentLayerIterator(context); - break; - case 3: - tile.packetsIterator = - new PositionComponentResolutionLayerIterator(context); - break; - case 4: - tile.packetsIterator = - new ComponentPositionResolutionLayerIterator(context); - break; - default: - throw new Error('JPX Error: Unsupported progression order ' + - progressionOrder); - } - } - function parseTilePackets(context, data, offset, dataLength) { - var position = 0; - var buffer, bufferSize = 0, skipNextBit = false; - function readBits(count) { - while (bufferSize < count) { - if(offset + position >= data.length){ - throw new Error("Unexpected EOF"); - } - var b = data[offset + position]; - position++; - if (skipNextBit) { - buffer = (buffer << 7) | b; - bufferSize += 7; - skipNextBit = false; - } else { - buffer = (buffer << 8) | b; - bufferSize += 8; + if (this.sublist) { + for (ctr = 0; ctr < this.value.length; ctr += 1) { + valueStr += "\n" + this.value[ctr].toString(level + 1, html); } - if (b === 0xFF) { - skipNextBit = true; + } else if (this.vr === "SQ") { + valueStr = ""; + } else if (this.isPixelData()) { + valueStr = ""; + } else if (!this.value) { + valueStr = ""; + } else { + if (html && this.preformatted) { + valueStr = "[

" + this.value + "
]"; + } else { + valueStr = "[" + this.value + "]"; } } - bufferSize -= count; - return (buffer >>> bufferSize) & ((1 << count) - 1); - } - function skipMarkerIfEqual(value) { - if (data[offset + position - 1] === 0xFF && - data[offset + position] === value) { - skipBytes(1); - return true; - } else if (data[offset + position] === 0xFF && - data[offset + position + 1] === value) { - skipBytes(2); - return true; - } - return false; - } - function skipBytes(count) { - position += count; - } - function alignToByte() { - bufferSize = 0; - if (skipNextBit) { - position++; - skipNextBit = false; - } - } - function readCodingpasses() { - if (readBits(1) === 0) { - return 1; - } - if (readBits(1) === 0) { - return 2; - } - var value = readBits(2); - if (value < 3) { - return value + 3; + if (this.isSublistItem()) { + tagStr = "Sequence Item"; + } else if (this.isSublistItemDelim()) { + tagStr = "Sequence Item Delimiter"; + } else if (this.isSequenceDelim()) { + tagStr = "Sequence Delimiter"; + } else if (this.isPixelData()) { + tagStr = "Pixel Data"; + } else { + des = daikon2.Utils.convertCamcelCaseToTitleCase(daikon2.Dictionary.getDescription(this.group, this.element)); } - value = readBits(5); - if (value < 31) { - return value + 6; + valueStr = xss(valueStr); + if (html) { + return padding + "" + tagStr + "   " + des + "   " + valueStr; + } else { + return padding + " " + tagStr + " " + des + " " + valueStr; } - value = readBits(7); - return value + 37; + }; + daikon2.Tag.prototype.toHTMLString = function(level) { + return this.toString(level, true); + }; + daikon2.Tag.prototype.isTransformSyntax = function() { + return this.group === daikon2.Tag.TAG_TRANSFER_SYNTAX[0] && this.element === daikon2.Tag.TAG_TRANSFER_SYNTAX[1]; + }; + daikon2.Tag.prototype.isCharset = function() { + return this.group === daikon2.Tag.TAG_SPECIFIC_CHAR_SET[0] && this.element === daikon2.Tag.TAG_SPECIFIC_CHAR_SET[1]; + }; + daikon2.Tag.prototype.isPixelData = function() { + return this.group === daikon2.Tag.TAG_PIXEL_DATA[0] && this.element === daikon2.Tag.TAG_PIXEL_DATA[1]; + }; + daikon2.Tag.prototype.isPrivateData = function() { + return (this.group & 1) === 1; + }; + daikon2.Tag.prototype.hasInterpretedPrivateData = function() { + return this.isPrivateData() && daikon2.Utils.isString(this.value); + }; + daikon2.Tag.prototype.isSublistItem = function() { + return this.group === daikon2.Tag.TAG_SUBLIST_ITEM[0] && this.element === daikon2.Tag.TAG_SUBLIST_ITEM[1]; + }; + daikon2.Tag.prototype.isSublistItemDelim = function() { + return this.group === daikon2.Tag.TAG_SUBLIST_ITEM_DELIM[0] && this.element === daikon2.Tag.TAG_SUBLIST_ITEM_DELIM[1]; + }; + daikon2.Tag.prototype.isSequenceDelim = function() { + return this.group === daikon2.Tag.TAG_SUBLIST_SEQ_DELIM[0] && this.element === daikon2.Tag.TAG_SUBLIST_SEQ_DELIM[1]; + }; + daikon2.Tag.prototype.isMetaLength = function() { + return this.group === daikon2.Tag.TAG_META_LENGTH[0] && this.element === daikon2.Tag.TAG_META_LENGTH[1]; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Tag; } - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var sopMarkerUsed = context.COD.sopMarkerUsed; - var ephMarkerUsed = context.COD.ephMarkerUsed; - var packetsIterator = tile.packetsIterator; - while (position < dataLength) { - try{ - alignToByte(); - if (sopMarkerUsed && skipMarkerIfEqual(0x91)) { - // Skip also marker segment length and packet sequence ID - skipBytes(4); - } - var packet = packetsIterator.nextPacket(); - if (packet === undefined) { - //No more packets. Stream is probably truncated. - return; - } - if (!readBits(1)) { - continue; - } - var layerNumber = packet.layerNumber; - var queue = [], codeblock; - for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) { - codeblock = packet.codeblocks[i]; - var precinct = codeblock.precinct; - var codeblockColumn = codeblock.cbx - precinct.cbxMin; - var codeblockRow = codeblock.cby - precinct.cbyMin; - var codeblockIncluded = false; - var firstTimeInclusion = false; - var valueReady; - if (codeblock['included'] !== undefined) { - codeblockIncluded = !!readBits(1); - } else { - // reading inclusion tree - precinct = codeblock.precinct; - var inclusionTree, zeroBitPlanesTree; - if (precinct['inclusionTree'] !== undefined) { - inclusionTree = precinct.inclusionTree; - } else { - // building inclusion and zero bit-planes trees - var width = precinct.cbxMax - precinct.cbxMin + 1; - var height = precinct.cbyMax - precinct.cbyMin + 1; - inclusionTree = new InclusionTree(width, height); - zeroBitPlanesTree = new TagTree(width, height); - precinct.inclusionTree = inclusionTree; - precinct.zeroBitPlanesTree = zeroBitPlanesTree; - } + } +}); - inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber); - while (true) { - if (position >= data.length) { - return; - } - if (inclusionTree.isAboveThreshold()){ - break; - } - if (inclusionTree.isKnown()) { - inclusionTree.nextLevel(); - continue; - } - if (readBits(1)) { - inclusionTree.setKnown(); - if (inclusionTree.isLeaf()) { - codeblock.included = true; - codeblockIncluded = firstTimeInclusion = true; - break; - } else { - inclusionTree.nextLevel(); - } - } else { - inclusionTree.incrementValue(); - } - } - } - if (!codeblockIncluded) { - continue; - } - if (firstTimeInclusion) { - zeroBitPlanesTree = precinct.zeroBitPlanesTree; - zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); - while (true) { - if (position >= data.length) { - return; - } - if (readBits(1)) { - valueReady = !zeroBitPlanesTree.nextLevel(); - if (valueReady) { - break; - } - } else { - zeroBitPlanesTree.incrementValue(); - } - } - codeblock.zeroBitPlanes = zeroBitPlanesTree.value; - } - var codingpasses = readCodingpasses(); - while (readBits(1)) { - codeblock.Lblock++; - } - var codingpassesLog2 = log2(codingpasses); - // rounding down log2 - var bits = ((codingpasses < (1 << codingpassesLog2)) ? - codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; - var codedDataLength = readBits(bits); - queue.push({ - codeblock: codeblock, - codingpasses: codingpasses, - dataLength: codedDataLength - }); +// src/rle.js +var require_rle = __commonJS({ + "src/rle.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.RLE = daikon2.RLE || function() { + this.rawData = null; + this.bytesRead = 0; + this.bytesPut = 0; + this.segElemPut = 0; + this.numSegments = 0; + this.segmentOffsets = []; + this.littleEndian = true; + this.segmentIndex = 0; + this.numElements = 0; + this.size = 0; + this.output = null; + }; + daikon2.RLE.HEADER_SIZE = 64; + daikon2.RLE.prototype.decode = function(data, littleEndian, numElements) { + var ctr; + this.rawData = new DataView(data); + this.littleEndian = littleEndian; + this.numElements = numElements; + this.readHeader(); + this.output = new DataView(new ArrayBuffer(this.size)); + for (ctr = 0; ctr < this.numSegments; ctr += 1) { + this.readNextSegment(); + } + return this.processData(); + }; + daikon2.RLE.prototype.processData = function() { + var ctr, temp1, temp2, temp3, value, outputProcessed, offset; + if (this.numSegments === 1) { + return this.output; + } else if (this.numSegments === 2) { + outputProcessed = new DataView(new ArrayBuffer(this.size)); + for (ctr = 0; ctr < this.numElements; ctr += 1) { + temp1 = this.output.getInt8(ctr); + temp2 = this.output.getInt8(ctr + this.numElements); + value = (temp1 & 255) << 8 | temp2 & 255; + outputProcessed.setInt16(ctr * 2, value, this.littleEndian); } - alignToByte(); - if (ephMarkerUsed) { - skipMarkerIfEqual(0x92); - } - while (queue.length > 0) { - var packetItem = queue.shift(); - codeblock = packetItem.codeblock; - if (codeblock['data'] === undefined) { - codeblock.data = []; - } - codeblock.data.push({ - data: data, - start: offset + position, - end: offset + position + packetItem.dataLength, - codingpasses: packetItem.codingpasses - }); - position += packetItem.dataLength; + return outputProcessed; + } else if (this.numSegments === 3) { + outputProcessed = new DataView(new ArrayBuffer(this.size)); + offset = 2 * this.numElements; + for (ctr = 0; ctr < this.numElements; ctr += 1) { + outputProcessed.setInt8(ctr * 3, this.output.getInt8(ctr)); + outputProcessed.setInt8(ctr * 3 + 1, this.output.getInt8(ctr + this.numElements)); + outputProcessed.setInt8(ctr * 3 + 2, this.output.getInt8(ctr + offset)); } - } catch (e) { - return; - } - } - return position; - } - function copyCoefficients(coefficients, levelWidth, levelHeight, subband, - delta, mb, reversible, segmentationSymbolUsed) { - var x0 = subband.tbx0; - var y0 = subband.tby0; - var width = subband.tbx1 - subband.tbx0; - var codeblocks = subband.codeblocks; - var right = subband.type.charAt(0) === 'H' ? 1 : 0; - var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0; - - for (var i = 0, ii = codeblocks.length; i < ii; ++i) { - var codeblock = codeblocks[i]; - var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; - var blockHeight = codeblock.tby1_ - codeblock.tby0_; - if (blockWidth === 0 || blockHeight === 0) { - continue; + return outputProcessed; + } else { + throw new Error("RLE data with " + this.numSegments + " segments is not supported!"); } - if (codeblock['data'] === undefined) { - continue; + }; + daikon2.RLE.prototype.readHeader = function() { + var ctr; + this.numSegments = this.getInt32(); + this.size = this.numElements * this.numSegments; + for (ctr = 0; ctr < this.numSegments; ctr += 1) { + this.segmentOffsets[ctr] = this.getInt32(); } - - var bitModel, currentCodingpassType; - bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, - codeblock.zeroBitPlanes, mb); - currentCodingpassType = 2; // first bit plane starts from cleanup - - // collect data - var data = codeblock.data, totalLength = 0, codingpasses = 0; - var j, jj, dataItem; - for (j = 0, jj = data.length; j < jj; j++) { - dataItem = data[j]; - totalLength += dataItem.end - dataItem.start; - codingpasses += dataItem.codingpasses; - } - var encodedData = new Int16Array(totalLength); - var position = 0; - for (j = 0, jj = data.length; j < jj; j++) { - dataItem = data[j]; - var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); - encodedData.set(chunk, position); - position += chunk.length; - } - // decoding the item - var decoder = new ArithmeticDecoder(encodedData, 0, totalLength); - bitModel.setDecoder(decoder); - - for (j = 0; j < codingpasses; j++) { - switch (currentCodingpassType) { - case 0: - bitModel.runSignificancePropogationPass(); - break; - case 1: - bitModel.runMagnitudeRefinementPass(); - break; - case 2: - bitModel.runCleanupPass(); - if (segmentationSymbolUsed) { - bitModel.checkSegmentationSymbol(); - } - break; + this.bytesRead = daikon2.RLE.HEADER_SIZE; + }; + daikon2.RLE.prototype.hasValidInput = function() { + return this.bytesRead < this.rawData.buffer.byteLength && this.bytesPut < this.size && this.segElemPut < this.numElements; + }; + daikon2.RLE.prototype.readNextSegment = function() { + var code; + this.bytesRead = this.segmentOffsets[this.segmentIndex]; + this.segElemPut = 0; + while (this.hasValidInput()) { + code = this.get(); + if (code >= 0 && code < 128) { + this.readLiteral(code); + } else if (code <= -1 && code > -128) { + this.readEncoded(code); + } else if (code === -128) { + console.warn("RLE: unsupported code!"); } - currentCodingpassType = (currentCodingpassType + 1) % 3; } - - var offset = (codeblock.tbx0_ - x0) + (codeblock.tby0_ - y0) * width; - var sign = bitModel.coefficentsSign; - var magnitude = bitModel.coefficentsMagnitude; - var bitsDecoded = bitModel.bitsDecoded; - var magnitudeCorrection = reversible ? 0 : 0.5; - var k, n, nb; - position = 0; - // Do the interleaving of Section F.3.3 here, so we do not need - // to copy later. LL level is not interleaved, just copied. - var interleave = (subband.type !== 'LL'); - for (j = 0; j < blockHeight; j++) { - var row = (offset / width) | 0; // row in the non-interleaved subband - var levelOffset = 2 * row * (levelWidth - width) + right + bottom; - for (k = 0; k < blockWidth; k++) { - n = magnitude[position]; - if (n !== 0) { - n = (n + magnitudeCorrection) * delta; - if (sign[position] !== 0) { - n = -n; - } - nb = bitsDecoded[position]; - var pos = interleave ? (levelOffset + (offset << 1)) : offset; - if (reversible && (nb >= mb)) { - coefficients[pos] = n; - } else { - coefficients[pos] = n * (1 << (mb - nb)); - } - } - offset++; - position++; + this.segmentIndex += 1; + }; + daikon2.RLE.prototype.readLiteral = function(code) { + var ctr, length = code + 1; + if (this.hasValidInput()) { + for (ctr = 0; ctr < length; ctr += 1) { + this.put(this.get()); } - offset += width - blockWidth; + } else { + console.warn("RLE: insufficient data!"); } + }; + daikon2.RLE.prototype.readEncoded = function(code) { + var ctr, runLength = 1 - code, encoded = this.get(); + for (ctr = 0; ctr < runLength; ctr += 1) { + this.put(encoded); + } + }; + daikon2.RLE.prototype.getInt32 = function() { + var value = this.rawData.getInt32(this.bytesRead, this.littleEndian); + this.bytesRead += 4; + return value; + }; + daikon2.RLE.prototype.getInt16 = function() { + var value = this.rawData.getInt16(this.bytesRead, this.littleEndian); + this.bytesRead += 2; + return value; + }; + daikon2.RLE.prototype.get = function() { + var value = this.rawData.getInt8(this.bytesRead); + this.bytesRead += 1; + return value; + }; + daikon2.RLE.prototype.put = function(val) { + this.output.setInt8(this.bytesPut, val); + this.bytesPut += 1; + this.segElemPut += 1; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.RLE; } } - function transformTile(context, tile, c) { - var component = tile.components[c]; - var codingStyleParameters = component.codingStyleParameters; - var quantizationParameters = component.quantizationParameters; - var decompositionLevelsCount = - codingStyleParameters.decompositionLevelsCount; - var spqcds = quantizationParameters.SPqcds; - var scalarExpounded = quantizationParameters.scalarExpounded; - var guardBits = quantizationParameters.guardBits; - var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; - var precision = context.components[c].precision; - - var reversible = codingStyleParameters.reversibleTransformation; - var transform = (reversible ? new ReversibleTransform() : - new IrreversibleTransform()); - - var subbandCoefficients = []; - var b = 0; - for (var i = 0; i <= decompositionLevelsCount; i++) { - var resolution = component.resolutions[i]; - - var width = resolution.trx1 - resolution.trx0; - var height = resolution.try1 - resolution.try0; - // Allocate space for the whole sublevel. - var coefficients = new Float32Array(width * height); - - for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { - var mu, epsilon; - if (!scalarExpounded) { - // formula E-5 - mu = spqcds[0].mu; - epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0); - } else { - mu = spqcds[b].mu; - epsilon = spqcds[b].epsilon; - b++; - } - - var subband = resolution.subbands[j]; - var gainLog2 = SubbandsGainLog2[subband.type]; - - // calulate quantization coefficient (Section E.1.1.1) - var delta = (reversible ? 1 : - Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048)); - var mb = (guardBits + epsilon - 1); +}); - // In the first resolution level, copyCoefficients will fill the - // whole array with coefficients. In the succeding passes, - // copyCoefficients will consecutively fill in the values that belong - // to the interleaved positions of the HL, LH, and HH coefficients. - // The LL coefficients will then be interleaved in Transform.iterate(). - copyCoefficients(coefficients, width, height, subband, delta, mb, - reversible, segmentationSymbolUsed); - } - subbandCoefficients.push({ - width: width, - height: height, - items: coefficients - }); +// node_modules/jpeg-lossless-decoder-js/src/component-spec.js +var require_component_spec = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/component-spec.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.ComponentSpec = jpeg2.lossless.ComponentSpec || function() { + this.hSamp = 0; + this.quantTableSel = 0; + this.vSamp = 0; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.ComponentSpec; } + } +}); - var result = transform.calculate(subbandCoefficients, - component.tcx0, component.tcy0); - return { - left: component.tcx0, - top: component.tcy0, - width: result.width, - height: result.height, - items: result.items +// node_modules/jpeg-lossless-decoder-js/src/data-stream.js +var require_data_stream = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/data-stream.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || function(data, offset, length) { + if (offset === void 0 && length === void 0) { + this.buffer = new Uint8Array(data); + } else { + this.buffer = new Uint8Array(data, offset, length); + } + this.index = 0; + }; + jpeg2.lossless.DataStream.prototype.get16 = function() { + var value = (this.buffer[this.index] << 8) + this.buffer[this.index + 1]; + this.index += 2; + return value; }; + jpeg2.lossless.DataStream.prototype.get8 = function() { + var value = this.buffer[this.index]; + this.index += 1; + return value; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.DataStream; + } } - function transformComponents(context) { - var siz = context.SIZ; - var components = context.components; - var componentsCount = siz.Csiz; - var resultImages = []; - for (var i = 0, ii = context.tiles.length; i < ii; i++) { - var tile = context.tiles[i]; - var transformedTiles = []; +}); + +// node_modules/jpeg-lossless-decoder-js/src/utils.js +var require_utils = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/utils.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.Utils = jpeg2.lossless.Utils || {}; + jpeg2.lossless.Utils.createArray = function(length) { + var arr = new Array(length || 0), i2 = length; + if (arguments.length > 1) { + var args = Array.prototype.slice.call(arguments, 1); + while (i2--) + arr[length - 1 - i2] = jpeg2.lossless.Utils.createArray.apply(this, args); + } + return arr; + }; + jpeg2.lossless.Utils.makeCRCTable = function() { var c; - for (c = 0; c < componentsCount; c++) { - transformedTiles[c] = transformTile(context, tile, c); + var crcTable = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + crcTable[n] = c; } - var tile0 = transformedTiles[0]; - var isSigned = components[0].isSigned; - if (isSigned) { - var out = new Int16Array(tile0.items.length * componentsCount); - } else { - var out = new Uint16Array(tile0.items.length * componentsCount); - } - var result = { - left: tile0.left, - top: tile0.top, - width: tile0.width, - height: tile0.height, - items: out - }; - - // Section G.2.2 Inverse multi component transform - var shift, offset, max, min, maxK; - var pos = 0, j, jj, y0, y1, y2, r, g, b, k, val; - if (tile.codingStyleDefaultParameters.multipleComponentTransform) { - var fourComponents = componentsCount === 4; - var y0items = transformedTiles[0].items; - var y1items = transformedTiles[1].items; - var y2items = transformedTiles[2].items; - var y3items = fourComponents ? transformedTiles[3].items : null; - - // HACK: The multiple component transform formulas below assume that - // all components have the same precision. With this in mind, we - // compute shift and offset only once. - shift = components[0].precision - 8; - offset = (128 << shift) + 0.5; - max = 255 * (1 << shift); - maxK = max * 0.5; - min = -maxK; - - var component0 = tile.components[0]; - var alpha01 = componentsCount - 3; - jj = y0items.length; - if (!component0.codingStyleParameters.reversibleTransformation) { - // inverse irreversible multiple component transform - for (j = 0; j < jj; j++, pos += alpha01) { - y0 = y0items[j] + offset; - y1 = y1items[j]; - y2 = y2items[j]; - r = y0 + 1.402 * y2; - g = y0 - 0.34413 * y1 - 0.71414 * y2; - b = y0 + 1.772 * y1; - out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; - out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; - out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; - } - } else { - // inverse reversible multiple component transform - for (j = 0; j < jj; j++, pos += alpha01) { - y0 = y0items[j] + offset; - y1 = y1items[j]; - y2 = y2items[j]; - g = y0 - ((y2 + y1) >> 2); - r = g + y2; - b = g + y1; - out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; - out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; - out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; - } - } - if (fourComponents) { - for (j = 0, pos = 3; j < jj; j++, pos += 4) { - k = y3items[j]; - out[pos] = k <= min ? 0 : k >= maxK ? 255 : (k + offset) >> shift; - } - } - } else { // no multi-component transform - for (c = 0; c < componentsCount; c++) { - if (components[c].precision === 8){ - var items = transformedTiles[c].items; - shift = components[c].precision - 8; - offset = (128 << shift) + 0.5; - max = (127.5 * (1 << shift)); - min = -max; - for (pos = c, j = 0, jj = items.length; j < jj; j++) { - val = items[j]; - out[pos] = val <= min ? 0 : - val >= max ? 255 : (val + offset) >> shift; - pos += componentsCount; - } - }else{ - var isSigned = components[c].isSigned; - var items = transformedTiles[c].items; + return crcTable; + }; + jpeg2.lossless.Utils.crc32 = function(dataView) { + var uint8view = new Uint8Array(dataView.buffer); + var crcTable = jpeg2.lossless.Utils.crcTable || (jpeg2.lossless.Utils.crcTable = jpeg2.lossless.Utils.makeCRCTable()); + var crc = 0 ^ -1; + for (var i2 = 0; i2 < uint8view.length; i2++) { + crc = crc >>> 8 ^ crcTable[(crc ^ uint8view[i2]) & 255]; + } + return (crc ^ -1) >>> 0; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.Utils; + } + } +}); - if(isSigned){ - for (pos = c, j = 0, jj = items.length; j < jj; j++) { - out[pos] = items[j]; - pos += componentsCount; - } - }else{ - shift = components[c].precision - 8; - offset = (128 << shift) + 0.5; - var precisionMax = Math.pow(2,components[c].precision)-1; - for (pos = c, j = 0, jj = items.length; j < jj; j++) { - val = items[j]; - out[pos] = Math.max(Math.min((val + offset),precisionMax),0); - pos += componentsCount; - } +// node_modules/jpeg-lossless-decoder-js/src/huffman-table.js +var require_huffman_table = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/huffman-table.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); + jpeg2.lossless.HuffmanTable = jpeg2.lossless.HuffmanTable || function() { + this.l = jpeg2.lossless.Utils.createArray(4, 2, 16); + this.th = []; + this.v = jpeg2.lossless.Utils.createArray(4, 2, 16, 200); + this.tc = jpeg2.lossless.Utils.createArray(4, 2); + this.tc[0][0] = 0; + this.tc[1][0] = 0; + this.tc[2][0] = 0; + this.tc[3][0] = 0; + this.tc[0][1] = 0; + this.tc[1][1] = 0; + this.tc[2][1] = 0; + this.tc[3][1] = 0; + this.th[0] = 0; + this.th[1] = 0; + this.th[2] = 0; + this.th[3] = 0; + }; + jpeg2.lossless.HuffmanTable.MSB = 2147483648; + jpeg2.lossless.HuffmanTable.prototype.read = function(data, HuffTab) { + var count = 0, length, temp, t, c, i2, j; + length = data.get16(); + count += 2; + while (count < length) { + temp = data.get8(); + count += 1; + t = temp & 15; + if (t > 3) { + throw new Error("ERROR: Huffman table ID > 3"); + } + c = temp >> 4; + if (c > 2) { + throw new Error("ERROR: Huffman table [Table class > 2 ]"); + } + this.th[t] = 1; + this.tc[t][c] = 1; + for (i2 = 0; i2 < 16; i2 += 1) { + this.l[t][c][i2] = data.get8(); + count += 1; + } + for (i2 = 0; i2 < 16; i2 += 1) { + for (j = 0; j < this.l[t][c][i2]; j += 1) { + if (count > length) { + throw new Error("ERROR: Huffman table format error [count>Lh]"); } + this.v[t][c][i2][j] = data.get8(); + count += 1; } } } - resultImages.push(result); - } - return resultImages; - } - function initializeTile(context, tileIndex) { - var siz = context.SIZ; - var componentsCount = siz.Csiz; - var tile = context.tiles[tileIndex]; - for (var c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - var qcdOrQcc = (context.currentTile.QCC[c] !== undefined ? - context.currentTile.QCC[c] : context.currentTile.QCD); - component.quantizationParameters = qcdOrQcc; - var codOrCoc = (context.currentTile.COC[c] !== undefined ? - context.currentTile.COC[c] : context.currentTile.COD); - component.codingStyleParameters = codOrCoc; - } - tile.codingStyleDefaultParameters = context.currentTile.COD; - } - - // Section B.10.2 Tag trees - var TagTree = (function TagTreeClosure() { - function TagTree(width, height) { - var levelsLength = log2(Math.max(width, height)) + 1; - this.levels = []; - for (var i = 0; i < levelsLength; i++) { - var level = { - width: width, - height: height, - items: [] - }; - this.levels.push(level); - width = Math.ceil(width / 2); - height = Math.ceil(height / 2); + if (count !== length) { + throw new Error("ERROR: Huffman table format error [count!=Lf]"); } - } - TagTree.prototype = { - reset: function TagTree_reset(i, j) { - var currentLevel = 0, value = 0, level; - while (currentLevel < this.levels.length) { - level = this.levels[currentLevel]; - var index = i + j * level.width; - if (level.items[index] !== undefined) { - value = level.items[index]; - break; + for (i2 = 0; i2 < 4; i2 += 1) { + for (j = 0; j < 2; j += 1) { + if (this.tc[i2][j] !== 0) { + this.buildHuffTable(HuffTab[i2][j], this.l[i2][j], this.v[i2][j]); } - level.index = index; - i >>= 1; - j >>= 1; - currentLevel++; } - currentLevel--; - level = this.levels[currentLevel]; - level.items[level.index] = value; - this.currentLevel = currentLevel; - delete this.value; - }, - incrementValue: function TagTree_incrementValue() { - var level = this.levels[this.currentLevel]; - level.items[level.index]++; - }, - nextLevel: function TagTree_nextLevel() { - var currentLevel = this.currentLevel; - var level = this.levels[currentLevel]; - var value = level.items[level.index]; - currentLevel--; - if (currentLevel < 0) { - this.value = value; - return false; - } - - this.currentLevel = currentLevel; - level = this.levels[currentLevel]; - level.items[level.index] = value; - return true; } + return 1; }; - return TagTree; - })(); - - var InclusionTree = (function InclusionTreeClosure() { - function InclusionTree(width, height) { - var levelsLength = log2(Math.max(width, height)) + 1; - this.levels = []; - for (var i = 0; i < levelsLength; i++) { - var items = new Uint8Array(width * height); - var status = new Uint8Array(width * height); - for (var j = 0, jj = items.length; j < jj; j++) { - items[j] = 0; - status[j] = 0; + jpeg2.lossless.HuffmanTable.prototype.buildHuffTable = function(tab, L, V) { + var currentTable, temp, k, i2, j, n; + temp = 256; + k = 0; + for (i2 = 0; i2 < 8; i2 += 1) { + for (j = 0; j < L[i2]; j += 1) { + for (n = 0; n < temp >> i2 + 1; n += 1) { + tab[k] = V[i2][j] | i2 + 1 << 8; + k += 1; + } + } + } + for (i2 = 1; k < 256; i2 += 1, k += 1) { + tab[k] = i2 | jpeg2.lossless.HuffmanTable.MSB; + } + currentTable = 1; + k = 0; + for (i2 = 8; i2 < 16; i2 += 1) { + for (j = 0; j < L[i2]; j += 1) { + for (n = 0; n < temp >> i2 - 7; n += 1) { + tab[currentTable * 256 + k] = V[i2][j] | i2 + 1 << 8; + k += 1; + } + if (k >= 256) { + if (k > 256) { + throw new Error("ERROR: Huffman table error(1)!"); + } + k = 0; + currentTable += 1; + } } - - var level = { - width: width, - height: height, - items: items, - status: status - }; - this.levels.push(level); - - width = Math.ceil(width / 2); - height = Math.ceil(height / 2); } + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.HuffmanTable; } - InclusionTree.prototype = { - reset: function InclusionTree_reset(i, j, stopValue) { - this.currentStopValue = stopValue; - var currentLevel = 0; - while (currentLevel < this.levels.length) { - var level = this.levels[currentLevel]; - var index = i + j * level.width; - level.index = index; + } +}); - i >>= 1; - j >>= 1; - currentLevel++; +// node_modules/jpeg-lossless-decoder-js/src/quantization-table.js +var require_quantization_table = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/quantization-table.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); + jpeg2.lossless.QuantizationTable = jpeg2.lossless.QuantizationTable || function() { + this.precision = []; + this.tq = []; + this.quantTables = jpeg2.lossless.Utils.createArray(4, 64); + this.tq[0] = 0; + this.tq[1] = 0; + this.tq[2] = 0; + this.tq[3] = 0; + }; + jpeg2.lossless.QuantizationTable.enhanceQuantizationTable = function(qtab, table) { + var i2; + for (i2 = 0; i2 < 8; i2 += 1) { + qtab[table[0 * 8 + i2]] *= 90; + qtab[table[4 * 8 + i2]] *= 90; + qtab[table[2 * 8 + i2]] *= 118; + qtab[table[6 * 8 + i2]] *= 49; + qtab[table[5 * 8 + i2]] *= 71; + qtab[table[1 * 8 + i2]] *= 126; + qtab[table[7 * 8 + i2]] *= 25; + qtab[table[3 * 8 + i2]] *= 106; + } + for (i2 = 0; i2 < 8; i2 += 1) { + qtab[table[0 + 8 * i2]] *= 90; + qtab[table[4 + 8 * i2]] *= 90; + qtab[table[2 + 8 * i2]] *= 118; + qtab[table[6 + 8 * i2]] *= 49; + qtab[table[5 + 8 * i2]] *= 71; + qtab[table[1 + 8 * i2]] *= 126; + qtab[table[7 + 8 * i2]] *= 25; + qtab[table[3 + 8 * i2]] *= 106; + } + for (i2 = 0; i2 < 64; i2 += 1) { + qtab[i2] >>= 6; + } + }; + jpeg2.lossless.QuantizationTable.prototype.read = function(data, table) { + var count = 0, length, temp, t, i2; + length = data.get16(); + count += 2; + while (count < length) { + temp = data.get8(); + count += 1; + t = temp & 15; + if (t > 3) { + throw new Error("ERROR: Quantization table ID > 3"); } - - this.currentLevel = this.levels.length - 1; - this.minValue =this.levels[this.currentLevel].items[0]; - return; - }, - incrementValue: function InclusionTree_incrementValue() { - var level = this.levels[this.currentLevel]; - level.items[level.index] = level.items[level.index] + 1; - if(level.items[level.index] > this.minValue) { - this.minValue = level.items[level.index]; + this.precision[t] = temp >> 4; + if (this.precision[t] === 0) { + this.precision[t] = 8; + } else if (this.precision[t] === 1) { + this.precision[t] = 16; + } else { + throw new Error("ERROR: Quantization table precision error"); } - }, - nextLevel: function InclusionTree_nextLevel() { - var currentLevel = this.currentLevel; - currentLevel--; - if (currentLevel < 0) { - return false; + this.tq[t] = 1; + if (this.precision[t] === 8) { + for (i2 = 0; i2 < 64; i2 += 1) { + if (count > length) { + throw new Error("ERROR: Quantization table format error"); + } + this.quantTables[t][i2] = data.get8(); + count += 1; + } + jpeg2.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); } else { - this.currentLevel = currentLevel; - var level = this.levels[currentLevel]; - if(level.items[level.index] < this.minValue) { - level.items[level.index] = this.minValue; - }else if (level.items[level.index] > this.minValue) { - this.minValue = level.items[level.index]; + for (i2 = 0; i2 < 64; i2 += 1) { + if (count > length) { + throw new Error("ERROR: Quantization table format error"); + } + this.quantTables[t][i2] = data.get16(); + count += 2; } - return true; + jpeg2.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); } - }, - isLeaf: function InclusionTree_isLeaf(){ - return (this.currentLevel === 0); - }, - isAboveThreshold: function InclusionTree_isAboveThreshold(){ - var levelindex = this.currentLevel; - var level = this.levels[levelindex]; - return (level.items[level.index] > this.currentStopValue); - }, - isKnown: function InclusionTree_isKnown(){ - var levelindex = this.currentLevel; - var level = this.levels[levelindex]; - return (level.status[level.index] > 0); - }, - setKnown: function InclusionTree_setKnown(){ - var levelindex = this.currentLevel; - var level = this.levels[levelindex]; - level.status[level.index] = 1; - return; + } + if (count !== length) { + throw new Error("ERROR: Quantization table error [count!=Lq]"); + } + return 1; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.QuantizationTable; } + } +}); +// node_modules/jpeg-lossless-decoder-js/src/scan-component.js +var require_scan_component = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/scan-component.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.ScanComponent = jpeg2.lossless.ScanComponent || function() { + this.acTabSel = 0; + this.dcTabSel = 0; + this.scanCompSel = 0; }; - return InclusionTree; - })(); - - // Section D. Coefficient bit modeling - var BitModel = (function BitModelClosure() { - var UNIFORM_CONTEXT = 17; - var RUNLENGTH_CONTEXT = 18; - // Table D-1 - // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4), - // vv - sum of Vi (0..2), and hh - sum of Hi (0..2) - var LLAndLHContextsLabel = new Uint8Array([ - 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, - 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, - 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8 - ]); - var HLContextLabel = new Uint8Array([ - 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, - 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, - 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8 - ]); - var HHContextLabel = new Uint8Array([ - 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, - 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, - 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8 - ]); - - function BitModel(width, height, subband, zeroBitPlanes, mb) { - this.width = width; - this.height = height; - - this.contextLabelTable = (subband === 'HH' ? HHContextLabel : - (subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel)); - - var coefficientCount = width * height; - - // coefficients outside the encoding region treated as insignificant - // add border state cells for significanceState - this.neighborsSignificance = new Uint8Array(coefficientCount); - this.coefficentsSign = new Uint8Array(coefficientCount); - this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : - mb > 6 ? new Uint16Array(coefficientCount) : - new Uint8Array(coefficientCount); - this.processingFlags = new Uint8Array(coefficientCount); + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.ScanComponent; + } + } +}); - var bitsDecoded = new Uint8Array(coefficientCount); - if (zeroBitPlanes !== 0) { - for (var i = 0; i < coefficientCount; i++) { - bitsDecoded[i] = zeroBitPlanes; +// node_modules/jpeg-lossless-decoder-js/src/scan-header.js +var require_scan_header = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/scan-header.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.ScanComponent = jpeg2.lossless.ScanComponent || (typeof require !== "undefined" ? require_scan_component() : null); + jpeg2.lossless.ScanHeader = jpeg2.lossless.ScanHeader || function() { + this.ah = 0; + this.al = 0; + this.numComp = 0; + this.selection = 0; + this.spectralEnd = 0; + this.components = []; + }; + jpeg2.lossless.ScanHeader.prototype.read = function(data) { + var count = 0, length, i2, temp; + length = data.get16(); + count += 2; + this.numComp = data.get8(); + count += 1; + for (i2 = 0; i2 < this.numComp; i2 += 1) { + this.components[i2] = new jpeg2.lossless.ScanComponent(); + if (count > length) { + throw new Error("ERROR: scan header format error"); } + this.components[i2].scanCompSel = data.get8(); + count += 1; + temp = data.get8(); + count += 1; + this.components[i2].dcTabSel = temp >> 4; + this.components[i2].acTabSel = temp & 15; } - this.bitsDecoded = bitsDecoded; - - this.reset(); + this.selection = data.get8(); + count += 1; + this.spectralEnd = data.get8(); + count += 1; + temp = data.get8(); + this.ah = temp >> 4; + this.al = temp & 15; + count += 1; + if (count !== length) { + throw new Error("ERROR: scan header format error [count!=Ns]"); + } + return 1; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.ScanHeader; } + } +}); - BitModel.prototype = { - setDecoder: function BitModel_setDecoder(decoder) { - this.decoder = decoder; - }, - reset: function BitModel_reset() { - // We have 17 contexts that are accessed via context labels, - // plus the uniform and runlength context. - this.contexts = new Int8Array(19); - - // Contexts are packed into 1 byte: - // highest 7 bits carry the index, lowest bit carries mps - this.contexts[0] = (4 << 1) | 0; - this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0; - this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0; - }, - setNeighborsSignificance: - function BitModel_setNeighborsSignificance(row, column, index) { - var neighborsSignificance = this.neighborsSignificance; - var width = this.width, height = this.height; - var left = (column > 0); - var right = (column + 1 < width); - var i; - - if (row > 0) { - i = index - width; - if (left) { - neighborsSignificance[i - 1] += 0x10; - } - if (right) { - neighborsSignificance[i + 1] += 0x10; - } - neighborsSignificance[i] += 0x04; - } - - if (row + 1 < height) { - i = index + width; - if (left) { - neighborsSignificance[i - 1] += 0x10; - } - if (right) { - neighborsSignificance[i + 1] += 0x10; - } - neighborsSignificance[i] += 0x04; +// node_modules/jpeg-lossless-decoder-js/src/frame-header.js +var require_frame_header = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/frame-header.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.ComponentSpec = jpeg2.lossless.ComponentSpec || (typeof require !== "undefined" ? require_component_spec() : null); + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.FrameHeader = jpeg2.lossless.FrameHeader || function() { + this.components = []; + this.dimX = 0; + this.dimY = 0; + this.numComp = 0; + this.precision = 0; + }; + jpeg2.lossless.FrameHeader.prototype.read = function(data) { + var count = 0, length, i2, c, temp; + length = data.get16(); + count += 2; + this.precision = data.get8(); + count += 1; + this.dimY = data.get16(); + count += 2; + this.dimX = data.get16(); + count += 2; + this.numComp = data.get8(); + count += 1; + for (i2 = 1; i2 <= this.numComp; i2 += 1) { + if (count > length) { + throw new Error("ERROR: frame format error"); } - - if (left) { - neighborsSignificance[index - 1] += 0x01; + c = data.get8(); + count += 1; + if (count >= length) { + throw new Error("ERROR: frame format error [c>=Lf]"); } - if (right) { - neighborsSignificance[index + 1] += 0x01; + temp = data.get8(); + count += 1; + if (!this.components[c]) { + this.components[c] = new jpeg2.lossless.ComponentSpec(); } - neighborsSignificance[index] |= 0x80; - }, - runSignificancePropogationPass: - function BitModel_runSignificancePropogationPass() { - var decoder = this.decoder; - var width = this.width, height = this.height; - var coefficentsMagnitude = this.coefficentsMagnitude; - var coefficentsSign = this.coefficentsSign; - var neighborsSignificance = this.neighborsSignificance; - var processingFlags = this.processingFlags; - var contexts = this.contexts; - var labels = this.contextLabelTable; - var bitsDecoded = this.bitsDecoded; - var processedInverseMask = ~1; - var processedMask = 1; - var firstMagnitudeBitMask = 2; - - for (var i0 = 0; i0 < height; i0 += 4) { - for (var j = 0; j < width; j++) { - var index = i0 * width + j; - for (var i1 = 0; i1 < 4; i1++, index += width) { - var i = i0 + i1; - if (i >= height) { - break; - } - // clear processed flag first - processingFlags[index] &= processedInverseMask; - - if (coefficentsMagnitude[index] || - !neighborsSignificance[index]) { - continue; - } + this.components[c].hSamp = temp >> 4; + this.components[c].vSamp = temp & 15; + this.components[c].quantTableSel = data.get8(); + count += 1; + } + if (count !== length) { + throw new Error("ERROR: frame format error [Lf!=count]"); + } + return 1; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.FrameHeader; + } + } +}); - var contextLabel = labels[neighborsSignificance[index]]; - var decision = decoder.readBit(contexts, contextLabel); - if (decision) { - var sign = this.decodeSignBit(i, j, index); - coefficentsSign[index] = sign; - coefficentsMagnitude[index] = 1; - this.setNeighborsSignificance(i, j, index); - processingFlags[index] |= firstMagnitudeBitMask; - } - bitsDecoded[index]++; - processingFlags[index] |= processedMask; +// node_modules/jpeg-lossless-decoder-js/src/decoder.js +var require_decoder = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/decoder.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.HuffmanTable = jpeg2.lossless.HuffmanTable || (typeof require !== "undefined" ? require_huffman_table() : null); + jpeg2.lossless.QuantizationTable = jpeg2.lossless.QuantizationTable || (typeof require !== "undefined" ? require_quantization_table() : null); + jpeg2.lossless.ScanHeader = jpeg2.lossless.ScanHeader || (typeof require !== "undefined" ? require_scan_header() : null); + jpeg2.lossless.FrameHeader = jpeg2.lossless.FrameHeader || (typeof require !== "undefined" ? require_frame_header() : null); + jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); + jpeg2.lossless.Decoder = jpeg2.lossless.Decoder || function(buffer2, numBytes) { + this.buffer = buffer2; + this.frame = new jpeg2.lossless.FrameHeader(); + this.huffTable = new jpeg2.lossless.HuffmanTable(); + this.quantTable = new jpeg2.lossless.QuantizationTable(); + this.scan = new jpeg2.lossless.ScanHeader(); + this.DU = jpeg2.lossless.Utils.createArray(10, 4, 64); + this.HuffTab = jpeg2.lossless.Utils.createArray(4, 2, 50 * 256); + this.IDCT_Source = []; + this.nBlock = []; + this.acTab = jpeg2.lossless.Utils.createArray(10, 1); + this.dcTab = jpeg2.lossless.Utils.createArray(10, 1); + this.qTab = jpeg2.lossless.Utils.createArray(10, 1); + this.marker = 0; + this.markerIndex = 0; + this.numComp = 0; + this.restartInterval = 0; + this.selection = 0; + this.xDim = 0; + this.yDim = 0; + this.xLoc = 0; + this.yLoc = 0; + this.numBytes = 0; + this.outputData = null; + this.restarting = false; + this.mask = 0; + if (typeof numBytes !== "undefined") { + this.numBytes = numBytes; + } + }; + jpeg2.lossless.Decoder.IDCT_P = [ + 0, + 5, + 40, + 16, + 45, + 2, + 7, + 42, + 21, + 56, + 8, + 61, + 18, + 47, + 1, + 4, + 41, + 23, + 58, + 13, + 32, + 24, + 37, + 10, + 63, + 17, + 44, + 3, + 6, + 43, + 20, + 57, + 15, + 34, + 29, + 48, + 53, + 26, + 39, + 9, + 60, + 19, + 46, + 22, + 59, + 12, + 33, + 31, + 50, + 55, + 25, + 36, + 11, + 62, + 14, + 35, + 28, + 49, + 52, + 27, + 38, + 30, + 51, + 54 + ]; + jpeg2.lossless.Decoder.TABLE = [ + 0, + 1, + 5, + 6, + 14, + 15, + 27, + 28, + 2, + 4, + 7, + 13, + 16, + 26, + 29, + 42, + 3, + 8, + 12, + 17, + 25, + 30, + 41, + 43, + 9, + 11, + 18, + 24, + 31, + 40, + 44, + 53, + 10, + 19, + 23, + 32, + 39, + 45, + 52, + 54, + 20, + 22, + 33, + 38, + 46, + 51, + 55, + 60, + 21, + 34, + 37, + 47, + 50, + 56, + 59, + 61, + 35, + 36, + 48, + 49, + 57, + 58, + 62, + 63 + ]; + jpeg2.lossless.Decoder.MAX_HUFFMAN_SUBTREE = 50; + jpeg2.lossless.Decoder.MSB = 2147483648; + jpeg2.lossless.Decoder.RESTART_MARKER_BEGIN = 65488; + jpeg2.lossless.Decoder.RESTART_MARKER_END = 65495; + jpeg2.lossless.Decoder.prototype.decompress = function(buffer2, offset, length) { + return this.decode(buffer2, offset, length).buffer; + }; + jpeg2.lossless.Decoder.prototype.decode = function(buffer2, offset, length, numBytes) { + var current, scanNum = 0, pred = [], i2, compN, temp = [], index = [], mcuNum; + if (typeof buffer2 !== "undefined") { + this.buffer = buffer2; + } + if (typeof numBytes !== "undefined") { + this.numBytes = numBytes; + } + this.stream = new jpeg2.lossless.DataStream(this.buffer, offset, length); + this.buffer = null; + this.xLoc = 0; + this.yLoc = 0; + current = this.stream.get16(); + if (current !== 65496) { + throw new Error("Not a JPEG file"); + } + current = this.stream.get16(); + while (current >> 4 !== 4092 || current === 65476) { + switch (current) { + case 65476: + this.huffTable.read(this.stream, this.HuffTab); + break; + case 65484: + throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); + case 65499: + this.quantTable.read(this.stream, jpeg2.lossless.Decoder.TABLE); + break; + case 65501: + this.restartInterval = this.readNumber(); + break; + case 65504: + case 65505: + case 65506: + case 65507: + case 65508: + case 65509: + case 65510: + case 65511: + case 65512: + case 65513: + case 65514: + case 65515: + case 65516: + case 65517: + case 65518: + case 65519: + this.readApp(); + break; + case 65534: + this.readComment(); + break; + default: + if (current >> 8 !== 255) { + throw new Error("ERROR: format throw new IOException! (decode)"); } - } } - }, - decodeSignBit: function BitModel_decodeSignBit(row, column, index) { - var width = this.width, height = this.height; - var coefficentsMagnitude = this.coefficentsMagnitude; - var coefficentsSign = this.coefficentsSign; - var contribution, sign0, sign1, significance1; - var contextLabel, decoded; - - // calculate horizontal contribution - significance1 = (column > 0 && coefficentsMagnitude[index - 1] !== 0); - if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { - sign1 = coefficentsSign[index + 1]; - if (significance1) { - sign0 = coefficentsSign[index - 1]; - contribution = 1 - sign1 - sign0; - } else { - contribution = 1 - sign1 - sign1; + current = this.stream.get16(); + } + if (current < 65472 || current > 65479) { + throw new Error("ERROR: could not handle arithmetic code!"); + } + this.frame.read(this.stream); + current = this.stream.get16(); + do { + while (current !== 65498) { + switch (current) { + case 65476: + this.huffTable.read(this.stream, this.HuffTab); + break; + case 65484: + throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); + case 65499: + this.quantTable.read(this.stream, jpeg2.lossless.Decoder.TABLE); + break; + case 65501: + this.restartInterval = this.readNumber(); + break; + case 65504: + case 65505: + case 65506: + case 65507: + case 65508: + case 65509: + case 65510: + case 65511: + case 65512: + case 65513: + case 65514: + case 65515: + case 65516: + case 65517: + case 65518: + case 65519: + this.readApp(); + break; + case 65534: + this.readComment(); + break; + default: + if (current >> 8 !== 255) { + throw new Error("ERROR: format throw new IOException! (Parser.decode)"); + } } - } else if (significance1) { - sign0 = coefficentsSign[index - 1]; - contribution = 1 - sign0 - sign0; + current = this.stream.get16(); + } + this.precision = this.frame.precision; + this.components = this.frame.components; + if (!this.numBytes) { + this.numBytes = parseInt(Math.ceil(this.precision / 8)); + } + if (this.numBytes == 1) { + this.mask = 255; } else { - contribution = 0; + this.mask = 65535; } - var horizontalContribution = 3 * contribution; - - // calculate vertical contribution and combine with the horizontal - significance1 = (row > 0 && coefficentsMagnitude[index - width] !== 0); - if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { - sign1 = coefficentsSign[index + width]; - if (significance1) { - sign0 = coefficentsSign[index - width]; - contribution = 1 - sign1 - sign0 + horizontalContribution; + this.scan.read(this.stream); + this.numComp = this.scan.numComp; + this.selection = this.scan.selection; + if (this.numBytes === 1) { + if (this.numComp === 3) { + this.getter = this.getValueRGB; + this.setter = this.setValueRGB; + this.output = this.outputRGB; } else { - contribution = 1 - sign1 - sign1 + horizontalContribution; + this.getter = this.getValue8; + this.setter = this.setValue8; + this.output = this.outputSingle; } - } else if (significance1) { - sign0 = coefficentsSign[index - width]; - contribution = 1 - sign0 - sign0 + horizontalContribution; } else { - contribution = horizontalContribution; + this.getter = this.getValue16; + this.setter = this.setValue16; + this.output = this.outputSingle; } - - if (contribution >= 0) { - contextLabel = 9 + contribution; - decoded = this.decoder.readBit(this.contexts, contextLabel); + switch (this.selection) { + case 2: + this.selector = this.select2; + break; + case 3: + this.selector = this.select3; + break; + case 4: + this.selector = this.select4; + break; + case 5: + this.selector = this.select5; + break; + case 6: + this.selector = this.select6; + break; + case 7: + this.selector = this.select7; + break; + default: + this.selector = this.select1; + break; + } + this.scanComps = this.scan.components; + this.quantTables = this.quantTable.quantTables; + for (i2 = 0; i2 < this.numComp; i2 += 1) { + compN = this.scanComps[i2].scanCompSel; + this.qTab[i2] = this.quantTables[this.components[compN].quantTableSel]; + this.nBlock[i2] = this.components[compN].vSamp * this.components[compN].hSamp; + this.dcTab[i2] = this.HuffTab[this.scanComps[i2].dcTabSel][0]; + this.acTab[i2] = this.HuffTab[this.scanComps[i2].acTabSel][1]; + } + this.xDim = this.frame.dimX; + this.yDim = this.frame.dimY; + if (this.numBytes == 1) { + this.outputData = new Uint8Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); } else { - contextLabel = 9 - contribution; - decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; + this.outputData = new Uint16Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); } - return decoded; - }, - runMagnitudeRefinementPass: - function BitModel_runMagnitudeRefinementPass() { - var decoder = this.decoder; - var width = this.width, height = this.height; - var coefficentsMagnitude = this.coefficentsMagnitude; - var neighborsSignificance = this.neighborsSignificance; - var contexts = this.contexts; - var bitsDecoded = this.bitsDecoded; - var processingFlags = this.processingFlags; - var processedMask = 1; - var firstMagnitudeBitMask = 2; - var length = width * height; - var width4 = width * 4; - - for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { - indexNext = Math.min(length, index0 + width4); - for (var j = 0; j < width; j++) { - for (var index = index0 + j; index < indexNext; index += width) { - - // significant but not those that have just become - if (!coefficentsMagnitude[index] || - (processingFlags[index] & processedMask) !== 0) { - continue; - } - - var contextLabel = 16; - if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { - processingFlags[index] ^= firstMagnitudeBitMask; - // first refinement - var significance = neighborsSignificance[index] & 127; - contextLabel = significance === 0 ? 15 : 14; - } - - var bit = decoder.readBit(contexts, contextLabel); - coefficentsMagnitude[index] = - (coefficentsMagnitude[index] << 1) | bit; - bitsDecoded[index]++; - processingFlags[index] |= processedMask; + scanNum += 1; + while (true) { + temp[0] = 0; + index[0] = 0; + for (i2 = 0; i2 < 10; i2 += 1) { + pred[i2] = 1 << this.precision - 1; + } + if (this.restartInterval === 0) { + current = this.decodeUnit(pred, temp, index); + while (current === 0 && (this.xLoc < this.xDim && this.yLoc < this.yDim)) { + this.output(pred); + current = this.decodeUnit(pred, temp, index); } + break; } - } - }, - runCleanupPass: function BitModel_runCleanupPass() { - var decoder = this.decoder; - var width = this.width, height = this.height; - var neighborsSignificance = this.neighborsSignificance; - var coefficentsMagnitude = this.coefficentsMagnitude; - var coefficentsSign = this.coefficentsSign; - var contexts = this.contexts; - var labels = this.contextLabelTable; - var bitsDecoded = this.bitsDecoded; - var processingFlags = this.processingFlags; - var processedMask = 1; - var firstMagnitudeBitMask = 2; - var oneRowDown = width; - var twoRowsDown = width * 2; - var threeRowsDown = width * 3; - var iNext; - for (var i0 = 0; i0 < height; i0 = iNext) { - iNext = Math.min(i0 + 4, height); - var indexBase = i0 * width; - var checkAllEmpty = i0 + 3 < height; - for (var j = 0; j < width; j++) { - var index0 = indexBase + j; - // using the property: labels[neighborsSignificance[index]] === 0 - // when neighborsSignificance[index] === 0 - var allEmpty = (checkAllEmpty && - processingFlags[index0] === 0 && - processingFlags[index0 + oneRowDown] === 0 && - processingFlags[index0 + twoRowsDown] === 0 && - processingFlags[index0 + threeRowsDown] === 0 && - neighborsSignificance[index0] === 0 && - neighborsSignificance[index0 + oneRowDown] === 0 && - neighborsSignificance[index0 + twoRowsDown] === 0 && - neighborsSignificance[index0 + threeRowsDown] === 0); - var i1 = 0, index = index0; - var i = i0, sign; - if (allEmpty) { - var hasSignificantCoefficent = - decoder.readBit(contexts, RUNLENGTH_CONTEXT); - if (!hasSignificantCoefficent) { - bitsDecoded[index0]++; - bitsDecoded[index0 + oneRowDown]++; - bitsDecoded[index0 + twoRowsDown]++; - bitsDecoded[index0 + threeRowsDown]++; - continue; // next column - } - i1 = (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) | - decoder.readBit(contexts, UNIFORM_CONTEXT); - if (i1 !== 0) { - i = i0 + i1; - index += i1 * width; - } - - sign = this.decodeSignBit(i, j, index); - coefficentsSign[index] = sign; - coefficentsMagnitude[index] = 1; - this.setNeighborsSignificance(i, j, index); - processingFlags[index] |= firstMagnitudeBitMask; - - index = index0; - for (var i2 = i0; i2 <= i; i2++, index += width) { - bitsDecoded[index]++; - } - - i1++; + for (mcuNum = 0; mcuNum < this.restartInterval; mcuNum += 1) { + this.restarting = mcuNum == 0; + current = this.decodeUnit(pred, temp, index); + this.output(pred); + if (current !== 0) { + break; } - for (i = i0 + i1; i < iNext; i++, index += width) { - if (coefficentsMagnitude[index] || - (processingFlags[index] & processedMask) !== 0) { - continue; - } - - var contextLabel = labels[neighborsSignificance[index]]; - var decision = decoder.readBit(contexts, contextLabel); - if (decision === 1) { - sign = this.decodeSignBit(i, j, index); - coefficentsSign[index] = sign; - coefficentsMagnitude[index] = 1; - this.setNeighborsSignificance(i, j, index); - processingFlags[index] |= firstMagnitudeBitMask; - } - bitsDecoded[index]++; + } + if (current === 0) { + if (this.markerIndex !== 0) { + current = 65280 | this.marker; + this.markerIndex = 0; + } else { + current = this.stream.get16(); } } + if (!(current >= jpeg2.lossless.Decoder.RESTART_MARKER_BEGIN && current <= jpeg2.lossless.Decoder.RESTART_MARKER_END)) { + break; + } } - }, - checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { - var decoder = this.decoder; - var contexts = this.contexts; - var symbol = (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) | - (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) | - (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) | - decoder.readBit(contexts, UNIFORM_CONTEXT); - if (symbol !== 0xA) { - throw new Error('JPX Error: Invalid segmentation symbol'); + if (current === 65500 && scanNum === 1) { + this.readNumber(); + current = this.stream.get16(); } - } + } while (current !== 65497 && (this.xLoc < this.xDim && this.yLoc < this.yDim) && scanNum === 0); + return this.outputData; }; - - return BitModel; - })(); - - // Section F, Discrete wavelet transformation - var Transform = (function TransformClosure() { - function Transform() {} - - Transform.prototype.calculate = - function transformCalculate(subbands, u0, v0) { - var ll = subbands[0]; - for (var i = 1, ii = subbands.length; i < ii; i++) { - ll = this.iterate(ll, subbands[i], u0, v0); - } - return ll; - }; - Transform.prototype.extend = function extend(buffer, offset, size) { - // Section F.3.7 extending... using max extension of 4 - var i1 = offset - 1, j1 = offset + 1; - var i2 = offset + size - 2, j2 = offset + size; - buffer[i1--] = buffer[j1++]; - buffer[j2++] = buffer[i2--]; - buffer[i1--] = buffer[j1++]; - buffer[j2++] = buffer[i2--]; - buffer[i1--] = buffer[j1++]; - buffer[j2++] = buffer[i2--]; - buffer[i1] = buffer[j1]; - buffer[j2] = buffer[i2]; - }; - Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, - u0, v0) { - var llWidth = ll.width, llHeight = ll.height, llItems = ll.items; - var width = hl_lh_hh.width; - var height = hl_lh_hh.height; - var items = hl_lh_hh.items; - var i, j, k, l, u, v; - - // Interleave LL according to Section F.3.3 - for (k = 0, i = 0; i < llHeight; i++) { - l = i * 2 * width; - for (j = 0; j < llWidth; j++, k++, l += 2) { - items[l] = llItems[k]; - } - } - // The LL band is not needed anymore. - llItems = ll.items = null; - - var bufferPadding = 4; - var rowBuffer = new Float32Array(width + 2 * bufferPadding); - - // Section F.3.4 HOR_SR - if (width === 1) { - // if width = 1, when u0 even keep items as is, when odd divide by 2 - if ((u0 & 1) !== 0) { - for (v = 0, k = 0; v < height; v++, k += width) { - items[k] *= 0.5; - } - } + jpeg2.lossless.Decoder.prototype.decodeUnit = function(prev, temp, index) { + if (this.numComp == 1) { + return this.decodeSingle(prev, temp, index); + } else if (this.numComp == 3) { + return this.decodeRGB(prev, temp, index); } else { - for (v = 0, k = 0; v < height; v++, k += width) { - rowBuffer.set(items.subarray(k, k + width), bufferPadding); - - this.extend(rowBuffer, bufferPadding, width); - this.filter(rowBuffer, bufferPadding, width); - - items.set( - rowBuffer.subarray(bufferPadding, bufferPadding + width), - k); - } + return -1; } - - // Accesses to the items array can take long, because it may not fit into - // CPU cache and has to be fetched from main memory. Since subsequent - // accesses to the items array are not local when reading columns, we - // have a cache miss every time. To reduce cache misses, get up to - // 'numBuffers' items at a time and store them into the individual - // buffers. The colBuffers should be small enough to fit into CPU cache. - var numBuffers = 16; - var colBuffers = []; - for (i = 0; i < numBuffers; i++) { - colBuffers.push(new Float32Array(height + 2 * bufferPadding)); - } - var b, currentBuffer = 0; - ll = bufferPadding + height; - - // Section F.3.5 VER_SR - if (height === 1) { - // if height = 1, when v0 even keep items as is, when odd divide by 2 - if ((v0 & 1) !== 0) { - for (u = 0; u < width; u++) { - items[u] *= 0.5; + }; + jpeg2.lossless.Decoder.prototype.select1 = function(compOffset) { + return this.getPreviousX(compOffset); + }; + jpeg2.lossless.Decoder.prototype.select2 = function(compOffset) { + return this.getPreviousY(compOffset); + }; + jpeg2.lossless.Decoder.prototype.select3 = function(compOffset) { + return this.getPreviousXY(compOffset); + }; + jpeg2.lossless.Decoder.prototype.select4 = function(compOffset) { + return this.getPreviousX(compOffset) + this.getPreviousY(compOffset) - this.getPreviousXY(compOffset); + }; + jpeg2.lossless.Decoder.prototype.select5 = function(compOffset) { + return this.getPreviousX(compOffset) + (this.getPreviousY(compOffset) - this.getPreviousXY(compOffset) >> 1); + }; + jpeg2.lossless.Decoder.prototype.select6 = function(compOffset) { + return this.getPreviousY(compOffset) + (this.getPreviousX(compOffset) - this.getPreviousXY(compOffset) >> 1); + }; + jpeg2.lossless.Decoder.prototype.select7 = function(compOffset) { + return (this.getPreviousX(compOffset) + this.getPreviousY(compOffset)) / 2; + }; + jpeg2.lossless.Decoder.prototype.decodeRGB = function(prev, temp, index) { + var value, actab, dctab, qtab, ctrC, i2, k, j; + prev[0] = this.selector(0); + prev[1] = this.selector(1); + prev[2] = this.selector(2); + for (ctrC = 0; ctrC < this.numComp; ctrC += 1) { + qtab = this.qTab[ctrC]; + actab = this.acTab[ctrC]; + dctab = this.dcTab[ctrC]; + for (i2 = 0; i2 < this.nBlock[ctrC]; i2 += 1) { + for (k = 0; k < this.IDCT_Source.length; k += 1) { + this.IDCT_Source[k] = 0; } - } - } else { - for (u = 0; u < width; u++) { - // if we ran out of buffers, copy several image columns at once - if (currentBuffer === 0) { - numBuffers = Math.min(width - u, numBuffers); - for (k = u, l = bufferPadding; l < ll; k += width, l++) { - for (b = 0; b < numBuffers; b++) { - colBuffers[b][l] = items[k + b]; - } - } - currentBuffer = numBuffers; + value = this.getHuffmanValue(dctab, temp, index); + if (value >= 65280) { + return value; } - - currentBuffer--; - var buffer = colBuffers[currentBuffer]; - this.extend(buffer, bufferPadding, height); - this.filter(buffer, bufferPadding, height); - - // If this is last buffer in this group of buffers, flush all buffers. - if (currentBuffer === 0) { - k = u - numBuffers + 1; - for (l = bufferPadding; l < ll; k += width, l++) { - for (b = 0; b < numBuffers; b++) { - items[k + b] = colBuffers[b][l]; + prev[ctrC] = this.IDCT_Source[0] = prev[ctrC] + this.getn(index, value, temp, index); + this.IDCT_Source[0] *= qtab[0]; + for (j = 1; j < 64; j += 1) { + value = this.getHuffmanValue(actab, temp, index); + if (value >= 65280) { + return value; + } + j += value >> 4; + if ((value & 15) === 0) { + if (value >> 4 === 0) { + break; } + } else { + this.IDCT_Source[jpeg2.lossless.Decoder.IDCT_P[j]] = this.getn(index, value & 15, temp, index) * qtab[j]; } } } } - - return { - width: width, - height: height, - items: items - }; + return 0; }; - return Transform; - })(); - - // Section 3.8.2 Irreversible 9-7 filter - var IrreversibleTransform = (function IrreversibleTransformClosure() { - function IrreversibleTransform() { - Transform.call(this); - } - - IrreversibleTransform.prototype = Object.create(Transform.prototype); - IrreversibleTransform.prototype.filter = - function irreversibleTransformFilter(x, offset, length) { - var len = length >> 1; - offset = offset | 0; - var j, n, current, next; - - var alpha = -1.586134342059924; - var beta = -0.052980118572961; - var gamma = 0.882911075530934; - var delta = 0.443506852043971; - var K = 1.230174104914001; - var K_ = 1 / K; - - // step 1 is combined with step 3 - - // step 2 - j = offset - 3; - for (n = len + 4; n--; j += 2) { - x[j] *= K_; + jpeg2.lossless.Decoder.prototype.decodeSingle = function(prev, temp, index) { + var value, i2, n, nRestart; + if (this.restarting) { + this.restarting = false; + prev[0] = 1 << this.frame.precision - 1; + } else { + prev[0] = this.selector(); } - - // step 1 & 3 - j = offset - 2; - current = delta * x[j -1]; - for (n = len + 3; n--; j += 2) { - next = delta * x[j + 1]; - x[j] = K * x[j] - current - next; - if (n--) { - j += 2; - current = delta * x[j + 1]; - x[j] = K * x[j] - current - next; - } else { - break; + for (i2 = 0; i2 < this.nBlock[0]; i2 += 1) { + value = this.getHuffmanValue(this.dcTab[0], temp, index); + if (value >= 65280) { + return value; } - } - - // step 4 - j = offset - 1; - current = gamma * x[j - 1]; - for (n = len + 2; n--; j += 2) { - next = gamma * x[j + 1]; - x[j] -= current + next; - if (n--) { - j += 2; - current = gamma * x[j + 1]; - x[j] -= current + next; - } else { - break; + n = this.getn(prev, value, temp, index); + nRestart = n >> 8; + if (nRestart >= jpeg2.lossless.Decoder.RESTART_MARKER_BEGIN && nRestart <= jpeg2.lossless.Decoder.RESTART_MARKER_END) { + return nRestart; } + prev[0] += n; } - - // step 5 - j = offset; - current = beta * x[j - 1]; - for (n = len + 1; n--; j += 2) { - next = beta * x[j + 1]; - x[j] -= current + next; - if (n--) { - j += 2; - current = beta * x[j + 1]; - x[j] -= current + next; - } else { - break; + return 0; + }; + jpeg2.lossless.Decoder.prototype.getHuffmanValue = function(table, temp, index) { + var code, input, mask; + mask = 65535; + if (index[0] < 8) { + temp[0] <<= 8; + input = this.stream.get8(); + if (input === 255) { + this.marker = this.stream.get8(); + if (this.marker !== 0) { + this.markerIndex = 9; + } } + temp[0] |= input; + } else { + index[0] -= 8; } - - // step 6 - if (len !== 0) { - j = offset + 1; - current = alpha * x[j - 1]; - for (n = len; n--; j += 2) { - next = alpha * x[j + 1]; - x[j] -= current + next; - if (n--) { - j += 2; - current = alpha * x[j + 1]; - x[j] -= current + next; - } else { - break; + code = table[temp[0] >> index[0]]; + if ((code & jpeg2.lossless.Decoder.MSB) !== 0) { + if (this.markerIndex !== 0) { + this.markerIndex = 0; + return 65280 | this.marker; + } + temp[0] &= mask >> 16 - index[0]; + temp[0] <<= 8; + input = this.stream.get8(); + if (input === 255) { + this.marker = this.stream.get8(); + if (this.marker !== 0) { + this.markerIndex = 9; } } + temp[0] |= input; + code = table[(code & 255) * 256 + (temp[0] >> index[0])]; + index[0] += 8; } - }; - - return IrreversibleTransform; - })(); - - // Section 3.8.1 Reversible 5-3 filter - var ReversibleTransform = (function ReversibleTransformClosure() { - function ReversibleTransform() { - Transform.call(this); - } - - ReversibleTransform.prototype = Object.create(Transform.prototype); - ReversibleTransform.prototype.filter = - function reversibleTransformFilter(x, offset, length) { - var len = length >> 1; - offset = offset | 0; - var j, n; - - for (j = offset, n = len + 1; n--; j += 2) { - x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2; + index[0] += 8 - (code >> 8); + if (index[0] < 0) { + throw new Error("index=" + index[0] + " temp=" + temp[0] + " code=" + code + " in HuffmanValue()"); } - - for (j = offset + 1, n = len; n--; j += 2) { - x[j] += (x[j - 1] + x[j + 1]) >> 1; + if (index[0] < this.markerIndex) { + this.markerIndex = 0; + return 65280 | this.marker; } + temp[0] &= mask >> 16 - index[0]; + return code & 255; }; - - return ReversibleTransform; - })(); - - return JpxImage; -})(); - - -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -/* This class implements the QM Coder decoding as defined in - * JPEG 2000 Part I Final Committee Draft Version 1.0 - * Annex C.3 Arithmetic decoding procedure - * available at http://www.jpeg.org/public/fcd15444-1.pdf - * - * The arithmetic decoder is used in conjunction with context models to decode - * JPEG2000 and JBIG2 streams. - */ -var ArithmeticDecoder = (function ArithmeticDecoderClosure() { - // Table C-2 - var QeTable = [ - {qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1}, - {qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0}, - {qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0}, - {qe: 0x0AC1, nmps: 4, nlps: 12, switchFlag: 0}, - {qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0}, - {qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0}, - {qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1}, - {qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0}, - {qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0}, - {qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0}, - {qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0}, - {qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0}, - {qe: 0x1C01, nmps: 13, nlps: 20, switchFlag: 0}, - {qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0}, - {qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1}, - {qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0}, - {qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0}, - {qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0}, - {qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0}, - {qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0}, - {qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0}, - {qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0}, - {qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0}, - {qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0}, - {qe: 0x1C01, nmps: 25, nlps: 22, switchFlag: 0}, - {qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0}, - {qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0}, - {qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0}, - {qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0}, - {qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0}, - {qe: 0x0AC1, nmps: 31, nlps: 28, switchFlag: 0}, - {qe: 0x09C1, nmps: 32, nlps: 29, switchFlag: 0}, - {qe: 0x08A1, nmps: 33, nlps: 30, switchFlag: 0}, - {qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0}, - {qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0}, - {qe: 0x02A1, nmps: 36, nlps: 33, switchFlag: 0}, - {qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0}, - {qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0}, - {qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0}, - {qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0}, - {qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0}, - {qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0}, - {qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0}, - {qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0}, - {qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0}, - {qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0}, - {qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0} - ]; - - // C.3.5 Initialisation of the decoder (INITDEC) - function ArithmeticDecoder(data, start, end) { - this.data = data; - this.bp = start; - this.dataEnd = end; - - this.chigh = data[start]; - this.clow = 0; - - this.byteIn(); - - this.chigh = ((this.chigh << 7) & 0xFFFF) | ((this.clow >> 9) & 0x7F); - this.clow = (this.clow << 7) & 0xFFFF; - this.ct -= 7; - this.a = 0x8000; - } - - ArithmeticDecoder.prototype = { - // C.3.4 Compressed data input (BYTEIN) - byteIn: function ArithmeticDecoder_byteIn() { - var data = this.data; - var bp = this.bp; - if (data[bp] === 0xFF) { - var b1 = data[bp + 1]; - if (b1 > 0x8F) { - this.clow += 0xFF00; - this.ct = 8; + jpeg2.lossless.Decoder.prototype.getn = function(PRED, n, temp, index) { + var result, one, n_one, mask, input; + one = 1; + n_one = -1; + mask = 65535; + if (n === 0) { + return 0; + } + if (n === 16) { + if (PRED[0] >= 0) { + return -32768; } else { - bp++; - this.clow += (data[bp] << 9); - this.ct = 7; - this.bp = bp; + return 32768; } - } else { - bp++; - this.clow += bp < this.dataEnd ? (data[bp] << 8) : 0xFF00; - this.ct = 8; - this.bp = bp; - } - if (this.clow > 0xFFFF) { - this.chigh += (this.clow >> 16); - this.clow &= 0xFFFF; - } - }, - // C.3.2 Decoding a decision (DECODE) - readBit: function ArithmeticDecoder_readBit(contexts, pos) { - // contexts are packed into 1 byte: - // highest 7 bits carry cx.index, lowest bit carries cx.mps - var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1; - var qeTableIcx = QeTable[cx_index]; - var qeIcx = qeTableIcx.qe; - var d; - var a = this.a - qeIcx; - - if (this.chigh < qeIcx) { - // exchangeLps - if (a < qeIcx) { - a = qeIcx; - d = cx_mps; - cx_index = qeTableIcx.nmps; - } else { - a = qeIcx; - d = 1 ^ cx_mps; - if (qeTableIcx.switchFlag === 1) { - cx_mps = d; - } - cx_index = qeTableIcx.nlps; + } + index[0] -= n; + if (index[0] >= 0) { + if (index[0] < this.markerIndex && !this.isLastPixel()) { + this.markerIndex = 0; + return (65280 | this.marker) << 8; } + result = temp[0] >> index[0]; + temp[0] &= mask >> 16 - index[0]; } else { - this.chigh -= qeIcx; - if ((a & 0x8000) !== 0) { - this.a = a; - return cx_mps; + temp[0] <<= 8; + input = this.stream.get8(); + if (input === 255) { + this.marker = this.stream.get8(); + if (this.marker !== 0) { + this.markerIndex = 9; + } } - // exchangeMps - if (a < qeIcx) { - d = 1 ^ cx_mps; - if (qeTableIcx.switchFlag === 1) { - cx_mps = d; + temp[0] |= input; + index[0] += 8; + if (index[0] < 0) { + if (this.markerIndex !== 0) { + this.markerIndex = 0; + return (65280 | this.marker) << 8; } - cx_index = qeTableIcx.nlps; - } else { - d = cx_mps; - cx_index = qeTableIcx.nmps; + temp[0] <<= 8; + input = this.stream.get8(); + if (input === 255) { + this.marker = this.stream.get8(); + if (this.marker !== 0) { + this.markerIndex = 9; + } + } + temp[0] |= input; + index[0] += 8; } + if (index[0] < 0) { + throw new Error("index=" + index[0] + " in getn()"); + } + if (index[0] < this.markerIndex) { + this.markerIndex = 0; + return (65280 | this.marker) << 8; + } + result = temp[0] >> index[0]; + temp[0] &= mask >> 16 - index[0]; } - // C.3.3 renormD; - do { - if (this.ct === 0) { - this.byteIn(); + if (result < one << n - 1) { + result += (n_one << n) + 1; + } + return result; + }; + jpeg2.lossless.Decoder.prototype.getPreviousX = function(compOffset) { + if (this.xLoc > 0) { + return this.getter(this.yLoc * this.xDim + this.xLoc - 1, compOffset); + } else if (this.yLoc > 0) { + return this.getPreviousY(compOffset); + } else { + return 1 << this.frame.precision - 1; + } + }; + jpeg2.lossless.Decoder.prototype.getPreviousXY = function(compOffset) { + if (this.xLoc > 0 && this.yLoc > 0) { + return this.getter((this.yLoc - 1) * this.xDim + this.xLoc - 1, compOffset); + } else { + return this.getPreviousY(compOffset); + } + }; + jpeg2.lossless.Decoder.prototype.getPreviousY = function(compOffset) { + if (this.yLoc > 0) { + return this.getter((this.yLoc - 1) * this.xDim + this.xLoc, compOffset); + } else { + return this.getPreviousX(compOffset); + } + }; + jpeg2.lossless.Decoder.prototype.isLastPixel = function() { + return this.xLoc === this.xDim - 1 && this.yLoc === this.yDim - 1; + }; + jpeg2.lossless.Decoder.prototype.outputSingle = function(PRED) { + if (this.xLoc < this.xDim && this.yLoc < this.yDim) { + this.setter(this.yLoc * this.xDim + this.xLoc, this.mask & PRED[0]); + this.xLoc += 1; + if (this.xLoc >= this.xDim) { + this.yLoc += 1; + this.xLoc = 0; } - - a <<= 1; - this.chigh = ((this.chigh << 1) & 0xFFFF) | ((this.clow >> 15) & 1); - this.clow = (this.clow << 1) & 0xFFFF; - this.ct--; - } while ((a & 0x8000) === 0); - this.a = a; - - contexts[pos] = cx_index << 1 | cx_mps; - return d; - } - }; - - return ArithmeticDecoder; -})(); - -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* globals Cmd, ColorSpace, Dict, MozBlobBuilder, Name, PDFJS, Ref, URL, - Promise */ - -'use strict'; - -var globalScope = (typeof window === 'undefined') ? this : window; - -var isWorker = (typeof window === 'undefined'); - -var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; - -var TextRenderingMode = { - FILL: 0, - STROKE: 1, - FILL_STROKE: 2, - INVISIBLE: 3, - FILL_ADD_TO_PATH: 4, - STROKE_ADD_TO_PATH: 5, - FILL_STROKE_ADD_TO_PATH: 6, - ADD_TO_PATH: 7, - FILL_STROKE_MASK: 3, - ADD_TO_PATH_FLAG: 4 -}; - -var ImageKind = { - GRAYSCALE_1BPP: 1, - RGB_24BPP: 2, - RGBA_32BPP: 3 -}; - -var AnnotationType = { - WIDGET: 1, - TEXT: 2, - LINK: 3 -}; - -var StreamType = { - UNKNOWN: 0, - FLATE: 1, - LZW: 2, - DCT: 3, - JPX: 4, - JBIG: 5, - A85: 6, - AHX: 7, - CCF: 8, - RL: 9 -}; - -var FontType = { - UNKNOWN: 0, - TYPE1: 1, - TYPE1C: 2, - CIDFONTTYPE0: 3, - CIDFONTTYPE0C: 4, - TRUETYPE: 5, - CIDFONTTYPE2: 6, - TYPE3: 7, - OPENTYPE: 8, - TYPE0: 9, - MMTYPE1: 10 -}; - -// The global PDFJS object exposes the API -// In production, it will be declared outside a global wrapper -// In development, it will be declared here -if (!globalScope.PDFJS) { - globalScope.PDFJS = {}; -} - -//globalScope.PDFJS.pdfBug = false; - -var PDFJS = PDFJS || {}; - -PDFJS.VERBOSITY_LEVELS = { - errors: 0, - warnings: 1, - infos: 5 -}; - -// All the possible operations for an operator list. -var OPS = PDFJS.OPS = { - // Intentionally start from 1 so it is easy to spot bad operators that will be - // 0's. - dependency: 1, - setLineWidth: 2, - setLineCap: 3, - setLineJoin: 4, - setMiterLimit: 5, - setDash: 6, - setRenderingIntent: 7, - setFlatness: 8, - setGState: 9, - save: 10, - restore: 11, - transform: 12, - moveTo: 13, - lineTo: 14, - curveTo: 15, - curveTo2: 16, - curveTo3: 17, - closePath: 18, - rectangle: 19, - stroke: 20, - closeStroke: 21, - fill: 22, - eoFill: 23, - fillStroke: 24, - eoFillStroke: 25, - closeFillStroke: 26, - closeEOFillStroke: 27, - endPath: 28, - clip: 29, - eoClip: 30, - beginText: 31, - endText: 32, - setCharSpacing: 33, - setWordSpacing: 34, - setHScale: 35, - setLeading: 36, - setFont: 37, - setTextRenderingMode: 38, - setTextRise: 39, - moveText: 40, - setLeadingMoveText: 41, - setTextMatrix: 42, - nextLine: 43, - showText: 44, - showSpacedText: 45, - nextLineShowText: 46, - nextLineSetSpacingShowText: 47, - setCharWidth: 48, - setCharWidthAndBounds: 49, - setStrokeColorSpace: 50, - setFillColorSpace: 51, - setStrokeColor: 52, - setStrokeColorN: 53, - setFillColor: 54, - setFillColorN: 55, - setStrokeGray: 56, - setFillGray: 57, - setStrokeRGBColor: 58, - setFillRGBColor: 59, - setStrokeCMYKColor: 60, - setFillCMYKColor: 61, - shadingFill: 62, - beginInlineImage: 63, - beginImageData: 64, - endInlineImage: 65, - paintXObject: 66, - markPoint: 67, - markPointProps: 68, - beginMarkedContent: 69, - beginMarkedContentProps: 70, - endMarkedContent: 71, - beginCompat: 72, - endCompat: 73, - paintFormXObjectBegin: 74, - paintFormXObjectEnd: 75, - beginGroup: 76, - endGroup: 77, - beginAnnotations: 78, - endAnnotations: 79, - beginAnnotation: 80, - endAnnotation: 81, - paintJpegXObject: 82, - paintImageMaskXObject: 83, - paintImageMaskXObjectGroup: 84, - paintImageXObject: 85, - paintInlineImageXObject: 86, - paintInlineImageXObjectGroup: 87, - paintImageXObjectRepeat: 88, - paintImageMaskXObjectRepeat: 89, - paintSolidColorImageMask: 90, - constructPath: 91 -}; - -// A notice for devs. These are good for things that are helpful to devs, such -// as warning that Workers were disabled, which is important to devs but not -// end users. -function info(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.infos) { - console.log('Info: ' + msg); - } -} - -// Non-fatal warnings. -function warn(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.warnings) { - console.log('Warning: ' + msg); - } -} - -// Fatal errors that should trigger the fallback UI and halt execution by -// throwing an exception. -function error(msg) { - // If multiple arguments were passed, pass them all to the log function. - if (arguments.length > 1) { - var logArguments = ['Error:']; - logArguments.push.apply(logArguments, arguments); - console.log.apply(console, logArguments); - // Join the arguments into a single string for the lines below. - msg = [].join.call(arguments, ' '); - } else { - console.log('Error: ' + msg); - } - console.log(backtrace()); - UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown); - throw new Error(msg); -} - -function backtrace() { - try { - throw new Error(); - } catch (e) { - return e.stack ? e.stack.split('\n').slice(2).join('\n') : ''; - } -} - -function assert(cond, msg) { - if (!cond) { - error(msg); - } -} - -var UNSUPPORTED_FEATURES = PDFJS.UNSUPPORTED_FEATURES = { - unknown: 'unknown', - forms: 'forms', - javaScript: 'javaScript', - smask: 'smask', - shadingPattern: 'shadingPattern', - font: 'font' -}; - -var UnsupportedManager = PDFJS.UnsupportedManager = - (function UnsupportedManagerClosure() { - var listeners = []; - return { - listen: function (cb) { - listeners.push(cb); - }, - notify: function (featureId) { - warn('Unsupported feature "' + featureId + '"'); - for (var i = 0, ii = listeners.length; i < ii; i++) { - listeners[i](featureId); } - } - }; -})(); - -// Combines two URLs. The baseUrl shall be absolute URL. If the url is an -// absolute URL, it will be returned as is. -function combineUrl(baseUrl, url) { - if (!url) { - return baseUrl; - } - if (/^[a-z][a-z0-9+\-.]*:/i.test(url)) { - return url; - } - var i; - if (url.charAt(0) === '/') { - // absolute path - i = baseUrl.indexOf('://'); - if (url.charAt(1) === '/') { - ++i; - } else { - i = baseUrl.indexOf('/', i + 3); - } - return baseUrl.substring(0, i) + url; - } else { - // relative path - var pathLength = baseUrl.length; - i = baseUrl.lastIndexOf('#'); - pathLength = i >= 0 ? i : pathLength; - i = baseUrl.lastIndexOf('?', pathLength); - pathLength = i >= 0 ? i : pathLength; - var prefixLength = baseUrl.lastIndexOf('/', pathLength); - return baseUrl.substring(0, prefixLength + 1) + url; - } -} - -// Validates if URL is safe and allowed, e.g. to avoid XSS. -function isValidUrl(url, allowRelative) { - if (!url) { - return false; - } - // RFC 3986 (http://tools.ietf.org/html/rfc3986#section-3.1) - // scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) - var protocol = /^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url); - if (!protocol) { - return allowRelative; - } - protocol = protocol[0].toLowerCase(); - switch (protocol) { - case 'http': - case 'https': - case 'ftp': - case 'mailto': - case 'tel': - return true; - default: - return false; - } -} -PDFJS.isValidUrl = isValidUrl; - -function shadow(obj, prop, value) { - Object.defineProperty(obj, prop, { value: value, - enumerable: true, - configurable: true, - writable: false }); - return value; -} -PDFJS.shadow = shadow; - -var PasswordResponses = PDFJS.PasswordResponses = { - NEED_PASSWORD: 1, - INCORRECT_PASSWORD: 2 -}; - -var PasswordException = (function PasswordExceptionClosure() { - function PasswordException(msg, code) { - this.name = 'PasswordException'; - this.message = msg; - this.code = code; - } - - PasswordException.prototype = new Error(); - PasswordException.constructor = PasswordException; - - return PasswordException; -})(); -PDFJS.PasswordException = PasswordException; - -var UnknownErrorException = (function UnknownErrorExceptionClosure() { - function UnknownErrorException(msg, details) { - this.name = 'UnknownErrorException'; - this.message = msg; - this.details = details; - } - - UnknownErrorException.prototype = new Error(); - UnknownErrorException.constructor = UnknownErrorException; - - return UnknownErrorException; -})(); -PDFJS.UnknownErrorException = UnknownErrorException; - -var InvalidPDFException = (function InvalidPDFExceptionClosure() { - function InvalidPDFException(msg) { - this.name = 'InvalidPDFException'; - this.message = msg; - } - - InvalidPDFException.prototype = new Error(); - InvalidPDFException.constructor = InvalidPDFException; - - return InvalidPDFException; -})(); -PDFJS.InvalidPDFException = InvalidPDFException; - -var MissingPDFException = (function MissingPDFExceptionClosure() { - function MissingPDFException(msg) { - this.name = 'MissingPDFException'; - this.message = msg; - } - - MissingPDFException.prototype = new Error(); - MissingPDFException.constructor = MissingPDFException; - - return MissingPDFException; -})(); -PDFJS.MissingPDFException = MissingPDFException; - -var UnexpectedResponseException = - (function UnexpectedResponseExceptionClosure() { - function UnexpectedResponseException(msg, status) { - this.name = 'UnexpectedResponseException'; - this.message = msg; - this.status = status; - } - - UnexpectedResponseException.prototype = new Error(); - UnexpectedResponseException.constructor = UnexpectedResponseException; - - return UnexpectedResponseException; -})(); -PDFJS.UnexpectedResponseException = UnexpectedResponseException; - -var NotImplementedException = (function NotImplementedExceptionClosure() { - function NotImplementedException(msg) { - this.message = msg; - } - - NotImplementedException.prototype = new Error(); - NotImplementedException.prototype.name = 'NotImplementedException'; - NotImplementedException.constructor = NotImplementedException; - - return NotImplementedException; -})(); - -var MissingDataException = (function MissingDataExceptionClosure() { - function MissingDataException(begin, end) { - this.begin = begin; - this.end = end; - this.message = 'Missing data [' + begin + ', ' + end + ')'; - } - - MissingDataException.prototype = new Error(); - MissingDataException.prototype.name = 'MissingDataException'; - MissingDataException.constructor = MissingDataException; - - return MissingDataException; -})(); - -var XRefParseException = (function XRefParseExceptionClosure() { - function XRefParseException(msg) { - this.message = msg; - } - - XRefParseException.prototype = new Error(); - XRefParseException.prototype.name = 'XRefParseException'; - XRefParseException.constructor = XRefParseException; - - return XRefParseException; -})(); - - -function bytesToString(bytes) { - assert(bytes !== null && typeof bytes === 'object' && - bytes.length !== undefined, 'Invalid argument for bytesToString'); - var length = bytes.length; - var MAX_ARGUMENT_COUNT = 8192; - if (length < MAX_ARGUMENT_COUNT) { - return String.fromCharCode.apply(null, bytes); - } - var strBuf = []; - for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { - var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); - var chunk = bytes.subarray(i, chunkEnd); - strBuf.push(String.fromCharCode.apply(null, chunk)); - } - return strBuf.join(''); -} - -function stringToBytes(str) { - assert(typeof str === 'string', 'Invalid argument for stringToBytes'); - var length = str.length; - var bytes = new Uint8Array(length); - for (var i = 0; i < length; ++i) { - bytes[i] = str.charCodeAt(i) & 0xFF; - } - return bytes; -} - -function string32(value) { - return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff, - (value >> 8) & 0xff, value & 0xff); -} - -function log2(x) { - var n = 1, i = 0; - while (x > n) { - n <<= 1; - i++; - } - return i; -} - -function readInt8(data, start) { - return (data[start] << 24) >> 24; -} - -function readUint16(data, offset) { - return (data[offset] << 8) | data[offset + 1]; -} - -function readUint32(data, offset) { - return ((data[offset] << 24) | (data[offset + 1] << 16) | - (data[offset + 2] << 8) | data[offset + 3]) >>> 0; -} - -// Lazy test the endianness of the platform -// NOTE: This will be 'true' for simulated TypedArrays -function isLittleEndian() { - var buffer8 = new Uint8Array(2); - buffer8[0] = 1; - var buffer16 = new Uint16Array(buffer8.buffer); - return (buffer16[0] === 1); -} - -Object.defineProperty(PDFJS, 'isLittleEndian', { - configurable: true, - get: function PDFJS_isLittleEndian() { - return shadow(PDFJS, 'isLittleEndian', isLittleEndian()); - } -}); - -//#if !(FIREFOX || MOZCENTRAL || B2G || CHROME) -//// Lazy test if the userAgant support CanvasTypedArrays -function hasCanvasTypedArrays() { - var canvas = document.createElement('canvas'); - canvas.width = canvas.height = 1; - var ctx = canvas.getContext('2d'); - var imageData = ctx.createImageData(1, 1); - return (typeof imageData.data.buffer !== 'undefined'); -} - -Object.defineProperty(PDFJS, 'hasCanvasTypedArrays', { - configurable: true, - get: function PDFJS_hasCanvasTypedArrays() { - return shadow(PDFJS, 'hasCanvasTypedArrays', hasCanvasTypedArrays()); - } -}); - -var Uint32ArrayView = (function Uint32ArrayViewClosure() { - - function Uint32ArrayView(buffer, length) { - this.buffer = buffer; - this.byteLength = buffer.length; - this.length = length === undefined ? (this.byteLength >> 2) : length; - ensureUint32ArrayViewProps(this.length); - } - Uint32ArrayView.prototype = Object.create(null); - - var uint32ArrayViewSetters = 0; - function createUint32ArrayProp(index) { - return { - get: function () { - var buffer = this.buffer, offset = index << 2; - return (buffer[offset] | (buffer[offset + 1] << 8) | - (buffer[offset + 2] << 16) | (buffer[offset + 3] << 24)) >>> 0; - }, - set: function (value) { - var buffer = this.buffer, offset = index << 2; - buffer[offset] = value & 255; - buffer[offset + 1] = (value >> 8) & 255; - buffer[offset + 2] = (value >> 16) & 255; - buffer[offset + 3] = (value >>> 24) & 255; + }; + jpeg2.lossless.Decoder.prototype.outputRGB = function(PRED) { + var offset = this.yLoc * this.xDim + this.xLoc; + if (this.xLoc < this.xDim && this.yLoc < this.yDim) { + this.setter(offset, PRED[0], 0); + this.setter(offset, PRED[1], 1); + this.setter(offset, PRED[2], 2); + this.xLoc += 1; + if (this.xLoc >= this.xDim) { + this.yLoc += 1; + this.xLoc = 0; + } } }; - } - - function ensureUint32ArrayViewProps(length) { - while (uint32ArrayViewSetters < length) { - Object.defineProperty(Uint32ArrayView.prototype, - uint32ArrayViewSetters, - createUint32ArrayProp(uint32ArrayViewSetters)); - uint32ArrayViewSetters++; - } - } - - return Uint32ArrayView; -})(); -//#else -//PDFJS.hasCanvasTypedArrays = true; -//#endif - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; - -var Util = PDFJS.Util = (function UtilClosure() { - function Util() {} - - var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; - - // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids - // creating many intermediate strings. - Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { - rgbBuf[1] = r; - rgbBuf[3] = g; - rgbBuf[5] = b; - return rgbBuf.join(''); - }; - - // Concatenates two transformation matrices together and returns the result. - Util.transform = function Util_transform(m1, m2) { - return [ - m1[0] * m2[0] + m1[2] * m2[1], - m1[1] * m2[0] + m1[3] * m2[1], - m1[0] * m2[2] + m1[2] * m2[3], - m1[1] * m2[2] + m1[3] * m2[3], - m1[0] * m2[4] + m1[2] * m2[5] + m1[4], - m1[1] * m2[4] + m1[3] * m2[5] + m1[5] - ]; - }; - - // For 2d affine transforms - Util.applyTransform = function Util_applyTransform(p, m) { - var xt = p[0] * m[0] + p[1] * m[2] + m[4]; - var yt = p[0] * m[1] + p[1] * m[3] + m[5]; - return [xt, yt]; - }; - - Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { - var d = m[0] * m[3] - m[1] * m[2]; - var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; - var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; - return [xt, yt]; - }; - - // Applies the transform to the rectangle and finds the minimum axially - // aligned bounding box. - Util.getAxialAlignedBoundingBox = - function Util_getAxialAlignedBoundingBox(r, m) { - - var p1 = Util.applyTransform(r, m); - var p2 = Util.applyTransform(r.slice(2, 4), m); - var p3 = Util.applyTransform([r[0], r[3]], m); - var p4 = Util.applyTransform([r[2], r[1]], m); - return [ - Math.min(p1[0], p2[0], p3[0], p4[0]), - Math.min(p1[1], p2[1], p3[1], p4[1]), - Math.max(p1[0], p2[0], p3[0], p4[0]), - Math.max(p1[1], p2[1], p3[1], p4[1]) - ]; - }; - - Util.inverseTransform = function Util_inverseTransform(m) { - var d = m[0] * m[3] - m[1] * m[2]; - return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, - (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; - }; - - // Apply a generic 3d matrix M on a 3-vector v: - // | a b c | | X | - // | d e f | x | Y | - // | g h i | | Z | - // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i], - // with v as [X,Y,Z] - Util.apply3dTransform = function Util_apply3dTransform(m, v) { - return [ - m[0] * v[0] + m[1] * v[1] + m[2] * v[2], - m[3] * v[0] + m[4] * v[1] + m[5] * v[2], - m[6] * v[0] + m[7] * v[1] + m[8] * v[2] - ]; - }; - - // This calculation uses Singular Value Decomposition. - // The SVD can be represented with formula A = USV. We are interested in the - // matrix S here because it represents the scale values. - Util.singularValueDecompose2dScale = - function Util_singularValueDecompose2dScale(m) { - - var transpose = [m[0], m[2], m[1], m[3]]; - - // Multiply matrix m with its transpose. - var a = m[0] * transpose[0] + m[1] * transpose[2]; - var b = m[0] * transpose[1] + m[1] * transpose[3]; - var c = m[2] * transpose[0] + m[3] * transpose[2]; - var d = m[2] * transpose[1] + m[3] * transpose[3]; - - // Solve the second degree polynomial to get roots. - var first = (a + d) / 2; - var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; - var sx = first + second || 1; - var sy = first - second || 1; - - // Scale values are the square roots of the eigenvalues. - return [Math.sqrt(sx), Math.sqrt(sy)]; - }; - - // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2) - // For coordinate systems whose origin lies in the bottom-left, this - // means normalization to (BL,TR) ordering. For systems with origin in the - // top-left, this means (TL,BR) ordering. - Util.normalizeRect = function Util_normalizeRect(rect) { - var r = rect.slice(0); // clone rect - if (rect[0] > rect[2]) { - r[0] = rect[2]; - r[2] = rect[0]; - } - if (rect[1] > rect[3]) { - r[1] = rect[3]; - r[3] = rect[1]; - } - return r; - }; - - // Returns a rectangle [x1, y1, x2, y2] corresponding to the - // intersection of rect1 and rect2. If no intersection, returns 'false' - // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2] - Util.intersect = function Util_intersect(rect1, rect2) { - function compare(a, b) { - return a - b; - } - - // Order points along the axes - var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), - orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), - result = []; - - rect1 = Util.normalizeRect(rect1); - rect2 = Util.normalizeRect(rect2); - - // X: first and second points belong to different rectangles? - if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) || - (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) { - // Intersection must be between second and third points - result[0] = orderedX[1]; - result[2] = orderedX[2]; - } else { - return false; - } - - // Y: first and second points belong to different rectangles? - if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) || - (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) { - // Intersection must be between second and third points - result[1] = orderedY[1]; - result[3] = orderedY[2]; + jpeg2.lossless.Decoder.prototype.setValue8 = function(index, val) { + this.outputData[index] = val; + }; + jpeg2.lossless.Decoder.prototype.getValue8 = function(index) { + return this.outputData[index]; + }; + var littleEndian = function() { + var buffer2 = new ArrayBuffer(2); + new DataView(buffer2).setInt16( + 0, + 256, + true + /* littleEndian */ + ); + return new Int16Array(buffer2)[0] === 256; + }(); + if (littleEndian) { + jpeg2.lossless.Decoder.prototype.setValue16 = jpeg2.lossless.Decoder.prototype.setValue8; + jpeg2.lossless.Decoder.prototype.getValue16 = jpeg2.lossless.Decoder.prototype.getValue8; } else { - return false; - } - - return result; - }; - - Util.sign = function Util_sign(num) { - return num < 0 ? -1 : 1; - }; - - Util.appendToArray = function Util_appendToArray(arr1, arr2) { - Array.prototype.push.apply(arr1, arr2); - }; - - Util.prependToArray = function Util_prependToArray(arr1, arr2) { - Array.prototype.unshift.apply(arr1, arr2); - }; - - Util.extendObj = function extendObj(obj1, obj2) { - for (var key in obj2) { - obj1[key] = obj2[key]; - } - }; - - Util.getInheritableProperty = function Util_getInheritableProperty(dict, - name) { - while (dict && !dict.has(name)) { - dict = dict.get('Parent'); - } - if (!dict) { - return null; - } - return dict.get(name); - }; - - Util.inherit = function Util_inherit(sub, base, prototype) { - sub.prototype = Object.create(base.prototype); - sub.prototype.constructor = sub; - for (var prop in prototype) { - sub.prototype[prop] = prototype[prop]; - } - }; - - Util.loadScript = function Util_loadScript(src, callback) { - var script = document.createElement('script'); - var loaded = false; - script.setAttribute('src', src); - if (callback) { - script.onload = function() { - if (!loaded) { - callback(); - } - loaded = true; + jpeg2.lossless.Decoder.prototype.setValue16 = function(index, val) { + this.outputData[index] = (val & 255) << 8 | val >> 8 & 255; + }; + jpeg2.lossless.Decoder.prototype.getValue16 = function(index) { + var val = this.outputData[index]; + return (val & 255) << 8 | val >> 8 & 255; }; } - document.getElementsByTagName('head')[0].appendChild(script); - }; - - return Util; -})(); - -/** - * PDF page viewport created based on scale, rotation and offset. - * @class - * @alias PDFJS.PageViewport - */ -var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() { - /** - * @constructor - * @private - * @param viewBox {Array} xMin, yMin, xMax and yMax coordinates. - * @param scale {number} scale of the viewport. - * @param rotation {number} rotations of the viewport in degrees. - * @param offsetX {number} offset X - * @param offsetY {number} offset Y - * @param dontFlip {boolean} if true, axis Y will not be flipped. - */ - function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) { - this.viewBox = viewBox; - this.scale = scale; - this.rotation = rotation; - this.offsetX = offsetX; - this.offsetY = offsetY; - - // creating transform to convert pdf coordinate system to the normal - // canvas like coordinates taking in account scale and rotation - var centerX = (viewBox[2] + viewBox[0]) / 2; - var centerY = (viewBox[3] + viewBox[1]) / 2; - var rotateA, rotateB, rotateC, rotateD; - rotation = rotation % 360; - rotation = rotation < 0 ? rotation + 360 : rotation; - switch (rotation) { - case 180: - rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1; - break; - case 90: - rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0; - break; - case 270: - rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0; - break; - //case 0: - default: - rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1; - break; - } - - if (dontFlip) { - rotateC = -rotateC; rotateD = -rotateD; - } - - var offsetCanvasX, offsetCanvasY; - var width, height; - if (rotateA === 0) { - offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; - offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; - width = Math.abs(viewBox[3] - viewBox[1]) * scale; - height = Math.abs(viewBox[2] - viewBox[0]) * scale; - } else { - offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; - offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; - width = Math.abs(viewBox[2] - viewBox[0]) * scale; - height = Math.abs(viewBox[3] - viewBox[1]) * scale; + jpeg2.lossless.Decoder.prototype.setValueRGB = function(index, val, compOffset) { + this.outputData[index * 3 + compOffset] = val; + }; + jpeg2.lossless.Decoder.prototype.getValueRGB = function(index, compOffset) { + return this.outputData[index * 3 + compOffset]; + }; + jpeg2.lossless.Decoder.prototype.readApp = function() { + var count = 0, length = this.stream.get16(); + count += 2; + while (count < length) { + this.stream.get8(); + count += 1; + } + return length; + }; + jpeg2.lossless.Decoder.prototype.readComment = function() { + var sb = "", count = 0, length; + length = this.stream.get16(); + count += 2; + while (count < length) { + sb += this.stream.get8(); + count += 1; + } + return sb; + }; + jpeg2.lossless.Decoder.prototype.readNumber = function() { + var Ld = this.stream.get16(); + if (Ld !== 4) { + throw new Error("ERROR: Define number format throw new IOException [Ld!=4]"); + } + return this.stream.get16(); + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.Decoder; } - // creating transform for the following operations: - // translate(-centerX, -centerY), rotate and flip vertically, - // scale, and translate(offsetCanvasX, offsetCanvasY) - this.transform = [ - rotateA * scale, - rotateB * scale, - rotateC * scale, - rotateD * scale, - offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, - offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY - ]; - - this.width = width; - this.height = height; - this.fontScale = scale; } - PageViewport.prototype = /** @lends PDFJS.PageViewport.prototype */ { - /** - * Clones viewport with additional properties. - * @param args {Object} (optional) If specified, may contain the 'scale' or - * 'rotation' properties to override the corresponding properties in - * the cloned viewport. - * @returns {PDFJS.PageViewport} Cloned viewport. - */ - clone: function PageViewPort_clone(args) { - args = args || {}; - var scale = 'scale' in args ? args.scale : this.scale; - var rotation = 'rotation' in args ? args.rotation : this.rotation; - return new PageViewport(this.viewBox.slice(), scale, rotation, - this.offsetX, this.offsetY, args.dontFlip); - }, - /** - * Converts PDF point to the viewport coordinates. For examples, useful for - * converting PDF location into canvas pixel coordinates. - * @param x {number} X coordinate. - * @param y {number} Y coordinate. - * @returns {Object} Object that contains 'x' and 'y' properties of the - * point in the viewport coordinate space. - * @see {@link convertToPdfPoint} - * @see {@link convertToViewportRectangle} - */ - convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { - return Util.applyTransform([x, y], this.transform); - }, - /** - * Converts PDF rectangle to the viewport coordinates. - * @param rect {Array} xMin, yMin, xMax and yMax coordinates. - * @returns {Array} Contains corresponding coordinates of the rectangle - * in the viewport coordinate space. - * @see {@link convertToViewportPoint} - */ - convertToViewportRectangle: - function PageViewport_convertToViewportRectangle(rect) { - var tl = Util.applyTransform([rect[0], rect[1]], this.transform); - var br = Util.applyTransform([rect[2], rect[3]], this.transform); - return [tl[0], tl[1], br[0], br[1]]; - }, - /** - * Converts viewport coordinates to the PDF location. For examples, useful - * for converting canvas pixel location into PDF one. - * @param x {number} X coordinate. - * @param y {number} Y coordinate. - * @returns {Object} Object that contains 'x' and 'y' properties of the - * point in the PDF coordinate space. - * @see {@link convertToViewportPoint} - */ - convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { - return Util.applyInverseTransform([x, y], this.transform); - } - }; - return PageViewport; -})(); - -var PDFStringTranslateTable = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, - 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, - 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, - 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC -]; +}); -function stringToPDFString(str) { - var i, n = str.length, strBuf = []; - if (str[0] === '\xFE' && str[1] === '\xFF') { - // UTF16BE BOM - for (i = 2; i < n; i += 2) { - strBuf.push(String.fromCharCode( - (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))); - } - } else { - for (i = 0; i < n; ++i) { - var code = PDFStringTranslateTable[str.charCodeAt(i)]; - strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); +// node_modules/jpeg-lossless-decoder-js/src/main.js +var require_main = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/main.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.ComponentSpec = jpeg2.lossless.ComponentSpec || (typeof require !== "undefined" ? require_component_spec() : null); + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.Decoder = jpeg2.lossless.Decoder || (typeof require !== "undefined" ? require_decoder() : null); + jpeg2.lossless.FrameHeader = jpeg2.lossless.FrameHeader || (typeof require !== "undefined" ? require_frame_header() : null); + jpeg2.lossless.HuffmanTable = jpeg2.lossless.HuffmanTable || (typeof require !== "undefined" ? require_huffman_table() : null); + jpeg2.lossless.QuantizationTable = jpeg2.lossless.QuantizationTable || (typeof require !== "undefined" ? require_quantization_table() : null); + jpeg2.lossless.ScanComponent = jpeg2.lossless.ScanComponent || (typeof require !== "undefined" ? require_scan_component() : null); + jpeg2.lossless.ScanHeader = jpeg2.lossless.ScanHeader || (typeof require !== "undefined" ? require_scan_header() : null); + jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2; } } - return strBuf.join(''); -} - -function stringToUTF8String(str) { - return decodeURIComponent(escape(str)); -} - -function isEmptyObj(obj) { - for (var key in obj) { - return false; - } - return true; -} - -function isBool(v) { - return typeof v === 'boolean'; -} - -function isInt(v) { - return typeof v === 'number' && ((v | 0) === v); -} - -function isNum(v) { - return typeof v === 'number'; -} +}); -function isString(v) { - return typeof v === 'string'; -} - -function isNull(v) { - return v === null; -} - -function isName(v) { - return v instanceof Name; -} - -function isCmd(v, cmd) { - return v instanceof Cmd && (cmd === undefined || v.cmd === cmd); -} - -function isDict(v, type) { - if (!(v instanceof Dict)) { - return false; - } - if (!type) { - return true; - } - var dictType = v.get('Type'); - return isName(dictType) && dictType.name === type; -} - -function isArray(v) { - return v instanceof Array; -} - -function isStream(v) { - return typeof v === 'object' && v !== null && v.getBytes !== undefined; -} - -function isArrayBuffer(v) { - return typeof v === 'object' && v !== null && v.byteLength !== undefined; -} - -function isRef(v) { - return v instanceof Ref; -} - -/** - * Promise Capability object. - * - * @typedef {Object} PromiseCapability - * @property {Promise} promise - A promise object. - * @property {function} resolve - Fullfills the promise. - * @property {function} reject - Rejects the promise. - */ - -/** - * Creates a promise capability object. - * @alias PDFJS.createPromiseCapability - * - * @return {PromiseCapability} A capability object contains: - * - a Promise, resolve and reject methods. - */ -function createPromiseCapability() { - var capability = {}; - capability.promise = new Promise(function (resolve, reject) { - capability.resolve = resolve; - capability.reject = reject; - }); - return capability; -} - -PDFJS.createPromiseCapability = createPromiseCapability; - -/** - * Polyfill for Promises: - * The following promise implementation tries to generally implement the - * Promise/A+ spec. Some notable differences from other promise libaries are: - * - There currently isn't a seperate deferred and promise object. - * - Unhandled rejections eventually show an error if they aren't handled. - * - * Based off of the work in: - * https://bugzilla.mozilla.org/show_bug.cgi?id=810490 - */ -(function PromiseClosure() { - if (globalScope.Promise) { - // Promises existing in the DOM/Worker, checking presence of all/resolve - if (typeof globalScope.Promise.all !== 'function') { - globalScope.Promise.all = function (iterable) { - var count = 0, results = [], resolve, reject; - var promise = new globalScope.Promise(function (resolve_, reject_) { - resolve = resolve_; - reject = reject_; - }); - iterable.forEach(function (p, i) { - count++; - p.then(function (result) { - results[i] = result; - count--; - if (count === 0) { - resolve(results); +// lib/jpeg-baseline.js +var require_jpeg_baseline = __commonJS({ + "lib/jpeg-baseline.js"(exports2, module2) { + var ColorSpace = { Unkown: 0, Grayscale: 1, AdobeRGB: 2, RGB: 3, CYMK: 4 }; + var JpegImage = function jpegImage() { + "use strict"; + var dctZigZag = new Int32Array([ + 0, + 1, + 8, + 16, + 9, + 2, + 3, + 10, + 17, + 24, + 32, + 25, + 18, + 11, + 4, + 5, + 12, + 19, + 26, + 33, + 40, + 48, + 41, + 34, + 27, + 20, + 13, + 6, + 7, + 14, + 21, + 28, + 35, + 42, + 49, + 56, + 57, + 50, + 43, + 36, + 29, + 22, + 15, + 23, + 30, + 37, + 44, + 51, + 58, + 59, + 52, + 45, + 38, + 31, + 39, + 46, + 53, + 60, + 61, + 54, + 47, + 55, + 62, + 63 + ]); + var dctCos1 = 4017; + var dctSin1 = 799; + var dctCos3 = 3406; + var dctSin3 = 2276; + var dctCos6 = 1567; + var dctSin6 = 3784; + var dctSqrt2 = 5793; + var dctSqrt1d2 = 2896; + function constructor() { + } + function buildHuffmanTable(codeLengths, values) { + var k = 0, code = [], i2, j, length = 16; + while (length > 0 && !codeLengths[length - 1]) + length--; + code.push({ children: [], index: 0 }); + var p = code[0], q; + for (i2 = 0; i2 < length; i2++) { + for (j = 0; j < codeLengths[i2]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + while (p.index > 0) { + p = code.pop(); } - }, reject); - }); - if (count === 0) { - resolve(results); + p.index++; + code.push(p); + while (code.length <= i2) { + code.push(q = { children: [], index: 0 }); + p.children[p.index] = q.children; + p = q; + } + k++; + } + if (i2 + 1 < length) { + code.push(q = { children: [], index: 0 }); + p.children[p.index] = q.children; + p = q; + } } - return promise; - }; - } - if (typeof globalScope.Promise.resolve !== 'function') { - globalScope.Promise.resolve = function (value) { - return new globalScope.Promise(function (resolve) { resolve(value); }); - }; - } - if (typeof globalScope.Promise.reject !== 'function') { - globalScope.Promise.reject = function (reason) { - return new globalScope.Promise(function (resolve, reject) { - reject(reason); - }); - }; - } - if (typeof globalScope.Promise.prototype.catch2 !== 'function') { - globalScope.Promise.prototype.catch2 = function (onReject) { - return globalScope.Promise.prototype.then(undefined, onReject); - }; - } - return; - } -//#if !MOZCENTRAL - var STATUS_PENDING = 0; - var STATUS_RESOLVED = 1; - var STATUS_REJECTED = 2; - - // In an attempt to avoid silent exceptions, unhandled rejections are - // tracked and if they aren't handled in a certain amount of time an - // error is logged. - var REJECTION_TIMEOUT = 500; - - var HandlerManager = { - handlers: [], - running: false, - unhandledRejections: [], - pendingRejectionCheck: false, - - scheduleHandlers: function scheduleHandlers(promise) { - if (promise._status === STATUS_PENDING) { - return; + return code[0].children; } - - this.handlers = this.handlers.concat(promise._handlers); - promise._handlers = []; - - if (this.running) { - return; + function getBlockBufferOffset(component, row, col) { + return 64 * ((component.blocksPerLine + 1) * row + col); } - this.running = true; - - setTimeout(this.runHandlers.bind(this), 0); - }, - - runHandlers: function runHandlers() { - var RUN_TIMEOUT = 1; // ms - var timeoutAt = Date.now() + RUN_TIMEOUT; - while (this.handlers.length > 0) { - var handler = this.handlers.shift(); - - var nextStatus = handler.thisPromise._status; - var nextValue = handler.thisPromise._value; - - try { - if (nextStatus === STATUS_RESOLVED) { - if (typeof handler.onResolve === 'function') { - nextValue = handler.onResolve(nextValue); + function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) { + var precision = frame.precision; + var samplesPerLine = frame.samplesPerLine; + var scanLines = frame.scanLines; + var mcusPerLine = frame.mcusPerLine; + var progressive = frame.progressive; + var maxH = frame.maxH, maxV = frame.maxV; + var startOffset = offset, bitsData = 0, bitsCount = 0; + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return bitsData >> bitsCount & 1; + } + bitsData = data[offset++]; + if (bitsData == 255) { + var nextByte = data[offset++]; + if (nextByte) { + throw "unexpected marker: " + (bitsData << 8 | nextByte).toString(16); } - } else if (typeof handler.onReject === 'function') { - nextValue = handler.onReject(nextValue); - nextStatus = STATUS_RESOLVED; - - if (handler.thisPromise._unhandledRejection) { - this.removeUnhandeledRejection(handler.thisPromise); - } } - } catch (ex) { - nextStatus = STATUS_REJECTED; - nextValue = ex; + bitsCount = 7; + return bitsData >>> 7; } - - handler.nextPromise._updateStatus(nextStatus, nextValue); - if (Date.now() >= timeoutAt) { - break; + function decodeHuffman(tree) { + var node = tree; + var bit; + while ((bit = readBit()) !== null) { + node = node[bit]; + if (typeof node === "number") + return node; + if (typeof node !== "object") + throw "invalid huffman sequence"; + } + return null; } - } - - if (this.handlers.length > 0) { - setTimeout(this.runHandlers.bind(this), 0); - return; - } - - this.running = false; - }, - - addUnhandledRejection: function addUnhandledRejection(promise) { - this.unhandledRejections.push({ - promise: promise, - time: Date.now() - }); - this.scheduleRejectionCheck(); - }, - - removeUnhandeledRejection: function removeUnhandeledRejection(promise) { - promise._unhandledRejection = false; - for (var i = 0; i < this.unhandledRejections.length; i++) { - if (this.unhandledRejections[i].promise === promise) { - this.unhandledRejections.splice(i); - i--; + function receive(length) { + var n2 = 0; + while (length > 0) { + var bit = readBit(); + if (bit === null) + return; + n2 = n2 << 1 | bit; + length--; + } + return n2; } - } - }, - - scheduleRejectionCheck: function scheduleRejectionCheck() { - if (this.pendingRejectionCheck) { - return; - } - this.pendingRejectionCheck = true; - setTimeout(function rejectionCheck() { - this.pendingRejectionCheck = false; - var now = Date.now(); - for (var i = 0; i < this.unhandledRejections.length; i++) { - if (now - this.unhandledRejections[i].time > REJECTION_TIMEOUT) { - var unhandled = this.unhandledRejections[i].promise._value; - var msg = 'Unhandled rejection: ' + unhandled; - if (unhandled.stack) { - msg += '\n' + unhandled.stack; + function receiveAndExtend(length) { + var n2 = receive(length); + if (n2 >= 1 << length - 1) + return n2; + return n2 + (-1 << length) + 1; + } + function decodeBaseline(component2, offset2) { + var t = decodeHuffman(component2.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t); + component2.blockData[offset2] = component2.pred += diff; + var k2 = 1; + while (k2 < 64) { + var rs = decodeHuffman(component2.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) + break; + k2 += 16; + continue; } - warn(msg); - this.unhandledRejections.splice(i); - i--; + k2 += r; + var z = dctZigZag[k2]; + component2.blockData[offset2 + z] = receiveAndExtend(s); + k2++; } } - if (this.unhandledRejections.length) { - this.scheduleRejectionCheck(); + function decodeDCFirst(component2, offset2) { + var t = decodeHuffman(component2.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t) << successive; + component2.blockData[offset2] = component2.pred += diff; } - }.bind(this), REJECTION_TIMEOUT); - } - }; - - function Promise(resolver) { - this._status = STATUS_PENDING; - this._handlers = []; - try { - resolver.call(this, this._resolve.bind(this), this._reject.bind(this)); - } catch (e) { - this._reject(e); - } - } - /** - * Builds a promise that is resolved when all the passed in promises are - * resolved. - * @param {array} array of data and/or promises to wait for. - * @return {Promise} New dependant promise. - */ - Promise.all = function Promise_all(promises) { - var resolveAll, rejectAll; - var deferred = new Promise(function (resolve, reject) { - resolveAll = resolve; - rejectAll = reject; - }); - var unresolved = promises.length; - var results = []; - if (unresolved === 0) { - resolveAll(results); - return deferred; - } - function reject(reason) { - if (deferred._status === STATUS_REJECTED) { - return; - } - results = []; - rejectAll(reason); - } - for (var i = 0, ii = promises.length; i < ii; ++i) { - var promise = promises[i]; - var resolve = (function(i) { - return function(value) { - if (deferred._status === STATUS_REJECTED) { + function decodeDCSuccessive(component2, offset2) { + component2.blockData[offset2] |= readBit() << successive; + } + var eobrun = 0; + function decodeACFirst(component2, offset2) { + if (eobrun > 0) { + eobrun--; return; } - results[i] = value; - unresolved--; - if (unresolved === 0) { - resolveAll(results); + var k2 = spectralStart, e = spectralEnd; + while (k2 <= e) { + var rs = decodeHuffman(component2.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; + break; + } + k2 += 16; + continue; + } + k2 += r; + var z = dctZigZag[k2]; + component2.blockData[offset2 + z] = receiveAndExtend(s) * (1 << successive); + k2++; } - }; - })(i); - if (Promise.isPromise(promise)) { - promise.then(resolve, reject); - } else { - resolve(promise); - } - } - return deferred; - }; - - /** - * Checks if the value is likely a promise (has a 'then' function). - * @return {boolean} true if value is thenable - */ - Promise.isPromise = function Promise_isPromise(value) { - return value && typeof value.then === 'function'; - }; - - /** - * Creates resolved promise - * @param value resolve value - * @returns {Promise} - */ - Promise.resolve = function Promise_resolve(value) { - return new Promise(function (resolve) { resolve(value); }); - }; - - /** - * Creates rejected promise - * @param reason rejection value - * @returns {Promise} - */ - Promise.reject = function Promise_reject(reason) { - return new Promise(function (resolve, reject) { reject(reason); }); - }; - - Promise.prototype = { - _status: null, - _value: null, - _handlers: null, - _unhandledRejection: null, - - _updateStatus: function Promise__updateStatus(status, value) { - if (this._status === STATUS_RESOLVED || - this._status === STATUS_REJECTED) { - return; - } - - if (status === STATUS_RESOLVED && - Promise.isPromise(value)) { - value.then(this._updateStatus.bind(this, STATUS_RESOLVED), - this._updateStatus.bind(this, STATUS_REJECTED)); - return; - } - - this._status = status; - this._value = value; - - if (status === STATUS_REJECTED && this._handlers.length === 0) { - this._unhandledRejection = true; - HandlerManager.addUnhandledRejection(this); - } - - HandlerManager.scheduleHandlers(this); - }, - - _resolve: function Promise_resolve(value) { - this._updateStatus(STATUS_RESOLVED, value); - }, - - _reject: function Promise_reject(reason) { - this._updateStatus(STATUS_REJECTED, reason); - }, - - then: function Promise_then(onResolve, onReject) { - var nextPromise = new Promise(function (resolve, reject) { - this.resolve = resolve; - this.reject = reject; - }); - this._handlers.push({ - thisPromise: this, - onResolve: onResolve, - onReject: onReject, - nextPromise: nextPromise - }); - HandlerManager.scheduleHandlers(this); - return nextPromise; - }, - - catch2: function Promise_catch(onReject) { - return this.then(undefined, onReject); - } - }; - - globalScope.Promise = Promise; -//#else -//throw new Error('DOM Promise is not present'); -//#endif -})(); - -var StatTimer = (function StatTimerClosure() { - function rpad(str, pad, length) { - while (str.length < length) { - str += pad; - } - return str; - } - function StatTimer() { - this.started = {}; - this.times = []; - this.enabled = true; - } - StatTimer.prototype = { - time: function StatTimer_time(name) { - if (!this.enabled) { - return; - } - if (name in this.started) { - warn('Timer is already running for ' + name); - } - this.started[name] = Date.now(); - }, - timeEnd: function StatTimer_timeEnd(name) { - if (!this.enabled) { - return; + } + var successiveACState = 0, successiveACNextValue; + function decodeACSuccessive(component2, offset2) { + var k2 = spectralStart, e = spectralEnd, r = 0; + while (k2 <= e) { + var z = dctZigZag[k2]; + switch (successiveACState) { + case 0: + var rs = decodeHuffman(component2.huffmanTableAC); + var s = rs & 15; + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) + throw "invalid ACn encoding"; + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + continue; + case 1: + case 2: + if (component2.blockData[offset2 + z]) { + component2.blockData[offset2 + z] += readBit() << successive; + } else { + r--; + if (r === 0) + successiveACState = successiveACState == 2 ? 3 : 0; + } + break; + case 3: + if (component2.blockData[offset2 + z]) { + component2.blockData[offset2 + z] += readBit() << successive; + } else { + component2.blockData[offset2 + z] = successiveACNextValue << successive; + successiveACState = 0; + } + break; + case 4: + if (component2.blockData[offset2 + z]) { + component2.blockData[offset2 + z] += readBit() << successive; + } + break; + } + k2++; + } + if (successiveACState === 4) { + eobrun--; + if (eobrun === 0) + successiveACState = 0; + } + } + function decodeMcu(component2, decode, mcu2, row, col) { + var mcuRow = mcu2 / mcusPerLine | 0; + var mcuCol = mcu2 % mcusPerLine; + var blockRow = mcuRow * component2.v + row; + var blockCol = mcuCol * component2.h + col; + var offset2 = getBlockBufferOffset(component2, blockRow, blockCol); + decode(component2, offset2); + } + function decodeBlock(component2, decode, mcu2) { + var blockRow = mcu2 / component2.blocksPerLine | 0; + var blockCol = mcu2 % component2.blocksPerLine; + var offset2 = getBlockBufferOffset(component2, blockRow, blockCol); + decode(component2, offset2); + } + var componentsLength = components.length; + var component, i2, j, k, n; + var decodeFn; + if (progressive) { + if (spectralStart === 0) + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + else + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + } else { + decodeFn = decodeBaseline; + } + var mcu = 0, marker; + var mcuExpected; + if (componentsLength == 1) { + mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + } else { + mcuExpected = mcusPerLine * frame.mcusPerColumn; + } + if (!resetInterval) { + resetInterval = mcuExpected; + } + var h, v; + while (mcu < mcuExpected) { + for (i2 = 0; i2 < componentsLength; i2++) { + components[i2].pred = 0; + } + eobrun = 0; + if (componentsLength == 1) { + component = components[0]; + for (n = 0; n < resetInterval; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < resetInterval; n++) { + for (i2 = 0; i2 < componentsLength; i2++) { + component = components[i2]; + h = component.h; + v = component.v; + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + mcu++; + } + } + bitsCount = 0; + marker = data[offset] << 8 | data[offset + 1]; + if (marker <= 65280) { + throw "marker was not found"; + } + if (marker >= 65488 && marker <= 65495) { + offset += 2; + } else { + break; + } + } + return offset - startOffset; } - if (!(name in this.started)) { - warn('Timer has not been started for ' + name); + function quantizeAndInverse(component, blockBufferOffset, p) { + var qt = component.quantizationTable; + var v0, v1, v2, v3, v4, v5, v6, v7, t; + var i2; + for (i2 = 0; i2 < 64; i2++) { + p[i2] = component.blockData[blockBufferOffset + i2] * qt[i2]; + } + for (i2 = 0; i2 < 8; ++i2) { + var row = 8 * i2; + if (p[1 + row] === 0 && p[2 + row] === 0 && p[3 + row] === 0 && p[4 + row] === 0 && p[5 + row] === 0 && p[6 + row] === 0 && p[7 + row] === 0) { + t = dctSqrt2 * p[0 + row] + 512 >> 10; + p[0 + row] = t; + p[1 + row] = t; + p[2 + row] = t; + p[3 + row] = t; + p[4 + row] = t; + p[5 + row] = t; + p[6 + row] = t; + p[7 + row] = t; + continue; + } + v0 = dctSqrt2 * p[0 + row] + 128 >> 8; + v1 = dctSqrt2 * p[4 + row] + 128 >> 8; + v2 = p[2 + row]; + v3 = p[6 + row]; + v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8; + v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8; + v5 = p[3 + row] << 4; + v6 = p[5 + row] << 4; + t = v0 - v1 + 1 >> 1; + v0 = v0 + v1 + 1 >> 1; + v1 = t; + t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8; + v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8; + v3 = t; + t = v4 - v6 + 1 >> 1; + v4 = v4 + v6 + 1 >> 1; + v6 = t; + t = v7 + v5 + 1 >> 1; + v5 = v7 - v5 + 1 >> 1; + v7 = t; + t = v0 - v3 + 1 >> 1; + v0 = v0 + v3 + 1 >> 1; + v3 = t; + t = v1 - v2 + 1 >> 1; + v1 = v1 + v2 + 1 >> 1; + v2 = t; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p[0 + row] = v0 + v7; + p[7 + row] = v0 - v7; + p[1 + row] = v1 + v6; + p[6 + row] = v1 - v6; + p[2 + row] = v2 + v5; + p[5 + row] = v2 - v5; + p[3 + row] = v3 + v4; + p[4 + row] = v3 - v4; + } + for (i2 = 0; i2 < 8; ++i2) { + var col = i2; + if (p[1 * 8 + col] === 0 && p[2 * 8 + col] === 0 && p[3 * 8 + col] === 0 && p[4 * 8 + col] === 0 && p[5 * 8 + col] === 0 && p[6 * 8 + col] === 0 && p[7 * 8 + col] === 0) { + t = dctSqrt2 * p[i2 + 0] + 8192 >> 14; + p[0 * 8 + col] = t; + p[1 * 8 + col] = t; + p[2 * 8 + col] = t; + p[3 * 8 + col] = t; + p[4 * 8 + col] = t; + p[5 * 8 + col] = t; + p[6 * 8 + col] = t; + p[7 * 8 + col] = t; + continue; + } + v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12; + v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12; + v2 = p[2 * 8 + col]; + v3 = p[6 * 8 + col]; + v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12; + v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12; + v5 = p[3 * 8 + col]; + v6 = p[5 * 8 + col]; + t = v0 - v1 + 1 >> 1; + v0 = v0 + v1 + 1 >> 1; + v1 = t; + t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12; + v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12; + v3 = t; + t = v4 - v6 + 1 >> 1; + v4 = v4 + v6 + 1 >> 1; + v6 = t; + t = v7 + v5 + 1 >> 1; + v5 = v7 - v5 + 1 >> 1; + v7 = t; + t = v0 - v3 + 1 >> 1; + v0 = v0 + v3 + 1 >> 1; + v3 = t; + t = v1 - v2 + 1 >> 1; + v1 = v1 + v2 + 1 >> 1; + v2 = t; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p[0 * 8 + col] = v0 + v7; + p[7 * 8 + col] = v0 - v7; + p[1 * 8 + col] = v1 + v6; + p[6 * 8 + col] = v1 - v6; + p[2 * 8 + col] = v2 + v5; + p[5 * 8 + col] = v2 - v5; + p[3 * 8 + col] = v3 + v4; + p[4 * 8 + col] = v3 - v4; + } + for (i2 = 0; i2 < 64; ++i2) { + var index = blockBufferOffset + i2; + var q = p[i2]; + q = q <= -2056 / component.bitConversion ? 0 : q >= 2024 / component.bitConversion ? 255 / component.bitConversion : q + 2056 / component.bitConversion >> 4; + component.blockData[index] = q; + } } - this.times.push({ - 'name': name, - 'start': this.started[name], - 'end': Date.now() - }); - // Remove timer from started so it can be called again. - delete this.started[name]; - }, - toString: function StatTimer_toString() { - var i, ii; - var times = this.times; - var out = ''; - // Find the longest name for padding purposes. - var longest = 0; - for (i = 0, ii = times.length; i < ii; ++i) { - var name = times[i]['name']; - if (name.length > longest) { - longest = name.length; - } - } - for (i = 0, ii = times.length; i < ii; ++i) { - var span = times[i]; - var duration = span.end - span.start; - out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; - } - return out; - } - }; - return StatTimer; -})(); - -PDFJS.createBlob = function createBlob(data, contentType) { - if (typeof Blob !== 'undefined') { - return new Blob([data], { type: contentType }); - } - // Blob builder is deprecated in FF14 and removed in FF18. - var bb = new MozBlobBuilder(); - bb.append(data); - return bb.getBlob(contentType); -}; - -PDFJS.createObjectURL = (function createObjectURLClosure() { - // Blob/createObjectURL is not available, falling back to data schema. - var digits = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - - return function createObjectURL(data, contentType) { - if (!PDFJS.disableCreateObjectURL && - typeof URL !== 'undefined' && URL.createObjectURL) { - var blob = PDFJS.createBlob(data, contentType); - return URL.createObjectURL(blob); - } - - var buffer = 'data:' + contentType + ';base64,'; - for (var i = 0, ii = data.length; i < ii; i += 3) { - var b1 = data[i] & 0xFF; - var b2 = data[i + 1] & 0xFF; - var b3 = data[i + 2] & 0xFF; - var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4); - var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64; - var d4 = i + 2 < ii ? (b3 & 0x3F) : 64; - buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; - } - return buffer; - }; -})(); - -function MessageHandler(name, comObj) { - this.name = name; - this.comObj = comObj; - this.callbackIndex = 1; - this.postMessageTransfers = true; - var callbacksCapabilities = this.callbacksCapabilities = {}; - var ah = this.actionHandler = {}; - - ah['console_log'] = [function ahConsoleLog(data) { - console.log.apply(console, data); - }]; - ah['console_error'] = [function ahConsoleError(data) { - console.error.apply(console, data); - }]; - ah['_unsupported_feature'] = [function ah_unsupportedFeature(data) { - UnsupportedManager.notify(data); - }]; - - comObj.onmessage = function messageHandlerComObjOnMessage(event) { - var data = event.data; - if (data.isReply) { - var callbackId = data.callbackId; - if (data.callbackId in callbacksCapabilities) { - var callback = callbacksCapabilities[callbackId]; - delete callbacksCapabilities[callbackId]; - if ('error' in data) { - callback.reject(data.error); - } else { - callback.resolve(data.data); + function buildComponentData(frame, component) { + var lines = []; + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var samplesPerLine = blocksPerLine << 3; + var computationBuffer = new Int32Array(64); + var i2, j, ll = 0; + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var offset = getBlockBufferOffset(component, blockRow, blockCol); + quantizeAndInverse(component, offset, computationBuffer); + } } - } else { - error('Cannot resolve callback ' + callbackId); - } - } else if (data.action in ah) { - var action = ah[data.action]; - if (data.callbackId) { - Promise.resolve().then(function () { - return action[0].call(action[1], data.data); - }).then(function (result) { - comObj.postMessage({ - isReply: true, - callbackId: data.callbackId, - data: result - }); - }, function (reason) { - comObj.postMessage({ - isReply: true, - callbackId: data.callbackId, - error: reason - }); - }); - } else { - action[0].call(action[1], data.data); + return component.blockData; } - } else { - error('Unknown action from worker: ' + data.action); - } - }; -} - -MessageHandler.prototype = { - on: function messageHandlerOn(actionName, handler, scope) { - var ah = this.actionHandler; - if (ah[actionName]) { - error('There is already an actionName called "' + actionName + '"'); - } - ah[actionName] = [handler, scope]; - }, - /** - * Sends a message to the comObj to invoke the action with the supplied data. - * @param {String} actionName Action to call. - * @param {JSON} data JSON data to send. - * @param {Array} [transfers] Optional list of transfers/ArrayBuffers - */ - send: function messageHandlerSend(actionName, data, transfers) { - var message = { - action: actionName, - data: data - }; - this.postMessage(message, transfers); - }, - /** - * Sends a message to the comObj to invoke the action with the supplied data. - * Expects that other side will callback with the response. - * @param {String} actionName Action to call. - * @param {JSON} data JSON data to send. - * @param {Array} [transfers] Optional list of transfers/ArrayBuffers. - * @returns {Promise} Promise to be resolved with response data. - */ - sendWithPromise: - function messageHandlerSendWithPromise(actionName, data, transfers) { - var callbackId = this.callbackIndex++; - var message = { - action: actionName, - data: data, - callbackId: callbackId - }; - var capability = createPromiseCapability(); - this.callbacksCapabilities[callbackId] = capability; - try { - this.postMessage(message, transfers); - } catch (e) { - capability.reject(e); - } - return capability.promise; - }, - /** - * Sends raw message to the comObj. - * @private - * @param message {Object} Raw message. - * @param transfers List of transfers/ArrayBuffers, or undefined. - */ - postMessage: function (message, transfers) { - if (transfers && this.postMessageTransfers) { - this.comObj.postMessage(message, transfers); - } else { - this.comObj.postMessage(message); - } - } -}; - -function loadJpegStream(id, imageUrl, objs) { - var img = new Image(); - img.onload = (function loadJpegStream_onloadClosure() { - objs.resolve(id, img); - }); - img.onerror = (function loadJpegStream_onerrorClosure() { - objs.resolve(id, null); - warn('Error during JPEG image loading'); - }); - img.src = imageUrl; -} - - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = JpxImage; -} -},{}],5:[function(require,module,exports){ - -},{}],6:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * 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. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; - - -/*** Constructor ***/ -jpeg.lossless.ComponentSpec = jpeg.lossless.ComponentSpec || function () { - this.hSamp = 0; // Horizontal sampling factor - this.quantTableSel = 0; // Quantization table destination selector - this.vSamp = 0; // Vertical -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.ComponentSpec; -} - -},{}],7:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * 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. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; - - -/*** Constructor ***/ -jpeg.lossless.DataStream = jpeg.lossless.DataStream || function (data, offset, length) { - if (offset === undefined && length === undefined) { // Old api - this.buffer = new Uint8Array(data); - } else { - this.buffer = new Uint8Array(data, offset, length); - } - this.index = 0; -}; - - - -jpeg.lossless.DataStream.prototype.get16 = function () { - // var value = this.buffer.getUint16(this.index, false); - var value = (this.buffer[this.index] << 8) + this.buffer[this.index + 1]; // DataView is big-endian by default - this.index += 2; - return value; -}; - - - -jpeg.lossless.DataStream.prototype.get8 = function () { - // var value = this.buffer.getUint8(this.index); - var value = this.buffer[this.index]; - this.index += 1; - return value; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.DataStream; -} - -},{}],8:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * 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. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.HuffmanTable = jpeg.lossless.HuffmanTable || ((typeof require !== 'undefined') ? require('./huffman-table.js') : null); -jpeg.lossless.QuantizationTable = jpeg.lossless.QuantizationTable || ((typeof require !== 'undefined') ? require('./quantization-table.js') : null); -jpeg.lossless.ScanHeader = jpeg.lossless.ScanHeader || ((typeof require !== 'undefined') ? require('./scan-header.js') : null); -jpeg.lossless.FrameHeader = jpeg.lossless.FrameHeader || ((typeof require !== 'undefined') ? require('./frame-header.js') : null); -jpeg.lossless.Utils = jpeg.lossless.Utils || ((typeof require !== 'undefined') ? require('./utils.js') : null); - - -/*** Constructor ***/ - -/** - * The Decoder constructor. - * @property {number} xDim - size of x dimension - * @property {number} yDim - size of y dimension - * @property {number} numComp - number of components - * @property {number} numBytes - number of bytes per component - * @type {Function} - */ -jpeg.lossless.Decoder = jpeg.lossless.Decoder || function (buffer, numBytes) { - this.buffer = buffer; - this.frame = new jpeg.lossless.FrameHeader(); - this.huffTable = new jpeg.lossless.HuffmanTable(); - this.quantTable = new jpeg.lossless.QuantizationTable(); - this.scan = new jpeg.lossless.ScanHeader(); - this.DU = jpeg.lossless.Utils.createArray(10, 4, 64); // at most 10 data units in a MCU, at most 4 data units in one component - this.HuffTab = jpeg.lossless.Utils.createArray(4, 2, 50 * 256); - this.IDCT_Source = []; - this.nBlock = []; // number of blocks in the i-th Comp in a scan - this.acTab = jpeg.lossless.Utils.createArray(10, 1); // ac HuffTab for the i-th Comp in a scan - this.dcTab = jpeg.lossless.Utils.createArray(10, 1); // dc HuffTab for the i-th Comp in a scan - this.qTab = jpeg.lossless.Utils.createArray(10, 1); // quantization table for the i-th Comp in a scan - this.marker = 0; - this.markerIndex = 0; - this.numComp = 0; - this.restartInterval = 0; - this.selection = 0; - this.xDim = 0; - this.yDim = 0; - this.xLoc = 0; - this.yLoc = 0; - this.numBytes = 0; - this.outputData = null; - this.restarting = false; - this.mask = 0; - - if (typeof numBytes !== "undefined") { - this.numBytes = numBytes; - } -}; - - -/*** Static Pseudo-constants ***/ - -jpeg.lossless.Decoder.IDCT_P = [0, 5, 40, 16, 45, 2, 7, 42, 21, 56, 8, 61, 18, 47, 1, 4, 41, 23, 58, 13, 32, 24, 37, 10, 63, 17, 44, 3, 6, 43, 20, - 57, 15, 34, 29, 48, 53, 26, 39, 9, 60, 19, 46, 22, 59, 12, 33, 31, 50, 55, 25, 36, 11, 62, 14, 35, 28, 49, 52, 27, 38, 30, 51, 54]; -jpeg.lossless.Decoder.TABLE = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, - 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63]; -jpeg.lossless.Decoder.MAX_HUFFMAN_SUBTREE = 50; -jpeg.lossless.Decoder.MSB = 0x80000000; -jpeg.lossless.Decoder.RESTART_MARKER_BEGIN = 0xFFD0; -jpeg.lossless.Decoder.RESTART_MARKER_END = 0xFFD7; - -/*** Prototype Methods ***/ - -/** - * Returns decompressed data. - * @param {ArrayBuffer} buffer - * @param {number} [offset] - * @param {number} [length] - * @returns {ArrayBufer} - */ -jpeg.lossless.Decoder.prototype.decompress = function (buffer, offset, length) { - return this.decode(buffer, offset, length).buffer; -}; - - - -jpeg.lossless.Decoder.prototype.decode = function (buffer, offset, length, numBytes) { - /*jslint bitwise: true */ - - var current, scanNum = 0, pred = [], i, compN, temp = [], index = [], mcuNum; - - if (typeof buffer !== "undefined") { - this.buffer = buffer; - } - - if (typeof numBytes !== "undefined") { - this.numBytes = numBytes; - } - - this.stream = new jpeg.lossless.DataStream(this.buffer, offset, length); - this.buffer = null; - - this.xLoc = 0; - this.yLoc = 0; - current = this.stream.get16(); - - if (current !== 0xFFD8) { // SOI - throw new Error("Not a JPEG file"); - } - - current = this.stream.get16(); - - while ((((current >> 4) !== 0x0FFC) || (current === 0xFFC4))) { // SOF 0~15 - switch (current) { - case 0xFFC4: // DHT - this.huffTable.read(this.stream, this.HuffTab); - break; - case 0xFFCC: // DAC - throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); - case 0xFFDB: - this.quantTable.read(this.stream, jpeg.lossless.Decoder.TABLE); - break; - case 0xFFDD: - this.restartInterval = this.readNumber(); - break; - case 0xFFE0: - case 0xFFE1: - case 0xFFE2: - case 0xFFE3: - case 0xFFE4: - case 0xFFE5: - case 0xFFE6: - case 0xFFE7: - case 0xFFE8: - case 0xFFE9: - case 0xFFEA: - case 0xFFEB: - case 0xFFEC: - case 0xFFED: - case 0xFFEE: - case 0xFFEF: - this.readApp(); - break; - case 0xFFFE: - this.readComment(); - break; - default: - if ((current >> 8) !== 0xFF) { - throw new Error("ERROR: format throw new IOException! (decode)"); - } - } - - current = this.stream.get16(); - } - - if ((current < 0xFFC0) || (current > 0xFFC7)) { - throw new Error("ERROR: could not handle arithmetic code!"); - } - - this.frame.read(this.stream); - current = this.stream.get16(); - - do { - while (current !== 0x0FFDA) { // SOS - switch (current) { - case 0xFFC4: // DHT - this.huffTable.read(this.stream, this.HuffTab); - break; - case 0xFFCC: // DAC - throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); - case 0xFFDB: - this.quantTable.read(this.stream, jpeg.lossless.Decoder.TABLE); - break; - case 0xFFDD: - this.restartInterval = this.readNumber(); - break; - case 0xFFE0: - case 0xFFE1: - case 0xFFE2: - case 0xFFE3: - case 0xFFE4: - case 0xFFE5: - case 0xFFE6: - case 0xFFE7: - case 0xFFE8: - case 0xFFE9: - case 0xFFEA: - case 0xFFEB: - case 0xFFEC: - case 0xFFED: - case 0xFFEE: - case 0xFFEF: - this.readApp(); - break; - case 0xFFFE: - this.readComment(); - break; - default: - if ((current >> 8) !== 0xFF) { - throw new Error("ERROR: format throw new IOException! (Parser.decode)"); - } + function clampToUint8(a) { + return a <= 0 ? 0 : a >= 255 ? 255 : a | 0; + } + constructor.prototype = { + load: function load(path2) { + var handleData = function(data2) { + this.parse(data2); + if (this.onload) + this.onload(); + }.bind(this); + if (path2.indexOf("data:") > -1) { + var offset = path2.indexOf("base64,") + 7; + var data = atob(path2.substring(offset)); + var arr = new Uint8Array(data.length); + for (var i2 = data.length - 1; i2 >= 0; i2--) { + arr[i2] = data.charCodeAt(i2); } - - current = this.stream.get16(); - } - - this.precision = this.frame.precision; - this.components = this.frame.components; - - if (!this.numBytes) { - this.numBytes = parseInt(Math.ceil(this.precision / 8)); - } - - if (this.numBytes == 1) { - this.mask = 0xFF; - } else { - this.mask = 0xFFFF; - } - - this.scan.read(this.stream); - this.numComp = this.scan.numComp; - this.selection = this.scan.selection; - - if (this.numBytes === 1) { - if (this.numComp === 3) { - this.getter = this.getValueRGB; - this.setter = this.setValueRGB; - this.output = this.outputRGB; - } else { - this.getter = this.getValue8; - this.setter = this.setValue8; - this.output = this.outputSingle; + handleData(data); + } else { + var xhr = new XMLHttpRequest(); + xhr.open("GET", path2, true); + xhr.responseType = "arraybuffer"; + xhr.onload = function() { + var data2 = new Uint8Array(xhr.response); + handleData(data2); + }.bind(this); + xhr.send(null); + } + }, + parse: function parse(data) { + function readUint16() { + var value = data[offset] << 8 | data[offset + 1]; + offset += 2; + return value; + } + function readDataBlock() { + var length2 = readUint16(); + var array = data.subarray(offset, offset + length2 - 2); + offset += array.length; + return array; + } + function prepareComponents(frame2) { + var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / frame2.maxH); + var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / frame2.maxV); + for (var i3 = 0; i3 < frame2.components.length; i3++) { + component = frame2.components[i3]; + var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component.h / frame2.maxH); + var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component.v / frame2.maxV); + var blocksPerLineForMcu = mcusPerLine * component.h; + var blocksPerColumnForMcu = mcusPerColumn * component.v; + var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); + component.blockData = new Int16Array(blocksBufferSize); + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; } - } else { - this.getter = this.getValue16; - this.setter = this.setValue16; - this.output = this.outputSingle; - } - - switch (this.selection) { - case 2: - this.selector = this.select2; - break; - case 3: - this.selector = this.select3; + frame2.mcusPerLine = mcusPerLine; + frame2.mcusPerColumn = mcusPerColumn; + } + var offset = 0, length = data.length; + var jfif = null; + var adobe = null; + var pixels = null; + var frame, resetInterval; + var quantizationTables = []; + var huffmanTablesAC = [], huffmanTablesDC = []; + var fileMarker = readUint16(); + if (fileMarker != 65496) { + throw "SOI not found"; + } + fileMarker = readUint16(); + while (fileMarker != 65497) { + var i2, j, l; + switch (fileMarker) { + case 65504: + case 65505: + case 65506: + case 65507: + case 65508: + case 65509: + case 65510: + case 65511: + case 65512: + case 65513: + case 65514: + case 65515: + case 65516: + case 65517: + case 65518: + case 65519: + case 65534: + var appData = readDataBlock(); + if (fileMarker === 65504) { + if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) { + jfif = { + version: { major: appData[5], minor: appData[6] }, + densityUnits: appData[7], + xDensity: appData[8] << 8 | appData[9], + yDensity: appData[10] << 8 | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) + }; + } + } + if (fileMarker === 65518) { + if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) { + adobe = { + version: appData[6], + flags0: appData[7] << 8 | appData[8], + flags1: appData[9] << 8 | appData[10], + transformCode: appData[11] + }; + } + } break; - case 4: - this.selector = this.select4; + case 65499: + var quantizationTablesLength = readUint16(); + var quantizationTablesEnd = quantizationTablesLength + offset - 2; + while (offset < quantizationTablesEnd) { + var quantizationTableSpec = data[offset++]; + var tableData = new Int32Array(64); + if (quantizationTableSpec >> 4 === 0) { + for (j = 0; j < 64; j++) { + var z = dctZigZag[j]; + tableData[z] = data[offset++]; + } + } else if (quantizationTableSpec >> 4 === 1) { + for (j = 0; j < 64; j++) { + var zz = dctZigZag[j]; + tableData[zz] = readUint16(); + } + } else + throw "DQT: invalid table spec"; + quantizationTables[quantizationTableSpec & 15] = tableData; + } break; - case 5: - this.selector = this.select5; + case 65472: + case 65473: + case 65474: + if (frame) { + throw "Only single frame JPEGs supported"; + } + readUint16(); + frame = {}; + frame.extended = fileMarker === 65473; + frame.progressive = fileMarker === 65474; + frame.precision = data[offset++]; + frame.scanLines = readUint16(); + frame.samplesPerLine = readUint16(); + frame.components = []; + frame.componentIds = {}; + var componentsCount = data[offset++], componentId; + var maxH = 0, maxV = 0; + for (i2 = 0; i2 < componentsCount; i2++) { + componentId = data[offset]; + var h = data[offset + 1] >> 4; + var v = data[offset + 1] & 15; + if (maxH < h) + maxH = h; + if (maxV < v) + maxV = v; + var qId = data[offset + 2]; + l = frame.components.push({ + h, + v, + quantizationTable: quantizationTables[qId], + quantizationTableId: qId, + bitConversion: 255 / ((1 << frame.precision) - 1) + }); + frame.componentIds[componentId] = l - 1; + offset += 3; + } + frame.maxH = maxH; + frame.maxV = maxV; + prepareComponents(frame); break; - case 6: - this.selector = this.select6; + case 65476: + var huffmanLength = readUint16(); + for (i2 = 2; i2 < huffmanLength; ) { + var huffmanTableSpec = data[offset++]; + var codeLengths = new Uint8Array(16); + var codeLengthSum = 0; + for (j = 0; j < 16; j++, offset++) + codeLengthSum += codeLengths[j] = data[offset]; + var huffmanValues = new Uint8Array(codeLengthSum); + for (j = 0; j < codeLengthSum; j++, offset++) + huffmanValues[j] = data[offset]; + i2 += 17 + codeLengthSum; + (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues); + } break; - case 7: - this.selector = this.select7; + case 65501: + readUint16(); + resetInterval = readUint16(); break; - default: - this.selector = this.select1; + case 65498: + var scanLength = readUint16(); + var selectorsCount = data[offset++]; + var components = [], component; + for (i2 = 0; i2 < selectorsCount; i2++) { + var componentIndex = frame.componentIds[data[offset++]]; + component = frame.components[componentIndex]; + var tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + var spectralStart = data[offset++]; + var spectralEnd = data[offset++]; + var successiveApproximation = data[offset++]; + var processed = decodeScan( + data, + offset, + frame, + components, + resetInterval, + spectralStart, + spectralEnd, + successiveApproximation >> 4, + successiveApproximation & 15 + ); + offset += processed; break; - } - - this.scanComps = this.scan.components; - this.quantTables = this.quantTable.quantTables; - - for (i = 0; i < this.numComp; i+=1) { - compN = this.scanComps[i].scanCompSel; - this.qTab[i] = this.quantTables[this.components[compN].quantTableSel]; - this.nBlock[i] = this.components[compN].vSamp * this.components[compN].hSamp; - this.dcTab[i] = this.HuffTab[this.scanComps[i].dcTabSel][0]; - this.acTab[i] = this.HuffTab[this.scanComps[i].acTabSel][1]; - } - - this.xDim = this.frame.dimX; - this.yDim = this.frame.dimY; - if (this.numBytes == 1) { - this.outputData = new Uint8Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); - } else { - this.outputData = new Uint16Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); - } - - scanNum+=1; - - while (true) { // Decode one scan - temp[0] = 0; - index[0] = 0; - - for (i = 0; i < 10; i+=1) { - pred[i] = (1 << (this.precision - 1)); - } - - if (this.restartInterval === 0) { - current = this.decodeUnit(pred, temp, index); - - while ((current === 0) && ((this.xLoc < this.xDim) && (this.yLoc < this.yDim))) { - this.output(pred); - current = this.decodeUnit(pred, temp, index); + default: + if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) { + offset -= 3; + break; } - - break; //current=MARKER + throw "unknown JPEG marker " + fileMarker.toString(16); } - - for (mcuNum = 0; mcuNum < this.restartInterval; mcuNum+=1) { - this.restarting = (mcuNum == 0); - current = this.decodeUnit(pred, temp, index); - this.output(pred); - - if (current !== 0) { - break; + fileMarker = readUint16(); + } + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + switch (frame.components.length) { + case 1: + this.colorspace = ColorSpace.Grayscale; + break; + case 3: + if (this.adobe) + this.colorspace = ColorSpace.AdobeRGB; + else + this.colorspace = ColorSpace.RGB; + break; + case 4: + this.colorspace = ColorSpace.CYMK; + break; + default: + this.colorspace = ColorSpace.Unknown; + } + for (var i2 = 0; i2 < frame.components.length; i2++) { + var component = frame.components[i2]; + if (!component.quantizationTable && component.quantizationTableId !== null) + component.quantizationTable = quantizationTables[component.quantizationTableId]; + this.components.push({ + output: buildComponentData(frame, component), + scaleX: component.h / frame.maxH, + scaleY: component.v / frame.maxV, + blocksPerLine: component.blocksPerLine, + blocksPerColumn: component.blocksPerColumn, + bitConversion: component.bitConversion + }); + } + }, + getData16: function getData16(width, height) { + if (this.components.length !== 1) + throw "Unsupported color mode"; + var scaleX = this.width / width, scaleY = this.height / height; + var component, componentScaleX, componentScaleY; + var x, y, i2; + var offset = 0; + var numComponents = this.components.length; + var dataLength = width * height * numComponents; + var data = new Uint16Array(dataLength); + var componentLine; + var lineData = new Uint16Array((this.components[0].blocksPerLine << 3) * this.components[0].blocksPerColumn * 8); + for (i2 = 0; i2 < numComponents; i2++) { + component = this.components[i2]; + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var samplesPerLine = blocksPerLine << 3; + var j, k, ll = 0; + var lineOffset = 0; + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + var scanLine = blockRow << 3; + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); + var offset = 0, sample = blockCol << 3; + for (j = 0; j < 8; j++) { + var lineOffset = (scanLine + j) * samplesPerLine; + for (k = 0; k < 8; k++) { + lineData[lineOffset + sample + k] = component.output[bufferOffset + offset++]; + } } + } } - - if (current === 0) { - if (this.markerIndex !== 0) { - current = (0xFF00 | this.marker); - this.markerIndex = 0; - } else { - current = this.stream.get16(); + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i2; + var cx, cy; + var index; + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + cy = 0 | y * componentScaleY; + cx = 0 | x * componentScaleX; + index = cy * samplesPerLine + cx; + data[offset] = lineData[index]; + offset += numComponents; + } + } + } + return data; + }, + getData: function getData(width, height) { + var scaleX = this.width / width, scaleY = this.height / height; + var component, componentScaleX, componentScaleY; + var x, y, i2; + var offset = 0; + var Y, Cb, Cr, K, C, M, Ye, R, G, B; + var colorTransform; + var numComponents = this.components.length; + var dataLength = width * height * numComponents; + var data = new Uint8Array(dataLength); + var componentLine; + var lineData = new Uint8Array((this.components[0].blocksPerLine << 3) * this.components[0].blocksPerColumn * 8); + for (i2 = 0; i2 < numComponents; i2++) { + component = this.components[i2]; + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var samplesPerLine = blocksPerLine << 3; + var j, k, ll = 0; + var lineOffset = 0; + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + var scanLine = blockRow << 3; + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); + var offset = 0, sample = blockCol << 3; + for (j = 0; j < 8; j++) { + var lineOffset = (scanLine + j) * samplesPerLine; + for (k = 0; k < 8; k++) { + lineData[lineOffset + sample + k] = component.output[bufferOffset + offset++] * component.bitConversion; + } } + } } - - if (!((current >= jpeg.lossless.Decoder.RESTART_MARKER_BEGIN) && - (current <= jpeg.lossless.Decoder.RESTART_MARKER_END))) { - break; //current=MARKER + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i2; + var cx, cy; + var index; + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + cy = 0 | y * componentScaleY; + cx = 0 | x * componentScaleX; + index = cy * samplesPerLine + cx; + data[offset] = lineData[index]; + offset += numComponents; + } } + } + switch (numComponents) { + case 1: + case 2: + break; + case 3: + colorTransform = true; + if (this.adobe && this.adobe.transformCode) + colorTransform = true; + else if (typeof this.colorTransform !== "undefined") + colorTransform = !!this.colorTransform; + if (colorTransform) { + for (i2 = 0; i2 < dataLength; i2 += numComponents) { + Y = data[i2]; + Cb = data[i2 + 1]; + Cr = data[i2 + 2]; + R = clampToUint8(Y - 179.456 + 1.402 * Cr); + G = clampToUint8(Y + 135.459 - 0.344 * Cb - 0.714 * Cr); + B = clampToUint8(Y - 226.816 + 1.772 * Cb); + data[i2] = R; + data[i2 + 1] = G; + data[i2 + 2] = B; + } + } + break; + case 4: + if (!this.adobe) + throw "Unsupported color mode (4 components)"; + colorTransform = false; + if (this.adobe && this.adobe.transformCode) + colorTransform = true; + else if (typeof this.colorTransform !== "undefined") + colorTransform = !!this.colorTransform; + if (colorTransform) { + for (i2 = 0; i2 < dataLength; i2 += numComponents) { + Y = data[i2]; + Cb = data[i2 + 1]; + Cr = data[i2 + 2]; + C = clampToUint8(434.456 - Y - 1.402 * Cr); + M = clampToUint8(119.541 - Y + 0.344 * Cb + 0.714 * Cr); + Y = clampToUint8(481.816 - Y - 1.772 * Cb); + data[i2] = C; + data[i2 + 1] = M; + data[i2 + 2] = Y; + } + } + break; + default: + throw "Unsupported color mode"; + } + return data; } - - if ((current === 0xFFDC) && (scanNum === 1)) { //DNL - this.readNumber(); - current = this.stream.get16(); - } - } while ((current !== 0xFFD9) && ((this.xLoc < this.xDim) && (this.yLoc < this.yDim)) && (scanNum === 0)); - - return this.outputData; -}; - - - -jpeg.lossless.Decoder.prototype.decodeUnit = function (prev, temp, index) { - if (this.numComp == 1) { - return this.decodeSingle(prev, temp, index); - } else if (this.numComp == 3) { - return this.decodeRGB(prev, temp, index); - } else { - return -1; + }; + return constructor; + }(); + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = { + JpegImage + }; } -}; - - - -jpeg.lossless.Decoder.prototype.select1 = function (compOffset) { - return this.getPreviousX(compOffset); -}; - - - -jpeg.lossless.Decoder.prototype.select2 = function (compOffset) { - return this.getPreviousY(compOffset); -}; - - + } +}); -jpeg.lossless.Decoder.prototype.select3 = function (compOffset) { - return this.getPreviousXY(compOffset); -}; - - - -jpeg.lossless.Decoder.prototype.select4 = function (compOffset) { - return (this.getPreviousX(compOffset) + this.getPreviousY(compOffset)) - this.getPreviousXY(compOffset); -}; - - - -jpeg.lossless.Decoder.prototype.select5 = function (compOffset) { - return this.getPreviousX(compOffset) + ((this.getPreviousY(compOffset) - this.getPreviousXY(compOffset)) >> 1); -}; - - - -jpeg.lossless.Decoder.prototype.select6 = function (compOffset) { - return this.getPreviousY(compOffset) + ((this.getPreviousX(compOffset) - this.getPreviousXY(compOffset)) >> 1); -}; - - - -jpeg.lossless.Decoder.prototype.select7 = function (compOffset) { - return ((this.getPreviousX(compOffset) + this.getPreviousY(compOffset)) / 2); -}; - - - -jpeg.lossless.Decoder.prototype.decodeRGB = function (prev, temp, index) { - /*jslint bitwise: true */ - - var value, actab, dctab, qtab, ctrC, i, k, j; - - prev[0] = this.selector(0); - prev[1] = this.selector(1); - prev[2] = this.selector(2); - - for (ctrC = 0; ctrC < this.numComp; ctrC+=1) { - qtab = this.qTab[ctrC]; - actab = this.acTab[ctrC]; - dctab = this.dcTab[ctrC]; - for (i = 0; i < this.nBlock[ctrC]; i+=1) { - for (k = 0; k < this.IDCT_Source.length; k+=1) { - this.IDCT_Source[k] = 0; +// lib/jpx.js +var require_jpx = __commonJS({ + "lib/jpx.js"(exports2, module2) { + "use strict"; + var JpxImage2 = function JpxImageClosure() { + var SubbandsGainLog2 = { + "LL": 0, + "LH": 1, + "HL": 1, + "HH": 2 + }; + function JpxImage3() { + this.failOnCorruptedImage = false; + } + JpxImage3.prototype = { + parse: function JpxImage_parse(data) { + var head = readUint16(data, 0); + if (head === 65359) { + this.parseCodestream(data, 0, data.length); + return; + } + var position = 0, length = data.length; + while (position < length) { + var headerSize = 8; + var lbox = readUint32(data, position); + var tbox = readUint32(data, position + 4); + position += headerSize; + if (lbox === 1) { + lbox = readUint32(data, position) * 4294967296 + readUint32(data, position + 4); + position += 8; + headerSize += 8; } - - value = this.getHuffmanValue(dctab, temp, index); - - if (value >= 0xFF00) { - return value; + if (lbox === 0) { + lbox = length - position + headerSize; } - - prev[ctrC] = this.IDCT_Source[0] = prev[ctrC] + this.getn(index, value, temp, index); - this.IDCT_Source[0] *= qtab[0]; - - for (j = 1; j < 64; j+=1) { - value = this.getHuffmanValue(actab, temp, index); - - if (value >= 0xFF00) { - return value; + if (lbox < headerSize) { + throw new Error("JPX Error: Invalid box field size"); + } + var dataLength = lbox - headerSize; + var jumpDataLength = true; + switch (tbox) { + case 1785737832: + jumpDataLength = false; + break; + case 1668246642: + var method = data[position]; + var precedence = data[position + 1]; + var approximation = data[position + 2]; + if (method === 1) { + var colorspace = readUint32(data, position + 3); + switch (colorspace) { + case 16: + case 17: + case 18: + break; + default: + warn("Unknown colorspace " + colorspace); + break; + } + } else if (method === 2) { + info("ICC profile not supported"); } - - j += (value >> 4); - - if ((value & 0x0F) === 0) { - if ((value >> 4) === 0) { - break; - } - } else { - this.IDCT_Source[jpeg.lossless.Decoder.IDCT_P[j]] = this.getn(index, value & 0x0F, temp, index) * qtab[j]; + break; + case 1785737827: + this.parseCodestream(data, position, position + dataLength); + break; + case 1783636e3: + if (218793738 !== readUint32(data, position)) { + warn("Invalid JP2 signature"); } + break; + case 1783634458: + case 1718909296: + case 1920099697: + case 1919251232: + case 1768449138: + break; + default: + var headerType = String.fromCharCode( + tbox >> 24 & 255, + tbox >> 16 & 255, + tbox >> 8 & 255, + tbox & 255 + ); + warn("Unsupported header type " + tbox + " (" + headerType + ")"); + break; } - } - } - - return 0; -}; - - - -jpeg.lossless.Decoder.prototype.decodeSingle = function (prev, temp, index) { - /*jslint bitwise: true */ - - var value, i, n, nRestart; - - if (this.restarting) { - this.restarting = false; - prev[0] = (1 << (this.frame.precision - 1)); - } else { - prev[0] = this.selector(); - } - - for (i = 0; i < this.nBlock[0]; i+=1) { - value = this.getHuffmanValue(this.dcTab[0], temp, index); - if (value >= 0xFF00) { - return value; - } - - n = this.getn(prev, value, temp, index); - nRestart = (n >> 8); - - if ((nRestart >= jpeg.lossless.Decoder.RESTART_MARKER_BEGIN) && (nRestart <= jpeg.lossless.Decoder.RESTART_MARKER_END)) { - return nRestart; - } - - prev[0] += n; - } - - return 0; -}; - - - -// Huffman table for fast search: (HuffTab) 8-bit Look up table 2-layer search architecture, 1st-layer represent 256 node (8 bits) if codeword-length > 8 -// bits, then the entry of 1st-layer = (# of 2nd-layer table) | MSB and it is stored in the 2nd-layer Size of tables in each layer are 256. -// HuffTab[*][*][0-256] is always the only 1st-layer table. -// -// An entry can be: (1) (# of 2nd-layer table) | MSB , for code length > 8 in 1st-layer (2) (Code length) << 8 | HuffVal -// -// HuffmanValue(table HuffTab[x][y] (ex) HuffmanValue(HuffTab[1][0],...) -// ): -// return: Huffman Value of table -// 0xFF?? if it receives a MARKER -// Parameter: table HuffTab[x][y] (ex) HuffmanValue(HuffTab[1][0],...) -// temp temp storage for remainded bits -// index index to bit of temp -// in FILE pointer -// Effect: -// temp store new remainded bits -// index change to new index -// in change to new position -// NOTE: -// Initial by temp=0; index=0; -// NOTE: (explain temp and index) -// temp: is always in the form at calling time or returning time -// | byte 4 | byte 3 | byte 2 | byte 1 | -// | 0 | 0 | 00000000 | 00000??? | if not a MARKER -// ^index=3 (from 0 to 15) -// 321 -// NOTE (marker and marker_index): -// If get a MARKER from 'in', marker=the low-byte of the MARKER -// and marker_index=9 -// If marker_index=9 then index is always > 8, or HuffmanValue() -// will not be called -jpeg.lossless.Decoder.prototype.getHuffmanValue = function (table, temp, index) { - /*jslint bitwise: true */ - - var code, input, mask; - mask = 0xFFFF; - - if (index[0] < 8) { - temp[0] <<= 8; - input = this.stream.get8(); - if (input === 0xFF) { - this.marker = this.stream.get8(); - if (this.marker !== 0) { - this.markerIndex = 9; + if (jumpDataLength) { + position += dataLength; + } + } + }, + parseImageProperties: function JpxImage_parseImageProperties(stream) { + var newByte = stream.getByte(); + while (newByte >= 0) { + var oldByte = newByte; + newByte = stream.getByte(); + var code = oldByte << 8 | newByte; + if (code === 65361) { + stream.skip(4); + var Xsiz = stream.getInt32() >>> 0; + var Ysiz = stream.getInt32() >>> 0; + var XOsiz = stream.getInt32() >>> 0; + var YOsiz = stream.getInt32() >>> 0; + stream.skip(16); + var Csiz = stream.getUint16(); + this.width = Xsiz - XOsiz; + this.height = Ysiz - YOsiz; + this.componentsCount = Csiz; + this.bitsPerComponent = 8; + return; + } + } + throw new Error("JPX Error: No size marker found in JPX stream"); + }, + parseCodestream: function JpxImage_parseCodestream(data, start, end) { + var context = {}; + try { + var doNotRecover = false; + var position = start; + while (position + 1 < end) { + var code = readUint16(data, position); + position += 2; + var length = 0, j, sqcd, spqcds, spqcdSize, scalarExpounded, tile; + switch (code) { + case 65359: + context.mainHeader = true; + break; + case 65497: + break; + case 65361: + length = readUint16(data, position); + var siz = {}; + siz.Xsiz = readUint32(data, position + 4); + siz.Ysiz = readUint32(data, position + 8); + siz.XOsiz = readUint32(data, position + 12); + siz.YOsiz = readUint32(data, position + 16); + siz.XTsiz = readUint32(data, position + 20); + siz.YTsiz = readUint32(data, position + 24); + siz.XTOsiz = readUint32(data, position + 28); + siz.YTOsiz = readUint32(data, position + 32); + var componentsCount = readUint16(data, position + 36); + siz.Csiz = componentsCount; + var components = []; + j = position + 38; + for (var i2 = 0; i2 < componentsCount; i2++) { + var component = { + precision: (data[j] & 127) + 1, + isSigned: !!(data[j] & 128), + XRsiz: data[j + 1], + YRsiz: data[j + 1] + }; + calculateComponentDimensions(component, siz); + components.push(component); + } + context.SIZ = siz; + context.components = components; + calculateTileGrids(context, components); + context.QCC = []; + context.COC = []; + break; + case 65372: + length = readUint16(data, position); + var qcd = {}; + j = position + 2; + sqcd = data[j++]; + switch (sqcd & 31) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error("JPX Error: Invalid SQcd value " + sqcd); + } + qcd.noQuantization = spqcdSize === 8; + qcd.scalarExpounded = scalarExpounded; + qcd.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + var spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcd.SPqcds = spqcds; + if (context.mainHeader) { + context.QCD = qcd; + } else { + context.currentTile.QCD = qcd; + context.currentTile.QCC = []; + } + break; + case 65373: + length = readUint16(data, position); + var qcc = {}; + j = position + 2; + var cqcc; + if (context.SIZ.Csiz < 257) { + cqcc = data[j++]; + } else { + cqcc = readUint16(data, j); + j += 2; + } + sqcd = data[j++]; + switch (sqcd & 31) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error("JPX Error: Invalid SQcd value " + sqcd); + } + qcc.noQuantization = spqcdSize === 8; + qcc.scalarExpounded = scalarExpounded; + qcc.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcc.SPqcds = spqcds; + if (context.mainHeader) { + context.QCC[cqcc] = qcc; + } else { + context.currentTile.QCC[cqcc] = qcc; + } + break; + case 65362: + length = readUint16(data, position); + var cod = {}; + j = position + 2; + var scod = data[j++]; + cod.entropyCoderWithCustomPrecincts = !!(scod & 1); + cod.sopMarkerUsed = !!(scod & 2); + cod.ephMarkerUsed = !!(scod & 4); + cod.progressionOrder = data[j++]; + cod.layersCount = readUint16(data, j); + j += 2; + cod.multipleComponentTransform = data[j++]; + cod.decompositionLevelsCount = data[j++]; + cod.xcb = (data[j++] & 15) + 2; + cod.ycb = (data[j++] & 15) + 2; + var blockStyle = data[j++]; + cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); + cod.resetContextProbabilities = !!(blockStyle & 2); + cod.terminationOnEachCodingPass = !!(blockStyle & 4); + cod.verticalyStripe = !!(blockStyle & 8); + cod.predictableTermination = !!(blockStyle & 16); + cod.segmentationSymbolUsed = !!(blockStyle & 32); + cod.reversibleTransformation = data[j++]; + if (cod.entropyCoderWithCustomPrecincts) { + var precinctsSizes = []; + while (j < length + position) { + var precinctsSize = data[j++]; + precinctsSizes.push({ + PPx: precinctsSize & 15, + PPy: precinctsSize >> 4 + }); + } + cod.precinctsSizes = precinctsSizes; + } + var unsupported = []; + if (cod.selectiveArithmeticCodingBypass) { + unsupported.push("selectiveArithmeticCodingBypass"); + } + if (cod.resetContextProbabilities) { + unsupported.push("resetContextProbabilities"); + } + if (cod.terminationOnEachCodingPass) { + unsupported.push("terminationOnEachCodingPass"); + } + if (cod.verticalyStripe) { + unsupported.push("verticalyStripe"); + } + if (cod.predictableTermination) { + unsupported.push("predictableTermination"); + } + if (unsupported.length > 0) { + doNotRecover = true; + throw new Error("JPX Error: Unsupported COD options (" + unsupported.join(", ") + ")"); + } + if (context.mainHeader) { + context.COD = cod; + } else { + context.currentTile.COD = cod; + context.currentTile.COC = []; + } + break; + case 65424: + length = readUint16(data, position); + tile = {}; + tile.index = readUint16(data, position + 2); + tile.length = readUint32(data, position + 4); + tile.dataEnd = tile.length + position - 2; + tile.partIndex = data[position + 8]; + tile.partsCount = data[position + 9]; + context.mainHeader = false; + if (tile.partIndex === 0) { + tile.COD = context.COD; + tile.COC = context.COC.slice(0); + tile.QCD = context.QCD; + tile.QCC = context.QCC.slice(0); + } + context.currentTile = tile; + break; + case 65427: + tile = context.currentTile; + if (tile.partIndex === 0) { + initializeTile(context, tile.index); + buildPackets(context); + } + length = tile.dataEnd - position; + parseTilePackets(context, data, position, length); + break; + case 65365: + case 65367: + case 65368: + case 65380: + length = readUint16(data, position); + break; + case 65363: + throw new Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented"); + default: + throw new Error("JPX Error: Unknown codestream code: " + code.toString(16)); + } + position += length; + } + } catch (e) { + if (doNotRecover || this.failOnCorruptedImage) { + throw e; + } else { + warn("Trying to recover from " + e.message); } + } + this.tiles = transformComponents(context); + this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; + this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; + this.componentsCount = context.SIZ.Csiz; } - temp[0] |= input; - } else { - index[0] -= 8; - } - - code = table[temp[0] >> index[0]]; - - if ((code & jpeg.lossless.Decoder.MSB) !== 0) { - if (this.markerIndex !== 0) { - this.markerIndex = 0; - return 0xFF00 | this.marker; + }; + function calculateComponentDimensions(component, siz) { + component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); + component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); + component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); + component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); + component.width = component.x1 - component.x0; + component.height = component.y1 - component.y0; + } + function calculateTileGrids(context, components) { + var siz = context.SIZ; + var tile, tiles = []; + var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); + var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); + for (var q = 0; q < numYtiles; q++) { + for (var p = 0; p < numXtiles; p++) { + tile = {}; + tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); + tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); + tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); + tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); + tile.width = tile.tx1 - tile.tx0; + tile.height = tile.ty1 - tile.ty0; + tile.components = []; + tiles.push(tile); + } } - - temp[0] &= (mask >> (16 - index[0])); - temp[0] <<= 8; - input = this.stream.get8(); - - if (input === 0xFF) { - this.marker = this.stream.get8(); - if (this.marker !== 0) { - this.markerIndex = 9; - } + context.tiles = tiles; + var componentsCount = siz.Csiz; + for (var i2 = 0, ii = componentsCount; i2 < ii; i2++) { + var component = components[i2]; + for (var j = 0, jj = tiles.length; j < jj; j++) { + var tileComponent = {}; + tile = tiles[j]; + tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); + tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); + tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); + tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); + tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; + tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; + tile.components[i2] = tileComponent; + } } - - temp[0] |= input; - code = table[((code & 0xFF) * 256) + (temp[0] >> index[0])]; - index[0] += 8; - } - - index[0] += 8 - (code >> 8); - - if (index[0] < 0) { - throw new Error("index=" + index[0] + " temp=" + temp[0] + " code=" + code + " in HuffmanValue()"); - } - - if (index[0] < this.markerIndex) { - this.markerIndex = 0; - return 0xFF00 | this.marker; - } - - temp[0] &= (mask >> (16 - index[0])); - return code & 0xFF; -}; - - - -jpeg.lossless.Decoder.prototype.getn = function (PRED, n, temp, index) { - /*jslint bitwise: true */ - - var result, one, n_one, mask, input; - one = 1; - n_one = -1; - mask = 0xFFFF; - - if (n === 0) { - return 0; - } - - if (n === 16) { - if (PRED[0] >= 0) { - return -32768; + } + function getBlocksDimensions(context, component, r) { + var codOrCoc = component.codingStyleParameters; + var result = {}; + if (!codOrCoc.entropyCoderWithCustomPrecincts) { + result.PPx = 15; + result.PPy = 15; } else { - return 32768; + result.PPx = codOrCoc.precinctsSizes[r].PPx; + result.PPy = codOrCoc.precinctsSizes[r].PPy; } - } - - index[0] -= n; - - if (index[0] >= 0) { - if ((index[0] < this.markerIndex) && !this.isLastPixel()) { // this was corrupting the last pixel in some cases - this.markerIndex = 0; - return (0xFF00 | this.marker) << 8; - } - - result = temp[0] >> index[0]; - temp[0] &= (mask >> (16 - index[0])); - } else { - temp[0] <<= 8; - input = this.stream.get8(); - - if (input === 0xFF) { - this.marker = this.stream.get8(); - if (this.marker !== 0) { - this.markerIndex = 9; + result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx); + result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy); + return result; + } + function buildPrecincts(context, resolution, dimensions) { + var precinctWidth = 1 << dimensions.PPx; + var precinctHeight = 1 << dimensions.PPy; + var isZeroRes = resolution.resLevel === 0; + var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1); + var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1); + var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0; + var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0; + var numprecincts = numprecinctswide * numprecinctshigh; + resolution.precinctParameters = { + precinctWidth, + precinctHeight, + numprecinctswide, + numprecinctshigh, + numprecincts, + precinctWidthInSubband, + precinctHeightInSubband + }; + } + function buildCodeblocks(context, subband, dimensions) { + var xcb_ = dimensions.xcb_; + var ycb_ = dimensions.ycb_; + var codeblockWidth = 1 << xcb_; + var codeblockHeight = 1 << ycb_; + var cbx0 = subband.tbx0 >> xcb_; + var cby0 = subband.tby0 >> ycb_; + var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_; + var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_; + var precinctParameters = subband.resolution.precinctParameters; + var codeblocks = []; + var precincts = []; + var i2, j, codeblock, precinctNumber; + for (j = cby0; j < cby1; j++) { + for (i2 = cbx0; i2 < cbx1; i2++) { + codeblock = { + cbx: i2, + cby: j, + tbx0: codeblockWidth * i2, + tby0: codeblockHeight * j, + tbx1: codeblockWidth * (i2 + 1), + tby1: codeblockHeight * (j + 1) + }; + codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); + codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); + codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); + codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); + var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband); + var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband); + precinctNumber = pi + pj * precinctParameters.numprecinctswide; + codeblock.precinctNumber = precinctNumber; + codeblock.subbandType = subband.type; + codeblock.Lblock = 3; + if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) { + continue; + } + codeblocks.push(codeblock); + var precinct = precincts[precinctNumber]; + if (precinct !== void 0) { + if (i2 < precinct.cbxMin) { + precinct.cbxMin = i2; + } else if (i2 > precinct.cbxMax) { + precinct.cbxMax = i2; + } + if (j < precinct.cbyMin) { + precinct.cbxMin = j; + } else if (j > precinct.cbyMax) { + precinct.cbyMax = j; + } + } else { + precincts[precinctNumber] = precinct = { + cbxMin: i2, + cbyMin: j, + cbxMax: i2, + cbyMax: j + }; } + codeblock.precinct = precinct; + } } - - temp[0] |= input; - index[0] += 8; - - if (index[0] < 0) { - if (this.markerIndex !== 0) { - this.markerIndex = 0; - return (0xFF00 | this.marker) << 8; + subband.codeblockParameters = { + codeblockWidth: xcb_, + codeblockHeight: ycb_, + numcodeblockwide: cbx1 - cbx0 + 1, + numcodeblockhigh: cby1 - cby0 + 1 + }; + subband.codeblocks = codeblocks; + subband.precincts = precincts; + } + function createPacket(resolution, precinctNumber, layerNumber) { + var precinctCodeblocks = []; + var subbands = resolution.subbands; + for (var i2 = 0, ii = subbands.length; i2 < ii; i2++) { + var subband = subbands[i2]; + var codeblocks = subband.codeblocks; + for (var j = 0, jj = codeblocks.length; j < jj; j++) { + var codeblock = codeblocks[j]; + if (codeblock.precinctNumber !== precinctNumber) { + continue; } - - temp[0] <<= 8; - input = this.stream.get8(); - - if (input === 0xFF) { - this.marker = this.stream.get8(); - if (this.marker !== 0) { - this.markerIndex = 9; + precinctCodeblocks.push(codeblock); + } + } + return { + layerNumber, + codeblocks: precinctCodeblocks + }; + } + function LayerResolutionComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max( + maxDecompositionLevelsCount, + tile.components[q].codingStyleParameters.decompositionLevelsCount + ); + } + var l = 0, r = 0, i2 = 0, k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; l < layersCount; l++) { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; i2 < componentsCount; i2++) { + var component = tile.components[i2]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts; ) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i2 = 0; } - - temp[0] |= input; - index[0] += 8; + r = 0; + } + }; + } + function ResolutionLayerComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max( + maxDecompositionLevelsCount, + tile.components[q].codingStyleParameters.decompositionLevelsCount + ); } - - if (index[0] < 0) { - throw new Error("index=" + index[0] + " in getn()"); + var r = 0, l = 0, i2 = 0, k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; l < layersCount; l++) { + for (; i2 < componentsCount; i2++) { + var component = tile.components[i2]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts; ) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i2 = 0; + } + l = 0; + } + }; + } + function ResolutionPositionComponentLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var l, r, c, p; + var maxDecompositionLevelsCount = 0; + for (c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + maxDecompositionLevelsCount = Math.max( + maxDecompositionLevelsCount, + component.codingStyleParameters.decompositionLevelsCount + ); } - - if (index[0] < this.markerIndex) { - this.markerIndex = 0; - return (0xFF00 | this.marker) << 8; + var maxNumPrecinctsInLevel = new Int32Array( + maxDecompositionLevelsCount + 1 + ); + for (r = 0; r <= maxDecompositionLevelsCount; ++r) { + var maxNumPrecincts = 0; + for (c = 0; c < componentsCount; ++c) { + var resolutions = tile.components[c].resolutions; + if (r < resolutions.length) { + maxNumPrecincts = Math.max( + maxNumPrecincts, + resolutions[r].precinctParameters.numprecincts + ); + } + } + maxNumPrecinctsInLevel[r] = maxNumPrecincts; } - - result = temp[0] >> index[0]; - temp[0] &= (mask >> (16 - index[0])); - } - - if (result < (one << (n - 1))) { - result += (n_one << n) + 1; - } - - return result; -}; - - - -jpeg.lossless.Decoder.prototype.getPreviousX = function (compOffset) { - /*jslint bitwise: true */ - - if (this.xLoc > 0) { - return this.getter((((this.yLoc * this.xDim) + this.xLoc) - 1), compOffset); - } else if (this.yLoc > 0) { - return this.getPreviousY(compOffset); - } else { - return (1 << (this.frame.precision - 1)); - } -}; - - - -jpeg.lossless.Decoder.prototype.getPreviousXY = function (compOffset) { - /*jslint bitwise: true */ - - if ((this.xLoc > 0) && (this.yLoc > 0)) { - return this.getter(((((this.yLoc - 1) * this.xDim) + this.xLoc) - 1), compOffset); - } else { - return this.getPreviousY(compOffset); - } -}; - - - -jpeg.lossless.Decoder.prototype.getPreviousY = function (compOffset) { - /*jslint bitwise: true */ - - if (this.yLoc > 0) { - return this.getter((((this.yLoc - 1) * this.xDim) + this.xLoc), compOffset); - } else { - return this.getPreviousX(compOffset); - } -}; - - - -jpeg.lossless.Decoder.prototype.isLastPixel = function () { - return (this.xLoc === (this.xDim - 1)) && (this.yLoc === (this.yDim - 1)); -}; - - - -jpeg.lossless.Decoder.prototype.outputSingle = function (PRED) { - if ((this.xLoc < this.xDim) && (this.yLoc < this.yDim)) { - this.setter((((this.yLoc * this.xDim) + this.xLoc)), this.mask & PRED[0]); - - this.xLoc+=1; - - if (this.xLoc >= this.xDim) { - this.yLoc+=1; - this.xLoc = 0; + l = 0; + r = 0; + c = 0; + p = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; p < maxNumPrecinctsInLevel[r]; p++) { + for (; c < componentsCount; c++) { + var component2 = tile.components[c]; + if (r > component2.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component2.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + if (p >= numprecincts) { + continue; + } + for (; l < layersCount; ) { + var packet = createPacket(resolution, p, l); + l++; + return packet; + } + l = 0; + } + c = 0; + } + p = 0; + } + }; + } + function PositionComponentResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var precinctsIterationSizes = precinctsSizes; + var l = 0, r = 0, c = 0, px = 0, py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsSizes.components[c].resolutions[r]; + var k = getPrecinctIndexIfExist( + px, + py, + sizeInImageScale, + precinctsIterationSizes, + resolution + ); + if (k === null) { + continue; + } + for (; l < layersCount; ) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; + } + r = 0; + } + c = 0; + } + px = 0; + } + }; + } + function ComponentPositionResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var l = 0, r = 0, c = 0, px = 0, py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; c < componentsCount; ++c) { + var component = tile.components[c]; + var precinctsIterationSizes = precinctsSizes.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsIterationSizes.resolutions[r]; + var k = getPrecinctIndexIfExist( + px, + py, + sizeInImageScale, + precinctsIterationSizes, + resolution + ); + if (k === null) { + continue; + } + for (; l < layersCount; ) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; + } + r = 0; + } + px = 0; + } + py = 0; + } + }; + } + function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { + var posX = pxIndex * precinctIterationSizes.minWidth; + var posY = pyIndex * precinctIterationSizes.minHeight; + if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) { + return null; } - } -}; - - - -jpeg.lossless.Decoder.prototype.outputRGB = function (PRED) { - var offset = ((this.yLoc * this.xDim) + this.xLoc); - - if ((this.xLoc < this.xDim) && (this.yLoc < this.yDim)) { - this.setter(offset, PRED[0], 0); - this.setter(offset, PRED[1], 1); - this.setter(offset, PRED[2], 2); - - this.xLoc+=1; - - if (this.xLoc >= this.xDim) { - this.yLoc+=1; - this.xLoc = 0; + var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide; + return posX / sizeInImageScale.height + startPrecinctRowIndex; + } + function getPrecinctSizesInImageScale(tile) { + var componentsCount = tile.components.length; + var minWidth = Number.MAX_VALUE; + var minHeight = Number.MAX_VALUE; + var maxNumWide = 0; + var maxNumHigh = 0; + var sizePerComponent = new Array(componentsCount); + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var sizePerResolution = new Array(decompositionLevelsCount + 1); + var minWidthCurrentComponent = Number.MAX_VALUE; + var minHeightCurrentComponent = Number.MAX_VALUE; + var maxNumWideCurrentComponent = 0; + var maxNumHighCurrentComponent = 0; + var scale = 1; + for (var r = decompositionLevelsCount; r >= 0; --r) { + var resolution = component.resolutions[r]; + var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth; + var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight; + minWidthCurrentComponent = Math.min( + minWidthCurrentComponent, + widthCurrentResolution + ); + minHeightCurrentComponent = Math.min( + minHeightCurrentComponent, + heightCurrentResolution + ); + maxNumWideCurrentComponent = Math.max( + maxNumWideCurrentComponent, + resolution.precinctParameters.numprecinctswide + ); + maxNumHighCurrentComponent = Math.max( + maxNumHighCurrentComponent, + resolution.precinctParameters.numprecinctshigh + ); + sizePerResolution[r] = { + width: widthCurrentResolution, + height: heightCurrentResolution + }; + scale <<= 1; + } + minWidth = Math.min(minWidth, minWidthCurrentComponent); + minHeight = Math.min(minHeight, minHeightCurrentComponent); + maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); + maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); + sizePerComponent[c] = { + resolutions: sizePerResolution, + minWidth: minWidthCurrentComponent, + minHeight: minHeightCurrentComponent, + maxNumWide: maxNumWideCurrentComponent, + maxNumHigh: maxNumHighCurrentComponent + }; } - } -}; - -jpeg.lossless.Decoder.prototype.setValue8 = function (index, val) { - this.outputData[index] = val; -}; - -jpeg.lossless.Decoder.prototype.getValue8 = function (index) { - return this.outputData[index]; // mask should not be necessary because outputData is either Int8Array or Int16Array -}; - -var littleEndian = (function() { - var buffer = new ArrayBuffer(2); - new DataView(buffer).setInt16(0, 256, true /* littleEndian */); - // Int16Array uses the platform's endianness. - return new Int16Array(buffer)[0] === 256; -})(); - -if (littleEndian) { - // just reading from an array is fine then. Int16Array will use platform endianness. - jpeg.lossless.Decoder.prototype.setValue16 = jpeg.lossless.Decoder.prototype.setValue8; - jpeg.lossless.Decoder.prototype.getValue16 = jpeg.lossless.Decoder.prototype.getValue8; -} -else { - // If platform is big-endian, we will need to convert to little-endian - jpeg.lossless.Decoder.prototype.setValue16 = function (index, val) { - this.outputData[index] = ((val & 0xFF) << 8) | ((val >> 8) & 0xFF); - }; - - jpeg.lossless.Decoder.prototype.getValue16 = function (index) { - var val = this.outputData[index]; - return ((val & 0xFF) << 8) | ((val >> 8) & 0xFF); - }; -} - -jpeg.lossless.Decoder.prototype.setValueRGB = function (index, val, compOffset) { - // this.outputData.setUint8(index * 3 + compOffset, val); - this.outputData[index * 3 + compOffset] = val; -}; - -jpeg.lossless.Decoder.prototype.getValueRGB = function (index, compOffset) { - // return this.outputData.getUint8(index * 3 + compOffset); - return this.outputData[index * 3 + compOffset]; -}; - - - -jpeg.lossless.Decoder.prototype.readApp = function() { - var count = 0, length = this.stream.get16(); - count += 2; - - while (count < length) { - this.stream.get8(); - count+=1; - } - - return length; -}; - - - -jpeg.lossless.Decoder.prototype.readComment = function () { - var sb = "", count = 0, length; - - length = this.stream.get16(); - count += 2; - - while (count < length) { - sb += this.stream.get8(); - count+=1; - } - - return sb; -}; - - - -jpeg.lossless.Decoder.prototype.readNumber = function() { - var Ld = this.stream.get16(); - - if (Ld !== 4) { - throw new Error("ERROR: Define number format throw new IOException [Ld!=4]"); - } - - return this.stream.get16(); -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.Decoder; -} - -},{"./data-stream.js":7,"./frame-header.js":9,"./huffman-table.js":10,"./quantization-table.js":12,"./scan-header.js":14,"./utils.js":15}],9:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * 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. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.ComponentSpec = jpeg.lossless.ComponentSpec || ((typeof require !== 'undefined') ? require('./component-spec.js') : null); -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); - - -/*** Constructor ***/ -jpeg.lossless.FrameHeader = jpeg.lossless.FrameHeader || function () { - this.components = []; // Components - this.dimX = 0; // Number of samples per line - this.dimY = 0; // Number of lines - this.numComp = 0; // Number of component in the frame - this.precision = 0; // Sample Precision (from the original image) -}; - - - -/*** Prototype Methods ***/ - -jpeg.lossless.FrameHeader.prototype.read = function (data) { - /*jslint bitwise: true */ - - var count = 0, length, i, c, temp; - - length = data.get16(); - count += 2; - - this.precision = data.get8(); - count+=1; - - this.dimY = data.get16(); - count += 2; - - this.dimX = data.get16(); - count += 2; - - this.numComp = data.get8(); - count+=1; - for (i = 1; i <= this.numComp; i+=1) { - if (count > length) { - throw new Error("ERROR: frame format error"); + return { + components: sizePerComponent, + minWidth, + minHeight, + maxNumWide, + maxNumHigh + }; + } + function buildPackets(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var componentsCount = siz.Csiz; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var resolutions = []; + var subbands = []; + for (var r = 0; r <= decompositionLevelsCount; r++) { + var blocksDimensions = getBlocksDimensions(context, component, r); + var resolution = {}; + var scale = 1 << decompositionLevelsCount - r; + resolution.trx0 = Math.ceil(component.tcx0 / scale); + resolution.try0 = Math.ceil(component.tcy0 / scale); + resolution.trx1 = Math.ceil(component.tcx1 / scale); + resolution.try1 = Math.ceil(component.tcy1 / scale); + resolution.resLevel = r; + buildPrecincts(context, resolution, blocksDimensions); + resolutions.push(resolution); + var subband; + if (r === 0) { + subband = {}; + subband.type = "LL"; + subband.tbx0 = Math.ceil(component.tcx0 / scale); + subband.tby0 = Math.ceil(component.tcy0 / scale); + subband.tbx1 = Math.ceil(component.tcx1 / scale); + subband.tby1 = Math.ceil(component.tcy1 / scale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolution.subbands = [subband]; + } else { + var bscale = 1 << decompositionLevelsCount - r + 1; + var resolutionSubbands = []; + subband = {}; + subband.type = "HL"; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = "LH"; + subband.tbx0 = Math.ceil(component.tcx0 / bscale); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = "HH"; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + resolution.subbands = resolutionSubbands; + } + } + component.resolutions = resolutions; + component.subbands = subbands; } - - c = data.get8(); - count+=1; - - if (count >= length) { - throw new Error("ERROR: frame format error [c>=Lf]"); + var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; + switch (progressionOrder) { + case 0: + tile.packetsIterator = new LayerResolutionComponentPositionIterator(context); + break; + case 1: + tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context); + break; + case 2: + tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context); + break; + case 3: + tile.packetsIterator = new PositionComponentResolutionLayerIterator(context); + break; + case 4: + tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context); + break; + default: + throw new Error("JPX Error: Unsupported progression order " + progressionOrder); } - - temp = data.get8(); - count+=1; - - if (!this.components[c]) { - this.components[c] = new jpeg.lossless.ComponentSpec(); + } + function parseTilePackets(context, data, offset, dataLength) { + var position = 0; + var buffer2, bufferSize = 0, skipNextBit = false; + function readBits(count) { + while (bufferSize < count) { + if (offset + position >= data.length) { + throw new Error("Unexpected EOF"); + } + var b = data[offset + position]; + position++; + if (skipNextBit) { + buffer2 = buffer2 << 7 | b; + bufferSize += 7; + skipNextBit = false; + } else { + buffer2 = buffer2 << 8 | b; + bufferSize += 8; + } + if (b === 255) { + skipNextBit = true; + } + } + bufferSize -= count; + return buffer2 >>> bufferSize & (1 << count) - 1; } - - this.components[c].hSamp = temp >> 4; - this.components[c].vSamp = temp & 0x0F; - this.components[c].quantTableSel = data.get8(); - count+=1; - } - - if (count !== length) { - throw new Error("ERROR: frame format error [Lf!=count]"); - } - - return 1; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.FrameHeader; -} - -},{"./component-spec.js":6,"./data-stream.js":7}],10:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * 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. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.Utils = jpeg.lossless.Utils || ((typeof require !== 'undefined') ? require('./utils.js') : null); - - -/*** Constructor ***/ -jpeg.lossless.HuffmanTable = jpeg.lossless.HuffmanTable || function () { - this.l = jpeg.lossless.Utils.createArray(4, 2, 16); - this.th = []; - this.v = jpeg.lossless.Utils.createArray(4, 2, 16, 200); - this.tc = jpeg.lossless.Utils.createArray(4, 2); - - this.tc[0][0] = 0; - this.tc[1][0] = 0; - this.tc[2][0] = 0; - this.tc[3][0] = 0; - this.tc[0][1] = 0; - this.tc[1][1] = 0; - this.tc[2][1] = 0; - this.tc[3][1] = 0; - this.th[0] = 0; - this.th[1] = 0; - this.th[2] = 0; - this.th[3] = 0; -}; - - - -/*** Static Pseudo-constants ***/ - -jpeg.lossless.HuffmanTable.MSB = 0x80000000; - - -/*** Prototype Methods ***/ - -jpeg.lossless.HuffmanTable.prototype.read = function(data, HuffTab) { - /*jslint bitwise: true */ - - var count = 0, length, temp, t, c, i, j; - - length = data.get16(); - count += 2; - - while (count < length) { - temp = data.get8(); - count+=1; - t = temp & 0x0F; - if (t > 3) { - throw new Error("ERROR: Huffman table ID > 3"); + function skipMarkerIfEqual(value) { + if (data[offset + position - 1] === 255 && data[offset + position] === value) { + skipBytes(1); + return true; + } else if (data[offset + position] === 255 && data[offset + position + 1] === value) { + skipBytes(2); + return true; + } + return false; } - - c = temp >> 4; - if (c > 2) { - throw new Error("ERROR: Huffman table [Table class > 2 ]"); + function skipBytes(count) { + position += count; } - - this.th[t] = 1; - this.tc[t][c] = 1; - - for (i = 0; i < 16; i+=1) { - this.l[t][c][i] = data.get8(); - count+=1; + function alignToByte() { + bufferSize = 0; + if (skipNextBit) { + position++; + skipNextBit = false; + } } - - for (i = 0; i < 16; i+=1) { - for (j = 0; j < this.l[t][c][i]; j+=1) { - if (count > length) { - throw new Error("ERROR: Huffman table format error [count>Lh]"); - } - - this.v[t][c][i][j] = data.get8(); - count+=1; - } + function readCodingpasses() { + if (readBits(1) === 0) { + return 1; + } + if (readBits(1) === 0) { + return 2; + } + var value = readBits(2); + if (value < 3) { + return value + 3; + } + value = readBits(5); + if (value < 31) { + return value + 6; + } + value = readBits(7); + return value + 37; } - } - - if (count !== length) { - throw new Error("ERROR: Huffman table format error [count!=Lf]"); - } - - for (i = 0; i < 4; i+=1) { - for (j = 0; j < 2; j+=1) { - if (this.tc[i][j] !== 0) { - this.buildHuffTable(HuffTab[i][j], this.l[i][j], this.v[i][j]); + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var sopMarkerUsed = context.COD.sopMarkerUsed; + var ephMarkerUsed = context.COD.ephMarkerUsed; + var packetsIterator = tile.packetsIterator; + while (position < dataLength) { + try { + alignToByte(); + if (sopMarkerUsed && skipMarkerIfEqual(145)) { + skipBytes(4); } - } - } - - return 1; -}; - - - -// Build_HuffTab() -// Parameter: t table ID -// c table class ( 0 for DC, 1 for AC ) -// L[i] # of codewords which length is i -// V[i][j] Huffman Value (length=i) -// Effect: -// build up HuffTab[t][c] using L and V. -jpeg.lossless.HuffmanTable.prototype.buildHuffTable = function(tab, L, V) { - /*jslint bitwise: true */ - - var currentTable, temp, k, i, j, n; - temp = 256; - k = 0; - - for (i = 0; i < 8; i+=1) { // i+1 is Code length - for (j = 0; j < L[i]; j+=1) { - for (n = 0; n < (temp >> (i + 1)); n+=1) { - tab[k] = V[i][j] | ((i + 1) << 8); - k+=1; + var packet = packetsIterator.nextPacket(); + if (packet === void 0) { + return; } - } - } - - for (i = 1; k < 256; i+=1, k+=1) { - tab[k] = i | jpeg.lossless.HuffmanTable.MSB; - } - - currentTable = 1; - k = 0; - - for (i = 8; i < 16; i+=1) { // i+1 is Code length - for (j = 0; j < L[i]; j+=1) { - for (n = 0; n < (temp >> (i - 7)); n+=1) { - tab[(currentTable * 256) + k] = V[i][j] | ((i + 1) << 8); - k+=1; + if (!readBits(1)) { + continue; } - - if (k >= 256) { - if (k > 256) { - throw new Error("ERROR: Huffman table error(1)!"); + var layerNumber = packet.layerNumber; + var queue = [], codeblock; + for (var i2 = 0, ii = packet.codeblocks.length; i2 < ii; i2++) { + codeblock = packet.codeblocks[i2]; + var precinct = codeblock.precinct; + var codeblockColumn = codeblock.cbx - precinct.cbxMin; + var codeblockRow = codeblock.cby - precinct.cbyMin; + var codeblockIncluded = false; + var firstTimeInclusion = false; + var valueReady; + if (codeblock["included"] !== void 0) { + codeblockIncluded = !!readBits(1); + } else { + precinct = codeblock.precinct; + var inclusionTree, zeroBitPlanesTree; + if (precinct["inclusionTree"] !== void 0) { + inclusionTree = precinct.inclusionTree; + } else { + var width = precinct.cbxMax - precinct.cbxMin + 1; + var height = precinct.cbyMax - precinct.cbyMin + 1; + inclusionTree = new InclusionTree(width, height); + zeroBitPlanesTree = new TagTree(width, height); + precinct.inclusionTree = inclusionTree; + precinct.zeroBitPlanesTree = zeroBitPlanesTree; } - - k = 0; - currentTable+=1; + inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber); + while (true) { + if (position >= data.length) { + return; + } + if (inclusionTree.isAboveThreshold()) { + break; + } + if (inclusionTree.isKnown()) { + inclusionTree.nextLevel(); + continue; + } + if (readBits(1)) { + inclusionTree.setKnown(); + if (inclusionTree.isLeaf()) { + codeblock.included = true; + codeblockIncluded = firstTimeInclusion = true; + break; + } else { + inclusionTree.nextLevel(); + } + } else { + inclusionTree.incrementValue(); + } + } + } + if (!codeblockIncluded) { + continue; + } + if (firstTimeInclusion) { + zeroBitPlanesTree = precinct.zeroBitPlanesTree; + zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); + while (true) { + if (position >= data.length) { + return; + } + if (readBits(1)) { + valueReady = !zeroBitPlanesTree.nextLevel(); + if (valueReady) { + break; + } + } else { + zeroBitPlanesTree.incrementValue(); + } + } + codeblock.zeroBitPlanes = zeroBitPlanesTree.value; + } + var codingpasses = readCodingpasses(); + while (readBits(1)) { + codeblock.Lblock++; + } + var codingpassesLog2 = log2(codingpasses); + var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; + var codedDataLength = readBits(bits); + queue.push({ + codeblock, + codingpasses, + dataLength: codedDataLength + }); + } + alignToByte(); + if (ephMarkerUsed) { + skipMarkerIfEqual(146); + } + while (queue.length > 0) { + var packetItem = queue.shift(); + codeblock = packetItem.codeblock; + if (codeblock["data"] === void 0) { + codeblock.data = []; + } + codeblock.data.push({ + data, + start: offset + position, + end: offset + position + packetItem.dataLength, + codingpasses: packetItem.codingpasses + }); + position += packetItem.dataLength; } + } catch (e) { + return; + } } - } -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.HuffmanTable; -} - -},{"./data-stream.js":7,"./utils.js":15}],11:[function(require,module,exports){ -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ****/ - -/** - * jpeg - * @type {*|{}} - */ -var jpeg = jpeg || {}; - -/** - * jpeg.lossless - * @type {*|{}} - */ -jpeg.lossless = jpeg.lossless || {}; - - -jpeg.lossless.ComponentSpec = jpeg.lossless.ComponentSpec || ((typeof require !== 'undefined') ? require('./component-spec.js') : null); -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.Decoder = jpeg.lossless.Decoder || ((typeof require !== 'undefined') ? require('./decoder.js') : null); -jpeg.lossless.FrameHeader = jpeg.lossless.FrameHeader || ((typeof require !== 'undefined') ? require('./frame-header.js') : null); -jpeg.lossless.HuffmanTable = jpeg.lossless.HuffmanTable || ((typeof require !== 'undefined') ? require('./huffman-table.js') : null); -jpeg.lossless.QuantizationTable = jpeg.lossless.QuantizationTable || ((typeof require !== 'undefined') ? require('./quantization-table.js') : null); -jpeg.lossless.ScanComponent = jpeg.lossless.ScanComponent || ((typeof require !== 'undefined') ? require('./scan-component.js') : null); -jpeg.lossless.ScanHeader = jpeg.lossless.ScanHeader || ((typeof require !== 'undefined') ? require('./scan-header.js') : null); -jpeg.lossless.Utils = jpeg.lossless.Utils || ((typeof require !== 'undefined') ? require('./utils.js') : null); - - -/*** Exports ***/ -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg; -} - -},{"./component-spec.js":6,"./data-stream.js":7,"./decoder.js":8,"./frame-header.js":9,"./huffman-table.js":10,"./quantization-table.js":12,"./scan-component.js":13,"./scan-header.js":14,"./utils.js":15}],12:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * 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. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.Utils = jpeg.lossless.Utils || ((typeof require !== 'undefined') ? require('./utils.js') : null); - - -/*** Constructor ***/ -jpeg.lossless.QuantizationTable = jpeg.lossless.QuantizationTable || function () { - this.precision = []; // Quantization precision 8 or 16 - this.tq = []; // 1: this table is presented - this.quantTables = jpeg.lossless.Utils.createArray(4, 64); // Tables - - this.tq[0] = 0; - this.tq[1] = 0; - this.tq[2] = 0; - this.tq[3] = 0; -}; - - - -/*** Static Methods ***/ - -jpeg.lossless.QuantizationTable.enhanceQuantizationTable = function(qtab, table) { - /*jslint bitwise: true */ - - var i; - - for (i = 0; i < 8; i+=1) { - qtab[table[(0 * 8) + i]] *= 90; - qtab[table[(4 * 8) + i]] *= 90; - qtab[table[(2 * 8) + i]] *= 118; - qtab[table[(6 * 8) + i]] *= 49; - qtab[table[(5 * 8) + i]] *= 71; - qtab[table[(1 * 8) + i]] *= 126; - qtab[table[(7 * 8) + i]] *= 25; - qtab[table[(3 * 8) + i]] *= 106; - } - - for (i = 0; i < 8; i+=1) { - qtab[table[0 + (8 * i)]] *= 90; - qtab[table[4 + (8 * i)]] *= 90; - qtab[table[2 + (8 * i)]] *= 118; - qtab[table[6 + (8 * i)]] *= 49; - qtab[table[5 + (8 * i)]] *= 71; - qtab[table[1 + (8 * i)]] *= 126; - qtab[table[7 + (8 * i)]] *= 25; - qtab[table[3 + (8 * i)]] *= 106; - } - - for (i = 0; i < 64; i+=1) { - qtab[i] >>= 6; - } -}; - - -/*** Prototype Methods ***/ - -jpeg.lossless.QuantizationTable.prototype.read = function (data, table) { - /*jslint bitwise: true */ - - var count = 0, length, temp, t, i; - - length = data.get16(); - count += 2; - - while (count < length) { - temp = data.get8(); - count+=1; - t = temp & 0x0F; - - if (t > 3) { - throw new Error("ERROR: Quantization table ID > 3"); + return position; + } + function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) { + var x0 = subband.tbx0; + var y0 = subband.tby0; + var width = subband.tbx1 - subband.tbx0; + var codeblocks = subband.codeblocks; + var right = subband.type.charAt(0) === "H" ? 1 : 0; + var bottom = subband.type.charAt(1) === "H" ? levelWidth : 0; + for (var i2 = 0, ii = codeblocks.length; i2 < ii; ++i2) { + var codeblock = codeblocks[i2]; + var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; + var blockHeight = codeblock.tby1_ - codeblock.tby0_; + if (blockWidth === 0 || blockHeight === 0) { + continue; + } + if (codeblock["data"] === void 0) { + continue; + } + var bitModel, currentCodingpassType; + bitModel = new BitModel( + blockWidth, + blockHeight, + codeblock.subbandType, + codeblock.zeroBitPlanes, + mb + ); + currentCodingpassType = 2; + var data = codeblock.data, totalLength = 0, codingpasses = 0; + var j, jj, dataItem; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + totalLength += dataItem.end - dataItem.start; + codingpasses += dataItem.codingpasses; + } + var encodedData = new Int16Array(totalLength); + var position = 0; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); + encodedData.set(chunk, position); + position += chunk.length; + } + var decoder = new ArithmeticDecoder(encodedData, 0, totalLength); + bitModel.setDecoder(decoder); + for (j = 0; j < codingpasses; j++) { + switch (currentCodingpassType) { + case 0: + bitModel.runSignificancePropogationPass(); + break; + case 1: + bitModel.runMagnitudeRefinementPass(); + break; + case 2: + bitModel.runCleanupPass(); + if (segmentationSymbolUsed) { + bitModel.checkSegmentationSymbol(); + } + break; + } + currentCodingpassType = (currentCodingpassType + 1) % 3; + } + var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width; + var sign = bitModel.coefficentsSign; + var magnitude = bitModel.coefficentsMagnitude; + var bitsDecoded = bitModel.bitsDecoded; + var magnitudeCorrection = reversible ? 0 : 0.5; + var k, n, nb; + position = 0; + var interleave = subband.type !== "LL"; + for (j = 0; j < blockHeight; j++) { + var row = offset / width | 0; + var levelOffset = 2 * row * (levelWidth - width) + right + bottom; + for (k = 0; k < blockWidth; k++) { + n = magnitude[position]; + if (n !== 0) { + n = (n + magnitudeCorrection) * delta; + if (sign[position] !== 0) { + n = -n; + } + nb = bitsDecoded[position]; + var pos = interleave ? levelOffset + (offset << 1) : offset; + if (reversible && nb >= mb) { + coefficients[pos] = n; + } else { + coefficients[pos] = n * (1 << mb - nb); + } + } + offset++; + position++; + } + offset += width - blockWidth; + } } - - this.precision[t] = temp >> 4; - - if (this.precision[t] === 0) { - this.precision[t] = 8; - } else if (this.precision[t] === 1) { - this.precision[t] = 16; - } else { - throw new Error("ERROR: Quantization table precision error"); + } + function transformTile(context, tile, c) { + var component = tile.components[c]; + var codingStyleParameters = component.codingStyleParameters; + var quantizationParameters = component.quantizationParameters; + var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount; + var spqcds = quantizationParameters.SPqcds; + var scalarExpounded = quantizationParameters.scalarExpounded; + var guardBits = quantizationParameters.guardBits; + var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; + var precision = context.components[c].precision; + var reversible = codingStyleParameters.reversibleTransformation; + var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform(); + var subbandCoefficients = []; + var b = 0; + for (var i2 = 0; i2 <= decompositionLevelsCount; i2++) { + var resolution = component.resolutions[i2]; + var width = resolution.trx1 - resolution.trx0; + var height = resolution.try1 - resolution.try0; + var coefficients = new Float32Array(width * height); + for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { + var mu, epsilon; + if (!scalarExpounded) { + mu = spqcds[0].mu; + epsilon = spqcds[0].epsilon + (i2 > 0 ? 1 - i2 : 0); + } else { + mu = spqcds[b].mu; + epsilon = spqcds[b].epsilon; + b++; + } + var subband = resolution.subbands[j]; + var gainLog2 = SubbandsGainLog2[subband.type]; + var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048); + var mb = guardBits + epsilon - 1; + copyCoefficients( + coefficients, + width, + height, + subband, + delta, + mb, + reversible, + segmentationSymbolUsed + ); + } + subbandCoefficients.push({ + width, + height, + items: coefficients + }); } - - this.tq[t] = 1; - - if (this.precision[t] === 8) { - for (i = 0; i < 64; i+=1) { - if (count > length) { - throw new Error("ERROR: Quantization table format error"); - } - - this.quantTables[t][i] = data.get8(); - count+=1; + var result = transform.calculate( + subbandCoefficients, + component.tcx0, + component.tcy0 + ); + return { + left: component.tcx0, + top: component.tcy0, + width: result.width, + height: result.height, + items: result.items + }; + } + function transformComponents(context) { + var siz = context.SIZ; + var components = context.components; + var componentsCount = siz.Csiz; + var resultImages = []; + for (var i2 = 0, ii = context.tiles.length; i2 < ii; i2++) { + var tile = context.tiles[i2]; + var transformedTiles = []; + var c; + for (c = 0; c < componentsCount; c++) { + transformedTiles[c] = transformTile(context, tile, c); + } + var tile0 = transformedTiles[0]; + var isSigned = components[0].isSigned; + if (isSigned) { + var out = new Int16Array(tile0.items.length * componentsCount); + } else { + var out = new Uint16Array(tile0.items.length * componentsCount); + } + var result = { + left: tile0.left, + top: tile0.top, + width: tile0.width, + height: tile0.height, + items: out + }; + var shift, offset, max, min, maxK; + var pos = 0, j, jj, y0, y1, y2, r, g, b, k, val; + if (tile.codingStyleDefaultParameters.multipleComponentTransform) { + var fourComponents = componentsCount === 4; + var y0items = transformedTiles[0].items; + var y1items = transformedTiles[1].items; + var y2items = transformedTiles[2].items; + var y3items = fourComponents ? transformedTiles[3].items : null; + shift = components[0].precision - 8; + offset = (128 << shift) + 0.5; + max = 255 * (1 << shift); + maxK = max * 0.5; + min = -maxK; + var component0 = tile.components[0]; + var alpha01 = componentsCount - 3; + jj = y0items.length; + if (!component0.codingStyleParameters.reversibleTransformation) { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + r = y0 + 1.402 * y2; + g = y0 - 0.34413 * y1 - 0.71414 * y2; + b = y0 + 1.772 * y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } + } else { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + g = y0 - (y2 + y1 >> 2); + r = g + y2; + b = g + y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } } - - jpeg.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); - } else { - for (i = 0; i < 64; i+=1) { - if (count > length) { - throw new Error("ERROR: Quantization table format error"); + if (fourComponents) { + for (j = 0, pos = 3; j < jj; j++, pos += 4) { + k = y3items[j]; + out[pos] = k <= min ? 0 : k >= maxK ? 255 : k + offset >> shift; + } + } + } else { + for (c = 0; c < componentsCount; c++) { + if (components[c].precision === 8) { + var items = transformedTiles[c].items; + shift = components[c].precision - 8; + offset = (128 << shift) + 0.5; + max = 127.5 * (1 << shift); + min = -max; + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + val = items[j]; + out[pos] = val <= min ? 0 : val >= max ? 255 : val + offset >> shift; + pos += componentsCount; } - - this.quantTables[t][i] = data.get16(); - count += 2; + } else { + var isSigned = components[c].isSigned; + var items = transformedTiles[c].items; + if (isSigned) { + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + out[pos] = items[j]; + pos += componentsCount; + } + } else { + shift = components[c].precision - 8; + offset = (128 << shift) + 0.5; + var precisionMax = Math.pow(2, components[c].precision) - 1; + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + val = items[j]; + out[pos] = Math.max(Math.min(val + offset, precisionMax), 0); + pos += componentsCount; + } + } + } } - - jpeg.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); + } + resultImages.push(result); } - } - - if (count !== length) { - throw new Error("ERROR: Quantization table error [count!=Lq]"); - } - - return 1; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.QuantizationTable; -} - -},{"./data-stream.js":7,"./utils.js":15}],13:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * 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. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; - - -/*** Constructor ***/ -jpeg.lossless.ScanComponent = jpeg.lossless.ScanComponent || function () { - this.acTabSel = 0; // AC table selector - this.dcTabSel = 0; // DC table selector - this.scanCompSel = 0; // Scan component selector -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.ScanComponent; -} - -},{}],14:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * 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. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.ScanComponent = jpeg.lossless.ScanComponent || ((typeof require !== 'undefined') ? require('./scan-component.js') : null); - - -/*** Constructor ***/ -jpeg.lossless.ScanHeader = jpeg.lossless.ScanHeader || function () { - this.ah = 0; - this.al = 0; - this.numComp = 0; // Number of components in the scan - this.selection = 0; // Start of spectral or predictor selection - this.spectralEnd = 0; // End of spectral selection - this.components = []; -}; - - -/*** Prototype Methods ***/ - -jpeg.lossless.ScanHeader.prototype.read = function(data) { - /*jslint bitwise: true */ - - var count = 0, length, i, temp; - - length = data.get16(); - count += 2; - - this.numComp = data.get8(); - count+=1; - - for (i = 0; i < this.numComp; i+=1) { - this.components[i] = new jpeg.lossless.ScanComponent(); - - if (count > length) { - throw new Error("ERROR: scan header format error"); + return resultImages; + } + function initializeTile(context, tileIndex) { + var siz = context.SIZ; + var componentsCount = siz.Csiz; + var tile = context.tiles[tileIndex]; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var qcdOrQcc = context.currentTile.QCC[c] !== void 0 ? context.currentTile.QCC[c] : context.currentTile.QCD; + component.quantizationParameters = qcdOrQcc; + var codOrCoc = context.currentTile.COC[c] !== void 0 ? context.currentTile.COC[c] : context.currentTile.COD; + component.codingStyleParameters = codOrCoc; } - - this.components[i].scanCompSel = data.get8(); - count+=1; - - temp = data.get8(); - count+=1; - - this.components[i].dcTabSel = (temp >> 4); - this.components[i].acTabSel = (temp & 0x0F); - } - - this.selection = data.get8(); - count+=1; - - this.spectralEnd = data.get8(); - count+=1; - - temp = data.get8(); - this.ah = (temp >> 4); - this.al = (temp & 0x0F); - count+=1; - - if (count !== length) { - throw new Error("ERROR: scan header format error [count!=Ns]"); - } - - return 1; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.ScanHeader; -} - -},{"./data-stream.js":7,"./scan-component.js":13}],15:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * 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. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; - - -/*** Constructor ***/ -jpeg.lossless.Utils = jpeg.lossless.Utils || {}; - - -/*** Static methods ***/ - -// http://stackoverflow.com/questions/966225/how-can-i-create-a-two-dimensional-array-in-javascript -jpeg.lossless.Utils.createArray = function (length) { - var arr = new Array(length || 0), - i = length; - - if (arguments.length > 1) { - var args = Array.prototype.slice.call(arguments, 1); - while(i--) arr[length-1 - i] = jpeg.lossless.Utils.createArray.apply(this, args); - } - - return arr; -}; - - -// http://stackoverflow.com/questions/18638900/javascript-crc32 -jpeg.lossless.Utils.makeCRCTable = function(){ - var c; - var crcTable = []; - for(var n =0; n < 256; n++){ - c = n; - for(var k =0; k < 8; k++){ - c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + tile.codingStyleDefaultParameters = context.currentTile.COD; + } + var TagTree = function TagTreeClosure() { + function TagTree2(width, height) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i2 = 0; i2 < levelsLength; i2++) { + var level = { + width, + height, + items: [] + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } } - crcTable[n] = c; - } - return crcTable; -}; - -jpeg.lossless.Utils.crc32 = function(dataView) { - var uint8view = new Uint8Array(dataView.buffer); - var crcTable = jpeg.lossless.Utils.crcTable || (jpeg.lossless.Utils.crcTable = jpeg.lossless.Utils.makeCRCTable()); - var crc = 0 ^ (-1); - - for (var i = 0; i < uint8view.length; i++ ) { - crc = (crc >>> 8) ^ crcTable[(crc ^ uint8view[i]) & 0xFF]; + TagTree2.prototype = { + reset: function TagTree_reset(i2, j) { + var currentLevel = 0, value = 0, level; + while (currentLevel < this.levels.length) { + level = this.levels[currentLevel]; + var index = i2 + j * level.width; + if (level.items[index] !== void 0) { + value = level.items[index]; + break; + } + level.index = index; + i2 >>= 1; + j >>= 1; + currentLevel++; + } + currentLevel--; + level = this.levels[currentLevel]; + level.items[level.index] = value; + this.currentLevel = currentLevel; + delete this.value; + }, + incrementValue: function TagTree_incrementValue() { + var level = this.levels[this.currentLevel]; + level.items[level.index]++; + }, + nextLevel: function TagTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + currentLevel--; + if (currentLevel < 0) { + this.value = value; + return false; + } + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return TagTree2; + }(); + var InclusionTree = function InclusionTreeClosure() { + function InclusionTree2(width, height) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i2 = 0; i2 < levelsLength; i2++) { + var items = new Uint8Array(width * height); + var status = new Uint8Array(width * height); + for (var j = 0, jj = items.length; j < jj; j++) { + items[j] = 0; + status[j] = 0; + } + var level = { + width, + height, + items, + status + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } + } + InclusionTree2.prototype = { + reset: function InclusionTree_reset(i2, j, stopValue) { + this.currentStopValue = stopValue; + var currentLevel = 0; + while (currentLevel < this.levels.length) { + var level = this.levels[currentLevel]; + var index = i2 + j * level.width; + level.index = index; + i2 >>= 1; + j >>= 1; + currentLevel++; + } + this.currentLevel = this.levels.length - 1; + this.minValue = this.levels[this.currentLevel].items[0]; + return; + }, + incrementValue: function InclusionTree_incrementValue() { + var level = this.levels[this.currentLevel]; + level.items[level.index] = level.items[level.index] + 1; + if (level.items[level.index] > this.minValue) { + this.minValue = level.items[level.index]; + } + }, + nextLevel: function InclusionTree_nextLevel() { + var currentLevel = this.currentLevel; + currentLevel--; + if (currentLevel < 0) { + return false; + } else { + this.currentLevel = currentLevel; + var level = this.levels[currentLevel]; + if (level.items[level.index] < this.minValue) { + level.items[level.index] = this.minValue; + } else if (level.items[level.index] > this.minValue) { + this.minValue = level.items[level.index]; + } + return true; + } + }, + isLeaf: function InclusionTree_isLeaf() { + return this.currentLevel === 0; + }, + isAboveThreshold: function InclusionTree_isAboveThreshold() { + var levelindex = this.currentLevel; + var level = this.levels[levelindex]; + return level.items[level.index] > this.currentStopValue; + }, + isKnown: function InclusionTree_isKnown() { + var levelindex = this.currentLevel; + var level = this.levels[levelindex]; + return level.status[level.index] > 0; + }, + setKnown: function InclusionTree_setKnown() { + var levelindex = this.currentLevel; + var level = this.levels[levelindex]; + level.status[level.index] = 1; + return; + } + }; + return InclusionTree2; + }(); + var BitModel = function BitModelClosure() { + var UNIFORM_CONTEXT = 17; + var RUNLENGTH_CONTEXT = 18; + var LLAndLHContextsLabel = new Uint8Array([ + 0, + 5, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 1, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8 + ]); + var HLContextLabel = new Uint8Array([ + 0, + 3, + 4, + 0, + 5, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 1, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8 + ]); + var HHContextLabel = new Uint8Array([ + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 3, + 4, + 5, + 0, + 4, + 5, + 5, + 0, + 5, + 5, + 5, + 0, + 0, + 0, + 0, + 0, + 6, + 7, + 7, + 0, + 7, + 7, + 7, + 0, + 7, + 7, + 7, + 0, + 0, + 0, + 0, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8 + ]); + function BitModel2(width, height, subband, zeroBitPlanes, mb) { + this.width = width; + this.height = height; + this.contextLabelTable = subband === "HH" ? HHContextLabel : subband === "HL" ? HLContextLabel : LLAndLHContextsLabel; + var coefficientCount = width * height; + this.neighborsSignificance = new Uint8Array(coefficientCount); + this.coefficentsSign = new Uint8Array(coefficientCount); + this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount); + this.processingFlags = new Uint8Array(coefficientCount); + var bitsDecoded = new Uint8Array(coefficientCount); + if (zeroBitPlanes !== 0) { + for (var i2 = 0; i2 < coefficientCount; i2++) { + bitsDecoded[i2] = zeroBitPlanes; + } + } + this.bitsDecoded = bitsDecoded; + this.reset(); + } + BitModel2.prototype = { + setDecoder: function BitModel_setDecoder(decoder) { + this.decoder = decoder; + }, + reset: function BitModel_reset() { + this.contexts = new Int8Array(19); + this.contexts[0] = 4 << 1 | 0; + this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0; + this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0; + }, + setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) { + var neighborsSignificance = this.neighborsSignificance; + var width = this.width, height = this.height; + var left = column > 0; + var right = column + 1 < width; + var i2; + if (row > 0) { + i2 = index - width; + if (left) { + neighborsSignificance[i2 - 1] += 16; + } + if (right) { + neighborsSignificance[i2 + 1] += 16; + } + neighborsSignificance[i2] += 4; + } + if (row + 1 < height) { + i2 = index + width; + if (left) { + neighborsSignificance[i2 - 1] += 16; + } + if (right) { + neighborsSignificance[i2 + 1] += 16; + } + neighborsSignificance[i2] += 4; + } + if (left) { + neighborsSignificance[index - 1] += 1; + } + if (right) { + neighborsSignificance[index + 1] += 1; + } + neighborsSignificance[index] |= 128; + }, + runSignificancePropogationPass: function BitModel_runSignificancePropogationPass() { + var decoder = this.decoder; + var width = this.width, height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var neighborsSignificance = this.neighborsSignificance; + var processingFlags = this.processingFlags; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processedInverseMask = ~1; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + for (var i0 = 0; i0 < height; i0 += 4) { + for (var j = 0; j < width; j++) { + var index = i0 * width + j; + for (var i1 = 0; i1 < 4; i1++, index += width) { + var i2 = i0 + i1; + if (i2 >= height) { + break; + } + processingFlags[index] &= processedInverseMask; + if (coefficentsMagnitude[index] || !neighborsSignificance[index]) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision) { + var sign = this.decodeSignBit(i2, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i2, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + decodeSignBit: function BitModel_decodeSignBit(row, column, index) { + var width = this.width, height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contribution, sign0, sign1, significance1; + var contextLabel, decoded; + significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0; + if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { + sign1 = coefficentsSign[index + 1]; + if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign1 - sign0; + } else { + contribution = 1 - sign1 - sign1; + } + } else if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign0 - sign0; + } else { + contribution = 0; + } + var horizontalContribution = 3 * contribution; + significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0; + if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { + sign1 = coefficentsSign[index + width]; + if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign1 - sign0 + horizontalContribution; + } else { + contribution = 1 - sign1 - sign1 + horizontalContribution; + } + } else if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign0 - sign0 + horizontalContribution; + } else { + contribution = horizontalContribution; + } + if (contribution >= 0) { + contextLabel = 9 + contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel); + } else { + contextLabel = 9 - contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; + } + return decoded; + }, + runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() { + var decoder = this.decoder; + var width = this.width, height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var neighborsSignificance = this.neighborsSignificance; + var contexts = this.contexts; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var length = width * height; + var width4 = width * 4; + for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { + indexNext = Math.min(length, index0 + width4); + for (var j = 0; j < width; j++) { + for (var index = index0 + j; index < indexNext; index += width) { + if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = 16; + if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { + processingFlags[index] ^= firstMagnitudeBitMask; + var significance = neighborsSignificance[index] & 127; + contextLabel = significance === 0 ? 15 : 14; + } + var bit = decoder.readBit(contexts, contextLabel); + coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit; + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + runCleanupPass: function BitModel_runCleanupPass() { + var decoder = this.decoder; + var width = this.width, height = this.height; + var neighborsSignificance = this.neighborsSignificance; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var oneRowDown = width; + var twoRowsDown = width * 2; + var threeRowsDown = width * 3; + var iNext; + for (var i0 = 0; i0 < height; i0 = iNext) { + iNext = Math.min(i0 + 4, height); + var indexBase = i0 * width; + var checkAllEmpty = i0 + 3 < height; + for (var j = 0; j < width; j++) { + var index0 = indexBase + j; + var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0; + var i1 = 0, index = index0; + var i2 = i0, sign; + if (allEmpty) { + var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT); + if (!hasSignificantCoefficent) { + bitsDecoded[index0]++; + bitsDecoded[index0 + oneRowDown]++; + bitsDecoded[index0 + twoRowsDown]++; + bitsDecoded[index0 + threeRowsDown]++; + continue; + } + i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (i1 !== 0) { + i2 = i0 + i1; + index += i1 * width; + } + sign = this.decodeSignBit(i2, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i2, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + index = index0; + for (var i22 = i0; i22 <= i2; i22++, index += width) { + bitsDecoded[index]++; + } + i1++; + } + for (i2 = i0 + i1; i2 < iNext; i2++, index += width) { + if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision === 1) { + sign = this.decodeSignBit(i2, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i2, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + } + } + } + }, + checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { + var decoder = this.decoder; + var contexts = this.contexts; + var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (symbol !== 10) { + throw new Error("JPX Error: Invalid segmentation symbol"); + } + } + }; + return BitModel2; + }(); + var Transform = function TransformClosure() { + function Transform2() { + } + Transform2.prototype.calculate = function transformCalculate(subbands, u0, v0) { + var ll = subbands[0]; + for (var i2 = 1, ii = subbands.length; i2 < ii; i2++) { + ll = this.iterate(ll, subbands[i2], u0, v0); + } + return ll; + }; + Transform2.prototype.extend = function extend(buffer2, offset, size) { + var i1 = offset - 1, j1 = offset + 1; + var i2 = offset + size - 2, j2 = offset + size; + buffer2[i1--] = buffer2[j1++]; + buffer2[j2++] = buffer2[i2--]; + buffer2[i1--] = buffer2[j1++]; + buffer2[j2++] = buffer2[i2--]; + buffer2[i1--] = buffer2[j1++]; + buffer2[j2++] = buffer2[i2--]; + buffer2[i1] = buffer2[j1]; + buffer2[j2] = buffer2[i2]; + }; + Transform2.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) { + var llWidth = ll.width, llHeight = ll.height, llItems = ll.items; + var width = hl_lh_hh.width; + var height = hl_lh_hh.height; + var items = hl_lh_hh.items; + var i2, j, k, l, u, v; + for (k = 0, i2 = 0; i2 < llHeight; i2++) { + l = i2 * 2 * width; + for (j = 0; j < llWidth; j++, k++, l += 2) { + items[l] = llItems[k]; + } + } + llItems = ll.items = null; + var bufferPadding = 4; + var rowBuffer = new Float32Array(width + 2 * bufferPadding); + if (width === 1) { + if ((u0 & 1) !== 0) { + for (v = 0, k = 0; v < height; v++, k += width) { + items[k] *= 0.5; + } + } + } else { + for (v = 0, k = 0; v < height; v++, k += width) { + rowBuffer.set(items.subarray(k, k + width), bufferPadding); + this.extend(rowBuffer, bufferPadding, width); + this.filter(rowBuffer, bufferPadding, width); + items.set( + rowBuffer.subarray(bufferPadding, bufferPadding + width), + k + ); + } + } + var numBuffers = 16; + var colBuffers = []; + for (i2 = 0; i2 < numBuffers; i2++) { + colBuffers.push(new Float32Array(height + 2 * bufferPadding)); + } + var b, currentBuffer = 0; + ll = bufferPadding + height; + if (height === 1) { + if ((v0 & 1) !== 0) { + for (u = 0; u < width; u++) { + items[u] *= 0.5; + } + } + } else { + for (u = 0; u < width; u++) { + if (currentBuffer === 0) { + numBuffers = Math.min(width - u, numBuffers); + for (k = u, l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + colBuffers[b][l] = items[k + b]; + } + } + currentBuffer = numBuffers; + } + currentBuffer--; + var buffer2 = colBuffers[currentBuffer]; + this.extend(buffer2, bufferPadding, height); + this.filter(buffer2, bufferPadding, height); + if (currentBuffer === 0) { + k = u - numBuffers + 1; + for (l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + items[k + b] = colBuffers[b][l]; + } + } + } + } + } + return { + width, + height, + items + }; + }; + return Transform2; + }(); + var IrreversibleTransform = function IrreversibleTransformClosure() { + function IrreversibleTransform2() { + Transform.call(this); + } + IrreversibleTransform2.prototype = Object.create(Transform.prototype); + IrreversibleTransform2.prototype.filter = function irreversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n, current, next; + var alpha = -1.586134342059924; + var beta = -0.052980118572961; + var gamma = 0.882911075530934; + var delta = 0.443506852043971; + var K = 1.230174104914001; + var K_ = 1 / K; + j = offset - 3; + for (n = len + 4; n--; j += 2) { + x[j] *= K_; + } + j = offset - 2; + current = delta * x[j - 1]; + for (n = len + 3; n--; j += 2) { + next = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + if (n--) { + j += 2; + current = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + } else { + break; + } + } + j = offset - 1; + current = gamma * x[j - 1]; + for (n = len + 2; n--; j += 2) { + next = gamma * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = gamma * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + j = offset; + current = beta * x[j - 1]; + for (n = len + 1; n--; j += 2) { + next = beta * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = beta * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + if (len !== 0) { + j = offset + 1; + current = alpha * x[j - 1]; + for (n = len; n--; j += 2) { + next = alpha * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = alpha * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + } + }; + return IrreversibleTransform2; + }(); + var ReversibleTransform = function ReversibleTransformClosure() { + function ReversibleTransform2() { + Transform.call(this); + } + ReversibleTransform2.prototype = Object.create(Transform.prototype); + ReversibleTransform2.prototype.filter = function reversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n; + for (j = offset, n = len + 1; n--; j += 2) { + x[j] -= x[j - 1] + x[j + 1] + 2 >> 2; + } + for (j = offset + 1, n = len; n--; j += 2) { + x[j] += x[j - 1] + x[j + 1] >> 1; + } + }; + return ReversibleTransform2; + }(); + return JpxImage3; + }(); + var ArithmeticDecoder = function ArithmeticDecoderClosure() { + var QeTable = [ + { qe: 22017, nmps: 1, nlps: 1, switchFlag: 1 }, + { qe: 13313, nmps: 2, nlps: 6, switchFlag: 0 }, + { qe: 6145, nmps: 3, nlps: 9, switchFlag: 0 }, + { qe: 2753, nmps: 4, nlps: 12, switchFlag: 0 }, + { qe: 1313, nmps: 5, nlps: 29, switchFlag: 0 }, + { qe: 545, nmps: 38, nlps: 33, switchFlag: 0 }, + { qe: 22017, nmps: 7, nlps: 6, switchFlag: 1 }, + { qe: 21505, nmps: 8, nlps: 14, switchFlag: 0 }, + { qe: 18433, nmps: 9, nlps: 14, switchFlag: 0 }, + { qe: 14337, nmps: 10, nlps: 14, switchFlag: 0 }, + { qe: 12289, nmps: 11, nlps: 17, switchFlag: 0 }, + { qe: 9217, nmps: 12, nlps: 18, switchFlag: 0 }, + { qe: 7169, nmps: 13, nlps: 20, switchFlag: 0 }, + { qe: 5633, nmps: 29, nlps: 21, switchFlag: 0 }, + { qe: 22017, nmps: 15, nlps: 14, switchFlag: 1 }, + { qe: 21505, nmps: 16, nlps: 14, switchFlag: 0 }, + { qe: 20737, nmps: 17, nlps: 15, switchFlag: 0 }, + { qe: 18433, nmps: 18, nlps: 16, switchFlag: 0 }, + { qe: 14337, nmps: 19, nlps: 17, switchFlag: 0 }, + { qe: 13313, nmps: 20, nlps: 18, switchFlag: 0 }, + { qe: 12289, nmps: 21, nlps: 19, switchFlag: 0 }, + { qe: 10241, nmps: 22, nlps: 19, switchFlag: 0 }, + { qe: 9217, nmps: 23, nlps: 20, switchFlag: 0 }, + { qe: 8705, nmps: 24, nlps: 21, switchFlag: 0 }, + { qe: 7169, nmps: 25, nlps: 22, switchFlag: 0 }, + { qe: 6145, nmps: 26, nlps: 23, switchFlag: 0 }, + { qe: 5633, nmps: 27, nlps: 24, switchFlag: 0 }, + { qe: 5121, nmps: 28, nlps: 25, switchFlag: 0 }, + { qe: 4609, nmps: 29, nlps: 26, switchFlag: 0 }, + { qe: 4353, nmps: 30, nlps: 27, switchFlag: 0 }, + { qe: 2753, nmps: 31, nlps: 28, switchFlag: 0 }, + { qe: 2497, nmps: 32, nlps: 29, switchFlag: 0 }, + { qe: 2209, nmps: 33, nlps: 30, switchFlag: 0 }, + { qe: 1313, nmps: 34, nlps: 31, switchFlag: 0 }, + { qe: 1089, nmps: 35, nlps: 32, switchFlag: 0 }, + { qe: 673, nmps: 36, nlps: 33, switchFlag: 0 }, + { qe: 545, nmps: 37, nlps: 34, switchFlag: 0 }, + { qe: 321, nmps: 38, nlps: 35, switchFlag: 0 }, + { qe: 273, nmps: 39, nlps: 36, switchFlag: 0 }, + { qe: 133, nmps: 40, nlps: 37, switchFlag: 0 }, + { qe: 73, nmps: 41, nlps: 38, switchFlag: 0 }, + { qe: 37, nmps: 42, nlps: 39, switchFlag: 0 }, + { qe: 21, nmps: 43, nlps: 40, switchFlag: 0 }, + { qe: 9, nmps: 44, nlps: 41, switchFlag: 0 }, + { qe: 5, nmps: 45, nlps: 42, switchFlag: 0 }, + { qe: 1, nmps: 45, nlps: 43, switchFlag: 0 }, + { qe: 22017, nmps: 46, nlps: 46, switchFlag: 0 } + ]; + function ArithmeticDecoder2(data, start, end) { + this.data = data; + this.bp = start; + this.dataEnd = end; + this.chigh = data[start]; + this.clow = 0; + this.byteIn(); + this.chigh = this.chigh << 7 & 65535 | this.clow >> 9 & 127; + this.clow = this.clow << 7 & 65535; + this.ct -= 7; + this.a = 32768; + } + ArithmeticDecoder2.prototype = { + // C.3.4 Compressed data input (BYTEIN) + byteIn: function ArithmeticDecoder_byteIn() { + var data = this.data; + var bp = this.bp; + if (data[bp] === 255) { + var b1 = data[bp + 1]; + if (b1 > 143) { + this.clow += 65280; + this.ct = 8; + } else { + bp++; + this.clow += data[bp] << 9; + this.ct = 7; + this.bp = bp; + } + } else { + bp++; + this.clow += bp < this.dataEnd ? data[bp] << 8 : 65280; + this.ct = 8; + this.bp = bp; + } + if (this.clow > 65535) { + this.chigh += this.clow >> 16; + this.clow &= 65535; + } + }, + // C.3.2 Decoding a decision (DECODE) + readBit: function ArithmeticDecoder_readBit(contexts, pos) { + var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1; + var qeTableIcx = QeTable[cx_index]; + var qeIcx = qeTableIcx.qe; + var d; + var a = this.a - qeIcx; + if (this.chigh < qeIcx) { + if (a < qeIcx) { + a = qeIcx; + d = cx_mps; + cx_index = qeTableIcx.nmps; + } else { + a = qeIcx; + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } + } else { + this.chigh -= qeIcx; + if ((a & 32768) !== 0) { + this.a = a; + return cx_mps; + } + if (a < qeIcx) { + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } else { + d = cx_mps; + cx_index = qeTableIcx.nmps; + } + } + do { + if (this.ct === 0) { + this.byteIn(); + } + a <<= 1; + this.chigh = this.chigh << 1 & 65535 | this.clow >> 15 & 1; + this.clow = this.clow << 1 & 65535; + this.ct--; + } while ((a & 32768) === 0); + this.a = a; + contexts[pos] = cx_index << 1 | cx_mps; + return d; + } + }; + return ArithmeticDecoder2; + }(); + var globalScope2 = typeof window === "undefined" ? exports2 : window; + if (!globalScope2.PDFJS) { + globalScope2.PDFJS = {}; } - - return (crc ^ (-1)) >>> 0; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.Utils; -} - -},{}],16:[function(require,module,exports){ -// Top level file is just a mixin of submodules & constants -'use strict'; - -var assign = require('./lib/utils/common').assign; - -var deflate = require('./lib/deflate'); -var inflate = require('./lib/inflate'); -var constants = require('./lib/zlib/constants'); - -var pako = {}; - -assign(pako, deflate, inflate, constants); - -module.exports = pako; - -},{"./lib/deflate":17,"./lib/inflate":18,"./lib/utils/common":19,"./lib/zlib/constants":22}],17:[function(require,module,exports){ -'use strict'; - - -var zlib_deflate = require('./zlib/deflate'); -var utils = require('./utils/common'); -var strings = require('./utils/strings'); -var msg = require('./zlib/messages'); -var ZStream = require('./zlib/zstream'); - -var toString = Object.prototype.toString; - -/* Public constants ==========================================================*/ -/* ===========================================================================*/ - -var Z_NO_FLUSH = 0; -var Z_FINISH = 4; - -var Z_OK = 0; -var Z_STREAM_END = 1; -var Z_SYNC_FLUSH = 2; - -var Z_DEFAULT_COMPRESSION = -1; - -var Z_DEFAULT_STRATEGY = 0; - -var Z_DEFLATED = 8; - -/* ===========================================================================*/ - - -/** - * class Deflate - * - * Generic JS-style wrapper for zlib calls. If you don't need - * streaming behaviour - use more simple functions: [[deflate]], - * [[deflateRaw]] and [[gzip]]. - **/ - -/* internal - * Deflate.chunks -> Array - * - * Chunks of output data, if [[Deflate#onData]] not overridden. - **/ - -/** - * Deflate.result -> Uint8Array|Array - * - * Compressed result, generated by default [[Deflate#onData]] - * and [[Deflate#onEnd]] handlers. Filled after you push last chunk - * (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you - * push a chunk with explicit flush (call [[Deflate#push]] with - * `Z_SYNC_FLUSH` param). - **/ - -/** - * Deflate.err -> Number - * - * Error code after deflate finished. 0 (Z_OK) on success. - * You will not need it in real life, because deflate errors - * are possible only on wrong options or bad `onData` / `onEnd` - * custom handlers. - **/ - -/** - * Deflate.msg -> String - * - * Error message, if [[Deflate.err]] != 0 - **/ - - -/** - * new Deflate(options) - * - options (Object): zlib deflate options. - * - * Creates new deflator instance with specified params. Throws exception - * on bad params. Supported options: - * - * - `level` - * - `windowBits` - * - `memLevel` - * - `strategy` - * - `dictionary` - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information on these. - * - * Additional options, for internal needs: - * - * - `chunkSize` - size of generated data chunks (16K by default) - * - `raw` (Boolean) - do raw deflate - * - `gzip` (Boolean) - create gzip wrapper - * - `to` (String) - if equal to 'string', then result will be "binary string" - * (each char code [0..255]) - * - `header` (Object) - custom header for gzip - * - `text` (Boolean) - true if compressed data believed to be text - * - `time` (Number) - modification time, unix timestamp - * - `os` (Number) - operation system code - * - `extra` (Array) - array of bytes with extra data (max 65536) - * - `name` (String) - file name (binary string) - * - `comment` (String) - comment (binary string) - * - `hcrc` (Boolean) - true if header crc should be added - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9]) - * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]); - * - * var deflate = new pako.Deflate({ level: 3}); - * - * deflate.push(chunk1, false); - * deflate.push(chunk2, true); // true -> last chunk - * - * if (deflate.err) { throw new Error(deflate.err); } - * - * console.log(deflate.result); - * ``` - **/ -function Deflate(options) { - if (!(this instanceof Deflate)) return new Deflate(options); - - this.options = utils.assign({ - level: Z_DEFAULT_COMPRESSION, - method: Z_DEFLATED, - chunkSize: 16384, - windowBits: 15, - memLevel: 8, - strategy: Z_DEFAULT_STRATEGY, - to: '' - }, options || {}); - - var opt = this.options; - - if (opt.raw && (opt.windowBits > 0)) { - opt.windowBits = -opt.windowBits; - } - - else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) { - opt.windowBits += 16; - } - - this.err = 0; // error code, if happens (0 = Z_OK) - this.msg = ''; // error message - this.ended = false; // used to avoid multiple onEnd() calls - this.chunks = []; // chunks of compressed data - - this.strm = new ZStream(); - this.strm.avail_out = 0; - - var status = zlib_deflate.deflateInit2( - this.strm, - opt.level, - opt.method, - opt.windowBits, - opt.memLevel, - opt.strategy - ); - - if (status !== Z_OK) { - throw new Error(msg[status]); - } - - if (opt.header) { - zlib_deflate.deflateSetHeader(this.strm, opt.header); - } - - if (opt.dictionary) { - var dict; - // Convert data if needed - if (typeof opt.dictionary === 'string') { - // If we need to compress text, change encoding to utf8. - dict = strings.string2buf(opt.dictionary); - } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') { - dict = new Uint8Array(opt.dictionary); - } else { - dict = opt.dictionary; + var PDFJS = PDFJS || {}; + PDFJS.VERBOSITY_LEVELS = { + errors: 0, + warnings: 1, + infos: 5 + }; + var OPS = PDFJS.OPS = { + // Intentionally start from 1 so it is easy to spot bad operators that will be + // 0's. + dependency: 1, + setLineWidth: 2, + setLineCap: 3, + setLineJoin: 4, + setMiterLimit: 5, + setDash: 6, + setRenderingIntent: 7, + setFlatness: 8, + setGState: 9, + save: 10, + restore: 11, + transform: 12, + moveTo: 13, + lineTo: 14, + curveTo: 15, + curveTo2: 16, + curveTo3: 17, + closePath: 18, + rectangle: 19, + stroke: 20, + closeStroke: 21, + fill: 22, + eoFill: 23, + fillStroke: 24, + eoFillStroke: 25, + closeFillStroke: 26, + closeEOFillStroke: 27, + endPath: 28, + clip: 29, + eoClip: 30, + beginText: 31, + endText: 32, + setCharSpacing: 33, + setWordSpacing: 34, + setHScale: 35, + setLeading: 36, + setFont: 37, + setTextRenderingMode: 38, + setTextRise: 39, + moveText: 40, + setLeadingMoveText: 41, + setTextMatrix: 42, + nextLine: 43, + showText: 44, + showSpacedText: 45, + nextLineShowText: 46, + nextLineSetSpacingShowText: 47, + setCharWidth: 48, + setCharWidthAndBounds: 49, + setStrokeColorSpace: 50, + setFillColorSpace: 51, + setStrokeColor: 52, + setStrokeColorN: 53, + setFillColor: 54, + setFillColorN: 55, + setStrokeGray: 56, + setFillGray: 57, + setStrokeRGBColor: 58, + setFillRGBColor: 59, + setStrokeCMYKColor: 60, + setFillCMYKColor: 61, + shadingFill: 62, + beginInlineImage: 63, + beginImageData: 64, + endInlineImage: 65, + paintXObject: 66, + markPoint: 67, + markPointProps: 68, + beginMarkedContent: 69, + beginMarkedContentProps: 70, + endMarkedContent: 71, + beginCompat: 72, + endCompat: 73, + paintFormXObjectBegin: 74, + paintFormXObjectEnd: 75, + beginGroup: 76, + endGroup: 77, + beginAnnotations: 78, + endAnnotations: 79, + beginAnnotation: 80, + endAnnotation: 81, + paintJpegXObject: 82, + paintImageMaskXObject: 83, + paintImageMaskXObjectGroup: 84, + paintImageXObject: 85, + paintInlineImageXObject: 86, + paintInlineImageXObjectGroup: 87, + paintImageXObjectRepeat: 88, + paintImageMaskXObjectRepeat: 89, + paintSolidColorImageMask: 90, + constructPath: 91 + }; + function info(msg) { + if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.infos) { + console.log("Info: " + msg); + } } - - status = zlib_deflate.deflateSetDictionary(this.strm, dict); - - if (status !== Z_OK) { - throw new Error(msg[status]); + function warn(msg) { + if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.warnings) { + console.log("Warning: " + msg); + } } - - this._dict_set = true; - } -} - -/** - * Deflate#push(data[, mode]) -> Boolean - * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be - * converted to utf8 byte sequence. - * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. - * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH. - * - * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with - * new compressed chunks. Returns `true` on success. The last data block must have - * mode Z_FINISH (or `true`). That will flush internal pending buffers and call - * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you - * can use mode Z_SYNC_FLUSH, keeping the compression context. - * - * On fail call [[Deflate#onEnd]] with error code and return false. - * - * We strongly recommend to use `Uint8Array` on input for best speed (output - * array format is detected automatically). Also, don't skip last param and always - * use the same type in your code (boolean or number). That will improve JS speed. - * - * For regular `Array`-s make sure all elements are [0..255]. - * - * ##### Example - * - * ```javascript - * push(chunk, false); // push one of data chunks - * ... - * push(chunk, true); // push last chunk - * ``` - **/ -Deflate.prototype.push = function (data, mode) { - var strm = this.strm; - var chunkSize = this.options.chunkSize; - var status, _mode; - - if (this.ended) { return false; } - - _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH); - - // Convert data if needed - if (typeof data === 'string') { - // If we need to compress text, change encoding to utf8. - strm.input = strings.string2buf(data); - } else if (toString.call(data) === '[object ArrayBuffer]') { - strm.input = new Uint8Array(data); - } else { - strm.input = data; - } - - strm.next_in = 0; - strm.avail_in = strm.input.length; - - do { - if (strm.avail_out === 0) { - strm.output = new utils.Buf8(chunkSize); - strm.next_out = 0; - strm.avail_out = chunkSize; + function error(msg) { + if (arguments.length > 1) { + var logArguments = ["Error:"]; + logArguments.push.apply(logArguments, arguments); + console.log.apply(console, logArguments); + msg = [].join.call(arguments, " "); + } else { + console.log("Error: " + msg); + } + console.log(backtrace()); + UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown); + throw new Error(msg); } - status = zlib_deflate.deflate(strm, _mode); /* no bad return value */ - - if (status !== Z_STREAM_END && status !== Z_OK) { - this.onEnd(status); - this.ended = true; - return false; + function backtrace() { + try { + throw new Error(); + } catch (e) { + return e.stack ? e.stack.split("\n").slice(2).join("\n") : ""; + } } - if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) { - if (this.options.to === 'string') { - this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); - } else { - this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + var UNSUPPORTED_FEATURES = PDFJS.UNSUPPORTED_FEATURES = { + unknown: "unknown", + forms: "forms", + javaScript: "javaScript", + smask: "smask", + shadingPattern: "shadingPattern", + font: "font" + }; + var UnsupportedManager = PDFJS.UnsupportedManager = function UnsupportedManagerClosure() { + var listeners = []; + return { + listen: function(cb) { + listeners.push(cb); + }, + notify: function(featureId) { + warn('Unsupported feature "' + featureId + '"'); + for (var i2 = 0, ii = listeners.length; i2 < ii; i2++) { + listeners[i2](featureId); + } + } + }; + }(); + function isValidUrl(url, allowRelative) { + if (!url) { + return false; + } + var protocol = /^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url); + if (!protocol) { + return allowRelative; + } + protocol = protocol[0].toLowerCase(); + switch (protocol) { + case "http": + case "https": + case "ftp": + case "mailto": + case "tel": + return true; + default: + return false; } } - } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END); - - // Finalize on the last chunk. - if (_mode === Z_FINISH) { - status = zlib_deflate.deflateEnd(this.strm); - this.onEnd(status); - this.ended = true; - return status === Z_OK; - } - - // callback interim results if Z_SYNC_FLUSH. - if (_mode === Z_SYNC_FLUSH) { - this.onEnd(Z_OK); - strm.avail_out = 0; - return true; - } - - return true; -}; - - -/** - * Deflate#onData(chunk) -> Void - * - chunk (Uint8Array|Array|String): output data. Type of array depends - * on js engine support. When string output requested, each chunk - * will be string. - * - * By default, stores data blocks in `chunks[]` property and glue - * those in `onEnd`. Override this handler, if you need another behaviour. - **/ -Deflate.prototype.onData = function (chunk) { - this.chunks.push(chunk); -}; - - -/** - * Deflate#onEnd(status) -> Void - * - status (Number): deflate status. 0 (Z_OK) on success, - * other if not. - * - * Called once after you tell deflate that the input stream is - * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH) - * or if an error happened. By default - join collected chunks, - * free memory and fill `results` / `err` properties. - **/ -Deflate.prototype.onEnd = function (status) { - // On success - join - if (status === Z_OK) { - if (this.options.to === 'string') { - this.result = this.chunks.join(''); - } else { - this.result = utils.flattenChunks(this.chunks); + PDFJS.isValidUrl = isValidUrl; + function shadow(obj, prop, value) { + Object.defineProperty(obj, prop, { + value, + enumerable: true, + configurable: true, + writable: false + }); + return value; } - } - this.chunks = []; - this.err = status; - this.msg = this.strm.msg; -}; - - -/** - * deflate(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to compress. - * - options (Object): zlib deflate options. - * - * Compress `data` with deflate algorithm and `options`. - * - * Supported options are: - * - * - level - * - windowBits - * - memLevel - * - strategy - * - dictionary - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information on these. - * - * Sugar (options): - * - * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify - * negative windowBits implicitly. - * - `to` (String) - if equal to 'string', then result will be "binary string" - * (each char code [0..255]) - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , data = Uint8Array([1,2,3,4,5,6,7,8,9]); - * - * console.log(pako.deflate(data)); - * ``` - **/ -function deflate(input, options) { - var deflator = new Deflate(options); - - deflator.push(input, true); - - // That will never happens, if you don't cheat with options :) - if (deflator.err) { throw deflator.msg || msg[deflator.err]; } - - return deflator.result; -} - - -/** - * deflateRaw(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to compress. - * - options (Object): zlib deflate options. - * - * The same as [[deflate]], but creates raw data, without wrapper - * (header and adler32 crc). - **/ -function deflateRaw(input, options) { - options = options || {}; - options.raw = true; - return deflate(input, options); -} - - -/** - * gzip(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to compress. - * - options (Object): zlib deflate options. - * - * The same as [[deflate]], but create gzip wrapper instead of - * deflate one. - **/ -function gzip(input, options) { - options = options || {}; - options.gzip = true; - return deflate(input, options); -} - - -exports.Deflate = Deflate; -exports.deflate = deflate; -exports.deflateRaw = deflateRaw; -exports.gzip = gzip; - -},{"./utils/common":19,"./utils/strings":20,"./zlib/deflate":24,"./zlib/messages":29,"./zlib/zstream":31}],18:[function(require,module,exports){ -'use strict'; - - -var zlib_inflate = require('./zlib/inflate'); -var utils = require('./utils/common'); -var strings = require('./utils/strings'); -var c = require('./zlib/constants'); -var msg = require('./zlib/messages'); -var ZStream = require('./zlib/zstream'); -var GZheader = require('./zlib/gzheader'); - -var toString = Object.prototype.toString; - -/** - * class Inflate - * - * Generic JS-style wrapper for zlib calls. If you don't need - * streaming behaviour - use more simple functions: [[inflate]] - * and [[inflateRaw]]. - **/ - -/* internal - * inflate.chunks -> Array - * - * Chunks of output data, if [[Inflate#onData]] not overridden. - **/ - -/** - * Inflate.result -> Uint8Array|Array|String - * - * Uncompressed result, generated by default [[Inflate#onData]] - * and [[Inflate#onEnd]] handlers. Filled after you push last chunk - * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you - * push a chunk with explicit flush (call [[Inflate#push]] with - * `Z_SYNC_FLUSH` param). - **/ - -/** - * Inflate.err -> Number - * - * Error code after inflate finished. 0 (Z_OK) on success. - * Should be checked if broken data possible. - **/ - -/** - * Inflate.msg -> String - * - * Error message, if [[Inflate.err]] != 0 - **/ - - -/** - * new Inflate(options) - * - options (Object): zlib inflate options. - * - * Creates new inflator instance with specified params. Throws exception - * on bad params. Supported options: - * - * - `windowBits` - * - `dictionary` - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information on these. - * - * Additional options, for internal needs: - * - * - `chunkSize` - size of generated data chunks (16K by default) - * - `raw` (Boolean) - do raw inflate - * - `to` (String) - if equal to 'string', then result will be converted - * from utf8 to utf16 (javascript) string. When string output requested, - * chunk length can differ from `chunkSize`, depending on content. - * - * By default, when no options set, autodetect deflate/gzip data format via - * wrapper header. - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9]) - * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]); - * - * var inflate = new pako.Inflate({ level: 3}); - * - * inflate.push(chunk1, false); - * inflate.push(chunk2, true); // true -> last chunk - * - * if (inflate.err) { throw new Error(inflate.err); } - * - * console.log(inflate.result); - * ``` - **/ -function Inflate(options) { - if (!(this instanceof Inflate)) return new Inflate(options); - - this.options = utils.assign({ - chunkSize: 16384, - windowBits: 0, - to: '' - }, options || {}); - - var opt = this.options; - - // Force window size for `raw` data, if not set directly, - // because we have no header for autodetect. - if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) { - opt.windowBits = -opt.windowBits; - if (opt.windowBits === 0) { opt.windowBits = -15; } - } - - // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate - if ((opt.windowBits >= 0) && (opt.windowBits < 16) && - !(options && options.windowBits)) { - opt.windowBits += 32; - } - - // Gzip header has no info about windows size, we can do autodetect only - // for deflate. So, if window size not set, force it to max when gzip possible - if ((opt.windowBits > 15) && (opt.windowBits < 48)) { - // bit 3 (16) -> gzipped data - // bit 4 (32) -> autodetect gzip/deflate - if ((opt.windowBits & 15) === 0) { - opt.windowBits |= 15; - } - } - - this.err = 0; // error code, if happens (0 = Z_OK) - this.msg = ''; // error message - this.ended = false; // used to avoid multiple onEnd() calls - this.chunks = []; // chunks of compressed data - - this.strm = new ZStream(); - this.strm.avail_out = 0; - - var status = zlib_inflate.inflateInit2( - this.strm, - opt.windowBits - ); - - if (status !== c.Z_OK) { - throw new Error(msg[status]); - } - - this.header = new GZheader(); - - zlib_inflate.inflateGetHeader(this.strm, this.header); - - // Setup dictionary - if (opt.dictionary) { - // Convert data if needed - if (typeof opt.dictionary === 'string') { - opt.dictionary = strings.string2buf(opt.dictionary); - } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') { - opt.dictionary = new Uint8Array(opt.dictionary); - } - if (opt.raw) { //In raw mode we need to set the dictionary early - status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); - if (status !== c.Z_OK) { - throw new Error(msg[status]); + PDFJS.shadow = shadow; + var PasswordResponses = PDFJS.PasswordResponses = { + NEED_PASSWORD: 1, + INCORRECT_PASSWORD: 2 + }; + var PasswordException = function PasswordExceptionClosure() { + function PasswordException2(msg, code) { + this.name = "PasswordException"; + this.message = msg; + this.code = code; + } + PasswordException2.prototype = new Error(); + PasswordException2.constructor = PasswordException2; + return PasswordException2; + }(); + PDFJS.PasswordException = PasswordException; + var UnknownErrorException = function UnknownErrorExceptionClosure() { + function UnknownErrorException2(msg, details) { + this.name = "UnknownErrorException"; + this.message = msg; + this.details = details; + } + UnknownErrorException2.prototype = new Error(); + UnknownErrorException2.constructor = UnknownErrorException2; + return UnknownErrorException2; + }(); + PDFJS.UnknownErrorException = UnknownErrorException; + var InvalidPDFException = function InvalidPDFExceptionClosure() { + function InvalidPDFException2(msg) { + this.name = "InvalidPDFException"; + this.message = msg; + } + InvalidPDFException2.prototype = new Error(); + InvalidPDFException2.constructor = InvalidPDFException2; + return InvalidPDFException2; + }(); + PDFJS.InvalidPDFException = InvalidPDFException; + var MissingPDFException = function MissingPDFExceptionClosure() { + function MissingPDFException2(msg) { + this.name = "MissingPDFException"; + this.message = msg; + } + MissingPDFException2.prototype = new Error(); + MissingPDFException2.constructor = MissingPDFException2; + return MissingPDFException2; + }(); + PDFJS.MissingPDFException = MissingPDFException; + var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { + function UnexpectedResponseException2(msg, status) { + this.name = "UnexpectedResponseException"; + this.message = msg; + this.status = status; + } + UnexpectedResponseException2.prototype = new Error(); + UnexpectedResponseException2.constructor = UnexpectedResponseException2; + return UnexpectedResponseException2; + }(); + PDFJS.UnexpectedResponseException = UnexpectedResponseException; + var NotImplementedException = function NotImplementedExceptionClosure() { + function NotImplementedException2(msg) { + this.message = msg; + } + NotImplementedException2.prototype = new Error(); + NotImplementedException2.prototype.name = "NotImplementedException"; + NotImplementedException2.constructor = NotImplementedException2; + return NotImplementedException2; + }(); + var MissingDataException = function MissingDataExceptionClosure() { + function MissingDataException2(begin, end) { + this.begin = begin; + this.end = end; + this.message = "Missing data [" + begin + ", " + end + ")"; + } + MissingDataException2.prototype = new Error(); + MissingDataException2.prototype.name = "MissingDataException"; + MissingDataException2.constructor = MissingDataException2; + return MissingDataException2; + }(); + var XRefParseException = function XRefParseExceptionClosure() { + function XRefParseException2(msg) { + this.message = msg; } + XRefParseException2.prototype = new Error(); + XRefParseException2.prototype.name = "XRefParseException"; + XRefParseException2.constructor = XRefParseException2; + return XRefParseException2; + }(); + function log2(x) { + var n = 1, i2 = 0; + while (x > n) { + n <<= 1; + i2++; + } + return i2; } - } -} - -/** - * Inflate#push(data[, mode]) -> Boolean - * - data (Uint8Array|Array|ArrayBuffer|String): input data - * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. - * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH. - * - * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with - * new output chunks. Returns `true` on success. The last data block must have - * mode Z_FINISH (or `true`). That will flush internal pending buffers and call - * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you - * can use mode Z_SYNC_FLUSH, keeping the decompression context. - * - * On fail call [[Inflate#onEnd]] with error code and return false. - * - * We strongly recommend to use `Uint8Array` on input for best speed (output - * format is detected automatically). Also, don't skip last param and always - * use the same type in your code (boolean or number). That will improve JS speed. - * - * For regular `Array`-s make sure all elements are [0..255]. - * - * ##### Example - * - * ```javascript - * push(chunk, false); // push one of data chunks - * ... - * push(chunk, true); // push last chunk - * ``` - **/ -Inflate.prototype.push = function (data, mode) { - var strm = this.strm; - var chunkSize = this.options.chunkSize; - var dictionary = this.options.dictionary; - var status, _mode; - var next_out_utf8, tail, utf8str; - - // Flag to properly process Z_BUF_ERROR on testing inflate call - // when we check that all output data was flushed. - var allowBufError = false; - - if (this.ended) { return false; } - _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH); - - // Convert data if needed - if (typeof data === 'string') { - // Only binary strings can be decompressed on practice - strm.input = strings.binstring2buf(data); - } else if (toString.call(data) === '[object ArrayBuffer]') { - strm.input = new Uint8Array(data); - } else { - strm.input = data; - } - - strm.next_in = 0; - strm.avail_in = strm.input.length; - - do { - if (strm.avail_out === 0) { - strm.output = new utils.Buf8(chunkSize); - strm.next_out = 0; - strm.avail_out = chunkSize; + function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; } - - status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */ - - if (status === c.Z_NEED_DICT && dictionary) { - status = zlib_inflate.inflateSetDictionary(this.strm, dictionary); + function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; } - - if (status === c.Z_BUF_ERROR && allowBufError === true) { - status = c.Z_OK; - allowBufError = false; + function isLittleEndian() { + var buffer8 = new Uint8Array(2); + buffer8[0] = 1; + var buffer16 = new Uint16Array(buffer8.buffer); + return buffer16[0] === 1; } - - if (status !== c.Z_STREAM_END && status !== c.Z_OK) { - this.onEnd(status); - this.ended = true; - return false; + Object.defineProperty(PDFJS, "isLittleEndian", { + configurable: true, + get: function PDFJS_isLittleEndian() { + return shadow(PDFJS, "isLittleEndian", isLittleEndian()); + } + }); + function hasCanvasTypedArrays() { + var canvas = document.createElement("canvas"); + canvas.width = canvas.height = 1; + var ctx = canvas.getContext("2d"); + var imageData = ctx.createImageData(1, 1); + return typeof imageData.data.buffer !== "undefined"; } - - if (strm.next_out) { - if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) { - - if (this.options.to === 'string') { - - next_out_utf8 = strings.utf8border(strm.output, strm.next_out); - - tail = strm.next_out - next_out_utf8; - utf8str = strings.buf2string(strm.output, next_out_utf8); - - // move tail - strm.next_out = tail; - strm.avail_out = chunkSize - tail; - if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); } - - this.onData(utf8str); - + Object.defineProperty(PDFJS, "hasCanvasTypedArrays", { + configurable: true, + get: function PDFJS_hasCanvasTypedArrays() { + return shadow(PDFJS, "hasCanvasTypedArrays", hasCanvasTypedArrays()); + } + }); + var Uint32ArrayView = function Uint32ArrayViewClosure() { + function Uint32ArrayView2(buffer2, length) { + this.buffer = buffer2; + this.byteLength = buffer2.length; + this.length = length === void 0 ? this.byteLength >> 2 : length; + ensureUint32ArrayViewProps(this.length); + } + Uint32ArrayView2.prototype = /* @__PURE__ */ Object.create(null); + var uint32ArrayViewSetters = 0; + function createUint32ArrayProp(index) { + return { + get: function() { + var buffer2 = this.buffer, offset = index << 2; + return (buffer2[offset] | buffer2[offset + 1] << 8 | buffer2[offset + 2] << 16 | buffer2[offset + 3] << 24) >>> 0; + }, + set: function(value) { + var buffer2 = this.buffer, offset = index << 2; + buffer2[offset] = value & 255; + buffer2[offset + 1] = value >> 8 & 255; + buffer2[offset + 2] = value >> 16 & 255; + buffer2[offset + 3] = value >>> 24 & 255; + } + }; + } + function ensureUint32ArrayViewProps(length) { + while (uint32ArrayViewSetters < length) { + Object.defineProperty( + Uint32ArrayView2.prototype, + uint32ArrayViewSetters, + createUint32ArrayProp(uint32ArrayViewSetters) + ); + uint32ArrayViewSetters++; + } + } + return Uint32ArrayView2; + }(); + var Util = PDFJS.Util = function UtilClosure() { + function Util2() { + } + var rgbBuf = ["rgb(", 0, ",", 0, ",", 0, ")"]; + Util2.makeCssRgb = function Util_makeCssRgb(r, g, b) { + rgbBuf[1] = r; + rgbBuf[3] = g; + rgbBuf[5] = b; + return rgbBuf.join(""); + }; + Util2.transform = function Util_transform(m1, m2) { + return [ + m1[0] * m2[0] + m1[2] * m2[1], + m1[1] * m2[0] + m1[3] * m2[1], + m1[0] * m2[2] + m1[2] * m2[3], + m1[1] * m2[2] + m1[3] * m2[3], + m1[0] * m2[4] + m1[2] * m2[5] + m1[4], + m1[1] * m2[4] + m1[3] * m2[5] + m1[5] + ]; + }; + Util2.applyTransform = function Util_applyTransform(p, m) { + var xt = p[0] * m[0] + p[1] * m[2] + m[4]; + var yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [xt, yt]; + }; + Util2.applyInverseTransform = function Util_applyInverseTransform(p, m) { + var d = m[0] * m[3] - m[1] * m[2]; + var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [xt, yt]; + }; + Util2.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { + var p1 = Util2.applyTransform(r, m); + var p2 = Util2.applyTransform(r.slice(2, 4), m); + var p3 = Util2.applyTransform([r[0], r[3]], m); + var p4 = Util2.applyTransform([r[2], r[1]], m); + return [ + Math.min(p1[0], p2[0], p3[0], p4[0]), + Math.min(p1[1], p2[1], p3[1], p4[1]), + Math.max(p1[0], p2[0], p3[0], p4[0]), + Math.max(p1[1], p2[1], p3[1], p4[1]) + ]; + }; + Util2.inverseTransform = function Util_inverseTransform(m) { + var d = m[0] * m[3] - m[1] * m[2]; + return [ + m[3] / d, + -m[1] / d, + -m[2] / d, + m[0] / d, + (m[2] * m[5] - m[4] * m[3]) / d, + (m[4] * m[1] - m[5] * m[0]) / d + ]; + }; + Util2.apply3dTransform = function Util_apply3dTransform(m, v) { + return [ + m[0] * v[0] + m[1] * v[1] + m[2] * v[2], + m[3] * v[0] + m[4] * v[1] + m[5] * v[2], + m[6] * v[0] + m[7] * v[1] + m[8] * v[2] + ]; + }; + Util2.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { + var transpose = [m[0], m[2], m[1], m[3]]; + var a = m[0] * transpose[0] + m[1] * transpose[2]; + var b = m[0] * transpose[1] + m[1] * transpose[3]; + var c = m[2] * transpose[0] + m[3] * transpose[2]; + var d = m[2] * transpose[1] + m[3] * transpose[3]; + var first = (a + d) / 2; + var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; + var sx = first + second || 1; + var sy = first - second || 1; + return [Math.sqrt(sx), Math.sqrt(sy)]; + }; + Util2.normalizeRect = function Util_normalizeRect(rect) { + var r = rect.slice(0); + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + return r; + }; + Util2.intersect = function Util_intersect(rect1, rect2) { + function compare(a, b) { + return a - b; + } + var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), result = []; + rect1 = Util2.normalizeRect(rect1); + rect2 = Util2.normalizeRect(rect2); + if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { + result[0] = orderedX[1]; + result[2] = orderedX[2]; + } else { + return false; + } + if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { + result[1] = orderedY[1]; + result[3] = orderedY[2]; + } else { + return false; + } + return result; + }; + Util2.sign = function Util_sign(num) { + return num < 0 ? -1 : 1; + }; + Util2.appendToArray = function Util_appendToArray(arr1, arr2) { + Array.prototype.push.apply(arr1, arr2); + }; + Util2.prependToArray = function Util_prependToArray(arr1, arr2) { + Array.prototype.unshift.apply(arr1, arr2); + }; + Util2.extendObj = function extendObj(obj1, obj2) { + for (var key2 in obj2) { + obj1[key2] = obj2[key2]; + } + }; + Util2.getInheritableProperty = function Util_getInheritableProperty(dict, name) { + while (dict && !dict.has(name)) { + dict = dict.get("Parent"); + } + if (!dict) { + return null; + } + return dict.get(name); + }; + Util2.inherit = function Util_inherit(sub, base, prototype) { + sub.prototype = Object.create(base.prototype); + sub.prototype.constructor = sub; + for (var prop in prototype) { + sub.prototype[prop] = prototype[prop]; + } + }; + Util2.loadScript = function Util_loadScript(src, callback) { + var script = document.createElement("script"); + var loaded = false; + script.setAttribute("src", src); + if (callback) { + script.onload = function() { + if (!loaded) { + callback(); + } + loaded = true; + }; + } + document.getElementsByTagName("head")[0].appendChild(script); + }; + return Util2; + }(); + var PageViewport = PDFJS.PageViewport = function PageViewportClosure() { + function PageViewport2(viewBox, scale, rotation, offsetX, offsetY, dontFlip) { + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + var centerX = (viewBox[2] + viewBox[0]) / 2; + var centerY = (viewBox[3] + viewBox[1]) / 2; + var rotateA, rotateB, rotateC, rotateD; + rotation = rotation % 360; + rotation = rotation < 0 ? rotation + 360 : rotation; + switch (rotation) { + case 180: + rotateA = -1; + rotateB = 0; + rotateC = 0; + rotateD = 1; + break; + case 90: + rotateA = 0; + rotateB = 1; + rotateC = 1; + rotateD = 0; + break; + case 270: + rotateA = 0; + rotateB = -1; + rotateC = -1; + rotateD = 0; + break; + default: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; + } + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; + } + var offsetCanvasX, offsetCanvasY; + var width, height; + if (rotateA === 0) { + offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; + offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; + width = Math.abs(viewBox[3] - viewBox[1]) * scale; + height = Math.abs(viewBox[2] - viewBox[0]) * scale; } else { - this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = Math.abs(viewBox[2] - viewBox[0]) * scale; + height = Math.abs(viewBox[3] - viewBox[1]) * scale; } + this.transform = [ + rotateA * scale, + rotateB * scale, + rotateC * scale, + rotateD * scale, + offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, + offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY + ]; + this.width = width; + this.height = height; + this.fontScale = scale; } + PageViewport2.prototype = /** @lends PDFJS.PageViewport.prototype */ + { + /** + * Clones viewport with additional properties. + * @param args {Object} (optional) If specified, may contain the 'scale' or + * 'rotation' properties to override the corresponding properties in + * the cloned viewport. + * @returns {PDFJS.PageViewport} Cloned viewport. + */ + clone: function PageViewPort_clone(args) { + args = args || {}; + var scale = "scale" in args ? args.scale : this.scale; + var rotation = "rotation" in args ? args.rotation : this.rotation; + return new PageViewport2( + this.viewBox.slice(), + scale, + rotation, + this.offsetX, + this.offsetY, + args.dontFlip + ); + }, + /** + * Converts PDF point to the viewport coordinates. For examples, useful for + * converting PDF location into canvas pixel coordinates. + * @param x {number} X coordinate. + * @param y {number} Y coordinate. + * @returns {Object} Object that contains 'x' and 'y' properties of the + * point in the viewport coordinate space. + * @see {@link convertToPdfPoint} + * @see {@link convertToViewportRectangle} + */ + convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { + return Util.applyTransform([x, y], this.transform); + }, + /** + * Converts PDF rectangle to the viewport coordinates. + * @param rect {Array} xMin, yMin, xMax and yMax coordinates. + * @returns {Array} Contains corresponding coordinates of the rectangle + * in the viewport coordinate space. + * @see {@link convertToViewportPoint} + */ + convertToViewportRectangle: function PageViewport_convertToViewportRectangle(rect) { + var tl = Util.applyTransform([rect[0], rect[1]], this.transform); + var br = Util.applyTransform([rect[2], rect[3]], this.transform); + return [tl[0], tl[1], br[0], br[1]]; + }, + /** + * Converts viewport coordinates to the PDF location. For examples, useful + * for converting canvas pixel location into PDF one. + * @param x {number} X coordinate. + * @param y {number} Y coordinate. + * @returns {Object} Object that contains 'x' and 'y' properties of the + * point in the PDF coordinate space. + * @see {@link convertToViewportPoint} + */ + convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { + return Util.applyInverseTransform([x, y], this.transform); + } + }; + return PageViewport2; + }(); + function createPromiseCapability() { + var capability = {}; + capability.promise = new Promise(function(resolve, reject) { + capability.resolve = resolve; + capability.reject = reject; + }); + return capability; } - - // When no more input data, we should check that internal inflate buffers - // are flushed. The only way to do it when avail_out = 0 - run one more - // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR. - // Here we set flag to process this error properly. - // - // NOTE. Deflate does not return error in this case and does not needs such - // logic. - if (strm.avail_in === 0 && strm.avail_out === 0) { - allowBufError = true; + PDFJS.createPromiseCapability = createPromiseCapability; + (function PromiseClosure() { + if (globalScope2.Promise) { + if (typeof globalScope2.Promise.all !== "function") { + globalScope2.Promise.all = function(iterable) { + var count = 0, results = [], resolve, reject; + var promise = new globalScope2.Promise(function(resolve_, reject_) { + resolve = resolve_; + reject = reject_; + }); + iterable.forEach(function(p, i2) { + count++; + p.then(function(result) { + results[i2] = result; + count--; + if (count === 0) { + resolve(results); + } + }, reject); + }); + if (count === 0) { + resolve(results); + } + return promise; + }; + } + if (typeof globalScope2.Promise.resolve !== "function") { + globalScope2.Promise.resolve = function(value) { + return new globalScope2.Promise(function(resolve) { + resolve(value); + }); + }; + } + if (typeof globalScope2.Promise.reject !== "function") { + globalScope2.Promise.reject = function(reason) { + return new globalScope2.Promise(function(resolve, reject) { + reject(reason); + }); + }; + } + if (typeof globalScope2.Promise.prototype.catch2 !== "function") { + globalScope2.Promise.prototype.catch2 = function(onReject) { + return globalScope2.Promise.prototype.then(void 0, onReject); + }; + } + return; + } + var STATUS_PENDING = 0; + var STATUS_RESOLVED = 1; + var STATUS_REJECTED = 2; + var REJECTION_TIMEOUT = 500; + var HandlerManager = { + handlers: [], + running: false, + unhandledRejections: [], + pendingRejectionCheck: false, + scheduleHandlers: function scheduleHandlers(promise) { + if (promise._status === STATUS_PENDING) { + return; + } + this.handlers = this.handlers.concat(promise._handlers); + promise._handlers = []; + if (this.running) { + return; + } + this.running = true; + setTimeout(this.runHandlers.bind(this), 0); + }, + runHandlers: function runHandlers() { + var RUN_TIMEOUT = 1; + var timeoutAt = Date.now() + RUN_TIMEOUT; + while (this.handlers.length > 0) { + var handler = this.handlers.shift(); + var nextStatus = handler.thisPromise._status; + var nextValue = handler.thisPromise._value; + try { + if (nextStatus === STATUS_RESOLVED) { + if (typeof handler.onResolve === "function") { + nextValue = handler.onResolve(nextValue); + } + } else if (typeof handler.onReject === "function") { + nextValue = handler.onReject(nextValue); + nextStatus = STATUS_RESOLVED; + if (handler.thisPromise._unhandledRejection) { + this.removeUnhandeledRejection(handler.thisPromise); + } + } + } catch (ex) { + nextStatus = STATUS_REJECTED; + nextValue = ex; + } + handler.nextPromise._updateStatus(nextStatus, nextValue); + if (Date.now() >= timeoutAt) { + break; + } + } + if (this.handlers.length > 0) { + setTimeout(this.runHandlers.bind(this), 0); + return; + } + this.running = false; + }, + addUnhandledRejection: function addUnhandledRejection(promise) { + this.unhandledRejections.push({ + promise, + time: Date.now() + }); + this.scheduleRejectionCheck(); + }, + removeUnhandeledRejection: function removeUnhandeledRejection(promise) { + promise._unhandledRejection = false; + for (var i2 = 0; i2 < this.unhandledRejections.length; i2++) { + if (this.unhandledRejections[i2].promise === promise) { + this.unhandledRejections.splice(i2); + i2--; + } + } + }, + scheduleRejectionCheck: function scheduleRejectionCheck() { + if (this.pendingRejectionCheck) { + return; + } + this.pendingRejectionCheck = true; + setTimeout(function rejectionCheck() { + this.pendingRejectionCheck = false; + var now = Date.now(); + for (var i2 = 0; i2 < this.unhandledRejections.length; i2++) { + if (now - this.unhandledRejections[i2].time > REJECTION_TIMEOUT) { + var unhandled = this.unhandledRejections[i2].promise._value; + var msg = "Unhandled rejection: " + unhandled; + if (unhandled.stack) { + msg += "\n" + unhandled.stack; + } + warn(msg); + this.unhandledRejections.splice(i2); + i2--; + } + } + if (this.unhandledRejections.length) { + this.scheduleRejectionCheck(); + } + }.bind(this), REJECTION_TIMEOUT); + } + }; + function Promise2(resolver) { + this._status = STATUS_PENDING; + this._handlers = []; + try { + resolver.call(this, this._resolve.bind(this), this._reject.bind(this)); + } catch (e) { + this._reject(e); + } + } + Promise2.all = function Promise_all(promises) { + var resolveAll, rejectAll; + var deferred = new Promise2(function(resolve2, reject2) { + resolveAll = resolve2; + rejectAll = reject2; + }); + var unresolved = promises.length; + var results = []; + if (unresolved === 0) { + resolveAll(results); + return deferred; + } + function reject(reason) { + if (deferred._status === STATUS_REJECTED) { + return; + } + results = []; + rejectAll(reason); + } + for (var i2 = 0, ii = promises.length; i2 < ii; ++i2) { + var promise = promises[i2]; + var resolve = function(i3) { + return function(value) { + if (deferred._status === STATUS_REJECTED) { + return; + } + results[i3] = value; + unresolved--; + if (unresolved === 0) { + resolveAll(results); + } + }; + }(i2); + if (Promise2.isPromise(promise)) { + promise.then(resolve, reject); + } else { + resolve(promise); + } + } + return deferred; + }; + Promise2.isPromise = function Promise_isPromise(value) { + return value && typeof value.then === "function"; + }; + Promise2.resolve = function Promise_resolve(value) { + return new Promise2(function(resolve) { + resolve(value); + }); + }; + Promise2.reject = function Promise_reject(reason) { + return new Promise2(function(resolve, reject) { + reject(reason); + }); + }; + Promise2.prototype = { + _status: null, + _value: null, + _handlers: null, + _unhandledRejection: null, + _updateStatus: function Promise__updateStatus(status, value) { + if (this._status === STATUS_RESOLVED || this._status === STATUS_REJECTED) { + return; + } + if (status === STATUS_RESOLVED && Promise2.isPromise(value)) { + value.then( + this._updateStatus.bind(this, STATUS_RESOLVED), + this._updateStatus.bind(this, STATUS_REJECTED) + ); + return; + } + this._status = status; + this._value = value; + if (status === STATUS_REJECTED && this._handlers.length === 0) { + this._unhandledRejection = true; + HandlerManager.addUnhandledRejection(this); + } + HandlerManager.scheduleHandlers(this); + }, + _resolve: function Promise_resolve(value) { + this._updateStatus(STATUS_RESOLVED, value); + }, + _reject: function Promise_reject(reason) { + this._updateStatus(STATUS_REJECTED, reason); + }, + then: function Promise_then(onResolve, onReject) { + var nextPromise = new Promise2(function(resolve, reject) { + this.resolve = resolve; + this.reject = reject; + }); + this._handlers.push({ + thisPromise: this, + onResolve, + onReject, + nextPromise + }); + HandlerManager.scheduleHandlers(this); + return nextPromise; + }, + catch2: function Promise_catch(onReject) { + return this.then(void 0, onReject); + } + }; + globalScope2.Promise = Promise2; + })(); + var StatTimer = function StatTimerClosure() { + function rpad(str, pad, length) { + while (str.length < length) { + str += pad; + } + return str; + } + function StatTimer2() { + this.started = {}; + this.times = []; + this.enabled = true; + } + StatTimer2.prototype = { + time: function StatTimer_time(name) { + if (!this.enabled) { + return; + } + if (name in this.started) { + warn("Timer is already running for " + name); + } + this.started[name] = Date.now(); + }, + timeEnd: function StatTimer_timeEnd(name) { + if (!this.enabled) { + return; + } + if (!(name in this.started)) { + warn("Timer has not been started for " + name); + } + this.times.push({ + "name": name, + "start": this.started[name], + "end": Date.now() + }); + delete this.started[name]; + }, + toString: function StatTimer_toString() { + var i2, ii; + var times = this.times; + var out = ""; + var longest = 0; + for (i2 = 0, ii = times.length; i2 < ii; ++i2) { + var name = times[i2]["name"]; + if (name.length > longest) { + longest = name.length; + } + } + for (i2 = 0, ii = times.length; i2 < ii; ++i2) { + var span = times[i2]; + var duration = span.end - span.start; + out += rpad(span["name"], " ", longest) + " " + duration + "ms\n"; + } + return out; + } + }; + return StatTimer2; + }(); + PDFJS.createBlob = function createBlob(data, contentType) { + if (typeof Blob !== "undefined") { + return new Blob([data], { type: contentType }); + } + var bb = new MozBlobBuilder(); + bb.append(data); + return bb.getBlob(contentType); + }; + PDFJS.createObjectURL = function createObjectURLClosure() { + var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return function createObjectURL(data, contentType) { + if (!PDFJS.disableCreateObjectURL && typeof URL !== "undefined" && URL.createObjectURL) { + var blob = PDFJS.createBlob(data, contentType); + return URL.createObjectURL(blob); + } + var buffer2 = "data:" + contentType + ";base64,"; + for (var i2 = 0, ii = data.length; i2 < ii; i2 += 3) { + var b1 = data[i2] & 255; + var b2 = data[i2 + 1] & 255; + var b3 = data[i2 + 2] & 255; + var d1 = b1 >> 2, d2 = (b1 & 3) << 4 | b2 >> 4; + var d3 = i2 + 1 < ii ? (b2 & 15) << 2 | b3 >> 6 : 64; + var d4 = i2 + 2 < ii ? b3 & 63 : 64; + buffer2 += digits[d1] + digits[d2] + digits[d3] + digits[d4]; + } + return buffer2; + }; + }(); + function MessageHandler(name, comObj) { + this.name = name; + this.comObj = comObj; + this.callbackIndex = 1; + this.postMessageTransfers = true; + var callbacksCapabilities = this.callbacksCapabilities = {}; + var ah = this.actionHandler = {}; + ah["console_log"] = [function ahConsoleLog(data) { + console.log.apply(console, data); + }]; + ah["console_error"] = [function ahConsoleError(data) { + console.error.apply(console, data); + }]; + ah["_unsupported_feature"] = [function ah_unsupportedFeature(data) { + UnsupportedManager.notify(data); + }]; + comObj.onmessage = function messageHandlerComObjOnMessage(event) { + var data = event.data; + if (data.isReply) { + var callbackId = data.callbackId; + if (data.callbackId in callbacksCapabilities) { + var callback = callbacksCapabilities[callbackId]; + delete callbacksCapabilities[callbackId]; + if ("error" in data) { + callback.reject(data.error); + } else { + callback.resolve(data.data); + } + } else { + error("Cannot resolve callback " + callbackId); + } + } else if (data.action in ah) { + var action = ah[data.action]; + if (data.callbackId) { + Promise.resolve().then(function() { + return action[0].call(action[1], data.data); + }).then(function(result) { + comObj.postMessage({ + isReply: true, + callbackId: data.callbackId, + data: result + }); + }, function(reason) { + comObj.postMessage({ + isReply: true, + callbackId: data.callbackId, + error: reason + }); + }); + } else { + action[0].call(action[1], data.data); + } + } else { + error("Unknown action from worker: " + data.action); + } + }; + } + MessageHandler.prototype = { + on: function messageHandlerOn(actionName, handler, scope) { + var ah = this.actionHandler; + if (ah[actionName]) { + error('There is already an actionName called "' + actionName + '"'); + } + ah[actionName] = [handler, scope]; + }, + /** + * Sends a message to the comObj to invoke the action with the supplied data. + * @param {String} actionName Action to call. + * @param {JSON} data JSON data to send. + * @param {Array} [transfers] Optional list of transfers/ArrayBuffers + */ + send: function messageHandlerSend(actionName, data, transfers) { + var message = { + action: actionName, + data + }; + this.postMessage(message, transfers); + }, + /** + * Sends a message to the comObj to invoke the action with the supplied data. + * Expects that other side will callback with the response. + * @param {String} actionName Action to call. + * @param {JSON} data JSON data to send. + * @param {Array} [transfers] Optional list of transfers/ArrayBuffers. + * @returns {Promise} Promise to be resolved with response data. + */ + sendWithPromise: function messageHandlerSendWithPromise(actionName, data, transfers) { + var callbackId = this.callbackIndex++; + var message = { + action: actionName, + data, + callbackId + }; + var capability = createPromiseCapability(); + this.callbacksCapabilities[callbackId] = capability; + try { + this.postMessage(message, transfers); + } catch (e) { + capability.reject(e); + } + return capability.promise; + }, + /** + * Sends raw message to the comObj. + * @private + * @param message {Object} Raw message. + * @param transfers List of transfers/ArrayBuffers, or undefined. + */ + postMessage: function(message, transfers) { + if (transfers && this.postMessageTransfers) { + this.comObj.postMessage(message, transfers); + } else { + this.comObj.postMessage(message); + } + } + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = JpxImage2; } - - } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END); - - if (status === c.Z_STREAM_END) { - _mode = c.Z_FINISH; - } - - // Finalize on the last chunk. - if (_mode === c.Z_FINISH) { - status = zlib_inflate.inflateEnd(this.strm); - this.onEnd(status); - this.ended = true; - return status === c.Z_OK; } +}); - // callback interim results if Z_SYNC_FLUSH. - if (_mode === c.Z_SYNC_FLUSH) { - this.onEnd(c.Z_OK); - strm.avail_out = 0; - return true; - } - - return true; -}; - - -/** - * Inflate#onData(chunk) -> Void - * - chunk (Uint8Array|Array|String): output data. Type of array depends - * on js engine support. When string output requested, each chunk - * will be string. - * - * By default, stores data blocks in `chunks[]` property and glue - * those in `onEnd`. Override this handler, if you need another behaviour. - **/ -Inflate.prototype.onData = function (chunk) { - this.chunks.push(chunk); -}; - - -/** - * Inflate#onEnd(status) -> Void - * - status (Number): inflate status. 0 (Z_OK) on success, - * other if not. - * - * Called either after you tell inflate that the input stream is - * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH) - * or if an error happened. By default - join collected chunks, - * free memory and fill `results` / `err` properties. - **/ -Inflate.prototype.onEnd = function (status) { - // On success - join - if (status === c.Z_OK) { - if (this.options.to === 'string') { - // Glue & convert here, until we teach pako to send - // utf8 aligned strings to onData - this.result = this.chunks.join(''); - } else { - this.result = utils.flattenChunks(this.chunks); - } - } - this.chunks = []; - this.err = status; - this.msg = this.strm.msg; -}; - - -/** - * inflate(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * Decompress `data` with inflate/ungzip and `options`. Autodetect - * format via wrapper header by default. That's why we don't provide - * separate `ungzip` method. - * - * Supported options are: - * - * - windowBits - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information. - * - * Sugar (options): - * - * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify - * negative windowBits implicitly. - * - `to` (String) - if equal to 'string', then result will be converted - * from utf8 to utf16 (javascript) string. When string output requested, - * chunk length can differ from `chunkSize`, depending on content. - * - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , input = pako.deflate([1,2,3,4,5,6,7,8,9]) - * , output; - * - * try { - * output = pako.inflate(input); - * } catch (err) - * console.log(err); - * } - * ``` - **/ -function inflate(input, options) { - var inflator = new Inflate(options); - - inflator.push(input, true); - - // That will never happens, if you don't cheat with options :) - if (inflator.err) { throw inflator.msg || msg[inflator.err]; } - - return inflator.result; -} - - -/** - * inflateRaw(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * The same as [[inflate]], but creates raw data, without wrapper - * (header and adler32 crc). - **/ -function inflateRaw(input, options) { - options = options || {}; - options.raw = true; - return inflate(input, options); -} - - -/** - * ungzip(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * Just shortcut to [[inflate]], because it autodetects format - * by header.content. Done for convenience. - **/ - - -exports.Inflate = Inflate; -exports.inflate = inflate; -exports.inflateRaw = inflateRaw; -exports.ungzip = inflate; - -},{"./utils/common":19,"./utils/strings":20,"./zlib/constants":22,"./zlib/gzheader":25,"./zlib/inflate":27,"./zlib/messages":29,"./zlib/zstream":31}],19:[function(require,module,exports){ -'use strict'; - - -var TYPED_OK = (typeof Uint8Array !== 'undefined') && - (typeof Uint16Array !== 'undefined') && - (typeof Int32Array !== 'undefined'); - -function _has(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -exports.assign = function (obj /*from1, from2, from3, ...*/) { - var sources = Array.prototype.slice.call(arguments, 1); - while (sources.length) { - var source = sources.shift(); - if (!source) { continue; } - - if (typeof source !== 'object') { - throw new TypeError(source + 'must be non-object'); - } - - for (var p in source) { - if (_has(source, p)) { - obj[p] = source[p]; +// lib/charLS-DynamicMemory-browser.js +var require_charLS_DynamicMemory_browser = __commonJS({ + "lib/charLS-DynamicMemory-browser.js"(exports, module) { + var CharLS = function(Module) { + Module = Module || {}; + var Module; + if (!Module) + Module = (typeof CharLS !== "undefined" ? CharLS : null) || {}; + var moduleOverrides = {}; + for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } } - } - } - - return obj; -}; - - -// reduce buffer size, avoiding mem copy -exports.shrinkBuf = function (buf, size) { - if (buf.length === size) { return buf; } - if (buf.subarray) { return buf.subarray(0, size); } - buf.length = size; - return buf; -}; - - -var fnTyped = { - arraySet: function (dest, src, src_offs, len, dest_offs) { - if (src.subarray && dest.subarray) { - dest.set(src.subarray(src_offs, src_offs + len), dest_offs); - return; - } - // Fallback to ordinary array - for (var i = 0; i < len; i++) { - dest[dest_offs + i] = src[src_offs + i]; - } - }, - // Join array of chunks to single array. - flattenChunks: function (chunks) { - var i, l, len, pos, chunk, result; - - // calculate data length - len = 0; - for (i = 0, l = chunks.length; i < l; i++) { - len += chunks[i].length; - } - - // join chunks - result = new Uint8Array(len); - pos = 0; - for (i = 0, l = chunks.length; i < l; i++) { - chunk = chunks[i]; - result.set(chunk, pos); - pos += chunk.length; - } - - return result; - } -}; - -var fnUntyped = { - arraySet: function (dest, src, src_offs, len, dest_offs) { - for (var i = 0; i < len; i++) { - dest[dest_offs + i] = src[src_offs + i]; - } - }, - // Join array of chunks to single array. - flattenChunks: function (chunks) { - return [].concat.apply([], chunks); - } -}; - - -// Enable/Disable typed arrays use, for testing -// -exports.setTyped = function (on) { - if (on) { - exports.Buf8 = Uint8Array; - exports.Buf16 = Uint16Array; - exports.Buf32 = Int32Array; - exports.assign(exports, fnTyped); - } else { - exports.Buf8 = Array; - exports.Buf16 = Array; - exports.Buf32 = Array; - exports.assign(exports, fnUntyped); - } -}; - -exports.setTyped(TYPED_OK); - -},{}],20:[function(require,module,exports){ -// String encode/decode helpers -'use strict'; - - -var utils = require('./common'); - - -// Quick check if we can use fast array to bin string conversion -// -// - apply(Array) can fail on Android 2.2 -// - apply(Uint8Array) can fail on iOS 5.1 Safari -// -var STR_APPLY_OK = true; -var STR_APPLY_UIA_OK = true; - -try { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; } -try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; } - - -// Table with utf8 lengths (calculated by first byte of sequence) -// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, -// because max possible codepoint is 0x10ffff -var _utf8len = new utils.Buf8(256); -for (var q = 0; q < 256; q++) { - _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1); -} -_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start - - -// convert string to array (typed, when possible) -exports.string2buf = function (str) { - var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; - - // count binary size - for (m_pos = 0; m_pos < str_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { - c2 = str.charCodeAt(m_pos + 1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; + var ENVIRONMENT_IS_WEB = typeof window === "object"; + var ENVIRONMENT_IS_WORKER = typeof importScripts === "function"; + var ENVIRONMENT_IS_NODE = typeof process === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + if (ENVIRONMENT_IS_NODE) { + if (!Module["print"]) + Module["print"] = function print2(x) { + process["stdout"].write(x + "\n"); + }; + if (!Module["printErr"]) + Module["printErr"] = function printErr2(x) { + process["stderr"].write(x + "\n"); + }; + var nodeFS = require("fs"); + var nodePath = require("path"); + Module["read"] = function read2(filename, binary) { + filename = nodePath["normalize"](filename); + var ret = nodeFS["readFileSync"](filename); + if (!ret && filename != nodePath["resolve"](filename)) { + filename = path.join(__dirname, "..", "src", filename); + ret = nodeFS["readFileSync"](filename); + } + if (ret && !binary) + ret = ret.toString(); + return ret; + }; + Module["readBinary"] = function readBinary(filename) { + var ret = Module["read"](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + Module["load"] = function load(f) { + globalEval(read(f)); + }; + if (!Module["thisProgram"]) { + if (process["argv"].length > 1) { + Module["thisProgram"] = process["argv"][1].replace(/\\/g, "/"); + } else { + Module["thisProgram"] = "unknown-program"; + } + } + Module["arguments"] = process["argv"].slice(2); + if (typeof module !== "undefined") { + module["exports"] = Module; + } + process["on"]("uncaughtException", function(ex) { + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + Module["inspect"] = function() { + return "[Emscripten Module object]"; + }; + } else if (ENVIRONMENT_IS_SHELL) { + if (!Module["print"]) + Module["print"] = print; + if (typeof printErr != "undefined") + Module["printErr"] = printErr; + if (typeof read != "undefined") { + Module["read"] = read; + } else { + Module["read"] = function read2() { + throw "no read() available (jsc?)"; + }; + } + Module["readBinary"] = function readBinary(f) { + if (typeof readbuffer === "function") { + return new Uint8Array(readbuffer(f)); + } + var data = read(f, "binary"); + assert(typeof data === "object"); + return data; + }; + if (typeof scriptArgs != "undefined") { + Module["arguments"] = scriptArgs; + } else if (typeof arguments != "undefined") { + Module["arguments"] = arguments; + } + } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module["read"] = function read2(url) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + if (typeof arguments != "undefined") { + Module["arguments"] = arguments; + } + if (typeof console !== "undefined") { + if (!Module["print"]) + Module["print"] = function print2(x) { + console.log(x); + }; + if (!Module["printErr"]) + Module["printErr"] = function printErr2(x) { + console.log(x); + }; + } else { + var TRY_USE_DUMP = false; + if (!Module["print"]) + Module["print"] = TRY_USE_DUMP && typeof dump !== "undefined" ? function(x) { + dump(x); + } : function(x) { + }; + } + if (ENVIRONMENT_IS_WORKER) { + Module["load"] = importScripts; + } + if (typeof Module["setWindowTitle"] === "undefined") { + Module["setWindowTitle"] = function(title) { + document.title = title; + }; + } + } else { + throw "Unknown runtime environment. Where are we?"; } - } - buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; - } - - // allocate buffer - buf = new utils.Buf8(buf_len); - - // convert - for (i = 0, m_pos = 0; i < buf_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { - c2 = str.charCodeAt(m_pos + 1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; + function globalEval(x) { + eval.call(null, x); } - } - if (c < 0x80) { - /* one byte */ - buf[i++] = c; - } else if (c < 0x800) { - /* two bytes */ - buf[i++] = 0xC0 | (c >>> 6); - buf[i++] = 0x80 | (c & 0x3f); - } else if (c < 0x10000) { - /* three bytes */ - buf[i++] = 0xE0 | (c >>> 12); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } else { - /* four bytes */ - buf[i++] = 0xf0 | (c >>> 18); - buf[i++] = 0x80 | (c >>> 12 & 0x3f); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } - } - - return buf; -}; - -// Helper (used in 2 places) -function buf2binstring(buf, len) { - // On Chrome, the arguments in a function call that are allowed is `65534`. - // If the length of the buffer is smaller than that, we can use this optimization, - // otherwise we will take a slower path. - if (len < 65534) { - if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) { - return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); - } - } - - var result = ''; - for (var i = 0; i < len; i++) { - result += String.fromCharCode(buf[i]); - } - return result; -} - - -// Convert byte array to binary string -exports.buf2binstring = function (buf) { - return buf2binstring(buf, buf.length); -}; - - -// Convert binary string (typed, when possible) -exports.binstring2buf = function (str) { - var buf = new utils.Buf8(str.length); - for (var i = 0, len = buf.length; i < len; i++) { - buf[i] = str.charCodeAt(i); - } - return buf; -}; - - -// convert array to string -exports.buf2string = function (buf, max) { - var i, out, c, c_len; - var len = max || buf.length; - - // Reserve max possible length (2 words per char) - // NB: by unknown reasons, Array is significantly faster for - // String.fromCharCode.apply than Uint16Array. - var utf16buf = new Array(len * 2); - - for (out = 0, i = 0; i < len;) { - c = buf[i++]; - // quick process ascii - if (c < 0x80) { utf16buf[out++] = c; continue; } - - c_len = _utf8len[c]; - // skip 5 & 6 byte codes - if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; } - - // apply mask on first byte - c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; - // join the rest - while (c_len > 1 && i < len) { - c = (c << 6) | (buf[i++] & 0x3f); - c_len--; - } - - // terminated by end of string? - if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } - - if (c < 0x10000) { - utf16buf[out++] = c; - } else { - c -= 0x10000; - utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); - utf16buf[out++] = 0xdc00 | (c & 0x3ff); - } - } - - return buf2binstring(utf16buf, out); -}; - - -// Calculate max possible position in utf8 buffer, -// that will not break sequence. If that's not possible -// - (very small limits) return max size as is. -// -// buf[] - utf8 bytes array -// max - length limit (mandatory); -exports.utf8border = function (buf, max) { - var pos; - - max = max || buf.length; - if (max > buf.length) { max = buf.length; } - - // go back from last position, until start of sequence found - pos = max - 1; - while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } - - // Very small and broken sequence, - // return max, because we should return something anyway. - if (pos < 0) { return max; } - - // If we came to start of buffer - that means buffer is too small, - // return max too. - if (pos === 0) { return max; } - - return (pos + _utf8len[buf[pos]] > max) ? pos : max; -}; - -},{"./common":19}],21:[function(require,module,exports){ -'use strict'; - -// Note: adler32 takes 12% for level 0 and 2% for level 6. -// It isn't worth it to make additional optimizations as in original. -// Small size is preferable. - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -function adler32(adler, buf, len, pos) { - var s1 = (adler & 0xffff) |0, - s2 = ((adler >>> 16) & 0xffff) |0, - n = 0; - - while (len !== 0) { - // Set limit ~ twice less than 5552, to keep - // s2 in 31-bits, because we force signed ints. - // in other case %= will fail. - n = len > 2000 ? 2000 : len; - len -= n; - - do { - s1 = (s1 + buf[pos++]) |0; - s2 = (s2 + s1) |0; - } while (--n); - - s1 %= 65521; - s2 %= 65521; - } - - return (s1 | (s2 << 16)) |0; -} - - -module.exports = adler32; - -},{}],22:[function(require,module,exports){ -'use strict'; - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -module.exports = { - - /* Allowed flush values; see deflate() and inflate() below for details */ - Z_NO_FLUSH: 0, - Z_PARTIAL_FLUSH: 1, - Z_SYNC_FLUSH: 2, - Z_FULL_FLUSH: 3, - Z_FINISH: 4, - Z_BLOCK: 5, - Z_TREES: 6, - - /* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - Z_OK: 0, - Z_STREAM_END: 1, - Z_NEED_DICT: 2, - Z_ERRNO: -1, - Z_STREAM_ERROR: -2, - Z_DATA_ERROR: -3, - //Z_MEM_ERROR: -4, - Z_BUF_ERROR: -5, - //Z_VERSION_ERROR: -6, - - /* compression levels */ - Z_NO_COMPRESSION: 0, - Z_BEST_SPEED: 1, - Z_BEST_COMPRESSION: 9, - Z_DEFAULT_COMPRESSION: -1, - - - Z_FILTERED: 1, - Z_HUFFMAN_ONLY: 2, - Z_RLE: 3, - Z_FIXED: 4, - Z_DEFAULT_STRATEGY: 0, - - /* Possible values of the data_type field (though see inflate()) */ - Z_BINARY: 0, - Z_TEXT: 1, - //Z_ASCII: 1, // = Z_TEXT (deprecated) - Z_UNKNOWN: 2, - - /* The deflate compression method */ - Z_DEFLATED: 8 - //Z_NULL: null // Use -1 or null inline, depending on var type -}; - -},{}],23:[function(require,module,exports){ -'use strict'; - -// Note: we can't get significant speed boost here. -// So write code to minimize size - no pregenerated tables -// and array tools dependencies. - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -// Use ordinary array, since untyped makes no boost here -function makeTable() { - var c, table = []; - - for (var n = 0; n < 256; n++) { - c = n; - for (var k = 0; k < 8; k++) { - c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); - } - table[n] = c; - } - - return table; -} - -// Create table on load. Just 255 signed longs. Not a problem. -var crcTable = makeTable(); - - -function crc32(crc, buf, len, pos) { - var t = crcTable, - end = pos + len; - - crc ^= -1; - - for (var i = pos; i < end; i++) { - crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; -} - - -module.exports = crc32; - -},{}],24:[function(require,module,exports){ -'use strict'; - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -var utils = require('../utils/common'); -var trees = require('./trees'); -var adler32 = require('./adler32'); -var crc32 = require('./crc32'); -var msg = require('./messages'); - -/* Public constants ==========================================================*/ -/* ===========================================================================*/ - - -/* Allowed flush values; see deflate() and inflate() below for details */ -var Z_NO_FLUSH = 0; -var Z_PARTIAL_FLUSH = 1; -//var Z_SYNC_FLUSH = 2; -var Z_FULL_FLUSH = 3; -var Z_FINISH = 4; -var Z_BLOCK = 5; -//var Z_TREES = 6; - - -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ -var Z_OK = 0; -var Z_STREAM_END = 1; -//var Z_NEED_DICT = 2; -//var Z_ERRNO = -1; -var Z_STREAM_ERROR = -2; -var Z_DATA_ERROR = -3; -//var Z_MEM_ERROR = -4; -var Z_BUF_ERROR = -5; -//var Z_VERSION_ERROR = -6; - - -/* compression levels */ -//var Z_NO_COMPRESSION = 0; -//var Z_BEST_SPEED = 1; -//var Z_BEST_COMPRESSION = 9; -var Z_DEFAULT_COMPRESSION = -1; - - -var Z_FILTERED = 1; -var Z_HUFFMAN_ONLY = 2; -var Z_RLE = 3; -var Z_FIXED = 4; -var Z_DEFAULT_STRATEGY = 0; - -/* Possible values of the data_type field (though see inflate()) */ -//var Z_BINARY = 0; -//var Z_TEXT = 1; -//var Z_ASCII = 1; // = Z_TEXT -var Z_UNKNOWN = 2; - - -/* The deflate compression method */ -var Z_DEFLATED = 8; - -/*============================================================================*/ - - -var MAX_MEM_LEVEL = 9; -/* Maximum value for memLevel in deflateInit2 */ -var MAX_WBITS = 15; -/* 32K LZ77 window */ -var DEF_MEM_LEVEL = 8; - - -var LENGTH_CODES = 29; -/* number of length codes, not counting the special END_BLOCK code */ -var LITERALS = 256; -/* number of literal bytes 0..255 */ -var L_CODES = LITERALS + 1 + LENGTH_CODES; -/* number of Literal or Length codes, including the END_BLOCK code */ -var D_CODES = 30; -/* number of distance codes */ -var BL_CODES = 19; -/* number of codes used to transfer the bit lengths */ -var HEAP_SIZE = 2 * L_CODES + 1; -/* maximum heap size */ -var MAX_BITS = 15; -/* All codes must not exceed MAX_BITS bits */ - -var MIN_MATCH = 3; -var MAX_MATCH = 258; -var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1); - -var PRESET_DICT = 0x20; - -var INIT_STATE = 42; -var EXTRA_STATE = 69; -var NAME_STATE = 73; -var COMMENT_STATE = 91; -var HCRC_STATE = 103; -var BUSY_STATE = 113; -var FINISH_STATE = 666; - -var BS_NEED_MORE = 1; /* block not completed, need more input or more output */ -var BS_BLOCK_DONE = 2; /* block flush performed */ -var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */ -var BS_FINISH_DONE = 4; /* finish done, accept no more input or output */ - -var OS_CODE = 0x03; // Unix :) . Don't detect, use this default. - -function err(strm, errorCode) { - strm.msg = msg[errorCode]; - return errorCode; -} - -function rank(f) { - return ((f) << 1) - ((f) > 4 ? 9 : 0); -} - -function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } - - -/* ========================================================================= - * Flush as much pending output as possible. All deflate() output goes - * through this function so some applications may wish to modify it - * to avoid allocating a large strm->output buffer and copying into it. - * (See also read_buf()). - */ -function flush_pending(strm) { - var s = strm.state; - - //_tr_flush_bits(s); - var len = s.pending; - if (len > strm.avail_out) { - len = strm.avail_out; - } - if (len === 0) { return; } - - utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); - strm.next_out += len; - s.pending_out += len; - strm.total_out += len; - strm.avail_out -= len; - s.pending -= len; - if (s.pending === 0) { - s.pending_out = 0; - } -} - - -function flush_block_only(s, last) { - trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last); - s.block_start = s.strstart; - flush_pending(s.strm); -} - - -function put_byte(s, b) { - s.pending_buf[s.pending++] = b; -} - - -/* ========================================================================= - * Put a short in the pending buffer. The 16-bit value is put in MSB order. - * IN assertion: the stream state is correct and there is enough room in - * pending_buf. - */ -function putShortMSB(s, b) { -// put_byte(s, (Byte)(b >> 8)); -// put_byte(s, (Byte)(b & 0xff)); - s.pending_buf[s.pending++] = (b >>> 8) & 0xff; - s.pending_buf[s.pending++] = b & 0xff; -} - - -/* =========================================================================== - * Read a new buffer from the current input stream, update the adler32 - * and total number of bytes read. All deflate() input goes through - * this function so some applications may wish to modify it to avoid - * allocating a large strm->input buffer and copying from it. - * (See also flush_pending()). - */ -function read_buf(strm, buf, start, size) { - var len = strm.avail_in; - - if (len > size) { len = size; } - if (len === 0) { return 0; } - - strm.avail_in -= len; - - // zmemcpy(buf, strm->next_in, len); - utils.arraySet(buf, strm.input, strm.next_in, len, start); - if (strm.state.wrap === 1) { - strm.adler = adler32(strm.adler, buf, len, start); - } - - else if (strm.state.wrap === 2) { - strm.adler = crc32(strm.adler, buf, len, start); - } - - strm.next_in += len; - strm.total_in += len; - - return len; -} - - -/* =========================================================================== - * Set match_start to the longest match starting at the given string and - * return its length. Matches shorter or equal to prev_length are discarded, - * in which case the result is equal to prev_length and match_start is - * garbage. - * IN assertions: cur_match is the head of the hash chain for the current - * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 - * OUT assertion: the match length is not greater than s->lookahead. - */ -function longest_match(s, cur_match) { - var chain_length = s.max_chain_length; /* max hash chain length */ - var scan = s.strstart; /* current string */ - var match; /* matched string */ - var len; /* length of current match */ - var best_len = s.prev_length; /* best match length so far */ - var nice_match = s.nice_match; /* stop if match long enough */ - var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ? - s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/; - - var _win = s.window; // shortcut - - var wmask = s.w_mask; - var prev = s.prev; - - /* Stop when cur_match becomes <= limit. To simplify the code, - * we prevent matches with the string of window index 0. - */ - - var strend = s.strstart + MAX_MATCH; - var scan_end1 = _win[scan + best_len - 1]; - var scan_end = _win[scan + best_len]; - - /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ - // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); - - /* Do not waste too much time if we already have a good match: */ - if (s.prev_length >= s.good_match) { - chain_length >>= 2; - } - /* Do not look for matches beyond the end of the input. This is necessary - * to make deflate deterministic. - */ - if (nice_match > s.lookahead) { nice_match = s.lookahead; } - - // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); - - do { - // Assert(cur_match < s->strstart, "no future"); - match = cur_match; - - /* Skip to next match if the match length cannot increase - * or if the match length is less than 2. Note that the checks below - * for insufficient lookahead only occur occasionally for performance - * reasons. Therefore uninitialized memory will be accessed, and - * conditional jumps will be made that depend on those values. - * However the length of the match is limited to the lookahead, so - * the output of deflate is not affected by the uninitialized values. - */ - - if (_win[match + best_len] !== scan_end || - _win[match + best_len - 1] !== scan_end1 || - _win[match] !== _win[scan] || - _win[++match] !== _win[scan + 1]) { - continue; - } - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scan += 2; - match++; - // Assert(*scan == *match, "match[2]?"); - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do { - /*jshint noempty:false*/ - } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && - _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && - _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && - _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && - scan < strend); - - // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - - len = MAX_MATCH - (strend - scan); - scan = strend - MAX_MATCH; - - if (len > best_len) { - s.match_start = cur_match; - best_len = len; - if (len >= nice_match) { - break; - } - scan_end1 = _win[scan + best_len - 1]; - scan_end = _win[scan + best_len]; - } - } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); - - if (best_len <= s.lookahead) { - return best_len; - } - return s.lookahead; -} - - -/* =========================================================================== - * Fill the window when the lookahead becomes insufficient. - * Updates strstart and lookahead. - * - * IN assertion: lookahead < MIN_LOOKAHEAD - * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD - * At least one byte has been read, or avail_in == 0; reads are - * performed for at least two bytes (required for the zip translate_eol - * option -- not supported here). - */ -function fill_window(s) { - var _w_size = s.w_size; - var p, n, m, more, str; - - //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); - - do { - more = s.window_size - s.lookahead - s.strstart; - - // JS ints have 32 bit, block below not needed - /* Deal with !@#$% 64K limit: */ - //if (sizeof(int) <= 2) { - // if (more == 0 && s->strstart == 0 && s->lookahead == 0) { - // more = wsize; - // - // } else if (more == (unsigned)(-1)) { - // /* Very unlikely, but possible on 16 bit machine if - // * strstart == 0 && lookahead == 1 (input done a byte at time) - // */ - // more--; - // } - //} - - - /* If the window is almost full and there is insufficient lookahead, - * move the upper half to the lower one to make room in the upper half. - */ - if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { - - utils.arraySet(s.window, s.window, _w_size, _w_size, 0); - s.match_start -= _w_size; - s.strstart -= _w_size; - /* we now have strstart >= MAX_DIST */ - s.block_start -= _w_size; - - /* Slide the hash table (could be avoided with 32 bit values - at the expense of memory usage). We slide even when level == 0 - to keep the hash table consistent if we switch back to level > 0 - later. (Using level 0 permanently is not an optimal usage of - zlib, so we don't care about this pathological case.) - */ - - n = s.hash_size; - p = n; - do { - m = s.head[--p]; - s.head[p] = (m >= _w_size ? m - _w_size : 0); - } while (--n); - - n = _w_size; - p = n; - do { - m = s.prev[--p]; - s.prev[p] = (m >= _w_size ? m - _w_size : 0); - /* If n is not on any hash chain, prev[n] is garbage but - * its value will never be used. - */ - } while (--n); - - more += _w_size; - } - if (s.strm.avail_in === 0) { - break; - } - - /* If there was no sliding: - * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && - * more == window_size - lookahead - strstart - * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) - * => more >= window_size - 2*WSIZE + 2 - * In the BIG_MEM or MMAP case (not yet supported), - * window_size == input_size + MIN_LOOKAHEAD && - * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. - * Otherwise, window_size == 2*WSIZE so more >= 2. - * If there was sliding, more >= WSIZE. So in all cases, more >= 2. - */ - //Assert(more >= 2, "more < 2"); - n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); - s.lookahead += n; - - /* Initialize the hash value now that we have some input: */ - if (s.lookahead + s.insert >= MIN_MATCH) { - str = s.strstart - s.insert; - s.ins_h = s.window[str]; - - /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask; -//#if MIN_MATCH != 3 -// Call update_hash() MIN_MATCH-3 more times -//#endif - while (s.insert) { - /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; - - s.prev[str & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = str; - str++; - s.insert--; - if (s.lookahead + s.insert < MIN_MATCH) { - break; - } + if (!Module["load"] && Module["read"]) { + Module["load"] = function load(f) { + globalEval(Module["read"](f)); + }; } - } - /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, - * but this is not important since only literal bytes will be emitted. - */ - - } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); - - /* If the WIN_INIT bytes after the end of the current data have never been - * written, then zero those bytes in order to avoid memory check reports of - * the use of uninitialized (or uninitialised as Julian writes) bytes by - * the longest match routines. Update the high water mark for the next - * time through here. WIN_INIT is set to MAX_MATCH since the longest match - * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. - */ -// if (s.high_water < s.window_size) { -// var curr = s.strstart + s.lookahead; -// var init = 0; -// -// if (s.high_water < curr) { -// /* Previous high water mark below current data -- zero WIN_INIT -// * bytes or up to end of window, whichever is less. -// */ -// init = s.window_size - curr; -// if (init > WIN_INIT) -// init = WIN_INIT; -// zmemzero(s->window + curr, (unsigned)init); -// s->high_water = curr + init; -// } -// else if (s->high_water < (ulg)curr + WIN_INIT) { -// /* High water mark at or above current data, but below current data -// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up -// * to end of window, whichever is less. -// */ -// init = (ulg)curr + WIN_INIT - s->high_water; -// if (init > s->window_size - s->high_water) -// init = s->window_size - s->high_water; -// zmemzero(s->window + s->high_water, (unsigned)init); -// s->high_water += init; -// } -// } -// -// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, -// "not enough room for search"); -} - -/* =========================================================================== - * Copy without compression as much as possible from the input stream, return - * the current block state. - * This function does not insert new strings in the dictionary since - * uncompressible data is probably not useful. This function is used - * only for the level=0 compression option. - * NOTE: this function should be optimized to avoid extra copying from - * window to pending_buf. - */ -function deflate_stored(s, flush) { - /* Stored blocks are limited to 0xffff bytes, pending_buf is limited - * to pending_buf_size, and each stored block has a 5 byte header: - */ - var max_block_size = 0xffff; - - if (max_block_size > s.pending_buf_size - 5) { - max_block_size = s.pending_buf_size - 5; - } - - /* Copy as much as possible from input to output: */ - for (;;) { - /* Fill the window as much as possible: */ - if (s.lookahead <= 1) { - - //Assert(s->strstart < s->w_size+MAX_DIST(s) || - // s->block_start >= (long)s->w_size, "slide too late"); -// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) || -// s.block_start >= s.w_size)) { -// throw new Error("slide too late"); -// } - - fill_window(s); - if (s.lookahead === 0 && flush === Z_NO_FLUSH) { - return BS_NEED_MORE; + if (!Module["print"]) { + Module["print"] = function() { + }; } - - if (s.lookahead === 0) { - break; + if (!Module["printErr"]) { + Module["printErr"] = Module["print"]; } - /* flush the current block */ - } - //Assert(s->block_start >= 0L, "block gone"); -// if (s.block_start < 0) throw new Error("block gone"); - - s.strstart += s.lookahead; - s.lookahead = 0; - - /* Emit a stored block if pending_buf will be full: */ - var max_start = s.block_start + max_block_size; - - if (s.strstart === 0 || s.strstart >= max_start) { - /* strstart == 0 is possible when wraparound on 16-bit machine */ - s.lookahead = s.strstart - max_start; - s.strstart = max_start; - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - - - } - /* Flush if we may have to slide, otherwise block_start may become - * negative and the data will be gone: - */ - if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - } - - s.insert = 0; - - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - - if (s.strstart > s.block_start) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - - return BS_NEED_MORE; -} - -/* =========================================================================== - * Compress as much as possible from the input stream, return the current - * block state. - * This function does not perform lazy evaluation of matches and inserts - * new strings in the dictionary only for unmatched strings or for short - * matches. It is used only for the fast compression options. - */ -function deflate_fast(s, flush) { - var hash_head; /* head of the hash chain */ - var bflush; /* set if current block must be flushed */ - - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s.lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { - return BS_NEED_MORE; + if (!Module["arguments"]) { + Module["arguments"] = []; } - if (s.lookahead === 0) { - break; /* flush the current block */ + if (!Module["thisProgram"]) { + Module["thisProgram"] = "./this.program"; } - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = 0/*NIL*/; - if (s.lookahead >= MIN_MATCH) { - /*** INSERT_STRING(s, s.strstart, hash_head); ***/ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; - hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = s.strstart; - /***/ - } - - /* Find the longest match, discarding those <= prev_length. - * At this point we have always match_length < MIN_MATCH - */ - if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - s.match_length = longest_match(s, hash_head); - /* longest_match() sets match_start */ - } - if (s.match_length >= MIN_MATCH) { - // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only - - /*** _tr_tally_dist(s, s.strstart - s.match_start, - s.match_length - MIN_MATCH, bflush); ***/ - bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); - - s.lookahead -= s.match_length; - - /* Insert new strings in the hash table only if the match length - * is not too large. This saves time but degrades compression. - */ - if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) { - s.match_length--; /* string at strstart already in table */ - do { - s.strstart++; - /*** INSERT_STRING(s, s.strstart, hash_head); ***/ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; - hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = s.strstart; - /***/ - /* strstart never exceeds WSIZE-MAX_MATCH, so there are - * always MIN_MATCH bytes ahead. - */ - } while (--s.match_length !== 0); - s.strstart++; - } else - { - s.strstart += s.match_length; - s.match_length = 0; - s.ins_h = s.window[s.strstart]; - /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask; - -//#if MIN_MATCH != 3 -// Call UPDATE_HASH() MIN_MATCH-3 more times -//#endif - /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not - * matter since it will be recomputed at next deflate call. - */ + Module.print = Module["print"]; + Module.printErr = Module["printErr"]; + Module["preRun"] = []; + Module["postRun"] = []; + for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } } - } else { - /* No match, output a literal byte */ - //Tracevv((stderr,"%c", s.window[s.strstart])); - /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart]); - - s.lookahead--; - s.strstart++; - } - if (bflush) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; + var Runtime = { setTempRet0: function(value) { + tempRet0 = value; + }, getTempRet0: function() { + return tempRet0; + }, stackSave: function() { + return STACKTOP; + }, stackRestore: function(stackTop) { + STACKTOP = stackTop; + }, getNativeTypeSize: function(type2) { + switch (type2) { + 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 (type2[type2.length - 1] === "*") { + return Runtime.QUANTUM_SIZE; + } else if (type2[0] === "i") { + var bits = parseInt(type2.substr(1)); + assert(bits % 8 === 0); + return bits / 8; + } else { + return 0; + } + } + } + }, getNativeFieldSize: function(type2) { + return Math.max(Runtime.getNativeTypeSize(type2), Runtime.QUANTUM_SIZE); + }, STACK_ALIGN: 16, prepVararg: function(ptr, type2) { + if (type2 === "double" || type2 === "i64") { + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4; + } + } else { + assert((ptr & 3) === 0); + } + return ptr; + }, getAlignSize: function(type2, size, vararg) { + if (!vararg && (type2 == "i64" || type2 == "double")) + return 8; + if (!type2) + return Math.min(size, 8); + return Math.min(size || (type2 ? Runtime.getNativeFieldSize(type2) : 0), Runtime.QUANTUM_SIZE); + }, dynCall: function(sig, ptr, args) { + if (args && args.length) { + if (!args.splice) + args = Array.prototype.slice.call(args); + args.splice(0, 0, ptr); + return Module["dynCall_" + sig].apply(null, args); + } else { + return Module["dynCall_" + sig].call(null, ptr); + } + }, functionPointers: [], addFunction: function(func2) { + for (var i2 = 0; i2 < Runtime.functionPointers.length; i2++) { + if (!Runtime.functionPointers[i2]) { + Runtime.functionPointers[i2] = func2; + return 2 * (1 + i2); + } + } + throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."; + }, removeFunction: function(index) { + Runtime.functionPointers[(index - 2) / 2] = null; + }, warnOnce: function(text) { + if (!Runtime.warnOnce.shown) + Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); + } + }, funcWrappers: {}, getFuncWrapper: function(func2, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {}; + } + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func2]) { + sigCache[func2] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func2, arguments); + }; + } + return sigCache[func2]; + }, getCompilerSetting: function(name) { + throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"; + }, stackAlloc: function(size) { + var ret = STACKTOP; + STACKTOP = STACKTOP + size | 0; + STACKTOP = STACKTOP + 15 & -16; + return ret; + }, staticAlloc: function(size) { + var ret = STATICTOP; + STATICTOP = STATICTOP + size | 0; + STATICTOP = STATICTOP + 15 & -16; + return ret; + }, dynamicAlloc: function(size) { + var ret = DYNAMICTOP; + DYNAMICTOP = DYNAMICTOP + size | 0; + DYNAMICTOP = DYNAMICTOP + 15 & -16; + if (DYNAMICTOP >= TOTAL_MEMORY) { + var success = enlargeMemory(); + if (!success) { + DYNAMICTOP = ret; + return 0; + } + } + return ret; + }, alignMemory: function(size, quantum) { + var ret = size = Math.ceil(size / (quantum ? quantum : 16)) * (quantum ? quantum : 16); + return ret; + }, makeBigInt: function(low, high, unsigned) { + var ret = unsigned ? +(low >>> 0) + +(high >>> 0) * 4294967296 : +(low >>> 0) + +(high | 0) * 4294967296; + return ret; + }, GLOBAL_BASE: 8, QUANTUM_SIZE: 4, __dummy__: 0 }; + Module["Runtime"] = Runtime; + var __THREW__ = 0; + var ABORT = false; + var EXITSTATUS = 0; + var undef = 0; + var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat; + var tempI64, tempI64b; + var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9; + function assert(condition, text) { + if (!condition) { + abort("Assertion failed: " + text); + } } - /***/ - } - } - s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1); - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - if (s.last_lit) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - return BS_BLOCK_DONE; -} - -/* =========================================================================== - * Same as above, but achieves better compression. We use a lazy - * evaluation for matches: a match is finally adopted only if there is - * no better match at the next window position. - */ -function deflate_slow(s, flush) { - var hash_head; /* head of hash chain */ - var bflush; /* set if current block must be flushed */ - - var max_insert; - - /* Process the input block. */ - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s.lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { - return BS_NEED_MORE; + var globalScope = this; + function getCFunc(ident) { + var func = Module["_" + ident]; + if (!func) { + try { + func = eval("_" + ident); + } catch (e) { + } + } + assert(func, "Cannot call unknown function " + ident + " (perhaps LLVM optimizations or closure removed it?)"); + return func; } - if (s.lookahead === 0) { break; } /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = 0/*NIL*/; - if (s.lookahead >= MIN_MATCH) { - /*** INSERT_STRING(s, s.strstart, hash_head); ***/ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; - hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = s.strstart; - /***/ - } - - /* Find the longest match, discarding those <= prev_length. - */ - s.prev_length = s.match_length; - s.prev_match = s.match_start; - s.match_length = MIN_MATCH - 1; - - if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match && - s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - s.match_length = longest_match(s, hash_head); - /* longest_match() sets match_start */ - - if (s.match_length <= 5 && - (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) { - - /* If prev_match is also MIN_MATCH, match_start is garbage - * but we will ignore the current match anyway. - */ - s.match_length = MIN_MATCH - 1; + var cwrap, ccall; + (function() { + var JSfuncs = { "stackSave": function() { + Runtime.stackSave(); + }, "stackRestore": function() { + Runtime.stackRestore(); + }, "arrayToC": function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, "stringToC": function(str) { + var ret = 0; + if (str !== null && str !== void 0 && str !== 0) { + ret = Runtime.stackAlloc((str.length << 2) + 1); + writeStringToMemory(str, ret); + } + return ret; + } }; + var toC = { "string": JSfuncs["stringToC"], "array": JSfuncs["arrayToC"] }; + ccall = function ccallFunc(ident2, returnType2, argTypes2, args, opts) { + var func2 = getCFunc(ident2); + var cArgs = []; + var stack = 0; + if (args) { + for (var i2 = 0; i2 < args.length; i2++) { + var converter = toC[argTypes2[i2]]; + if (converter) { + if (stack === 0) + stack = Runtime.stackSave(); + cArgs[i2] = converter(args[i2]); + } else { + cArgs[i2] = args[i2]; + } + } + } + var ret = func2.apply(null, cArgs); + if (returnType2 === "string") + ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push(function() { + Runtime.stackRestore(stack); + }); + return; + } + Runtime.stackRestore(stack); + } + return ret; + }; + var sourceRegex = /^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + function parseJSFunc(jsfunc) { + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return { arguments: parsed[0], body: parsed[1], returnValue: parsed[2] }; + } + var JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + JSsource[fun] = parseJSFunc(JSfuncs[fun]); + } + } + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + var numericArgs = argTypes.every(function(type2) { + return type2 === "number"; + }); + var numericRet = returnType !== "string"; + if (numericRet && numericArgs) { + return cfunc; + } + var argNames = argTypes.map(function(x, i2) { + return "$" + i2; + }); + var funcstr = "(function(" + argNames.join(",") + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + funcstr += "var stack = " + JSsource["stackSave"].body + ";"; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], type = argTypes[i]; + if (type === "number") + continue; + var convertCode = JSsource[type + "ToC"]; + funcstr += "var " + convertCode.arguments + " = " + arg + ";"; + funcstr += convertCode.body + ";"; + funcstr += arg + "=" + convertCode.returnValue + ";"; + } + } + var cfuncname = parseJSFunc(function() { + return cfunc; + }).returnValue; + funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");"; + if (!numericRet) { + var strgfy = parseJSFunc(function() { + return Pointer_stringify; + }).returnValue; + funcstr += "ret = " + strgfy + "(ret);"; + } + if (!numericArgs) { + funcstr += JSsource["stackRestore"].body.replace("()", "(stack)") + ";"; + } + funcstr += "return ret})"; + return eval(funcstr); + }; + })(); + Module["ccall"] = ccall; + Module["cwrap"] = cwrap; + function setValue(ptr, value, type2, noSafe) { + type2 = type2 || "i8"; + if (type2.charAt(type2.length - 1) === "*") + type2 = "i32"; + switch (type2) { + 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: " + type2); + } } - } - /* If there was a match at the previous step and the current - * match is not better, output the previous match: - */ - if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { - max_insert = s.strstart + s.lookahead - MIN_MATCH; - /* Do not insert strings in hash table beyond this. */ - - //check_match(s, s.strstart-1, s.prev_match, s.prev_length); - - /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match, - s.prev_length - MIN_MATCH, bflush);***/ - bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); - /* Insert in hash table all strings up to the end of the match. - * strstart-1 and strstart are already inserted. If there is not - * enough lookahead, the last two strings are not inserted in - * the hash table. - */ - s.lookahead -= s.prev_length - 1; - s.prev_length -= 2; - do { - if (++s.strstart <= max_insert) { - /*** INSERT_STRING(s, s.strstart, hash_head); ***/ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; - hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = s.strstart; - /***/ + Module["setValue"] = setValue; + function getValue(ptr, type2, noSafe) { + type2 = type2 || "i8"; + if (type2.charAt(type2.length - 1) === "*") + type2 = "i32"; + switch (type2) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return HEAP16[ptr >> 1]; + case "i32": + return HEAP32[ptr >> 2]; + case "i64": + return HEAP32[ptr >> 2]; + case "float": + return HEAPF32[ptr >> 2]; + case "double": + return HEAPF64[ptr >> 3]; + default: + abort("invalid type for setValue: " + type2); } - } while (--s.prev_length !== 0); - s.match_available = 0; - s.match_length = MIN_MATCH - 1; - s.strstart++; - - if (bflush) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; + return null; + } + Module["getValue"] = getValue; + var ALLOC_NORMAL = 0; + var ALLOC_STACK = 1; + var ALLOC_STATIC = 2; + var ALLOC_DYNAMIC = 3; + var ALLOC_NONE = 4; + Module["ALLOC_NORMAL"] = ALLOC_NORMAL; + Module["ALLOC_STACK"] = ALLOC_STACK; + Module["ALLOC_STATIC"] = ALLOC_STATIC; + Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; + Module["ALLOC_NONE"] = ALLOC_NONE; + function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === "number") { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + var singleType = typeof types === "string" ? types : null; + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === void 0 ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); + } + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[ptr >> 2] = 0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[ptr++ >> 0] = 0; + } + return ret; + } + if (singleType === "i8") { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + var i2 = 0, type2, typeSize, previousType; + while (i2 < size) { + var curr = slab[i2]; + if (typeof curr === "function") { + curr = Runtime.getFunctionIndex(curr); + } + type2 = singleType || types[i2]; + if (type2 === 0) { + i2++; + continue; + } + if (type2 == "i64") + type2 = "i32"; + setValue(ret + i2, curr, type2); + if (previousType !== type2) { + typeSize = Runtime.getNativeTypeSize(type2); + previousType = type2; + } + i2 += typeSize; } - /***/ + return ret; } - - } else if (s.match_available) { - /* If there was no match at the previous position, output a - * single literal. If there was a match but the current match - * is longer, truncate the previous match to a single literal. - */ - //Tracevv((stderr,"%c", s->window[s->strstart-1])); - /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); - - if (bflush) { - /*** FLUSH_BLOCK_ONLY(s, 0) ***/ - flush_block_only(s, false); - /***/ + Module["allocate"] = allocate; + function getMemory(size) { + if (!staticSealed) + return Runtime.staticAlloc(size); + if (typeof _sbrk !== "undefined" && !_sbrk.called || !runtimeInitialized) + return Runtime.dynamicAlloc(size); + return _malloc(size); } - s.strstart++; - s.lookahead--; - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; + Module["getMemory"] = getMemory; + function Pointer_stringify(ptr, length) { + if (length === 0 || !ptr) + return ""; + var hasUtf = 0; + var t; + var i2 = 0; + while (1) { + t = HEAPU8[ptr + i2 >> 0]; + hasUtf |= t; + if (t == 0 && !length) + break; + i2++; + if (length && i2 == length) + break; + } + if (!length) + length = i2; + var ret = ""; + if (hasUtf < 128) { + var MAX_CHUNK = 1024; + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; + } + return Module["UTF8ToString"](ptr); } - } else { - /* There is no previous match to compare with, wait for - * the next step to decide. - */ - s.match_available = 1; - s.strstart++; - s.lookahead--; - } - } - //Assert (flush != Z_NO_FLUSH, "no flush?"); - if (s.match_available) { - //Tracevv((stderr,"%c", s->window[s->strstart-1])); - /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); - - s.match_available = 0; - } - s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - if (s.last_lit) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - - return BS_BLOCK_DONE; -} - - -/* =========================================================================== - * For Z_RLE, simply look for runs of bytes, generate matches only of distance - * one. Do not maintain a hash table. (It will be regenerated if this run of - * deflate switches away from Z_RLE.) - */ -function deflate_rle(s, flush) { - var bflush; /* set if current block must be flushed */ - var prev; /* byte at distance one to match */ - var scan, strend; /* scan goes up to strend for length of run */ - - var _win = s.window; - - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the longest run, plus one for the unrolled loop. - */ - if (s.lookahead <= MAX_MATCH) { - fill_window(s); - if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) { - return BS_NEED_MORE; + Module["Pointer_stringify"] = Pointer_stringify; + function AsciiToString(ptr) { + var str = ""; + while (1) { + var ch = HEAP8[ptr++ >> 0]; + if (!ch) + return str; + str += String.fromCharCode(ch); + } } - if (s.lookahead === 0) { break; } /* flush the current block */ - } - - /* See how many times the previous byte repeats */ - s.match_length = 0; - if (s.lookahead >= MIN_MATCH && s.strstart > 0) { - scan = s.strstart - 1; - prev = _win[scan]; - if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { - strend = s.strstart + MAX_MATCH; - do { - /*jshint noempty:false*/ - } while (prev === _win[++scan] && prev === _win[++scan] && - prev === _win[++scan] && prev === _win[++scan] && - prev === _win[++scan] && prev === _win[++scan] && - prev === _win[++scan] && prev === _win[++scan] && - scan < strend); - s.match_length = MAX_MATCH - (strend - scan); - if (s.match_length > s.lookahead) { - s.match_length = s.lookahead; - } - } - //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan"); - } - - /* Emit match if have run of MIN_MATCH or longer, else emit literal */ - if (s.match_length >= MIN_MATCH) { - //check_match(s, s.strstart, s.strstart - 1, s.match_length); - - /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/ - bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); - - s.lookahead -= s.match_length; - s.strstart += s.match_length; - s.match_length = 0; - } else { - /* No match, output a literal byte */ - //Tracevv((stderr,"%c", s->window[s->strstart])); - /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart]); - - s.lookahead--; - s.strstart++; - } - if (bflush) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; + Module["AsciiToString"] = AsciiToString; + function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); } - /***/ - } - } - s.insert = 0; - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - if (s.last_lit) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - return BS_BLOCK_DONE; -} - -/* =========================================================================== - * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. - * (It will be regenerated if this run of deflate switches away from Huffman.) - */ -function deflate_huff(s, flush) { - var bflush; /* set if current block must be flushed */ - - for (;;) { - /* Make sure that we have a literal to write. */ - if (s.lookahead === 0) { - fill_window(s); - if (s.lookahead === 0) { - if (flush === Z_NO_FLUSH) { - return BS_NEED_MORE; + Module["stringToAscii"] = stringToAscii; + function UTF8ArrayToString(u8Array, idx) { + var u0, u1, u2, u3, u4, u5; + var str = ""; + while (1) { + u0 = u8Array[idx++]; + if (!u0) + return str; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + u1 = u8Array[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + u2 = u8Array[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 248) == 240) { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u3; + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 252) == 248) { + u0 = (u0 & 3) << 24 | u1 << 18 | u2 << 12 | u3 << 6 | u4; + } else { + u5 = u8Array[idx++] & 63; + u0 = (u0 & 1) << 30 | u1 << 24 | u2 << 18 | u3 << 12 | u4 << 6 | u5; + } + } + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } } - break; /* flush the current block */ } - } - - /* Output a literal byte */ - s.match_length = 0; - //Tracevv((stderr,"%c", s->window[s->strstart])); - /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart]); - s.lookahead--; - s.strstart++; - if (bflush) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - } - s.insert = 0; - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - if (s.last_lit) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - return BS_BLOCK_DONE; -} - -/* Values for max_lazy_match, good_match and max_chain_length, depending on - * the desired pack level (0..9). The values given below have been tuned to - * exclude worst case performance for pathological files. Better values may be - * found for specific files. - */ -function Config(good_length, max_lazy, nice_length, max_chain, func) { - this.good_length = good_length; - this.max_lazy = max_lazy; - this.nice_length = nice_length; - this.max_chain = max_chain; - this.func = func; -} - -var configuration_table; - -configuration_table = [ - /* good lazy nice chain */ - new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */ - new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */ - new Config(4, 5, 16, 8, deflate_fast), /* 2 */ - new Config(4, 6, 32, 32, deflate_fast), /* 3 */ - - new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */ - new Config(8, 16, 32, 32, deflate_slow), /* 5 */ - new Config(8, 16, 128, 128, deflate_slow), /* 6 */ - new Config(8, 32, 128, 256, deflate_slow), /* 7 */ - new Config(32, 128, 258, 1024, deflate_slow), /* 8 */ - new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */ -]; - - -/* =========================================================================== - * Initialize the "longest match" routines for a new zlib stream - */ -function lm_init(s) { - s.window_size = 2 * s.w_size; - - /*** CLEAR_HASH(s); ***/ - zero(s.head); // Fill with NIL (= 0); - - /* Set the default configuration parameters: - */ - s.max_lazy_match = configuration_table[s.level].max_lazy; - s.good_match = configuration_table[s.level].good_length; - s.nice_match = configuration_table[s.level].nice_length; - s.max_chain_length = configuration_table[s.level].max_chain; - - s.strstart = 0; - s.block_start = 0; - s.lookahead = 0; - s.insert = 0; - s.match_length = s.prev_length = MIN_MATCH - 1; - s.match_available = 0; - s.ins_h = 0; -} - - -function DeflateState() { - this.strm = null; /* pointer back to this zlib stream */ - this.status = 0; /* as the name implies */ - this.pending_buf = null; /* output still pending */ - this.pending_buf_size = 0; /* size of pending_buf */ - this.pending_out = 0; /* next pending byte to output to the stream */ - this.pending = 0; /* nb of bytes in the pending buffer */ - this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ - this.gzhead = null; /* gzip header information to write */ - this.gzindex = 0; /* where in extra, name, or comment */ - this.method = Z_DEFLATED; /* can only be DEFLATED */ - this.last_flush = -1; /* value of flush param for previous deflate call */ - - this.w_size = 0; /* LZ77 window size (32K by default) */ - this.w_bits = 0; /* log2(w_size) (8..16) */ - this.w_mask = 0; /* w_size - 1 */ - - this.window = null; - /* Sliding window. Input bytes are read into the second half of the window, - * and move to the first half later to keep a dictionary of at least wSize - * bytes. With this organization, matches are limited to a distance of - * wSize-MAX_MATCH bytes, but this ensures that IO is always - * performed with a length multiple of the block size. - */ - - this.window_size = 0; - /* Actual size of window: 2*wSize, except when the user input buffer - * is directly used as sliding window. - */ - - this.prev = null; - /* Link to older string with same hash index. To limit the size of this - * array to 64K, this link is maintained only for the last 32K strings. - * An index in this array is thus a window index modulo 32K. - */ - - this.head = null; /* Heads of the hash chains or NIL. */ - - this.ins_h = 0; /* hash index of string to be inserted */ - this.hash_size = 0; /* number of elements in hash table */ - this.hash_bits = 0; /* log2(hash_size) */ - this.hash_mask = 0; /* hash_size-1 */ - - this.hash_shift = 0; - /* Number of bits by which ins_h must be shifted at each input - * step. It must be such that after MIN_MATCH steps, the oldest - * byte no longer takes part in the hash key, that is: - * hash_shift * MIN_MATCH >= hash_bits - */ - - this.block_start = 0; - /* Window position at the beginning of the current output block. Gets - * negative when the window is moved backwards. - */ - - this.match_length = 0; /* length of best match */ - this.prev_match = 0; /* previous match */ - this.match_available = 0; /* set if previous match exists */ - this.strstart = 0; /* start of string to insert */ - this.match_start = 0; /* start of matching string */ - this.lookahead = 0; /* number of valid bytes ahead in window */ - - this.prev_length = 0; - /* Length of the best match at previous step. Matches not greater than this - * are discarded. This is used in the lazy match evaluation. - */ - - this.max_chain_length = 0; - /* To speed up deflation, hash chains are never searched beyond this - * length. A higher limit improves compression ratio but degrades the - * speed. - */ - - this.max_lazy_match = 0; - /* Attempt to find a better match only when the current match is strictly - * smaller than this value. This mechanism is used only for compression - * levels >= 4. - */ - // That's alias to max_lazy_match, don't use directly - //this.max_insert_length = 0; - /* Insert new strings in the hash table only if the match length is not - * greater than this length. This saves time but degrades compression. - * max_insert_length is used only for compression levels <= 3. - */ - - this.level = 0; /* compression level (1..9) */ - this.strategy = 0; /* favor or force Huffman coding*/ - - this.good_match = 0; - /* Use a faster search when the previous match is longer than this */ - - this.nice_match = 0; /* Stop searching when current match exceeds this */ - - /* used by trees.c: */ - - /* Didn't use ct_data typedef below to suppress compiler warning */ - - // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ - // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ - // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ - - // Use flat array of DOUBLE size, with interleaved fata, - // because JS does not support effective - this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); - this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2); - this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2); - zero(this.dyn_ltree); - zero(this.dyn_dtree); - zero(this.bl_tree); - - this.l_desc = null; /* desc. for literal tree */ - this.d_desc = null; /* desc. for distance tree */ - this.bl_desc = null; /* desc. for bit length tree */ - - //ush bl_count[MAX_BITS+1]; - this.bl_count = new utils.Buf16(MAX_BITS + 1); - /* number of codes at each bit length for an optimal tree */ - - //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ - this.heap = new utils.Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */ - zero(this.heap); - - this.heap_len = 0; /* number of elements in the heap */ - this.heap_max = 0; /* element of largest frequency */ - /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. - * The same heap array is used to build all trees. - */ - - this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1]; - zero(this.depth); - /* Depth of each subtree used as tie breaker for trees of equal frequency - */ - - this.l_buf = 0; /* buffer index for literals or lengths */ - - this.lit_bufsize = 0; - /* Size of match buffer for literals/lengths. There are 4 reasons for - * limiting lit_bufsize to 64K: - * - frequencies can be kept in 16 bit counters - * - if compression is not successful for the first block, all input - * data is still in the window so we can still emit a stored block even - * when input comes from standard input. (This can also be done for - * all blocks if lit_bufsize is not greater than 32K.) - * - if compression is not successful for a file smaller than 64K, we can - * even emit a stored file instead of a stored block (saving 5 bytes). - * This is applicable only for zip (not gzip or zlib). - * - creating new Huffman trees less frequently may not provide fast - * adaptation to changes in the input data statistics. (Take for - * example a binary file with poorly compressible code followed by - * a highly compressible string table.) Smaller buffer sizes give - * fast adaptation but have of course the overhead of transmitting - * trees more frequently. - * - I can't count above 4 - */ - - this.last_lit = 0; /* running index in l_buf */ - - this.d_buf = 0; - /* Buffer index for distances. To simplify the code, d_buf and l_buf have - * the same number of elements. To use different lengths, an extra flag - * array would be necessary. - */ - - this.opt_len = 0; /* bit length of current block with optimal trees */ - this.static_len = 0; /* bit length of current block with static trees */ - this.matches = 0; /* number of string matches in current block */ - this.insert = 0; /* bytes at end of window left to insert */ - - - this.bi_buf = 0; - /* Output buffer. bits are inserted starting at the bottom (least - * significant bits). - */ - this.bi_valid = 0; - /* Number of valid bits in bi_buf. All bits above the last valid bit - * are always zero. - */ - - // Used for window memory init. We safely ignore it for JS. That makes - // sense only for pointers and memory check tools. - //this.high_water = 0; - /* High water mark offset in window for initialized bytes -- bytes above - * this are set to zero in order to avoid memory check warnings when - * longest match routines access bytes past the input. This is then - * updated to the new high water mark. - */ -} - - -function deflateResetKeep(strm) { - var s; - - if (!strm || !strm.state) { - return err(strm, Z_STREAM_ERROR); - } - - strm.total_in = strm.total_out = 0; - strm.data_type = Z_UNKNOWN; - - s = strm.state; - s.pending = 0; - s.pending_out = 0; - - if (s.wrap < 0) { - s.wrap = -s.wrap; - /* was made negative by deflate(..., Z_FINISH); */ - } - s.status = (s.wrap ? INIT_STATE : BUSY_STATE); - strm.adler = (s.wrap === 2) ? - 0 // crc32(0, Z_NULL, 0) - : - 1; // adler32(0, Z_NULL, 0) - s.last_flush = Z_NO_FLUSH; - trees._tr_init(s); - return Z_OK; -} - - -function deflateReset(strm) { - var ret = deflateResetKeep(strm); - if (ret === Z_OK) { - lm_init(strm.state); - } - return ret; -} - - -function deflateSetHeader(strm, head) { - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; } - strm.state.gzhead = head; - return Z_OK; -} - - -function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { - if (!strm) { // === Z_NULL - return Z_STREAM_ERROR; - } - var wrap = 1; - - if (level === Z_DEFAULT_COMPRESSION) { - level = 6; - } - - if (windowBits < 0) { /* suppress zlib wrapper */ - wrap = 0; - windowBits = -windowBits; - } - - else if (windowBits > 15) { - wrap = 2; /* write gzip wrapper instead */ - windowBits -= 16; - } - - - if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || - windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || - strategy < 0 || strategy > Z_FIXED) { - return err(strm, Z_STREAM_ERROR); - } - - - if (windowBits === 8) { - windowBits = 9; - } - /* until 256-byte window bug fixed */ - - var s = new DeflateState(); - - strm.state = s; - s.strm = strm; - - s.wrap = wrap; - s.gzhead = null; - s.w_bits = windowBits; - s.w_size = 1 << s.w_bits; - s.w_mask = s.w_size - 1; - - s.hash_bits = memLevel + 7; - s.hash_size = 1 << s.hash_bits; - s.hash_mask = s.hash_size - 1; - s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); - - s.window = new utils.Buf8(s.w_size * 2); - s.head = new utils.Buf16(s.hash_size); - s.prev = new utils.Buf16(s.w_size); - - // Don't need mem init magic for JS. - //s.high_water = 0; /* nothing written to s->window yet */ - - s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ - - s.pending_buf_size = s.lit_bufsize * 4; - - //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); - //s->pending_buf = (uchf *) overlay; - s.pending_buf = new utils.Buf8(s.pending_buf_size); - - // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`) - //s->d_buf = overlay + s->lit_bufsize/sizeof(ush); - s.d_buf = 1 * s.lit_bufsize; - - //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; - s.l_buf = (1 + 2) * s.lit_bufsize; - - s.level = level; - s.strategy = strategy; - s.method = method; - - return deflateReset(strm); -} - -function deflateInit(strm, level) { - return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); -} - - -function deflate(strm, flush) { - var old_flush, s; - var beg, val; // for gzip header write only - - if (!strm || !strm.state || - flush > Z_BLOCK || flush < 0) { - return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; - } - - s = strm.state; - - if (!strm.output || - (!strm.input && strm.avail_in !== 0) || - (s.status === FINISH_STATE && flush !== Z_FINISH)) { - return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR); - } - - s.strm = strm; /* just in case */ - old_flush = s.last_flush; - s.last_flush = flush; - - /* Write the header */ - if (s.status === INIT_STATE) { - - if (s.wrap === 2) { // GZIP header - strm.adler = 0; //crc32(0L, Z_NULL, 0); - put_byte(s, 31); - put_byte(s, 139); - put_byte(s, 8); - if (!s.gzhead) { // s->gzhead == Z_NULL - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, s.level === 9 ? 2 : - (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? - 4 : 0)); - put_byte(s, OS_CODE); - s.status = BUSY_STATE; - } - else { - put_byte(s, (s.gzhead.text ? 1 : 0) + - (s.gzhead.hcrc ? 2 : 0) + - (!s.gzhead.extra ? 0 : 4) + - (!s.gzhead.name ? 0 : 8) + - (!s.gzhead.comment ? 0 : 16) - ); - put_byte(s, s.gzhead.time & 0xff); - put_byte(s, (s.gzhead.time >> 8) & 0xff); - put_byte(s, (s.gzhead.time >> 16) & 0xff); - put_byte(s, (s.gzhead.time >> 24) & 0xff); - put_byte(s, s.level === 9 ? 2 : - (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? - 4 : 0)); - put_byte(s, s.gzhead.os & 0xff); - if (s.gzhead.extra && s.gzhead.extra.length) { - put_byte(s, s.gzhead.extra.length & 0xff); - put_byte(s, (s.gzhead.extra.length >> 8) & 0xff); + Module["UTF8ArrayToString"] = UTF8ArrayToString; + function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8, ptr); + } + Module["UTF8ToString"] = UTF8ToString; + function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) + return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i2 = 0; i2 < str.length; ++i2) { + var u = str.charCodeAt(i2); + if (u >= 55296 && u <= 57343) + u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i2) & 1023; + if (u <= 127) { + if (outIdx >= endIdx) + break; + outU8Array[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) + break; + outU8Array[outIdx++] = 192 | u >> 6; + outU8Array[outIdx++] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) + break; + outU8Array[outIdx++] = 224 | u >> 12; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63; + } else if (u <= 2097151) { + if (outIdx + 3 >= endIdx) + break; + outU8Array[outIdx++] = 240 | u >> 18; + outU8Array[outIdx++] = 128 | u >> 12 & 63; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63; + } else if (u <= 67108863) { + if (outIdx + 4 >= endIdx) + break; + outU8Array[outIdx++] = 248 | u >> 24; + outU8Array[outIdx++] = 128 | u >> 18 & 63; + outU8Array[outIdx++] = 128 | u >> 12 & 63; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63; + } else { + if (outIdx + 5 >= endIdx) + break; + outU8Array[outIdx++] = 252 | u >> 30; + outU8Array[outIdx++] = 128 | u >> 24 & 63; + outU8Array[outIdx++] = 128 | u >> 18 & 63; + outU8Array[outIdx++] = 128 | u >> 12 & 63; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63; + } } - if (s.gzhead.hcrc) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0); + outU8Array[outIdx] = 0; + return outIdx - startIdx; + } + Module["stringToUTF8Array"] = stringToUTF8Array; + function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + } + Module["stringToUTF8"] = stringToUTF8; + function lengthBytesUTF8(str) { + var len = 0; + for (var i2 = 0; i2 < str.length; ++i2) { + var u = str.charCodeAt(i2); + if (u >= 55296 && u <= 57343) + u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i2) & 1023; + if (u <= 127) { + ++len; + } else if (u <= 2047) { + len += 2; + } else if (u <= 65535) { + len += 3; + } else if (u <= 2097151) { + len += 4; + } else if (u <= 67108863) { + len += 5; + } else { + len += 6; + } } - s.gzindex = 0; - s.status = EXTRA_STATE; + return len; } - } - else // DEFLATE header - { - var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8; - var level_flags = -1; - - if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { - level_flags = 0; - } else if (s.level < 6) { - level_flags = 1; - } else if (s.level === 6) { - level_flags = 2; - } else { - level_flags = 3; + Module["lengthBytesUTF8"] = lengthBytesUTF8; + function UTF16ToString(ptr) { + var i2 = 0; + var str = ""; + while (1) { + var codeUnit = HEAP16[ptr + i2 * 2 >> 1]; + if (codeUnit == 0) + return str; + ++i2; + str += String.fromCharCode(codeUnit); + } } - header |= (level_flags << 6); - if (s.strstart !== 0) { header |= PRESET_DICT; } - header += 31 - (header % 31); - - s.status = BUSY_STATE; - putShortMSB(s, header); - - /* Save the adler32 of the preset dictionary: */ - if (s.strstart !== 0) { - putShortMSB(s, strm.adler >>> 16); - putShortMSB(s, strm.adler & 0xffff); + Module["UTF16ToString"] = UTF16ToString; + function stringToUTF16(str, outPtr, maxBytesToWrite) { + if (maxBytesToWrite === void 0) { + maxBytesToWrite = 2147483647; + } + if (maxBytesToWrite < 2) + return 0; + maxBytesToWrite -= 2; + var startPtr = outPtr; + var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; + for (var i2 = 0; i2 < numCharsToWrite; ++i2) { + var codeUnit = str.charCodeAt(i2); + HEAP16[outPtr >> 1] = codeUnit; + outPtr += 2; + } + HEAP16[outPtr >> 1] = 0; + return outPtr - startPtr; } - strm.adler = 1; // adler32(0L, Z_NULL, 0); - } - } - -//#ifdef GZIP - if (s.status === EXTRA_STATE) { - if (s.gzhead.extra/* != Z_NULL*/) { - beg = s.pending; /* start of bytes to update crc */ - - while (s.gzindex < (s.gzhead.extra.length & 0xffff)) { - if (s.pending === s.pending_buf_size) { - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); - } - flush_pending(strm); - beg = s.pending; - if (s.pending === s.pending_buf_size) { - break; + Module["stringToUTF16"] = stringToUTF16; + function lengthBytesUTF16(str) { + return str.length * 2; + } + Module["lengthBytesUTF16"] = lengthBytesUTF16; + function UTF32ToString(ptr) { + var i2 = 0; + var str = ""; + while (1) { + var utf32 = HEAP32[ptr + i2 * 4 >> 2]; + if (utf32 == 0) + return str; + ++i2; + if (utf32 >= 65536) { + var ch = utf32 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } else { + str += String.fromCharCode(utf32); } } - put_byte(s, s.gzhead.extra[s.gzindex] & 0xff); - s.gzindex++; } - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + Module["UTF32ToString"] = UTF32ToString; + function stringToUTF32(str, outPtr, maxBytesToWrite) { + if (maxBytesToWrite === void 0) { + maxBytesToWrite = 2147483647; + } + if (maxBytesToWrite < 4) + return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i2 = 0; i2 < str.length; ++i2) { + var codeUnit = str.charCodeAt(i2); + if (codeUnit >= 55296 && codeUnit <= 57343) { + var trailSurrogate = str.charCodeAt(++i2); + codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; + } + HEAP32[outPtr >> 2] = codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) + break; + } + HEAP32[outPtr >> 2] = 0; + return outPtr - startPtr; } - if (s.gzindex === s.gzhead.extra.length) { - s.gzindex = 0; - s.status = NAME_STATE; + Module["stringToUTF32"] = stringToUTF32; + function lengthBytesUTF32(str) { + var len = 0; + for (var i2 = 0; i2 < str.length; ++i2) { + var codeUnit = str.charCodeAt(i2); + if (codeUnit >= 55296 && codeUnit <= 57343) + ++i2; + len += 4; + } + return len; } - } - else { - s.status = NAME_STATE; - } - } - if (s.status === NAME_STATE) { - if (s.gzhead.name/* != Z_NULL*/) { - beg = s.pending; /* start of bytes to update crc */ - //int val; - - do { - if (s.pending === s.pending_buf_size) { - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + Module["lengthBytesUTF32"] = lengthBytesUTF32; + function demangle(func2) { + var hasLibcxxabi = !!Module["___cxa_demangle"]; + if (hasLibcxxabi) { + try { + var buf = _malloc(func2.length); + writeStringToMemory(func2.substr(1), buf); + var status = _malloc(4); + var ret = Module["___cxa_demangle"](buf, 0, 0, status); + if (getValue(status, "i32") === 0 && ret) { + return Pointer_stringify(ret); + } + } catch (e) { + } finally { + if (buf) + _free(buf); + if (status) + _free(status); + if (ret) + _free(ret); } - flush_pending(strm); - beg = s.pending; - if (s.pending === s.pending_buf_size) { - val = 1; - break; + } + var i2 = 3; + var basicTypes = { "v": "void", "b": "bool", "c": "char", "s": "short", "i": "int", "l": "long", "f": "float", "d": "double", "w": "wchar_t", "a": "signed char", "h": "unsigned char", "t": "unsigned short", "j": "unsigned int", "m": "unsigned long", "x": "long long", "y": "unsigned long long", "z": "..." }; + var subs = []; + var first = true; + function dump2(x) { + if (x) + Module.print(x); + Module.print(func2); + var pre = ""; + for (var a = 0; a < i2; a++) + pre += " "; + Module.print(pre + "^"); + } + function parseNested() { + i2++; + if (func2[i2] === "K") + i2++; + var parts = []; + while (func2[i2] !== "E") { + if (func2[i2] === "S") { + i2++; + var next = func2.indexOf("_", i2); + var num = func2.substring(i2, next) || 0; + parts.push(subs[num] || "?"); + i2 = next + 1; + continue; + } + if (func2[i2] === "C") { + parts.push(parts[parts.length - 1]); + i2 += 2; + continue; + } + var size = parseInt(func2.substr(i2)); + var pre = size.toString().length; + if (!size || !pre) { + i2--; + break; + } + var curr = func2.substr(i2 + pre, size); + parts.push(curr); + subs.push(curr); + i2 += pre + size; } + i2++; + return parts; } - // JS specific: little magic to add zero terminator to end of string - if (s.gzindex < s.gzhead.name.length) { - val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff; - } else { - val = 0; + function parse(rawList, limit, allowVoid) { + limit = limit || Infinity; + var ret2 = "", list = []; + function flushList() { + return "(" + list.join(", ") + ")"; + } + var name; + if (func2[i2] === "N") { + name = parseNested().join("::"); + limit--; + if (limit === 0) + return rawList ? [name] : name; + } else { + if (func2[i2] === "K" || first && func2[i2] === "L") + i2++; + var size = parseInt(func2.substr(i2)); + if (size) { + var pre = size.toString().length; + name = func2.substr(i2 + pre, size); + i2 += pre + size; + } + } + first = false; + if (func2[i2] === "I") { + i2++; + var iList = parse(true); + var iRet = parse(true, 1, true); + ret2 += iRet[0] + " " + name + "<" + iList.join(", ") + ">"; + } else { + ret2 = name; + } + paramLoop: + while (i2 < func2.length && limit-- > 0) { + var c = func2[i2++]; + if (c in basicTypes) { + list.push(basicTypes[c]); + } else { + switch (c) { + case "P": + list.push(parse(true, 1, true)[0] + "*"); + break; + case "R": + list.push(parse(true, 1, true)[0] + "&"); + break; + case "L": + { + i2++; + var end = func2.indexOf("E", i2); + var size = end - i2; + list.push(func2.substr(i2, size)); + i2 += size + 2; + break; + } + ; + case "A": + { + var size = parseInt(func2.substr(i2)); + i2 += size.toString().length; + if (func2[i2] !== "_") + throw "?"; + i2++; + list.push(parse(true, 1, true)[0] + " [" + size + "]"); + break; + } + ; + case "E": + break paramLoop; + default: + ret2 += "?" + c; + break paramLoop; + } + } + } + if (!allowVoid && list.length === 1 && list[0] === "void") + list = []; + if (rawList) { + if (ret2) { + list.push(ret2 + "?"); + } + return list; + } else { + return ret2 + flushList(); + } } - put_byte(s, val); - } while (val !== 0); - - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + var parsed = func2; + try { + if (func2 == "Object._main" || func2 == "_main") { + return "main()"; + } + if (typeof func2 === "number") + func2 = Pointer_stringify(func2); + if (func2[0] !== "_") + return func2; + if (func2[1] !== "_") + return func2; + if (func2[2] !== "Z") + return func2; + switch (func2[3]) { + case "n": + return "operator new()"; + case "d": + return "operator delete()"; + } + parsed = parse(); + } catch (e) { + parsed += "?"; + } + if (parsed.indexOf("?") >= 0 && !hasLibcxxabi) { + Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"); + } + return parsed; } - if (val === 0) { - s.gzindex = 0; - s.status = COMMENT_STATE; + function demangleAll(text) { + return text.replace(/__Z[\w\d_]+/g, function(x) { + var y = demangle(x); + return x === y ? x : x + " [" + y + "]"; + }); } - } - else { - s.status = COMMENT_STATE; - } - } - if (s.status === COMMENT_STATE) { - if (s.gzhead.comment/* != Z_NULL*/) { - beg = s.pending; /* start of bytes to update crc */ - //int val; - - do { - if (s.pending === s.pending_buf_size) { - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + try { + throw new Error(0); + } catch (e) { + err = e; } - flush_pending(strm); - beg = s.pending; - if (s.pending === s.pending_buf_size) { - val = 1; - break; + if (!err.stack) { + return "(no stack trace available)"; } } - // JS specific: little magic to add zero terminator to end of string - if (s.gzindex < s.gzhead.comment.length) { - val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff; - } else { - val = 0; + return err.stack.toString(); + } + function stackTrace() { + return demangleAll(jsStackTrace()); + } + Module["stackTrace"] = stackTrace; + var PAGE_SIZE = 4096; + function alignMemoryPage(x) { + if (x % 4096 > 0) { + x += 4096 - x % 4096; } - put_byte(s, val); - } while (val !== 0); - - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + return x; } - if (val === 0) { - s.status = HCRC_STATE; + var HEAP; + var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; + var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; + var DYNAMIC_BASE = 0, DYNAMICTOP = 0; + function enlargeMemory() { + var OLD_TOTAL_MEMORY = TOTAL_MEMORY; + var LIMIT = Math.pow(2, 31); + if (DYNAMICTOP >= LIMIT) + return false; + while (TOTAL_MEMORY <= DYNAMICTOP) { + if (TOTAL_MEMORY < LIMIT / 2) { + TOTAL_MEMORY = alignMemoryPage(2 * TOTAL_MEMORY); + } else { + var last = TOTAL_MEMORY; + TOTAL_MEMORY = alignMemoryPage((3 * TOTAL_MEMORY + LIMIT) / 4); + if (TOTAL_MEMORY <= last) + return false; + } + } + TOTAL_MEMORY = Math.max(TOTAL_MEMORY, 16 * 1024 * 1024); + if (TOTAL_MEMORY >= LIMIT) + return false; + try { + if (ArrayBuffer.transfer) { + buffer = ArrayBuffer.transfer(buffer, TOTAL_MEMORY); + } else { + var oldHEAP8 = HEAP8; + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + } catch (e) { + return false; + } + var success = _emscripten_replace_memory(buffer); + if (!success) + return false; + Module["buffer"] = buffer; + 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); + if (!ArrayBuffer.transfer) { + HEAP8.set(oldHEAP8); + } + return true; } - } - else { - s.status = HCRC_STATE; - } - } - if (s.status === HCRC_STATE) { - if (s.gzhead.hcrc) { - if (s.pending + 2 > s.pending_buf_size) { - flush_pending(strm); + var byteLength; + try { + byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get); + byteLength(new ArrayBuffer(4)); + } catch (e) { + byteLength = function(buffer2) { + return buffer2.byteLength; + }; } - if (s.pending + 2 <= s.pending_buf_size) { - put_byte(s, strm.adler & 0xff); - put_byte(s, (strm.adler >> 8) & 0xff); - strm.adler = 0; //crc32(0L, Z_NULL, 0); - s.status = BUSY_STATE; + var TOTAL_STACK = Module["TOTAL_STACK"] || 5242880; + var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 16777216; + var totalMemory = 64 * 1024; + while (totalMemory < TOTAL_MEMORY || totalMemory < 2 * TOTAL_STACK) { + if (totalMemory < 16 * 1024 * 1024) { + totalMemory *= 2; + } else { + totalMemory += 16 * 1024 * 1024; + } } - } - else { - s.status = BUSY_STATE; - } - } -//#endif - - /* Flush as much pending output as possible */ - if (s.pending !== 0) { - flush_pending(strm); - if (strm.avail_out === 0) { - /* Since avail_out is 0, deflate will be called again with - * more output space, but possibly with both pending and - * avail_in equal to zero. There won't be anything to do, - * but this is not an error situation so make sure we - * return OK instead of BUF_ERROR at next call of deflate: - */ - s.last_flush = -1; - return Z_OK; - } - - /* Make sure there is something to do and avoid duplicate consecutive - * flushes. For repeated and useless calls with Z_FINISH, we keep - * returning Z_STREAM_END instead of Z_BUF_ERROR. - */ - } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && - flush !== Z_FINISH) { - return err(strm, Z_BUF_ERROR); - } - - /* User must not provide more input after the first FINISH: */ - if (s.status === FINISH_STATE && strm.avail_in !== 0) { - return err(strm, Z_BUF_ERROR); - } - - /* Start a new block or continue the current one. - */ - if (strm.avail_in !== 0 || s.lookahead !== 0 || - (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) { - var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) : - (s.strategy === Z_RLE ? deflate_rle(s, flush) : - configuration_table[s.level].func(s, flush)); - - if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { - s.status = FINISH_STATE; - } - if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { - if (strm.avail_out === 0) { - s.last_flush = -1; - /* avoid BUF_ERROR next call, see above */ + totalMemory = Math.max(totalMemory, 16 * 1024 * 1024); + if (totalMemory !== TOTAL_MEMORY) { + TOTAL_MEMORY = totalMemory; } - return Z_OK; - /* If flush != Z_NO_FLUSH && avail_out == 0, the next call - * of deflate should use the same flush parameter to make sure - * that the flush is complete. So we don't have to output an - * empty block here, this will be done at next call. This also - * ensures that for a very small output buffer, we emit at most - * one empty block. - */ - } - if (bstate === BS_BLOCK_DONE) { - if (flush === Z_PARTIAL_FLUSH) { - trees._tr_align(s); + assert(typeof Int32Array !== "undefined" && typeof Float64Array !== "undefined" && !!new Int32Array(1)["subarray"] && !!new Int32Array(1)["set"], "JS engine does not provide full typed array support"); + var buffer; + buffer = new ArrayBuffer(TOTAL_MEMORY); + HEAP8 = new Int8Array(buffer); + HEAP16 = new Int16Array(buffer); + HEAP32 = new Int32Array(buffer); + HEAPU8 = new Uint8Array(buffer); + HEAPU16 = new Uint16Array(buffer); + HEAPU32 = new Uint32Array(buffer); + HEAPF32 = new Float32Array(buffer); + HEAPF64 = new Float64Array(buffer); + HEAP32[0] = 255; + assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, "Typed arrays 2 must be run on a little-endian system"); + Module["HEAP"] = HEAP; + Module["buffer"] = buffer; + Module["HEAP8"] = HEAP8; + Module["HEAP16"] = HEAP16; + Module["HEAP32"] = HEAP32; + Module["HEAPU8"] = HEAPU8; + Module["HEAPU16"] = HEAPU16; + Module["HEAPU32"] = HEAPU32; + Module["HEAPF32"] = HEAPF32; + Module["HEAPF64"] = HEAPF64; + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == "function") { + callback(); + continue; + } + var func2 = callback.func; + if (typeof func2 === "number") { + if (callback.arg === void 0) { + Runtime.dynCall("v", func2); + } else { + Runtime.dynCall("vi", func2, [callback.arg]); + } + } else { + func2(callback.arg === void 0 ? null : callback.arg); + } + } } - else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */ - - trees._tr_stored_block(s, 0, 0, false); - /* For a full flush, this empty block will be recognized - * as a special marker by inflate_sync(). - */ - if (flush === Z_FULL_FLUSH) { - /*** CLEAR_HASH(s); ***/ /* forget history */ - zero(s.head); // Fill with NIL (= 0); - - if (s.lookahead === 0) { - s.strstart = 0; - s.block_start = 0; - s.insert = 0; + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATMAIN__ = []; + var __ATEXIT__ = []; + var __ATPOSTRUN__ = []; + var runtimeInitialized = false; + var runtimeExited = false; + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") + Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); } } + callRuntimeCallbacks(__ATPRERUN__); } - flush_pending(strm); - if (strm.avail_out === 0) { - s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */ - return Z_OK; + function ensureInitRuntime() { + if (runtimeInitialized) + return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); } - } - } - //Assert(strm->avail_out > 0, "bug2"); - //if (strm.avail_out <= 0) { throw new Error("bug2");} - - if (flush !== Z_FINISH) { return Z_OK; } - if (s.wrap <= 0) { return Z_STREAM_END; } - - /* Write the trailer */ - if (s.wrap === 2) { - put_byte(s, strm.adler & 0xff); - put_byte(s, (strm.adler >> 8) & 0xff); - put_byte(s, (strm.adler >> 16) & 0xff); - put_byte(s, (strm.adler >> 24) & 0xff); - put_byte(s, strm.total_in & 0xff); - put_byte(s, (strm.total_in >> 8) & 0xff); - put_byte(s, (strm.total_in >> 16) & 0xff); - put_byte(s, (strm.total_in >> 24) & 0xff); - } - else - { - putShortMSB(s, strm.adler >>> 16); - putShortMSB(s, strm.adler & 0xffff); - } - - flush_pending(strm); - /* If avail_out is zero, the application will call deflate again - * to flush the rest. - */ - if (s.wrap > 0) { s.wrap = -s.wrap; } - /* write the trailer only once! */ - return s.pending !== 0 ? Z_OK : Z_STREAM_END; -} - -function deflateEnd(strm) { - var status; - - if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) { - return Z_STREAM_ERROR; - } - - status = strm.state.status; - if (status !== INIT_STATE && - status !== EXTRA_STATE && - status !== NAME_STATE && - status !== COMMENT_STATE && - status !== HCRC_STATE && - status !== BUSY_STATE && - status !== FINISH_STATE - ) { - return err(strm, Z_STREAM_ERROR); - } - - strm.state = null; - - return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; -} - - -/* ========================================================================= - * Initializes the compression dictionary from the given byte - * sequence without producing any compressed output. - */ -function deflateSetDictionary(strm, dictionary) { - var dictLength = dictionary.length; - - var s; - var str, n; - var wrap; - var avail; - var next; - var input; - var tmpDict; - - if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) { - return Z_STREAM_ERROR; - } - - s = strm.state; - wrap = s.wrap; - - if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) { - return Z_STREAM_ERROR; - } - - /* when using zlib wrappers, compute Adler-32 for provided dictionary */ - if (wrap === 1) { - /* adler32(strm->adler, dictionary, dictLength); */ - strm.adler = adler32(strm.adler, dictionary, dictLength, 0); - } - - s.wrap = 0; /* avoid computing Adler-32 in read_buf */ - - /* if dictionary would fill window, just replace the history */ - if (dictLength >= s.w_size) { - if (wrap === 0) { /* already empty otherwise */ - /*** CLEAR_HASH(s); ***/ - zero(s.head); // Fill with NIL (= 0); - s.strstart = 0; - s.block_start = 0; - s.insert = 0; - } - /* use the tail */ - // dictionary = dictionary.slice(dictLength - s.w_size); - tmpDict = new utils.Buf8(s.w_size); - utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); - dictionary = tmpDict; - dictLength = s.w_size; - } - /* insert dictionary into window and hash */ - avail = strm.avail_in; - next = strm.next_in; - input = strm.input; - strm.avail_in = dictLength; - strm.next_in = 0; - strm.input = dictionary; - fill_window(s); - while (s.lookahead >= MIN_MATCH) { - str = s.strstart; - n = s.lookahead - (MIN_MATCH - 1); - do { - /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; - - s.prev[str & s.w_mask] = s.head[s.ins_h]; - - s.head[s.ins_h] = str; - str++; - } while (--n); - s.strstart = str; - s.lookahead = MIN_MATCH - 1; - fill_window(s); - } - s.strstart += s.lookahead; - s.block_start = s.strstart; - s.insert = s.lookahead; - s.lookahead = 0; - s.match_length = s.prev_length = MIN_MATCH - 1; - s.match_available = 0; - strm.next_in = next; - strm.input = input; - strm.avail_in = avail; - s.wrap = wrap; - return Z_OK; -} - - -exports.deflateInit = deflateInit; -exports.deflateInit2 = deflateInit2; -exports.deflateReset = deflateReset; -exports.deflateResetKeep = deflateResetKeep; -exports.deflateSetHeader = deflateSetHeader; -exports.deflate = deflate; -exports.deflateEnd = deflateEnd; -exports.deflateSetDictionary = deflateSetDictionary; -exports.deflateInfo = 'pako deflate (from Nodeca project)'; - -/* Not implemented -exports.deflateBound = deflateBound; -exports.deflateCopy = deflateCopy; -exports.deflateParams = deflateParams; -exports.deflatePending = deflatePending; -exports.deflatePrime = deflatePrime; -exports.deflateTune = deflateTune; -*/ - -},{"../utils/common":19,"./adler32":21,"./crc32":23,"./messages":29,"./trees":30}],25:[function(require,module,exports){ -'use strict'; - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -function GZheader() { - /* true if compressed data believed to be text */ - this.text = 0; - /* modification time */ - this.time = 0; - /* extra flags (not used when writing a gzip file) */ - this.xflags = 0; - /* operating system */ - this.os = 0; - /* pointer to extra field or Z_NULL if none */ - this.extra = null; - /* extra field length (valid if extra != Z_NULL) */ - this.extra_len = 0; // Actually, we don't need it in JS, - // but leave for few code modifications - - // - // Setup limits is not necessary because in js we should not preallocate memory - // for inflate use constant limit in 65536 bytes - // - - /* space at extra (only when reading header) */ - // this.extra_max = 0; - /* pointer to zero-terminated file name or Z_NULL */ - this.name = ''; - /* space at name (only when reading header) */ - // this.name_max = 0; - /* pointer to zero-terminated comment or Z_NULL */ - this.comment = ''; - /* space at comment (only when reading header) */ - // this.comm_max = 0; - /* true if there was or will be a header crc */ - this.hcrc = 0; - /* true when done reading gzip header (not used when writing a gzip file) */ - this.done = false; -} - -module.exports = GZheader; - -},{}],26:[function(require,module,exports){ -'use strict'; - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -// See state defs from inflate.js -var BAD = 30; /* got a data error -- remain here until reset */ -var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ - -/* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state.mode === LEN - strm.avail_in >= 6 - strm.avail_out >= 258 - start >= strm.avail_out - state.bits < 8 - - On return, state.mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm.avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm.avail_out >= 258 for each loop to avoid checking for - output space. - */ -module.exports = function inflate_fast(strm, start) { - var state; - var _in; /* local strm.input */ - var last; /* have enough input while in < last */ - var _out; /* local strm.output */ - var beg; /* inflate()'s initial strm.output */ - var end; /* while out < end, enough space available */ -//#ifdef INFLATE_STRICT - var dmax; /* maximum distance from zlib header */ -//#endif - var wsize; /* window size or zero if not using window */ - var whave; /* valid bytes in the window */ - var wnext; /* window write index */ - // Use `s_window` instead `window`, avoid conflict with instrumentation tools - var s_window; /* allocated sliding window, if wsize != 0 */ - var hold; /* local strm.hold */ - var bits; /* local strm.bits */ - var lcode; /* local strm.lencode */ - var dcode; /* local strm.distcode */ - var lmask; /* mask for first level of length codes */ - var dmask; /* mask for first level of distance codes */ - var here; /* retrieved table entry */ - var op; /* code bits, operation, extra bits, or */ - /* window position, window bytes to copy */ - var len; /* match length, unused bytes */ - var dist; /* match distance */ - var from; /* where to copy match from */ - var from_source; - - - var input, output; // JS specific, because we have no pointers - - /* copy state to local variables */ - state = strm.state; - //here = state.here; - _in = strm.next_in; - input = strm.input; - last = _in + (strm.avail_in - 5); - _out = strm.next_out; - output = strm.output; - beg = _out - (start - strm.avail_out); - end = _out + (strm.avail_out - 257); -//#ifdef INFLATE_STRICT - dmax = state.dmax; -//#endif - wsize = state.wsize; - whave = state.whave; - wnext = state.wnext; - s_window = state.window; - hold = state.hold; - bits = state.bits; - lcode = state.lencode; - dcode = state.distcode; - lmask = (1 << state.lenbits) - 1; - dmask = (1 << state.distbits) - 1; - - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - - top: - do { - if (bits < 15) { - hold += input[_in++] << bits; - bits += 8; - hold += input[_in++] << bits; - bits += 8; - } - - here = lcode[hold & lmask]; - - dolen: - for (;;) { // Goto emulation - op = here >>> 24/*here.bits*/; - hold >>>= op; - bits -= op; - op = (here >>> 16) & 0xff/*here.op*/; - if (op === 0) { /* literal */ - //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - // "inflate: literal '%c'\n" : - // "inflate: literal 0x%02x\n", here.val)); - output[_out++] = here & 0xffff/*here.val*/; - } - else if (op & 16) { /* length base */ - len = here & 0xffff/*here.val*/; - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; + function preMain() { + callRuntimeCallbacks(__ATMAIN__); + } + function exitRuntime() { + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; + } + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") + Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + Module["addOnPreRun"] = addOnPreRun; + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + Module["addOnInit"] = addOnInit; + function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); + } + Module["addOnPreMain"] = addOnPreMain; + function addOnExit(cb) { + __ATEXIT__.unshift(cb); + } + Module["addOnExit"] = addOnExit; + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + Module["addOnPostRun"] = addOnPostRun; + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) + u8array.length = numBytesWritten; + return u8array; + } + Module["intArrayFromString"] = intArrayFromString; + function intArrayToString(array) { + var ret = []; + for (var i2 = 0; i2 < array.length; i2++) { + var chr = array[i2]; + if (chr > 255) { + chr &= 255; } - len += hold & ((1 << op) - 1); - hold >>>= op; - bits -= op; + ret.push(String.fromCharCode(chr)); } - //Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { - hold += input[_in++] << bits; - bits += 8; - hold += input[_in++] << bits; - bits += 8; + return ret.join(""); + } + Module["intArrayToString"] = intArrayToString; + function writeStringToMemory(string, buffer2, dontAddNull) { + var array = intArrayFromString(string, dontAddNull); + var i2 = 0; + while (i2 < array.length) { + var chr = array[i2]; + HEAP8[buffer2 + i2 >> 0] = chr; + i2 = i2 + 1; } - here = dcode[hold & dmask]; - - dodist: - for (;;) { // goto emulation - op = here >>> 24/*here.bits*/; - hold >>>= op; - bits -= op; - op = (here >>> 16) & 0xff/*here.op*/; - - if (op & 16) { /* distance base */ - dist = here & 0xffff/*here.val*/; - op &= 15; /* number of extra bits */ - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - } + } + Module["writeStringToMemory"] = writeStringToMemory; + function writeArrayToMemory(array, buffer2) { + for (var i2 = 0; i2 < array.length; i2++) { + HEAP8[buffer2++ >> 0] = array[i2]; + } + } + Module["writeArrayToMemory"] = writeArrayToMemory; + function writeAsciiToMemory(str, buffer2, dontAddNull) { + for (var i2 = 0; i2 < str.length; ++i2) { + HEAP8[buffer2++ >> 0] = str.charCodeAt(i2); + } + if (!dontAddNull) + HEAP8[buffer2 >> 0] = 0; + } + Module["writeAsciiToMemory"] = writeAsciiToMemory; + function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2 * Math.abs(1 << bits - 1) + value : Math.pow(2, bits) + value; + } + function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << bits - 1) : Math.pow(2, bits - 1); + if (value >= half && (bits <= 32 || value > half)) { + value = -2 * half + value; + } + return value; + } + if (!Math["imul"] || Math["imul"](4294967295, 5) !== -5) + Math["imul"] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 65535; + var bh = b >>> 16; + var bl = b & 65535; + return al * bl + (ah * bl + al * bh << 16) | 0; + }; + Math.imul = Math["imul"]; + if (!Math["clz32"]) + Math["clz32"] = function(x) { + x = x >>> 0; + for (var i2 = 0; i2 < 32; i2++) { + if (x & 1 << 31 - i2) + return i2; + } + return 32; + }; + Math.clz32 = Math["clz32"]; + var Math_abs = Math.abs; + var Math_cos = Math.cos; + var Math_sin = Math.sin; + var Math_tan = Math.tan; + var Math_acos = Math.acos; + var Math_asin = Math.asin; + var Math_atan = Math.atan; + var Math_atan2 = Math.atan2; + var Math_exp = Math.exp; + var Math_log = Math.log; + var Math_sqrt = Math.sqrt; + var Math_ceil = Math.ceil; + var Math_floor = Math.floor; + var Math_pow = Math.pow; + var Math_imul = Math.imul; + var Math_fround = Math.fround; + var Math_min = Math.min; + var Math_clz32 = Math.clz32; + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; + function getUniqueRunDependency(id) { + return id; + } + function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + } + Module["addRunDependency"] = addRunDependency; + function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + Module["removeRunDependency"] = removeRunDependency; + Module["preloadedImages"] = {}; + Module["preloadedAudios"] = {}; + var memoryInitializer = null; + var ASM_CONSTS = []; + STATIC_BASE = 8; + STATICTOP = STATIC_BASE + 59744; + __ATINIT__.push({ func: function() { + __GLOBAL__I_000101(); + } }, { func: function() { + __GLOBAL__sub_I_jpegls_cpp(); + } }, { func: function() { + __GLOBAL__sub_I_iostream_cpp(); + } }); + allocate([0, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 31, 194, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 237, 191, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 41, 192, 0, 0, 84, 144, 0, 0, 55, 192, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 115, 192, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 175, 192, 0, 0, 152, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 241, 192, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 55, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 95, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 135, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 175, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 216, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 241, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 13, 194, 0, 0, 84, 144, 0, 0, 80, 194, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 44, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 139, 194, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 179, 194, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 219, 194, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 3, 195, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 103, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 157, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 211, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 8, 196, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 71, 196, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 138, 196, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 120, 196, 0, 0, 84, 144, 0, 0, 187, 196, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 246, 196, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 49, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 103, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 157, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 210, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 17, 198, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 86, 198, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 162, 198, 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 182, 198, 0, 0, 84, 144, 0, 0, 196, 198, 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 112, 199, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 125, 199, 0, 0, 84, 144, 0, 0, 138, 199, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 156, 199, 0, 0, 84, 144, 0, 0, 169, 199, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 181, 199, 0, 0, 120, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 214, 199, 0, 0, 144, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 28, 200, 0, 0, 144, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 248, 199, 0, 0, 176, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 62, 200, 0, 0, 160, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 99, 200, 0, 0, 160, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 182, 221, 0, 0, 160, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 245, 221, 0, 0, 160, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 13, 222, 0, 0, 152, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 38, 222, 0, 0, 152, 3, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 62, 222, 0, 0, 84, 144, 0, 0, 87, 222, 0, 0, 104, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 110, 222, 0, 0, 84, 144, 0, 0, 135, 222, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 161, 222, 0, 0, 56, 3, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 187, 222, 0, 0, 84, 144, 0, 0, 205, 222, 0, 0, 112, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 247, 222, 0, 0, 112, 3, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 33, 223, 0, 0, 44, 144, 0, 0, 82, 223, 0, 0, 124, 144, 0, 0, 131, 223, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 120, 3, 0, 0, 3, 244, 255, 255, 124, 144, 0, 0, 178, 223, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 136, 3, 0, 0, 3, 244, 255, 255, 124, 144, 0, 0, 225, 223, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 120, 3, 0, 0, 3, 244, 255, 255, 124, 144, 0, 0, 16, 224, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 136, 3, 0, 0, 3, 244, 255, 255, 84, 144, 0, 0, 63, 224, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 187, 224, 0, 0, 48, 3, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 209, 224, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 64, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 227, 224, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 5, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 40, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 84, 144, 0, 0, 75, 225, 0, 0, 144, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 109, 225, 0, 0, 144, 4, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 144, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 84, 144, 0, 0, 178, 225, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 200, 225, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 220, 225, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 240, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 64, 10, 0, 0, 2, 0, 0, 0, 84, 144, 0, 0, 2, 226, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 23, 226, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 44, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 80, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 112, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 104, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 180, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 128, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 248, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 152, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 60, 227, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 176, 10, 0, 0, 2, 0, 0, 0, 184, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 129, 227, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 176, 10, 0, 0, 2, 0, 0, 0, 192, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 198, 227, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 200, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 11, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 200, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 80, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 108, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 136, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 164, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 192, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 216, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 6, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 224, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 76, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 232, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 146, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 240, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 216, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 248, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 237, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 248, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 144, 0, 0, 73, 233, 0, 0, 44, 144, 0, 0, 50, 233, 0, 0, 124, 144, 0, 0, 28, 233, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 11, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 237, 232, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 11, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 215, 232, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 168, 232, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 149, 232, 0, 0, 44, 144, 0, 0, 115, 232, 0, 0, 44, 144, 0, 0, 81, 232, 0, 0, 44, 144, 0, 0, 60, 232, 0, 0, 44, 144, 0, 0, 39, 232, 0, 0, 44, 144, 0, 0, 14, 232, 0, 0, 44, 144, 0, 0, 245, 231, 0, 0, 44, 144, 0, 0, 220, 231, 0, 0, 44, 144, 0, 0, 195, 231, 0, 0, 44, 144, 0, 0, 171, 231, 0, 0, 44, 144, 0, 0, 190, 232, 0, 0, 44, 144, 0, 0, 3, 233], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); + allocate([156, 143, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 248, 1, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 232, 1, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 216, 1, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 200, 1, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 184, 1, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 168, 1, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 144, 1, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 128, 1, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 112, 1, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 10, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 96, 1, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 11, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 80, 1, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 13, 0, 0, 0, 5, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 33, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 216, 3, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 200, 255, 255, 255, 200, 255, 255, 255, 216, 3, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 200, 255, 255, 255, 200, 255, 255, 255, 104, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 18, 0, 0, 0, 104, 141, 0, 0, 64, 141, 0, 0, 84, 141, 0, 0, 124, 141, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 16, 1, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 48, 1, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 160, 1, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 40, 2, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 64, 2, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 19, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 80, 2, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 2, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 128, 2, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 160, 2, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 208, 2, 0, 0, 84, 0, 0, 0, 88, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 224, 2, 0, 0, 84, 0, 0, 0, 89, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 11, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 192, 3, 0, 0, 192, 4, 0, 0, 192, 5, 0, 0, 192, 6, 0, 0, 192, 7, 0, 0, 192, 8, 0, 0, 192, 9, 0, 0, 192, 10, 0, 0, 192, 11, 0, 0, 192, 12, 0, 0, 192, 13, 0, 0, 192, 14, 0, 0, 192, 15, 0, 0, 192, 16, 0, 0, 192, 17, 0, 0, 192, 18, 0, 0, 192, 19, 0, 0, 192, 20, 0, 0, 192, 21, 0, 0, 192, 22, 0, 0, 192, 23, 0, 0, 192, 24, 0, 0, 192, 25, 0, 0, 192, 26, 0, 0, 192, 27, 0, 0, 192, 28, 0, 0, 192, 29, 0, 0, 192, 30, 0, 0, 192, 31, 0, 0, 192, 0, 0, 0, 179, 1, 0, 0, 195, 2, 0, 0, 195, 3, 0, 0, 195, 4, 0, 0, 195, 5, 0, 0, 195, 6, 0, 0, 195, 7, 0, 0, 195, 8, 0, 0, 195, 9, 0, 0, 195, 10, 0, 0, 195, 11, 0, 0, 195, 12, 0, 0, 195, 13, 0, 0, 211, 14, 0, 0, 195, 15, 0, 0, 195, 0, 0, 12, 187, 1, 0, 12, 195, 2, 0, 12, 195, 3, 0, 12, 195, 4, 0, 12, 211, 88, 146, 0, 0, 200, 146, 0, 0, 56, 147, 0, 0, 56, 147, 0, 0, 120, 187, 0, 0, 168, 155, 0, 0, 168, 149, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 100, 0, 0, 0, 232, 3, 0, 0, 16, 39, 0, 0, 160, 134, 1, 0, 64, 66, 15, 0, 128, 150, 152, 0, 0, 225, 245, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 159, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 151, 215, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 143, 211, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 123, 0, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 126, 0, 0, 0, 127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 35640); + allocate([1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 122, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 122, 0, 0, 0, 123, 0, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 126, 0, 0, 0, 127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 39844); + allocate([240, 2, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 20, 0, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 90, 0, 0, 0, 92, 0, 0, 0, 21, 0, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 16, 3, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 22, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 17, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 16, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 32, 3, 0, 0, 93, 0, 0, 0, 95, 0, 0, 0, 23, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 25, 0, 0, 0, 3, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 56, 3, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 3, 0, 0, 93, 0, 0, 0, 98, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 3, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 160, 3, 0, 0, 90, 0, 0, 0, 99, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 22, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 168, 3, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 248, 255, 255, 255, 248, 255, 255, 255, 168, 3, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 192, 3, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 248, 255, 255, 255, 248, 255, 255, 255, 192, 3, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 216, 3, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 252, 255, 255, 255, 252, 255, 255, 255, 216, 3, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 240, 3, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 252, 255, 255, 255, 252, 255, 255, 255, 240, 3, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 96, 3, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 112, 3, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 72, 0, 0, 0, 116, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 33, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 5, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 119, 0, 0, 0, 2, 0, 0, 0, 34, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 5, 0, 0, 122, 0, 0, 0, 123, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 5, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 119, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 5, 0, 0, 126, 0, 0, 0, 127, 0, 0, 0, 119, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 5, 0, 0, 128, 0, 0, 0, 129, 0, 0, 0, 119, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 9, 0, 0, 0, 26, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 5, 0, 0, 130, 0, 0, 0, 131, 0, 0, 0, 119, 0, 0, 0, 22, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 248, 255, 255, 255, 224, 5, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 6, 0, 0, 132, 0, 0, 0, 133, 0, 0, 0, 119, 0, 0, 0, 30, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 248, 255, 255, 255, 8, 6, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 134, 0, 0, 0, 135, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 6, 0, 0, 136, 0, 0, 0, 137, 0, 0, 0, 119, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 6, 0, 0, 138, 0, 0, 0, 139, 0, 0, 0, 119, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 40, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 6, 0, 0, 140, 0, 0, 0, 141, 0, 0, 0, 119, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 43, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 6, 0, 0, 142, 0, 0, 0, 143, 0, 0, 0, 119, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 46, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 6, 0, 0, 144, 0, 0, 0, 145, 0, 0, 0, 119, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 49, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 6, 0, 0, 146, 0, 0, 0, 147, 0, 0, 0, 119, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 7, 0, 0, 148, 0, 0, 0, 149, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 7, 0, 0, 150, 0, 0, 0, 151, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 7, 0, 0, 152, 0, 0, 0, 153, 0, 0, 0, 119, 0, 0, 0, 2, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 7, 0, 0, 154, 0, 0, 0, 155, 0, 0, 0, 119, 0, 0, 0, 19, 0, 0, 0, 7, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 7, 0, 0, 156, 0, 0, 0, 157, 0, 0, 0, 119, 0, 0, 0, 20, 0, 0, 0, 8, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 4, 0, 0, 158, 0, 0, 0, 159, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 5, 0, 0, 160, 0, 0, 0, 161, 0, 0, 0, 119, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 28, 0, 0, 0, 22, 0, 0, 0, 29, 0, 0, 0, 9, 0, 0, 0, 23, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 4, 0, 0, 162, 0, 0, 0, 163, 0, 0, 0, 119, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 13, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5, 0, 0, 164, 0, 0, 0, 165, 0, 0, 0, 119, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 166, 0, 0, 0, 167, 0, 0, 0, 119, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 168, 0, 0, 0, 169, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 48, 4, 0, 0, 168, 0, 0, 0, 170, 0, 0, 0, 119, 0, 0, 0, 24, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 30, 0, 0, 0, 25, 0, 0, 0, 31, 0, 0, 0, 26, 0, 0, 0, 32, 0, 0, 0, 13, 0, 0, 0, 27, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 80, 4, 0, 0, 168, 0, 0, 0, 171, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 16, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 112, 4, 0, 0, 168, 0, 0, 0, 172, 0, 0, 0, 119, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 18, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 144, 4, 0, 0, 168, 0, 0, 0, 173, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 20, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 176, 4, 0, 0, 168, 0, 0, 0, 174, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 20, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 192, 4, 0, 0, 168, 0, 0, 0, 175, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 20, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 121, 0, 0, 0, 37, 0, 0, 0, 89, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 37, 0, 0, 0, 73, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 112, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 114, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 97, 0, 0, 0, 108, 0, 0, 0, 115, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 111, 0, 0, 0, 110, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 101, 0, 0, 0, 100, 0, 0, 0, 110, 0, 0, 0, 101, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 104, 0, 0, 0, 117, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 97, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 114, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 111, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 101, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 104, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 97, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 97, 0, 0, 0, 110, 0, 0, 0, 117, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 101, 0, 0, 0, 98, 0, 0, 0, 114, 0, 0, 0, 117, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 99, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 112, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 108, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 117, 0, 0, 0, 103, 0, 0, 0, 117, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 101, 0, 0, 0, 112, 0, 0, 0, 116, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 99, 0, 0, 0, 116, 0, 0, 0, 111, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 111, 0, 0, 0, 118, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 101, 0, 0, 0, 99, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 97, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 101, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 112, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 117, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 101, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 99, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 111, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 101, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 97, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 98, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 73, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 3, 32, 2, 32, 2, 32, 2, 32, 2, 32, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 96, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 213, 8, 213, 8, 213, 8, 213, 8, 213, 8, 213, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 214, 8, 214, 8, 214, 8, 214, 8, 214, 8, 214, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 4, 192, 4, 192, 4, 192, 4, 192, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 97, 119, 83, 116, 114, 101, 97, 109, 32, 111, 114, 32, 114, 97, 119, 68, 97, 116, 97, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 116, 111, 32, 115, 111, 109, 101, 116, 104, 105, 110, 103, 0, 119, 105, 100, 116, 104, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 49, 44, 32, 54, 53, 53, 51, 53, 93, 0, 104, 101, 105, 103, 104, 116, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 49, 44, 32, 54, 53, 53, 51, 53, 93, 0, 98, 105, 116, 115, 112, 101, 114, 115, 97, 109, 112, 108, 101, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 50, 44, 32, 49, 54, 93, 0, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 77, 111, 100, 101, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 97, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 123, 78, 111, 110, 101, 44, 32, 83, 97, 109, 112, 108, 101, 44, 32, 76, 105, 110, 101, 125, 0, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 49, 44, 32, 50, 53, 53, 93, 0, 117, 110, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 32, 115, 105, 122, 101, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 109, 97, 116, 99, 104, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 111, 116, 104, 101, 114, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 0, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 77, 111, 100, 101, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 83, 97, 109, 112, 108, 101, 32, 105, 110, 32, 99, 111, 109, 98, 105, 110, 97, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 61, 32, 52, 0, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 77, 111, 100, 101, 32, 99, 97, 110, 32, 111, 110, 108, 121, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 78, 111, 110, 101, 32, 105, 110, 32, 99, 111, 109, 98, 105, 110, 97, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 61, 32, 49, 0, 67, 111, 108, 111, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 0, 78, 111, 32, 109, 111, 114, 101, 32, 98, 121, 116, 101, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 110, 32, 105, 110, 112, 117, 116, 32, 98, 117, 102, 102, 101, 114, 44, 32, 115, 116, 105, 108, 108, 32, 110, 101, 101, 100, 101, 100, 105, 110, 103, 32, 0, 65, 110, 32, 111, 100, 100, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 98, 121, 116, 101, 115, 32, 40, 0, 41, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 115, 119, 97, 112, 112, 101, 100, 46, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 54, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 104, 105, 102, 116, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 51, 73, 116, 69, 69, 69, 0, 49, 49, 80, 114, 111, 99, 101, 115, 115, 76, 105, 110, 101, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 54, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 104, 105, 102, 116, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 50, 73, 116, 69, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 54, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 104, 105, 102, 116, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 49, 73, 116, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 98, 117, 102, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 78, 83, 95, 57, 97, 108, 108, 111, 99, 97, 116, 111, 114, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 57, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 105, 110, 103, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 78, 83, 95, 57, 97, 108, 108, 111, 99, 97, 116, 111, 114, 73, 99, 69, 69, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 51, 73, 116, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 50, 73, 116, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 49, 73, 116, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 51, 84, 114, 97, 110, 115, 102, 111, 114, 109, 78, 111, 110, 101, 73, 116, 69, 69, 0, 50, 50, 80, 111, 115, 116, 80, 114, 111, 99, 101, 115, 83, 105, 110, 103, 108, 101, 83, 116, 114, 101, 97, 109, 0, 50, 53, 80, 111, 115, 116, 80, 114, 111, 99, 101, 115, 83, 105, 110, 103, 108, 101, 67, 111, 109, 112, 111, 110, 101, 110, 116, 0, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 116, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 55, 84, 114, 105, 112, 108, 101, 116, 73, 116, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 51, 73, 104, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 50, 73, 104, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 49, 73, 104, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 51, 84, 114, 97, 110, 115, 102, 111, 114, 109, 78, 111, 110, 101, 73, 104, 69, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 54, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 50, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 104, 76, 105, 56, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 76, 105, 56, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 104, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 116, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 55, 84, 114, 105, 112, 108, 101, 116, 73, 116, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 54, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 50, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 104, 76, 105, 56, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 76, 105, 56, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 104, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 67, 104, 97, 114, 76, 83, 32, 101, 114, 114, 111, 114, 0, 99, 104, 97, 114, 108, 115, 0, 49, 53, 99, 104, 97, 114, 108, 115, 95, 99, 97, 116, 101, 103, 111, 114, 121, 0, 112, 97, 114, 97, 109, 115, 46, 88, 116, 104, 117, 109, 98, 110, 97, 105, 108, 32, 105, 115, 32, 62, 32, 48, 32, 98, 117, 116, 32, 112, 97, 114, 97, 109, 115, 46, 116, 104, 117, 109, 98, 110, 97, 105, 108, 32, 61, 61, 32, 110, 117, 108, 108, 95, 112, 116, 114, 0, 49, 55, 74, 112, 101, 103, 77, 97, 114, 107, 101, 114, 83, 101, 103, 109, 101, 110, 116, 0, 49, 49, 74, 112, 101, 103, 83, 101, 103, 109, 101, 110, 116, 0, 50, 48, 74, 112, 101, 103, 73, 109, 97, 103, 101, 68, 97, 116, 97, 83, 101, 103, 109, 101, 110, 116, 0, 69, 120, 112, 101, 99, 116, 101, 100, 32, 74, 80, 69, 71, 32, 77, 97, 114, 107, 101, 114, 32, 115, 116, 97, 114, 116, 32, 98, 121, 116, 101, 32, 48, 120, 70, 70, 32, 98, 117, 116, 32, 116, 104, 101, 32, 98, 121, 116, 101, 32, 118, 97, 108, 117, 101, 32, 119, 97, 115, 32, 48, 120, 0, 74, 80, 69, 71, 32, 101, 110, 99, 111, 100, 105, 110, 103, 32, 119, 105, 116, 104, 32, 109, 97, 114, 107, 101, 114, 32, 0, 32, 105, 115, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 46, 0, 85, 110, 107, 110, 111, 119, 110, 32, 74, 80, 69, 71, 32, 109, 97, 114, 107, 101, 114, 32, 0, 32, 101, 110, 99, 111, 117, 110, 116, 101, 114, 101, 100, 46, 0, 109, 114, 102, 120, 0, 83, 116, 57, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 83, 116, 57, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 83, 116, 49, 51, 114, 117, 110, 116, 105, 109, 101, 95, 101, 114, 114, 111, 114, 0, 83, 116, 57, 116, 121, 112, 101, 95, 105, 110, 102, 111, 0, 83, 116, 56, 98, 97, 100, 95, 99, 97, 115, 116, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 54, 95, 95, 115, 104, 105, 109, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 55, 95, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 57, 95, 95, 112, 111, 105, 110, 116, 101, 114, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 55, 95, 95, 112, 98, 97, 115, 101, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 50, 48, 95, 95, 115, 105, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 50, 49, 95, 95, 118, 109, 105, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 33, 34, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 32, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 34, 0, 47, 85, 115, 101, 114, 115, 47, 99, 104, 97, 102, 101, 121, 47, 101, 109, 115, 100, 107, 95, 112, 111, 114, 116, 97, 98, 108, 101, 47, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 47, 49, 46, 51, 53, 46, 48, 47, 115, 121, 115, 116, 101, 109, 47, 105, 110, 99, 108, 117, 100, 101, 47, 108, 105, 98, 99, 120, 120, 47, 115, 116, 114, 105, 110, 103, 0, 95, 95, 116, 104, 114, 111, 119, 95, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 0, 33, 34, 118, 101, 99, 116, 111, 114, 32, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 34, 0, 47, 85, 115, 101, 114, 115, 47, 99, 104, 97, 102, 101, 121, 47, 101, 109, 115, 100, 107, 95, 112, 111, 114, 116, 97, 98, 108, 101, 47, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 47, 49, 46, 51, 53, 46, 48, 47, 115, 121, 115, 116, 101, 109, 47, 105, 110, 99, 108, 117, 100, 101, 47, 108, 105, 98, 99, 120, 120, 47, 118, 101, 99, 116, 111, 114, 0, 112, 116, 104, 114, 101, 97, 100, 95, 111, 110, 99, 101, 32, 102, 97, 105, 108, 117, 114, 101, 32, 105, 110, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 95, 102, 97, 115, 116, 40, 41, 0, 115, 116, 100, 58, 58, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 116, 101, 114, 109, 105, 110, 97, 116, 101, 95, 104, 97, 110, 100, 108, 101, 114, 32, 117, 110, 101, 120, 112, 101, 99, 116, 101, 100, 108, 121, 32, 114, 101, 116, 117, 114, 110, 101, 100, 0, 116, 101, 114, 109, 105, 110, 97, 116, 101, 95, 104, 97, 110, 100, 108, 101, 114, 32, 117, 110, 101, 120, 112, 101, 99, 116, 101, 100, 108, 121, 32, 116, 104, 114, 101, 119, 32, 97, 110, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 115, 116, 100, 58, 58, 98, 97, 100, 95, 99, 97, 115, 116, 0, 99, 97, 110, 110, 111, 116, 32, 99, 114, 101, 97, 116, 101, 32, 112, 116, 104, 114, 101, 97, 100, 32, 107, 101, 121, 32, 102, 111, 114, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 40, 41, 0, 99, 97, 110, 110, 111, 116, 32, 122, 101, 114, 111, 32, 111, 117, 116, 32, 116, 104, 114, 101, 97, 100, 32, 118, 97, 108, 117, 101, 32, 102, 111, 114, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 40, 41, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 121, 112, 101, 32, 37, 115, 58, 32, 37, 115, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 121, 112, 101, 32, 37, 115, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 102, 111, 114, 101, 105, 103, 110, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 0, 117, 110, 99, 97, 117, 103, 104, 116, 0, 84, 33, 34, 25, 13, 1, 2, 3, 17, 75, 28, 12, 16, 4, 11, 29, 18, 30, 39, 104, 110, 111, 112, 113, 98, 32, 5, 6, 15, 19, 20, 21, 26, 8, 22, 7, 40, 36, 23, 24, 9, 10, 14, 27, 31, 37, 35, 131, 130, 125, 38, 42, 43, 60, 61, 62, 63, 67, 71, 74, 77, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 105, 106, 107, 108, 114, 115, 116, 121, 122, 123, 124, 0, 73, 108, 108, 101, 103, 97, 108, 32, 98, 121, 116, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 0, 68, 111, 109, 97, 105, 110, 32, 101, 114, 114, 111, 114, 0, 82, 101, 115, 117, 108, 116, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 98, 108, 101, 0, 78, 111, 116, 32, 97, 32, 116, 116, 121, 0, 80, 101, 114, 109, 105, 115, 115, 105, 111, 110, 32, 100, 101, 110, 105, 101, 100, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 110, 111, 116, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 0, 78, 111, 32, 115, 117, 99, 104, 32, 102, 105, 108, 101, 32, 111, 114, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 78, 111, 32, 115, 117, 99, 104, 32, 112, 114, 111, 99, 101, 115, 115, 0, 70, 105, 108, 101, 32, 101, 120, 105, 115, 116, 115, 0, 86, 97, 108, 117, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 32, 102, 111, 114, 32, 100, 97, 116, 97, 32, 116, 121, 112, 101, 0, 78, 111, 32, 115, 112, 97, 99, 101, 32, 108, 101, 102, 116, 32, 111, 110, 32, 100, 101, 118, 105, 99, 101, 0, 79, 117, 116, 32, 111, 102, 32, 109, 101, 109, 111, 114, 121, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 98, 117, 115, 121, 0, 73, 110, 116, 101, 114, 114, 117, 112, 116, 101, 100, 32, 115, 121, 115, 116, 101, 109, 32, 99, 97, 108, 108, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 116, 101, 109, 112, 111, 114, 97, 114, 105, 108, 121, 32, 117, 110, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 73, 110, 118, 97, 108, 105, 100, 32, 115, 101, 101, 107, 0, 67, 114, 111, 115, 115, 45, 100, 101, 118, 105, 99, 101, 32, 108, 105, 110, 107, 0, 82, 101, 97, 100, 45, 111, 110, 108, 121, 32, 102, 105, 108, 101, 32, 115, 121, 115, 116, 101, 109, 0, 68, 105, 114, 101, 99, 116, 111, 114, 121, 32, 110, 111, 116, 32, 101, 109, 112, 116, 121, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 115, 101, 116, 32, 98, 121, 32, 112, 101, 101, 114, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 116, 105, 109, 101, 100, 32, 111, 117, 116, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 102, 117, 115, 101, 100, 0, 72, 111, 115, 116, 32, 105, 115, 32, 100, 111, 119, 110, 0, 72, 111, 115, 116, 32, 105, 115, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 0, 65, 100, 100, 114, 101, 115, 115, 32, 105, 110, 32, 117, 115, 101, 0, 66, 114, 111, 107, 101, 110, 32, 112, 105, 112, 101, 0, 73, 47, 79, 32, 101, 114, 114, 111, 114, 0, 78, 111, 32, 115, 117, 99, 104, 32, 100, 101, 118, 105, 99, 101, 32, 111, 114, 32, 97, 100, 100, 114, 101, 115, 115, 0, 66, 108, 111, 99, 107, 32, 100, 101, 118, 105, 99, 101, 32, 114, 101, 113, 117, 105, 114, 101, 100, 0, 78, 111, 32, 115, 117, 99, 104, 32, 100, 101, 118, 105, 99, 101, 0, 78, 111, 116], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 42396); + allocate([32, 97, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 73, 115, 32, 97, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 84, 101, 120, 116, 32, 102, 105, 108, 101, 32, 98, 117, 115, 121, 0, 69, 120, 101, 99, 32, 102, 111, 114, 109, 97, 116, 32, 101, 114, 114, 111, 114, 0, 73, 110, 118, 97, 108, 105, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 0, 65, 114, 103, 117, 109, 101, 110, 116, 32, 108, 105, 115, 116, 32, 116, 111, 111, 32, 108, 111, 110, 103, 0, 83, 121, 109, 98, 111, 108, 105, 99, 32, 108, 105, 110, 107, 32, 108, 111, 111, 112, 0, 70, 105, 108, 101, 110, 97, 109, 101, 32, 116, 111, 111, 32, 108, 111, 110, 103, 0, 84, 111, 111, 32, 109, 97, 110, 121, 32, 111, 112, 101, 110, 32, 102, 105, 108, 101, 115, 32, 105, 110, 32, 115, 121, 115, 116, 101, 109, 0, 78, 111, 32, 102, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 66, 97, 100, 32, 102, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 0, 78, 111, 32, 99, 104, 105, 108, 100, 32, 112, 114, 111, 99, 101, 115, 115, 0, 66, 97, 100, 32, 97, 100, 100, 114, 101, 115, 115, 0, 70, 105, 108, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 0, 84, 111, 111, 32, 109, 97, 110, 121, 32, 108, 105, 110, 107, 115, 0, 78, 111, 32, 108, 111, 99, 107, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 100, 101, 97, 100, 108, 111, 99, 107, 32, 119, 111, 117, 108, 100, 32, 111, 99, 99, 117, 114, 0, 83, 116, 97, 116, 101, 32, 110, 111, 116, 32, 114, 101, 99, 111, 118, 101, 114, 97, 98, 108, 101, 0, 80, 114, 101, 118, 105, 111, 117, 115, 32, 111, 119, 110, 101, 114, 32, 100, 105, 101, 100, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 99, 97, 110, 99, 101, 108, 101, 100, 0, 70, 117, 110, 99, 116, 105, 111, 110, 32, 110, 111, 116, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 0, 78, 111, 32, 109, 101, 115, 115, 97, 103, 101, 32, 111, 102, 32, 100, 101, 115, 105, 114, 101, 100, 32, 116, 121, 112, 101, 0, 73, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 114, 101, 109, 111, 118, 101, 100, 0, 68, 101, 118, 105, 99, 101, 32, 110, 111, 116, 32, 97, 32, 115, 116, 114, 101, 97, 109, 0, 78, 111, 32, 100, 97, 116, 97, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 68, 101, 118, 105, 99, 101, 32, 116, 105, 109, 101, 111, 117, 116, 0, 79, 117, 116, 32, 111, 102, 32, 115, 116, 114, 101, 97, 109, 115, 32, 114, 101, 115, 111, 117, 114, 99, 101, 115, 0, 76, 105, 110, 107, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 101, 118, 101, 114, 101, 100, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 101, 114, 114, 111, 114, 0, 66, 97, 100, 32, 109, 101, 115, 115, 97, 103, 101, 0, 70, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 32, 105, 110, 32, 98, 97, 100, 32, 115, 116, 97, 116, 101, 0, 78, 111, 116, 32, 97, 32, 115, 111, 99, 107, 101, 116, 0, 68, 101, 115, 116, 105, 110, 97, 116, 105, 111, 110, 32, 97, 100, 100, 114, 101, 115, 115, 32, 114, 101, 113, 117, 105, 114, 101, 100, 0, 77, 101, 115, 115, 97, 103, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 119, 114, 111, 110, 103, 32, 116, 121, 112, 101, 32, 102, 111, 114, 32, 115, 111, 99, 107, 101, 116, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 83, 111, 99, 107, 101, 116, 32, 116, 121, 112, 101, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 78, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 102, 97, 109, 105, 108, 121, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 65, 100, 100, 114, 101, 115, 115, 32, 102, 97, 109, 105, 108, 121, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 98, 121, 32, 112, 114, 111, 116, 111, 99, 111, 108, 0, 65, 100, 100, 114, 101, 115, 115, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 78, 101, 116, 119, 111, 114, 107, 32, 105, 115, 32, 100, 111, 119, 110, 0, 78, 101, 116, 119, 111, 114, 107, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 115, 101, 116, 32, 98, 121, 32, 110, 101, 116, 119, 111, 114, 107, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 97, 98, 111, 114, 116, 101, 100, 0, 78, 111, 32, 98, 117, 102, 102, 101, 114, 32, 115, 112, 97, 99, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 83, 111, 99, 107, 101, 116, 32, 105, 115, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 0, 83, 111, 99, 107, 101, 116, 32, 110, 111, 116, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 0, 67, 97, 110, 110, 111, 116, 32, 115, 101, 110, 100, 32, 97, 102, 116, 101, 114, 32, 115, 111, 99, 107, 101, 116, 32, 115, 104, 117, 116, 100, 111, 119, 110, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 97, 108, 114, 101, 97, 100, 121, 32, 105, 110, 32, 112, 114, 111, 103, 114, 101, 115, 115, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 105, 110, 32, 112, 114, 111, 103, 114, 101, 115, 115, 0, 83, 116, 97, 108, 101, 32, 102, 105, 108, 101, 32, 104, 97, 110, 100, 108, 101, 0, 82, 101, 109, 111, 116, 101, 32, 73, 47, 79, 32, 101, 114, 114, 111, 114, 0, 81, 117, 111, 116, 97, 32, 101, 120, 99, 101, 101, 100, 101, 100, 0, 78, 111, 32, 109, 101, 100, 105, 117, 109, 32, 102, 111, 117, 110, 100, 0, 87, 114, 111, 110, 103, 32, 109, 101, 100, 105, 117, 109, 32, 116, 121, 112, 101, 0, 78, 111, 32, 101, 114, 114, 111, 114, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 0, 0, 105, 110, 102, 105, 110, 105, 116, 121, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 4, 7, 3, 6, 5, 0, 80, 79, 83, 73, 88], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 52636); + allocate([17, 0, 10, 0, 17, 17, 17, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 15, 10, 17, 17, 17, 3, 10, 7, 0, 1, 19, 9, 11, 11, 0, 0, 9, 6, 11, 0, 0, 11, 0, 6, 17, 0, 0, 0, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 10, 10, 17, 17, 17, 0, 10, 0, 0, 2, 0, 9, 11, 0, 0, 0, 9, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 4, 13, 0, 0, 0, 0, 9, 14, 0, 0, 0, 0, 0, 14, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 15, 0, 0, 0, 0, 9, 16, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 0, 0, 0, 0, 9, 11, 0, 0, 0, 0, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 45, 43, 32, 32, 32, 48, 88, 48, 120, 0, 40, 110, 117, 108, 108, 41, 0, 45, 48, 88, 43, 48, 88, 32, 48, 88, 45, 48, 120, 43, 48, 120, 32, 48, 120, 0, 105, 110, 102, 0, 73, 78, 70, 0, 110, 97, 110, 0, 78, 65, 78, 0, 46, 0, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 115, 116, 100, 111, 117, 116, 98, 117, 102, 73, 119, 69, 69, 0, 117, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 108, 111, 99, 97, 108, 101, 32, 102, 111, 114, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 105, 110, 112, 117, 116, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 115, 116, 100, 105, 110, 98, 117, 102, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 115, 116, 100, 111, 117, 116, 98, 117, 102, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 115, 116, 100, 105, 110, 98, 117, 102, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 115, 104, 97, 114, 101, 100, 95, 99, 111, 117, 110, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 115, 121, 115, 116, 101, 109, 95, 101, 114, 114, 111, 114, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 101, 114, 114, 111, 114, 95, 99, 97, 116, 101, 103, 111, 114, 121, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 95, 95, 100, 111, 95, 109, 101, 115, 115, 97, 103, 101, 69, 0, 58, 32, 0, 78, 83, 116, 51, 95, 95, 49, 56, 105, 111, 115, 95, 98, 97, 115, 101, 55, 102, 97, 105, 108, 117, 114, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 105, 111, 115, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 98, 97, 115, 105, 99, 95, 105, 111, 115, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 98, 97, 115, 105, 99, 95, 105, 111, 115, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 101, 97, 109, 98, 117, 102, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 101, 97, 109, 98, 117, 102, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 57, 95, 95, 105, 111, 115, 116, 114, 101, 97, 109, 95, 99, 97, 116, 101, 103, 111, 114, 121, 69, 0, 105, 111, 115, 95, 98, 97, 115, 101, 58, 58, 99, 108, 101, 97, 114, 0, 105, 111, 115, 116, 114, 101, 97, 109, 0, 117, 110, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 111, 115, 116, 114, 101, 97, 109, 95, 99, 97, 116, 101, 103, 111, 114, 121, 32, 101, 114, 114, 111, 114, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102, 65, 66, 67, 68, 69, 70, 120, 88, 43, 45, 112, 80, 105, 73, 110, 78, 0, 78, 83, 116, 51, 95, 95, 49, 54, 108, 111, 99, 97, 108, 101, 53, 102, 97, 99, 101, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 53, 99, 116, 121, 112, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 99, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 68, 115, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 68, 105, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 54, 95, 95, 110, 97, 114, 114, 111, 119, 95, 116, 111, 95, 117, 116, 102, 56, 73, 76, 106, 51, 50, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 55, 95, 95, 119, 105, 100, 101, 110, 95, 102, 114, 111, 109, 95, 117, 116, 102, 56, 73, 76, 106, 51, 50, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 119, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 54, 108, 111, 99, 97, 108, 101, 53, 95, 95, 105, 109, 112, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 108, 108, 97, 116, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 108, 108, 97, 116, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 53, 99, 116, 121, 112, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 110, 117, 109, 112, 117, 110, 99, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 110, 117, 109, 112, 117, 110, 99, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 99, 76, 98, 48, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 99, 76, 98, 49, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 119, 76, 98, 48, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 119, 76, 98, 49, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 109, 101, 115, 115, 97, 103, 101, 115, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 109, 101, 115, 115, 97, 103, 101, 115, 73, 119, 69, 69, 0, 37, 112, 0, 67, 0, 37, 0, 0, 0, 0, 0, 108, 0, 108, 108, 0, 0, 76, 0, 37, 112, 0, 0, 0, 0, 37, 72, 58, 37, 77, 58, 37, 83, 37, 109, 47, 37, 100, 47, 37, 121, 37, 89, 45, 37, 109, 45, 37, 100, 37, 73, 58, 37, 77, 58, 37, 83, 32, 37, 112, 37, 72, 58, 37, 77, 37, 72, 58, 37, 77, 58, 37, 83, 108, 111, 99, 97, 108, 101, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 37, 76, 102, 0, 109, 111, 110, 101, 121, 95, 103, 101, 116, 32, 101, 114, 114, 111, 114, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 37, 46, 48, 76, 102, 0, 116, 114, 117, 101, 0, 102, 97, 108, 115, 101, 0, 83, 117, 110, 100, 97, 121, 0, 77, 111, 110, 100, 97, 121, 0, 84, 117, 101, 115, 100, 97, 121, 0, 87, 101, 100, 110, 101, 115, 100, 97, 121, 0, 84, 104, 117, 114, 115, 100, 97, 121, 0, 70, 114, 105, 100, 97, 121, 0, 83, 97, 116, 117, 114, 100, 97, 121, 0, 83, 117, 110, 0, 77, 111, 110, 0, 84, 117, 101, 0, 87, 101, 100, 0, 84, 104, 117, 0, 70, 114, 105, 0, 83, 97, 116, 0, 74, 97, 110, 117, 97, 114, 121, 0, 70, 101, 98, 114, 117, 97, 114, 121, 0, 77, 97, 114, 99, 104, 0, 65, 112, 114, 105, 108, 0, 77, 97, 121, 0, 74, 117, 110, 101, 0, 74, 117, 108, 121, 0, 65, 117, 103, 117, 115, 116, 0, 83, 101, 112, 116, 101, 109, 98, 101, 114, 0, 79, 99, 116, 111, 98, 101, 114, 0, 78, 111, 118, 101, 109, 98, 101, 114, 0, 68, 101, 99, 101, 109, 98, 101, 114, 0, 74, 97, 110, 0, 70, 101, 98, 0, 77, 97, 114, 0, 65, 112, 114, 0, 74, 117, 110, 0, 74, 117, 108, 0, 65, 117, 103, 0, 83, 101, 112, 0, 79, 99, 116, 0, 78, 111, 118, 0, 68, 101, 99, 0, 65, 77, 0, 80, 77, 0, 37, 109, 47, 37, 100, 47, 37, 121, 0, 37, 72, 58, 37, 77, 58, 37, 83, 0, 37, 97, 32, 37, 98, 32, 37, 100, 32, 37, 72, 58, 37, 77, 58, 37, 83, 32, 37, 89, 0, 37, 73, 58, 37, 77, 58, 37, 83, 32, 37, 112, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 109, 101, 115, 115, 97, 103, 101, 115, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 116, 105, 109, 101, 95, 112, 117, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 50, 48, 95, 95, 116, 105, 109, 101, 95, 103, 101, 116, 95, 99, 95, 115, 116, 111, 114, 97, 103, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 50, 48, 95, 95, 116, 105, 109, 101, 95, 103, 101, 116, 95, 99, 95, 115, 116, 111, 114, 97, 103, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 116, 105, 109, 101, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 112, 117, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 110, 117, 109, 95, 112, 117, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 112, 117, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 103, 101, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 110, 117, 109, 95, 103, 101, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 103, 101, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 99, 111, 100, 101, 99, 118, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 99, 116, 121, 112, 101, 95, 98, 97, 115, 101, 69, 0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 56215); + var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8); + assert(tempDoublePtr % 8 == 0); + function copyTempFloat(ptr) { + HEAP8[tempDoublePtr] = HEAP8[ptr]; + HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1]; + HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2]; + HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3]; + } + function copyTempDouble(ptr) { + HEAP8[tempDoublePtr] = HEAP8[ptr]; + HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1]; + HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2]; + HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3]; + HEAP8[tempDoublePtr + 4] = HEAP8[ptr + 4]; + HEAP8[tempDoublePtr + 5] = HEAP8[ptr + 5]; + HEAP8[tempDoublePtr + 6] = HEAP8[ptr + 6]; + HEAP8[tempDoublePtr + 7] = HEAP8[ptr + 7]; + } + function _atexit(func2, arg2) { + __ATEXIT__.unshift({ func: func2, arg: arg2 }); + } + function ___cxa_atexit() { + return _atexit.apply(null, arguments); + } + Module["_i64Subtract"] = _i64Subtract; + function ___assert_fail(condition, filename, line, func2) { + ABORT = true; + throw "Assertion failed: " + Pointer_stringify(condition) + ", at: " + [filename ? Pointer_stringify(filename) : "unknown filename", line, func2 ? Pointer_stringify(func2) : "unknown function"] + " at " + stackTrace(); + } + function __ZSt18uncaught_exceptionv() { + return !!__ZSt18uncaught_exceptionv.uncaught_exception; + } + var EXCEPTIONS = { last: 0, caught: [], infos: {}, deAdjust: function(adjusted) { + if (!adjusted || EXCEPTIONS.infos[adjusted]) + return adjusted; + for (var ptr in EXCEPTIONS.infos) { + var info = EXCEPTIONS.infos[ptr]; + if (info.adjusted === adjusted) { + return ptr; + } + } + return adjusted; + }, addRef: function(ptr) { + if (!ptr) + return; + var info = EXCEPTIONS.infos[ptr]; + info.refcount++; + }, decRef: function(ptr) { + if (!ptr) + return; + var info = EXCEPTIONS.infos[ptr]; + assert(info.refcount > 0); + info.refcount--; + if (info.refcount === 0) { + if (info.destructor) { + Runtime.dynCall("vi", info.destructor, [ptr]); + } + delete EXCEPTIONS.infos[ptr]; + ___cxa_free_exception(ptr); + } + }, clearRef: function(ptr) { + if (!ptr) + return; + var info = EXCEPTIONS.infos[ptr]; + info.refcount = 0; + } }; + function ___resumeException(ptr) { + if (!EXCEPTIONS.last) { + EXCEPTIONS.last = ptr; + } + EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr)); + throw ptr; + } + function ___cxa_find_matching_catch() { + var thrown = EXCEPTIONS.last; + if (!thrown) { + return (asm["setTempRet0"](0), 0) | 0; + } + var info = EXCEPTIONS.infos[thrown]; + var throwntype = info.type; + if (!throwntype) { + return (asm["setTempRet0"](0), thrown) | 0; + } + var typeArray = Array.prototype.slice.call(arguments); + var pointer = Module["___cxa_is_pointer_type"](throwntype); + if (!___cxa_find_matching_catch.buffer) + ___cxa_find_matching_catch.buffer = _malloc(4); + HEAP32[___cxa_find_matching_catch.buffer >> 2] = thrown; + thrown = ___cxa_find_matching_catch.buffer; + for (var i2 = 0; i2 < typeArray.length; i2++) { + if (typeArray[i2] && Module["___cxa_can_catch"](typeArray[i2], throwntype, thrown)) { + thrown = HEAP32[thrown >> 2]; + info.adjusted = thrown; + return (asm["setTempRet0"](typeArray[i2]), thrown) | 0; + } + } + thrown = HEAP32[thrown >> 2]; + return (asm["setTempRet0"](throwntype), thrown) | 0; + } + function ___cxa_throw(ptr, type2, destructor) { + EXCEPTIONS.infos[ptr] = { ptr, adjusted: ptr, type: type2, destructor, refcount: 0 }; + EXCEPTIONS.last = ptr; + if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { + __ZSt18uncaught_exceptionv.uncaught_exception = 1; + } else { + __ZSt18uncaught_exceptionv.uncaught_exception++; + } + throw ptr; + } + Module["_memset"] = _memset; + var _BDtoILow = true; + var _emscripten_resume = true; + function ___gxx_personality_v0() { + } + var _emscripten_landingpad = true; + function __isLeapYear(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + } + function __arraySum(array, index) { + var sum = 0; + for (var i2 = 0; i2 <= index; sum += array[i2++]) + ; + 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); } - dist += hold & ((1 << op) - 1); -//#ifdef INFLATE_STRICT - if (dist > dmax) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break top; - } -//#endif - hold >>>= op; - bits -= op; - //Tracevv((stderr, "inflate: distance %u\n", dist)); - op = _out - beg; /* max distance in output */ - if (dist > op) { /* see if copy from window */ - op = dist - op; /* distance back in window */ - if (op > whave) { - if (state.sane) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break top; - } - -// (!) This block is disabled in zlib defaults, -// don't enable it for binary compatibility -//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR -// if (len <= op - whave) { -// do { -// output[_out++] = 0; -// } while (--len); -// continue top; -// } -// len -= op - whave; -// do { -// output[_out++] = 0; -// } while (--op > whave); -// if (op === 0) { -// from = _out - dist; -// do { -// output[_out++] = output[from++]; -// } while (--len); -// continue top; -// } -//#endif - } - from = 0; // window index - from_source = s_window; - if (wnext === 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - else if (wnext < op) { /* wrap around window */ - from += wsize + wnext - op; - op -= wnext; - if (op < len) { /* some from end of window */ - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = 0; - if (wnext < len) { /* some from start of window */ - op = wnext; - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - } - else { /* contiguous in window */ - from += wnext - op; - if (op < len) { /* some from window */ - len -= op; - do { - output[_out++] = s_window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - while (len > 2) { - output[_out++] = from_source[from++]; - output[_out++] = from_source[from++]; - output[_out++] = from_source[from++]; - len -= 3; - } - if (len) { - output[_out++] = from_source[from++]; - if (len > 1) { - output[_out++] = from_source[from++]; - } - } + } 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 ? Pointer_stringify(tm_zone) : "" }; + var pattern = Pointer_stringify(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()); } - else { - from = _out - dist; /* copy direct from output */ - do { /* minimum length is three */ - output[_out++] = output[from++]; - output[_out++] = output[from++]; - output[_out++] = output[from++]; - len -= 3; - } while (len > 2); - if (len) { - output[_out++] = output[from++]; - if (len > 1) { - output[_out++] = output[from++]; - } - } + } + 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(date2) { + var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.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(date2) { + return WEEKDAYS[date2.tm_wday].substring(0, 3); + }, "%A": function(date2) { + return WEEKDAYS[date2.tm_wday]; + }, "%b": function(date2) { + return MONTHS[date2.tm_mon].substring(0, 3); + }, "%B": function(date2) { + return MONTHS[date2.tm_mon]; + }, "%C": function(date2) { + var year = date2.tm_year + 1900; + return leadingNulls(year / 100 | 0, 2); + }, "%d": function(date2) { + return leadingNulls(date2.tm_mday, 2); + }, "%e": function(date2) { + return leadingSomething(date2.tm_mday, 2, " "); + }, "%g": function(date2) { + return getWeekBasedYear(date2).toString().substring(2); + }, "%G": function(date2) { + return getWeekBasedYear(date2); + }, "%H": function(date2) { + return leadingNulls(date2.tm_hour, 2); + }, "%I": function(date2) { + return leadingNulls(date2.tm_hour < 13 ? date2.tm_hour : date2.tm_hour - 12, 2); + }, "%j": function(date2) { + return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); + }, "%m": function(date2) { + return leadingNulls(date2.tm_mon + 1, 2); + }, "%M": function(date2) { + return leadingNulls(date2.tm_min, 2); + }, "%n": function() { + return "\n"; + }, "%p": function(date2) { + if (date2.tm_hour > 0 && date2.tm_hour < 13) { + return "AM"; + } else { + return "PM"; } - else if ((op & 64) === 0) { /* 2nd level distance code */ - here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; - continue dodist; + }, "%S": function(date2) { + return leadingNulls(date2.tm_sec, 2); + }, "%t": function() { + return " "; + }, "%u": function(date2) { + var day = new Date(date2.tm_year + 1900, date2.tm_mon + 1, date2.tm_mday, 0, 0, 0, 0); + return day.getDay() || 7; + }, "%U": function(date2) { + var janFirst = new Date(date2.tm_year + 1900, 0, 1); + var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7 - janFirst.getDay()); + var endDate = new Date(date2.tm_year + 1900, date2.tm_mon, date2.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); } - else { - strm.msg = 'invalid distance code'; - state.mode = BAD; - break top; + return compareByDay(firstSunday, janFirst) === 0 ? "01" : "00"; + }, "%V": function(date2) { + var janFourthThisYear = new Date(date2.tm_year + 1900, 0, 4); + var janFourthNextYear = new Date(date2.tm_year + 1901, 0, 4); + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + var endDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); + if (compareByDay(endDate, firstWeekStartThisYear) < 0) { + return "53"; } - - break; // need to emulate goto via "continue" + if (compareByDay(firstWeekStartNextYear, endDate) <= 0) { + return "01"; + } + var daysDifference; + if (firstWeekStartThisYear.getFullYear() < date2.tm_year + 1900) { + daysDifference = date2.tm_yday + 32 - firstWeekStartThisYear.getDate(); + } else { + daysDifference = date2.tm_yday + 1 - firstWeekStartThisYear.getDate(); + } + return leadingNulls(Math.ceil(daysDifference / 7), 2); + }, "%w": function(date2) { + var day = new Date(date2.tm_year + 1900, date2.tm_mon + 1, date2.tm_mday, 0, 0, 0, 0); + return day.getDay(); + }, "%W": function(date2) { + var janFirst = new Date(date2.tm_year, 0, 1); + var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7 - janFirst.getDay() + 1); + var endDate = new Date(date2.tm_year + 1900, date2.tm_mon, date2.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(date2) { + return (date2.tm_year + 1900).toString().substring(2); + }, "%Y": function(date2) { + return date2.tm_year + 1900; + }, "%z": function(date2) { + var off = date2.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(date2) { + return date2.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; } - else if ((op & 64) === 0) { /* 2nd level length code */ - here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; - continue dolen; + function _strftime_l(s, maxsize, format, tm) { + return _strftime(s, maxsize, format, tm); } - else if (op & 32) { /* end-of-block */ - //Tracevv((stderr, "inflate: end of block\n")); - state.mode = TYPE; - break top; + function _abort() { + Module["abort"](); } - else { - strm.msg = 'invalid literal/length code'; - state.mode = BAD; - break top; + function _free() { } - - break; // need to emulate goto via "continue" - } - } while (_in < last && _out < end); - - /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ - len = bits >> 3; - _in -= len; - bits -= len << 3; - hold &= (1 << bits) - 1; - - /* update state and return */ - strm.next_in = _in; - strm.next_out = _out; - strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last)); - strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end)); - state.hold = hold; - state.bits = bits; - return; -}; - -},{}],27:[function(require,module,exports){ -'use strict'; - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -var utils = require('../utils/common'); -var adler32 = require('./adler32'); -var crc32 = require('./crc32'); -var inflate_fast = require('./inffast'); -var inflate_table = require('./inftrees'); - -var CODES = 0; -var LENS = 1; -var DISTS = 2; - -/* Public constants ==========================================================*/ -/* ===========================================================================*/ - - -/* Allowed flush values; see deflate() and inflate() below for details */ -//var Z_NO_FLUSH = 0; -//var Z_PARTIAL_FLUSH = 1; -//var Z_SYNC_FLUSH = 2; -//var Z_FULL_FLUSH = 3; -var Z_FINISH = 4; -var Z_BLOCK = 5; -var Z_TREES = 6; - - -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ -var Z_OK = 0; -var Z_STREAM_END = 1; -var Z_NEED_DICT = 2; -//var Z_ERRNO = -1; -var Z_STREAM_ERROR = -2; -var Z_DATA_ERROR = -3; -var Z_MEM_ERROR = -4; -var Z_BUF_ERROR = -5; -//var Z_VERSION_ERROR = -6; - -/* The deflate compression method */ -var Z_DEFLATED = 8; - - -/* STATES ====================================================================*/ -/* ===========================================================================*/ - - -var HEAD = 1; /* i: waiting for magic header */ -var FLAGS = 2; /* i: waiting for method and flags (gzip) */ -var TIME = 3; /* i: waiting for modification time (gzip) */ -var OS = 4; /* i: waiting for extra flags and operating system (gzip) */ -var EXLEN = 5; /* i: waiting for extra length (gzip) */ -var EXTRA = 6; /* i: waiting for extra bytes (gzip) */ -var NAME = 7; /* i: waiting for end of file name (gzip) */ -var COMMENT = 8; /* i: waiting for end of comment (gzip) */ -var HCRC = 9; /* i: waiting for header crc (gzip) */ -var DICTID = 10; /* i: waiting for dictionary check value */ -var DICT = 11; /* waiting for inflateSetDictionary() call */ -var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ -var TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */ -var STORED = 14; /* i: waiting for stored size (length and complement) */ -var COPY_ = 15; /* i/o: same as COPY below, but only first time in */ -var COPY = 16; /* i/o: waiting for input or output to copy stored block */ -var TABLE = 17; /* i: waiting for dynamic block table lengths */ -var LENLENS = 18; /* i: waiting for code length code lengths */ -var CODELENS = 19; /* i: waiting for length/lit and distance code lengths */ -var LEN_ = 20; /* i: same as LEN below, but only first time in */ -var LEN = 21; /* i: waiting for length/lit/eob code */ -var LENEXT = 22; /* i: waiting for length extra bits */ -var DIST = 23; /* i: waiting for distance code */ -var DISTEXT = 24; /* i: waiting for distance extra bits */ -var MATCH = 25; /* o: waiting for output space to copy string */ -var LIT = 26; /* o: waiting for output space to write literal */ -var CHECK = 27; /* i: waiting for 32-bit check value */ -var LENGTH = 28; /* i: waiting for 32-bit length (gzip) */ -var DONE = 29; /* finished check, done -- remain here until reset */ -var BAD = 30; /* got a data error -- remain here until reset */ -var MEM = 31; /* got an inflate() memory error -- remain here until reset */ -var SYNC = 32; /* looking for synchronization bytes to restart inflate() */ - -/* ===========================================================================*/ - - - -var ENOUGH_LENS = 852; -var ENOUGH_DISTS = 592; -//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); - -var MAX_WBITS = 15; -/* 32K LZ77 window */ -var DEF_WBITS = MAX_WBITS; - - -function zswap32(q) { - return (((q >>> 24) & 0xff) + - ((q >>> 8) & 0xff00) + - ((q & 0xff00) << 8) + - ((q & 0xff) << 24)); -} - - -function InflateState() { - this.mode = 0; /* current inflate mode */ - this.last = false; /* true if processing last block */ - this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ - this.havedict = false; /* true if dictionary provided */ - this.flags = 0; /* gzip header method and flags (0 if zlib) */ - this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */ - this.check = 0; /* protected copy of check value */ - this.total = 0; /* protected copy of output count */ - // TODO: may be {} - this.head = null; /* where to save gzip header information */ - - /* sliding window */ - this.wbits = 0; /* log base 2 of requested window size */ - this.wsize = 0; /* window size or zero if not using window */ - this.whave = 0; /* valid bytes in the window */ - this.wnext = 0; /* window write index */ - this.window = null; /* allocated sliding window, if needed */ - - /* bit accumulator */ - this.hold = 0; /* input bit accumulator */ - this.bits = 0; /* number of bits in "in" */ - - /* for string and stored block copying */ - this.length = 0; /* literal or length of data to copy */ - this.offset = 0; /* distance back to copy string from */ - - /* for table and code decoding */ - this.extra = 0; /* extra bits needed */ - - /* fixed and dynamic code tables */ - this.lencode = null; /* starting table for length/literal codes */ - this.distcode = null; /* starting table for distance codes */ - this.lenbits = 0; /* index bits for lencode */ - this.distbits = 0; /* index bits for distcode */ - - /* dynamic table building */ - this.ncode = 0; /* number of code length code lengths */ - this.nlen = 0; /* number of length code lengths */ - this.ndist = 0; /* number of distance code lengths */ - this.have = 0; /* number of code lengths in lens[] */ - this.next = null; /* next available space in codes[] */ - - this.lens = new utils.Buf16(320); /* temporary storage for code lengths */ - this.work = new utils.Buf16(288); /* work area for code table building */ - - /* - because we don't have pointers in js, we use lencode and distcode directly - as buffers so we don't need codes - */ - //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */ - this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */ - this.distdyn = null; /* dynamic table for distance codes (JS specific) */ - this.sane = 0; /* if false, allow invalid distance too far */ - this.back = 0; /* bits back of last unprocessed length/lit */ - this.was = 0; /* initial length of match */ -} - -function inflateResetKeep(strm) { - var state; - - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - strm.total_in = strm.total_out = state.total = 0; - strm.msg = ''; /*Z_NULL*/ - if (state.wrap) { /* to support ill-conceived Java test suite */ - strm.adler = state.wrap & 1; - } - state.mode = HEAD; - state.last = 0; - state.havedict = 0; - state.dmax = 32768; - state.head = null/*Z_NULL*/; - state.hold = 0; - state.bits = 0; - //state.lencode = state.distcode = state.next = state.codes; - state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); - state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); - - state.sane = 1; - state.back = -1; - //Tracev((stderr, "inflate: reset\n")); - return Z_OK; -} - -function inflateReset(strm) { - var state; - - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - state.wsize = 0; - state.whave = 0; - state.wnext = 0; - return inflateResetKeep(strm); - -} - -function inflateReset2(strm, windowBits) { - var wrap; - var state; - - /* get the state */ - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - - /* extract wrap request from windowBits parameter */ - if (windowBits < 0) { - wrap = 0; - windowBits = -windowBits; - } - else { - wrap = (windowBits >> 4) + 1; - if (windowBits < 48) { - windowBits &= 15; - } - } - - /* set number of window bits, free window if different */ - if (windowBits && (windowBits < 8 || windowBits > 15)) { - return Z_STREAM_ERROR; - } - if (state.window !== null && state.wbits !== windowBits) { - state.window = null; - } - - /* update state and reset the rest of it */ - state.wrap = wrap; - state.wbits = windowBits; - return inflateReset(strm); -} - -function inflateInit2(strm, windowBits) { - var ret; - var state; - - if (!strm) { return Z_STREAM_ERROR; } - //strm.msg = Z_NULL; /* in case we return an error */ - - state = new InflateState(); - - //if (state === Z_NULL) return Z_MEM_ERROR; - //Tracev((stderr, "inflate: allocated\n")); - strm.state = state; - state.window = null/*Z_NULL*/; - ret = inflateReset2(strm, windowBits); - if (ret !== Z_OK) { - strm.state = null/*Z_NULL*/; - } - return ret; -} - -function inflateInit(strm) { - return inflateInit2(strm, DEF_WBITS); -} - - -/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ -var virgin = true; - -var lenfix, distfix; // We have no pointers in JS, so keep tables separate - -function fixedtables(state) { - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - var sym; - - lenfix = new utils.Buf32(512); - distfix = new utils.Buf32(32); - - /* literal/length table */ - sym = 0; - while (sym < 144) { state.lens[sym++] = 8; } - while (sym < 256) { state.lens[sym++] = 9; } - while (sym < 280) { state.lens[sym++] = 7; } - while (sym < 288) { state.lens[sym++] = 8; } - - inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); - - /* distance table */ - sym = 0; - while (sym < 32) { state.lens[sym++] = 5; } - - inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); - - /* do this just once */ - virgin = false; - } - - state.lencode = lenfix; - state.lenbits = 9; - state.distcode = distfix; - state.distbits = 5; -} - - -/* - Update the window with the last wsize (normally 32K) bytes written before - returning. If window does not exist yet, create it. This is only called - when a window is already in use, or when output has been written during this - inflate call, but the end of the deflate stream has not been reached yet. - It is also called to create a window for dictionary data when a dictionary - is loaded. - - Providing output buffers larger than 32K to inflate() should provide a speed - advantage, since only the last 32K of output is copied to the sliding window - upon return from inflate(), and since all distances after the first 32K of - output will fall in the output data, making match copies simpler and faster. - The advantage may be dependent on the size of the processor's data caches. - */ -function updatewindow(strm, src, end, copy) { - var dist; - var state = strm.state; - - /* if it hasn't been done already, allocate space for the window */ - if (state.window === null) { - state.wsize = 1 << state.wbits; - state.wnext = 0; - state.whave = 0; - - state.window = new utils.Buf8(state.wsize); - } - - /* copy state->wsize or less output bytes into the circular window */ - if (copy >= state.wsize) { - utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); - state.wnext = 0; - state.whave = state.wsize; - } - else { - dist = state.wsize - state.wnext; - if (dist > copy) { - dist = copy; - } - //zmemcpy(state->window + state->wnext, end - copy, dist); - utils.arraySet(state.window, src, end - copy, dist, state.wnext); - copy -= dist; - if (copy) { - //zmemcpy(state->window, end - copy, copy); - utils.arraySet(state.window, src, end - copy, copy, 0); - state.wnext = copy; - state.whave = state.wsize; - } - else { - state.wnext += dist; - if (state.wnext === state.wsize) { state.wnext = 0; } - if (state.whave < state.wsize) { state.whave += dist; } - } - } - return 0; -} - -function inflate(strm, flush) { - var state; - var input, output; // input/output buffers - var next; /* next input INDEX */ - var put; /* next output INDEX */ - var have, left; /* available input and output */ - var hold; /* bit buffer */ - var bits; /* bits in bit buffer */ - var _in, _out; /* save starting available input and output */ - var copy; /* number of stored or match bytes to copy */ - var from; /* where to copy match bytes from */ - var from_source; - var here = 0; /* current decoding table entry */ - var here_bits, here_op, here_val; // paked "here" denormalized (JS specific) - //var last; /* parent table entry */ - var last_bits, last_op, last_val; // paked "last" denormalized (JS specific) - var len; /* length to copy for repeats, bits to drop */ - var ret; /* return code */ - var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */ - var opts; - - var n; // temporary var for NEED_BITS - - var order = /* permutation of code lengths */ - [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; - - - if (!strm || !strm.state || !strm.output || - (!strm.input && strm.avail_in !== 0)) { - return Z_STREAM_ERROR; - } - - state = strm.state; - if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */ - - - //--- LOAD() --- - put = strm.next_out; - output = strm.output; - left = strm.avail_out; - next = strm.next_in; - input = strm.input; - have = strm.avail_in; - hold = state.hold; - bits = state.bits; - //--- - - _in = have; - _out = left; - ret = Z_OK; - - inf_leave: // goto emulation - for (;;) { - switch (state.mode) { - case HEAD: - if (state.wrap === 0) { - state.mode = TYPEDO; - break; - } - //=== NEEDBITS(16); - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */ - state.check = 0/*crc32(0L, Z_NULL, 0)*/; - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = FLAGS; - break; + Module["_free"] = _free; + function ___cxa_free_exception(ptr) { + try { + return _free(ptr); + } catch (e) { } - state.flags = 0; /* expect zlib header */ - if (state.head) { - state.head.done = false; + } + function ___cxa_end_catch() { + if (___cxa_end_catch.rethrown) { + ___cxa_end_catch.rethrown = false; + return; } - if (!(state.wrap & 1) || /* check if zlib header allowed */ - (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) { - strm.msg = 'incorrect header check'; - state.mode = BAD; - break; + asm["setThrew"](0); + var ptr = EXCEPTIONS.caught.pop(); + if (ptr) { + EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr)); + EXCEPTIONS.last = 0; } - if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) { - strm.msg = 'unknown compression method'; - state.mode = BAD; - break; + } + function _pthread_once(ptr, func2) { + if (!_pthread_once.seen) + _pthread_once.seen = {}; + if (ptr in _pthread_once.seen) + return; + Runtime.dynCall("v", func2); + _pthread_once.seen[ptr] = 1; + } + function ___lock() { + } + function ___unlock() { + } + var PTHREAD_SPECIFIC = {}; + function _pthread_getspecific(key2) { + return PTHREAD_SPECIFIC[key2] || 0; + } + function ___setErrNo(value) { + if (Module["___errno_location"]) + HEAP32[Module["___errno_location"]() >> 2] = value; + return value; + } + var ERRNO_CODES = { EPERM: 1, ENOENT: 2, ESRCH: 3, EINTR: 4, EIO: 5, ENXIO: 6, E2BIG: 7, ENOEXEC: 8, EBADF: 9, ECHILD: 10, EAGAIN: 11, EWOULDBLOCK: 11, ENOMEM: 12, EACCES: 13, EFAULT: 14, ENOTBLK: 15, EBUSY: 16, EEXIST: 17, EXDEV: 18, ENODEV: 19, ENOTDIR: 20, EISDIR: 21, EINVAL: 22, ENFILE: 23, EMFILE: 24, ENOTTY: 25, ETXTBSY: 26, EFBIG: 27, ENOSPC: 28, ESPIPE: 29, EROFS: 30, EMLINK: 31, EPIPE: 32, EDOM: 33, ERANGE: 34, ENOMSG: 42, EIDRM: 43, ECHRNG: 44, EL2NSYNC: 45, EL3HLT: 46, EL3RST: 47, ELNRNG: 48, EUNATCH: 49, ENOCSI: 50, EL2HLT: 51, EDEADLK: 35, ENOLCK: 37, EBADE: 52, EBADR: 53, EXFULL: 54, ENOANO: 55, EBADRQC: 56, EBADSLT: 57, EDEADLOCK: 35, EBFONT: 59, ENOSTR: 60, ENODATA: 61, ETIME: 62, ENOSR: 63, ENONET: 64, ENOPKG: 65, EREMOTE: 66, ENOLINK: 67, EADV: 68, ESRMNT: 69, ECOMM: 70, EPROTO: 71, EMULTIHOP: 72, EDOTDOT: 73, EBADMSG: 74, ENOTUNIQ: 76, EBADFD: 77, EREMCHG: 78, ELIBACC: 79, ELIBBAD: 80, ELIBSCN: 81, ELIBMAX: 82, ELIBEXEC: 83, ENOSYS: 38, ENOTEMPTY: 39, ENAMETOOLONG: 36, ELOOP: 40, EOPNOTSUPP: 95, EPFNOSUPPORT: 96, ECONNRESET: 104, ENOBUFS: 105, EAFNOSUPPORT: 97, EPROTOTYPE: 91, ENOTSOCK: 88, ENOPROTOOPT: 92, ESHUTDOWN: 108, ECONNREFUSED: 111, EADDRINUSE: 98, ECONNABORTED: 103, ENETUNREACH: 101, ENETDOWN: 100, ETIMEDOUT: 110, EHOSTDOWN: 112, EHOSTUNREACH: 113, EINPROGRESS: 115, EALREADY: 114, EDESTADDRREQ: 89, EMSGSIZE: 90, EPROTONOSUPPORT: 93, ESOCKTNOSUPPORT: 94, EADDRNOTAVAIL: 99, ENETRESET: 102, EISCONN: 106, ENOTCONN: 107, ETOOMANYREFS: 109, EUSERS: 87, EDQUOT: 122, ESTALE: 116, ENOTSUP: 95, ENOMEDIUM: 123, EILSEQ: 84, EOVERFLOW: 75, ECANCELED: 125, ENOTRECOVERABLE: 131, EOWNERDEAD: 130, ESTRPIPE: 86 }; + function _sysconf(name) { + switch (name) { + case 30: + return PAGE_SIZE; + case 85: + return totalMemory / PAGE_SIZE; + case 132: + case 133: + case 12: + case 137: + case 138: + case 15: + case 235: + case 16: + case 17: + case 18: + case 19: + case 20: + case 149: + case 13: + case 10: + case 236: + case 153: + case 9: + case 21: + case 22: + case 159: + case 154: + case 14: + case 77: + case 78: + case 139: + case 80: + case 81: + case 82: + case 68: + case 67: + case 164: + case 11: + case 29: + case 47: + case 48: + case 95: + case 52: + case 51: + case 46: + return 200809; + case 79: + return 0; + case 27: + case 246: + case 127: + case 128: + case 23: + case 24: + case 160: + case 161: + case 181: + case 182: + case 242: + case 183: + case 184: + case 243: + case 244: + case 245: + case 165: + case 178: + case 179: + case 49: + case 50: + case 168: + case 169: + case 175: + case 170: + case 171: + case 172: + case 97: + case 76: + case 32: + case 173: + case 35: + return -1; + case 176: + case 177: + case 7: + case 155: + case 8: + case 157: + case 125: + case 126: + case 92: + case 93: + case 129: + case 130: + case 131: + case 94: + case 91: + return 1; + case 74: + case 60: + case 69: + case 70: + case 4: + return 1024; + case 31: + case 42: + case 72: + return 32; + case 87: + case 26: + case 33: + return 2147483647; + case 34: + case 1: + return 47839; + case 38: + case 36: + return 99; + case 43: + case 37: + return 2048; + case 0: + return 2097152; + case 3: + return 65536; + case 28: + return 32768; + case 44: + return 32767; + case 75: + return 16384; + case 39: + return 1e3; + case 89: + return 700; + case 71: + return 256; + case 40: + return 255; + case 2: + return 100; + case 180: + return 64; + case 25: + return 20; + case 5: + return 16; + case 6: + return 6; + case 73: + return 4; + case 84: { + if (typeof navigator === "object") + return navigator["hardwareConcurrency"] || 1; + return 1; + } } - //--- DROPBITS(4) ---// - hold >>>= 4; - bits -= 4; - //---// - len = (hold & 0x0f)/*BITS(4)*/ + 8; - if (state.wbits === 0) { - state.wbits = len; - } - else if (len > state.wbits) { - strm.msg = 'invalid window size'; - state.mode = BAD; - break; + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + } + var _fabs = Math_abs; + var PTHREAD_SPECIFIC_NEXT_KEY = 1; + function _pthread_key_create(key2, destructor) { + if (key2 == 0) { + return ERRNO_CODES.EINVAL; } - state.dmax = 1 << len; - //Tracev((stderr, "inflate: zlib header ok\n")); - strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; - state.mode = hold & 0x200 ? DICTID : TYPE; - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - break; - case FLAGS: - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.flags = hold; - if ((state.flags & 0xff) !== Z_DEFLATED) { - strm.msg = 'unknown compression method'; - state.mode = BAD; - break; + HEAP32[key2 >> 2] = PTHREAD_SPECIFIC_NEXT_KEY; + PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; + PTHREAD_SPECIFIC_NEXT_KEY++; + return 0; + } + var PATH = void 0; + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + if (!Browser.mainLoop.func) { + return 1; } - if (state.flags & 0xe000) { - strm.msg = 'unknown header flags set'; - state.mode = BAD; - break; + if (mode == 0) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + setTimeout(Browser.mainLoop.runner, value); + }; + 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 (!window["setImmediate"]) { + let Browser_setImmediate_messageHandler2 = function(event) { + if (event.source === window && event.data === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + }; + var Browser_setImmediate_messageHandler = Browser_setImmediate_messageHandler2; + var setImmediates = []; + var emscriptenMainLoopMessageId = "__emcc"; + window.addEventListener("message", Browser_setImmediate_messageHandler2, true); + window["setImmediate"] = function Browser_emulated_setImmediate(func2) { + setImmediates.push(func2); + window.postMessage(emscriptenMainLoopMessageId, "*"); + }; + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + window["setImmediate"](Browser.mainLoop.runner); + }; + Browser.mainLoop.method = "immediate"; } - if (state.head) { - state.head.text = ((hold >> 8) & 1); - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = TIME; - /* falls through */ - case TIME: - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (state.head) { - state.head.time = hold; - } - if (state.flags & 0x0200) { - //=== CRC4(state.check, hold) - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - hbuf[2] = (hold >>> 16) & 0xff; - hbuf[3] = (hold >>> 24) & 0xff; - state.check = crc32(state.check, hbuf, 4, 0); - //=== - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = OS; - /* falls through */ - case OS: - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (state.head) { - state.head.xflags = (hold & 0xff); - state.head.os = (hold >> 8); - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = EXLEN; - /* falls through */ - case EXLEN: - if (state.flags & 0x0400) { - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; + return 0; + } + function _emscripten_set_main_loop(func2, fps, simulateInfiniteLoop, arg2, 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 = func2; + Browser.mainLoop.arg = arg2; + 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 + 0.5; + Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + " ms"); + Browser.mainLoop.updateStatus(); + setTimeout(Browser.mainLoop.runner, 0); + return; } - //===// - state.length = hold; - if (state.head) { - state.head.extra_len = hold; - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - } - else if (state.head) { - state.head.extra = null/*Z_NULL*/; - } - state.mode = EXTRA; - /* falls through */ - case EXTRA: - if (state.flags & 0x0400) { - copy = state.length; - if (copy > have) { copy = have; } - if (copy) { - if (state.head) { - len = state.head.extra_len - state.length; - if (!state.head.extra) { - // Use untyped array for more convenient processing later - state.head.extra = new Array(state.head.extra_len); - } - utils.arraySet( - state.head.extra, - input, - next, - // extra field is limited to 65536 bytes - // - no need for additional size check - copy, - /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ - len - ); - //zmemcpy(state.head.extra + len, next, - // len + copy > state.head.extra_max ? - // state.head.extra_max - len : copy); - } - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - state.length -= copy; - } - if (state.length) { break inf_leave; } - } - state.length = 0; - state.mode = NAME; - /* falls through */ - case NAME: - if (state.flags & 0x0800) { - if (have === 0) { break inf_leave; } - copy = 0; - do { - // TODO: 2 or 1 bytes? - len = input[next + copy++]; - /* use constant limit because in js we should not preallocate memory */ - if (state.head && len && - (state.length < 65536 /*state.head.name_max*/)) { - state.head.name += String.fromCharCode(len); - } - } while (len && copy < have); - - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - if (len) { break inf_leave; } - } - else if (state.head) { - state.head.name = null; - } - state.length = 0; - state.mode = COMMENT; - /* falls through */ - case COMMENT: - if (state.flags & 0x1000) { - if (have === 0) { break inf_leave; } - copy = 0; - do { - len = input[next + copy++]; - /* use constant limit because in js we should not preallocate memory */ - if (state.head && len && - (state.length < 65536 /*state.head.comm_max*/)) { - state.head.comment += String.fromCharCode(len); - } - } while (len && copy < have); - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - if (len) { break inf_leave; } - } - else if (state.head) { - state.head.comment = null; - } - state.mode = HCRC; - /* falls through */ - case HCRC: - if (state.flags & 0x0200) { - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; + 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; } - //===// - if (hold !== (state.check & 0xffff)) { - strm.msg = 'header crc mismatch'; - state.mode = BAD; - break; + if (Browser.mainLoop.method === "timeout" && Module.ctx) { + Module.printErr("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 = ""; } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - } - if (state.head) { - state.head.hcrc = ((state.flags >> 9) & 1); - state.head.done = true; - } - strm.adler = state.check = 0; - state.mode = TYPE; - break; - case DICTID: - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - strm.adler = state.check = zswap32(hold); - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = DICT; - /* falls through */ - case DICT: - if (state.havedict === 0) { - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - return Z_NEED_DICT; - } - strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; - state.mode = TYPE; - /* falls through */ - case TYPE: - if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; } - /* falls through */ - case TYPEDO: - if (state.last) { - //--- BYTEBITS() ---// - hold >>>= bits & 7; - bits -= bits & 7; - //---// - state.mode = CHECK; - break; - } - //=== NEEDBITS(3); */ - while (bits < 3) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.last = (hold & 0x01)/*BITS(1)*/; - //--- DROPBITS(1) ---// - hold >>>= 1; - bits -= 1; - //---// - - switch ((hold & 0x03)/*BITS(2)*/) { - case 0: /* stored block */ - //Tracev((stderr, "inflate: stored block%s\n", - // state.last ? " (last)" : "")); - state.mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - //Tracev((stderr, "inflate: fixed codes block%s\n", - // state.last ? " (last)" : "")); - state.mode = LEN_; /* decode codes */ - if (flush === Z_TREES) { - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - break inf_leave; + Browser.mainLoop.runIter(function() { + if (typeof arg2 !== "undefined") { + Runtime.dynCall("vi", func2, [arg2]); + } else { + Runtime.dynCall("v", func2); } - break; - case 2: /* dynamic block */ - //Tracev((stderr, "inflate: dynamic codes block%s\n", - // state.last ? " (last)" : "")); - state.mode = TABLE; - break; - case 3: - strm.msg = 'invalid block type'; - state.mode = BAD; - } - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - break; - case STORED: - //--- BYTEBITS() ---// /* go to byte boundary */ - hold >>>= bits & 7; - bits -= bits & 7; - //---// - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) { - strm.msg = 'invalid stored block lengths'; - state.mode = BAD; - break; - } - state.length = hold & 0xffff; - //Tracev((stderr, "inflate: stored length %u\n", - // state.length)); - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = COPY_; - if (flush === Z_TREES) { break inf_leave; } - /* falls through */ - case COPY_: - state.mode = COPY; - /* falls through */ - case COPY: - copy = state.length; - if (copy) { - if (copy > have) { copy = have; } - if (copy > left) { copy = left; } - if (copy === 0) { break inf_leave; } - //--- zmemcpy(put, next, copy); --- - utils.arraySet(output, input, next, copy, put); - //---// - have -= copy; - next += copy; - left -= copy; - put += copy; - state.length -= copy; - break; + }); + 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(); } - //Tracev((stderr, "inflate: stored end\n")); - state.mode = TYPE; - break; - case TABLE: - //=== NEEDBITS(14); */ - while (bits < 14) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257; - //--- DROPBITS(5) ---// - hold >>>= 5; - bits -= 5; - //---// - state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1; - //--- DROPBITS(5) ---// - hold >>>= 5; - bits -= 5; - //---// - state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4; - //--- DROPBITS(4) ---// - hold >>>= 4; - bits -= 4; - //---// -//#ifndef PKZIP_BUG_WORKAROUND - if (state.nlen > 286 || state.ndist > 30) { - strm.msg = 'too many length or distance symbols'; - state.mode = BAD; - break; + if (simulateInfiniteLoop) { + throw "SimulateInfiniteLoop"; } -//#endif - //Tracev((stderr, "inflate: table sizes ok\n")); - state.have = 0; - state.mode = LENLENS; - /* falls through */ - case LENLENS: - while (state.have < state.ncode) { - //=== NEEDBITS(3); - while (bits < 3) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; + } + 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 func2 = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func2, 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"](""); } - //===// - state.lens[order[state.have++]] = (hold & 0x07);//BITS(3); - //--- DROPBITS(3) ---// - hold >>>= 3; - bits -= 3; - //---// - } - while (state.have < 19) { - state.lens[order[state.have++]] = 0; - } - // We have separate tables & no pointers. 2 commented lines below not needed. - //state.next = state.codes; - //state.lencode = state.next; - // Switch to use dynamic table - state.lencode = state.lendyn; - state.lenbits = 7; - - opts = { bits: state.lenbits }; - ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); - state.lenbits = opts.bits; - - if (ret) { - strm.msg = 'invalid code lengths set'; - state.mode = BAD; - break; } - //Tracev((stderr, "inflate: code lengths ok\n")); - state.have = 0; - state.mode = CODELENS; - /* falls through */ - case CODELENS: - while (state.have < state.nlen + state.ndist) { - for (;;) { - here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// + }, runIter: function(func2) { + if (ABORT) + return; + if (Module["preMainLoop"]) { + var preRet = Module["preMainLoop"](); + if (preRet === false) { + return; } - if (here_val < 16) { - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.lens[state.have++] = here_val; + } + try { + func2(); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else { + if (e && typeof e === "object" && e.stack) + Module.printErr("exception thrown: " + [e, e.stack]); + throw e; } - else { - if (here_val === 16) { - //=== NEEDBITS(here.bits + 2); - n = here_bits + 2; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - if (state.have === 0) { - strm.msg = 'invalid bit length repeat'; - state.mode = BAD; - break; + } + 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 : void 0; + 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) }); } - len = state.lens[state.have - 1]; - copy = 3 + (hold & 0x03);//BITS(2); - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// + } catch (e) { + Runtime.warnOnce("Blob constructor present but fails: " + e + "; falling back to blob builder"); } - else if (here_val === 17) { - //=== NEEDBITS(here.bits + 3); - n = here_bits + 3; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - len = 0; - copy = 3 + (hold & 0x07);//BITS(3); - //--- DROPBITS(3) ---// - hold >>>= 3; - bits -= 3; - //---// + } + 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 canvas2 = document.createElement("canvas"); + canvas2.width = img.width; + canvas2.height = img.height; + var ctx = canvas2.getContext("2d"); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas2; + 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(audio2) { + if (done) + return; + done = true; + Module["preloadedAudios"][name] = audio2; + 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(); } - else { - //=== NEEDBITS(here.bits + 7); - n = here_bits + 7; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; + 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 i2 = 0; i2 < data.length; i2++) { + leftchar = leftchar << 8 | data[i2]; + 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; } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - len = 0; - copy = 11 + (hold & 0x7f);//BITS(7); - //--- DROPBITS(7) ---// - hold >>>= 7; - bits -= 7; - //---// - } - if (state.have + copy > state.nlen + state.ndist) { - strm.msg = 'invalid bit length repeat'; - state.mode = BAD; - break; - } - while (copy--) { - state.lens[state.have++] = len; - } + 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); + var canvas = Module["canvas"]; + function pointerLockChange() { + Browser.pointerLock = document["pointerLockElement"] === canvas || document["mozPointerLockElement"] === canvas || document["webkitPointerLockElement"] === canvas || document["msPointerLockElement"] === canvas; } - - /* handle error breaks in while */ - if (state.mode === BAD) { break; } - - /* check for end-of-block code (better have one) */ - if (state.lens[256] === 0) { - strm.msg = 'invalid code -- missing end-of-block'; - state.mode = BAD; - break; + 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 && canvas.requestPointerLock) { + canvas.requestPointerLock(); + ev.preventDefault(); + } + }, false); + } } - - /* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.h - concerning the ENOUGH constants, which depend on those values */ - state.lenbits = 9; - - opts = { bits: state.lenbits }; - ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); - // We have separate tables & no pointers. 2 commented lines below not needed. - // state.next_index = opts.table_index; - state.lenbits = opts.bits; - // state.lencode = state.next; - - if (ret) { - strm.msg = 'invalid literal/lengths set'; - state.mode = BAD; - break; + }, 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 }; + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + canvas.style.backgroundColor = "black"; + } else { + ctx = canvas.getContext("2d"); } - - state.distbits = 6; - //state.distcode.copy(state.codes); - // Switch to use dynamic table - state.distcode = state.distdyn; - opts = { bits: state.distbits }; - ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); - // We have separate tables & no pointers. 2 commented lines below not needed. - // state.next_index = opts.table_index; - state.distbits = opts.bits; - // state.distcode = state.next; - - if (ret) { - strm.msg = 'invalid distances set'; - state.mode = BAD; - break; + 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(); } - //Tracev((stderr, 'inflate: codes ok\n')); - state.mode = LEN_; - if (flush === Z_TREES) { break inf_leave; } - /* falls through */ - case LEN_: - state.mode = LEN; - /* falls through */ - case LEN: - if (have >= 6 && left >= 258) { - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - inflate_fast(strm, _out); - //--- LOAD() --- - put = strm.next_out; - output = strm.output; - left = strm.avail_out; - next = strm.next_in; - input = strm.input; - have = strm.avail_in; - hold = state.hold; - bits = state.bits; - //--- - - if (state.mode === TYPE) { - state.back = -1; + return ctx; + }, destroyContext: function(canvas, useWebGL, setInModule) { + }, fullScreenHandlersInstalled: false, lockPointer: void 0, resizeCanvas: void 0, requestFullScreen: function(lockPointer, resizeCanvas, vrDevice) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + Browser.vrDevice = vrDevice; + if (typeof Browser.lockPointer === "undefined") + Browser.lockPointer = true; + 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 canvasContainer2 = canvas.parentNode; + if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer2) { + canvas.cancelFullScreen = document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["webkitCancelFullScreen"] || document["msExitFullscreen"] || document["exitFullscreen"] || function() { + }; + canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document); + if (Browser.lockPointer) + canvas.requestPointerLock(); + Browser.isFullScreen = true; + if (Browser.resizeCanvas) + Browser.setFullScreenCanvasSize(); + } else { + canvasContainer2.parentNode.insertBefore(canvas, canvasContainer2); + canvasContainer2.parentNode.removeChild(canvasContainer2); + if (Browser.resizeCanvas) + Browser.setWindowedCanvasSize(); } - break; - } - state.back = 0; - for (;;) { - here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if (here_bits <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if (here_op && (here_op & 0xf0) === 0) { - last_bits = here_bits; - last_op = here_op; - last_val = here_val; - for (;;) { - here = state.lencode[last_val + - ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((last_bits + here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - //--- DROPBITS(last.bits) ---// - hold >>>= last_bits; - bits -= last_bits; - //---// - state.back += last_bits; - } - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.back += here_bits; - state.length = here_val; - if (here_op === 0) { - //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - // "inflate: literal '%c'\n" : - // "inflate: literal 0x%02x\n", here.val)); - state.mode = LIT; - break; + if (Module["onFullScreen"]) + Module["onFullScreen"](Browser.isFullScreen); + Browser.updateCanvasDimensions(canvas); } - if (here_op & 32) { - //Tracevv((stderr, "inflate: end of block\n")); - state.back = -1; - state.mode = TYPE; - break; + 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); } - if (here_op & 64) { - strm.msg = 'invalid literal/length code'; - state.mode = BAD; - break; + 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); + if (vrDevice) { + canvasContainer.requestFullScreen({ vrDisplay: vrDevice }); + } else { + canvasContainer.requestFullScreen(); } - state.extra = here_op & 15; - state.mode = LENEXT; - /* falls through */ - case LENEXT: - if (state.extra) { - //=== NEEDBITS(state.extra); - n = state.extra; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; + }, nextRAF: 0, fakeRequestAnimationFrame: function(func2) { + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1e3 / 60; + } else { + while (now + 2 >= Browser.nextRAF) { + Browser.nextRAF += 1e3 / 60; } - //===// - state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; - //--- DROPBITS(state.extra) ---// - hold >>>= state.extra; - bits -= state.extra; - //---// - state.back += state.extra; - } - //Tracevv((stderr, "inflate: length %u\n", state.length)); - state.was = state.length; - state.mode = DIST; - /* falls through */ - case DIST: - for (;;) { - here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if ((here_op & 0xf0) === 0) { - last_bits = here_bits; - last_op = here_op; - last_val = here_val; - for (;;) { - here = state.distcode[last_val + - ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((last_bits + here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - //--- DROPBITS(last.bits) ---// - hold >>>= last_bits; - bits -= last_bits; - //---// - state.back += last_bits; - } - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.back += here_bits; - if (here_op & 64) { - strm.msg = 'invalid distance code'; - state.mode = BAD; - break; } - state.offset = here_val; - state.extra = (here_op) & 15; - state.mode = DISTEXT; - /* falls through */ - case DISTEXT: - if (state.extra) { - //=== NEEDBITS(state.extra); - n = state.extra; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func2, delay); + }, requestAnimationFrame: function requestAnimationFrame(func2) { + if (typeof window === "undefined") { + Browser.fakeRequestAnimationFrame(func2); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window["requestAnimationFrame"] || window["mozRequestAnimationFrame"] || window["webkitRequestAnimationFrame"] || window["msRequestAnimationFrame"] || window["oRequestAnimationFrame"] || Browser.fakeRequestAnimationFrame; } - //===// - state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; - //--- DROPBITS(state.extra) ---// - hold >>>= state.extra; - bits -= state.extra; - //---// - state.back += state.extra; - } -//#ifdef INFLATE_STRICT - if (state.offset > state.dmax) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break; + window.requestAnimationFrame(func2); } -//#endif - //Tracevv((stderr, "inflate: distance %u\n", state.offset)); - state.mode = MATCH; - /* falls through */ - case MATCH: - if (left === 0) { break inf_leave; } - copy = _out - left; - if (state.offset > copy) { /* copy from window */ - copy = state.offset - copy; - if (copy > state.whave) { - if (state.sane) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break; - } -// (!) This block is disabled in zlib defaults, -// don't enable it for binary compatibility -//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR -// Trace((stderr, "inflate.c too far\n")); -// copy -= state.whave; -// if (copy > state.length) { copy = state.length; } -// if (copy > left) { copy = left; } -// left -= copy; -// state.length -= copy; -// do { -// output[put++] = 0; -// } while (--copy); -// if (state.length === 0) { state.mode = LEN; } -// break; -//#endif - } - if (copy > state.wnext) { - copy -= state.wnext; - from = state.wsize - copy; + }, safeCallback: function(func2) { + return function() { + if (!ABORT) + return func2.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(func2) { + func2(); + }); + } + }, safeRequestAnimationFrame: function(func2) { + return Browser.requestAnimationFrame(function() { + if (ABORT) + return; + if (Browser.allowAsyncCallbacks) { + func2(); + } else { + Browser.queuedAsyncCallbacks.push(func2); } - else { - from = state.wnext - copy; + }); + }, safeSetTimeout: function(func2, timeout) { + Module["noExitRuntime"] = true; + return setTimeout(function() { + if (ABORT) + return; + if (Browser.allowAsyncCallbacks) { + func2(); + } else { + Browser.queuedAsyncCallbacks.push(func2); } - if (copy > state.length) { copy = state.length; } - from_source = state.window; - } - else { /* copy from output */ - from_source = output; - from = put - state.offset; - copy = state.length; + }, timeout); + }, safeSetInterval: function(func2, timeout) { + Module["noExitRuntime"] = true; + return setInterval(function() { + if (ABORT) + return; + if (Browser.allowAsyncCallbacks) { + func2(); + } + }, 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(func2) { + if (!window.getUserMedia) { + window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"]; } - if (copy > left) { copy = left; } - left -= copy; - state.length -= copy; - do { - output[put++] = from_source[from++]; - } while (--copy); - if (state.length === 0) { state.mode = LEN; } - break; - case LIT: - if (left === 0) { break inf_leave; } - output[put++] = state.length; - left--; - state.mode = LEN; - break; - case CHECK: - if (state.wrap) { - //=== NEEDBITS(32); - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - // Use '|' instead of '+' to make sure that result is signed - hold |= input[next++] << bits; - bits += 8; + window.getUserMedia(func2); + }, 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); } - //===// - _out -= left; - strm.total_out += _out; - state.total += _out; - if (_out) { - strm.adler = state.check = - /*UPDATE(state.check, put - _out, _out);*/ - (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out)); - + 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; } - _out = left; - // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too - if ((state.flags ? hold : zswap32(hold)) !== state.check) { - strm.msg = 'incorrect data check'; - state.mode = BAD; - break; + } 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 === void 0) { + 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; } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - //Tracev((stderr, "inflate: check matches trailer\n")); - } - state.mode = LENGTH; - /* falls through */ - case LENGTH: - if (state.wrap && state.flags) { - //=== NEEDBITS(32); - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; + 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; + } + }, xhrLoad: function(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response); + } else { + onerror(); } - //===// - if (hold !== (state.total & 0xffffffff)) { - strm.msg = 'incorrect length check'; - state.mode = BAD; - break; + }; + xhr.onerror = onerror; + xhr.send(null); + }, asyncLoad: function(url, onload, onerror, noRunDep) { + Browser.xhrLoad(url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (!noRunDep) + removeRunDependency("al " + url); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - //Tracev((stderr, "inflate: length matches trailer\n")); - } - state.mode = DONE; - /* falls through */ - case DONE: - ret = Z_STREAM_END; - break inf_leave; - case BAD: - ret = Z_DATA_ERROR; - break inf_leave; - case MEM: - return Z_MEM_ERROR; - case SYNC: - /* falls through */ - default: - return Z_STREAM_ERROR; - } - } - - // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave" - - /* - Return from inflate(), updating the total counts and the check value. - If there was no progress during the inflate() call, return a buffer - error. Call updatewindow() to create and/or update the window state. - Note: a memory error from inflate() is non-recoverable. - */ - - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - - if (state.wsize || (_out !== strm.avail_out && state.mode < BAD && - (state.mode < CHECK || flush !== Z_FINISH))) { - if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { - state.mode = MEM; - return Z_MEM_ERROR; - } - } - _in -= strm.avail_in; - _out -= strm.avail_out; - strm.total_in += _in; - strm.total_out += _out; - state.total += _out; - if (state.wrap && _out) { - strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ - (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out)); - } - strm.data_type = state.bits + (state.last ? 64 : 0) + - (state.mode === TYPE ? 128 : 0) + - (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); - if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) { - ret = Z_BUF_ERROR; - } - return ret; -} - -function inflateEnd(strm) { - - if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) { - return Z_STREAM_ERROR; - } - - var state = strm.state; - if (state.window) { - state.window = null; - } - strm.state = null; - return Z_OK; -} - -function inflateGetHeader(strm, head) { - var state; - - /* check state */ - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; } - - /* save header structure */ - state.head = head; - head.done = false; - return Z_OK; -} - -function inflateSetDictionary(strm, dictionary) { - var dictLength = dictionary.length; - - var state; - var dictid; - var ret; - - /* check state */ - if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; } - state = strm.state; - - if (state.wrap !== 0 && state.mode !== DICT) { - return Z_STREAM_ERROR; - } - - /* check for correct dictionary identifier */ - if (state.mode === DICT) { - dictid = 1; /* adler32(0, null, 0)*/ - /* dictid = adler32(dictid, dictionary, dictLength); */ - dictid = adler32(dictid, dictionary, dictLength, 0); - if (dictid !== state.check) { - return Z_DATA_ERROR; - } - } - /* copy dictionary to window using updatewindow(), which will amend the - existing dictionary if appropriate */ - ret = updatewindow(strm, dictionary, dictLength, dictLength); - if (ret) { - state.mode = MEM; - return Z_MEM_ERROR; - } - state.havedict = 1; - // Tracev((stderr, "inflate: dictionary set\n")); - return Z_OK; -} - -exports.inflateReset = inflateReset; -exports.inflateReset2 = inflateReset2; -exports.inflateResetKeep = inflateResetKeep; -exports.inflateInit = inflateInit; -exports.inflateInit2 = inflateInit2; -exports.inflate = inflate; -exports.inflateEnd = inflateEnd; -exports.inflateGetHeader = inflateGetHeader; -exports.inflateSetDictionary = inflateSetDictionary; -exports.inflateInfo = 'pako inflate (from Nodeca project)'; - -/* Not implemented -exports.inflateCopy = inflateCopy; -exports.inflateGetDictionary = inflateGetDictionary; -exports.inflateMark = inflateMark; -exports.inflatePrime = inflatePrime; -exports.inflateSync = inflateSync; -exports.inflateSyncPoint = inflateSyncPoint; -exports.inflateUndermine = inflateUndermine; -*/ - -},{"../utils/common":19,"./adler32":21,"./crc32":23,"./inffast":26,"./inftrees":28}],28:[function(require,module,exports){ -'use strict'; - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -var utils = require('../utils/common'); - -var MAXBITS = 15; -var ENOUGH_LENS = 852; -var ENOUGH_DISTS = 592; -//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); - -var CODES = 0; -var LENS = 1; -var DISTS = 2; - -var lbase = [ /* Length codes 257..285 base */ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 -]; - -var lext = [ /* Length codes 257..285 extra */ - 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 -]; - -var dbase = [ /* Distance codes 0..29 base */ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577, 0, 0 -]; - -var dext = [ /* Distance codes 0..29 extra */ - 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, - 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, - 28, 28, 29, 29, 64, 64 -]; - -module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) -{ - var bits = opts.bits; - //here = opts.here; /* table entry for duplication */ - - var len = 0; /* a code's length in bits */ - var sym = 0; /* index of code symbols */ - var min = 0, max = 0; /* minimum and maximum code lengths */ - var root = 0; /* number of index bits for root table */ - var curr = 0; /* number of index bits for current table */ - var drop = 0; /* code bits to drop for sub-table */ - var left = 0; /* number of prefix codes available */ - var used = 0; /* code entries in table used */ - var huff = 0; /* Huffman code */ - var incr; /* for incrementing code, index */ - var fill; /* index for replicating entries */ - var low; /* low bits for current root entry */ - var mask; /* mask for low root bits */ - var next; /* next available space in table */ - var base = null; /* base value table to use */ - var base_index = 0; -// var shoextra; /* extra bits table to use */ - var end; /* use base and extra for symbol > end */ - var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */ - var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */ - var extra = null; - var extra_index = 0; - - var here_bits, here_op, here_val; - - /* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..MAXBITS. The caller must assure this. - 1..MAXBITS is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ - - /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ - for (len = 0; len <= MAXBITS; len++) { - count[len] = 0; - } - for (sym = 0; sym < codes; sym++) { - count[lens[lens_index + sym]]++; - } - - /* bound code lengths, force root to be within code lengths */ - root = bits; - for (max = MAXBITS; max >= 1; max--) { - if (count[max] !== 0) { break; } - } - if (root > max) { - root = max; - } - if (max === 0) { /* no symbols to code at all */ - //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */ - //table.bits[opts.table_index] = 1; //here.bits = (var char)1; - //table.val[opts.table_index++] = 0; //here.val = (var short)0; - table[table_index++] = (1 << 24) | (64 << 16) | 0; - - - //table.op[opts.table_index] = 64; - //table.bits[opts.table_index] = 1; - //table.val[opts.table_index++] = 0; - table[table_index++] = (1 << 24) | (64 << 16) | 0; - - opts.bits = 1; - return 0; /* no symbols, but wait for decoding to report error */ - } - for (min = 1; min < max; min++) { - if (count[min] !== 0) { break; } - } - if (root < min) { - root = min; - } - - /* check for an over-subscribed or incomplete set of lengths */ - left = 1; - for (len = 1; len <= MAXBITS; len++) { - left <<= 1; - left -= count[len]; - if (left < 0) { - return -1; - } /* over-subscribed */ - } - if (left > 0 && (type === CODES || max !== 1)) { - return -1; /* incomplete set */ - } - - /* generate offsets into symbol table for each length for sorting */ - offs[1] = 0; - for (len = 1; len < MAXBITS; len++) { - offs[len + 1] = offs[len] + count[len]; - } - - /* sort symbols by length, by symbol order within each length */ - for (sym = 0; sym < codes; sym++) { - if (lens[lens_index + sym] !== 0) { - work[offs[lens[lens_index + sym]]++] = sym; - } - } - - /* - Create and fill in decoding tables. In this loop, the table being - filled is at next and has curr index bits. The code being used is huff - with length len. That code is converted to an index by dropping drop - bits off of the bottom. For codes where len is less than drop + curr, - those top drop + curr - len bits are incremented through all values to - fill the table with replicated entries. - - root is the number of index bits for the root table. When len exceeds - root, sub-tables are created pointed to by the root entry with an index - of the low root bits of huff. This is saved in low to check for when a - new sub-table should be started. drop is zero when the root table is - being filled, and drop is root when sub-tables are being filled. - - When a new sub-table is needed, it is necessary to look ahead in the - code lengths to determine what size sub-table is needed. The length - counts are used for this, and so count[] is decremented as codes are - entered in the tables. - - used keeps track of how many table entries have been allocated from the - provided *table space. It is checked for LENS and DIST tables against - the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in - the initial root table size constants. See the comments in inftrees.h - for more information. - - sym increments through all symbols, and the loop terminates when - all codes of length max, i.e. all codes, have been processed. This - routine permits incomplete codes, so another loop after this one fills - in the rest of the decoding tables with invalid code markers. - */ - - /* set up for code type */ - // poor man optimization - use if-else instead of switch, - // to avoid deopts in old v8 - if (type === CODES) { - base = extra = work; /* dummy value--not used */ - end = 19; - - } else if (type === LENS) { - base = lbase; - base_index -= 257; - extra = lext; - extra_index -= 257; - end = 256; - - } else { /* DISTS */ - base = dbase; - extra = dext; - end = -1; - } - - /* initialize opts for loop */ - huff = 0; /* starting code */ - sym = 0; /* starting code symbol */ - len = min; /* starting code length */ - next = table_index; /* current table to fill in */ - curr = root; /* current table index bits */ - drop = 0; /* current bits to drop from code for index */ - low = -1; /* trigger new sub-table when len > root */ - used = 1 << root; /* use root table entries */ - mask = used - 1; /* mask for comparing low */ - - /* check available table space */ - if ((type === LENS && used > ENOUGH_LENS) || - (type === DISTS && used > ENOUGH_DISTS)) { - return 1; - } - - /* process all codes and make table entries */ - for (;;) { - /* create table entry */ - here_bits = len - drop; - if (work[sym] < end) { - here_op = 0; - here_val = work[sym]; - } - else if (work[sym] > end) { - here_op = extra[extra_index + work[sym]]; - here_val = base[base_index + work[sym]]; - } - else { - here_op = 32 + 64; /* end of block */ - here_val = 0; - } - - /* replicate for those indices with low len bits equal to huff */ - incr = 1 << (len - drop); - fill = 1 << curr; - min = fill; /* save offset to next table */ - do { - fill -= incr; - table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0; - } while (fill !== 0); - - /* backwards increment the len-bit code huff */ - incr = 1 << (len - 1); - while (huff & incr) { - incr >>= 1; - } - if (incr !== 0) { - huff &= incr - 1; - huff += incr; - } else { - huff = 0; - } - - /* go to next symbol, update count, len */ - sym++; - if (--count[len] === 0) { - if (len === max) { break; } - len = lens[lens_index + work[sym]]; - } - - /* create new sub-table if needed */ - if (len > root && (huff & mask) !== low) { - /* if first time, transition to sub-tables */ - if (drop === 0) { - drop = root; + }); + if (!noRunDep) + addRunDependency("al " + url); + }, 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 + Runtime.QUANTUM_SIZE * 0 >> 2]; + flags = flags | 8388608; + HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags; + } + Browser.updateResizeListeners(); + }, setWindowedCanvasSize: function() { + if (typeof SDL != "undefined") { + var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2]; + flags = flags & ~8388608; + HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags; + } + 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["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || 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 _pthread_setspecific(key2, value) { + if (!(key2 in PTHREAD_SPECIFIC)) { + return ERRNO_CODES.EINVAL; + } + PTHREAD_SPECIFIC[key2] = value; + return 0; } - - /* increment past last table */ - next += min; /* here min is 1 << curr */ - - /* determine length of next table */ - curr = len - drop; - left = 1 << curr; - while (curr + drop < max) { - left -= count[curr + drop]; - if (left <= 0) { break; } - curr++; - left <<= 1; + function _malloc(bytes) { + var ptr = Runtime.dynamicAlloc(bytes + 8); + return ptr + 8 & 4294967288; } - - /* check for enough space */ - used += 1 << curr; - if ((type === LENS && used > ENOUGH_LENS) || - (type === DISTS && used > ENOUGH_DISTS)) { - return 1; + Module["_malloc"] = _malloc; + function ___cxa_allocate_exception(size) { + return _malloc(size); } - - /* point entry in root table to sub-table */ - low = huff & mask; - /*table.op[low] = curr; - table.bits[low] = root; - table.val[low] = next - opts.table_index;*/ - table[low] = (root << 24) | (curr << 16) | (next - table_index) |0; - } - } - - /* fill in remaining table entry if code is incomplete (guaranteed to have - at most one remaining entry, since if the code is incomplete, the - maximum code length that was allowed to get this far is one bit) */ - if (huff !== 0) { - //table.op[next + huff] = 64; /* invalid code marker */ - //table.bits[next + huff] = len - drop; - //table.val[next + huff] = 0; - table[next + huff] = ((len - drop) << 24) | (64 << 16) |0; - } - - /* set return parameters */ - //opts.table_index += used; - opts.bits = root; - return 0; -}; - -},{"../utils/common":19}],29:[function(require,module,exports){ -'use strict'; - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -module.exports = { - 2: 'need dictionary', /* Z_NEED_DICT 2 */ - 1: 'stream end', /* Z_STREAM_END 1 */ - 0: '', /* Z_OK 0 */ - '-1': 'file error', /* Z_ERRNO (-1) */ - '-2': 'stream error', /* Z_STREAM_ERROR (-2) */ - '-3': 'data error', /* Z_DATA_ERROR (-3) */ - '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */ - '-5': 'buffer error', /* Z_BUF_ERROR (-5) */ - '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ -}; - -},{}],30:[function(require,module,exports){ -'use strict'; - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -/* eslint-disable space-unary-ops */ - -var utils = require('../utils/common'); - -/* Public constants ==========================================================*/ -/* ===========================================================================*/ - - -//var Z_FILTERED = 1; -//var Z_HUFFMAN_ONLY = 2; -//var Z_RLE = 3; -var Z_FIXED = 4; -//var Z_DEFAULT_STRATEGY = 0; - -/* Possible values of the data_type field (though see inflate()) */ -var Z_BINARY = 0; -var Z_TEXT = 1; -//var Z_ASCII = 1; // = Z_TEXT -var Z_UNKNOWN = 2; - -/*============================================================================*/ - - -function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } - -// From zutil.h - -var STORED_BLOCK = 0; -var STATIC_TREES = 1; -var DYN_TREES = 2; -/* The three kinds of block type */ - -var MIN_MATCH = 3; -var MAX_MATCH = 258; -/* The minimum and maximum match lengths */ - -// From deflate.h -/* =========================================================================== - * Internal compression state. - */ - -var LENGTH_CODES = 29; -/* number of length codes, not counting the special END_BLOCK code */ - -var LITERALS = 256; -/* number of literal bytes 0..255 */ - -var L_CODES = LITERALS + 1 + LENGTH_CODES; -/* number of Literal or Length codes, including the END_BLOCK code */ - -var D_CODES = 30; -/* number of distance codes */ - -var BL_CODES = 19; -/* number of codes used to transfer the bit lengths */ - -var HEAP_SIZE = 2 * L_CODES + 1; -/* maximum heap size */ - -var MAX_BITS = 15; -/* All codes must not exceed MAX_BITS bits */ - -var Buf_size = 16; -/* size of bit buffer in bi_buf */ - - -/* =========================================================================== - * Constants - */ - -var MAX_BL_BITS = 7; -/* Bit length codes must not exceed MAX_BL_BITS bits */ - -var END_BLOCK = 256; -/* end of block literal code */ - -var REP_3_6 = 16; -/* repeat previous bit length 3-6 times (2 bits of repeat count) */ - -var REPZ_3_10 = 17; -/* repeat a zero length 3-10 times (3 bits of repeat count) */ - -var REPZ_11_138 = 18; -/* repeat a zero length 11-138 times (7 bits of repeat count) */ - -/* eslint-disable comma-spacing,array-bracket-spacing */ -var extra_lbits = /* extra bits for each length code */ - [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]; - -var extra_dbits = /* extra bits for each distance code */ - [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]; - -var extra_blbits = /* extra bits for each bit length code */ - [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]; - -var bl_order = - [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]; -/* eslint-enable comma-spacing,array-bracket-spacing */ - -/* The lengths of the bit length codes are sent in order of decreasing - * probability, to avoid transmitting the lengths for unused bit length codes. - */ - -/* =========================================================================== - * Local data. These are initialized only once. - */ - -// We pre-fill arrays with 0 to avoid uninitialized gaps - -var DIST_CODE_LEN = 512; /* see definition of array dist_code below */ - -// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1 -var static_ltree = new Array((L_CODES + 2) * 2); -zero(static_ltree); -/* The static literal tree. Since the bit lengths are imposed, there is no - * need for the L_CODES extra codes used during heap construction. However - * The codes 286 and 287 are needed to build a canonical tree (see _tr_init - * below). - */ - -var static_dtree = new Array(D_CODES * 2); -zero(static_dtree); -/* The static distance tree. (Actually a trivial tree since all codes use - * 5 bits.) - */ - -var _dist_code = new Array(DIST_CODE_LEN); -zero(_dist_code); -/* Distance codes. The first 256 values correspond to the distances - * 3 .. 258, the last 256 values correspond to the top 8 bits of - * the 15 bit distances. - */ - -var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); -zero(_length_code); -/* length code for each normalized match length (0 == MIN_MATCH) */ - -var base_length = new Array(LENGTH_CODES); -zero(base_length); -/* First normalized length for each code (0 = MIN_MATCH) */ - -var base_dist = new Array(D_CODES); -zero(base_dist); -/* First normalized distance for each code (0 = distance of 1) */ - - -function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { - - this.static_tree = static_tree; /* static tree or NULL */ - this.extra_bits = extra_bits; /* extra bits for each code or NULL */ - this.extra_base = extra_base; /* base index for extra_bits */ - this.elems = elems; /* max number of elements in the tree */ - this.max_length = max_length; /* max bit length for the codes */ - - // show if `static_tree` has data or dummy - needed for monomorphic objects - this.has_stree = static_tree && static_tree.length; -} - - -var static_l_desc; -var static_d_desc; -var static_bl_desc; - - -function TreeDesc(dyn_tree, stat_desc) { - this.dyn_tree = dyn_tree; /* the dynamic tree */ - this.max_code = 0; /* largest code with non zero frequency */ - this.stat_desc = stat_desc; /* the corresponding static tree */ -} - - - -function d_code(dist) { - return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; -} - - -/* =========================================================================== - * Output a short LSB first on the stream. - * IN assertion: there is enough room in pendingBuf. - */ -function put_short(s, w) { -// put_byte(s, (uch)((w) & 0xff)); -// put_byte(s, (uch)((ush)(w) >> 8)); - s.pending_buf[s.pending++] = (w) & 0xff; - s.pending_buf[s.pending++] = (w >>> 8) & 0xff; -} - - -/* =========================================================================== - * Send a value on a given number of bits. - * IN assertion: length <= 16 and value fits in length bits. - */ -function send_bits(s, value, length) { - if (s.bi_valid > (Buf_size - length)) { - s.bi_buf |= (value << s.bi_valid) & 0xffff; - put_short(s, s.bi_buf); - s.bi_buf = value >> (Buf_size - s.bi_valid); - s.bi_valid += length - Buf_size; - } else { - s.bi_buf |= (value << s.bi_valid) & 0xffff; - s.bi_valid += length; - } -} - - -function send_code(s, c, tree) { - send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/); -} - - -/* =========================================================================== - * Reverse the first len bits of a code, using straightforward code (a faster - * method would use a table) - * IN assertion: 1 <= len <= 15 - */ -function bi_reverse(code, len) { - var res = 0; - do { - res |= code & 1; - code >>>= 1; - res <<= 1; - } while (--len > 0); - return res >>> 1; -} - - -/* =========================================================================== - * Flush the bit buffer, keeping at most 7 bits in it. - */ -function bi_flush(s) { - if (s.bi_valid === 16) { - put_short(s, s.bi_buf); - s.bi_buf = 0; - s.bi_valid = 0; - - } else if (s.bi_valid >= 8) { - s.pending_buf[s.pending++] = s.bi_buf & 0xff; - s.bi_buf >>= 8; - s.bi_valid -= 8; - } -} - - -/* =========================================================================== - * Compute the optimal bit lengths for a tree and update the total bit length - * for the current block. - * IN assertion: the fields freq and dad are set, heap[heap_max] and - * above are the tree nodes sorted by increasing frequency. - * OUT assertions: the field len is set to the optimal bit length, the - * array bl_count contains the frequencies for each bit length. - * The length opt_len is updated; static_len is also updated if stree is - * not null. - */ -function gen_bitlen(s, desc) -// deflate_state *s; -// tree_desc *desc; /* the tree descriptor */ -{ - var tree = desc.dyn_tree; - var max_code = desc.max_code; - var stree = desc.stat_desc.static_tree; - var has_stree = desc.stat_desc.has_stree; - var extra = desc.stat_desc.extra_bits; - var base = desc.stat_desc.extra_base; - var max_length = desc.stat_desc.max_length; - var h; /* heap index */ - var n, m; /* iterate over the tree elements */ - var bits; /* bit length */ - var xbits; /* extra bits */ - var f; /* frequency */ - var overflow = 0; /* number of elements with bit length too large */ - - for (bits = 0; bits <= MAX_BITS; bits++) { - s.bl_count[bits] = 0; - } - - /* In a first pass, compute the optimal bit lengths (which may - * overflow in the case of the bit length tree). - */ - tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */ - - for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { - n = s.heap[h]; - bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1; - if (bits > max_length) { - bits = max_length; - overflow++; - } - tree[n * 2 + 1]/*.Len*/ = bits; - /* We overwrite tree[n].Dad which is no longer needed */ - - if (n > max_code) { continue; } /* not a leaf node */ - - s.bl_count[bits]++; - xbits = 0; - if (n >= base) { - xbits = extra[n - base]; - } - f = tree[n * 2]/*.Freq*/; - s.opt_len += f * (bits + xbits); - if (has_stree) { - s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits); - } - } - if (overflow === 0) { return; } - - // Trace((stderr,"\nbit length overflow\n")); - /* This happens for example on obj2 and pic of the Calgary corpus */ - - /* Find the first bit length which could increase: */ - do { - bits = max_length - 1; - while (s.bl_count[bits] === 0) { bits--; } - s.bl_count[bits]--; /* move one leaf down the tree */ - s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */ - s.bl_count[max_length]--; - /* The brother of the overflow item also moves one step up, - * but this does not affect bl_count[max_length] - */ - overflow -= 2; - } while (overflow > 0); - - /* Now recompute all bit lengths, scanning in increasing frequency. - * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all - * lengths instead of fixing only the wrong ones. This idea is taken - * from 'ar' written by Haruhiko Okumura.) - */ - for (bits = max_length; bits !== 0; bits--) { - n = s.bl_count[bits]; - while (n !== 0) { - m = s.heap[--h]; - if (m > max_code) { continue; } - if (tree[m * 2 + 1]/*.Len*/ !== bits) { - // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); - s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/; - tree[m * 2 + 1]/*.Len*/ = bits; - } - n--; - } - } -} - - -/* =========================================================================== - * Generate the codes for a given tree and bit counts (which need not be - * optimal). - * IN assertion: the array bl_count contains the bit length statistics for - * the given tree and the field len is set for all tree elements. - * OUT assertion: the field code is set for all tree elements of non - * zero code length. - */ -function gen_codes(tree, max_code, bl_count) -// ct_data *tree; /* the tree to decorate */ -// int max_code; /* largest code with non zero frequency */ -// ushf *bl_count; /* number of codes at each bit length */ -{ - var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */ - var code = 0; /* running code value */ - var bits; /* bit index */ - var n; /* code index */ - - /* The distribution counts are first used to generate the code values - * without bit reversal. - */ - for (bits = 1; bits <= MAX_BITS; bits++) { - next_code[bits] = code = (code + bl_count[bits - 1]) << 1; - } - /* Check that the bit counts in bl_count are consistent. The last code - * must be all ones. - */ - //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */ - length = 0; - for (code = 0; code < LENGTH_CODES - 1; code++) { - base_length[code] = length; - for (n = 0; n < (1 << extra_lbits[code]); n++) { - _length_code[length++] = code; - } - } - //Assert (length == 256, "tr_static_init: length != 256"); - /* Note that the length 255 (match length 258) can be represented - * in two different ways: code 284 + 5 bits or code 285, so we - * overwrite length_code[255] to use the best encoding: - */ - _length_code[length - 1] = code; - - /* Initialize the mapping dist (0..32K) -> dist code (0..29) */ - dist = 0; - for (code = 0; code < 16; code++) { - base_dist[code] = dist; - for (n = 0; n < (1 << extra_dbits[code]); n++) { - _dist_code[dist++] = code; - } - } - //Assert (dist == 256, "tr_static_init: dist != 256"); - dist >>= 7; /* from now on, all distances are divided by 128 */ - for (; code < D_CODES; code++) { - base_dist[code] = dist << 7; - for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) { - _dist_code[256 + dist++] = code; - } - } - //Assert (dist == 256, "tr_static_init: 256+dist != 512"); - - /* Construct the codes of the static literal tree */ - for (bits = 0; bits <= MAX_BITS; bits++) { - bl_count[bits] = 0; - } - - n = 0; - while (n <= 143) { - static_ltree[n * 2 + 1]/*.Len*/ = 8; - n++; - bl_count[8]++; - } - while (n <= 255) { - static_ltree[n * 2 + 1]/*.Len*/ = 9; - n++; - bl_count[9]++; - } - while (n <= 279) { - static_ltree[n * 2 + 1]/*.Len*/ = 7; - n++; - bl_count[7]++; - } - while (n <= 287) { - static_ltree[n * 2 + 1]/*.Len*/ = 8; - n++; - bl_count[8]++; - } - /* Codes 286 and 287 do not exist, but we must include them in the - * tree construction to get a canonical Huffman tree (longest code - * all ones) - */ - gen_codes(static_ltree, L_CODES + 1, bl_count); - - /* The static distance tree is trivial: */ - for (n = 0; n < D_CODES; n++) { - static_dtree[n * 2 + 1]/*.Len*/ = 5; - static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5); - } - - // Now data ready and we can init static trees - static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); - static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); - static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); - - //static_init_done = true; -} - - -/* =========================================================================== - * Initialize a new block. - */ -function init_block(s) { - var n; /* iterates over tree elements */ - - /* Initialize the trees. */ - for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; } - for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; } - for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; } - - s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1; - s.opt_len = s.static_len = 0; - s.last_lit = s.matches = 0; -} - - -/* =========================================================================== - * Flush the bit buffer and align the output on a byte boundary - */ -function bi_windup(s) -{ - if (s.bi_valid > 8) { - put_short(s, s.bi_buf); - } else if (s.bi_valid > 0) { - //put_byte(s, (Byte)s->bi_buf); - s.pending_buf[s.pending++] = s.bi_buf; - } - s.bi_buf = 0; - s.bi_valid = 0; -} - -/* =========================================================================== - * Copy a stored block, storing first the length and its - * one's complement if requested. - */ -function copy_block(s, buf, len, header) -//DeflateState *s; -//charf *buf; /* the input data */ -//unsigned len; /* its length */ -//int header; /* true if block header must be written */ -{ - bi_windup(s); /* align on byte boundary */ - - if (header) { - put_short(s, len); - put_short(s, ~len); - } -// while (len--) { -// put_byte(s, *buf++); -// } - utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); - s.pending += len; -} - -/* =========================================================================== - * Compares to subtrees, using the tree depth as tie breaker when - * the subtrees have equal frequency. This minimizes the worst case length. - */ -function smaller(tree, n, m, depth) { - var _n2 = n * 2; - var _m2 = m * 2; - return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ || - (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m])); -} - -/* =========================================================================== - * Restore the heap property by moving down the tree starting at node k, - * exchanging a node with the smallest of its two sons if necessary, stopping - * when the heap property is re-established (each father smaller than its - * two sons). - */ -function pqdownheap(s, tree, k) -// deflate_state *s; -// ct_data *tree; /* the tree to restore */ -// int k; /* node to move down */ -{ - var v = s.heap[k]; - var j = k << 1; /* left son of k */ - while (j <= s.heap_len) { - /* Set j to the smallest of the two sons: */ - if (j < s.heap_len && - smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { - j++; - } - /* Exit if v is smaller than both sons */ - if (smaller(tree, v, s.heap[j], s.depth)) { break; } - - /* Exchange v with the smallest son */ - s.heap[k] = s.heap[j]; - k = j; - - /* And continue down the tree, setting j to the left son of k */ - j <<= 1; - } - s.heap[k] = v; -} - - -// inlined manually -// var SMALLEST = 1; - -/* =========================================================================== - * Send the block data compressed using the given Huffman trees - */ -function compress_block(s, ltree, dtree) -// deflate_state *s; -// const ct_data *ltree; /* literal tree */ -// const ct_data *dtree; /* distance tree */ -{ - var dist; /* distance of matched string */ - var lc; /* match length or unmatched char (if dist == 0) */ - var lx = 0; /* running index in l_buf */ - var code; /* the code to send */ - var extra; /* number of extra bits to send */ - - if (s.last_lit !== 0) { - do { - dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]); - lc = s.pending_buf[s.l_buf + lx]; - lx++; - - if (dist === 0) { - send_code(s, lc, ltree); /* send a literal byte */ - //Tracecv(isgraph(lc), (stderr," '%c' ", lc)); - } else { - /* Here, lc is the match length - MIN_MATCH */ - code = _length_code[lc]; - send_code(s, code + LITERALS + 1, ltree); /* send the length code */ - extra = extra_lbits[code]; - if (extra !== 0) { - lc -= base_length[code]; - send_bits(s, lc, extra); /* send the extra length bits */ - } - dist--; /* dist is now the match distance - 1 */ - code = d_code(dist); - //Assert (code < D_CODES, "bad d_code"); - - send_code(s, code, dtree); /* send the distance code */ - extra = extra_dbits[code]; - if (extra !== 0) { - dist -= base_dist[code]; - send_bits(s, dist, extra); /* send the extra distance bits */ + var SYSCALLS = { varargs: 0, get: function(varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[SYSCALLS.varargs - 4 >> 2]; + return ret; + }, getStr: function() { + var ret = Pointer_stringify(SYSCALLS.get()); + return ret; + }, get64: function() { + var low = SYSCALLS.get(), high = SYSCALLS.get(); + if (low >= 0) + assert(high === 0); + else + assert(high === -1); + return low; + }, getZero: function() { + assert(SYSCALLS.get() === 0); + } }; + function ___syscall54(which, varargs) { + SYSCALLS.varargs = varargs; + try { + return 0; + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) + abort(e); + return -e.errno; + } + } + Module["_i64Add"] = _i64Add; + Module["_bitshift64Lshr"] = _bitshift64Lshr; + function ___cxa_pure_virtual() { + ABORT = true; + throw "Pure virtual function called!"; + } + var _BDtoIHigh = true; + function _pthread_cleanup_push(routine, arg2) { + __ATEXIT__.push(function() { + Runtime.dynCall("vi", routine, [arg2]); + }); + _pthread_cleanup_push.level = __ATEXIT__.length; + } + function _pthread_cond_broadcast() { + return 0; + } + function ___cxa_guard_acquire(variable) { + if (!HEAP8[variable >> 0]) { + HEAP8[variable >> 0] = 1; + return 1; + } + return 0; + } + function _pthread_cleanup_pop() { + assert(_pthread_cleanup_push.level == __ATEXIT__.length, "cannot pop if something else added meanwhile!"); + __ATEXIT__.pop(); + _pthread_cleanup_push.level = __ATEXIT__.length; + } + function ___cxa_guard_release() { + } + function ___cxa_begin_catch(ptr) { + __ZSt18uncaught_exceptionv.uncaught_exception--; + EXCEPTIONS.caught.push(ptr); + EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr)); + return ptr; + } + function _llvm_eh_typeid_for(type2) { + return type2; + } + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src + num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + 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 _pthread_mutex_lock() { + } + var _emscripten_postinvoke = true; + function _sbrk(bytes) { + var self2 = _sbrk; + if (!self2.called) { + DYNAMICTOP = alignMemoryPage(DYNAMICTOP); + self2.called = true; + assert(Runtime.dynamicAlloc); + self2.alloc = Runtime.dynamicAlloc; + Runtime.dynamicAlloc = function() { + abort("cannot dynamically allocate, sbrk now has control"); + }; + } + var ret = DYNAMICTOP; + if (bytes != 0) { + var success = self2.alloc(bytes); + if (!success) + return -1 >>> 0; + } + return ret; + } + Module["_bitshift64Shl"] = _bitshift64Shl; + function ___cxa_guard_abort() { + } + Module["_memmove"] = _memmove; + var _emscripten_preinvoke = true; + var _BItoD = true; + function _pthread_cond_wait() { + return 0; + } + function ___cxa_rethrow() { + ___cxa_end_catch.rethrown = true; + var ptr = EXCEPTIONS.caught.pop(); + EXCEPTIONS.last = ptr; + throw ptr; + } + function _pthread_mutex_unlock() { + } + function _time(ptr) { + var ret = Date.now() / 1e3 | 0; + if (ptr) { + HEAP32[ptr >> 2] = ret; + } + return ret; + } + function _pthread_self() { + return 0; + } + function ___syscall140(which, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[result >> 2] = stream.position; + if (stream.getdents && offset === 0 && whence === 0) + stream.getdents = null; + return 0; + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) + abort(e); + return -e.errno; + } + } + function ___syscall146(which, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + var ret = 0; + if (!___syscall146.buffer) + ___syscall146.buffer = []; + var buffer2 = ___syscall146.buffer; + for (var i2 = 0; i2 < iovcnt; i2++) { + var ptr = HEAP32[iov + i2 * 8 >> 2]; + var len = HEAP32[iov + (i2 * 8 + 4) >> 2]; + for (var j = 0; j < len; j++) { + var curr = HEAPU8[ptr + j]; + if (curr === 0 || curr === 10) { + Module["print"](UTF8ArrayToString(buffer2, 0)); + buffer2.length = 0; + } else { + buffer2.push(curr); + } + } + ret += len; + } + return ret; + } 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; + } + } + var ___dso_handle = allocate(1, "i32*", ALLOC_STATIC); + Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { + Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice); + }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func2) { + Browser.requestAnimationFrame(func2); + }; + 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); + }; + STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + staticSealed = true; + STACK_MAX = STACK_BASE + TOTAL_STACK; + DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX); + assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + var cttz_i8 = allocate([8, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0], "i8", ALLOC_DYNAMIC); + function invoke_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { + try { + return Module["dynCall_iiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiii(index, a1, a2, a3, a4, a5) { + try { + Module["dynCall_viiiii"](index, a1, a2, a3, a4, a5); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiiid(index, a1, a2, a3, a4, a5, a6) { + try { + return Module["dynCall_iiiiiid"](index, a1, a2, a3, a4, a5, a6); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_vi(index, a1) { + try { + Module["dynCall_vi"](index, a1); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_vii(index, a1, a2) { + try { + Module["dynCall_vii"](index, a1, a2); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) { + try { + return Module["dynCall_iiiiiii"](index, a1, a2, a3, a4, a5, a6); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_ii(index, a1) { + try { + return Module["dynCall_ii"](index, a1); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) { + try { + return Module["dynCall_iiiiiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiii(index, a1, a2, a3) { + try { + return Module["dynCall_iiii"](index, a1, a2, a3); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiiiiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) { + try { + Module["dynCall_viiiiiiiiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) { + try { + Module["dynCall_viiiiii"](index, a1, a2, a3, a4, a5, a6); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { + try { + Module["dynCall_viiiiiii"](index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { + try { + Module["dynCall_viiiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iii(index, a1, a2) { + try { + return Module["dynCall_iii"](index, a1, a2); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiii(index, a1, a2, a3, a4, a5) { + try { + return Module["dynCall_iiiiii"](index, a1, a2, a3, a4, a5); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_diii(index, a1, a2, a3) { + try { + return Module["dynCall_diii"](index, a1, a2, a3); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiii(index, a1, a2, a3, a4) { + try { + return Module["dynCall_iiiii"](index, a1, a2, a3, a4); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viii(index, a1, a2, a3) { + try { + Module["dynCall_viii"](index, a1, a2, a3); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { + try { + return Module["dynCall_iiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiid(index, a1, a2, a3, a4, a5) { + try { + return Module["dynCall_iiiiid"](index, a1, a2, a3, a4, a5); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiii(index, a1, a2, a3, a4) { + try { + Module["dynCall_viiii"](index, a1, a2, a3, a4); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity, "byteLength": byteLength }; + Module.asmLibraryArg = { "abort": abort, "assert": assert, "invoke_iiiiiiii": invoke_iiiiiiii, "invoke_viiiii": invoke_viiiii, "invoke_iiiiiid": invoke_iiiiiid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_iiiiiii": invoke_iiiiiii, "invoke_ii": invoke_ii, "invoke_iiiiiiiiiiii": invoke_iiiiiiiiiiii, "invoke_iiii": invoke_iiii, "invoke_viiiiiiiiiiiiiii": invoke_viiiiiiiiiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiiii": invoke_viiiiiiiiii, "invoke_iii": invoke_iii, "invoke_iiiiii": invoke_iiiiii, "invoke_diii": invoke_diii, "invoke_i": invoke_i, "invoke_iiiii": invoke_iiiii, "invoke_viii": invoke_viii, "invoke_v": invoke_v, "invoke_iiiiiiiii": invoke_iiiiiiiii, "invoke_iiiiid": invoke_iiiiid, "invoke_viiii": invoke_viiii, "_fabs": _fabs, "_strftime": _strftime, "_pthread_cond_wait": _pthread_cond_wait, "___lock": ___lock, "_pthread_key_create": _pthread_key_create, "_abort": _abort, "___cxa_guard_acquire": ___cxa_guard_acquire, "___setErrNo": ___setErrNo, "___gxx_personality_v0": ___gxx_personality_v0, "___assert_fail": ___assert_fail, "___cxa_free_exception": ___cxa_free_exception, "___cxa_allocate_exception": ___cxa_allocate_exception, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "__isLeapYear": __isLeapYear, "___cxa_guard_release": ___cxa_guard_release, "__addDays": __addDays, "_strftime_l": _strftime_l, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_llvm_eh_typeid_for": _llvm_eh_typeid_for, "_sbrk": _sbrk, "___cxa_begin_catch": ___cxa_begin_catch, "_emscripten_memcpy_big": _emscripten_memcpy_big, "___cxa_end_catch": ___cxa_end_catch, "___resumeException": ___resumeException, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "_sysconf": _sysconf, "_pthread_getspecific": _pthread_getspecific, "__arraySum": __arraySum, "_pthread_self": _pthread_self, "_pthread_mutex_unlock": _pthread_mutex_unlock, "_pthread_once": _pthread_once, "___syscall54": ___syscall54, "___unlock": ___unlock, "_pthread_cleanup_pop": _pthread_cleanup_pop, "_pthread_cond_broadcast": _pthread_cond_broadcast, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_pthread_setspecific": _pthread_setspecific, "___cxa_atexit": ___cxa_atexit, "___cxa_throw": ___cxa_throw, "___cxa_rethrow": ___cxa_rethrow, "___syscall6": ___syscall6, "_pthread_cleanup_push": _pthread_cleanup_push, "___cxa_pure_virtual": ___cxa_pure_virtual, "_time": _time, "_pthread_mutex_lock": _pthread_mutex_lock, "___cxa_guard_abort": ___cxa_guard_abort, "_atexit": _atexit, "___syscall140": ___syscall140, "___syscall145": ___syscall145, "___syscall146": ___syscall146, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "___dso_handle": ___dso_handle }; + var asm = function(global, env, buffer2) { + ; + var a = global.Int8Array; + var b = global.Int16Array; + var c = global.Int32Array; + var d = global.Uint8Array; + var e = global.Uint16Array; + var f = global.Uint32Array; + var g = global.Float32Array; + var h = global.Float64Array; + var i2 = new a(buffer2); + var j = new b(buffer2); + var k = new c(buffer2); + var l = new d(buffer2); + var m = new e(buffer2); + var n = new f(buffer2); + var o = new g(buffer2); + var p = new h(buffer2); + var q = global.byteLength; + var r = env.STACKTOP | 0; + var s = env.STACK_MAX | 0; + var t = env.tempDoublePtr | 0; + var u = env.ABORT | 0; + var v = env.cttz_i8 | 0; + var w = env.___dso_handle | 0; + var x = 0; + var y = 0; + var z = 0; + var A = 0; + var B = global.NaN, C = global.Infinity; + var D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0; + var M = 0; + var N = 0; + var O = 0; + var P = 0; + var Q = 0; + var R = 0; + var S = 0; + var T = 0; + var U = 0; + var V = 0; + var W = global.Math.floor; + var X = global.Math.abs; + var Y = global.Math.sqrt; + var Z = global.Math.pow; + var _ = global.Math.cos; + var $ = global.Math.sin; + var aa = global.Math.tan; + var ba = global.Math.acos; + var ca = global.Math.asin; + var da = global.Math.atan; + var ea = global.Math.atan2; + var fa = global.Math.exp; + var ga = global.Math.log; + var ha = global.Math.ceil; + var ia = global.Math.imul; + var ja = global.Math.min; + var ka = global.Math.clz32; + var la = env.abort; + var ma = env.assert; + var na = env.invoke_iiiiiiii; + var oa = env.invoke_viiiii; + var pa = env.invoke_iiiiiid; + var qa = env.invoke_vi; + var ra = env.invoke_vii; + var sa = env.invoke_iiiiiii; + var ta = env.invoke_ii; + var ua = env.invoke_iiiiiiiiiiii; + var va = env.invoke_iiii; + var wa = env.invoke_viiiiiiiiiiiiiii; + var xa = env.invoke_viiiiii; + var ya = env.invoke_viiiiiii; + var za = env.invoke_viiiiiiiiii; + var Aa = env.invoke_iii; + var Ba = env.invoke_iiiiii; + var Ca = env.invoke_diii; + var Da = env.invoke_i; + var Ea = env.invoke_iiiii; + var Fa = env.invoke_viii; + var Ga = env.invoke_v; + var Ha = env.invoke_iiiiiiiii; + var Ia = env.invoke_iiiiid; + var Ja = env.invoke_viiii; + var Ka = env._fabs; + var La = env._strftime; + var Ma = env._pthread_cond_wait; + var Na = env.___lock; + var Oa = env._pthread_key_create; + var Pa = env._abort; + var Qa = env.___cxa_guard_acquire; + var Ra = env.___setErrNo; + var Sa = env.___gxx_personality_v0; + var Ta = env.___assert_fail; + var Ua = env.___cxa_free_exception; + var Va = env.___cxa_allocate_exception; + var Wa = env.___cxa_find_matching_catch; + var Xa = env.__isLeapYear; + var Ya = env.___cxa_guard_release; + var Za = env.__addDays; + var _a = env._strftime_l; + var $a = env._emscripten_set_main_loop_timing; + var ab = env._llvm_eh_typeid_for; + var bb = env._sbrk; + var cb = env.___cxa_begin_catch; + var db = env._emscripten_memcpy_big; + var eb = env.___cxa_end_catch; + var fb = env.___resumeException; + var gb = env.__ZSt18uncaught_exceptionv; + var hb = env._sysconf; + var ib = env._pthread_getspecific; + var jb = env.__arraySum; + var kb = env._pthread_self; + var lb = env._pthread_mutex_unlock; + var mb = env._pthread_once; + var nb = env.___syscall54; + var ob = env.___unlock; + var pb = env._pthread_cleanup_pop; + var qb = env._pthread_cond_broadcast; + var rb = env._emscripten_set_main_loop; + var sb = env._pthread_setspecific; + var tb = env.___cxa_atexit; + var ub = env.___cxa_throw; + var vb = env.___cxa_rethrow; + var wb = env.___syscall6; + var xb = env._pthread_cleanup_push; + var yb = env.___cxa_pure_virtual; + var zb = env._time; + var Ab = env._pthread_mutex_lock; + var Bb = env.___cxa_guard_abort; + var Cb = env._atexit; + var Db = env.___syscall140; + var Eb = env.___syscall145; + var Fb = env.___syscall146; + var Gb = 0; + function Hb(newBuffer) { + if (q(newBuffer) & 16777215 || q(newBuffer) <= 16777215 || q(newBuffer) > 2147483648) + return false; + i2 = new a(newBuffer); + j = new b(newBuffer); + k = new c(newBuffer); + l = new d(newBuffer); + m = new e(newBuffer); + n = new f(newBuffer); + o = new g(newBuffer); + p = new h(newBuffer); + buffer2 = newBuffer; + return true; + } + function dc(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = r; + r = r + a2 | 0; + r = r + 15 & -16; + return b2 | 0; + } + function ec() { + return r | 0; + } + function fc(a2) { + a2 = a2 | 0; + r = a2; + } + function gc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + r = a2; + s = b2; + } + function hc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (!x) { + x = a2; + y = b2; + } + } + function ic(a2) { + a2 = a2 | 0; + i2[t >> 0] = i2[a2 >> 0]; + i2[t + 1 >> 0] = i2[a2 + 1 >> 0]; + i2[t + 2 >> 0] = i2[a2 + 2 >> 0]; + i2[t + 3 >> 0] = i2[a2 + 3 >> 0]; + } + function jc(a2) { + a2 = a2 | 0; + i2[t >> 0] = i2[a2 >> 0]; + i2[t + 1 >> 0] = i2[a2 + 1 >> 0]; + i2[t + 2 >> 0] = i2[a2 + 2 >> 0]; + i2[t + 3 >> 0] = i2[a2 + 3 >> 0]; + i2[t + 4 >> 0] = i2[a2 + 4 >> 0]; + i2[t + 5 >> 0] = i2[a2 + 5 >> 0]; + i2[t + 6 >> 0] = i2[a2 + 6 >> 0]; + i2[t + 7 >> 0] = i2[a2 + 7 >> 0]; + } + function kc(a2) { + a2 = a2 | 0; + M = a2; + } + function lc() { + return M | 0; + } + function mc(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; + v2 = r; + r = r + 128 | 0; + n2 = v2 + 44 | 0; + q2 = v2 + 8 | 0; + j2 = v2 + 4 | 0; + m2 = v2; + o2 = c2 + 4 | 0; + p2 = c2 + 8 | 0; + x = 0; + Ja(35, k[c2 >> 2] | 0, k[o2 >> 2] | 0, k[p2 >> 2] | 0, d2 | 0); + l2 = x; + x = 0; + if (!(l2 & 1)) { + g2 = n2; + f2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[d2 >> 2]; + g2 = g2 + 4 | 0; + d2 = d2 + 4 | 0; + } while ((g2 | 0) < (f2 | 0)); + d2 = n2 + 12 | 0; + if ((k[d2 >> 2] | 0) == 0 ? (h2 = ia(((k[n2 + 8 >> 2] | 0) + 7 | 0) / 8 | 0, k[n2 >> 2] | 0) | 0, k[d2 >> 2] = h2, (k[n2 + 24 >> 2] | 0) != 0) : 0) { + l2 = ia(k[n2 + 16 >> 2] | 0, h2) | 0; + k[d2 >> 2] = l2; + } + x = 0; + qa(176, q2 | 0); + l2 = x; + x = 0; + if (!(l2 & 1)) { + d2 = n2 + 56 | 0; + do + if (k[d2 >> 2] | 0) { + x = 0; + d2 = ta(66, d2 | 0) | 0; + l2 = x; + x = 0; + if (!(l2 & 1)) { + k[j2 >> 2] = d2; + f2 = q2 + 28 | 0; + g2 = k[f2 >> 2] | 0; + if (g2 >>> 0 < (k[q2 + 32 >> 2] | 0) >>> 0) { + k[g2 >> 2] = d2; + k[f2 >> 2] = g2 + 4; + k[j2 >> 2] = 0; + s2 = 19; + break; + } + x = 0; + ra(57, q2 + 24 | 0, j2 | 0); + l2 = x; + x = 0; + if (l2 & 1) { + f2 = Wa(824, 0) | 0; + d2 = M; + g2 = k[j2 >> 2] | 0; + k[j2 >> 2] = 0; + if (!g2) + break; + Lb[k[(k[g2 >> 2] | 0) + 4 >> 2] & 255](g2); + break; + } else { + d2 = k[j2 >> 2] | 0; + k[j2 >> 2] = 0; + if (!d2) { + s2 = 19; + break; + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + s2 = 19; + break; + } + } else + s2 = 15; + } else + s2 = 19; + while (0); + a: + do + if ((s2 | 0) == 19) { + g2 = n2 + 4 | 0; + h2 = n2 + 8 | 0; + j2 = n2 + 16 | 0; + x = 0; + d2 = Ea(14, k[n2 >> 2] | 0, k[g2 >> 2] | 0, k[h2 >> 2] | 0, k[j2 >> 2] | 0) | 0; + l2 = x; + x = 0; + if (!(l2 & 1)) { + k[m2 >> 2] = d2; + l2 = q2 + 28 | 0; + f2 = k[l2 >> 2] | 0; + do + if (f2 >>> 0 >= (k[q2 + 32 >> 2] | 0) >>> 0) { + x = 0; + ra(57, q2 + 24 | 0, m2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(824, 0) | 0; + d2 = M; + g2 = k[m2 >> 2] | 0; + k[m2 >> 2] = 0; + if (!g2) + break a; + Lb[k[(k[g2 >> 2] | 0) + 4 >> 2] & 255](g2); + break a; + } else { + d2 = k[m2 >> 2] | 0; + k[m2 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + } else { + k[f2 >> 2] = d2; + k[l2 >> 2] = f2 + 4; + k[m2 >> 2] = 0; + } + while (0); + d2 = k[n2 + 28 >> 2] | 0; + if ((d2 | 0) != 0 ? (x = 0, ra(58, q2 | 0, d2 | 0), s2 = x, x = 0, s2 & 1) : 0) { + s2 = 15; + break; + } + b: + do + if (!(k[n2 + 24 >> 2] | 0)) { + d2 = ia(k[g2 >> 2] | 0, k[n2 >> 2] | 0) | 0; + d2 = ia(d2, ((k[h2 >> 2] | 0) + 7 | 0) / 8 | 0) | 0; + if ((k[j2 >> 2] | 0) > 0) { + g2 = 0; + while (1) { + x = 0; + Fa(4, q2 | 0, c2 | 0, n2 | 0); + s2 = x; + x = 0; + if (s2 & 1) + break; + f2 = k[o2 >> 2] | 0; + if (f2) { + k[o2 >> 2] = f2 + d2; + k[p2 >> 2] = (k[p2 >> 2] | 0) - d2; + } + g2 = g2 + 1 | 0; + if ((g2 | 0) >= (k[j2 >> 2] | 0)) + break b; + } + f2 = Wa(824, 0) | 0; + d2 = M; + s2 = 16; + break a; + } + } else { + x = 0; + Fa(4, q2 | 0, c2 | 0, n2 | 0); + s2 = x; + x = 0; + if (s2 & 1) { + s2 = 15; + break a; + } + } + while (0); + x = 0; + Aa(33, q2 | 0, a2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[b2 >> 2] = k[q2 + 16 >> 2]; + if (e2) + i2[e2 >> 0] = 0; + g2 = q2 + 24 | 0; + d2 = k[g2 >> 2] | 0; + if (d2) { + f2 = k[l2 >> 2] | 0; + if ((f2 | 0) != (d2 | 0)) { + do { + e2 = f2 + -4 | 0; + k[l2 >> 2] = e2; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + if (f2) + Lb[k[(k[f2 >> 2] | 0) + 4 >> 2] & 255](f2); + f2 = k[l2 >> 2] | 0; + } while ((f2 | 0) != (d2 | 0)); + d2 = k[g2 >> 2] | 0; + } + mj(d2); + } + e2 = 0; + r = v2; + return e2 | 0; + } else + s2 = 15; + } else + s2 = 15; + } + while (0); + if ((s2 | 0) == 15) { + f2 = Wa(824, 0) | 0; + d2 = M; + s2 = 16; + } + l2 = q2 + 24 | 0; + g2 = k[l2 >> 2] | 0; + if (g2) { + j2 = q2 + 28 | 0; + h2 = k[j2 >> 2] | 0; + if ((h2 | 0) != (g2 | 0)) { + do { + q2 = h2 + -4 | 0; + k[j2 >> 2] = q2; + h2 = k[q2 >> 2] | 0; + k[q2 >> 2] = 0; + if (h2) + Lb[k[(k[h2 >> 2] | 0) + 4 >> 2] & 255](h2); + h2 = k[j2 >> 2] | 0; + } while ((h2 | 0) != (g2 | 0)); + g2 = k[l2 >> 2] | 0; + } + mj(g2); + } + } else + s2 = 5; + } else + s2 = 5; + if ((s2 | 0) == 5) { + f2 = Wa(824, 0) | 0; + d2 = M; + } + q2 = (d2 | 0) == (ab(824) | 0); + h2 = cb(f2 | 0) | 0; + d2 = (e2 | 0) == 0; + if (!q2) { + if (!d2) + i2[e2 >> 0] = 0; + eb(); + e2 = 14; + r = v2; + return e2 | 0; + } + g2 = h2 + 12 | 0; + do + if (!d2) { + d2 = k[g2 >> 2] | 0; + x = 0; + f2 = Da(1) | 0; + q2 = x; + x = 0; + if (!(q2 & 1)) + if ((d2 | 0) == (f2 | 0)) { + wl(e2, Ob[k[(k[h2 >> 2] | 0) + 8 >> 2] & 127](h2) | 0) | 0; + s2 = 60; + break; + } else { + i2[e2 >> 0] = 0; + s2 = 60; + break; + } + } else + s2 = 60; + while (0); + if ((s2 | 0) == 60 ? (t2 = k[g2 >> 2] | 0, x = 0, u2 = Da(1) | 0, e2 = x, x = 0, !(e2 & 1)) : 0) { + e2 = (t2 | 0) == (u2 | 0) ? k[h2 + 8 >> 2] | 0 : 13; + eb(); + r = v2; + return e2 | 0; + } + d2 = Wa() | 0; + x = 0; + Ga(3); + v2 = x; + x = 0; + if (v2 & 1) { + v2 = Wa(0) | 0; + oc(v2); + } else + fb(d2 | 0); + return 0; + } + function nc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + j2 = r; + r = r + 112 | 0; + f2 = j2 + 96 | 0; + i3 = j2 + 84 | 0; + l2 = j2 + 72 | 0; + m2 = j2 + 60 | 0; + n2 = j2 + 48 | 0; + o2 = j2 + 36 | 0; + p2 = j2 + 24 | 0; + q2 = j2 + 12 | 0; + s2 = j2; + h2 = (b2 | 0) == 0; + if ((a2 | 0) == 0 & h2) { + e2 = Va(16) | 0; + x = 0; + Fa(5, f2 | 0, 48504, 52); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, f2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(f2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + g2 = k[d2 >> 2] | 0; + if ((g2 + -1 | 0) >>> 0 > 65534) { + e2 = Va(16) | 0; + x = 0; + Fa(5, i3 | 0, 48557, 41); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, i3 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(i3); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + f2 = k[d2 + 4 >> 2] | 0; + if ((f2 + -1 | 0) >>> 0 > 65534) { + e2 = Va(16) | 0; + x = 0; + Fa(5, l2 | 0, 48599, 42); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, l2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(l2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + e2 = k[d2 + 8 >> 2] | 0; + if ((e2 + -2 | 0) >>> 0 > 14) { + e2 = Va(16) | 0; + x = 0; + Fa(5, m2 | 0, 48642, 46); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, m2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(m2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + a2 = k[d2 + 24 >> 2] | 0; + if (a2 >>> 0 >= 3) { + e2 = Va(16) | 0; + x = 0; + Fa(5, n2 | 0, 48689, 65); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, n2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(n2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + b2 = k[d2 + 16 >> 2] | 0; + if ((b2 + -1 | 0) >>> 0 > 254) { + e2 = Va(16) | 0; + x = 0; + Fa(5, o2 | 0, 48755, 44); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, o2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(o2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + if (!h2 ? (o2 = ia(f2, g2) | 0, (ia(ia(o2, (e2 | 0) > 8 ? 2 : 1) | 0, b2) | 0) >>> 0 > c2 >>> 0) : 0) { + e2 = Va(16) | 0; + x = 0; + Fa(5, p2 | 0, 48800, 58); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, p2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(p2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + switch (b2 | 0) { + case 4: { + if ((a2 | 0) != 2) { + r = j2; + return; + } + e2 = Va(16) | 0; + x = 0; + Fa(5, q2 | 0, 48859, 73); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, q2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(q2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + case 3: { + r = j2; + return; + } + default: { + if (!a2) { + r = j2; + return; + } + e2 = Va(16) | 0; + x = 0; + Fa(5, s2 | 0, 48933, 73); + q2 = x; + x = 0; + if (!(q2 & 1)) { + x = 0; + b2 = Da(1) | 0; + q2 = x; + x = 0; + if (!(q2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, s2 | 0), q2 = x, x = 0, !(q2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(s2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + } + } + function oc(a2) { + a2 = a2 | 0; + cb(a2 | 0) | 0; + tj(); + } + function pc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 128 | 0; + f2 = m2 + 116 | 0; + g2 = m2; + x = 0; + k[f2 >> 2] = k[b2 >> 2]; + k[f2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[b2 + 8 >> 2]; + ra(59, g2 | 0, f2 | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) { + if (c2) { + e2 = g2 + 16 | 0; + b2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[c2 >> 2]; + e2 = e2 + 4 | 0; + c2 = c2 + 4 | 0; + } while ((e2 | 0) < (b2 | 0)); + } + x = 0; + k[f2 >> 2] = k[a2 >> 2]; + k[f2 + 4 >> 2] = k[a2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[a2 + 8 >> 2]; + ra(60, g2 | 0, f2 | 0); + g2 = x; + x = 0; + if (!(g2 & 1)) { + if (d2) + i2[d2 >> 0] = 0; + l2 = 0; + r = m2; + return l2 | 0; + } + } + a2 = Wa(824, 0) | 0; + g2 = M; + g2 = (g2 | 0) == (ab(824) | 0); + a2 = cb(a2 | 0) | 0; + b2 = (d2 | 0) == 0; + if (!g2) { + if (!b2) + i2[d2 >> 0] = 0; + eb(); + l2 = 14; + r = m2; + return l2 | 0; + } + e2 = a2 + 12 | 0; + do + if (!b2) { + b2 = k[e2 >> 2] | 0; + x = 0; + c2 = Da(1) | 0; + g2 = x; + x = 0; + if (!(g2 & 1)) + if ((b2 | 0) == (c2 | 0)) { + wl(d2, Ob[k[(k[a2 >> 2] | 0) + 8 >> 2] & 127](a2) | 0) | 0; + l2 = 10; + break; + } else { + i2[d2 >> 0] = 0; + l2 = 10; + break; + } + } else + l2 = 10; + while (0); + if ((l2 | 0) == 10 ? (h2 = k[e2 >> 2] | 0, x = 0, j2 = Da(1) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + l2 = (h2 | 0) == (j2 | 0) ? k[a2 + 8 >> 2] | 0 : 13; + eb(); + r = m2; + return l2 | 0; + } + b2 = Wa() | 0; + x = 0; + Ga(3); + m2 = x; + x = 0; + if (m2 & 1) { + m2 = Wa(0) | 0; + oc(m2); + } else + fb(b2 | 0); + return 0; + } + function qc(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 128 | 0; + e2 = j2 + 116 | 0; + d2 = j2; + x = 0; + k[e2 >> 2] = k[a2 >> 2]; + k[e2 + 4 >> 2] = k[a2 + 4 >> 2]; + k[e2 + 8 >> 2] = k[a2 + 8 >> 2]; + ra(59, d2 | 0, e2 | 0); + e2 = x; + x = 0; + if ((!(e2 & 1) ? (x = 0, qa(177, d2 | 0), e2 = x, x = 0, !(e2 & 1)) : 0) ? (x = 0, ra(61, d2 | 0, 1), e2 = x, x = 0, !(e2 & 1)) : 0) { + a2 = d2 + 16 | 0; + d2 = b2 + 84 | 0; + do { + k[b2 >> 2] = k[a2 >> 2]; + b2 = b2 + 4 | 0; + a2 = a2 + 4 | 0; + } while ((b2 | 0) < (d2 | 0)); + if (c2) + i2[c2 >> 0] = 0; + c2 = 0; + r = j2; + return c2 | 0; + } + e2 = Wa(824, 0) | 0; + b2 = M; + b2 = (b2 | 0) == (ab(824) | 0); + e2 = cb(e2 | 0) | 0; + a2 = (c2 | 0) == 0; + if (!b2) { + if (!a2) + i2[c2 >> 0] = 0; + eb(); + c2 = 14; + r = j2; + return c2 | 0; + } + b2 = e2 + 12 | 0; + do + if (!a2) { + a2 = k[b2 >> 2] | 0; + x = 0; + d2 = Da(1) | 0; + l2 = x; + x = 0; + if (!(l2 & 1)) + if ((a2 | 0) == (d2 | 0)) { + wl(c2, Ob[k[(k[e2 >> 2] | 0) + 8 >> 2] & 127](e2) | 0) | 0; + h2 = 13; + break; + } else { + i2[c2 >> 0] = 0; + h2 = 13; + break; + } + } else + h2 = 13; + while (0); + if ((h2 | 0) == 13 ? (f2 = k[b2 >> 2] | 0, x = 0, g2 = Da(1) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + l2 = (f2 | 0) == (g2 | 0) ? k[e2 + 8 >> 2] | 0 : 13; + eb(); + r = j2; + return l2 | 0; + } + a2 = Wa() | 0; + x = 0; + Ga(3); + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa(0) | 0; + oc(l2); + } else + fb(a2 | 0); + return 0; + } + function rc(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 48 | 0; + i3 = m2 + 36 | 0; + h2 = m2 + 24 | 0; + j2 = m2 + 12 | 0; + l2 = m2; + if (!((a2 | 0) != 0 & (c2 | 0) != 0 & (d2 | 0) != 0 & (f2 | 0) != 0)) { + e2 = 1; + r = m2; + return e2 | 0; + } + k[j2 >> 2] = 0; + k[j2 + 4 >> 2] = a2; + k[j2 + 8 >> 2] = b2; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + k[l2 + 8 >> 2] = e2; + k[h2 >> 2] = k[j2 >> 2]; + k[h2 + 4 >> 2] = k[j2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[j2 + 8 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[i3 + 4 >> 2] = k[l2 + 4 >> 2]; + k[i3 + 8 >> 2] = k[l2 + 8 >> 2]; + e2 = mc(h2, c2, i3, f2, g2) | 0; + r = m2; + return e2 | 0; + } + function sc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + f2 = e2 + 12 | 0; + g2 = e2; + h2 = g2; + k[h2 >> 2] = 0; + k[h2 + 4 >> 2] = 0; + k[g2 + 4 >> 2] = a2; + k[g2 + 8 >> 2] = b2; + k[f2 >> 2] = k[g2 >> 2]; + k[f2 + 4 >> 2] = k[g2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[g2 + 8 >> 2]; + c2 = qc(f2, c2, d2) | 0; + r = e2; + return c2 | 0; + } + function tc(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 48 | 0; + h2 = g2 + 36 | 0; + i3 = g2 + 24 | 0; + l2 = g2 + 12 | 0; + j2 = g2; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = a2; + k[l2 + 8 >> 2] = b2; + k[j2 >> 2] = 0; + k[j2 + 4 >> 2] = c2; + k[j2 + 8 >> 2] = d2; + k[i3 >> 2] = k[l2 >> 2]; + k[i3 + 4 >> 2] = k[l2 + 4 >> 2]; + k[i3 + 8 >> 2] = k[l2 + 8 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + k[h2 + 4 >> 2] = k[j2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[j2 + 8 >> 2]; + d2 = pc(i3, h2, e2, f2) | 0; + r = g2; + return d2 | 0; + } + function uc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = a2 + 4 | 0; + c2 = k[a2 >> 2] | 0; + e2 = ((k[j2 >> 2] | 0) - c2 >> 2) + 1 | 0; + if (e2 >>> 0 > 1073741823) { + jj(a2); + c2 = k[a2 >> 2] | 0; + } + l2 = a2 + 8 | 0; + d2 = (k[l2 >> 2] | 0) - c2 | 0; + if (d2 >> 2 >>> 0 < 536870911) { + d2 = d2 >> 1; + d2 = d2 >>> 0 < e2 >>> 0 ? e2 : d2; + c2 = (k[j2 >> 2] | 0) - c2 >> 2; + if (!d2) { + f2 = 0; + g2 = 0; + } else + h2 = 6; + } else { + d2 = 1073741823; + c2 = (k[j2 >> 2] | 0) - c2 >> 2; + h2 = 6; + } + if ((h2 | 0) == 6) { + f2 = d2; + g2 = lj(d2 << 2) | 0; + } + e2 = g2 + (c2 << 2) | 0; + d2 = e2; + i3 = g2 + (f2 << 2) | 0; + h2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + k[e2 >> 2] = h2; + h2 = g2 + (c2 + 1 << 2) | 0; + g2 = k[a2 >> 2] | 0; + c2 = k[j2 >> 2] | 0; + if ((c2 | 0) == (g2 | 0)) { + e2 = a2; + f2 = j2; + } else { + do { + c2 = c2 + -4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + k[e2 + -4 >> 2] = b2; + e2 = d2 + -4 | 0; + d2 = e2; + } while ((c2 | 0) != (g2 | 0)); + c2 = d2; + e2 = a2; + f2 = j2; + d2 = c2; + g2 = k[a2 >> 2] | 0; + c2 = k[j2 >> 2] | 0; + } + k[e2 >> 2] = d2; + k[f2 >> 2] = h2; + k[l2 >> 2] = i3; + e2 = g2; + if ((c2 | 0) != (e2 | 0)) + do { + c2 = c2 + -4 | 0; + d2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (d2) + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + } while ((c2 | 0) != (e2 | 0)); + if (!g2) + return; + mj(g2); + return; + } + function vc() { + if (i2[8] | 0) + return 35648; + if (!(Qa(8) | 0)) + return 35648; + tb(72, 35648, w | 0) | 0; + Ya(8); + return 35648; + } + function wc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 32 | 0; + j2 = m2; + Oi(j2, (1 << b2) + -1 | 0, 0); + f2 = k[j2 >> 2] | 0; + l2 = f2 + 1 | 0; + c2 = l2 << 1; + k[a2 >> 2] = 0; + g2 = a2 + 4 | 0; + k[g2 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a: + do + if (l2) { + if (!((f2 | 0) < -1 ? (x = 0, qa(178, a2 | 0), h2 = x, x = 0, h2 & 1) : 0)) + d2 = 4; + if ((d2 | 0) == 4 ? (x = 0, e2 = ta(67, c2 | 0) | 0, h2 = x, x = 0, !(h2 & 1)) : 0) { + k[g2 >> 2] = e2; + k[a2 >> 2] = e2; + k[a2 + 8 >> 2] = e2 + c2; + b2 = e2; + while (1) { + i2[b2 >> 0] = 0; + b2 = (k[g2 >> 2] | 0) + 1 | 0; + k[g2 >> 2] = b2; + c2 = c2 + -1 | 0; + if (!c2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[g2 >> 2] | 0) != (b2 | 0)) + k[g2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + b2 = ~f2; + if ((f2 | 0) < (b2 | 0)) { + r = m2; + return; + } + g2 = j2 + 12 | 0; + h2 = j2 + 8 | 0; + f2 = j2 + 4 | 0; + e2 = b2; + do { + b2 = k[g2 >> 2] | 0; + if ((e2 | 0) > (0 - b2 | 0)) { + c2 = k[h2 >> 2] | 0; + if ((e2 | 0) > (0 - c2 | 0)) { + d2 = k[f2 >> 2] | 0; + if ((e2 | 0) > (0 - d2 | 0)) + if ((e2 | 0) >= 0) + if ((e2 | 0) > 0) + if ((d2 | 0) <= (e2 | 0)) + if ((c2 | 0) > (e2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (e2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[a2 >> 2] | 0) + (e2 + l2) >> 0] = b2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (l2 | 0)); + r = m2; + return; + } + function xc(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + p2 = k[c2 + 16 >> 2] | 0; + switch (p2 | 0) { + case 64: + case 0: { + x = 0; + a2 = Aa(34, a2 | 0, b2 | 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) + q2 = 16; + else + d2 = a2; + break; + } + default: { + e2 = (1 << k[b2 + 8 >> 2]) + -1 | 0; + o2 = k[b2 + 20 >> 2] | 0; + n2 = o2 << 1; + n2 = ((n2 + e2 | 0) / (n2 | 1 | 0) | 0) + 1 | 0; + a2 = 0; + while (1) + if ((1 << a2 | 0) < (n2 | 0)) + a2 = a2 + 1 | 0; + else + break; + d2 = 0; + while (1) + if ((1 << d2 | 0) < (e2 | 0)) + d2 = d2 + 1 | 0; + else { + g2 = d2; + break; + } + e2 = k[c2 >> 2] | 0; + x = 0; + d2 = ta(67, 4624) | 0; + m2 = x; + x = 0; + if (m2 & 1) + q2 = 16; + else { + f2 = ((g2 | 0) < 8 ? 8 : g2) + g2 << 1; + h2 = d2 + 4 | 0; + l2 = b2; + m2 = h2 + 84 | 0; + do { + k[h2 >> 2] = k[l2 >> 2]; + h2 = h2 + 4 | 0; + l2 = l2 + 4 | 0; + } while ((h2 | 0) < (m2 | 0)); + h2 = d2 + 88 | 0; + m2 = h2 + 40 | 0; + do { + k[h2 >> 2] = 0; + h2 = h2 + 4 | 0; + } while ((h2 | 0) < (m2 | 0)); + k[d2 >> 2] = 35660; + k[d2 + 128 >> 2] = e2; + k[d2 + 132 >> 2] = n2; + k[d2 + 136 >> 2] = o2; + k[d2 + 140 >> 2] = a2; + k[d2 + 144 >> 2] = g2; + k[d2 + 148 >> 2] = f2; + k[d2 + 152 >> 2] = p2; + a2 = d2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 172 >> 2] = k[b2 >> 2]; + k[d2 + 176 >> 2] = 0; + k[d2 + 180 >> 2] = 0; + k[d2 + 184 >> 2] = 0; + a2 = d2 + 4568 | 0; + e2 = d2 + 188 | 0; + do { + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + j[e2 + 10 >> 1] = 1; + e2 = e2 + 12 | 0; + } while ((e2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + } + } + } + if ((q2 | 0) == 16) { + q2 = Wa() | 0; + fb(q2 | 0); + } + if (!d2) + return d2 | 0; + x = 0; + ra(k[(k[d2 >> 2] | 0) + 12 >> 2] | 0, d2 | 0, c2 | 0); + q2 = x; + x = 0; + if (!(q2 & 1)) + return d2 | 0; + a2 = Wa() | 0; + if (!d2) { + q2 = a2; + fb(q2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + q2 = a2; + fb(q2 | 0); + return 0; + } + function yc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + c2 = (k[b2 + 24 >> 2] | 0) == 2; + if (c2 ? (k[b2 + 16 >> 2] | 0) != 3 : 0) { + b2 = 0; + return b2 | 0; + } + n2 = k[b2 + 20 >> 2] | 0; + a2 = k[b2 + 8 >> 2] | 0; + a: + do + if (!n2) { + if (c2) { + if ((a2 | 0) != 8) + break; + d2 = lj(4600) | 0; + g2 = d2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = d2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 >> 2] = 35688; + a2 = d2 + 132 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 148 >> 2] = k[b2 >> 2]; + k[d2 + 152 >> 2] = 0; + k[d2 + 156 >> 2] = 0; + k[d2 + 160 >> 2] = 0; + a2 = d2 + 4544 | 0; + c2 = d2 + 164 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4556 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4568 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + switch (a2 | 0) { + case 8: { + d2 = lj(4600) | 0; + g2 = d2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = d2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 >> 2] = 35716; + a2 = d2 + 132 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 148 >> 2] = k[b2 >> 2]; + k[d2 + 152 >> 2] = 0; + k[d2 + 156 >> 2] = 0; + k[d2 + 160 >> 2] = 0; + a2 = d2 + 4544 | 0; + c2 = d2 + 164 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4556 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4568 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + case 12: { + d2 = lj(4600) | 0; + g2 = d2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = d2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 >> 2] = 35744; + a2 = d2 + 132 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 148 >> 2] = k[b2 >> 2]; + k[d2 + 152 >> 2] = 0; + k[d2 + 156 >> 2] = 0; + k[d2 + 160 >> 2] = 0; + a2 = d2 + 4544 | 0; + c2 = d2 + 164 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4556 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4568 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + case 16: { + d2 = lj(4600) | 0; + g2 = d2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = d2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 >> 2] = 35772; + a2 = d2 + 132 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 148 >> 2] = k[b2 >> 2]; + k[d2 + 152 >> 2] = 0; + k[d2 + 156 >> 2] = 0; + k[d2 + 160 >> 2] = 0; + a2 = d2 + 4544 | 0; + c2 = d2 + 164 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4556 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4568 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + default: + break a; + } + } + while (0); + m2 = (1 << a2) + -1 | 0; + if ((a2 | 0) < 9) { + f2 = n2 << 1; + f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; + if (c2) { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4624) | 0; + g2 = e2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = e2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 >> 2] = 35800; + k[e2 + 128 >> 2] = m2; + k[e2 + 132 >> 2] = f2; + k[e2 + 136 >> 2] = n2; + k[e2 + 140 >> 2] = a2; + k[e2 + 144 >> 2] = c2; + k[e2 + 148 >> 2] = d2; + k[e2 + 152 >> 2] = 64; + a2 = e2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 172 >> 2] = k[b2 >> 2]; + k[e2 + 176 >> 2] = 0; + k[e2 + 180 >> 2] = 0; + k[e2 + 184 >> 2] = 0; + a2 = e2 + 4568 | 0; + c2 = e2 + 188 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 28 >> 2] | 0)) + k[e2 + 20 >> 2] = 1; + b2 = e2; + return b2 | 0; + } else { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4624) | 0; + g2 = e2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = e2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 >> 2] = 35660; + k[e2 + 128 >> 2] = m2; + k[e2 + 132 >> 2] = f2; + k[e2 + 136 >> 2] = n2; + k[e2 + 140 >> 2] = a2; + k[e2 + 144 >> 2] = c2; + k[e2 + 148 >> 2] = d2; + k[e2 + 152 >> 2] = 64; + a2 = e2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 172 >> 2] = k[b2 >> 2]; + k[e2 + 176 >> 2] = 0; + k[e2 + 180 >> 2] = 0; + k[e2 + 184 >> 2] = 0; + a2 = e2 + 4568 | 0; + c2 = e2 + 188 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 28 >> 2] | 0)) + k[e2 + 20 >> 2] = 1; + b2 = e2; + return b2 | 0; + } + } + if ((a2 | 0) >= 17) { + b2 = 0; + return b2 | 0; + } + f2 = n2 << 1; + f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; + if (c2) { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4624) | 0; + g2 = e2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = e2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 >> 2] = 35828; + k[e2 + 128 >> 2] = m2; + k[e2 + 132 >> 2] = f2; + k[e2 + 136 >> 2] = n2; + k[e2 + 140 >> 2] = a2; + k[e2 + 144 >> 2] = c2; + k[e2 + 148 >> 2] = d2; + k[e2 + 152 >> 2] = 64; + a2 = e2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 172 >> 2] = k[b2 >> 2]; + k[e2 + 176 >> 2] = 0; + k[e2 + 180 >> 2] = 0; + k[e2 + 184 >> 2] = 0; + a2 = e2 + 4568 | 0; + c2 = e2 + 188 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 28 >> 2] | 0)) + k[e2 + 20 >> 2] = 1; + b2 = e2; + return b2 | 0; + } else { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4624) | 0; + g2 = e2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = e2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 >> 2] = 35856; + k[e2 + 128 >> 2] = m2; + k[e2 + 132 >> 2] = f2; + k[e2 + 136 >> 2] = n2; + k[e2 + 140 >> 2] = a2; + k[e2 + 144 >> 2] = c2; + k[e2 + 148 >> 2] = d2; + k[e2 + 152 >> 2] = 64; + a2 = e2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 172 >> 2] = k[b2 >> 2]; + k[e2 + 176 >> 2] = 0; + k[e2 + 180 >> 2] = 0; + k[e2 + 184 >> 2] = 0; + a2 = e2 + 4568 | 0; + c2 = e2 + 188 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 28 >> 2] | 0)) + k[e2 + 20 >> 2] = 1; + b2 = e2; + return b2 | 0; + } + return 0; + } + function zc(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + p2 = k[c2 + 16 >> 2] | 0; + switch (p2 | 0) { + case 64: + case 0: { + x = 0; + a2 = Aa(35, a2 | 0, b2 | 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) + q2 = 16; + else + d2 = a2; + break; + } + default: { + e2 = (1 << k[b2 + 8 >> 2]) + -1 | 0; + o2 = k[b2 + 20 >> 2] | 0; + n2 = o2 << 1; + n2 = ((n2 + e2 | 0) / (n2 | 1 | 0) | 0) + 1 | 0; + a2 = 0; + while (1) + if ((1 << a2 | 0) < (n2 | 0)) + a2 = a2 + 1 | 0; + else + break; + d2 = 0; + while (1) + if ((1 << d2 | 0) < (e2 | 0)) + d2 = d2 + 1 | 0; + else { + g2 = d2; + break; + } + e2 = k[c2 >> 2] | 0; + x = 0; + d2 = ta(67, 4632) | 0; + m2 = x; + x = 0; + if (m2 & 1) + q2 = 16; + else { + f2 = ((g2 | 0) < 8 ? 8 : g2) + g2 << 1; + k[d2 + 4 >> 2] = 0; + h2 = d2 + 8 | 0; + l2 = b2; + m2 = h2 + 84 | 0; + do { + k[h2 >> 2] = k[l2 >> 2]; + h2 = h2 + 4 | 0; + l2 = l2 + 4 | 0; + } while ((h2 | 0) < (m2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + m2 = d2 + 116 | 0; + k[m2 >> 2] = 0; + k[m2 + 4 >> 2] = 0; + k[m2 + 8 >> 2] = 0; + k[m2 + 12 >> 2] = 0; + k[m2 + 16 >> 2] = 0; + k[d2 >> 2] = 35884; + k[d2 + 136 >> 2] = e2; + k[d2 + 140 >> 2] = n2; + k[d2 + 144 >> 2] = o2; + k[d2 + 148 >> 2] = a2; + k[d2 + 152 >> 2] = g2; + k[d2 + 156 >> 2] = f2; + k[d2 + 160 >> 2] = p2; + a2 = d2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 180 >> 2] = k[b2 >> 2]; + k[d2 + 184 >> 2] = 0; + k[d2 + 188 >> 2] = 0; + k[d2 + 192 >> 2] = 0; + a2 = d2 + 4576 | 0; + e2 = d2 + 196 | 0; + do { + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + j[e2 + 10 >> 1] = 1; + e2 = e2 + 12 | 0; + } while ((e2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + } + } + } + if ((q2 | 0) == 16) { + q2 = Wa() | 0; + fb(q2 | 0); + } + if (!d2) + return d2 | 0; + x = 0; + ra(k[(k[d2 >> 2] | 0) + 8 >> 2] | 0, d2 | 0, c2 | 0); + q2 = x; + x = 0; + if (!(q2 & 1)) + return d2 | 0; + a2 = Wa() | 0; + if (!d2) { + q2 = a2; + fb(q2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + q2 = a2; + fb(q2 | 0); + return 0; + } + function Ac(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + c2 = (k[b2 + 24 >> 2] | 0) == 2; + if (c2 ? (k[b2 + 16 >> 2] | 0) != 3 : 0) { + b2 = 0; + return b2 | 0; + } + n2 = k[b2 + 20 >> 2] | 0; + a2 = k[b2 + 8 >> 2] | 0; + a: + do + if (!n2) { + if (c2) { + if ((a2 | 0) != 8) + break; + d2 = lj(4608) | 0; + k[d2 + 4 >> 2] = 0; + g2 = d2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + a2 = d2 + 116 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[d2 >> 2] = 35912; + a2 = d2 + 140 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 156 >> 2] = k[b2 >> 2]; + k[d2 + 160 >> 2] = 0; + k[d2 + 164 >> 2] = 0; + k[d2 + 168 >> 2] = 0; + a2 = d2 + 4552 | 0; + c2 = d2 + 172 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4564 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4576 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + switch (a2 | 0) { + case 8: { + d2 = lj(4608) | 0; + k[d2 + 4 >> 2] = 0; + g2 = d2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + a2 = d2 + 116 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[d2 >> 2] = 35940; + a2 = d2 + 140 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 156 >> 2] = k[b2 >> 2]; + k[d2 + 160 >> 2] = 0; + k[d2 + 164 >> 2] = 0; + k[d2 + 168 >> 2] = 0; + a2 = d2 + 4552 | 0; + c2 = d2 + 172 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4564 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4576 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + case 12: { + d2 = lj(4608) | 0; + k[d2 + 4 >> 2] = 0; + g2 = d2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + a2 = d2 + 116 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[d2 >> 2] = 35968; + a2 = d2 + 140 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 156 >> 2] = k[b2 >> 2]; + k[d2 + 160 >> 2] = 0; + k[d2 + 164 >> 2] = 0; + k[d2 + 168 >> 2] = 0; + a2 = d2 + 4552 | 0; + c2 = d2 + 172 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4564 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4576 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + case 16: { + d2 = lj(4608) | 0; + k[d2 + 4 >> 2] = 0; + g2 = d2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + a2 = d2 + 116 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[d2 >> 2] = 35996; + a2 = d2 + 140 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 156 >> 2] = k[b2 >> 2]; + k[d2 + 160 >> 2] = 0; + k[d2 + 164 >> 2] = 0; + k[d2 + 168 >> 2] = 0; + a2 = d2 + 4552 | 0; + c2 = d2 + 172 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4564 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4576 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + default: + break a; + } + } + while (0); + m2 = (1 << a2) + -1 | 0; + if ((a2 | 0) < 9) { + f2 = n2 << 1; + f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; + if (c2) { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4632) | 0; + k[e2 + 4 >> 2] = 0; + g2 = e2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 + 92 >> 2] = 0; + k[e2 + 96 >> 2] = 0; + k[e2 + 100 >> 2] = 32; + k[e2 + 104 >> 2] = 0; + k[e2 + 108 >> 2] = 0; + i2[e2 + 112 >> 0] = 0; + l2 = e2 + 116 | 0; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + k[l2 + 12 >> 2] = 0; + k[l2 + 16 >> 2] = 0; + k[e2 >> 2] = 36024; + k[e2 + 136 >> 2] = m2; + k[e2 + 140 >> 2] = f2; + k[e2 + 144 >> 2] = n2; + k[e2 + 148 >> 2] = a2; + k[e2 + 152 >> 2] = c2; + k[e2 + 156 >> 2] = d2; + k[e2 + 160 >> 2] = 64; + a2 = e2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 180 >> 2] = k[b2 >> 2]; + k[e2 + 184 >> 2] = 0; + k[e2 + 188 >> 2] = 0; + k[e2 + 192 >> 2] = 0; + a2 = e2 + 4576 | 0; + c2 = e2 + 196 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 32 >> 2] | 0)) + k[e2 + 24 >> 2] = 1; + b2 = e2; + return b2 | 0; + } else { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4632) | 0; + k[e2 + 4 >> 2] = 0; + g2 = e2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 + 92 >> 2] = 0; + k[e2 + 96 >> 2] = 0; + k[e2 + 100 >> 2] = 32; + k[e2 + 104 >> 2] = 0; + k[e2 + 108 >> 2] = 0; + i2[e2 + 112 >> 0] = 0; + l2 = e2 + 116 | 0; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + k[l2 + 12 >> 2] = 0; + k[l2 + 16 >> 2] = 0; + k[e2 >> 2] = 35884; + k[e2 + 136 >> 2] = m2; + k[e2 + 140 >> 2] = f2; + k[e2 + 144 >> 2] = n2; + k[e2 + 148 >> 2] = a2; + k[e2 + 152 >> 2] = c2; + k[e2 + 156 >> 2] = d2; + k[e2 + 160 >> 2] = 64; + a2 = e2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 180 >> 2] = k[b2 >> 2]; + k[e2 + 184 >> 2] = 0; + k[e2 + 188 >> 2] = 0; + k[e2 + 192 >> 2] = 0; + a2 = e2 + 4576 | 0; + c2 = e2 + 196 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 32 >> 2] | 0)) + k[e2 + 24 >> 2] = 1; + b2 = e2; + return b2 | 0; + } + } + if ((a2 | 0) >= 17) { + b2 = 0; + return b2 | 0; + } + f2 = n2 << 1; + f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; + if (c2) { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4632) | 0; + k[e2 + 4 >> 2] = 0; + g2 = e2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 + 92 >> 2] = 0; + k[e2 + 96 >> 2] = 0; + k[e2 + 100 >> 2] = 32; + k[e2 + 104 >> 2] = 0; + k[e2 + 108 >> 2] = 0; + i2[e2 + 112 >> 0] = 0; + l2 = e2 + 116 | 0; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + k[l2 + 12 >> 2] = 0; + k[l2 + 16 >> 2] = 0; + k[e2 >> 2] = 36052; + k[e2 + 136 >> 2] = m2; + k[e2 + 140 >> 2] = f2; + k[e2 + 144 >> 2] = n2; + k[e2 + 148 >> 2] = a2; + k[e2 + 152 >> 2] = c2; + k[e2 + 156 >> 2] = d2; + k[e2 + 160 >> 2] = 64; + a2 = e2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 180 >> 2] = k[b2 >> 2]; + k[e2 + 184 >> 2] = 0; + k[e2 + 188 >> 2] = 0; + k[e2 + 192 >> 2] = 0; + a2 = e2 + 4576 | 0; + c2 = e2 + 196 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 32 >> 2] | 0)) + k[e2 + 24 >> 2] = 1; + b2 = e2; + return b2 | 0; + } else { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4632) | 0; + k[e2 + 4 >> 2] = 0; + g2 = e2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 + 92 >> 2] = 0; + k[e2 + 96 >> 2] = 0; + k[e2 + 100 >> 2] = 32; + k[e2 + 104 >> 2] = 0; + k[e2 + 108 >> 2] = 0; + i2[e2 + 112 >> 0] = 0; + l2 = e2 + 116 | 0; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + k[l2 + 12 >> 2] = 0; + k[l2 + 16 >> 2] = 0; + k[e2 >> 2] = 36080; + k[e2 + 136 >> 2] = m2; + k[e2 + 140 >> 2] = f2; + k[e2 + 144 >> 2] = n2; + k[e2 + 148 >> 2] = a2; + k[e2 + 152 >> 2] = c2; + k[e2 + 156 >> 2] = d2; + k[e2 + 160 >> 2] = 64; + a2 = e2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 180 >> 2] = k[b2 >> 2]; + k[e2 + 184 >> 2] = 0; + k[e2 + 188 >> 2] = 0; + k[e2 + 192 >> 2] = 0; + a2 = e2 + 4576 | 0; + c2 = e2 + 196 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 32 >> 2] | 0)) + k[e2 + 24 >> 2] = 1; + b2 = e2; + return b2 | 0; + } + return 0; + } + function Bc() { + var a2 = 0, b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + a2 = 2832; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 4880); + sw(2832, 0, 2048) | 0; + a2 = 0; + do { + g2 = 2832 + (a2 + 128 << 3) | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 1; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != 128); + a2 = 3088; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3096; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3104; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3112; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3120; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3128; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3136; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3144; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3152; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3160; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3168; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3176; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3184; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3192; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3200; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3208; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3216; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3224; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3232; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3240; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3248; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3256; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3264; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3272; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3280; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3288; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3296; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3304; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3312; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3320; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3328; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3336; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 2896; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2904; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2912; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2920; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2928; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2936; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2944; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2952; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2848; + k[a2 >> 2] = 3; + k[a2 + 4 >> 2] = 7; + a2 = 2856; + k[a2 >> 2] = 3; + k[a2 + 4 >> 2] = 7; + a2 = 0; + do { + g2 = 2832 + (a2 + 64 << 3) | 0; + k[g2 >> 2] = -1; + k[g2 + 4 >> 2] = 2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != 64); + a2 = 2960; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2968; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2976; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2984; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2992; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3e3; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3008; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3016; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3024; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3032; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3040; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3048; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3056; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3064; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3072; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3080; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2864; + k[a2 >> 2] = -3; + k[a2 + 4 >> 2] = 6; + a2 = 2872; + k[a2 >> 2] = -3; + k[a2 + 4 >> 2] = 6; + a2 = 2880; + k[a2 >> 2] = -3; + k[a2 + 4 >> 2] = 6; + a2 = 2888; + k[a2 >> 2] = -3; + k[a2 + 4 >> 2] = 6; + a2 = 2840; + k[a2 >> 2] = -4; + k[a2 + 4 >> 2] = 8; + a2 = 4880; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 6928); + sw(4880, 0, 2048) | 0; + c2 = 2; + a2 = 0; + e2 = 0; + f2 = 0; + while (1) { + c2 = c2 << 16 >> 16; + b2 = 8 - c2 | 0; + d2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 1 | 2) << b2; + b2 = 0; + do { + g2 = 4880 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = e2; + k[g2 + 4 >> 2] = c2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (d2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 7) { + b2 = 2; + e2 = 1; + f2 = -1; + g2 = -1; + break; + } else { + c2 = (a2 >> 1) + 2 | 0; + e2 = b2 >> 16; + } + } + while (1) { + c2 = b2 << 16 >> 16; + a2 = 8 - c2 | 0; + d2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (e2 & 1 | 2) << a2; + b2 = 0; + do { + e2 = 4880 + (b2 + a2 << 3) | 0; + k[e2 >> 2] = f2; + k[e2 + 4 >> 2] = c2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (d2 | 0)); + } + a2 = (g2 << 16) + -65536 | 0; + e2 = a2 >> 31 ^ a2 >> 15; + b2 = (e2 >> 1) + 2 | 0; + if ((b2 | 0) > 8) { + a2 = 6928; + break; + } else { + f2 = a2 >> 16; + g2 = g2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 8976); + sw(6928, 0, 2048) | 0; + e2 = 3; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 3 | 4) << b2; + b2 = 0; + do { + g2 = 6928 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 12) { + e2 = 3; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 2) + 3 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 3 | 4) << a2; + b2 = 0; + do { + g2 = 6928 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 2) + 3 | 0; + if ((e2 | 0) > 8) { + a2 = 8976; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 11024); + sw(8976, 0, 2048) | 0; + e2 = 4; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 7 | 8) << b2; + b2 = 0; + do { + g2 = 8976 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 20) { + e2 = 4; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 3) + 4 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 7 | 8) << a2; + b2 = 0; + do { + g2 = 8976 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 3) + 4 | 0; + if ((e2 | 0) > 8) { + a2 = 11024; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 13072); + sw(11024, 0, 2048) | 0; + e2 = 5; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 15 | 16) << b2; + b2 = 0; + do { + g2 = 11024 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 32) { + e2 = 5; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 4) + 5 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 15 | 16) << a2; + b2 = 0; + do { + g2 = 11024 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 4) + 5 | 0; + if ((e2 | 0) > 8) { + a2 = 13072; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 15120); + sw(13072, 0, 2048) | 0; + e2 = 6; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 31 | 32) << b2; + b2 = 0; + do { + g2 = 13072 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 48) { + e2 = 6; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 5) + 6 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 31 | 32) << a2; + b2 = 0; + do { + g2 = 13072 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 5) + 6 | 0; + if ((e2 | 0) > 8) { + a2 = 15120; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 17168); + sw(15120, 0, 2048) | 0; + e2 = 7; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 63 | 64) << b2; + b2 = 0; + do { + g2 = 15120 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 64) { + e2 = 7; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 6) + 7 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 63 | 64) << a2; + b2 = 0; + do { + g2 = 15120 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 6) + 7 | 0; + if ((e2 | 0) > 8) { + a2 = 17168; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 19216); + sw(17168, 0, 2048) | 0; + e2 = 8; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 127 | 128) << b2; + b2 = 0; + do { + g2 = 17168 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 64) { + f2 = 8; + d2 = 1; + e2 = -1; + g2 = -1; + break; + } else { + e2 = (a2 >> 7) + 8 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - f2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (d2 & 127 | 128) << a2; + b2 = 0; + do { + d2 = 17168 + (b2 + a2 << 3) | 0; + k[d2 >> 2] = e2; + k[d2 + 4 >> 2] = f2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (g2 << 16) + -65536 | 0; + d2 = b2 >> 31 ^ b2 >> 15; + a2 = d2 >> 7; + if ((a2 | 0) > 0) { + a2 = 19216; + break; + } else { + f2 = a2 + 8 | 0; + e2 = b2 >> 16; + g2 = g2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 21264); + sw(19216, 0, 2048) | 0; + a2 = 21264; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 23312); + sw(21264, 0, 2048) | 0; + a2 = 23312; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 25360); + sw(23312, 0, 2048) | 0; + a2 = 25360; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 27408); + sw(25360, 0, 2048) | 0; + a2 = 27408; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 29456); + sw(27408, 0, 2048) | 0; + a2 = 29456; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 31504); + sw(29456, 0, 2048) | 0; + a2 = 31504; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 33552); + sw(31504, 0, 2048) | 0; + a2 = 33552; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 35600); + sw(33552, 0, 2048) | 0; + wc(35600, 8); + tb(179, 35600, w | 0) | 0; + wc(35612, 10); + tb(179, 35612, w | 0) | 0; + wc(35624, 12); + tb(179, 35624, w | 0) | 0; + wc(35636, 16); + tb(179, 35636, w | 0) | 0; + return; + } + function Cc(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = k[a2 >> 2] | 0; + if (!b2) + return; + a2 = a2 + 4 | 0; + if ((k[a2 >> 2] | 0) != (b2 | 0)) + k[a2 >> 2] = b2; + mj(b2); + return; + } + function Dc(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36080; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Ec(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36080; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Fc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 188 >> 2] = f2; + k[a2 + 192 >> 2] = e2; + re(a2); + e2 = a2 + 140 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4576 >> 2] = h2; + k[a2 + 4580 >> 2] = 0; + i2[a2 + 4584 >> 0] = l2; + i2[a2 + 4585 >> 0] = 1; + i2[a2 + 4586 >> 0] = 0; + k[a2 + 4588 >> 2] = h2; + k[a2 + 4592 >> 2] = 1; + i2[a2 + 4596 >> 0] = l2; + i2[a2 + 4597 >> 0] = 1; + i2[a2 + 4598 >> 0] = 0; + k[a2 + 4600 >> 2] = 0; + r = g2; + return; + } + function Gc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4624) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35856; + k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; + k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; + k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; + k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; + k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; + k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; + k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; + e2 = b2 + 156 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 172 >> 2] = k[d2 >> 2]; + k[b2 + 176 >> 2] = 0; + k[b2 + 180 >> 2] = 0; + k[b2 + 184 >> 2] = 0; + e2 = b2 + 4568 | 0; + d2 = b2 + 188 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4580 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4592 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + ge(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + ge(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function Hc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Ic(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + k[a2 >> 2] = 36460; + k[a2 + 4 >> 2] = c2; + n2 = a2 + 8 | 0; + f2 = k[c2 >> 2] | 0; + l2 = c2 + 16 | 0; + d2 = k[l2 >> 2] | 0; + g2 = ia(d2, f2) | 0; + k[n2 >> 2] = 0; + o2 = a2 + 12 | 0; + k[o2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (g2) { + if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) + m2 = 4; + if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { + k[n2 >> 2] = j2; + f2 = j2 + (g2 << 1) | 0; + k[a2 + 16 >> 2] = f2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[o2 >> 2] = f2; + f2 = k[c2 >> 2] | 0; + d2 = k[l2 >> 2] | 0; + break; + } + g2 = Wa() | 0; + e2 = k[n2 >> 2] | 0; + d2 = e2; + if (e2) { + f2 = k[o2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); + mj(e2); + } + o2 = g2; + fb(o2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2 << 1, d2) | 0; + k[g2 >> 2] = 0; + h2 = a2 + 24 | 0; + k[h2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + m2 = 13; + if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[h2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[h2 >> 2] | 0) + 1 | 0; + k[h2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + f2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[h2 >> 2] | 0) != (e2 | 0)) + k[h2 >> 2] = e2; + mj(e2); + } + e2 = k[n2 >> 2] | 0; + if (!e2) { + o2 = f2; + fb(o2 | 0); + } + d2 = k[o2 >> 2] | 0; + if ((d2 | 0) != (e2 | 0)) + k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + o2 = f2; + fb(o2 | 0); + } + function Jc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + k[a2 >> 2] = 36436; + k[a2 + 4 >> 2] = c2; + n2 = a2 + 8 | 0; + f2 = k[c2 >> 2] | 0; + l2 = c2 + 16 | 0; + d2 = k[l2 >> 2] | 0; + g2 = ia(d2, f2) | 0; + k[n2 >> 2] = 0; + o2 = a2 + 12 | 0; + k[o2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (g2) { + if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) + m2 = 4; + if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { + k[n2 >> 2] = j2; + f2 = j2 + (g2 << 1) | 0; + k[a2 + 16 >> 2] = f2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[o2 >> 2] = f2; + f2 = k[c2 >> 2] | 0; + d2 = k[l2 >> 2] | 0; + break; + } + g2 = Wa() | 0; + e2 = k[n2 >> 2] | 0; + d2 = e2; + if (e2) { + f2 = k[o2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); + mj(e2); + } + o2 = g2; + fb(o2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2 << 1, d2) | 0; + k[g2 >> 2] = 0; + h2 = a2 + 24 | 0; + k[h2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + m2 = 13; + if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[h2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[h2 >> 2] | 0) + 1 | 0; + k[h2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + f2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[h2 >> 2] | 0) != (e2 | 0)) + k[h2 >> 2] = e2; + mj(e2); + } + e2 = k[n2 >> 2] | 0; + if (!e2) { + o2 = f2; + fb(o2 | 0); + } + d2 = k[o2 >> 2] | 0; + if ((d2 | 0) != (e2 | 0)) + k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + o2 = f2; + fb(o2 | 0); + } + function Kc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + k[a2 >> 2] = 36412; + k[a2 + 4 >> 2] = c2; + n2 = a2 + 8 | 0; + f2 = k[c2 >> 2] | 0; + l2 = c2 + 16 | 0; + d2 = k[l2 >> 2] | 0; + g2 = ia(d2, f2) | 0; + k[n2 >> 2] = 0; + o2 = a2 + 12 | 0; + k[o2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (g2) { + if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) + m2 = 4; + if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { + k[n2 >> 2] = j2; + f2 = j2 + (g2 << 1) | 0; + k[a2 + 16 >> 2] = f2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[o2 >> 2] = f2; + f2 = k[c2 >> 2] | 0; + d2 = k[l2 >> 2] | 0; + break; + } + g2 = Wa() | 0; + e2 = k[n2 >> 2] | 0; + d2 = e2; + if (e2) { + f2 = k[o2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); + mj(e2); + } + o2 = g2; + fb(o2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2 << 1, d2) | 0; + k[g2 >> 2] = 0; + h2 = a2 + 24 | 0; + k[h2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + m2 = 13; + if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[h2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[h2 >> 2] | 0) + 1 | 0; + k[h2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + f2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[h2 >> 2] | 0) != (e2 | 0)) + k[h2 >> 2] = e2; + mj(e2); + } + e2 = k[n2 >> 2] | 0; + if (!e2) { + o2 = f2; + fb(o2 | 0); + } + d2 = k[o2 >> 2] | 0; + if ((d2 | 0) != (e2 | 0)) + k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + o2 = f2; + fb(o2 | 0); + } + function Lc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + k[a2 >> 2] = 36388; + k[a2 + 4 >> 2] = c2; + n2 = a2 + 8 | 0; + f2 = k[c2 >> 2] | 0; + l2 = c2 + 16 | 0; + d2 = k[l2 >> 2] | 0; + g2 = ia(d2, f2) | 0; + k[n2 >> 2] = 0; + o2 = a2 + 12 | 0; + k[o2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (g2) { + if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) + m2 = 4; + if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { + k[n2 >> 2] = j2; + f2 = j2 + (g2 << 1) | 0; + k[a2 + 16 >> 2] = f2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[o2 >> 2] = f2; + f2 = k[c2 >> 2] | 0; + d2 = k[l2 >> 2] | 0; + break; + } + g2 = Wa() | 0; + e2 = k[n2 >> 2] | 0; + d2 = e2; + if (e2) { + f2 = k[o2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); + mj(e2); + } + o2 = g2; + fb(o2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2 << 1, d2) | 0; + k[g2 >> 2] = 0; + h2 = a2 + 24 | 0; + k[h2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + m2 = 13; + if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[h2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[h2 >> 2] | 0) + 1 | 0; + k[h2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + f2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[h2 >> 2] | 0) != (e2 | 0)) + k[h2 >> 2] = e2; + mj(e2); + } + e2 = k[n2 >> 2] | 0; + if (!e2) { + o2 = f2; + fb(o2 | 0); + } + d2 = k[o2 >> 2] | 0; + if ((d2 | 0) != (e2 | 0)) + k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + o2 = f2; + fb(o2 | 0); + } + function Mc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + g2 = a2 + 32 | 0; + Tm(g2, b2) | 0; + f2 = a2 + 44 | 0; + k[f2 >> 2] = 0; + h2 = a2 + 48 | 0; + e2 = k[h2 >> 2] | 0; + if (e2 & 8) { + b2 = i2[g2 >> 0] | 0; + if (!(b2 & 1)) { + b2 = ((b2 & 255) >>> 1) + (g2 + 1) | 0; + k[f2 >> 2] = b2; + c2 = g2 + 1 | 0; + d2 = g2 + 1 | 0; + } else { + b2 = (k[a2 + 40 >> 2] | 0) + (k[a2 + 36 >> 2] | 0) | 0; + k[f2 >> 2] = b2; + d2 = k[a2 + 40 >> 2] | 0; + c2 = d2; + } + k[a2 + 8 >> 2] = c2; + k[a2 + 12 >> 2] = d2; + k[a2 + 16 >> 2] = b2; + } + if (!(e2 & 16)) + return; + b2 = i2[g2 >> 0] | 0; + if (!(b2 & 1)) { + e2 = (b2 & 255) >>> 1; + k[f2 >> 2] = g2 + 1 + e2; + b2 = 10; + f2 = e2; + } else { + e2 = k[a2 + 36 >> 2] | 0; + k[f2 >> 2] = (k[a2 + 40 >> 2] | 0) + e2; + b2 = (k[g2 >> 2] & -2) + -1 | 0; + f2 = e2; + } + Wm(g2, b2, 0); + b2 = i2[g2 >> 0] | 0; + if (!(b2 & 1)) { + e2 = g2 + 1 | 0; + d2 = (b2 & 255) >>> 1; + c2 = g2 + 1 | 0; + } else { + c2 = k[a2 + 40 >> 2] | 0; + e2 = c2; + d2 = k[a2 + 36 >> 2] | 0; + } + b2 = a2 + 24 | 0; + k[b2 >> 2] = c2; + k[a2 + 20 >> 2] = c2; + k[a2 + 28 >> 2] = e2 + d2; + if (!(k[h2 >> 2] & 3)) + return; + k[b2 >> 2] = c2 + f2; + return; + } + function Nc(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 32 | 0; + g2 = o2 + 16 | 0; + n2 = o2 + 8 | 0; + h2 = o2; + x = 0; + ra(65, n2 | 0, a2 | 0); + l2 = x; + x = 0; + a: + do + if (l2 & 1) { + c2 = Wa(0) | 0; + d2 = a2; + e2 = a2; + } else { + do + if (i2[n2 >> 0] | 0) { + d2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + k[h2 >> 2] = k[a2 + (d2 + 24) >> 2]; + j2 = a2 + d2 | 0; + l2 = k[a2 + (d2 + 4) >> 2] | 0; + e2 = b2 + c2 | 0; + d2 = a2 + (d2 + 76) | 0; + c2 = k[d2 >> 2] | 0; + do + if ((c2 | 0) == -1) { + x = 0; + c2 = ta(68, j2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) + m2 = 13; + else { + k[g2 >> 2] = c2; + x = 0; + c2 = Aa(37, g2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (!(p2 & 1) ? (x = 0, f2 = Aa(k[(k[c2 >> 2] | 0) + 28 >> 2] | 0, c2 | 0, 32) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { + Qs(g2); + c2 = f2 << 24 >> 24; + k[d2 >> 2] = c2; + m2 = 9; + break; + } + c2 = Wa(0) | 0; + Qs(g2); + } + } else + m2 = 9; + while (0); + if ((m2 | 0) == 9) { + x = 0; + k[g2 >> 2] = k[h2 >> 2]; + c2 = sa(39, g2 | 0, b2 | 0, ((l2 & 176 | 0) == 32 ? e2 : b2) | 0, e2 | 0, j2 | 0, c2 & 255 | 0) | 0; + p2 = x; + x = 0; + if (!(p2 & 1)) { + if (c2) + break; + p2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + p2 | 0, k[a2 + (p2 + 16) >> 2] | 5 | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) + break; + else + m2 = 13; + } else + m2 = 13; + } + if ((m2 | 0) == 13) + c2 = Wa(0) | 0; + ro(n2); + d2 = a2; + e2 = a2; + break a; + } + while (0); + ro(n2); + r = o2; + return a2 | 0; + } + while (0); + cb(c2 | 0) | 0; + x = 0; + qa(181, d2 + (k[(k[e2 >> 2] | 0) + -12 >> 2] | 0) | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) { + eb(); + r = o2; + return a2 | 0; + } + c2 = Wa() | 0; + x = 0; + Ga(3); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa(0) | 0; + oc(p2); + } else + fb(c2 | 0); + return 0; + } + function Oc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + c2 = k[b2 + 48 >> 2] | 0; + if (c2 & 16) { + c2 = b2 + 44 | 0; + d2 = k[c2 >> 2] | 0; + e2 = k[b2 + 24 >> 2] | 0; + if (d2 >>> 0 < e2 >>> 0) + k[c2 >> 2] = e2; + else + e2 = d2; + d2 = k[b2 + 20 >> 2] | 0; + f2 = e2 - d2 | 0; + if (f2 >>> 0 > 4294967279) + ij(a2); + if (f2 >>> 0 < 11) { + i2[a2 >> 0] = f2 << 1; + c2 = a2 + 1 | 0; + } else { + b2 = f2 + 16 & -16; + c2 = lj(b2) | 0; + k[a2 + 8 >> 2] = c2; + k[a2 >> 2] = b2 | 1; + k[a2 + 4 >> 2] = f2; + } + if ((d2 | 0) != (e2 | 0)) { + b2 = c2; + while (1) { + i2[b2 >> 0] = i2[d2 >> 0] | 0; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (e2 | 0)) + break; + else + b2 = b2 + 1 | 0; + } + c2 = c2 + f2 | 0; + } + i2[c2 >> 0] = 0; + return; + } + if (!(c2 & 8)) { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + d2 = k[b2 + 8 >> 2] | 0; + b2 = k[b2 + 16 >> 2] | 0; + f2 = b2 - d2 | 0; + if (f2 >>> 0 > 4294967279) + ij(a2); + if (f2 >>> 0 < 11) { + i2[a2 >> 0] = f2 << 1; + c2 = a2 + 1 | 0; + } else { + e2 = f2 + 16 & -16; + c2 = lj(e2) | 0; + k[a2 + 8 >> 2] = c2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = f2; + } + if ((d2 | 0) != (b2 | 0)) { + e2 = c2; + while (1) { + i2[e2 >> 0] = i2[d2 >> 0] | 0; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (b2 | 0)) + break; + else + e2 = e2 + 1 | 0; + } + c2 = c2 + f2 | 0; + } + i2[c2 >> 0] = 0; + return; + } + function Pc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + k[a2 >> 2] = 36364; + k[a2 + 4 >> 2] = c2; + o2 = a2 + 8 | 0; + g2 = k[c2 >> 2] | 0; + m2 = c2 + 16 | 0; + f2 = k[m2 >> 2] | 0; + l2 = ia(f2, g2) | 0; + k[o2 >> 2] = 0; + p2 = a2 + 12 | 0; + k[p2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (l2) { + if (!((l2 | 0) < 0 ? (x = 0, qa(178, o2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + n2 = 4; + if ((n2 | 0) == 4 ? (h2 = l2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[o2 >> 2] = j2; + g2 = j2 + (l2 << 1) | 0; + k[a2 + 16 >> 2] = g2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[p2 >> 2] = g2; + g2 = k[c2 >> 2] | 0; + f2 = k[m2 >> 2] | 0; + break; + } + h2 = Wa() | 0; + e2 = k[o2 >> 2] | 0; + f2 = e2; + if (e2) { + g2 = k[p2 >> 2] | 0; + if ((g2 | 0) != (e2 | 0)) + k[p2 >> 2] = g2 + (~((g2 + -2 - f2 | 0) >>> 1) << 1); + mj(e2); + } + p2 = h2; + fb(p2 | 0); + } + while (0); + h2 = a2 + 20 | 0; + f2 = ia(g2 << 1, f2) | 0; + k[h2 >> 2] = 0; + j2 = a2 + 24 | 0; + k[j2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!f2) { + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((f2 | 0) < 0 ? (x = 0, qa(178, h2 | 0), m2 = x, x = 0, m2 & 1) : 0)) + n2 = 13; + if ((n2 | 0) == 13 ? (x = 0, e2 = ta(67, f2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[j2 >> 2] = e2; + k[h2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + f2; + do { + i2[e2 >> 0] = 0; + e2 = (k[j2 >> 2] | 0) + 1 | 0; + k[j2 >> 2] = e2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + g2 = Wa() | 0; + e2 = k[h2 >> 2] | 0; + if (e2) { + if ((k[j2 >> 2] | 0) != (e2 | 0)) + k[j2 >> 2] = e2; + mj(e2); + } + e2 = k[o2 >> 2] | 0; + if (!e2) { + p2 = g2; + fb(p2 | 0); + } + f2 = k[p2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[p2 >> 2] = f2 + (~((f2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + p2 = g2; + fb(p2 | 0); + } + function Qc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + k[a2 >> 2] = 36340; + k[a2 + 4 >> 2] = c2; + o2 = a2 + 8 | 0; + g2 = k[c2 >> 2] | 0; + m2 = c2 + 16 | 0; + f2 = k[m2 >> 2] | 0; + l2 = ia(f2, g2) | 0; + k[o2 >> 2] = 0; + p2 = a2 + 12 | 0; + k[p2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (l2) { + if (!((l2 | 0) < 0 ? (x = 0, qa(178, o2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + n2 = 4; + if ((n2 | 0) == 4 ? (h2 = l2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[o2 >> 2] = j2; + g2 = j2 + (l2 << 1) | 0; + k[a2 + 16 >> 2] = g2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[p2 >> 2] = g2; + g2 = k[c2 >> 2] | 0; + f2 = k[m2 >> 2] | 0; + break; + } + h2 = Wa() | 0; + e2 = k[o2 >> 2] | 0; + f2 = e2; + if (e2) { + g2 = k[p2 >> 2] | 0; + if ((g2 | 0) != (e2 | 0)) + k[p2 >> 2] = g2 + (~((g2 + -2 - f2 | 0) >>> 1) << 1); + mj(e2); + } + p2 = h2; + fb(p2 | 0); + } + while (0); + h2 = a2 + 20 | 0; + f2 = ia(g2 << 1, f2) | 0; + k[h2 >> 2] = 0; + j2 = a2 + 24 | 0; + k[j2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!f2) { + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((f2 | 0) < 0 ? (x = 0, qa(178, h2 | 0), m2 = x, x = 0, m2 & 1) : 0)) + n2 = 13; + if ((n2 | 0) == 13 ? (x = 0, e2 = ta(67, f2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[j2 >> 2] = e2; + k[h2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + f2; + do { + i2[e2 >> 0] = 0; + e2 = (k[j2 >> 2] | 0) + 1 | 0; + k[j2 >> 2] = e2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + g2 = Wa() | 0; + e2 = k[h2 >> 2] | 0; + if (e2) { + if ((k[j2 >> 2] | 0) != (e2 | 0)) + k[j2 >> 2] = e2; + mj(e2); + } + e2 = k[o2 >> 2] | 0; + if (!e2) { + p2 = g2; + fb(p2 | 0); + } + f2 = k[p2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[p2 >> 2] = f2 + (~((f2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + p2 = g2; + fb(p2 | 0); + } + function Rc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + k[a2 >> 2] = 36316; + k[a2 + 4 >> 2] = c2; + o2 = a2 + 8 | 0; + g2 = k[c2 >> 2] | 0; + m2 = c2 + 16 | 0; + f2 = k[m2 >> 2] | 0; + l2 = ia(f2, g2) | 0; + k[o2 >> 2] = 0; + p2 = a2 + 12 | 0; + k[p2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (l2) { + if (!((l2 | 0) < 0 ? (x = 0, qa(178, o2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + n2 = 4; + if ((n2 | 0) == 4 ? (h2 = l2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[o2 >> 2] = j2; + g2 = j2 + (l2 << 1) | 0; + k[a2 + 16 >> 2] = g2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[p2 >> 2] = g2; + g2 = k[c2 >> 2] | 0; + f2 = k[m2 >> 2] | 0; + break; + } + h2 = Wa() | 0; + e2 = k[o2 >> 2] | 0; + f2 = e2; + if (e2) { + g2 = k[p2 >> 2] | 0; + if ((g2 | 0) != (e2 | 0)) + k[p2 >> 2] = g2 + (~((g2 + -2 - f2 | 0) >>> 1) << 1); + mj(e2); + } + p2 = h2; + fb(p2 | 0); + } + while (0); + h2 = a2 + 20 | 0; + f2 = ia(g2 << 1, f2) | 0; + k[h2 >> 2] = 0; + j2 = a2 + 24 | 0; + k[j2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!f2) { + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((f2 | 0) < 0 ? (x = 0, qa(178, h2 | 0), m2 = x, x = 0, m2 & 1) : 0)) + n2 = 13; + if ((n2 | 0) == 13 ? (x = 0, e2 = ta(67, f2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[j2 >> 2] = e2; + k[h2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + f2; + do { + i2[e2 >> 0] = 0; + e2 = (k[j2 >> 2] | 0) + 1 | 0; + k[j2 >> 2] = e2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + g2 = Wa() | 0; + e2 = k[h2 >> 2] | 0; + if (e2) { + if ((k[j2 >> 2] | 0) != (e2 | 0)) + k[j2 >> 2] = e2; + mj(e2); + } + e2 = k[o2 >> 2] | 0; + if (!e2) { + p2 = g2; + fb(p2 | 0); + } + f2 = k[p2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[p2 >> 2] = f2 + (~((f2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + p2 = g2; + fb(p2 | 0); + } + function Sc(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36316; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function Tc(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36316; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function Uc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 48 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 52 | 0; + Zc(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Zc(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Vc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 48 >> 2] | 0; + if (!e2) { + e2 = a2 + 52 | 0; + Wc(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Xc(a2, e2, b2, c2, d2); + return; + } + } + function Wc(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0; + l2 = a2 + 4 | 0; + f2 = k[l2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + n2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[l2 >> 2] | 0; + h2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + n2 = k[g2 >> 2] | 0; + break; + } + b2 = k[g2 >> 2] | 0; + f2 = b2; + g2 = 0; + while (1) { + n2 = f2 + 4 | 0; + o2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[n2 >> 1] | 0; + j[n2 >> 1] = o2; + g2 = g2 + 1 | 0; + if ((g2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (h2 << 1) | 0; + } + n2 = b2; + f2 = k[l2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + return; + f2 = a2 + 32 | 0; + b2 = 0; + do { + o2 = k[f2 >> 2] | 0; + l2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << o2; + e2 = 32768 - l2 | 0; + a2 = e2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << o2) & 65535; + e2 = e2 + (m[n2 + (b2 * 6 | 0) >> 1] << o2) & 65535; + j[c2 + (b2 * 6 | 0) >> 1] = (l2 + 49152 + ((a2 + e2 | 0) >>> 2) & 65535) >>> o2; + j[c2 + (b2 * 6 | 0) + 2 >> 1] = a2 >>> o2; + j[c2 + (b2 * 6 | 0) + 4 >> 1] = e2 >>> o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (d2 | 0)); + return; + } else { + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + d2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << f2; + o2 = 32768 - d2 | 0; + a2 = o2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << f2) & 65535; + o2 = o2 + (m[n2 + (b2 * 6 | 0) >> 1] << f2) & 65535; + j[c2 + (b2 << 1) >> 1] = (d2 + 49152 + ((a2 + o2 | 0) >>> 2) & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = a2 >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = o2 >>> f2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + l2 = e2 * 3 | 0; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + o2 = j[n2 + (b2 << 3) + 6 >> 1] | 0; + p2 = m[n2 + (b2 << 3) + 2 >> 1] << f2; + a2 = 32768 - p2 | 0; + d2 = a2 + (m[n2 + (b2 << 3) + 4 >> 1] << f2) & 65535; + a2 = a2 + (m[n2 + (b2 << 3) >> 1] << f2) & 65535; + j[c2 + (b2 << 1) >> 1] = (p2 + 49152 + ((d2 + a2 | 0) >>> 2) & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = d2 >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = a2 >>> f2; + j[c2 + (b2 + l2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + default: + return; + } + } + function Xc(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Wc(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Wc(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Yc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = r; + r = r + 176 | 0; + c2 = e2 + 152 | 0; + j2 = e2 + 16 | 0; + g2 = e2; + if (!(b2 & 1)) { + c2 = (b2 | 0) / 4 | 0; + if ((b2 | 0) > 3) { + d2 = 0; + do { + j2 = a2 + (d2 << 2) | 0; + h2 = k[j2 >> 2] | 0; + k[j2 >> 2] = h2 >>> 8 & 16711935 | h2 << 8 & -16711936; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (c2 | 0)); + } + if (!(b2 & 3)) { + r = e2; + return; + } + g2 = a2 + (b2 + -2) | 0; + j2 = a2 + (b2 + -1) | 0; + h2 = i2[g2 >> 0] | 0; + i2[g2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = h2; + r = e2; + return; + } + h2 = j2 + 56 | 0; + f2 = j2 + 4 | 0; + k[j2 >> 2] = 36160; + k[h2 >> 2] = 36180; + x = 0; + ra(62, j2 + 56 | 0, f2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + j2 = Wa() | 0; + qn(h2); + fb(j2 | 0); + } + k[j2 + 128 >> 2] = 0; + k[j2 + 132 >> 2] = -1; + k[j2 >> 2] = 36200; + k[j2 + 56 >> 2] = 36220; + x = 0; + qa(180, f2 | 0); + e2 = x; + x = 0; + do + if (e2 & 1) + c2 = Wa() | 0; + else { + k[f2 >> 2] = 36236; + e2 = j2 + 36 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[j2 + 52 >> 2] = 16; + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + k[c2 + 8 >> 2] = 0; + x = 0; + ra(63, f2 | 0, c2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + j2 = Wa() | 0; + Sm(c2); + Sm(e2); + xn(f2); + c2 = j2; + break; + } + Sm(c2); + x = 0; + c2 = va(28, j2 | 0, 49087, 24) | 0; + a2 = x; + x = 0; + if ((!(a2 & 1) ? (x = 0, d2 = Aa(36, c2 | 0, b2 | 0) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) ? (x = 0, va(28, d2 | 0, 49112, 20) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) { + a2 = Va(16) | 0; + x = 0; + ra(64, g2 | 0, f2 | 0); + b2 = x; + x = 0; + if (!(b2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, a2 | 0, 1, 35648, g2 | 0); + b2 = x; + x = 0; + if (b2 & 1) + d2 = 1; + else { + x = 0; + Fa(6, a2 | 0, 824, 96); + x = 0; + d2 = 0; + } + c2 = Wa() | 0; + Sm(g2); + if (!d2) { + g2 = c2; + k[j2 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + } else + c2 = Wa() | 0; + Ua(a2 | 0); + g2 = c2; + k[j2 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + g2 = Wa() | 0; + k[j2 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + while (0); + j2 = c2; + qn(h2); + fb(j2 | 0); + } + function Zc(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; + n2 = a2 + 4 | 0; + f2 = k[n2 >> 2] | 0; + a: + do + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + break a; + f2 = a2 + 40 | 0; + a2 = 0; + do { + e2 = k[f2 >> 2] | 0; + h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] << e2; + g2 = m[b2 + (a2 * 6 | 0) + 4 >> 1] << e2; + l2 = (m[b2 + (a2 * 6 | 0) >> 1] << e2) - (g2 + h2 >> 2) + 16384 | 0; + j[c2 + (a2 * 6 | 0) >> 1] = (g2 + 32768 + l2 & 65535) >>> e2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = (l2 & 65535) >>> e2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = (h2 + 32768 + l2 & 65535) >>> e2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (d2 | 0)); + } else { + g2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((g2 | 0) <= 0) + break a; + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = 0; + do { + l2 = k[f2 >> 2] | 0; + p2 = m[b2 + (a2 + e2 << 1) >> 1] << l2; + q2 = m[b2 + (a2 + h2 << 1) >> 1] << l2; + o2 = (m[b2 + (a2 << 1) >> 1] << l2) - (q2 + p2 >> 2) + 16384 | 0; + j[c2 + (a2 * 6 | 0) >> 1] = (q2 + 32768 + o2 & 65535) >>> l2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = (o2 & 65535) >>> l2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = (p2 + 32768 + o2 & 65535) >>> l2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (g2 | 0)); + } + break; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) == 1 ? (l2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (l2 | 0) > 0) : 0) { + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = e2 * 3 | 0; + g2 = 0; + do { + q2 = k[f2 >> 2] | 0; + p2 = m[b2 + (g2 + e2 << 1) >> 1] << q2; + s2 = m[b2 + (g2 + h2 << 1) >> 1] << q2; + o2 = (m[b2 + (g2 << 1) >> 1] << q2) - (s2 + p2 >> 2) + 16384 | 0; + r2 = j[b2 + (g2 + a2 << 1) >> 1] | 0; + t2 = ww((o2 & 65535) >>> q2 & 65535 | 0, 0, 16) | 0; + p2 = (p2 + 32768 + o2 & 65535) >>> q2 | M; + r2 = ww(r2 & 65535 | 0, 0, 48) | 0; + r2 = t2 | (s2 + 32768 + o2 & 65535) >>> q2 & 65535 | r2; + p2 = p2 & 65535 | M; + q2 = c2 + (g2 << 3) | 0; + o2 = q2; + j[o2 >> 1] = r2; + j[o2 + 2 >> 1] = r2 >>> 16; + q2 = q2 + 4 | 0; + j[q2 >> 1] = p2; + j[q2 + 2 >> 1] = p2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (l2 | 0)); + } + break; + } + default: { + } + } + while (0); + f2 = k[n2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + return; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + f2 = c2; + a2 = 0; + while (1) { + t2 = f2 + 4 | 0; + s2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[t2 >> 1] | 0; + j[t2 >> 1] = s2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + return; + } + function _c(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36340; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function $c(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36340; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function ad(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 48 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 52 | 0; + ed(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + ed(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function bd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 48 >> 2] | 0; + if (!e2) { + e2 = a2 + 52 | 0; + cd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + dd(a2, e2, b2, c2, d2); + return; + } + } + function cd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0; + l2 = a2 + 4 | 0; + f2 = k[l2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + n2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[l2 >> 2] | 0; + h2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + n2 = k[g2 >> 2] | 0; + break; + } + b2 = k[g2 >> 2] | 0; + f2 = b2; + g2 = 0; + while (1) { + n2 = f2 + 4 | 0; + o2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[n2 >> 1] | 0; + j[n2 >> 1] = o2; + g2 = g2 + 1 | 0; + if ((g2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (h2 << 1) | 0; + } + n2 = b2; + f2 = k[l2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + return; + f2 = a2 + 32 | 0; + b2 = 0; + do { + e2 = k[f2 >> 2] | 0; + l2 = m[n2 + (b2 * 6 | 0) >> 1] << e2; + a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << e2; + o2 = ((m[n2 + (b2 * 6 | 0) + 4 >> 1] << e2) + 32768 - ((a2 + l2 | 0) >>> 1) & 65535) >>> e2 & 65535; + j[c2 + (b2 * 6 | 0) >> 1] = (l2 + 32768 - a2 & 65535) >>> e2; + j[c2 + (b2 * 6 | 0) + 2 >> 1] = (a2 & 65535) >>> e2; + j[c2 + (b2 * 6 | 0) + 4 >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (d2 | 0)); + return; + } else { + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + d2 = m[n2 + (b2 * 6 | 0) >> 1] << f2; + a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << f2; + o2 = ((m[n2 + (b2 * 6 | 0) + 4 >> 1] << f2) + 32768 - ((a2 + d2 | 0) >>> 1) & 65535) >>> f2 & 65535; + j[c2 + (b2 << 1) >> 1] = (d2 + 32768 - a2 & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = (a2 & 65535) >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + l2 = e2 * 3 | 0; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + o2 = j[n2 + (b2 << 3) + 6 >> 1] | 0; + p2 = m[n2 + (b2 << 3) >> 1] << f2; + d2 = m[n2 + (b2 << 3) + 2 >> 1] << f2; + a2 = ((m[n2 + (b2 << 3) + 4 >> 1] << f2) + 32768 - ((d2 + p2 | 0) >>> 1) & 65535) >>> f2 & 65535; + j[c2 + (b2 << 1) >> 1] = (p2 + 32768 - d2 & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = (d2 & 65535) >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = a2; + j[c2 + (b2 + l2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + default: + return; + } + } + function dd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + cd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + cd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function ed(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + n2 = a2 + 4 | 0; + f2 = k[n2 >> 2] | 0; + a: + do + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + break a; + f2 = a2 + 40 | 0; + a2 = 0; + do { + l2 = k[f2 >> 2] | 0; + h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] << l2; + g2 = (m[b2 + (a2 * 6 | 0) >> 1] << l2) + 32768 + h2 & 65535; + h2 = h2 & 65535; + e2 = ((m[b2 + (a2 * 6 | 0) + 4 >> 1] << l2) + 32768 + ((g2 + h2 | 0) >>> 1) & 65535) >>> l2 & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = g2 >>> l2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2 >>> l2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (d2 | 0)); + } else { + g2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((g2 | 0) <= 0) + break a; + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = 0; + do { + o2 = k[f2 >> 2] | 0; + p2 = m[b2 + (a2 + e2 << 1) >> 1] << o2; + q2 = (m[b2 + (a2 << 1) >> 1] << o2) + 32768 + p2 & 65535; + p2 = p2 & 65535; + l2 = ((m[b2 + (a2 + h2 << 1) >> 1] << o2) + 32768 + ((q2 + p2 | 0) >>> 1) & 65535) >>> o2 & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = q2 >>> o2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = p2 >>> o2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = l2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (g2 | 0)); + } + break; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) == 1 ? (l2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (l2 | 0) > 0) : 0) { + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = e2 * 3 | 0; + g2 = 0; + do { + o2 = k[f2 >> 2] | 0; + q2 = m[b2 + (g2 + e2 << 1) >> 1] << o2; + s2 = (m[b2 + (g2 << 1) >> 1] << o2) + 32768 + q2 & 65535; + q2 = q2 & 65535; + p2 = ((m[b2 + (g2 + h2 << 1) >> 1] << o2) + 32768 + ((s2 + q2 | 0) >>> 1) & 65535) >>> o2; + r2 = j[b2 + (g2 + a2 << 1) >> 1] | 0; + q2 = ww(q2 >>> o2 & 65535 | 0, 0, 16) | 0; + p2 = M | p2; + r2 = ww(r2 & 65535 | 0, 0, 48) | 0; + r2 = s2 >>> o2 & 65535 | q2 | r2; + p2 = p2 & 65535 | M; + q2 = c2 + (g2 << 3) | 0; + o2 = q2; + j[o2 >> 1] = r2; + j[o2 + 2 >> 1] = r2 >>> 16; + q2 = q2 + 4 | 0; + j[q2 >> 1] = p2; + j[q2 + 2 >> 1] = p2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (l2 | 0)); + } + break; + } + default: { + } + } + while (0); + f2 = k[n2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + return; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + f2 = c2; + a2 = 0; + while (1) { + s2 = f2 + 4 | 0; + r2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[s2 >> 1] | 0; + j[s2 >> 1] = r2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + return; + } + function fd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36364; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function gd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36364; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function hd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 48 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 52 | 0; + ld(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + ld(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function id(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 48 >> 2] | 0; + if (!e2) { + e2 = a2 + 52 | 0; + jd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + kd(a2, e2, b2, c2, d2); + return; + } + } + function jd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0; + l2 = a2 + 4 | 0; + f2 = k[l2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + n2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[l2 >> 2] | 0; + h2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + n2 = k[g2 >> 2] | 0; + break; + } + b2 = k[g2 >> 2] | 0; + f2 = b2; + g2 = 0; + while (1) { + n2 = f2 + 4 | 0; + o2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[n2 >> 1] | 0; + j[n2 >> 1] = o2; + g2 = g2 + 1 | 0; + if ((g2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (h2 << 1) | 0; + } + n2 = b2; + f2 = k[l2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + return; + f2 = a2 + 32 | 0; + b2 = 0; + do { + e2 = k[f2 >> 2] | 0; + a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << e2; + o2 = (32768 - a2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << e2) & 65535) >>> e2 & 65535; + j[c2 + (b2 * 6 | 0) >> 1] = ((m[n2 + (b2 * 6 | 0) >> 1] << e2) + 32768 - a2 & 65535) >>> e2; + j[c2 + (b2 * 6 | 0) + 2 >> 1] = (a2 & 65535) >>> e2; + j[c2 + (b2 * 6 | 0) + 4 >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (d2 | 0)); + return; + } else { + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << f2; + o2 = (32768 - a2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << f2) & 65535) >>> f2 & 65535; + j[c2 + (b2 << 1) >> 1] = ((m[n2 + (b2 * 6 | 0) >> 1] << f2) + 32768 - a2 & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = (a2 & 65535) >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + h2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((h2 | 0) <= 0) + return; + l2 = e2 << 1; + g2 = e2 * 3 | 0; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + o2 = j[n2 + (b2 << 3) + 6 >> 1] | 0; + d2 = m[n2 + (b2 << 3) + 2 >> 1] << f2; + a2 = (32768 - d2 + (m[n2 + (b2 << 3) + 4 >> 1] << f2) & 65535) >>> f2 & 65535; + j[c2 + (b2 << 1) >> 1] = ((m[n2 + (b2 << 3) >> 1] << f2) + 32768 - d2 & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = (d2 & 65535) >>> f2; + j[c2 + (b2 + l2 << 1) >> 1] = a2; + j[c2 + (b2 + g2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (h2 | 0)); + return; + } + default: + return; + } + } + function kd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + jd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + jd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function ld(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + n2 = a2 + 4 | 0; + f2 = k[n2 >> 2] | 0; + a: + do + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + break a; + f2 = a2 + 40 | 0; + a2 = 0; + do { + l2 = k[f2 >> 2] | 0; + h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] << l2; + e2 = (h2 + 32768 + (m[b2 + (a2 * 6 | 0) + 4 >> 1] << l2) & 65535) >>> l2 & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = ((m[b2 + (a2 * 6 | 0) >> 1] << l2) + 32768 + h2 & 65535) >>> l2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = (h2 & 65535) >>> l2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (d2 | 0)); + } else { + g2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((g2 | 0) <= 0) + break a; + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = 0; + do { + o2 = k[f2 >> 2] | 0; + p2 = m[b2 + (a2 + e2 << 1) >> 1] << o2; + l2 = (p2 + 32768 + (m[b2 + (a2 + h2 << 1) >> 1] << o2) & 65535) >>> o2 & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = ((m[b2 + (a2 << 1) >> 1] << o2) + 32768 + p2 & 65535) >>> o2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = (p2 & 65535) >>> o2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = l2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (g2 | 0)); + } + break; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) == 1 ? (l2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (l2 | 0) > 0) : 0) { + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = e2 * 3 | 0; + g2 = 0; + do { + q2 = k[f2 >> 2] | 0; + s2 = m[b2 + (g2 + e2 << 1) >> 1] << q2; + p2 = ((m[b2 + (g2 << 1) >> 1] << q2) + 32768 + s2 & 65535) >>> q2; + o2 = (s2 + 32768 + (m[b2 + (g2 + h2 << 1) >> 1] << q2) & 65535) >>> q2; + r2 = j[b2 + (g2 + a2 << 1) >> 1] | 0; + q2 = ww((s2 & 65535) >>> q2 & 65535 | 0, 0, 16) | 0; + o2 = o2 | M; + r2 = ww(r2 & 65535 | 0, 0, 48) | 0; + r2 = q2 | p2 & 65535 | r2; + o2 = o2 & 65535 | M; + p2 = c2 + (g2 << 3) | 0; + q2 = p2; + j[q2 >> 1] = r2; + j[q2 + 2 >> 1] = r2 >>> 16; + p2 = p2 + 4 | 0; + j[p2 >> 1] = o2; + j[p2 + 2 >> 1] = o2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (l2 | 0)); + } + break; + } + default: { + } + } + while (0); + f2 = k[n2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + return; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + f2 = c2; + a2 = 0; + while (1) { + s2 = f2 + 4 | 0; + r2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[s2 >> 1] | 0; + j[s2 >> 1] = r2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + return; + } + function md(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + m2 = k[a2 >> 2] | 0; + if (!m2) { + a2 = 0; + r = n2; + return a2 | 0; + } + o2 = b2; + h2 = d2 - o2 | 0; + j2 = e2 + 12 | 0; + g2 = k[j2 >> 2] | 0; + h2 = (g2 | 0) > (h2 | 0) ? g2 - h2 | 0 : 0; + g2 = c2; + e2 = g2 - o2 | 0; + if ((e2 | 0) > 0 ? (Qb[k[(k[m2 >> 2] | 0) + 48 >> 2] & 63](m2, b2, e2) | 0) != (e2 | 0) : 0) { + k[a2 >> 2] = 0; + o2 = 0; + r = n2; + return o2 | 0; + } + do + if ((h2 | 0) > 0) { + Rm(l2, h2, f2); + x = 0; + e2 = va(k[(k[m2 >> 2] | 0) + 48 >> 2] | 0, m2 | 0, ((i2[l2 >> 0] & 1) == 0 ? l2 + 1 | 0 : k[l2 + 8 >> 2] | 0) | 0, h2 | 0) | 0; + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Sm(l2); + fb(o2 | 0); + } + if ((e2 | 0) == (h2 | 0)) { + Sm(l2); + break; + } + k[a2 >> 2] = 0; + Sm(l2); + o2 = 0; + r = n2; + return o2 | 0; + } + while (0); + d2 = d2 - g2 | 0; + if ((d2 | 0) > 0 ? (Qb[k[(k[m2 >> 2] | 0) + 48 >> 2] & 63](m2, c2, d2) | 0) != (d2 | 0) : 0) { + k[a2 >> 2] = 0; + o2 = 0; + r = n2; + return o2 | 0; + } + k[j2 >> 2] = 0; + o2 = m2; + r = n2; + return o2 | 0; + } + function nd(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36236; + Sm(a2 + 32 | 0); + xn(a2); + return; + } + function od(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36236; + Sm(a2 + 32 | 0); + xn(a2); + mj(a2); + return; + } + function pd(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + g2 = b2 + 44 | 0; + h2 = k[g2 >> 2] | 0; + l2 = b2 + 24 | 0; + m2 = k[l2 >> 2] | 0; + if (h2 >>> 0 < m2 >>> 0) { + k[g2 >> 2] = m2; + h2 = m2; + } + j2 = h2; + g2 = f2 & 24; + if (!g2) { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + if ((e2 | 0) == 1 & (g2 | 0) == 24) { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + a: + do + switch (e2 | 0) { + case 0: { + g2 = 0; + e2 = 0; + break; + } + case 1: + if (!(f2 & 8)) { + e2 = m2 - (k[b2 + 20 >> 2] | 0) | 0; + g2 = e2; + e2 = ((e2 | 0) < 0) << 31 >> 31; + break a; + } else { + e2 = (k[b2 + 12 >> 2] | 0) - (k[b2 + 8 >> 2] | 0) | 0; + g2 = e2; + e2 = ((e2 | 0) < 0) << 31 >> 31; + break a; + } + case 2: { + g2 = b2 + 32 | 0; + if (!(i2[g2 >> 0] & 1)) + g2 = g2 + 1 | 0; + else + g2 = k[b2 + 40 >> 2] | 0; + e2 = h2 - g2 | 0; + g2 = e2; + e2 = ((e2 | 0) < 0) << 31 >> 31; + break; + } + default: { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + } + while (0); + e2 = tw(g2 | 0, e2 | 0, c2 | 0, d2 | 0) | 0; + c2 = M; + if ((c2 | 0) >= 0) { + g2 = b2 + 32 | 0; + if (!(i2[g2 >> 0] & 1)) + g2 = g2 + 1 | 0; + else + g2 = k[b2 + 40 >> 2] | 0; + d2 = h2 - g2 | 0; + h2 = ((d2 | 0) < 0) << 31 >> 31; + if (!((h2 | 0) < (c2 | 0) | (h2 | 0) == (c2 | 0) & d2 >>> 0 < e2 >>> 0)) { + g2 = f2 & 8; + if (!((e2 | 0) == 0 & (c2 | 0) == 0)) { + if ((g2 | 0) != 0 ? (k[b2 + 12 >> 2] | 0) == 0 : 0) { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + if ((f2 & 16 | 0) != 0 & (m2 | 0) == 0) { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + } + if (g2) { + k[b2 + 12 >> 2] = (k[b2 + 8 >> 2] | 0) + e2; + k[b2 + 16 >> 2] = j2; + } + if (f2 & 16) + k[l2 >> 2] = (k[b2 + 20 >> 2] | 0) + e2; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = e2; + k[b2 + 4 >> 2] = c2; + return; + } + } + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function qd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + c2 = c2 + 8 | 0; + Sb[k[(k[b2 >> 2] | 0) + 16 >> 2] & 15](a2, b2, k[c2 >> 2] | 0, k[c2 + 4 >> 2] | 0, 0, d2); + return; + } + function rd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + b2 = a2 + 44 | 0; + c2 = k[b2 >> 2] | 0; + d2 = k[a2 + 24 >> 2] | 0; + if (c2 >>> 0 < d2 >>> 0) { + k[b2 >> 2] = d2; + c2 = d2; + } + if (!(k[a2 + 48 >> 2] & 8)) { + a2 = -1; + return a2 | 0; + } + e2 = a2 + 16 | 0; + b2 = k[e2 >> 2] | 0; + d2 = a2 + 12 | 0; + if (b2 >>> 0 < c2 >>> 0) { + d2 = k[d2 >> 2] | 0; + k[e2 >> 2] = c2; + b2 = c2; + } else + d2 = k[d2 >> 2] | 0; + if (d2 >>> 0 >= b2 >>> 0) { + a2 = -1; + return a2 | 0; + } + a2 = l[d2 >> 0] | 0; + return a2 | 0; + } + function sd(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + d2 = a2 + 44 | 0; + c2 = k[d2 >> 2] | 0; + e2 = k[a2 + 24 >> 2] | 0; + if (c2 >>> 0 < e2 >>> 0) { + k[d2 >> 2] = e2; + c2 = e2; + } + h2 = a2 + 8 | 0; + d2 = k[h2 >> 2] | 0; + j2 = a2 + 12 | 0; + f2 = k[j2 >> 2] | 0; + g2 = d2; + if (d2 >>> 0 >= f2 >>> 0) { + a2 = -1; + return a2 | 0; + } + if ((b2 | 0) == -1) { + k[h2 >> 2] = d2; + k[j2 >> 2] = f2 + -1; + k[a2 + 16 >> 2] = c2; + a2 = 0; + return a2 | 0; + } + if (!(k[a2 + 48 >> 2] & 16)) { + e2 = b2 & 255; + d2 = f2 + -1 | 0; + if (e2 << 24 >> 24 != (i2[d2 >> 0] | 0)) { + a2 = -1; + return a2 | 0; + } + } else { + e2 = b2 & 255; + d2 = f2 + -1 | 0; + } + k[h2 >> 2] = g2; + k[j2 >> 2] = d2; + k[a2 + 16 >> 2] = c2; + i2[d2 >> 0] = e2; + a2 = b2; + return a2 | 0; + } + function td(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0; + s2 = r; + r = r + 16 | 0; + m2 = s2; + if ((b2 | 0) == -1) { + a2 = 0; + r = s2; + return a2 | 0; + } + n2 = a2 + 12 | 0; + o2 = a2 + 8 | 0; + p2 = (k[n2 >> 2] | 0) - (k[o2 >> 2] | 0) | 0; + q2 = a2 + 24 | 0; + c2 = k[q2 >> 2] | 0; + l2 = a2 + 28 | 0; + d2 = k[l2 >> 2] | 0; + do + if ((c2 | 0) == (d2 | 0)) { + h2 = a2 + 48 | 0; + if (!(k[h2 >> 2] & 16)) { + a2 = -1; + r = s2; + return a2 | 0; + } + j2 = a2 + 20 | 0; + g2 = k[j2 >> 2] | 0; + e2 = c2 - g2 | 0; + f2 = a2 + 44 | 0; + g2 = (k[f2 >> 2] | 0) - g2 | 0; + d2 = a2 + 32 | 0; + x = 0; + ra(67, d2 | 0, 0); + c2 = x; + x = 0; + if (!(c2 & 1)) { + if (!(i2[d2 >> 0] & 1)) + c2 = 10; + else + c2 = (k[d2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, d2 | 0, c2 | 0, 0); + c2 = x; + x = 0; + if (!(c2 & 1)) { + c2 = i2[d2 >> 0] | 0; + if (!(c2 & 1)) { + d2 = d2 + 1 | 0; + c2 = (c2 & 255) >>> 1; + } else { + d2 = k[a2 + 40 >> 2] | 0; + c2 = k[a2 + 36 >> 2] | 0; + } + t2 = d2 + c2 | 0; + k[j2 >> 2] = d2; + k[l2 >> 2] = t2; + j2 = d2 + e2 | 0; + k[q2 >> 2] = j2; + c2 = d2 + g2 | 0; + k[f2 >> 2] = c2; + d2 = t2; + break; + } + } + t2 = Wa(0) | 0; + cb(t2 | 0) | 0; + eb(); + t2 = -1; + r = s2; + return t2 | 0; + } else { + t2 = a2 + 44 | 0; + h2 = a2 + 48 | 0; + f2 = t2; + j2 = c2; + c2 = k[t2 >> 2] | 0; + } + while (0); + g2 = j2 + 1 | 0; + k[m2 >> 2] = g2; + e2 = k[(g2 >>> 0 < c2 >>> 0 ? f2 : m2) >> 2] | 0; + k[f2 >> 2] = e2; + if (k[h2 >> 2] & 8) { + c2 = a2 + 32 | 0; + if (!(i2[c2 >> 0] & 1)) + c2 = c2 + 1 | 0; + else + c2 = k[a2 + 40 >> 2] | 0; + k[o2 >> 2] = c2; + k[n2 >> 2] = c2 + p2; + k[a2 + 16 >> 2] = e2; + } + if ((j2 | 0) == (d2 | 0)) { + t2 = Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, b2 & 255) | 0; + r = s2; + return t2 | 0; + } else { + k[q2 >> 2] = g2; + i2[j2 >> 0] = b2; + t2 = b2 & 255; + r = s2; + return t2 | 0; + } + return 0; + } + function ud(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36200; + b2 = a2 + 56 | 0; + k[b2 >> 2] = 36220; + c2 = a2 + 4 | 0; + k[c2 >> 2] = 36236; + Sm(a2 + 36 | 0); + xn(c2); + qn(b2); + return; + } + function vd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36200; + b2 = a2 + 56 | 0; + k[b2 >> 2] = 36220; + c2 = a2 + 4 | 0; + k[c2 >> 2] = 36236; + Sm(a2 + 36 | 0); + xn(c2); + qn(b2); + mj(a2); + return; + } + function wd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + b2 = a2 + e2 | 0; + k[b2 >> 2] = 36200; + c2 = a2 + (e2 + 56) | 0; + k[c2 >> 2] = 36220; + d2 = a2 + (e2 + 4) | 0; + k[d2 >> 2] = 36236; + Sm(a2 + (e2 + 36) | 0); + xn(d2); + qn(c2); + mj(b2); + return; + } + function xd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36388; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function yd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36388; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function zd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 40 | 0; + Dd(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Dd(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Ad(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Bd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Cd(a2, e2, b2, c2, d2); + return; + } + } + function Bd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + l2 = b2; + else { + a2 = a2 + 8 | 0; + vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[h2 >> 2] | 0; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + l2 = k[a2 >> 2] | 0; + break; + } + a2 = k[a2 >> 2] | 0; + f2 = a2; + b2 = 0; + while (1) { + l2 = f2 + 4 | 0; + n2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[l2 >> 1] | 0; + j[l2 >> 1] = n2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + l2 = a2; + f2 = k[h2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + h2 = m[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; + e2 = 32768 - h2 + (m[l2 + (f2 * 6 | 0) + 4 >> 1] | 0) | 0; + n2 = (m[l2 + (f2 * 6 | 0) >> 1] | 0) - h2 + 32768 | 0; + j[c2 + (f2 * 6 | 0) >> 1] = h2 + 49152 + (((e2 & 65535) + (n2 & 65535) | 0) >>> 2); + j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (f2 * 6 | 0) + 4 >> 1] = n2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + h2 = m[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; + d2 = 32768 - h2 + (m[l2 + (b2 * 6 | 0) + 4 >> 1] | 0) | 0; + n2 = (m[l2 + (b2 * 6 | 0) >> 1] | 0) - h2 + 32768 | 0; + j[c2 + (b2 << 1) >> 1] = h2 + 49152 + (((d2 & 65535) + (n2 & 65535) | 0) >>> 2); + j[c2 + (b2 + e2 << 1) >> 1] = d2; + j[c2 + (b2 + a2 << 1) >> 1] = n2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; + o2 = m[l2 + (g2 << 3) + 2 >> 1] | 0; + h2 = 32768 - o2 + (m[l2 + (g2 << 3) + 4 >> 1] | 0) | 0; + d2 = (m[l2 + (g2 << 3) >> 1] | 0) - o2 + 32768 | 0; + j[c2 + (g2 << 1) >> 1] = o2 + 49152 + (((h2 & 65535) + (d2 & 65535) | 0) >>> 2); + j[c2 + (g2 + e2 << 1) >> 1] = h2; + j[c2 + (g2 + a2 << 1) >> 1] = d2; + j[c2 + (g2 + b2 << 1) >> 1] = n2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function Cd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Bd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Bd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Dd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + l2 = a2 + 4 | 0; + a2 = k[l2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; + g2 = m[b2 + (a2 * 6 | 0) + 4 >> 1] | 0; + e2 = (m[b2 + (a2 * 6 | 0) >> 1] | 0) - ((g2 + h2 | 0) >>> 2) + 16384 | 0; + j[c2 + (a2 * 6 | 0) >> 1] = g2 + 32768 + e2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = h2 + 32768 + e2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = m[b2 + (g2 + e2 << 1) >> 1] | 0; + o2 = m[b2 + (g2 + f2 << 1) >> 1] | 0; + h2 = (m[b2 + (g2 << 1) >> 1] | 0) - ((o2 + n2 | 0) >>> 2) + 16384 | 0; + j[c2 + (g2 * 6 | 0) >> 1] = o2 + 32768 + h2; + j[c2 + (g2 * 6 | 0) + 2 >> 1] = h2; + j[c2 + (g2 * 6 | 0) + 4 >> 1] = n2 + 32768 + h2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = m[b2 + (g2 + e2 << 1) >> 1] | 0; + p2 = m[b2 + (g2 + a2 << 1) >> 1] | 0; + o2 = (m[b2 + (g2 << 1) >> 1] | 0) - ((p2 + n2 | 0) >>> 2) + 16384 | 0; + q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + r2 = ww(o2 & 65535 | 0, 0, 16) | 0; + n2 = n2 + 32768 + o2 | M; + q2 = ww(q2 & 65535 | 0, 0, 48) | 0; + q2 = r2 | p2 + 32768 + o2 & 65535 | q2; + n2 = n2 & 65535 | M; + o2 = c2 + (g2 << 3) | 0; + p2 = o2; + j[p2 >> 1] = q2; + j[p2 + 2 >> 1] = q2 >>> 16; + o2 = o2 + 4 | 0; + j[o2 >> 1] = n2; + j[o2 + 2 >> 1] = n2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[l2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + a2 = c2; + f2 = 0; + while (1) { + r2 = a2 + 4 | 0; + q2 = j[a2 >> 1] | 0; + j[a2 >> 1] = j[r2 >> 1] | 0; + j[r2 >> 1] = q2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + (g2 << 1) | 0; + } + return; + } + function Ed(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36412; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function Fd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36412; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function Gd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 40 | 0; + Kd(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Kd(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Hd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Id(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Jd(a2, e2, b2, c2, d2); + return; + } + } + function Id(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + l2 = b2; + else { + a2 = a2 + 8 | 0; + vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[h2 >> 2] | 0; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + l2 = k[a2 >> 2] | 0; + break; + } + a2 = k[a2 >> 2] | 0; + f2 = a2; + b2 = 0; + while (1) { + l2 = f2 + 4 | 0; + n2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[l2 >> 1] | 0; + j[l2 >> 1] = n2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + l2 = a2; + f2 = k[h2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + g2 = m[l2 + (f2 * 6 | 0) >> 1] | 0; + e2 = j[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; + h2 = e2 & 65535; + n2 = (m[l2 + (f2 * 6 | 0) + 4 >> 1] | 0) + 32768 - ((h2 + g2 | 0) >>> 1) & 65535; + j[c2 + (f2 * 6 | 0) >> 1] = g2 + 32768 - h2; + j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (f2 * 6 | 0) + 4 >> 1] = n2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + d2 = j[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; + g2 = m[l2 + (b2 * 6 | 0) >> 1] | 0; + h2 = d2 & 65535; + n2 = (m[l2 + (b2 * 6 | 0) + 4 >> 1] | 0) + 32768 - ((h2 + g2 | 0) >>> 1) & 65535; + j[c2 + (b2 << 1) >> 1] = g2 + 32768 - h2; + j[c2 + (b2 + e2 << 1) >> 1] = d2; + j[c2 + (b2 + a2 << 1) >> 1] = n2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + h2 = j[l2 + (g2 << 3) + 2 >> 1] | 0; + n2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; + p2 = m[l2 + (g2 << 3) >> 1] | 0; + o2 = h2 & 65535; + d2 = (m[l2 + (g2 << 3) + 4 >> 1] | 0) + 32768 - ((o2 + p2 | 0) >>> 1) & 65535; + j[c2 + (g2 << 1) >> 1] = p2 + 32768 - o2; + j[c2 + (g2 + e2 << 1) >> 1] = h2; + j[c2 + (g2 + a2 << 1) >> 1] = d2; + j[c2 + (g2 + b2 << 1) >> 1] = n2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function Jd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Id(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Id(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Kd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + l2 = a2 + 4 | 0; + a2 = k[l2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + h2 = j[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; + e2 = h2 & 65535; + g2 = (m[b2 + (a2 * 6 | 0) >> 1] | 0) + 32768 + e2 | 0; + e2 = (m[b2 + (a2 * 6 | 0) + 4 >> 1] | 0) + 32768 + (((g2 & 65535) + e2 | 0) >>> 1) & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = g2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + h2 = n2 & 65535; + o2 = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + h2 | 0; + h2 = (m[b2 + (g2 + f2 << 1) >> 1] | 0) + 32768 + (((o2 & 65535) + h2 | 0) >>> 1) & 65535; + j[c2 + (g2 * 6 | 0) >> 1] = o2; + j[c2 + (g2 * 6 | 0) + 2 >> 1] = n2; + j[c2 + (g2 * 6 | 0) + 4 >> 1] = h2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + o2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + n2 = o2 & 65535; + p2 = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + n2 & 65535; + n2 = (m[b2 + (g2 + a2 << 1) >> 1] | 0) + 32768 + ((p2 + n2 | 0) >>> 1) | 0; + q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + o2 = ww(o2 & 65535 | 0, 0, 16) | 0; + n2 = M | n2; + q2 = ww(q2 & 65535 | 0, 0, 48) | 0; + q2 = p2 | o2 | q2; + n2 = n2 & 65535 | M; + o2 = c2 + (g2 << 3) | 0; + p2 = o2; + j[p2 >> 1] = q2; + j[p2 + 2 >> 1] = q2 >>> 16; + o2 = o2 + 4 | 0; + j[o2 >> 1] = n2; + j[o2 + 2 >> 1] = n2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[l2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + a2 = c2; + f2 = 0; + while (1) { + q2 = a2 + 4 | 0; + p2 = j[a2 >> 1] | 0; + j[a2 >> 1] = j[q2 >> 1] | 0; + j[q2 >> 1] = p2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + (g2 << 1) | 0; + } + return; + } + function Ld(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36436; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function Md(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36436; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function Nd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 40 | 0; + Rd(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Rd(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Od(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Pd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Qd(a2, e2, b2, c2, d2); + return; + } + } + function Pd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + l2 = b2; + else { + a2 = a2 + 8 | 0; + vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[h2 >> 2] | 0; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + l2 = k[a2 >> 2] | 0; + break; + } + a2 = k[a2 >> 2] | 0; + f2 = a2; + b2 = 0; + while (1) { + l2 = f2 + 4 | 0; + n2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[l2 >> 1] | 0; + j[l2 >> 1] = n2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + l2 = a2; + f2 = k[h2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + e2 = j[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; + h2 = e2 & 65535; + n2 = 32768 - h2 + (m[l2 + (f2 * 6 | 0) + 4 >> 1] | 0) & 65535; + j[c2 + (f2 * 6 | 0) >> 1] = (m[l2 + (f2 * 6 | 0) >> 1] | 0) + 32768 - h2; + j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (f2 * 6 | 0) + 4 >> 1] = n2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + d2 = j[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; + h2 = d2 & 65535; + n2 = 32768 - h2 + (m[l2 + (b2 * 6 | 0) + 4 >> 1] | 0) & 65535; + j[c2 + (b2 << 1) >> 1] = (m[l2 + (b2 * 6 | 0) >> 1] | 0) + 32768 - h2; + j[c2 + (b2 + e2 << 1) >> 1] = d2; + j[c2 + (b2 + a2 << 1) >> 1] = n2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + h2 = j[l2 + (g2 << 3) + 2 >> 1] | 0; + n2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; + o2 = h2 & 65535; + d2 = 32768 - o2 + (m[l2 + (g2 << 3) + 4 >> 1] | 0) & 65535; + j[c2 + (g2 << 1) >> 1] = (m[l2 + (g2 << 3) >> 1] | 0) + 32768 - o2; + j[c2 + (g2 + e2 << 1) >> 1] = h2; + j[c2 + (g2 + a2 << 1) >> 1] = d2; + j[c2 + (g2 + b2 << 1) >> 1] = n2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function Qd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Pd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Pd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Rd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + l2 = a2 + 4 | 0; + a2 = k[l2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + h2 = j[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; + g2 = h2 & 65535; + e2 = g2 + 32768 + (m[b2 + (a2 * 6 | 0) + 4 >> 1] | 0) & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = (m[b2 + (a2 * 6 | 0) >> 1] | 0) + 32768 + g2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + o2 = n2 & 65535; + h2 = o2 + 32768 + (m[b2 + (g2 + f2 << 1) >> 1] | 0) & 65535; + j[c2 + (g2 * 6 | 0) >> 1] = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + o2; + j[c2 + (g2 * 6 | 0) + 2 >> 1] = n2; + j[c2 + (g2 * 6 | 0) + 4 >> 1] = h2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + o2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + n2 = o2 & 65535; + p2 = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + n2 | 0; + n2 = n2 + 32768 + (m[b2 + (g2 + a2 << 1) >> 1] | 0) | 0; + q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + o2 = ww(o2 & 65535 | 0, 0, 16) | 0; + n2 = M | n2; + q2 = ww(q2 & 65535 | 0, 0, 48) | 0; + q2 = p2 & 65535 | o2 | q2; + n2 = n2 & 65535 | M; + o2 = c2 + (g2 << 3) | 0; + p2 = o2; + j[p2 >> 1] = q2; + j[p2 + 2 >> 1] = q2 >>> 16; + o2 = o2 + 4 | 0; + j[o2 >> 1] = n2; + j[o2 + 2 >> 1] = n2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[l2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + a2 = c2; + f2 = 0; + while (1) { + q2 = a2 + 4 | 0; + p2 = j[a2 >> 1] | 0; + j[a2 >> 1] = j[q2 >> 1] | 0; + j[q2 >> 1] = p2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + (g2 << 1) | 0; + } + return; + } + function Sd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36460; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function Td(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36460; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function Ud(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 40 | 0; + Yd(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Yd(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Vd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Wd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Xd(a2, e2, b2, c2, d2); + return; + } + } + function Wd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + l2 = b2; + else { + a2 = a2 + 8 | 0; + vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[h2 >> 2] | 0; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + l2 = k[a2 >> 2] | 0; + break; + } + a2 = k[a2 >> 2] | 0; + f2 = a2; + b2 = 0; + while (1) { + l2 = f2 + 4 | 0; + m2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[l2 >> 1] | 0; + j[l2 >> 1] = m2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + l2 = a2; + f2 = k[h2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + e2 = j[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; + m2 = j[l2 + (f2 * 6 | 0) + 4 >> 1] | 0; + j[c2 + (f2 * 6 | 0) >> 1] = j[l2 + (f2 * 6 | 0) >> 1] | 0; + j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (f2 * 6 | 0) + 4 >> 1] = m2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + d2 = j[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; + m2 = j[l2 + (b2 * 6 | 0) + 4 >> 1] | 0; + j[c2 + (b2 << 1) >> 1] = j[l2 + (b2 * 6 | 0) >> 1] | 0; + j[c2 + (b2 + e2 << 1) >> 1] = d2; + j[c2 + (b2 + a2 << 1) >> 1] = m2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + h2 = j[l2 + (g2 << 3) + 2 >> 1] | 0; + d2 = j[l2 + (g2 << 3) + 4 >> 1] | 0; + m2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; + j[c2 + (g2 << 1) >> 1] = j[l2 + (g2 << 3) >> 1] | 0; + j[c2 + (g2 + e2 << 1) >> 1] = h2; + j[c2 + (g2 + a2 << 1) >> 1] = d2; + j[c2 + (g2 + b2 << 1) >> 1] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function Xd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Wd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Wd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Yd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + l2 = a2 + 4 | 0; + a2 = k[l2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + h2 = j[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; + e2 = j[b2 + (a2 * 6 | 0) + 4 >> 1] | 0; + j[c2 + (a2 * 6 | 0) >> 1] = j[b2 + (a2 * 6 | 0) >> 1] | 0; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + h2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + j[c2 + (g2 * 6 | 0) >> 1] = j[b2 + (g2 << 1) >> 1] | 0; + j[c2 + (g2 * 6 | 0) + 2 >> 1] = n2; + j[c2 + (g2 * 6 | 0) + 4 >> 1] = h2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = j[b2 + (g2 << 1) >> 1] | 0; + q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + o2 = m[b2 + (g2 + a2 << 1) >> 1] | 0; + p2 = ww(m[b2 + (g2 + e2 << 1) >> 1] | 0, 0, 16) | 0; + o2 = M | o2; + q2 = ww(q2 & 65535 | 0, 0, 48) | 0; + q2 = p2 | n2 & 65535 | q2; + o2 = o2 & 65535 | M; + n2 = c2 + (g2 << 3) | 0; + p2 = n2; + j[p2 >> 1] = q2; + j[p2 + 2 >> 1] = q2 >>> 16; + n2 = n2 + 4 | 0; + j[n2 >> 1] = o2; + j[n2 + 2 >> 1] = o2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[l2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + a2 = c2; + f2 = 0; + while (1) { + q2 = a2 + 4 | 0; + p2 = j[a2 >> 1] | 0; + j[a2 >> 1] = j[q2 >> 1] | 0; + j[q2 >> 1] = p2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + (g2 << 1) | 0; + } + return; + } + function Zd(a2) { + a2 = a2 | 0; + return; + } + function _d(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function $d(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + c2 = ia(k[a2 + 8 >> 2] | 0, c2) | 0; + a2 = k[a2 + 4 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, b2, c2) | 0) == (c2 | 0)) + return; + d2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, d2 | 0, 3, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(d2 | 0); + fb(a2 | 0); + } else + ub(d2 | 0, 824, 96); + } + function ae(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 16 | 0; + l2 = m2; + j2 = a2 + 8 | 0; + e2 = k[j2 >> 2] | 0; + d2 = ia(e2, c2) | 0; + do + if (d2) { + g2 = a2 + 4 | 0; + f2 = d2; + while (1) { + e2 = k[g2 >> 2] | 0; + e2 = Qb[k[(k[e2 >> 2] | 0) + 32 >> 2] & 63](e2, b2, f2) | 0; + if (!e2) + break; + d2 = f2 - e2 | 0; + if ((f2 | 0) == (e2 | 0)) { + h2 = 11; + break; + } else + f2 = d2; + } + if ((h2 | 0) == 11) { + e2 = k[j2 >> 2] | 0; + f2 = d2; + break; + } + d2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, d2 | 0, 3, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(d2 | 0); + fb(a2 | 0); + } else + ub(d2 | 0, 824, 96); + } else + f2 = 0; + while (0); + if ((e2 | 0) == 2) { + Yc(b2, c2 << 1); + e2 = k[j2 >> 2] | 0; + } + d2 = k[a2 + 12 >> 2] | 0; + if ((d2 | 0) <= (ia(e2, c2) | 0)) { + r = m2; + return; + } + a2 = k[a2 + 4 >> 2] | 0; + Sb[k[(k[a2 >> 2] | 0) + 16 >> 2] & 15](l2, a2, d2 - f2 | 0, 0, 1, 24); + r = m2; + return; + } + function be(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function ce(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + d2 = a2 + 4 | 0; + vw(k[d2 >> 2] | 0, b2 | 0, ia(k[a2 + 8 >> 2] | 0, c2) | 0) | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) + (k[a2 + 12 >> 2] | 0); + return; + } + function de(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + d2 = a2 + 4 | 0; + vw(b2 | 0, k[d2 >> 2] | 0, ia(k[a2 + 8 >> 2] | 0, c2) | 0) | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) + (k[a2 + 12 >> 2] | 0); + return; + } + function ee(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + k[a2 + 112 >> 2] = 0; + k[a2 + 108 >> 2] = 0; + l2 = k[b2 >> 2] | 0; + e2 = l2; + do + if (l2) { + g2 = a2 + 92 | 0; + l2 = a2 + 96 | 0; + h2 = k[l2 >> 2] | 0; + j2 = k[g2 >> 2] | 0; + c2 = j2; + d2 = h2 - c2 | 0; + if (d2 >>> 0 >= 4e4) + if (d2 >>> 0 > 4e4 ? (f2 = j2 + 4e4 | 0, (h2 | 0) != (f2 | 0)) : 0) { + k[l2 >> 2] = f2; + f2 = c2; + } else + f2 = c2; + else { + fe(g2, 4e4 - d2 | 0); + f2 = k[g2 >> 2] | 0; + e2 = k[b2 >> 2] | 0; + } + c2 = a2 + 116 | 0; + k[c2 >> 2] = f2; + h2 = a2 + 124 | 0; + k[h2 >> 2] = f2; + j2 = a2 + 104 | 0; + k[j2 >> 2] = e2; + d2 = e2; + if (e2) { + if ((k[d2 + 12 >> 2] | 0) == (k[d2 + 16 >> 2] | 0)) { + b2 = (Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](d2) | 0) == -1; + d2 = k[h2 >> 2] | 0; + if (b2) + break; + e2 = k[c2 >> 2] | 0; + } else { + d2 = f2; + e2 = f2; + } + g2 = d2 - e2 | 0; + if (g2 >>> 0 <= 64) { + f2 = a2 + 92 | 0; + if ((d2 | 0) == (e2 | 0)) + d2 = e2; + else { + d2 = e2; + e2 = 0; + do { + i2[(k[f2 >> 2] | 0) + e2 >> 0] = i2[d2 + e2 >> 0] | 0; + e2 = e2 + 1 | 0; + d2 = k[c2 >> 2] | 0; + } while (e2 >>> 0 < g2 >>> 0); + e2 = k[h2 >> 2] | 0; + } + f2 = k[f2 >> 2] | 0; + b2 = f2; + m2 = b2 - d2 | 0; + k[c2 >> 2] = f2; + d2 = e2 + m2 | 0; + k[h2 >> 2] = d2; + f2 = a2 + 120 | 0; + k[f2 >> 2] = (k[f2 >> 2] | 0) + m2; + j2 = k[j2 >> 2] | 0; + d2 = Qb[k[(k[j2 >> 2] | 0) + 32 >> 2] & 63](j2, d2, (k[l2 >> 2] | 0) - (b2 + g2) | 0) | 0; + d2 = (k[h2 >> 2] | 0) + d2 | 0; + k[h2 >> 2] = d2; + } + } else + d2 = f2; + } else { + k[a2 + 104 >> 2] = 0; + d2 = k[b2 + 4 >> 2] | 0; + c2 = a2 + 116 | 0; + k[c2 >> 2] = d2; + d2 = d2 + (k[b2 + 8 >> 2] | 0) | 0; + k[a2 + 124 >> 2] = d2; + } + while (0); + c2 = k[c2 >> 2] | 0; + if (c2 >>> 0 >= d2 >>> 0) { + l2 = c2; + m2 = a2 + 120 | 0; + k[m2 >> 2] = l2; + qe(a2); + return; + } + while (1) { + if ((i2[c2 >> 0] | 0) == -1) { + d2 = 20; + break; + } + c2 = c2 + 1 | 0; + if (c2 >>> 0 >= d2 >>> 0) { + d2 = 20; + break; + } + } + if ((d2 | 0) == 20) { + m2 = a2 + 120 | 0; + k[m2 >> 2] = c2; + qe(a2); + return; + } + } + function fe(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = a2 + 8 | 0; + e2 = k[j2 >> 2] | 0; + l2 = a2 + 4 | 0; + c2 = k[l2 >> 2] | 0; + d2 = c2; + if ((e2 - d2 | 0) >>> 0 >= b2 >>> 0) { + do { + i2[c2 >> 0] = 0; + c2 = (k[l2 >> 2] | 0) + 1 | 0; + k[l2 >> 2] = c2; + b2 = b2 + -1 | 0; + } while ((b2 | 0) != 0); + return; + } + c2 = k[a2 >> 2] | 0; + f2 = d2 - c2 + b2 | 0; + if ((f2 | 0) < 0) { + jj(a2); + e2 = k[j2 >> 2] | 0; + c2 = k[a2 >> 2] | 0; + } + d2 = e2 - c2 | 0; + if (d2 >>> 0 < 1073741823) { + d2 = d2 << 1; + d2 = d2 >>> 0 < f2 >>> 0 ? f2 : d2; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + if (!d2) { + e2 = 0; + g2 = 0; + f2 = c2; + } else + h2 = 8; + } else { + d2 = 2147483647; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + h2 = 8; + } + if ((h2 | 0) == 8) { + e2 = d2; + g2 = lj(d2) | 0; + f2 = c2; + } + c2 = g2 + f2 | 0; + e2 = g2 + e2 | 0; + d2 = c2; + do { + i2[d2 >> 0] = 0; + d2 = c2 + 1 | 0; + c2 = d2; + b2 = b2 + -1 | 0; + } while ((b2 | 0) != 0); + b2 = k[a2 >> 2] | 0; + d2 = (k[l2 >> 2] | 0) - b2 | 0; + h2 = g2 + (f2 - d2) | 0; + vw(h2 | 0, b2 | 0, d2 | 0) | 0; + k[a2 >> 2] = h2; + k[l2 >> 2] = c2; + k[j2 >> 2] = e2; + if (!b2) + return; + mj(b2); + return; + } + function ge(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + u2 = r; + r = r + 32 | 0; + w2 = u2 + 12 | 0; + t2 = u2; + p2 = a2 + 180 | 0; + q2 = (k[p2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + s2 = k[a2 + 24 >> 2] | 0; + else + s2 = 1; + b2 = ia(s2 << 1, q2) | 0; + k[w2 >> 2] = 0; + y2 = w2 + 4 | 0; + k[y2 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, w2 | 0), v2 = x, x = 0, v2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + k[w2 >> 2] = d2; + v2 = d2 + (b2 << 1) | 0; + k[w2 + 8 >> 2] = v2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[y2 >> 2] = v2; + break; + } + d2 = Wa() | 0; + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[t2 >> 2] = 0; + v2 = t2 + 4 | 0; + k[v2 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + do + if (!s2) + g2 = 18; + else { + if (!(s2 >>> 0 > 1073741823 ? (x = 0, qa(178, t2 | 0), o2 = x, x = 0, o2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = s2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + k[t2 >> 2] = f2; + g2 = f2 + (s2 << 2) | 0; + k[t2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[v2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 12 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4604 | 0; + h2 = (ia(s2, q2) | 0) + 1 | 0; + i3 = a2 + 4608 | 0; + l2 = a2 + 92 | 0; + m2 = (s2 | 0) > 0; + n2 = a2 + 4600 | 0; + o2 = 0; + b: + while (1) { + c2 = k[w2 >> 2] | 0; + b2 = c2 + 2 | 0; + k[g2 >> 2] = b2; + c2 = c2 + (h2 << 1) | 0; + k[i3 >> 2] = c2; + if (!(o2 & 1)) + b2 = c2; + else { + k[g2 >> 2] = c2; + k[i3 >> 2] = b2; + } + e2 = k[l2 >> 2] | 0; + x = 0; + Ja(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 28; + break; + } + if (m2) { + b2 = k[g2 >> 2] | 0; + c2 = k[i3 >> 2] | 0; + d2 = k[t2 >> 2] | 0; + e2 = 0; + do { + k[n2 >> 2] = k[d2 + (e2 << 2) >> 2]; + d2 = k[p2 >> 2] | 0; + j[b2 + (d2 << 1) >> 1] = j[b2 + (d2 + -1 << 1) >> 1] | 0; + j[c2 + -2 >> 1] = j[b2 >> 1] | 0; + x = 0; + ra(68, a2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 27; + break b; + } + d2 = k[t2 >> 2] | 0; + k[d2 + (e2 << 2) >> 2] = k[n2 >> 2]; + b2 = (k[g2 >> 2] | 0) + (q2 << 1) | 0; + k[g2 >> 2] = b2; + c2 = (k[i3 >> 2] | 0) + (q2 << 1) | 0; + k[i3 >> 2] = c2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (s2 | 0)); + } + o2 = o2 + 1 | 0; + if ((o2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 40; + break a; + } + } + if ((g2 | 0) == 27) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 28) { + d2 = Wa() | 0; + break; + } + } else + g2 = 40; + while (0); + do + if ((g2 | 0) == 40) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[v2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[v2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[w2 >> 2] | 0; + if (!b2) { + r = u2; + return; + } + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = u2; + return; + } + while (0); + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function he(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4604 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 180 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4608 | 0; + r2 = a2 + 4612 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (me(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = le(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function ie(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + e2 = a2 + 104 | 0; + if ((k[e2 >> 2] | 0) >>> 0 < 4) + je(a2); + f2 = a2 + 100 | 0; + g2 = a2 + 112 | 0; + h2 = a2 + 96 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 116 | 0; + b2 = k[f2 >> 2] | 0; + d2 = 0; + do { + c2 = i2[g2 >> 0] | 0; + if ((b2 | 0) > 31) + break; + b2 = k[h2 >> 2] | 0; + if (!(c2 << 24 >> 24)) { + i2[k[j2 >> 2] >> 0] = b2 >>> 24; + k[h2 >> 2] = k[h2 >> 2] << 8; + b2 = (k[f2 >> 2] | 0) + 8 | 0; + } else { + i2[k[j2 >> 2] >> 0] = b2 >>> 25; + k[h2 >> 2] = k[h2 >> 2] << 7; + b2 = (k[f2 >> 2] | 0) + 7 | 0; + } + k[f2 >> 2] = b2; + m2 = k[j2 >> 2] | 0; + c2 = (i2[m2 >> 0] | 0) == -1 & 1; + i2[g2 >> 0] = c2; + k[j2 >> 2] = m2 + 1; + k[e2 >> 2] = (k[e2 >> 2] | 0) + -1; + k[l2 >> 2] = (k[l2 >> 2] | 0) + 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < 4); + if (!(c2 << 24 >> 24)) + ke(a2, 0, (b2 | 0) % 8 | 0); + else + ke(a2, 0, (b2 + -1 | 0) % 8 | 0); + if ((k[e2 >> 2] | 0) >>> 0 < 4) + je(a2); + b2 = k[f2 >> 2] | 0; + c2 = 0; + do { + if ((b2 | 0) > 31) + break; + b2 = k[h2 >> 2] | 0; + if (!(i2[g2 >> 0] | 0)) { + i2[k[j2 >> 2] >> 0] = b2 >>> 24; + k[h2 >> 2] = k[h2 >> 2] << 8; + b2 = (k[f2 >> 2] | 0) + 8 | 0; + } else { + i2[k[j2 >> 2] >> 0] = b2 >>> 25; + k[h2 >> 2] = k[h2 >> 2] << 7; + b2 = (k[f2 >> 2] | 0) + 7 | 0; + } + k[f2 >> 2] = b2; + m2 = k[j2 >> 2] | 0; + i2[g2 >> 0] = (i2[m2 >> 0] | 0) == -1 & 1; + k[j2 >> 2] = m2 + 1; + k[e2 >> 2] = (k[e2 >> 2] | 0) + -1; + k[l2 >> 2] = (k[l2 >> 2] | 0) + 1; + c2 = c2 + 1 | 0; + } while ((c2 | 0) < 4); + if (!(k[a2 + 132 >> 2] | 0)) + return; + je(a2); + return; + } + function je(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0; + b2 = k[a2 + 132 >> 2] | 0; + if (!b2) { + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 4, 35648); + a2 = x; + x = 0; + if (!(a2 & 1)) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + c2 = a2 + 108 | 0; + d2 = a2 + 120 | 0; + f2 = k[d2 >> 2] | 0; + e2 = (k[c2 >> 2] | 0) - f2 | 0; + if ((Qb[k[(k[b2 >> 2] | 0) + 48 >> 2] & 63](b2, f2, e2) | 0) == (e2 | 0)) { + f2 = k[d2 >> 2] | 0; + k[c2 >> 2] = f2; + k[a2 + 104 >> 2] = (k[a2 + 124 >> 2] | 0) - f2; + return; + } + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 4, 35648); + f2 = x; + x = 0; + if (!(f2 & 1)) + ub(b2 | 0, 824, 96); + f2 = Wa() | 0; + Ua(b2 | 0); + fb(f2 | 0); + } + function ke(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + l2 = a2 + 100 | 0; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + k[l2 >> 2] = c2; + if ((c2 | 0) > -1) { + m2 = a2 + 96 | 0; + k[m2 >> 2] = k[m2 >> 2] | b2 << c2; + return; + } + m2 = a2 + 96 | 0; + k[m2 >> 2] = k[m2 >> 2] | b2 >> 0 - c2; + j2 = a2 + 104 | 0; + if ((k[j2 >> 2] | 0) >>> 0 < 4) { + je(a2); + c2 = k[l2 >> 2] | 0; + } + f2 = a2 + 112 | 0; + g2 = a2 + 108 | 0; + h2 = a2 + 116 | 0; + d2 = 0; + while (1) { + if ((c2 | 0) > 31) + break; + c2 = k[m2 >> 2] | 0; + if (!(i2[f2 >> 0] | 0)) { + i2[k[g2 >> 2] >> 0] = c2 >>> 24; + k[m2 >> 2] = k[m2 >> 2] << 8; + c2 = (k[l2 >> 2] | 0) + 8 | 0; + } else { + i2[k[g2 >> 2] >> 0] = c2 >>> 25; + k[m2 >> 2] = k[m2 >> 2] << 7; + c2 = (k[l2 >> 2] | 0) + 7 | 0; + } + k[l2 >> 2] = c2; + n2 = k[g2 >> 2] | 0; + i2[f2 >> 0] = (i2[n2 >> 0] | 0) == -1 & 1; + k[g2 >> 2] = n2 + 1; + k[j2 >> 2] = (k[j2 >> 2] | 0) + -1; + k[h2 >> 2] = (k[h2 >> 2] | 0) + 1; + d2 = d2 + 1 | 0; + if ((d2 | 0) >= 4) { + e2 = 11; + break; + } + } + a: + do + if ((e2 | 0) == 11) { + if ((c2 | 0) < 0) { + k[m2 >> 2] = k[m2 >> 2] | b2 >> 0 - c2; + if ((k[j2 >> 2] | 0) >>> 0 < 4) { + je(a2); + c2 = k[l2 >> 2] | 0; + d2 = 0; + } else + d2 = 0; + do { + if ((c2 | 0) > 31) + break a; + c2 = k[m2 >> 2] | 0; + if (!(i2[f2 >> 0] | 0)) { + i2[k[g2 >> 2] >> 0] = c2 >>> 24; + k[m2 >> 2] = k[m2 >> 2] << 8; + c2 = (k[l2 >> 2] | 0) + 8 | 0; + } else { + i2[k[g2 >> 2] >> 0] = c2 >>> 25; + k[m2 >> 2] = k[m2 >> 2] << 7; + c2 = (k[l2 >> 2] | 0) + 7 | 0; + } + k[l2 >> 2] = c2; + n2 = k[g2 >> 2] | 0; + i2[f2 >> 0] = (i2[n2 >> 0] | 0) == -1 & 1; + k[g2 >> 2] = n2 + 1; + k[j2 >> 2] = (k[j2 >> 2] | 0) + -1; + k[h2 >> 2] = (k[h2 >> 2] | 0) + 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < 4); + } + } + while (0); + k[m2 >> 2] = k[m2 >> 2] | b2 << c2; + return; + } + function le(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + f2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 196 + (f2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((g2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; + e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 136 | 0; + d2 = k[q2 >> 2] | 0; + if ((e2 & d2 | 0) == (e2 | 0)) + l2 = e2; + else + l2 = d2 & ~(e2 >> 31); + e2 = (c2 - l2 ^ r2) - r2 | 0; + i3 = a2 + 144 | 0; + d2 = k[i3 >> 2] | 0; + if ((e2 | 0) > 0) + e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; + else + e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; + n2 = a2 + 140 | 0; + h2 = k[n2 >> 2] | 0; + c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; + h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; + f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; + if (!(d2 | b2)) + e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ h2; + pe(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); + d2 = k[a2 + 160 >> 2] | 0; + b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; + e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; + c2 = j[p2 >> 1] | 0; + if ((c2 | 0) == (d2 | 0)) { + b2 = b2 >> 1; + e2 = e2 >> 1; + c2 = d2 >> 1; + } + k[o2 >> 2] = b2; + d2 = c2 + 1 | 0; + j[p2 >> 1] = d2; + b2 = d2 + e2 | 0; + if ((b2 | 0) >= 1) { + if ((e2 | 0) > 0) { + e2 = e2 - d2 | 0; + p2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + e2 = (e2 | 0) > 0 ? 0 : e2; + } + } else { + e2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); + e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; + } + k[f2 >> 2] = e2; + d2 = k[i3 >> 2] | 0; + c2 = d2 << 1 | 1; + b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; + if ((b2 | 0) >= (0 - d2 | 0)) { + e2 = k[q2 >> 2] | 0; + if ((e2 + d2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; + } else { + b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; + e2 = k[q2 >> 2] | 0; + } + if ((b2 & e2 | 0) == (b2 | 0)) { + r2 = b2; + r2 = r2 & 65535; + return r2 | 0; + } + r2 = e2 & ~(b2 >> 31); + r2 = r2 & 65535; + return r2 | 0; + } + function me(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0; + i3 = (k[a2 + 180 >> 2] | 0) - b2 | 0; + l2 = k[a2 + 4608 >> 2] | 0; + n2 = k[a2 + 4604 >> 2] | 0; + e2 = j[l2 + (b2 + -1 << 1) >> 1] | 0; + h2 = e2 & 65535; + c2 = k[a2 + 144 >> 2] | 0; + f2 = 0; + while (1) { + d2 = l2 + (f2 + b2 << 1) | 0; + g2 = (m[d2 >> 1] | 0) - h2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) > (c2 | 0)) + break; + j[d2 >> 1] = e2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (i3 | 0)) { + f2 = i3; + break; + } + } + e2 = (f2 | 0) == (i3 | 0); + g2 = a2 + 4600 | 0; + d2 = k[36476 + (k[g2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (f2 | 0)) + c2 = f2; + else { + c2 = f2; + do { + ke(a2, 1, 1); + d2 = k[g2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[g2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + i3 = f2 + b2 | 0; + b2 = l2 + (i3 << 1) | 0; + a2 = ne(a2, m[b2 >> 1] | 0, h2, m[n2 + (i3 << 1) >> 1] | 0) | 0; + j[b2 >> 1] = a2; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = f2 + 1 | 0; + return a2 | 0; + } + if (!c2) { + a2 = i3; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = i3; + return a2 | 0; + } + function ne(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + h2 = c2 - d2 | 0; + i3 = a2 + 136 | 0; + g2 = a2 + 144 | 0; + e2 = k[g2 >> 2] | 0; + if ((((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0) > (e2 | 0)) { + f2 = d2 - c2 >> 31 | 1; + b2 = ia(f2, b2 - d2 | 0) | 0; + if ((b2 | 0) > 0) + b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; + else + b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; + h2 = a2 + 140 | 0; + e2 = k[h2 >> 2] | 0; + c2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; + e2 = c2 - ((c2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; + oe(a2, a2 + 4576 | 0, e2); + e2 = ia(e2, f2) | 0; + f2 = k[g2 >> 2] | 0; + g2 = f2 << 1 | 1; + e2 = (ia(e2, g2) | 0) + d2 | 0; + if ((e2 | 0) >= (0 - f2 | 0)) { + b2 = k[i3 >> 2] | 0; + if ((b2 + f2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; + } else { + e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; + b2 = k[i3 >> 2] | 0; + } + if ((e2 & b2 | 0) == (e2 | 0)) { + i3 = e2; + i3 = i3 & 65535; + return i3 | 0; + } + i3 = b2 & ~(e2 >> 31); + i3 = i3 & 65535; + return i3 | 0; + } else { + b2 = b2 - c2 | 0; + if ((b2 | 0) > 0) + b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; + else + b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; + h2 = a2 + 140 | 0; + e2 = k[h2 >> 2] | 0; + f2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; + e2 = f2 - ((f2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; + oe(a2, a2 + 4588 | 0, e2); + f2 = k[g2 >> 2] | 0; + g2 = f2 << 1 | 1; + e2 = (ia(g2, e2) | 0) + c2 | 0; + if ((e2 | 0) >= (0 - f2 | 0)) { + b2 = k[i3 >> 2] | 0; + if ((b2 + f2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; + } else { + e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; + b2 = k[i3 >> 2] | 0; + } + if ((e2 & b2 | 0) == (e2 | 0)) { + i3 = e2; + i3 = i3 & 65535; + return i3 | 0; + } + i3 = b2 & ~(e2 >> 31); + i3 = i3 & 65535; + return i3 | 0; + } + return 0; + } + function oe(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + pe(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function pe(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = c2 >> b2; + f2 = a2 + 148 | 0; + g2 = d2 - (k[f2 >> 2] | 0) | 0; + if ((e2 | 0) < (g2 + -1 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((g2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); + } else + ke(a2, 1, g2); + b2 = k[f2 >> 2] | 0; + ke(a2, (1 << b2) + -1 & c2 + -1, b2); + return; + } + function qe(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + h2 = a2 + 116 | 0; + b2 = k[h2 >> 2] | 0; + j2 = a2 + 120 | 0; + if (b2 >>> 0 < ((k[j2 >> 2] | 0) + -3 | 0) >>> 0) { + j2 = a2 + 112 | 0; + g2 = k[j2 >> 2] | 0; + a2 = a2 + 108 | 0; + k[a2 >> 2] = (l[b2 + 1 >> 0] << 16 | l[b2 >> 0] << 24 | l[b2 + 2 >> 0] << 8 | l[b2 + 3 >> 0]) >>> g2 | k[a2 >> 2]; + a2 = 32 - g2 >> 3; + k[h2 >> 2] = b2 + a2; + k[j2 >> 2] = (a2 << 3) + g2; + return; + } + g2 = a2 + 104 | 0; + c2 = k[g2 >> 2] | 0; + do + if (c2) { + if ((k[c2 + 12 >> 2] | 0) == (k[c2 + 16 >> 2] | 0)) { + if ((Ob[k[(k[c2 >> 2] | 0) + 36 >> 2] & 127](c2) | 0) == -1) + break; + b2 = k[h2 >> 2] | 0; + } + e2 = a2 + 124 | 0; + c2 = k[e2 >> 2] | 0; + f2 = c2 - b2 | 0; + if (f2 >>> 0 <= 64) { + d2 = a2 + 92 | 0; + if ((c2 | 0) == (b2 | 0)) + c2 = b2; + else { + c2 = 0; + do { + i2[(k[d2 >> 2] | 0) + c2 >> 0] = i2[b2 + c2 >> 0] | 0; + c2 = c2 + 1 | 0; + b2 = k[h2 >> 2] | 0; + } while (c2 >>> 0 < f2 >>> 0); + c2 = b2; + b2 = k[e2 >> 2] | 0; + } + n2 = k[d2 >> 2] | 0; + d2 = n2; + m2 = d2 - c2 | 0; + k[h2 >> 2] = n2; + c2 = b2 + m2 | 0; + k[e2 >> 2] = c2; + k[j2 >> 2] = (k[j2 >> 2] | 0) + m2; + g2 = k[g2 >> 2] | 0; + g2 = Qb[k[(k[g2 >> 2] | 0) + 32 >> 2] & 63](g2, c2, (k[a2 + 96 >> 2] | 0) - (d2 + f2) | 0) | 0; + k[e2 >> 2] = (k[e2 >> 2] | 0) + g2; + } + } + while (0); + g2 = a2 + 112 | 0; + f2 = a2 + 108 | 0; + a2 = k[a2 + 124 >> 2] | 0; + e2 = a2 + -1 | 0; + b2 = k[h2 >> 2] | 0; + while (1) { + if (b2 >>> 0 >= a2 >>> 0) { + c2 = 14; + break; + } + d2 = i2[b2 >> 0] | 0; + c2 = d2 & 255; + d2 = d2 << 24 >> 24 == -1; + if (d2) { + if ((b2 | 0) == (e2 | 0)) { + c2 = 25; + break; + } + b2 = b2 + 1 | 0; + if ((i2[b2 >> 0] | 0) < 0) { + c2 = 25; + break; + } + } else + b2 = b2 + 1 | 0; + n2 = k[g2 >> 2] | 0; + k[f2 >> 2] = c2 << 24 - n2 | k[f2 >> 2]; + k[h2 >> 2] = b2; + n2 = n2 + (d2 ? 7 : 8) | 0; + k[g2 >> 2] = n2; + if ((n2 | 0) >= 24) { + c2 = 33; + break; + } + } + if ((c2 | 0) == 14) { + if ((k[g2 >> 2] | 0) >= 1) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 5, 35648); + n2 = x; + x = 0; + if (!(n2 & 1)) + ub(b2 | 0, 824, 96); + n2 = Wa() | 0; + Ua(b2 | 0); + fb(n2 | 0); + } else if ((c2 | 0) == 25) { + if ((k[g2 >> 2] | 0) >= 1) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 5, 35648); + n2 = x; + x = 0; + if (!(n2 & 1)) + ub(b2 | 0, 824, 96); + n2 = Wa() | 0; + Ua(b2 | 0); + fb(n2 | 0); + } else if ((c2 | 0) == 33) { + a: + do + if (b2 >>> 0 < a2 >>> 0) + do { + if ((i2[b2 >> 0] | 0) == -1) + break a; + b2 = b2 + 1 | 0; + } while (b2 >>> 0 < a2 >>> 0); + while (0); + k[j2 >> 2] = b2; + return; + } + } + function re(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 144 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 136 >> 2] | 0; + b2 = a2 + 152 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 152 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4616 | 0; + d2 = m2 << 1; + e2 = a2 + 4620 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4612 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 192 | 0; + j2 = a2 + 188 | 0; + g2 = a2 + 184 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function se(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = a2 + 8 | 0; + e2 = k[j2 >> 2] | 0; + l2 = a2 + 4 | 0; + c2 = k[l2 >> 2] | 0; + d2 = c2; + if ((e2 - d2 | 0) >>> 0 >= b2 >>> 0) { + do { + i2[c2 >> 0] = 0; + c2 = (k[l2 >> 2] | 0) + 1 | 0; + k[l2 >> 2] = c2; + b2 = b2 + -1 | 0; + } while ((b2 | 0) != 0); + return; + } + c2 = k[a2 >> 2] | 0; + f2 = d2 - c2 + b2 | 0; + if ((f2 | 0) < 0) { + jj(a2); + e2 = k[j2 >> 2] | 0; + c2 = k[a2 >> 2] | 0; + } + d2 = e2 - c2 | 0; + if (d2 >>> 0 < 1073741823) { + d2 = d2 << 1; + d2 = d2 >>> 0 < f2 >>> 0 ? f2 : d2; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + if (!d2) { + e2 = 0; + g2 = 0; + f2 = c2; + } else + h2 = 8; + } else { + d2 = 2147483647; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + h2 = 8; + } + if ((h2 | 0) == 8) { + e2 = d2; + g2 = lj(d2) | 0; + f2 = c2; + } + c2 = g2 + f2 | 0; + e2 = g2 + e2 | 0; + d2 = c2; + do { + i2[d2 >> 0] = 0; + d2 = c2 + 1 | 0; + c2 = d2; + b2 = b2 + -1 | 0; + } while ((b2 | 0) != 0); + b2 = k[a2 >> 2] | 0; + d2 = (k[l2 >> 2] | 0) - b2 | 0; + h2 = g2 + (f2 - d2) | 0; + vw(h2 | 0, b2 | 0, d2 | 0) | 0; + k[a2 >> 2] = h2; + k[l2 >> 2] = c2; + k[j2 >> 2] = e2; + if (!b2) + return; + mj(b2); + return; + } + function te(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function ue(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function ve(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36052; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function we(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36052; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function xe(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 188 >> 2] = f2; + k[a2 + 192 >> 2] = e2; + He(a2); + e2 = a2 + 140 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4576 >> 2] = h2; + k[a2 + 4580 >> 2] = 0; + i2[a2 + 4584 >> 0] = l2; + i2[a2 + 4585 >> 0] = 1; + i2[a2 + 4586 >> 0] = 0; + k[a2 + 4588 >> 2] = h2; + k[a2 + 4592 >> 2] = 1; + i2[a2 + 4596 >> 0] = l2; + i2[a2 + 4597 >> 0] = 1; + i2[a2 + 4598 >> 0] = 0; + k[a2 + 4600 >> 2] = 0; + r = g2; + return; + } + function ye(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4624) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35828; + k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; + k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; + k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; + k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; + k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; + k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; + k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; + e2 = b2 + 156 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 172 >> 2] = k[d2 >> 2]; + k[b2 + 176 >> 2] = 0; + k[b2 + 180 >> 2] = 0; + k[b2 + 184 >> 2] = 0; + e2 = b2 + 4568 | 0; + d2 = b2 + 188 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4580 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4592 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + Ae(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + Ae(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function ze(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 6; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 6; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Ae(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + o2 = a2 + 180 | 0; + p2 = (k[o2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + q2 = k[a2 + 24 >> 2] | 0; + else + q2 = 1; + b2 = ia(q2 << 1, p2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + do + if (b2) { + if (!(b2 >>> 0 > 715827882 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 6 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + d2 = c2 + (b2 * 6 | 0) | 0; + k[v2 + 8 >> 2] = d2; + while (1) { + j[c2 >> 1] = 0; + j[c2 + 2 >> 1] = 0; + j[c2 + 4 >> 1] = 0; + b2 = b2 + -1 | 0; + if (!b2) + break; + else + c2 = c2 + 6 | 0; + } + k[w2 >> 2] = d2; + break; + } + d2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!q2) + g2 = 20; + else { + if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + g2 = 18; + if ((g2 | 0) == 18 ? (e2 = q2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[s2 >> 2] = f2; + g2 = f2 + (q2 << 2) | 0; + k[s2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[u2 >> 2] = g2; + g2 = 20; + break; + } + d2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 20) { + e2 = a2 + 12 | 0; + a: + do + if ((k[e2 >> 2] | 0) > 0) { + f2 = a2 + 4604 | 0; + g2 = (ia(q2, p2) | 0) + 1 | 0; + h2 = a2 + 4608 | 0; + i3 = a2 + 92 | 0; + l2 = (q2 | 0) > 0; + m2 = a2 + 4600 | 0; + n2 = 0; + b: + while (1) { + c2 = k[v2 >> 2] | 0; + b2 = c2 + 6 | 0; + k[f2 >> 2] = b2; + c2 = c2 + (g2 * 6 | 0) | 0; + k[h2 >> 2] = c2; + if (!(n2 & 1)) + b2 = c2; + else { + k[f2 >> 2] = c2; + k[h2 >> 2] = b2; + } + d2 = k[i3 >> 2] | 0; + x = 0; + Ja(k[(k[d2 >> 2] | 0) + 12 >> 2] | 0, d2 | 0, b2 | 0, k[o2 >> 2] | 0, p2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 30; + break; + } + if (l2) { + b2 = k[s2 >> 2] | 0; + c2 = k[f2 >> 2] | 0; + d2 = 0; + do { + k[m2 >> 2] = k[b2 + (d2 << 2) >> 2]; + y2 = k[o2 >> 2] | 0; + b2 = c2 + (y2 * 6 | 0) | 0; + c2 = c2 + ((y2 + -1 | 0) * 6 | 0) | 0; + j[b2 >> 1] = j[c2 >> 1] | 0; + j[b2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[b2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + c2 = (k[h2 >> 2] | 0) + -6 | 0; + b2 = k[f2 >> 2] | 0; + j[c2 >> 1] = j[b2 >> 1] | 0; + j[c2 + 2 >> 1] = j[b2 + 2 >> 1] | 0; + j[c2 + 4 >> 1] = j[b2 + 4 >> 1] | 0; + x = 0; + ra(69, a2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + g2 = 29; + break b; + } + b2 = k[s2 >> 2] | 0; + k[b2 + (d2 << 2) >> 2] = k[m2 >> 2]; + c2 = (k[f2 >> 2] | 0) + (p2 * 6 | 0) | 0; + k[f2 >> 2] = c2; + k[h2 >> 2] = (k[h2 >> 2] | 0) + (p2 * 6 | 0); + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (q2 | 0)); + } + n2 = n2 + 1 | 0; + if ((n2 | 0) >= (k[e2 >> 2] | 0)) { + g2 = 42; + break a; + } + } + if ((g2 | 0) == 29) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 30) { + d2 = Wa() | 0; + break; + } + } else + g2 = 42; + while (0); + do + if ((g2 | 0) == 42) { + x = 0; + qa(182, a2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + fb(d2 | 0); + } + function Be(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + B2 = a2 + 180 | 0; + if ((k[B2 >> 2] | 0) <= 0) + return; + C2 = a2 + 4608 | 0; + D2 = a2 + 4604 | 0; + E2 = a2 + 4612 | 0; + A2 = 0; + while (1) { + x2 = A2 + -1 | 0; + f2 = k[C2 >> 2] | 0; + g2 = k[D2 >> 2] | 0; + b2 = A2 + 1 | 0; + e2 = m[g2 + (A2 * 6 | 0) >> 1] | 0; + z2 = k[E2 >> 2] | 0; + h2 = m[g2 + (x2 * 6 | 0) >> 1] | 0; + l2 = e2 - h2 | 0; + n2 = m[f2 + (x2 * 6 | 0) >> 1] | 0; + o2 = h2 - n2 | 0; + p2 = ((((i2[z2 + ((m[g2 + (b2 * 6 | 0) >> 1] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[z2 + l2 >> 0] | 0) | 0) * 9 | 0) + (i2[z2 + o2 >> 0] | 0) | 0; + d2 = m[g2 + (A2 * 6 | 0) + 2 >> 1] | 0; + q2 = m[g2 + (x2 * 6 | 0) + 2 >> 1] | 0; + r2 = d2 - q2 | 0; + s2 = m[f2 + (x2 * 6 | 0) + 2 >> 1] | 0; + t2 = q2 - s2 | 0; + u2 = ((((i2[z2 + ((m[g2 + (b2 * 6 | 0) + 2 >> 1] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[z2 + r2 >> 0] | 0) | 0) * 9 | 0) + (i2[z2 + t2 >> 0] | 0) | 0; + c2 = m[g2 + (A2 * 6 | 0) + 4 >> 1] | 0; + v2 = m[g2 + (x2 * 6 | 0) + 4 >> 1] | 0; + w2 = c2 - v2 | 0; + x2 = m[f2 + (x2 * 6 | 0) + 4 >> 1] | 0; + y2 = v2 - x2 | 0; + z2 = ((((i2[z2 + ((m[g2 + (b2 * 6 | 0) + 4 >> 1] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[z2 + w2 >> 0] | 0) | 0) * 9 | 0) + (i2[z2 + y2 >> 0] | 0) | 0; + if (!(u2 | p2 | z2)) + b2 = (Ce(a2, A2, 0) | 0) + A2 | 0; + else { + g2 = m[f2 + (A2 * 6 | 0) >> 1] | 0; + f2 = e2 - n2 >> 31; + if ((f2 ^ o2 | 0) >= 0) + if ((f2 ^ l2 | 0) < 0) + e2 = n2; + else + e2 = n2 - h2 + e2 | 0; + g2 = De(a2, p2, g2, e2, 0) | 0; + f2 = m[(k[C2 >> 2] | 0) + (A2 * 6 | 0) + 2 >> 1] | 0; + e2 = d2 - s2 >> 31; + if ((e2 ^ t2 | 0) >= 0) + if ((e2 ^ r2 | 0) < 0) + d2 = s2; + else + d2 = s2 - q2 + d2 | 0; + e2 = De(a2, u2, f2, d2, 0) | 0; + f2 = m[(k[C2 >> 2] | 0) + (A2 * 6 | 0) + 4 >> 1] | 0; + d2 = c2 - x2 >> 31; + if ((d2 ^ y2 | 0) >= 0) + if ((d2 ^ w2 | 0) < 0) + c2 = x2; + else + c2 = x2 - v2 + c2 | 0; + y2 = De(a2, z2, f2, c2, 0) | 0; + z2 = k[C2 >> 2] | 0; + j[z2 + (A2 * 6 | 0) >> 1] = g2; + j[z2 + (A2 * 6 | 0) + 2 >> 1] = e2; + j[z2 + (A2 * 6 | 0) + 4 >> 1] = y2; + } + if ((b2 | 0) < (k[B2 >> 2] | 0)) + A2 = b2; + else + break; + } + return; + } + function Ce(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0; + B2 = r; + r = r + 48 | 0; + q2 = B2 + 30 | 0; + p2 = B2 + 24 | 0; + o2 = B2 + 18 | 0; + s2 = B2 + 12 | 0; + x2 = B2 + 6 | 0; + y2 = B2; + z2 = (k[a2 + 180 >> 2] | 0) - b2 | 0; + A2 = k[a2 + 4608 >> 2] | 0; + t2 = k[a2 + 4604 >> 2] | 0; + w2 = b2 + -1 | 0; + u2 = j[A2 + (w2 * 6 | 0) >> 1] | 0; + v2 = j[A2 + (w2 * 6 | 0) + 2 >> 1] | 0; + w2 = j[A2 + (w2 * 6 | 0) + 4 >> 1] | 0; + c2 = u2 & 65535; + d2 = a2 + 144 | 0; + e2 = v2 & 65535; + f2 = w2 & 65535; + n2 = 0; + while (1) { + i3 = n2 + b2 | 0; + g2 = A2 + (i3 * 6 | 0) | 0; + h2 = A2 + (i3 * 6 | 0) + 2 | 0; + i3 = A2 + (i3 * 6 | 0) + 4 | 0; + C2 = (m[g2 >> 1] | 0) - c2 | 0; + l2 = k[d2 >> 2] | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (l2 | 0)) + break; + C2 = (m[h2 >> 1] | 0) - e2 | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (l2 | 0)) + break; + C2 = (m[i3 >> 1] | 0) - f2 | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (l2 | 0)) + break; + j[g2 >> 1] = u2; + j[h2 >> 1] = v2; + j[i3 >> 1] = w2; + n2 = n2 + 1 | 0; + if ((n2 | 0) == (z2 | 0)) { + n2 = z2; + break; + } + } + e2 = (n2 | 0) == (z2 | 0); + f2 = a2 + 4600 | 0; + d2 = k[36476 + (k[f2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[f2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[f2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + b2 = n2 + b2 | 0; + C2 = A2 + (b2 * 6 | 0) | 0; + j[x2 >> 1] = j[C2 >> 1] | 0; + j[x2 + 2 >> 1] = j[C2 + 2 >> 1] | 0; + j[x2 + 4 >> 1] = j[C2 + 4 >> 1] | 0; + j[y2 >> 1] = u2; + j[y2 + 2 >> 1] = v2; + j[y2 + 4 >> 1] = w2; + b2 = t2 + (b2 * 6 | 0) | 0; + j[o2 >> 1] = j[x2 >> 1] | 0; + j[o2 + 2 >> 1] = j[x2 + 2 >> 1] | 0; + j[o2 + 4 >> 1] = j[x2 + 4 >> 1] | 0; + j[p2 >> 1] = j[y2 >> 1] | 0; + j[p2 + 2 >> 1] = j[y2 + 2 >> 1] | 0; + j[p2 + 4 >> 1] = j[y2 + 4 >> 1] | 0; + j[q2 >> 1] = j[b2 >> 1] | 0; + j[q2 + 2 >> 1] = j[b2 + 2 >> 1] | 0; + j[q2 + 4 >> 1] = j[b2 + 4 >> 1] | 0; + Fe(s2, a2, o2, p2, q2); + j[C2 >> 1] = j[s2 >> 1] | 0; + j[C2 + 2 >> 1] = j[s2 + 2 >> 1] | 0; + j[C2 + 4 >> 1] = j[s2 + 4 >> 1] | 0; + C2 = k[f2 >> 2] | 0; + k[f2 >> 2] = (C2 | 0) < 1 ? 0 : C2 + -1 | 0; + C2 = n2 + 1 | 0; + r = B2; + return C2 | 0; + } + if (!c2) { + C2 = z2; + r = B2; + return C2 | 0; + } + ke(a2, 1, 1); + C2 = z2; + r = B2; + return C2 | 0; + } + function De(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + f2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 196 + (f2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((g2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; + e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 136 | 0; + d2 = k[q2 >> 2] | 0; + if ((e2 & d2 | 0) == (e2 | 0)) + l2 = e2; + else + l2 = d2 & ~(e2 >> 31); + e2 = (c2 - l2 ^ r2) - r2 | 0; + i3 = a2 + 144 | 0; + d2 = k[i3 >> 2] | 0; + if ((e2 | 0) > 0) + e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; + else + e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; + n2 = a2 + 140 | 0; + h2 = k[n2 >> 2] | 0; + c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; + h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; + f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; + if (!(d2 | b2)) + e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ h2; + Ee(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); + d2 = k[a2 + 160 >> 2] | 0; + b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; + e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; + c2 = j[p2 >> 1] | 0; + if ((c2 | 0) == (d2 | 0)) { + b2 = b2 >> 1; + e2 = e2 >> 1; + c2 = d2 >> 1; + } + k[o2 >> 2] = b2; + d2 = c2 + 1 | 0; + j[p2 >> 1] = d2; + b2 = d2 + e2 | 0; + if ((b2 | 0) >= 1) { + if ((e2 | 0) > 0) { + e2 = e2 - d2 | 0; + p2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + e2 = (e2 | 0) > 0 ? 0 : e2; + } + } else { + e2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); + e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; + } + k[f2 >> 2] = e2; + d2 = k[i3 >> 2] | 0; + c2 = d2 << 1 | 1; + b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; + if ((b2 | 0) >= (0 - d2 | 0)) { + e2 = k[q2 >> 2] | 0; + if ((e2 + d2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; + } else { + b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; + e2 = k[q2 >> 2] | 0; + } + if ((b2 & e2 | 0) == (b2 | 0)) { + r2 = b2; + r2 = r2 & 65535; + return r2 | 0; + } + r2 = e2 & ~(b2 >> 31); + r2 = r2 & 65535; + return r2 | 0; + } + function Ee(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = c2 >> b2; + f2 = a2 + 148 | 0; + g2 = d2 - (k[f2 >> 2] | 0) | 0; + if ((e2 | 0) < (g2 + -1 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((g2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); + } else + ke(a2, 1, g2); + b2 = k[f2 >> 2] | 0; + ke(a2, (1 << b2) + -1 & c2 + -1, b2); + return; + } + function Fe(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + r2 = b2 + 136 | 0; + o2 = m[e2 >> 1] | 0; + p2 = o2 - (m[d2 >> 1] | 0) >> 31 | 1; + f2 = ia(p2, (m[c2 >> 1] | 0) - o2 | 0) | 0; + l2 = b2 + 144 | 0; + g2 = k[l2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + w2 = b2 + 140 | 0; + i3 = k[w2 >> 2] | 0; + h2 = ((f2 | 0) < 0 ? i3 : 0) + f2 | 0; + i3 = h2 - ((h2 | 0) < ((i3 + 1 | 0) / 2 | 0 | 0) ? 0 : i3) | 0; + h2 = b2 + 4576 | 0; + Ge(b2, h2, i3); + t2 = m[e2 + 2 >> 1] | 0; + u2 = t2 - (m[d2 + 2 >> 1] | 0) >> 31 | 1; + f2 = ia(u2, (m[c2 + 2 >> 1] | 0) - t2 | 0) | 0; + g2 = k[l2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + q2 = k[w2 >> 2] | 0; + v2 = ((f2 | 0) < 0 ? q2 : 0) + f2 | 0; + q2 = v2 - ((v2 | 0) < ((q2 + 1 | 0) / 2 | 0 | 0) ? 0 : q2) | 0; + Ge(b2, h2, q2); + v2 = m[e2 + 4 >> 1] | 0; + s2 = v2 - (m[d2 + 4 >> 1] | 0) >> 31 | 1; + f2 = ia(s2, (m[c2 + 4 >> 1] | 0) - v2 | 0) | 0; + g2 = k[l2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + n2 = k[w2 >> 2] | 0; + f2 = ((f2 | 0) < 0 ? n2 : 0) + f2 | 0; + n2 = f2 - ((f2 | 0) < ((n2 + 1 | 0) / 2 | 0 | 0) ? 0 : n2) | 0; + Ge(b2, h2, n2); + h2 = k[l2 >> 2] | 0; + l2 = h2 << 1 | 1; + f2 = (ia(ia(l2, i3) | 0, p2) | 0) + o2 | 0; + c2 = 0 - h2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + g2 = k[r2 >> 2] | 0; + if ((g2 + h2 | 0) < (f2 | 0)) { + f2 = f2 - (ia(k[w2 >> 2] | 0, l2) | 0) | 0; + d2 = g2; + } else + d2 = g2; + } else { + f2 = (ia(k[w2 >> 2] | 0, l2) | 0) + f2 | 0; + d2 = k[r2 >> 2] | 0; + } + if ((f2 & d2 | 0) != (f2 | 0)) + f2 = d2 & ~(f2 >> 31); + e2 = f2 & 65535; + f2 = (ia(ia(l2, q2) | 0, u2) | 0) + t2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + if ((d2 + h2 | 0) < (f2 | 0)) + f2 = f2 - (ia(k[w2 >> 2] | 0, l2) | 0) | 0; + } else + f2 = (ia(k[w2 >> 2] | 0, l2) | 0) + f2 | 0; + if ((f2 & d2 | 0) != (f2 | 0)) + f2 = d2 & ~(f2 >> 31); + g2 = f2 & 65535; + f2 = (ia(ia(l2, n2) | 0, s2) | 0) + v2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + if ((d2 + h2 | 0) < (f2 | 0)) + f2 = f2 - (ia(k[w2 >> 2] | 0, l2) | 0) | 0; + } else + f2 = (ia(k[w2 >> 2] | 0, l2) | 0) + f2 | 0; + if ((f2 & d2 | 0) == (f2 | 0)) { + w2 = f2; + w2 = w2 & 65535; + j[a2 >> 1] = e2; + v2 = a2 + 2 | 0; + j[v2 >> 1] = g2; + a2 = a2 + 4 | 0; + j[a2 >> 1] = w2; + return; + } + w2 = d2 & ~(f2 >> 31); + w2 = w2 & 65535; + j[a2 >> 1] = e2; + v2 = a2 + 2 | 0; + j[v2 >> 1] = g2; + a2 = a2 + 4 | 0; + j[a2 >> 1] = w2; + return; + } + function Ge(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + Ee(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function He(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 144 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 136 >> 2] | 0; + b2 = a2 + 152 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 152 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4616 | 0; + d2 = m2 << 1; + e2 = a2 + 4620 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4612 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 192 | 0; + j2 = a2 + 188 | 0; + g2 = a2 + 184 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Ie(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36024; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Je(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36024; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Ke(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 188 >> 2] = f2; + k[a2 + 192 >> 2] = e2; + zf(a2); + e2 = a2 + 140 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4576 >> 2] = h2; + k[a2 + 4580 >> 2] = 0; + i2[a2 + 4584 >> 0] = l2; + i2[a2 + 4585 >> 0] = 1; + i2[a2 + 4586 >> 0] = 0; + k[a2 + 4588 >> 2] = h2; + k[a2 + 4592 >> 2] = 1; + i2[a2 + 4596 >> 0] = l2; + i2[a2 + 4597 >> 0] = 1; + i2[a2 + 4598 >> 0] = 0; + k[a2 + 4600 >> 2] = 0; + r = g2; + return; + } + function Le(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4624) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35800; + k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; + k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; + k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; + k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; + k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; + k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; + k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; + e2 = b2 + 156 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 172 >> 2] = k[d2 >> 2]; + k[b2 + 176 >> 2] = 0; + k[b2 + 180 >> 2] = 0; + k[b2 + 184 >> 2] = 0; + e2 = b2 + 4568 | 0; + d2 = b2 + 188 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4580 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4592 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + sf(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + sf(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function Me(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Ne(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + k[a2 >> 2] = 36712; + k[a2 + 4 >> 2] = c2; + m2 = a2 + 8 | 0; + d2 = k[c2 >> 2] | 0; + j2 = c2 + 16 | 0; + g2 = k[j2 >> 2] | 0; + f2 = ia(g2, d2) | 0; + k[m2 >> 2] = 0; + n2 = a2 + 12 | 0; + k[n2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (!f2) + f2 = g2; + else { + if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + l2 = 4; + if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[n2 >> 2] = h2; + k[m2 >> 2] = h2; + k[a2 + 16 >> 2] = h2 + f2; + d2 = h2; + do { + i2[d2 >> 0] = 0; + d2 = (k[n2 >> 2] | 0) + 1 | 0; + k[n2 >> 2] = d2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + f2 = k[j2 >> 2] | 0; + d2 = k[c2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + e2 = k[m2 >> 2] | 0; + if (e2) { + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + } + n2 = d2; + fb(n2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2, d2) | 0; + k[g2 >> 2] = 0; + f2 = a2 + 24 | 0; + k[f2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + l2 = 15; + if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + k[f2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[f2 >> 2] | 0) + 1 | 0; + k[f2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + d2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[f2 >> 2] | 0) != (e2 | 0)) + k[f2 >> 2] = e2; + mj(e2); + } + e2 = k[m2 >> 2] | 0; + if (!e2) { + n2 = d2; + fb(n2 | 0); + } + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + n2 = d2; + fb(n2 | 0); + } + function Oe(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + k[a2 >> 2] = 36688; + k[a2 + 4 >> 2] = c2; + m2 = a2 + 8 | 0; + d2 = k[c2 >> 2] | 0; + j2 = c2 + 16 | 0; + g2 = k[j2 >> 2] | 0; + f2 = ia(g2, d2) | 0; + k[m2 >> 2] = 0; + n2 = a2 + 12 | 0; + k[n2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (!f2) + f2 = g2; + else { + if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + l2 = 4; + if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[n2 >> 2] = h2; + k[m2 >> 2] = h2; + k[a2 + 16 >> 2] = h2 + f2; + d2 = h2; + do { + i2[d2 >> 0] = 0; + d2 = (k[n2 >> 2] | 0) + 1 | 0; + k[n2 >> 2] = d2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + f2 = k[j2 >> 2] | 0; + d2 = k[c2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + e2 = k[m2 >> 2] | 0; + if (e2) { + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + } + n2 = d2; + fb(n2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2, d2) | 0; + k[g2 >> 2] = 0; + f2 = a2 + 24 | 0; + k[f2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + l2 = 15; + if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + k[f2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[f2 >> 2] | 0) + 1 | 0; + k[f2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + d2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[f2 >> 2] | 0) != (e2 | 0)) + k[f2 >> 2] = e2; + mj(e2); + } + e2 = k[m2 >> 2] | 0; + if (!e2) { + n2 = d2; + fb(n2 | 0); + } + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + n2 = d2; + fb(n2 | 0); + } + function Pe(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + k[a2 >> 2] = 36664; + k[a2 + 4 >> 2] = c2; + m2 = a2 + 8 | 0; + d2 = k[c2 >> 2] | 0; + j2 = c2 + 16 | 0; + g2 = k[j2 >> 2] | 0; + f2 = ia(g2, d2) | 0; + k[m2 >> 2] = 0; + n2 = a2 + 12 | 0; + k[n2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (!f2) + f2 = g2; + else { + if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + l2 = 4; + if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[n2 >> 2] = h2; + k[m2 >> 2] = h2; + k[a2 + 16 >> 2] = h2 + f2; + d2 = h2; + do { + i2[d2 >> 0] = 0; + d2 = (k[n2 >> 2] | 0) + 1 | 0; + k[n2 >> 2] = d2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + f2 = k[j2 >> 2] | 0; + d2 = k[c2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + e2 = k[m2 >> 2] | 0; + if (e2) { + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + } + n2 = d2; + fb(n2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2, d2) | 0; + k[g2 >> 2] = 0; + f2 = a2 + 24 | 0; + k[f2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + l2 = 15; + if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + k[f2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[f2 >> 2] | 0) + 1 | 0; + k[f2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + d2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[f2 >> 2] | 0) != (e2 | 0)) + k[f2 >> 2] = e2; + mj(e2); + } + e2 = k[m2 >> 2] | 0; + if (!e2) { + n2 = d2; + fb(n2 | 0); + } + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + n2 = d2; + fb(n2 | 0); + } + function Qe(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + k[a2 >> 2] = 36640; + k[a2 + 4 >> 2] = c2; + m2 = a2 + 8 | 0; + d2 = k[c2 >> 2] | 0; + j2 = c2 + 16 | 0; + g2 = k[j2 >> 2] | 0; + f2 = ia(g2, d2) | 0; + k[m2 >> 2] = 0; + n2 = a2 + 12 | 0; + k[n2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (!f2) + f2 = g2; + else { + if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + l2 = 4; + if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[n2 >> 2] = h2; + k[m2 >> 2] = h2; + k[a2 + 16 >> 2] = h2 + f2; + d2 = h2; + do { + i2[d2 >> 0] = 0; + d2 = (k[n2 >> 2] | 0) + 1 | 0; + k[n2 >> 2] = d2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + f2 = k[j2 >> 2] | 0; + d2 = k[c2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + e2 = k[m2 >> 2] | 0; + if (e2) { + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + } + n2 = d2; + fb(n2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2, d2) | 0; + k[g2 >> 2] = 0; + f2 = a2 + 24 | 0; + k[f2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + l2 = 15; + if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + k[f2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[f2 >> 2] | 0) + 1 | 0; + k[f2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + d2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[f2 >> 2] | 0) != (e2 | 0)) + k[f2 >> 2] = e2; + mj(e2); + } + e2 = k[m2 >> 2] | 0; + if (!e2) { + n2 = d2; + fb(n2 | 0); + } + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + n2 = d2; + fb(n2 | 0); + } + function Re(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36640; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = k[a2 + 8 >> 2] | 0; + if (!c2) + return; + b2 = a2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (c2 | 0)) + k[b2 >> 2] = c2; + mj(c2); + return; + } + function Se(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36640; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function Te(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + e2 = a2 + 40 | 0; + Xe(a2, b2, k[e2 >> 2] | 0, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; + g2 = a2 + 20 | 0; + Xe(a2, b2, k[g2 >> 2] | 0, c2, d2); + a2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) + return; + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 3, 35648); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Ua(e2 | 0); + fb(g2 | 0); + } else + ub(e2 | 0, 824, 96); + } + function Ue(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Ve(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + We(a2, e2, b2, c2, d2); + return; + } + } + function Ve(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + h2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; + f2 = k[h2 >> 2] | 0; + b2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + f2 = k[g2 >> 2] | 0; + a2 = 0; + while (1) { + j2 = f2 + 2 | 0; + m2 = i2[f2 >> 0] | 0; + i2[f2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = m2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + b2 | 0; + } + f2 = k[h2 >> 2] | 0; + } + h2 = k[g2 >> 2] | 0; + } + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + g2 = l[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; + e2 = 128 - g2 + (l[h2 + (f2 * 3 | 0) + 2 >> 0] | 0) | 0; + j2 = (l[h2 + (f2 * 3 | 0) >> 0] | 0) - g2 + 128 | 0; + m2 = c2 + (f2 * 3 | 0) | 0; + i2[m2 >> 0] = g2 + 192 + (((e2 & 255) + (j2 & 255) | 0) >>> 2); + i2[m2 + 1 >> 0] = e2; + i2[m2 + 2 >> 0] = j2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + d2 = l[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; + j2 = 128 - d2 + (l[h2 + (b2 * 3 | 0) + 2 >> 0] | 0) | 0; + m2 = (l[h2 + (b2 * 3 | 0) >> 0] | 0) - d2 + 128 | 0; + i2[c2 + b2 >> 0] = d2 + 192 + (((j2 & 255) + (m2 & 255) | 0) >>> 2); + i2[c2 + (b2 + e2) >> 0] = j2; + i2[c2 + (b2 + a2) >> 0] = m2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + m2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; + n2 = l[h2 + (g2 << 2) + 1 >> 0] | 0; + d2 = 128 - n2 + (l[h2 + (g2 << 2) + 2 >> 0] | 0) | 0; + j2 = (l[h2 + (g2 << 2) >> 0] | 0) - n2 + 128 | 0; + i2[c2 + g2 >> 0] = n2 + 192 + (((d2 & 255) + (j2 & 255) | 0) >>> 2); + i2[c2 + (g2 + e2) >> 0] = d2; + i2[c2 + (g2 + a2) >> 0] = j2; + i2[c2 + (g2 + b2) >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function We(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 176 | 0; + n2 = m2 + 152 | 0; + p2 = m2 + 16 | 0; + o2 = m2; + g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; + j2 = a2 + 20 | 0; + f2 = k[j2 >> 2] | 0; + if (!g2) { + p2 = f2; + Ve(a2, p2, c2, d2, e2); + r = m2; + return; + } + while (1) { + h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; + if (!h2) + break; + f2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (h2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - h2 | 0; + } + if ((l2 | 0) == 26) { + Ve(a2, f2, c2, d2, e2); + r = m2; + return; + } + c2 = p2 + 56 | 0; + j2 = p2 + 4 | 0; + k[p2 >> 2] = 36160; + k[c2 >> 2] = 36180; + x = 0; + ra(62, p2 + 56 | 0, j2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + p2 = Wa() | 0; + qn(c2); + fb(p2 | 0); + } + k[p2 + 128 >> 2] = 0; + k[p2 + 132 >> 2] = -1; + k[p2 >> 2] = 36200; + k[p2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = p2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[p2 + 52 >> 2] = 16; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, n2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + f2 = Wa() | 0; + Sm(n2); + Sm(b2); + xn(j2); + break; + } + Sm(n2); + x = 0; + f2 = va(28, p2 | 0, 49029, 57) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(o2); + if (!g2) { + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + o2 = Wa() | 0; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + while (0); + p2 = f2; + qn(c2); + fb(p2 | 0); + } + function Xe(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + j2 = a2 + 4 | 0; + a2 = k[j2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + g2 = l[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; + f2 = l[b2 + (a2 * 3 | 0) + 2 >> 0] | 0; + h2 = (l[b2 + (a2 * 3 | 0) >> 0] | 0) - ((f2 + g2 | 0) >>> 2) + 64 | 0; + e2 = c2 + (a2 * 3 | 0) | 0; + i2[e2 >> 0] = f2 + 128 + h2; + i2[e2 + 1 >> 0] = h2; + i2[e2 + 2 >> 0] = g2 + 128 + h2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = l[b2 + (g2 + e2) >> 0] | 0; + o2 = l[b2 + (g2 + f2) >> 0] | 0; + m2 = (l[b2 + g2 >> 0] | 0) - ((o2 + n2 | 0) >>> 2) + 64 | 0; + h2 = c2 + (g2 * 3 | 0) | 0; + i2[h2 >> 0] = o2 + 128 + m2; + i2[h2 + 1 >> 0] = m2; + i2[h2 + 2 >> 0] = n2 + 128 + m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + m2 = l[b2 + (g2 + e2) >> 0] | 0; + p2 = l[b2 + (g2 + a2) >> 0] | 0; + n2 = (l[b2 + g2 >> 0] | 0) - ((p2 + m2 | 0) >>> 2) + 64 | 0; + o2 = c2 + (g2 << 2) | 0; + n2 = n2 << 8 & 65280 | l[b2 + (g2 + f2) >> 0] << 24 | p2 + 128 + n2 & 255 | m2 + 128 + n2 << 16 & 16711680; + i2[o2 >> 0] = n2; + i2[o2 + 1 >> 0] = n2 >> 8; + i2[o2 + 2 >> 0] = n2 >> 16; + i2[o2 + 3 >> 0] = n2 >> 24; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[j2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + a2 = c2; + f2 = 0; + } else + return; + while (1) { + p2 = a2 + 2 | 0; + o2 = i2[a2 >> 0] | 0; + i2[a2 >> 0] = i2[p2 >> 0] | 0; + i2[p2 >> 0] = o2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + g2 | 0; + } + return; + } + function Ye(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36664; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = k[a2 + 8 >> 2] | 0; + if (!c2) + return; + b2 = a2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (c2 | 0)) + k[b2 >> 2] = c2; + mj(c2); + return; + } + function Ze(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36664; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function _e(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + e2 = a2 + 40 | 0; + cf(a2, b2, k[e2 >> 2] | 0, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; + g2 = a2 + 20 | 0; + cf(a2, b2, k[g2 >> 2] | 0, c2, d2); + a2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) + return; + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 3, 35648); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Ua(e2 | 0); + fb(g2 | 0); + } else + ub(e2 | 0, 824, 96); + } + function $e(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + af(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + bf(a2, e2, b2, c2, d2); + return; + } + } + function af(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + h2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; + f2 = k[h2 >> 2] | 0; + b2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + f2 = k[g2 >> 2] | 0; + a2 = 0; + while (1) { + j2 = f2 + 2 | 0; + m2 = i2[f2 >> 0] | 0; + i2[f2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = m2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + b2 | 0; + } + f2 = k[h2 >> 2] | 0; + } + h2 = k[g2 >> 2] | 0; + } + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + b2 = l[h2 + (f2 * 3 | 0) >> 0] | 0; + e2 = i2[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; + g2 = e2 & 255; + j2 = (l[h2 + (f2 * 3 | 0) + 2 >> 0] | 0) + 128 - ((g2 + b2 | 0) >>> 1) & 255; + m2 = c2 + (f2 * 3 | 0) | 0; + i2[m2 >> 0] = b2 + 128 - g2; + i2[m2 + 1 >> 0] = e2; + i2[m2 + 2 >> 0] = j2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + j2 = i2[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; + g2 = l[h2 + (b2 * 3 | 0) >> 0] | 0; + d2 = j2 & 255; + m2 = (l[h2 + (b2 * 3 | 0) + 2 >> 0] | 0) + 128 - ((d2 + g2 | 0) >>> 1) & 255; + i2[c2 + b2 >> 0] = g2 + 128 - d2; + i2[c2 + (b2 + e2) >> 0] = j2; + i2[c2 + (b2 + a2) >> 0] = m2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + d2 = i2[h2 + (g2 << 2) + 1 >> 0] | 0; + m2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; + o2 = l[h2 + (g2 << 2) >> 0] | 0; + n2 = d2 & 255; + j2 = (l[h2 + (g2 << 2) + 2 >> 0] | 0) + 128 - ((n2 + o2 | 0) >>> 1) & 255; + i2[c2 + g2 >> 0] = o2 + 128 - n2; + i2[c2 + (g2 + e2) >> 0] = d2; + i2[c2 + (g2 + a2) >> 0] = j2; + i2[c2 + (g2 + b2) >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function bf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 176 | 0; + n2 = m2 + 152 | 0; + p2 = m2 + 16 | 0; + o2 = m2; + g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; + j2 = a2 + 20 | 0; + f2 = k[j2 >> 2] | 0; + if (!g2) { + p2 = f2; + af(a2, p2, c2, d2, e2); + r = m2; + return; + } + while (1) { + h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; + if (!h2) + break; + f2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (h2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - h2 | 0; + } + if ((l2 | 0) == 26) { + af(a2, f2, c2, d2, e2); + r = m2; + return; + } + c2 = p2 + 56 | 0; + j2 = p2 + 4 | 0; + k[p2 >> 2] = 36160; + k[c2 >> 2] = 36180; + x = 0; + ra(62, p2 + 56 | 0, j2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + p2 = Wa() | 0; + qn(c2); + fb(p2 | 0); + } + k[p2 + 128 >> 2] = 0; + k[p2 + 132 >> 2] = -1; + k[p2 >> 2] = 36200; + k[p2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = p2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[p2 + 52 >> 2] = 16; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, n2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + f2 = Wa() | 0; + Sm(n2); + Sm(b2); + xn(j2); + break; + } + Sm(n2); + x = 0; + f2 = va(28, p2 | 0, 49029, 57) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(o2); + if (!g2) { + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + o2 = Wa() | 0; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + while (0); + p2 = f2; + qn(c2); + fb(p2 | 0); + } + function cf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; + j2 = a2 + 4 | 0; + a2 = k[j2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + g2 = i2[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; + h2 = g2 & 255; + f2 = (l[b2 + (a2 * 3 | 0) >> 0] | 0) + 128 + h2 | 0; + h2 = (l[b2 + (a2 * 3 | 0) + 2 >> 0] | 0) + 128 + (((f2 & 255) + h2 | 0) >>> 1) & 255; + e2 = c2 + (a2 * 3 | 0) | 0; + i2[e2 >> 0] = f2; + i2[e2 + 1 >> 0] = g2; + i2[e2 + 2 >> 0] = h2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = i2[b2 + (g2 + e2) >> 0] | 0; + m2 = n2 & 255; + o2 = (l[b2 + g2 >> 0] | 0) + 128 + m2 | 0; + m2 = (l[b2 + (g2 + f2) >> 0] | 0) + 128 + (((o2 & 255) + m2 | 0) >>> 1) & 255; + h2 = c2 + (g2 * 3 | 0) | 0; + i2[h2 >> 0] = o2; + i2[h2 + 1 >> 0] = n2; + i2[h2 + 2 >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = l[b2 + (g2 + e2) >> 0] | 0; + m2 = (l[b2 + g2 >> 0] | 0) + 128 + n2 & 255; + o2 = c2 + (g2 << 2) | 0; + n2 = m2 | n2 << 8 | l[b2 + (g2 + f2) >> 0] << 24 | (l[b2 + (g2 + a2) >> 0] | 0) + 128 + ((m2 + n2 | 0) >>> 1) << 16 & 16711680; + i2[o2 >> 0] = n2; + i2[o2 + 1 >> 0] = n2 >> 8; + i2[o2 + 2 >> 0] = n2 >> 16; + i2[o2 + 3 >> 0] = n2 >> 24; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[j2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + a2 = c2; + f2 = 0; + } else + return; + while (1) { + o2 = a2 + 2 | 0; + n2 = i2[a2 >> 0] | 0; + i2[a2 >> 0] = i2[o2 >> 0] | 0; + i2[o2 >> 0] = n2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + g2 | 0; + } + return; + } + function df(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36688; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = k[a2 + 8 >> 2] | 0; + if (!c2) + return; + b2 = a2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (c2 | 0)) + k[b2 >> 2] = c2; + mj(c2); + return; + } + function ef(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36688; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function ff(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + e2 = a2 + 40 | 0; + kf(a2, b2, k[e2 >> 2] | 0, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; + g2 = a2 + 20 | 0; + kf(a2, b2, k[g2 >> 2] | 0, c2, d2); + a2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) + return; + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 3, 35648); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Ua(e2 | 0); + fb(g2 | 0); + } else + ub(e2 | 0, 824, 96); + } + function gf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + hf(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + jf(a2, e2, b2, c2, d2); + return; + } + } + function hf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + h2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; + f2 = k[h2 >> 2] | 0; + b2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + f2 = k[g2 >> 2] | 0; + a2 = 0; + while (1) { + j2 = f2 + 2 | 0; + m2 = i2[f2 >> 0] | 0; + i2[f2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = m2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + b2 | 0; + } + f2 = k[h2 >> 2] | 0; + } + h2 = k[g2 >> 2] | 0; + } + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + e2 = i2[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; + g2 = e2 & 255; + j2 = 128 - g2 + (l[h2 + (f2 * 3 | 0) + 2 >> 0] | 0) & 255; + m2 = c2 + (f2 * 3 | 0) | 0; + i2[m2 >> 0] = (l[h2 + (f2 * 3 | 0) >> 0] | 0) + 128 - g2; + i2[m2 + 1 >> 0] = e2; + i2[m2 + 2 >> 0] = j2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + j2 = i2[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; + d2 = j2 & 255; + m2 = 128 - d2 + (l[h2 + (b2 * 3 | 0) + 2 >> 0] | 0) & 255; + i2[c2 + b2 >> 0] = (l[h2 + (b2 * 3 | 0) >> 0] | 0) + 128 - d2; + i2[c2 + (b2 + e2) >> 0] = j2; + i2[c2 + (b2 + a2) >> 0] = m2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + d2 = i2[h2 + (g2 << 2) + 1 >> 0] | 0; + m2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; + n2 = d2 & 255; + j2 = 128 - n2 + (l[h2 + (g2 << 2) + 2 >> 0] | 0) & 255; + i2[c2 + g2 >> 0] = (l[h2 + (g2 << 2) >> 0] | 0) + 128 - n2; + i2[c2 + (g2 + e2) >> 0] = d2; + i2[c2 + (g2 + a2) >> 0] = j2; + i2[c2 + (g2 + b2) >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function jf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 176 | 0; + n2 = m2 + 152 | 0; + p2 = m2 + 16 | 0; + o2 = m2; + g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; + j2 = a2 + 20 | 0; + f2 = k[j2 >> 2] | 0; + if (!g2) { + p2 = f2; + hf(a2, p2, c2, d2, e2); + r = m2; + return; + } + while (1) { + h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; + if (!h2) + break; + f2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (h2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - h2 | 0; + } + if ((l2 | 0) == 26) { + hf(a2, f2, c2, d2, e2); + r = m2; + return; + } + c2 = p2 + 56 | 0; + j2 = p2 + 4 | 0; + k[p2 >> 2] = 36160; + k[c2 >> 2] = 36180; + x = 0; + ra(62, p2 + 56 | 0, j2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + p2 = Wa() | 0; + qn(c2); + fb(p2 | 0); + } + k[p2 + 128 >> 2] = 0; + k[p2 + 132 >> 2] = -1; + k[p2 >> 2] = 36200; + k[p2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = p2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[p2 + 52 >> 2] = 16; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, n2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + f2 = Wa() | 0; + Sm(n2); + Sm(b2); + xn(j2); + break; + } + Sm(n2); + x = 0; + f2 = va(28, p2 | 0, 49029, 57) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(o2); + if (!g2) { + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + o2 = Wa() | 0; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + while (0); + p2 = f2; + qn(c2); + fb(p2 | 0); + } + function kf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; + j2 = a2 + 4 | 0; + a2 = k[j2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + g2 = i2[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; + f2 = g2 & 255; + h2 = f2 + 128 + (l[b2 + (a2 * 3 | 0) + 2 >> 0] | 0) & 255; + e2 = c2 + (a2 * 3 | 0) | 0; + i2[e2 >> 0] = (l[b2 + (a2 * 3 | 0) >> 0] | 0) + 128 + f2; + i2[e2 + 1 >> 0] = g2; + i2[e2 + 2 >> 0] = h2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = i2[b2 + (g2 + e2) >> 0] | 0; + o2 = n2 & 255; + m2 = o2 + 128 + (l[b2 + (g2 + f2) >> 0] | 0) & 255; + h2 = c2 + (g2 * 3 | 0) | 0; + i2[h2 >> 0] = (l[b2 + g2 >> 0] | 0) + 128 + o2; + i2[h2 + 1 >> 0] = n2; + i2[h2 + 2 >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = l[b2 + (g2 + e2) >> 0] | 0; + o2 = c2 + (g2 << 2) | 0; + n2 = (l[b2 + g2 >> 0] | 0) + 128 + n2 & 255 | n2 << 8 | l[b2 + (g2 + f2) >> 0] << 24 | n2 + 128 + (l[b2 + (g2 + a2) >> 0] | 0) << 16 & 16711680; + i2[o2 >> 0] = n2; + i2[o2 + 1 >> 0] = n2 >> 8; + i2[o2 + 2 >> 0] = n2 >> 16; + i2[o2 + 3 >> 0] = n2 >> 24; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[j2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + a2 = c2; + f2 = 0; + } else + return; + while (1) { + o2 = a2 + 2 | 0; + n2 = i2[a2 >> 0] | 0; + i2[a2 >> 0] = i2[o2 >> 0] | 0; + i2[o2 >> 0] = n2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + g2 | 0; + } + return; + } + function lf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36712; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = k[a2 + 8 >> 2] | 0; + if (!c2) + return; + b2 = a2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (c2 | 0)) + k[b2 >> 2] = c2; + mj(c2); + return; + } + function mf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36712; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function nf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + e2 = a2 + 40 | 0; + rf(a2, b2, k[e2 >> 2] | 0, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; + g2 = a2 + 20 | 0; + rf(a2, b2, k[g2 >> 2] | 0, c2, d2); + a2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) + return; + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 3, 35648); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Ua(e2 | 0); + fb(g2 | 0); + } else + ub(e2 | 0, 824, 96); + } + function of(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + pf(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + qf(a2, e2, b2, c2, d2); + return; + } + } + function pf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + h2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; + f2 = k[h2 >> 2] | 0; + b2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + f2 = k[g2 >> 2] | 0; + a2 = 0; + while (1) { + j2 = f2 + 2 | 0; + l2 = i2[f2 >> 0] | 0; + i2[f2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = l2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + b2 | 0; + } + f2 = k[h2 >> 2] | 0; + } + h2 = k[g2 >> 2] | 0; + } + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + e2 = i2[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; + j2 = i2[h2 + (f2 * 3 | 0) + 2 >> 0] | 0; + l2 = c2 + (f2 * 3 | 0) | 0; + i2[l2 >> 0] = i2[h2 + (f2 * 3 | 0) >> 0] | 0; + i2[l2 + 1 >> 0] = e2; + i2[l2 + 2 >> 0] = j2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + j2 = i2[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; + l2 = i2[h2 + (b2 * 3 | 0) + 2 >> 0] | 0; + i2[c2 + b2 >> 0] = i2[h2 + (b2 * 3 | 0) >> 0] | 0; + i2[c2 + (b2 + e2) >> 0] = j2; + i2[c2 + (b2 + a2) >> 0] = l2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + d2 = i2[h2 + (g2 << 2) + 1 >> 0] | 0; + j2 = i2[h2 + (g2 << 2) + 2 >> 0] | 0; + l2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; + i2[c2 + g2 >> 0] = i2[h2 + (g2 << 2) >> 0] | 0; + i2[c2 + (g2 + e2) >> 0] = d2; + i2[c2 + (g2 + a2) >> 0] = j2; + i2[c2 + (g2 + b2) >> 0] = l2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function qf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 176 | 0; + n2 = m2 + 152 | 0; + p2 = m2 + 16 | 0; + o2 = m2; + g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; + j2 = a2 + 20 | 0; + f2 = k[j2 >> 2] | 0; + if (!g2) { + p2 = f2; + pf(a2, p2, c2, d2, e2); + r = m2; + return; + } + while (1) { + h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; + if (!h2) + break; + f2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (h2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - h2 | 0; + } + if ((l2 | 0) == 26) { + pf(a2, f2, c2, d2, e2); + r = m2; + return; + } + c2 = p2 + 56 | 0; + j2 = p2 + 4 | 0; + k[p2 >> 2] = 36160; + k[c2 >> 2] = 36180; + x = 0; + ra(62, p2 + 56 | 0, j2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + p2 = Wa() | 0; + qn(c2); + fb(p2 | 0); + } + k[p2 + 128 >> 2] = 0; + k[p2 + 132 >> 2] = -1; + k[p2 >> 2] = 36200; + k[p2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = p2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[p2 + 52 >> 2] = 16; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, n2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + f2 = Wa() | 0; + Sm(n2); + Sm(b2); + xn(j2); + break; + } + Sm(n2); + x = 0; + f2 = va(28, p2 | 0, 49029, 57) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(o2); + if (!g2) { + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + o2 = Wa() | 0; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + while (0); + p2 = f2; + qn(c2); + fb(p2 | 0); + } + function rf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + j2 = a2 + 4 | 0; + a2 = k[j2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + g2 = i2[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; + h2 = i2[b2 + (a2 * 3 | 0) + 2 >> 0] | 0; + e2 = c2 + (a2 * 3 | 0) | 0; + i2[e2 >> 0] = i2[b2 + (a2 * 3 | 0) >> 0] | 0; + i2[e2 + 1 >> 0] = g2; + i2[e2 + 2 >> 0] = h2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = i2[b2 + (g2 + e2) >> 0] | 0; + m2 = i2[b2 + (g2 + f2) >> 0] | 0; + h2 = c2 + (g2 * 3 | 0) | 0; + i2[h2 >> 0] = i2[b2 + g2 >> 0] | 0; + i2[h2 + 1 >> 0] = n2; + i2[h2 + 2 >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = c2 + (g2 << 2) | 0; + m2 = l[b2 + (g2 + e2) >> 0] << 8 | l[b2 + g2 >> 0] | l[b2 + (g2 + a2) >> 0] << 16 | l[b2 + (g2 + f2) >> 0] << 24; + i2[n2 >> 0] = m2; + i2[n2 + 1 >> 0] = m2 >> 8; + i2[n2 + 2 >> 0] = m2 >> 16; + i2[n2 + 3 >> 0] = m2 >> 24; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[j2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + a2 = c2; + f2 = 0; + } else + return; + while (1) { + n2 = a2 + 2 | 0; + m2 = i2[a2 >> 0] | 0; + i2[a2 >> 0] = i2[n2 >> 0] | 0; + i2[n2 >> 0] = m2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + g2 | 0; + } + return; + } + function sf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + o2 = a2 + 180 | 0; + p2 = (k[o2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + q2 = k[a2 + 24 >> 2] | 0; + else + q2 = 1; + b2 = ia(q2 << 1, p2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + k[v2 + 8 >> 2] = c2 + (b2 * 3 | 0); + while (1) { + i2[c2 >> 0] = 0; + i2[c2 + 1 >> 0] = 0; + i2[c2 + 2 >> 0] = 0; + c2 = (k[w2 >> 2] | 0) + 3 | 0; + k[w2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + d2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!q2) + f2 = 19; + else { + if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = q2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[s2 >> 2] = e2; + f2 = e2 + (q2 << 2) | 0; + k[s2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[u2 >> 2] = f2; + f2 = 19; + break; + } + d2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + e2 = a2 + 12 | 0; + b: + do + if ((k[e2 >> 2] | 0) > 0) { + f2 = a2 + 4604 | 0; + g2 = (ia(q2, p2) | 0) + 1 | 0; + h2 = a2 + 4608 | 0; + j2 = a2 + 92 | 0; + l2 = (q2 | 0) > 0; + m2 = a2 + 4600 | 0; + n2 = 0; + c: + while (1) { + d2 = k[v2 >> 2] | 0; + b2 = d2 + 3 | 0; + k[f2 >> 2] = b2; + c2 = d2 + (g2 * 3 | 0) | 0; + k[h2 >> 2] = c2; + if (!(n2 & 1)) + b2 = g2; + else { + k[f2 >> 2] = c2; + k[h2 >> 2] = b2; + b2 = 1; + } + c2 = k[j2 >> 2] | 0; + x = 0; + Ja(k[(k[c2 >> 2] | 0) + 12 >> 2] | 0, c2 | 0, d2 + (b2 * 3 | 0) | 0, k[o2 >> 2] | 0, p2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + f2 = 29; + break; + } + if (l2) { + b2 = k[s2 >> 2] | 0; + c2 = k[f2 >> 2] | 0; + d2 = 0; + do { + k[m2 >> 2] = k[b2 + (d2 << 2) >> 2]; + y2 = k[o2 >> 2] | 0; + b2 = c2 + (y2 * 3 | 0) | 0; + c2 = c2 + ((y2 + -1 | 0) * 3 | 0) | 0; + i2[b2 >> 0] = i2[c2 >> 0] | 0; + i2[b2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[b2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + b2 = k[f2 >> 2] | 0; + c2 = (k[h2 >> 2] | 0) + -3 | 0; + i2[c2 >> 0] = i2[b2 >> 0] | 0; + i2[c2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[c2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + x = 0; + ra(70, a2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = 28; + break c; + } + b2 = k[s2 >> 2] | 0; + k[b2 + (d2 << 2) >> 2] = k[m2 >> 2]; + c2 = (k[f2 >> 2] | 0) + (p2 * 3 | 0) | 0; + k[f2 >> 2] = c2; + k[h2 >> 2] = (k[h2 >> 2] | 0) + (p2 * 3 | 0); + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (q2 | 0)); + } + n2 = n2 + 1 | 0; + if ((n2 | 0) >= (k[e2 >> 2] | 0)) { + f2 = 41; + break b; + } + } + if ((f2 | 0) == 28) { + d2 = Wa() | 0; + break; + } else if ((f2 | 0) == 29) { + d2 = Wa() | 0; + break; + } + } else + f2 = 41; + while (0); + do + if ((f2 | 0) == 41) { + x = 0; + qa(182, a2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + function tf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = a2 + 180 | 0; + if ((k[A2 >> 2] | 0) <= 0) + return; + B2 = a2 + 4608 | 0; + C2 = a2 + 4604 | 0; + D2 = a2 + 4612 | 0; + z2 = 0; + while (1) { + w2 = z2 + -1 | 0; + f2 = k[B2 >> 2] | 0; + g2 = k[C2 >> 2] | 0; + b2 = z2 + 1 | 0; + e2 = l[g2 + (z2 * 3 | 0) >> 0] | 0; + y2 = k[D2 >> 2] | 0; + h2 = l[g2 + (w2 * 3 | 0) >> 0] | 0; + j2 = e2 - h2 | 0; + m2 = l[f2 + (w2 * 3 | 0) >> 0] | 0; + n2 = h2 - m2 | 0; + o2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) >> 0] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[y2 + j2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + n2 >> 0] | 0) | 0; + d2 = l[g2 + (z2 * 3 | 0) + 1 >> 0] | 0; + p2 = l[g2 + (w2 * 3 | 0) + 1 >> 0] | 0; + q2 = d2 - p2 | 0; + r2 = l[f2 + (w2 * 3 | 0) + 1 >> 0] | 0; + s2 = p2 - r2 | 0; + t2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 1 >> 0] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[y2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + s2 >> 0] | 0) | 0; + c2 = l[g2 + (z2 * 3 | 0) + 2 >> 0] | 0; + u2 = l[g2 + (w2 * 3 | 0) + 2 >> 0] | 0; + v2 = c2 - u2 | 0; + w2 = l[f2 + (w2 * 3 | 0) + 2 >> 0] | 0; + x2 = u2 - w2 | 0; + y2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 2 >> 0] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[y2 + v2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + x2 >> 0] | 0) | 0; + if (!(t2 | o2 | y2)) + b2 = (uf(a2, z2, 0) | 0) + z2 | 0; + else { + g2 = l[f2 + (z2 * 3 | 0) >> 0] | 0; + f2 = e2 - m2 >> 31; + if ((f2 ^ n2 | 0) >= 0) + if ((f2 ^ j2 | 0) < 0) + e2 = m2; + else + e2 = m2 - h2 + e2 | 0; + g2 = vf(a2, o2, g2, e2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 1 >> 0] | 0; + e2 = d2 - r2 >> 31; + if ((e2 ^ s2 | 0) >= 0) + if ((e2 ^ q2 | 0) < 0) + d2 = r2; + else + d2 = r2 - p2 + d2 | 0; + e2 = vf(a2, t2, f2, d2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 2 >> 0] | 0; + d2 = c2 - w2 >> 31; + if ((d2 ^ x2 | 0) >= 0) + if ((d2 ^ v2 | 0) < 0) + c2 = w2; + else + c2 = w2 - u2 + c2 | 0; + y2 = vf(a2, y2, f2, c2, 0) | 0; + z2 = (k[B2 >> 2] | 0) + (z2 * 3 | 0) | 0; + i2[z2 >> 0] = g2; + i2[z2 + 1 >> 0] = e2; + i2[z2 + 2 >> 0] = y2; + } + if ((b2 | 0) < (k[A2 >> 2] | 0)) + z2 = b2; + else + break; + } + return; + } + function uf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0; + B2 = r; + r = r + 32 | 0; + A2 = B2 + 15 | 0; + p2 = B2 + 12 | 0; + o2 = B2 + 9 | 0; + q2 = B2 + 6 | 0; + w2 = B2 + 3 | 0; + x2 = B2; + y2 = (k[a2 + 180 >> 2] | 0) - b2 | 0; + z2 = k[a2 + 4608 >> 2] | 0; + s2 = k[a2 + 4604 >> 2] | 0; + v2 = z2 + ((b2 + -1 | 0) * 3 | 0) | 0; + t2 = i2[v2 >> 0] | 0; + u2 = i2[v2 + 1 >> 0] | 0; + v2 = i2[v2 + 2 >> 0] | 0; + c2 = t2 & 255; + d2 = a2 + 144 | 0; + e2 = u2 & 255; + f2 = v2 & 255; + n2 = 0; + while (1) { + g2 = z2 + ((n2 + b2 | 0) * 3 | 0) | 0; + h2 = g2 + 1 | 0; + j2 = g2 + 2 | 0; + C2 = (l[g2 >> 0] | 0) - c2 | 0; + m2 = k[d2 >> 2] | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (m2 | 0)) + break; + C2 = (l[h2 >> 0] | 0) - e2 | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (m2 | 0)) + break; + C2 = (l[j2 >> 0] | 0) - f2 | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (m2 | 0)) + break; + i2[g2 >> 0] = t2; + i2[h2 >> 0] = u2; + i2[j2 >> 0] = v2; + n2 = n2 + 1 | 0; + if ((n2 | 0) == (y2 | 0)) { + n2 = y2; + break; + } + } + e2 = (n2 | 0) == (y2 | 0); + f2 = a2 + 4600 | 0; + d2 = k[36476 + (k[f2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[f2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[f2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + b2 = n2 + b2 | 0; + C2 = z2 + (b2 * 3 | 0) | 0; + i2[w2 >> 0] = i2[C2 >> 0] | 0; + i2[w2 + 1 >> 0] = i2[C2 + 1 >> 0] | 0; + i2[w2 + 2 >> 0] = i2[C2 + 2 >> 0] | 0; + i2[x2 >> 0] = t2; + i2[x2 + 1 >> 0] = u2; + i2[x2 + 2 >> 0] = v2; + b2 = s2 + (b2 * 3 | 0) | 0; + i2[o2 >> 0] = i2[w2 >> 0] | 0; + i2[o2 + 1 >> 0] = i2[w2 + 1 >> 0] | 0; + i2[o2 + 2 >> 0] = i2[w2 + 2 >> 0] | 0; + i2[p2 >> 0] = i2[x2 >> 0] | 0; + i2[p2 + 1 >> 0] = i2[x2 + 1 >> 0] | 0; + i2[p2 + 2 >> 0] = i2[x2 + 2 >> 0] | 0; + i2[A2 >> 0] = i2[b2 >> 0] | 0; + i2[A2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[A2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + xf(q2, a2, o2, p2, A2); + i2[C2 >> 0] = i2[q2 >> 0] | 0; + i2[C2 + 1 >> 0] = i2[q2 + 1 >> 0] | 0; + i2[C2 + 2 >> 0] = i2[q2 + 2 >> 0] | 0; + C2 = k[f2 >> 2] | 0; + k[f2 >> 2] = (C2 | 0) < 1 ? 0 : C2 + -1 | 0; + C2 = n2 + 1 | 0; + r = B2; + return C2 | 0; + } + if (!c2) { + C2 = y2; + r = B2; + return C2 | 0; + } + ke(a2, 1, 1); + C2 = y2; + r = B2; + return C2 | 0; + } + function vf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + f2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 196 + (f2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((g2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; + e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 136 | 0; + d2 = k[q2 >> 2] | 0; + if ((e2 & d2 | 0) == (e2 | 0)) + l2 = e2; + else + l2 = d2 & ~(e2 >> 31); + e2 = (c2 - l2 ^ r2) - r2 | 0; + i3 = a2 + 144 | 0; + d2 = k[i3 >> 2] | 0; + if ((e2 | 0) > 0) + e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; + else + e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; + n2 = a2 + 140 | 0; + h2 = k[n2 >> 2] | 0; + c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; + h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; + f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; + if (!(d2 | b2)) + e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ h2; + wf(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); + d2 = k[a2 + 160 >> 2] | 0; + b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; + e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; + c2 = j[p2 >> 1] | 0; + if ((c2 | 0) == (d2 | 0)) { + b2 = b2 >> 1; + e2 = e2 >> 1; + c2 = d2 >> 1; + } + k[o2 >> 2] = b2; + d2 = c2 + 1 | 0; + j[p2 >> 1] = d2; + b2 = d2 + e2 | 0; + if ((b2 | 0) >= 1) { + if ((e2 | 0) > 0) { + e2 = e2 - d2 | 0; + p2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + e2 = (e2 | 0) > 0 ? 0 : e2; + } + } else { + e2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); + e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; + } + k[f2 >> 2] = e2; + d2 = k[i3 >> 2] | 0; + c2 = d2 << 1 | 1; + b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; + if ((b2 | 0) >= (0 - d2 | 0)) { + e2 = k[q2 >> 2] | 0; + if ((e2 + d2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; + } else { + b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; + e2 = k[q2 >> 2] | 0; + } + if ((b2 & e2 | 0) == (b2 | 0)) { + r2 = b2; + r2 = r2 & 255; + return r2 | 0; + } + r2 = e2 & ~(b2 >> 31); + r2 = r2 & 255; + return r2 | 0; + } + function wf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = c2 >> b2; + f2 = a2 + 148 | 0; + g2 = d2 - (k[f2 >> 2] | 0) | 0; + if ((e2 | 0) < (g2 + -1 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((g2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); + } else + ke(a2, 1, g2); + b2 = k[f2 >> 2] | 0; + ke(a2, (1 << b2) + -1 & c2 + -1, b2); + return; + } + function xf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + r2 = b2 + 136 | 0; + o2 = l[e2 >> 0] | 0; + p2 = o2 - (l[d2 >> 0] | 0) >> 31 | 1; + f2 = ia(p2, (l[c2 >> 0] | 0) - o2 | 0) | 0; + m2 = b2 + 144 | 0; + g2 = k[m2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + w2 = b2 + 140 | 0; + j2 = k[w2 >> 2] | 0; + h2 = ((f2 | 0) < 0 ? j2 : 0) + f2 | 0; + j2 = h2 - ((h2 | 0) < ((j2 + 1 | 0) / 2 | 0 | 0) ? 0 : j2) | 0; + h2 = b2 + 4576 | 0; + yf(b2, h2, j2); + t2 = l[e2 + 1 >> 0] | 0; + u2 = t2 - (l[d2 + 1 >> 0] | 0) >> 31 | 1; + f2 = ia(u2, (l[c2 + 1 >> 0] | 0) - t2 | 0) | 0; + g2 = k[m2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + q2 = k[w2 >> 2] | 0; + v2 = ((f2 | 0) < 0 ? q2 : 0) + f2 | 0; + q2 = v2 - ((v2 | 0) < ((q2 + 1 | 0) / 2 | 0 | 0) ? 0 : q2) | 0; + yf(b2, h2, q2); + v2 = l[e2 + 2 >> 0] | 0; + s2 = v2 - (l[d2 + 2 >> 0] | 0) >> 31 | 1; + f2 = ia(s2, (l[c2 + 2 >> 0] | 0) - v2 | 0) | 0; + g2 = k[m2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + n2 = k[w2 >> 2] | 0; + f2 = ((f2 | 0) < 0 ? n2 : 0) + f2 | 0; + n2 = f2 - ((f2 | 0) < ((n2 + 1 | 0) / 2 | 0 | 0) ? 0 : n2) | 0; + yf(b2, h2, n2); + h2 = k[m2 >> 2] | 0; + m2 = h2 << 1 | 1; + f2 = (ia(ia(m2, j2) | 0, p2) | 0) + o2 | 0; + c2 = 0 - h2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + g2 = k[r2 >> 2] | 0; + if ((g2 + h2 | 0) < (f2 | 0)) { + f2 = f2 - (ia(k[w2 >> 2] | 0, m2) | 0) | 0; + d2 = g2; + } else + d2 = g2; + } else { + f2 = (ia(k[w2 >> 2] | 0, m2) | 0) + f2 | 0; + d2 = k[r2 >> 2] | 0; + } + if ((f2 & d2 | 0) != (f2 | 0)) + f2 = d2 & ~(f2 >> 31); + e2 = f2 & 255; + f2 = (ia(ia(m2, q2) | 0, u2) | 0) + t2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + if ((d2 + h2 | 0) < (f2 | 0)) + f2 = f2 - (ia(k[w2 >> 2] | 0, m2) | 0) | 0; + } else + f2 = (ia(k[w2 >> 2] | 0, m2) | 0) + f2 | 0; + if ((f2 & d2 | 0) != (f2 | 0)) + f2 = d2 & ~(f2 >> 31); + g2 = f2 & 255; + f2 = (ia(ia(m2, n2) | 0, s2) | 0) + v2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + if ((d2 + h2 | 0) < (f2 | 0)) + f2 = f2 - (ia(k[w2 >> 2] | 0, m2) | 0) | 0; + } else + f2 = (ia(k[w2 >> 2] | 0, m2) | 0) + f2 | 0; + if ((f2 & d2 | 0) == (f2 | 0)) { + w2 = f2; + w2 = w2 & 255; + i2[a2 >> 0] = e2; + v2 = a2 + 1 | 0; + i2[v2 >> 0] = g2; + a2 = a2 + 2 | 0; + i2[a2 >> 0] = w2; + return; + } + w2 = d2 & ~(f2 >> 31); + w2 = w2 & 255; + i2[a2 >> 0] = e2; + v2 = a2 + 1 | 0; + i2[v2 >> 0] = g2; + a2 = a2 + 2 | 0; + i2[a2 >> 0] = w2; + return; + } + function yf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + wf(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function zf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 144 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 136 >> 2] | 0; + b2 = a2 + 152 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 152 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4616 | 0; + d2 = m2 << 1; + e2 = a2 + 4620 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4612 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 192 | 0; + j2 = a2 + 188 | 0; + g2 = a2 + 184 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Af(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35996; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Bf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35996; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Cf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 65535, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 164 >> 2] = f2; + k[a2 + 168 >> 2] = d2; + Lf(a2); + d2 = 0; + do { + k[a2 + 172 + (d2 * 12 | 0) >> 2] = 1024; + k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4552 >> 2] = 1024; + k[a2 + 4556 >> 2] = 0; + i2[a2 + 4560 >> 0] = h2; + i2[a2 + 4561 >> 0] = 1; + i2[a2 + 4562 >> 0] = 0; + k[a2 + 4564 >> 2] = 1024; + k[a2 + 4568 >> 2] = 1; + i2[a2 + 4572 >> 0] = h2; + i2[a2 + 4573 >> 0] = 1; + i2[a2 + 4574 >> 0] = 0; + k[a2 + 4576 >> 2] = 0; + r = e2; + return; + } + function Df(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4600) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35772; + e2 = b2 + 132 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 148 >> 2] = k[d2 >> 2]; + k[b2 + 152 >> 2] = 0; + k[b2 + 156 >> 2] = 0; + k[b2 + 160 >> 2] = 0; + e2 = b2 + 4544 | 0; + d2 = b2 + 164 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4556 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4568 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + Ff(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + Ff(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function Ef(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Ff(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + u2 = r; + r = r + 32 | 0; + w2 = u2 + 12 | 0; + t2 = u2; + p2 = a2 + 156 | 0; + q2 = (k[p2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + s2 = k[a2 + 24 >> 2] | 0; + else + s2 = 1; + b2 = ia(s2 << 1, q2) | 0; + k[w2 >> 2] = 0; + y2 = w2 + 4 | 0; + k[y2 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, w2 | 0), v2 = x, x = 0, v2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + k[w2 >> 2] = d2; + v2 = d2 + (b2 << 1) | 0; + k[w2 + 8 >> 2] = v2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[y2 >> 2] = v2; + break; + } + d2 = Wa() | 0; + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[t2 >> 2] = 0; + v2 = t2 + 4 | 0; + k[v2 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + do + if (!s2) + g2 = 18; + else { + if (!(s2 >>> 0 > 1073741823 ? (x = 0, qa(178, t2 | 0), o2 = x, x = 0, o2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = s2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + k[t2 >> 2] = f2; + g2 = f2 + (s2 << 2) | 0; + k[t2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[v2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 12 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4580 | 0; + h2 = (ia(s2, q2) | 0) + 1 | 0; + i3 = a2 + 4584 | 0; + l2 = a2 + 92 | 0; + m2 = (s2 | 0) > 0; + n2 = a2 + 4576 | 0; + o2 = 0; + b: + while (1) { + c2 = k[w2 >> 2] | 0; + b2 = c2 + 2 | 0; + k[g2 >> 2] = b2; + c2 = c2 + (h2 << 1) | 0; + k[i3 >> 2] = c2; + if (!(o2 & 1)) + b2 = c2; + else { + k[g2 >> 2] = c2; + k[i3 >> 2] = b2; + } + e2 = k[l2 >> 2] | 0; + x = 0; + Ja(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 28; + break; + } + if (m2) { + b2 = k[g2 >> 2] | 0; + c2 = k[i3 >> 2] | 0; + d2 = k[t2 >> 2] | 0; + e2 = 0; + do { + k[n2 >> 2] = k[d2 + (e2 << 2) >> 2]; + d2 = k[p2 >> 2] | 0; + j[b2 + (d2 << 1) >> 1] = j[b2 + (d2 + -1 << 1) >> 1] | 0; + j[c2 + -2 >> 1] = j[b2 >> 1] | 0; + x = 0; + ra(71, a2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 27; + break b; + } + d2 = k[t2 >> 2] | 0; + k[d2 + (e2 << 2) >> 2] = k[n2 >> 2]; + b2 = (k[g2 >> 2] | 0) + (q2 << 1) | 0; + k[g2 >> 2] = b2; + c2 = (k[i3 >> 2] | 0) + (q2 << 1) | 0; + k[i3 >> 2] = c2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (s2 | 0)); + } + o2 = o2 + 1 | 0; + if ((o2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 40; + break a; + } + } + if ((g2 | 0) == 27) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 28) { + d2 = Wa() | 0; + break; + } + } else + g2 = 40; + while (0); + do + if ((g2 | 0) == 40) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[v2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[v2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[w2 >> 2] | 0; + if (!b2) { + r = u2; + return; + } + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = u2; + return; + } + while (0); + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Gf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4580 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 156 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4584 | 0; + r2 = a2 + 4588 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (If(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = Hf(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function Hf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + i3 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 172 + (i3 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((g2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; + e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((e2 & 65535 | 0) == (e2 | 0)) + m2 = e2; + else + m2 = e2 >> 31 & 65535 ^ 65535; + h2 = (c2 - m2 ^ q2) - q2 << 16; + l2 = h2 >> 16; + if (!f2) + e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ l2; + d2 = d2 >> 30 ^ d2 << 1; + e2 = d2 >> f2; + if ((e2 | 0) < 47) { + if ((e2 | 0) > 30) { + g2 = (e2 | 0) / 2 | 0; + ke(a2, 0, g2); + e2 = e2 - g2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, d2 & (1 << f2) + -1, f2); + } else { + ke(a2, 0, 31); + ke(a2, 1, 17); + ke(a2, d2 + 65535 & 65535, 16); + } + d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; + g2 = j[p2 >> 1] | 0; + e2 = g2 << 16 >> 16 == 64; + f2 = e2 & 1; + c2 = (k[d2 >> 2] | 0) + l2 >> f2; + g2 = e2 ? 32 : g2 << 16 >> 16; + k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -65536 ? l2 : 0 - l2 | 0) >> f2; + f2 = g2 + 1 | 0; + j[p2 >> 1] = f2; + e2 = f2 + c2 | 0; + if ((e2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + if ((c2 | 0) <= 0) { + p2 = c2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + p2 = c2 - f2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + function If(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0; + g2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; + h2 = k[a2 + 4584 >> 2] | 0; + l2 = k[a2 + 4580 >> 2] | 0; + e2 = j[h2 + (b2 + -1 << 1) >> 1] | 0; + d2 = 0; + while (1) { + c2 = h2 + (d2 + b2 << 1) | 0; + if ((j[c2 >> 1] | 0) != e2 << 16 >> 16) { + n2 = d2; + break; + } + j[c2 >> 1] = e2; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (g2 | 0)) { + n2 = g2; + break; + } + } + f2 = e2 & 65535; + e2 = (n2 | 0) == (g2 | 0); + i3 = a2 + 4576 | 0; + d2 = k[36476 + (k[i3 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[i3 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[i3 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (e2) { + if (!c2) { + a2 = g2; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = g2; + return a2 | 0; + } + ke(a2, c2, d2 + 1 | 0); + c2 = n2 + b2 | 0; + e2 = h2 + (c2 << 1) | 0; + d2 = m[e2 >> 1] | 0; + c2 = m[l2 + (c2 << 1) >> 1] | 0; + l2 = f2 - c2 | 0; + if ((((l2 | 0) > -1 ? l2 : 0 - l2 | 0) | 0) < 1) { + c2 = d2 - f2 << 16 >> 16; + Jf(a2, a2 + 4564 | 0, c2); + c2 = c2 + f2 | 0; + } else { + l2 = c2 - f2 >> 31 | 1; + b2 = (ia(d2 - c2 << 16, l2) | 0) >> 16; + Jf(a2, a2 + 4552 | 0, b2); + c2 = (ia(b2, l2) | 0) + c2 | 0; + } + j[e2 >> 1] = c2; + a2 = k[i3 >> 2] | 0; + k[i3 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = n2 + 1 | 0; + return a2 | 0; + } + function Jf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + Kf(a2, e2, d2, 63 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function Kf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = c2 >> b2; + f2 = d2 + -16 | 0; + if ((e2 | 0) < (d2 + -17 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((f2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -47 | 0); + } else + ke(a2, 1, f2); + ke(a2, c2 + 65535 & 65535, 16); + return; + } + function Lf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 65535, 0); + j2 = a2 + 160 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { + j2 = k[8909] | 0; + k[a2 + 4588 >> 2] = j2 + (((k[8910] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4592 | 0; + d2 = a2 + 4596 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 131072) { + if (f2 >>> 0 > 131072 ? (g2 = b2 + 131072 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 131072 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4588 | 0; + k[h2 >> 2] = b2 + 65536; + g2 = a2 + 168 | 0; + e2 = a2 + 164 | 0; + f2 = -65536; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 65536) + break; + } + r = l2; + return; + } + function Mf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35968; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Nf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35968; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Of(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 4095, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 164 >> 2] = f2; + k[a2 + 168 >> 2] = d2; + Xf(a2); + d2 = 0; + do { + k[a2 + 172 + (d2 * 12 | 0) >> 2] = 64; + k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4552 >> 2] = 64; + k[a2 + 4556 >> 2] = 0; + i2[a2 + 4560 >> 0] = h2; + i2[a2 + 4561 >> 0] = 1; + i2[a2 + 4562 >> 0] = 0; + k[a2 + 4564 >> 2] = 64; + k[a2 + 4568 >> 2] = 1; + i2[a2 + 4572 >> 0] = h2; + i2[a2 + 4573 >> 0] = 1; + i2[a2 + 4574 >> 0] = 0; + k[a2 + 4576 >> 2] = 0; + r = e2; + return; + } + function Pf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4600) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35744; + e2 = b2 + 132 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 148 >> 2] = k[d2 >> 2]; + k[b2 + 152 >> 2] = 0; + k[b2 + 156 >> 2] = 0; + k[b2 + 160 >> 2] = 0; + e2 = b2 + 4544 | 0; + d2 = b2 + 164 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4556 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4568 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + Rf(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + Rf(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function Qf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Rf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + u2 = r; + r = r + 32 | 0; + w2 = u2 + 12 | 0; + t2 = u2; + p2 = a2 + 156 | 0; + q2 = (k[p2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + s2 = k[a2 + 24 >> 2] | 0; + else + s2 = 1; + b2 = ia(s2 << 1, q2) | 0; + k[w2 >> 2] = 0; + y2 = w2 + 4 | 0; + k[y2 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, w2 | 0), v2 = x, x = 0, v2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + k[w2 >> 2] = d2; + v2 = d2 + (b2 << 1) | 0; + k[w2 + 8 >> 2] = v2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[y2 >> 2] = v2; + break; + } + d2 = Wa() | 0; + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[t2 >> 2] = 0; + v2 = t2 + 4 | 0; + k[v2 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + do + if (!s2) + g2 = 18; + else { + if (!(s2 >>> 0 > 1073741823 ? (x = 0, qa(178, t2 | 0), o2 = x, x = 0, o2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = s2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + k[t2 >> 2] = f2; + g2 = f2 + (s2 << 2) | 0; + k[t2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[v2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 12 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4580 | 0; + h2 = (ia(s2, q2) | 0) + 1 | 0; + i3 = a2 + 4584 | 0; + l2 = a2 + 92 | 0; + m2 = (s2 | 0) > 0; + n2 = a2 + 4576 | 0; + o2 = 0; + b: + while (1) { + c2 = k[w2 >> 2] | 0; + b2 = c2 + 2 | 0; + k[g2 >> 2] = b2; + c2 = c2 + (h2 << 1) | 0; + k[i3 >> 2] = c2; + if (!(o2 & 1)) + b2 = c2; + else { + k[g2 >> 2] = c2; + k[i3 >> 2] = b2; + } + e2 = k[l2 >> 2] | 0; + x = 0; + Ja(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 28; + break; + } + if (m2) { + b2 = k[g2 >> 2] | 0; + c2 = k[i3 >> 2] | 0; + d2 = k[t2 >> 2] | 0; + e2 = 0; + do { + k[n2 >> 2] = k[d2 + (e2 << 2) >> 2]; + d2 = k[p2 >> 2] | 0; + j[b2 + (d2 << 1) >> 1] = j[b2 + (d2 + -1 << 1) >> 1] | 0; + j[c2 + -2 >> 1] = j[b2 >> 1] | 0; + x = 0; + ra(72, a2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 27; + break b; + } + d2 = k[t2 >> 2] | 0; + k[d2 + (e2 << 2) >> 2] = k[n2 >> 2]; + b2 = (k[g2 >> 2] | 0) + (q2 << 1) | 0; + k[g2 >> 2] = b2; + c2 = (k[i3 >> 2] | 0) + (q2 << 1) | 0; + k[i3 >> 2] = c2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (s2 | 0)); + } + o2 = o2 + 1 | 0; + if ((o2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 40; + break a; + } + } + if ((g2 | 0) == 27) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 28) { + d2 = Wa() | 0; + break; + } + } else + g2 = 40; + while (0); + do + if ((g2 | 0) == 40) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[v2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[v2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[w2 >> 2] | 0; + if (!b2) { + r = u2; + return; + } + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = u2; + return; + } + while (0); + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Sf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4580 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 156 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4584 | 0; + r2 = a2 + 4588 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (Uf(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = Tf(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function Tf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + i3 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 172 + (i3 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((g2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; + e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((e2 & 4095 | 0) == (e2 | 0)) + m2 = e2; + else + m2 = e2 >> 31 & 4095 ^ 4095; + h2 = (c2 - m2 ^ q2) - q2 << 20; + l2 = h2 >> 20; + if (!f2) + e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ l2; + d2 = d2 >> 30 ^ d2 << 1; + e2 = d2 >> f2; + if ((e2 | 0) < 35) { + if ((e2 | 0) > 30) { + g2 = (e2 | 0) / 2 | 0; + ke(a2, 0, g2); + e2 = e2 - g2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, d2 & (1 << f2) + -1, f2); + } else { + ke(a2, 0, 31); + ke(a2, 1, 5); + ke(a2, d2 + 4095 & 4095, 12); + } + d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; + g2 = j[p2 >> 1] | 0; + e2 = g2 << 16 >> 16 == 64; + f2 = e2 & 1; + c2 = (k[d2 >> 2] | 0) + l2 >> f2; + g2 = e2 ? 32 : g2 << 16 >> 16; + k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -1048576 ? l2 : 0 - l2 | 0) >> f2; + f2 = g2 + 1 | 0; + j[p2 >> 1] = f2; + e2 = f2 + c2 | 0; + if ((e2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + if ((c2 | 0) <= 0) { + p2 = c2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + p2 = c2 - f2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + function Uf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0; + g2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; + h2 = k[a2 + 4584 >> 2] | 0; + l2 = k[a2 + 4580 >> 2] | 0; + e2 = j[h2 + (b2 + -1 << 1) >> 1] | 0; + d2 = 0; + while (1) { + c2 = h2 + (d2 + b2 << 1) | 0; + if ((j[c2 >> 1] | 0) != e2 << 16 >> 16) { + n2 = d2; + break; + } + j[c2 >> 1] = e2; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (g2 | 0)) { + n2 = g2; + break; + } + } + f2 = e2 & 65535; + e2 = (n2 | 0) == (g2 | 0); + i3 = a2 + 4576 | 0; + d2 = k[36476 + (k[i3 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[i3 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[i3 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (e2) { + if (!c2) { + a2 = g2; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = g2; + return a2 | 0; + } + ke(a2, c2, d2 + 1 | 0); + c2 = n2 + b2 | 0; + e2 = h2 + (c2 << 1) | 0; + d2 = m[e2 >> 1] | 0; + c2 = m[l2 + (c2 << 1) >> 1] | 0; + l2 = f2 - c2 | 0; + if ((((l2 | 0) > -1 ? l2 : 0 - l2 | 0) | 0) < 1) { + c2 = d2 - f2 << 20 >> 20; + Vf(a2, a2 + 4564 | 0, c2); + c2 = c2 + f2 | 0; + } else { + l2 = c2 - f2 >> 31 | 1; + b2 = (ia(d2 - c2 << 20, l2) | 0) >> 20; + Vf(a2, a2 + 4552 | 0, b2); + c2 = (ia(b2, l2) | 0) + c2 | 0; + } + j[e2 >> 1] = c2 & 4095; + a2 = k[i3 >> 2] | 0; + k[i3 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = n2 + 1 | 0; + return a2 | 0; + } + function Vf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + Wf(a2, e2, d2, 47 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function Wf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = c2 >> b2; + f2 = d2 + -12 | 0; + if ((e2 | 0) < (d2 + -13 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((f2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -43 | 0); + } else + ke(a2, 1, f2); + ke(a2, c2 + 4095 & 4095, 12); + return; + } + function Xf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 4095, 0); + j2 = a2 + 160 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { + j2 = k[8906] | 0; + k[a2 + 4588 >> 2] = j2 + (((k[8907] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4592 | 0; + d2 = a2 + 4596 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 8192) { + if (f2 >>> 0 > 8192 ? (g2 = b2 + 8192 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 8192 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4588 | 0; + k[h2 >> 2] = b2 + 4096; + g2 = a2 + 168 | 0; + e2 = a2 + 164 | 0; + f2 = -4096; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 4096) + break; + } + r = l2; + return; + } + function Yf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35940; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Zf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35940; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function _f(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 255, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 164 >> 2] = f2; + k[a2 + 168 >> 2] = d2; + hg(a2); + d2 = 0; + do { + k[a2 + 172 + (d2 * 12 | 0) >> 2] = 4; + k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4552 >> 2] = 4; + k[a2 + 4556 >> 2] = 0; + i2[a2 + 4560 >> 0] = h2; + i2[a2 + 4561 >> 0] = 1; + i2[a2 + 4562 >> 0] = 0; + k[a2 + 4564 >> 2] = 4; + k[a2 + 4568 >> 2] = 1; + i2[a2 + 4572 >> 0] = h2; + i2[a2 + 4573 >> 0] = 1; + i2[a2 + 4574 >> 0] = 0; + k[a2 + 4576 >> 2] = 0; + r = e2; + return; + } + function $f(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4600) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35716; + e2 = b2 + 132 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 148 >> 2] = k[d2 >> 2]; + k[b2 + 152 >> 2] = 0; + k[b2 + 156 >> 2] = 0; + k[b2 + 160 >> 2] = 0; + e2 = b2 + 4544 | 0; + d2 = b2 + 164 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4556 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4568 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + bg(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + bg(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function ag(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function bg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + o2 = a2 + 156 | 0; + p2 = (k[o2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + q2 = k[a2 + 24 >> 2] | 0; + else + q2 = 1; + b2 = ia(q2 << 1, p2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + k[v2 + 8 >> 2] = c2 + b2; + while (1) { + i2[c2 >> 0] = 0; + c2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!q2) + f2 = 19; + else { + if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = q2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[s2 >> 2] = e2; + f2 = e2 + (q2 << 2) | 0; + k[s2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[u2 >> 2] = f2; + f2 = 19; + break; + } + c2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + e2 = a2 + 12 | 0; + b: + do + if ((k[e2 >> 2] | 0) > 0) { + f2 = a2 + 4580 | 0; + g2 = (ia(q2, p2) | 0) + 1 | 0; + h2 = a2 + 4584 | 0; + j2 = a2 + 92 | 0; + l2 = (q2 | 0) > 0; + m2 = a2 + 4576 | 0; + n2 = 0; + c: + while (1) { + c2 = k[v2 >> 2] | 0; + b2 = c2 + 1 | 0; + k[f2 >> 2] = b2; + c2 = c2 + g2 | 0; + k[h2 >> 2] = c2; + if (!(n2 & 1)) + b2 = c2; + else { + k[f2 >> 2] = c2; + k[h2 >> 2] = b2; + } + d2 = k[j2 >> 2] | 0; + x = 0; + Ja(k[(k[d2 >> 2] | 0) + 12 >> 2] | 0, d2 | 0, b2 | 0, k[o2 >> 2] | 0, p2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + f2 = 29; + break; + } + if (l2) { + b2 = k[f2 >> 2] | 0; + c2 = k[s2 >> 2] | 0; + d2 = 0; + do { + k[m2 >> 2] = k[c2 + (d2 << 2) >> 2]; + c2 = k[o2 >> 2] | 0; + i2[b2 + c2 >> 0] = i2[b2 + (c2 + -1) >> 0] | 0; + i2[(k[h2 >> 2] | 0) + -1 >> 0] = i2[k[f2 >> 2] >> 0] | 0; + x = 0; + ra(73, a2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = 28; + break c; + } + c2 = k[s2 >> 2] | 0; + k[c2 + (d2 << 2) >> 2] = k[m2 >> 2]; + b2 = (k[f2 >> 2] | 0) + p2 | 0; + k[f2 >> 2] = b2; + k[h2 >> 2] = (k[h2 >> 2] | 0) + p2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (q2 | 0)); + } + n2 = n2 + 1 | 0; + if ((n2 | 0) >= (k[e2 >> 2] | 0)) { + f2 = 41; + break b; + } + } + if ((f2 | 0) == 28) { + c2 = Wa() | 0; + break; + } else if ((f2 | 0) == 29) { + c2 = Wa() | 0; + break; + } + } else + f2 = 41; + while (0); + do + if ((f2 | 0) == 41) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + function cg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + o2 = a2 + 4580 | 0; + b2 = k[o2 >> 2] | 0; + r2 = a2 + 156 | 0; + if ((k[r2 >> 2] | 0) <= 0) + return; + p2 = a2 + 4584 | 0; + q2 = a2 + 4588 | 0; + e2 = b2; + f2 = l[b2 + -1 >> 0] | 0; + b2 = l[b2 >> 0] | 0; + n2 = 0; + while (1) { + m2 = k[p2 >> 2] | 0; + j2 = l[m2 + (n2 + -1) >> 0] | 0; + d2 = n2 + 1 | 0; + c2 = l[e2 + d2 >> 0] | 0; + h2 = k[q2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - j2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (eg(a2, n2, 0) | 0) + n2 | 0; + c2 = k[o2 >> 2] | 0; + b2 = l[c2 + (d2 + -1) >> 0] | 0; + c2 = l[c2 + d2 >> 0] | 0; + } else { + f2 = b2 - j2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = j2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + m2 = dg(a2, h2, l[m2 + n2 >> 0] | 0, e2, 0) | 0; + i2[(k[p2 >> 2] | 0) + n2 >> 0] = m2; + } + if ((d2 | 0) >= (k[r2 >> 2] | 0)) + break; + e2 = k[o2 >> 2] | 0; + f2 = b2; + b2 = c2; + n2 = d2; + } + return; + } + function dg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + i3 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 172 + (i3 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((g2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; + e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((e2 & 255 | 0) == (e2 | 0)) + m2 = e2; + else + m2 = e2 >> 31 & 255 ^ 255; + h2 = (c2 - m2 ^ q2) - q2 << 24; + l2 = h2 >> 24; + if (!f2) + e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + e2 = e2 ^ l2; + e2 = e2 >> 30 ^ e2 << 1; + d2 = e2 >> f2; + if ((d2 | 0) < 23) { + ke(a2, 1, d2 + 1 | 0); + ke(a2, e2 & (1 << f2) + -1, f2); + } else { + ke(a2, 1, 24); + ke(a2, e2 + 255 & 255, 8); + } + d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; + g2 = j[p2 >> 1] | 0; + e2 = g2 << 16 >> 16 == 64; + f2 = e2 & 1; + c2 = (k[d2 >> 2] | 0) + l2 >> f2; + g2 = e2 ? 32 : g2 << 16 >> 16; + k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -16777216 ? l2 : 0 - l2 | 0) >> f2; + f2 = g2 + 1 | 0; + j[p2 >> 1] = f2; + e2 = f2 + c2 | 0; + if ((e2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + if ((c2 | 0) <= 0) { + p2 = c2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + p2 = c2 - f2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + function eg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + g2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; + h2 = k[a2 + 4584 >> 2] | 0; + m2 = k[a2 + 4580 >> 2] | 0; + e2 = i2[h2 + (b2 + -1) >> 0] | 0; + d2 = 0; + while (1) { + c2 = h2 + (d2 + b2) | 0; + if ((i2[c2 >> 0] | 0) != e2 << 24 >> 24) { + n2 = d2; + break; + } + i2[c2 >> 0] = e2; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (g2 | 0)) { + n2 = g2; + break; + } + } + f2 = e2 & 255; + e2 = (n2 | 0) == (g2 | 0); + j2 = a2 + 4576 | 0; + d2 = k[36476 + (k[j2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[j2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[j2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (e2) { + if (!c2) { + a2 = g2; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = g2; + return a2 | 0; + } + ke(a2, c2, d2 + 1 | 0); + c2 = n2 + b2 | 0; + e2 = h2 + c2 | 0; + d2 = l[e2 >> 0] | 0; + c2 = l[m2 + c2 >> 0] | 0; + m2 = f2 - c2 | 0; + if ((((m2 | 0) > -1 ? m2 : 0 - m2 | 0) | 0) < 1) { + c2 = d2 - f2 << 24 >> 24; + fg(a2, a2 + 4564 | 0, c2); + c2 = c2 + f2 | 0; + } else { + m2 = c2 - f2 >> 31 | 1; + b2 = (ia(d2 - c2 << 24, m2) | 0) >> 24; + fg(a2, a2 + 4552 | 0, b2); + c2 = (ia(b2, m2) | 0) + c2 | 0; + } + i2[e2 >> 0] = c2; + a2 = k[j2 >> 2] | 0; + k[j2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = n2 + 1 | 0; + return a2 | 0; + } + function fg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + gg(a2, e2, d2, 31 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function gg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = c2 >> b2; + f2 = d2 + -8 | 0; + if ((e2 | 0) < (d2 + -9 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((f2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -39 | 0); + } else + ke(a2, 1, f2); + ke(a2, c2 + 255 & 255, 8); + return; + } + function hg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 255, 0); + j2 = a2 + 160 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { + j2 = k[8900] | 0; + k[a2 + 4588 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4592 | 0; + d2 = a2 + 4596 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 512) { + if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 512 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4588 | 0; + k[h2 >> 2] = b2 + 256; + g2 = a2 + 168 | 0; + e2 = a2 + 164 | 0; + f2 = -256; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 256) + break; + } + r = l2; + return; + } + function ig(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35912; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function jg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35912; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function kg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 255, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 164 >> 2] = f2; + k[a2 + 168 >> 2] = d2; + tg(a2); + d2 = 0; + do { + k[a2 + 172 + (d2 * 12 | 0) >> 2] = 4; + k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4552 >> 2] = 4; + k[a2 + 4556 >> 2] = 0; + i2[a2 + 4560 >> 0] = h2; + i2[a2 + 4561 >> 0] = 1; + i2[a2 + 4562 >> 0] = 0; + k[a2 + 4564 >> 2] = 4; + k[a2 + 4568 >> 2] = 1; + i2[a2 + 4572 >> 0] = h2; + i2[a2 + 4573 >> 0] = 1; + i2[a2 + 4574 >> 0] = 0; + k[a2 + 4576 >> 2] = 0; + r = e2; + return; + } + function lg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4600) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35688; + e2 = b2 + 132 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 148 >> 2] = k[d2 >> 2]; + k[b2 + 152 >> 2] = 0; + k[b2 + 156 >> 2] = 0; + k[b2 + 160 >> 2] = 0; + e2 = b2 + 4544 | 0; + d2 = b2 + 164 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4556 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4568 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + ng(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + ng(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function mg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function ng(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + o2 = a2 + 156 | 0; + p2 = (k[o2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + q2 = k[a2 + 24 >> 2] | 0; + else + q2 = 1; + b2 = ia(q2 << 1, p2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + k[v2 + 8 >> 2] = c2 + (b2 * 3 | 0); + while (1) { + i2[c2 >> 0] = 0; + i2[c2 + 1 >> 0] = 0; + i2[c2 + 2 >> 0] = 0; + c2 = (k[w2 >> 2] | 0) + 3 | 0; + k[w2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + d2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!q2) + f2 = 19; + else { + if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = q2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[s2 >> 2] = e2; + f2 = e2 + (q2 << 2) | 0; + k[s2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[u2 >> 2] = f2; + f2 = 19; + break; + } + d2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + e2 = a2 + 12 | 0; + b: + do + if ((k[e2 >> 2] | 0) > 0) { + f2 = a2 + 4580 | 0; + g2 = (ia(q2, p2) | 0) + 1 | 0; + h2 = a2 + 4584 | 0; + j2 = a2 + 92 | 0; + l2 = (q2 | 0) > 0; + m2 = a2 + 4576 | 0; + n2 = 0; + c: + while (1) { + d2 = k[v2 >> 2] | 0; + b2 = d2 + 3 | 0; + k[f2 >> 2] = b2; + c2 = d2 + (g2 * 3 | 0) | 0; + k[h2 >> 2] = c2; + if (!(n2 & 1)) + b2 = g2; + else { + k[f2 >> 2] = c2; + k[h2 >> 2] = b2; + b2 = 1; + } + c2 = k[j2 >> 2] | 0; + x = 0; + Ja(k[(k[c2 >> 2] | 0) + 12 >> 2] | 0, c2 | 0, d2 + (b2 * 3 | 0) | 0, k[o2 >> 2] | 0, p2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + f2 = 29; + break; + } + if (l2) { + b2 = k[s2 >> 2] | 0; + c2 = k[f2 >> 2] | 0; + d2 = 0; + do { + k[m2 >> 2] = k[b2 + (d2 << 2) >> 2]; + y2 = k[o2 >> 2] | 0; + b2 = c2 + (y2 * 3 | 0) | 0; + c2 = c2 + ((y2 + -1 | 0) * 3 | 0) | 0; + i2[b2 >> 0] = i2[c2 >> 0] | 0; + i2[b2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[b2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + b2 = k[f2 >> 2] | 0; + c2 = (k[h2 >> 2] | 0) + -3 | 0; + i2[c2 >> 0] = i2[b2 >> 0] | 0; + i2[c2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[c2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + x = 0; + ra(74, a2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = 28; + break c; + } + b2 = k[s2 >> 2] | 0; + k[b2 + (d2 << 2) >> 2] = k[m2 >> 2]; + c2 = (k[f2 >> 2] | 0) + (p2 * 3 | 0) | 0; + k[f2 >> 2] = c2; + k[h2 >> 2] = (k[h2 >> 2] | 0) + (p2 * 3 | 0); + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (q2 | 0)); + } + n2 = n2 + 1 | 0; + if ((n2 | 0) >= (k[e2 >> 2] | 0)) { + f2 = 41; + break b; + } + } + if ((f2 | 0) == 28) { + d2 = Wa() | 0; + break; + } else if ((f2 | 0) == 29) { + d2 = Wa() | 0; + break; + } + } else + f2 = 41; + while (0); + do + if ((f2 | 0) == 41) { + x = 0; + qa(182, a2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + function og(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = a2 + 156 | 0; + if ((k[A2 >> 2] | 0) <= 0) + return; + B2 = a2 + 4584 | 0; + C2 = a2 + 4580 | 0; + D2 = a2 + 4588 | 0; + z2 = 0; + while (1) { + w2 = z2 + -1 | 0; + f2 = k[B2 >> 2] | 0; + g2 = k[C2 >> 2] | 0; + b2 = z2 + 1 | 0; + e2 = l[g2 + (z2 * 3 | 0) >> 0] | 0; + y2 = k[D2 >> 2] | 0; + h2 = l[g2 + (w2 * 3 | 0) >> 0] | 0; + j2 = e2 - h2 | 0; + m2 = l[f2 + (w2 * 3 | 0) >> 0] | 0; + n2 = h2 - m2 | 0; + o2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) >> 0] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[y2 + j2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + n2 >> 0] | 0) | 0; + d2 = l[g2 + (z2 * 3 | 0) + 1 >> 0] | 0; + p2 = l[g2 + (w2 * 3 | 0) + 1 >> 0] | 0; + q2 = d2 - p2 | 0; + r2 = l[f2 + (w2 * 3 | 0) + 1 >> 0] | 0; + s2 = p2 - r2 | 0; + t2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 1 >> 0] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[y2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + s2 >> 0] | 0) | 0; + c2 = l[g2 + (z2 * 3 | 0) + 2 >> 0] | 0; + u2 = l[g2 + (w2 * 3 | 0) + 2 >> 0] | 0; + v2 = c2 - u2 | 0; + w2 = l[f2 + (w2 * 3 | 0) + 2 >> 0] | 0; + x2 = u2 - w2 | 0; + y2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 2 >> 0] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[y2 + v2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + x2 >> 0] | 0) | 0; + if (!(t2 | o2 | y2)) + b2 = (pg(a2, z2, 0) | 0) + z2 | 0; + else { + g2 = l[f2 + (z2 * 3 | 0) >> 0] | 0; + f2 = e2 - m2 >> 31; + if ((f2 ^ n2 | 0) >= 0) + if ((f2 ^ j2 | 0) < 0) + e2 = m2; + else + e2 = m2 - h2 + e2 | 0; + g2 = qg(a2, o2, g2, e2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 1 >> 0] | 0; + e2 = d2 - r2 >> 31; + if ((e2 ^ s2 | 0) >= 0) + if ((e2 ^ q2 | 0) < 0) + d2 = r2; + else + d2 = r2 - p2 + d2 | 0; + e2 = qg(a2, t2, f2, d2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 2 >> 0] | 0; + d2 = c2 - w2 >> 31; + if ((d2 ^ x2 | 0) >= 0) + if ((d2 ^ v2 | 0) < 0) + c2 = w2; + else + c2 = w2 - u2 + c2 | 0; + y2 = qg(a2, y2, f2, c2, 0) | 0; + z2 = (k[B2 >> 2] | 0) + (z2 * 3 | 0) | 0; + i2[z2 >> 0] = g2; + i2[z2 + 1 >> 0] = e2; + i2[z2 + 2 >> 0] = y2; + } + if ((b2 | 0) < (k[A2 >> 2] | 0)) + z2 = b2; + else + break; + } + return; + } + function pg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; + m2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; + n2 = k[a2 + 4584 >> 2] | 0; + o2 = k[a2 + 4580 >> 2] | 0; + j2 = n2 + ((b2 + -1 | 0) * 3 | 0) | 0; + p2 = i2[j2 >> 0] | 0; + h2 = i2[j2 + 1 >> 0] | 0; + j2 = i2[j2 + 2 >> 0] | 0; + f2 = 0; + while (1) { + c2 = n2 + ((f2 + b2 | 0) * 3 | 0) | 0; + d2 = c2 + 1 | 0; + e2 = c2 + 2 | 0; + if (!(((i2[c2 >> 0] | 0) == p2 << 24 >> 24 ? (i2[d2 >> 0] | 0) == h2 << 24 >> 24 : 0) & (i2[e2 >> 0] | 0) == j2 << 24 >> 24)) + break; + i2[c2 >> 0] = p2; + i2[d2 >> 0] = h2; + i2[e2 >> 0] = j2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (m2 | 0)) { + f2 = m2; + break; + } + } + e2 = (f2 | 0) == (m2 | 0); + g2 = a2 + 4576 | 0; + d2 = k[36476 + (k[g2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (f2 | 0)) + c2 = f2; + else { + c2 = f2; + do { + ke(a2, 1, 1); + d2 = k[g2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[g2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + d2 = f2 + b2 | 0; + m2 = n2 + (d2 * 3 | 0) | 0; + n2 = m2 + 1 | 0; + c2 = i2[n2 >> 0] | 0; + b2 = m2 + 2 | 0; + e2 = i2[b2 >> 0] | 0; + o2 = o2 + (d2 * 3 | 0) | 0; + d2 = i2[o2 + 1 >> 0] | 0; + t2 = i2[o2 + 2 >> 0] | 0; + o2 = l[o2 >> 0] | 0; + q2 = o2 - (p2 & 255) >> 31 | 1; + r2 = (ia((l[m2 >> 0] | 0) - o2 << 24, q2) | 0) >> 24; + s2 = a2 + 4552 | 0; + rg(a2, s2, r2); + p2 = d2 & 255; + d2 = p2 - (h2 & 255) >> 31 | 1; + c2 = (ia((c2 & 255) - p2 << 24, d2) | 0) >> 24; + rg(a2, s2, c2); + h2 = t2 & 255; + j2 = h2 - (j2 & 255) >> 31 | 1; + e2 = (ia((e2 & 255) - h2 << 24, j2) | 0) >> 24; + rg(a2, s2, e2); + o2 = (ia(r2, q2) | 0) + o2 & 255; + p2 = (ia(c2, d2) | 0) + p2 & 255; + a2 = (ia(e2, j2) | 0) + h2 & 255; + i2[m2 >> 0] = o2; + i2[n2 >> 0] = p2; + i2[b2 >> 0] = a2; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = f2 + 1 | 0; + return a2 | 0; + } + if (!c2) { + t2 = m2; + return t2 | 0; + } + ke(a2, 1, 1); + t2 = m2; + return t2 | 0; + } + function qg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + i3 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 172 + (i3 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((g2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; + e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((e2 & 255 | 0) == (e2 | 0)) + m2 = e2; + else + m2 = e2 >> 31 & 255 ^ 255; + h2 = (c2 - m2 ^ q2) - q2 << 24; + l2 = h2 >> 24; + if (!f2) + e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + e2 = e2 ^ l2; + e2 = e2 >> 30 ^ e2 << 1; + d2 = e2 >> f2; + if ((d2 | 0) < 23) { + ke(a2, 1, d2 + 1 | 0); + ke(a2, e2 & (1 << f2) + -1, f2); + } else { + ke(a2, 1, 24); + ke(a2, e2 + 255 & 255, 8); + } + d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; + g2 = j[p2 >> 1] | 0; + e2 = g2 << 16 >> 16 == 64; + f2 = e2 & 1; + c2 = (k[d2 >> 2] | 0) + l2 >> f2; + g2 = e2 ? 32 : g2 << 16 >> 16; + k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -16777216 ? l2 : 0 - l2 | 0) >> f2; + f2 = g2 + 1 | 0; + j[p2 >> 1] = f2; + e2 = f2 + c2 | 0; + if ((e2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + if ((c2 | 0) <= 0) { + p2 = c2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + p2 = c2 - f2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + function rg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + sg(a2, e2, d2, 31 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function sg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = c2 >> b2; + f2 = d2 + -8 | 0; + if ((e2 | 0) < (d2 + -9 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((f2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -39 | 0); + } else + ke(a2, 1, f2); + ke(a2, c2 + 255 & 255, 8); + return; + } + function tg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 255, 0); + j2 = a2 + 160 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { + j2 = k[8900] | 0; + k[a2 + 4588 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4592 | 0; + d2 = a2 + 4596 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 512) { + if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 512 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4588 | 0; + k[h2 >> 2] = b2 + 256; + g2 = a2 + 168 | 0; + e2 = a2 + 164 | 0; + f2 = -256; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 256) + break; + } + r = l2; + return; + } + function ug(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35884; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function vg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35884; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function wg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 188 >> 2] = f2; + k[a2 + 192 >> 2] = e2; + Gg(a2); + e2 = a2 + 140 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4576 >> 2] = h2; + k[a2 + 4580 >> 2] = 0; + i2[a2 + 4584 >> 0] = l2; + i2[a2 + 4585 >> 0] = 1; + i2[a2 + 4586 >> 0] = 0; + k[a2 + 4588 >> 2] = h2; + k[a2 + 4592 >> 2] = 1; + i2[a2 + 4596 >> 0] = l2; + i2[a2 + 4597 >> 0] = 1; + i2[a2 + 4598 >> 0] = 0; + k[a2 + 4600 >> 2] = 0; + r = g2; + return; + } + function xg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4624) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35660; + k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; + k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; + k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; + k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; + k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; + k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; + k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; + e2 = b2 + 156 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 172 >> 2] = k[d2 >> 2]; + k[b2 + 176 >> 2] = 0; + k[b2 + 180 >> 2] = 0; + k[b2 + 184 >> 2] = 0; + e2 = b2 + 4568 | 0; + d2 = b2 + 188 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4580 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4592 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + zg(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + zg(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function yg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function zg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + p2 = a2 + 180 | 0; + q2 = (k[p2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + n2 = k[a2 + 24 >> 2] | 0; + else + n2 = 1; + b2 = ia(n2 << 1, q2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + o2 = 6; + if ((o2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + k[v2 + 8 >> 2] = c2 + b2; + while (1) { + i2[c2 >> 0] = 0; + c2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!n2) + o2 = 19; + else { + if (!(n2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), m2 = x, x = 0, m2 & 1) : 0)) + o2 = 17; + if ((o2 | 0) == 17 ? (d2 = n2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[s2 >> 2] = e2; + o2 = e2 + (n2 << 2) | 0; + k[s2 + 8 >> 2] = o2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[u2 >> 2] = o2; + o2 = 19; + break; + } + c2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((o2 | 0) == 19) { + g2 = a2 + 12 | 0; + b: + do + if ((k[g2 >> 2] | 0) > 0) { + h2 = a2 + 4604 | 0; + j2 = (ia(n2, q2) | 0) + 1 | 0; + l2 = a2 + 4608 | 0; + m2 = a2 + 92 | 0; + f2 = a2 + 4600 | 0; + if ((n2 | 0) > 0) + e2 = 0; + else { + d2 = 0; + while (1) { + c2 = k[v2 >> 2] | 0; + b2 = c2 + 1 | 0; + k[h2 >> 2] = b2; + c2 = c2 + j2 | 0; + k[l2 >> 2] = c2; + if (!(d2 & 1)) + b2 = c2; + else { + k[h2 >> 2] = c2; + k[l2 >> 2] = b2; + } + n2 = k[m2 >> 2] | 0; + x = 0; + Ja(k[(k[n2 >> 2] | 0) + 12 >> 2] | 0, n2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + break; + d2 = d2 + 1 | 0; + if ((d2 | 0) >= (k[g2 >> 2] | 0)) { + o2 = 45; + break b; + } + } + c2 = Wa() | 0; + break; + } + c: + while (1) { + c2 = k[v2 >> 2] | 0; + b2 = c2 + 1 | 0; + k[h2 >> 2] = b2; + c2 = c2 + j2 | 0; + k[l2 >> 2] = c2; + if (!(e2 & 1)) + b2 = c2; + else { + k[h2 >> 2] = c2; + k[l2 >> 2] = b2; + } + o2 = k[m2 >> 2] | 0; + x = 0; + Ja(k[(k[o2 >> 2] | 0) + 12 >> 2] | 0, o2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = 28; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = k[h2 >> 2] | 0; + d2 = 0; + do { + k[f2 >> 2] = k[b2 + (d2 << 2) >> 2]; + o2 = k[p2 >> 2] | 0; + i2[c2 + o2 >> 0] = i2[c2 + (o2 + -1) >> 0] | 0; + i2[(k[l2 >> 2] | 0) + -1 >> 0] = i2[k[h2 >> 2] >> 0] | 0; + x = 0; + ra(75, a2 | 0, 0); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = 36; + break c; + } + b2 = k[s2 >> 2] | 0; + k[b2 + (d2 << 2) >> 2] = k[f2 >> 2]; + c2 = (k[h2 >> 2] | 0) + q2 | 0; + k[h2 >> 2] = c2; + k[l2 >> 2] = (k[l2 >> 2] | 0) + q2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (n2 | 0)); + e2 = e2 + 1 | 0; + if ((e2 | 0) >= (k[g2 >> 2] | 0)) { + o2 = 45; + break b; + } + } + if ((o2 | 0) == 28) { + c2 = Wa() | 0; + break; + } else if ((o2 | 0) == 36) { + c2 = Wa() | 0; + break; + } + } else + o2 = 45; + while (0); + do + if ((o2 | 0) == 45) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + function Ag(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + o2 = a2 + 4604 | 0; + b2 = k[o2 >> 2] | 0; + r2 = a2 + 180 | 0; + if ((k[r2 >> 2] | 0) <= 0) + return; + p2 = a2 + 4608 | 0; + q2 = a2 + 4612 | 0; + e2 = b2; + f2 = l[b2 + -1 >> 0] | 0; + b2 = l[b2 >> 0] | 0; + n2 = 0; + while (1) { + m2 = k[p2 >> 2] | 0; + j2 = l[m2 + (n2 + -1) >> 0] | 0; + d2 = n2 + 1 | 0; + c2 = l[e2 + d2 >> 0] | 0; + h2 = k[q2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - j2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (Cg(a2, n2, 0) | 0) + n2 | 0; + c2 = k[o2 >> 2] | 0; + b2 = l[c2 + (d2 + -1) >> 0] | 0; + c2 = l[c2 + d2 >> 0] | 0; + } else { + f2 = b2 - j2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = j2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + m2 = Bg(a2, h2, l[m2 + n2 >> 0] | 0, e2, 0) | 0; + i2[(k[p2 >> 2] | 0) + n2 >> 0] = m2; + } + if ((d2 | 0) >= (k[r2 >> 2] | 0)) + break; + e2 = k[o2 >> 2] | 0; + f2 = b2; + b2 = c2; + n2 = d2; + } + return; + } + function Bg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + f2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 196 + (f2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((g2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; + e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 136 | 0; + d2 = k[q2 >> 2] | 0; + if ((e2 & d2 | 0) == (e2 | 0)) + l2 = e2; + else + l2 = d2 & ~(e2 >> 31); + e2 = (c2 - l2 ^ r2) - r2 | 0; + i3 = a2 + 144 | 0; + d2 = k[i3 >> 2] | 0; + if ((e2 | 0) > 0) + e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; + else + e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; + n2 = a2 + 140 | 0; + h2 = k[n2 >> 2] | 0; + c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; + h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; + f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; + if (!(d2 | b2)) + e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ h2; + Fg(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); + d2 = k[a2 + 160 >> 2] | 0; + b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; + e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; + c2 = j[p2 >> 1] | 0; + if ((c2 | 0) == (d2 | 0)) { + b2 = b2 >> 1; + e2 = e2 >> 1; + c2 = d2 >> 1; + } + k[o2 >> 2] = b2; + d2 = c2 + 1 | 0; + j[p2 >> 1] = d2; + b2 = d2 + e2 | 0; + if ((b2 | 0) >= 1) { + if ((e2 | 0) > 0) { + e2 = e2 - d2 | 0; + p2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + e2 = (e2 | 0) > 0 ? 0 : e2; + } + } else { + e2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); + e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; + } + k[f2 >> 2] = e2; + d2 = k[i3 >> 2] | 0; + c2 = d2 << 1 | 1; + b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; + if ((b2 | 0) >= (0 - d2 | 0)) { + e2 = k[q2 >> 2] | 0; + if ((e2 + d2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; + } else { + b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; + e2 = k[q2 >> 2] | 0; + } + if ((b2 & e2 | 0) == (b2 | 0)) { + r2 = b2; + r2 = r2 & 255; + return r2 | 0; + } + r2 = e2 & ~(b2 >> 31); + r2 = r2 & 255; + return r2 | 0; + } + function Cg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + j2 = (k[a2 + 180 >> 2] | 0) - b2 | 0; + m2 = k[a2 + 4608 >> 2] | 0; + n2 = k[a2 + 4604 >> 2] | 0; + e2 = i2[m2 + (b2 + -1) >> 0] | 0; + h2 = e2 & 255; + c2 = a2 + 144 | 0; + f2 = 0; + while (1) { + d2 = m2 + (f2 + b2) | 0; + g2 = (l[d2 >> 0] | 0) - h2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) > (k[c2 >> 2] | 0)) + break; + i2[d2 >> 0] = e2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (j2 | 0)) { + f2 = j2; + break; + } + } + e2 = (f2 | 0) == (j2 | 0); + g2 = a2 + 4600 | 0; + d2 = k[36476 + (k[g2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (f2 | 0)) + c2 = f2; + else { + c2 = f2; + do { + ke(a2, 1, 1); + d2 = k[g2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[g2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + j2 = f2 + b2 | 0; + b2 = m2 + j2 | 0; + a2 = Dg(a2, l[b2 >> 0] | 0, h2, l[n2 + j2 >> 0] | 0) | 0; + i2[b2 >> 0] = a2; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = f2 + 1 | 0; + return a2 | 0; + } + if (!c2) { + a2 = j2; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = j2; + return a2 | 0; + } + function Dg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + h2 = c2 - d2 | 0; + i3 = a2 + 136 | 0; + g2 = a2 + 144 | 0; + e2 = k[g2 >> 2] | 0; + if ((((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0) > (e2 | 0)) { + f2 = d2 - c2 >> 31 | 1; + b2 = ia(f2, b2 - d2 | 0) | 0; + if ((b2 | 0) > 0) + b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; + else + b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; + h2 = a2 + 140 | 0; + e2 = k[h2 >> 2] | 0; + c2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; + e2 = c2 - ((c2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; + Eg(a2, a2 + 4576 | 0, e2); + e2 = ia(e2, f2) | 0; + f2 = k[g2 >> 2] | 0; + g2 = f2 << 1 | 1; + e2 = (ia(e2, g2) | 0) + d2 | 0; + if ((e2 | 0) >= (0 - f2 | 0)) { + b2 = k[i3 >> 2] | 0; + if ((b2 + f2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; + } else { + e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; + b2 = k[i3 >> 2] | 0; + } + if ((e2 & b2 | 0) == (e2 | 0)) { + i3 = e2; + i3 = i3 & 255; + return i3 | 0; + } + i3 = b2 & ~(e2 >> 31); + i3 = i3 & 255; + return i3 | 0; + } else { + b2 = b2 - c2 | 0; + if ((b2 | 0) > 0) + b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; + else + b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; + h2 = a2 + 140 | 0; + e2 = k[h2 >> 2] | 0; + f2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; + e2 = f2 - ((f2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; + Eg(a2, a2 + 4588 | 0, e2); + f2 = k[g2 >> 2] | 0; + g2 = f2 << 1 | 1; + e2 = (ia(g2, e2) | 0) + c2 | 0; + if ((e2 | 0) >= (0 - f2 | 0)) { + b2 = k[i3 >> 2] | 0; + if ((b2 + f2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; + } else { + e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; + b2 = k[i3 >> 2] | 0; + } + if ((e2 & b2 | 0) == (e2 | 0)) { + i3 = e2; + i3 = i3 & 255; + return i3 | 0; + } + i3 = b2 & ~(e2 >> 31); + i3 = i3 & 255; + return i3 | 0; + } + return 0; + } + function Eg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + Fg(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function Fg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = c2 >> b2; + f2 = a2 + 148 | 0; + g2 = d2 - (k[f2 >> 2] | 0) | 0; + if ((e2 | 0) < (g2 + -1 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((g2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); + } else + ke(a2, 1, g2); + b2 = k[f2 >> 2] | 0; + ke(a2, (1 << b2) + -1 & c2 + -1, b2); + return; + } + function Gg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 144 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 136 >> 2] | 0; + b2 = a2 + 152 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 152 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4616 | 0; + d2 = m2 << 1; + e2 = a2 + 4620 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4612 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 192 | 0; + j2 = a2 + 188 | 0; + g2 = a2 + 184 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Hg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35856; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Ig(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35856; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Jg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Kg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 180 >> 2] = f2; + k[a2 + 184 >> 2] = e2; + Vg(a2); + e2 = a2 + 132 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4568 >> 2] = h2; + k[a2 + 4572 >> 2] = 0; + i2[a2 + 4576 >> 0] = l2; + i2[a2 + 4577 >> 0] = 1; + i2[a2 + 4578 >> 0] = 0; + k[a2 + 4580 >> 2] = h2; + k[a2 + 4584 >> 2] = 1; + i2[a2 + 4588 >> 0] = l2; + i2[a2 + 4589 >> 0] = 1; + i2[a2 + 4590 >> 0] = 0; + k[a2 + 4592 >> 2] = 0; + r = g2; + return; + } + function Lg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4620 >> 0] = e2 & 1; + b2 = a2 + 156 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + Mg(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function Mg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 172 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[C2 >> 2] = d2; + B2 = d2 + (b2 << 1) | 0; + k[C2 + 8 >> 2] = B2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[D2 >> 2] = B2; + break; + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + g2 = 18; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = f2; + g2 = f2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[B2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 8 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4596 | 0; + h2 = ia(y2, w2) | 0; + i3 = h2 + 1 | 0; + l2 = a2 + 4600 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 160 | 0; + o2 = a2 + 168 | 0; + p2 = a2 + 164 | 0; + q2 = a2 + 156 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4592 | 0; + u2 = 0; + b: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 2 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (i3 << 1) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + e2 = k[v2 >> 2] | 0; + j[c2 + (e2 << 1) >> 1] = j[c2 + (e2 + -1 << 1) >> 1] | 0; + j[b2 + -2 >> 1] = j[c2 >> 1] | 0; + x = 0; + ra(76, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 29; + break b; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 << 1) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 << 1) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2 << 1) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + g2 = 30; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 42; + break a; + } + } + if ((g2 | 0) == 29) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 30) { + d2 = Wa() | 0; + break; + } + } else + g2 = 42; + while (0); + do + if ((g2 | 0) == 42) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Ng(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0; + q2 = a2 + 4596 | 0; + c2 = k[q2 >> 2] | 0; + u2 = a2 + 172 | 0; + b2 = k[u2 >> 2] | 0; + if ((b2 | 0) <= 0) + return; + r2 = a2 + 4600 | 0; + s2 = a2 + 4604 | 0; + t2 = a2 + 4592 | 0; + h2 = c2; + f2 = m[c2 + -2 >> 1] | 0; + c2 = m[c2 >> 1] | 0; + p2 = 0; + while (1) { + n2 = k[r2 >> 2] | 0; + g2 = j[n2 + (p2 + -1 << 1) >> 1] | 0; + o2 = g2 & 65535; + e2 = p2 + 1 | 0; + d2 = m[h2 + (e2 << 1) >> 1] | 0; + l2 = k[s2 >> 2] | 0; + h2 = c2 - f2 | 0; + f2 = f2 - o2 | 0; + l2 = ((((i2[l2 + (d2 - c2) >> 0] | 0) * 9 | 0) + (i2[l2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[l2 + f2 >> 0] | 0) | 0; + n2 = n2 + (p2 << 1) | 0; + if (!l2) { + b2 = Qg(a2, g2, n2, b2 - p2 | 0) | 0; + c2 = b2 + p2 | 0; + if ((c2 | 0) != (k[u2 >> 2] | 0)) { + o2 = Rg(a2, o2, m[(k[q2 >> 2] | 0) + (c2 << 1) >> 1] | 0) | 0; + j[(k[r2 >> 2] | 0) + (c2 << 1) >> 1] = o2; + o2 = k[t2 >> 2] | 0; + k[t2 >> 2] = (o2 | 0) < 1 ? 0 : o2 + -1 | 0; + b2 = b2 + 1 | 0; + } + e2 = b2 + p2 | 0; + d2 = k[q2 >> 2] | 0; + c2 = m[d2 + (e2 + -1 << 1) >> 1] | 0; + d2 = m[d2 + (e2 << 1) >> 1] | 0; + } else { + b2 = c2 - o2 >> 31; + if ((b2 ^ f2 | 0) < 0) + b2 = c2; + else + b2 = o2 + ((b2 ^ h2 | 0) < 0 ? 0 : h2) | 0; + o2 = Pg(a2, l2, m[n2 >> 1] | 0, b2, 0) | 0; + j[(k[r2 >> 2] | 0) + (p2 << 1) >> 1] = o2; + } + b2 = k[u2 >> 2] | 0; + if ((b2 | 0) <= (e2 | 0)) + break; + h2 = k[q2 >> 2] | 0; + f2 = c2; + c2 = d2; + p2 = e2; + } + return; + } + function Og(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + d2 = a2 + 116 | 0; + c2 = k[d2 >> 2] | 0; + if ((i2[c2 >> 0] | 0) != -1) { + e2 = a2 + 112 | 0; + b2 = k[e2 >> 2] | 0; + if ((b2 | 0) < 1) { + qe(a2); + b2 = k[e2 >> 2] | 0; + c2 = k[d2 >> 2] | 0; + } + a2 = a2 + 108 | 0; + d2 = k[a2 >> 2] | 0; + k[e2 >> 2] = b2 + -1; + b2 = d2 << 1; + k[a2 >> 2] = b2; + if ((i2[c2 >> 0] | 0) != -1) { + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 6, 35648); + a2 = x; + x = 0; + if (!(a2 & 1)) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + } else + b2 = k[a2 + 108 >> 2] | 0; + if (!b2) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 6, 35648); + a2 = x; + x = 0; + if (!(a2 & 1)) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + function Pg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + l2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 188 + (l2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((c2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 128 | 0; + e2 = k[q2 >> 2] | 0; + if ((c2 & e2 | 0) == (c2 | 0)) + m2 = c2; + else + m2 = e2 & ~(c2 >> 31); + c2 = a2 + 112 | 0; + if ((k[c2 >> 2] | 0) < 8) + qe(a2); + e2 = a2 + 108 | 0; + d2 = k[e2 >> 2] | 0; + f2 = d2 >>> 24; + g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; + if (!g2) { + h2 = k[a2 + 148 >> 2] | 0; + e2 = k[a2 + 140 >> 2] | 0; + c2 = Tg(a2) | 0; + if ((c2 | 0) < (h2 + -1 - e2 | 0)) { + if (b2) + c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; + } else + c2 = (Ug(a2, e2) | 0) + 1 | 0; + c2 = c2 << 31 >> 31 ^ c2 >> 1; + if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; + k[e2 >> 2] = d2 << g2; + c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; + } + h2 = a2 + 136 | 0; + d2 = k[h2 >> 2] | 0; + if (!b2) { + if (!d2) + e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; + else + e2 = 0; + g2 = e2 ^ c2; + } else + g2 = c2; + b2 = k[a2 + 152 >> 2] | 0; + e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; + f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; + c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; + d2 = j[p2 >> 1] | 0; + if ((d2 | 0) == (b2 | 0)) { + e2 = e2 >> 1; + c2 = c2 >> 1; + d2 = b2 >> 1; + } + k[o2 >> 2] = e2; + b2 = d2 + 1 | 0; + j[p2 >> 1] = b2; + e2 = b2 + c2 | 0; + if ((e2 | 0) >= 1) { + if ((c2 | 0) > 0) { + c2 = c2 - b2 | 0; + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + c2 = (c2 | 0) > 0 ? 0 : c2; + } + } else { + c2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); + c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; + } + k[f2 >> 2] = c2; + b2 = k[h2 >> 2] | 0; + d2 = b2 << 1 | 1; + e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; + if ((e2 | 0) >= (0 - b2 | 0)) { + c2 = k[q2 >> 2] | 0; + if ((c2 + b2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; + } else { + e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; + c2 = k[q2 >> 2] | 0; + } + if ((e2 & c2 | 0) == (e2 | 0)) { + a2 = e2; + a2 = a2 & 65535; + return a2 | 0; + } + a2 = c2 & ~(e2 >> 31); + a2 = a2 & 65535; + return a2 | 0; + } + function Qg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 112 | 0; + l2 = a2 + 108 | 0; + m2 = a2 + 4592 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[l2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[l2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + n2 = 8; + break; + } + g2 = k[m2 >> 2] | 0; + o2 = 1 << k[36476 + (g2 << 2) >> 2]; + p2 = d2 - f2 | 0; + p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; + f2 = p2 + f2 | 0; + if ((p2 | 0) == (o2 | 0)) + k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((n2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[m2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + Ua(e2 | 0); + fb(p2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) > 0) + f2 = 0; + else + return e2 | 0; + do { + j[c2 + (f2 << 1) >> 1] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function Rg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = b2 - c2 | 0; + g2 = a2 + 128 | 0; + d2 = a2 + 136 | 0; + if ((((f2 | 0) > -1 ? f2 : 0 - f2 | 0) | 0) > (k[d2 >> 2] | 0)) { + b2 = ia(Sg(a2, a2 + 4568 | 0) | 0, c2 - b2 >> 31 | 1) | 0; + e2 = k[d2 >> 2] | 0; + f2 = e2 << 1 | 1; + b2 = (ia(b2, f2) | 0) + c2 | 0; + if ((b2 | 0) >= (0 - e2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((d2 + e2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, f2) | 0) | 0; + } else { + b2 = (ia(k[a2 + 132 >> 2] | 0, f2) | 0) + b2 | 0; + d2 = k[g2 >> 2] | 0; + } + if ((b2 & d2 | 0) == (b2 | 0)) { + a2 = b2; + a2 = a2 & 65535; + return a2 | 0; + } + a2 = d2 & ~(b2 >> 31); + a2 = a2 & 65535; + return a2 | 0; + } else { + c2 = Sg(a2, a2 + 4580 | 0) | 0; + f2 = k[d2 >> 2] | 0; + e2 = f2 << 1 | 1; + b2 = (ia(e2, c2) | 0) + b2 | 0; + if ((b2 | 0) >= (0 - f2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((d2 + f2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, e2) | 0) | 0; + } else { + b2 = (ia(k[a2 + 132 >> 2] | 0, e2) | 0) + b2 | 0; + d2 = k[g2 >> 2] | 0; + } + if ((b2 & d2 | 0) == (b2 | 0)) { + a2 = b2; + a2 = a2 & 65535; + return a2 | 0; + } + a2 = d2 & ~(b2 >> 31); + a2 = a2 & 65535; + return a2 | 0; + } + return 0; + } + function Sg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + m2 = b2 + 9 | 0; + c2 = l[m2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + g2 = k[a2 + 148 >> 2] | 0; + h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; + c2 = k[a2 + 140 >> 2] | 0; + e2 = Tg(a2) | 0; + do + if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) + if (!d2) { + d2 = k[f2 >> 2] | 0; + a2 = d2 + e2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + j2 = 8; + break; + } else { + h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; + d2 = k[f2 >> 2] | 0; + e2 = h2 + d2 | 0; + g2 = e2 & 1; + c2 = g2; + f2 = 1; + e2 = (g2 + e2 | 0) / 2 | 0; + break; + } + else { + e2 = (Ug(a2, c2) | 0) + 1 | 0; + g2 = k[f2 >> 2] | 0; + a2 = e2 + g2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + if (!d2) { + d2 = g2; + j2 = 8; + } else { + h2 = e2; + f2 = 1; + e2 = a2; + d2 = g2; + } + } + while (0); + if ((j2 | 0) == 8) { + h2 = e2; + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; + e2 = a2; + } + e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[m2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = d2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[m2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = j2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + function Tg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 112 | 0; + if ((k[f2 >> 2] | 0) < 16) + qe(a2); + g2 = a2 + 108 | 0; + c2 = k[g2 >> 2] | 0; + if ((c2 | 0) >= 0) + if (!(c2 & 1073741824)) + if (!(c2 & 536870912)) + if (!(c2 & 268435456)) + if (!(c2 & 134217728)) + if (!(c2 & 67108864)) + if (!(c2 & 33554432)) + if (!(c2 & 16777216)) + if (!(c2 & 8388608)) + if (!(c2 & 4194304)) + if (!(c2 & 2097152)) + if (!(c2 & 1048576)) + if (!(c2 & 524288)) + if (!(c2 & 262144)) + if (!(c2 & 131072)) { + e2 = c2 >>> 12 & 16; + b2 = e2 + -1 | 0; + if (!e2) { + b2 = (k[f2 >> 2] | 0) + -15 | 0; + k[f2 >> 2] = b2; + d2 = c2 << 15; + k[g2 >> 2] = d2; + c2 = b2; + b2 = 15; + while (1) { + if ((c2 | 0) < 1) { + qe(a2); + e2 = k[g2 >> 2] | 0; + c2 = k[f2 >> 2] | 0; + } else + e2 = d2; + c2 = c2 + -1 | 0; + k[f2 >> 2] = c2; + d2 = e2 << 1; + k[g2 >> 2] = d2; + if ((e2 | 0) < 0) + break; + else + b2 = b2 + 1 | 0; + } + return b2 | 0; + } + } else + b2 = 14; + else + b2 = 13; + else + b2 = 12; + else + b2 = 11; + else + b2 = 10; + else + b2 = 9; + else + b2 = 8; + else + b2 = 7; + else + b2 = 6; + else + b2 = 5; + else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + a2 = b2 + 1 | 0; + k[f2 >> 2] = (k[f2 >> 2] | 0) - a2; + k[g2 >> 2] = c2 << a2; + g2 = b2; + return g2 | 0; + } + function Ug(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + d2 = a2 + 112 | 0; + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) < (b2 | 0)) { + qe(a2); + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) < (b2 | 0)) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } + e2 = a2 + 108 | 0; + a2 = k[e2 >> 2] | 0; + k[d2 >> 2] = c2 - b2; + k[e2 >> 2] = a2 << b2; + return a2 >>> (32 - b2 | 0) | 0; + } + function Vg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 136 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 128 >> 2] | 0; + b2 = a2 + 144 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 144 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4608 | 0; + d2 = m2 << 1; + e2 = a2 + 4612 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4604 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 184 | 0; + j2 = a2 + 180 | 0; + g2 = a2 + 176 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Wg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Xg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Yg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35828; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Zg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35828; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function _g(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 6; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 6; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function $g(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 180 >> 2] = f2; + k[a2 + 184 >> 2] = e2; + hh(a2); + e2 = a2 + 132 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4568 >> 2] = h2; + k[a2 + 4572 >> 2] = 0; + i2[a2 + 4576 >> 0] = l2; + i2[a2 + 4577 >> 0] = 1; + i2[a2 + 4578 >> 0] = 0; + k[a2 + 4580 >> 2] = h2; + k[a2 + 4584 >> 2] = 1; + i2[a2 + 4588 >> 0] = l2; + i2[a2 + 4589 >> 0] = 1; + i2[a2 + 4590 >> 0] = 0; + k[a2 + 4592 >> 2] = 0; + r = g2; + return; + } + function ah(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4620 >> 0] = e2 & 1; + b2 = a2 + 156 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + bh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function bh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 172 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + do + if (b2) { + if (!(b2 >>> 0 > 715827882 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 6 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + d2 = c2 + (b2 * 6 | 0) | 0; + k[C2 + 8 >> 2] = d2; + while (1) { + j[c2 >> 1] = 0; + j[c2 + 2 >> 1] = 0; + j[c2 + 4 >> 1] = 0; + b2 = b2 + -1 | 0; + if (!b2) + break; + else + c2 = c2 + 6 | 0; + } + k[D2 >> 2] = d2; + break; + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + g2 = 20; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 18; + if ((g2 | 0) == 18 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = f2; + g2 = f2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[B2 >> 2] = g2; + g2 = 20; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 20) { + f2 = a2 + 8 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4596 | 0; + h2 = ia(y2, w2) | 0; + i3 = h2 + 1 | 0; + l2 = a2 + 4600 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 160 | 0; + o2 = a2 + 168 | 0; + p2 = a2 + 164 | 0; + q2 = a2 + 156 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4592 | 0; + u2 = 0; + b: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 6 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (i3 * 6 | 0) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + b2 = k[v2 >> 2] | 0; + e2 = c2 + (b2 * 6 | 0) | 0; + c2 = c2 + ((b2 + -1 | 0) * 6 | 0) | 0; + j[e2 >> 1] = j[c2 >> 1] | 0; + j[e2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[e2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + e2 = (k[l2 >> 2] | 0) + -6 | 0; + c2 = k[g2 >> 2] | 0; + j[e2 >> 1] = j[c2 >> 1] | 0; + j[e2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[e2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + x = 0; + ra(77, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 31; + break b; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 * 6 | 0) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 * 6 | 0) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + (((k[q2 >> 2] | 0) - h2 | 0) * 6 | 0) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + g2 = 32; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 44; + break a; + } + } + if ((g2 | 0) == 31) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 32) { + d2 = Wa() | 0; + break; + } + } else + g2 = 44; + while (0); + do + if ((g2 | 0) == 44) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + fb(d2 | 0); + } + function ch(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0; + N2 = r; + r = r + 32 | 0; + D2 = N2 + 24 | 0; + M2 = N2 + 18 | 0; + L2 = N2 + 12 | 0; + E2 = N2 + 6 | 0; + F2 = N2; + G2 = a2 + 172 | 0; + b2 = k[G2 >> 2] | 0; + if ((b2 | 0) <= 0) { + r = N2; + return; + } + H2 = a2 + 4600 | 0; + I2 = a2 + 4596 | 0; + J2 = a2 + 4604 | 0; + K2 = a2 + 4592 | 0; + C2 = 0; + while (1) { + d2 = C2 + -1 | 0; + e2 = k[H2 >> 2] | 0; + O2 = k[I2 >> 2] | 0; + c2 = C2 + 1 | 0; + f2 = m[O2 + (C2 * 6 | 0) >> 1] | 0; + B2 = k[J2 >> 2] | 0; + g2 = m[O2 + (d2 * 6 | 0) >> 1] | 0; + h2 = f2 - g2 | 0; + l2 = m[e2 + (d2 * 6 | 0) >> 1] | 0; + n2 = g2 - l2 | 0; + o2 = ((((i2[B2 + ((m[O2 + (c2 * 6 | 0) >> 1] | 0) - f2) >> 0] | 0) * 9 | 0) + (i2[B2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[B2 + n2 >> 0] | 0) | 0; + p2 = m[O2 + (C2 * 6 | 0) + 2 >> 1] | 0; + q2 = m[O2 + (d2 * 6 | 0) + 2 >> 1] | 0; + s2 = p2 - q2 | 0; + t2 = m[e2 + (d2 * 6 | 0) + 2 >> 1] | 0; + u2 = q2 - t2 | 0; + v2 = ((((i2[B2 + ((m[O2 + (c2 * 6 | 0) + 2 >> 1] | 0) - p2) >> 0] | 0) * 9 | 0) + (i2[B2 + s2 >> 0] | 0) | 0) * 9 | 0) + (i2[B2 + u2 >> 0] | 0) | 0; + w2 = m[O2 + (C2 * 6 | 0) + 4 >> 1] | 0; + x2 = m[O2 + (d2 * 6 | 0) + 4 >> 1] | 0; + y2 = w2 - x2 | 0; + z2 = m[e2 + (d2 * 6 | 0) + 4 >> 1] | 0; + A2 = x2 - z2 | 0; + B2 = ((((i2[B2 + ((m[O2 + (c2 * 6 | 0) + 4 >> 1] | 0) - w2) >> 0] | 0) * 9 | 0) + (i2[B2 + y2 >> 0] | 0) | 0) * 9 | 0) + (i2[B2 + A2 >> 0] | 0) | 0; + if (!(v2 | o2 | B2)) { + c2 = e2 + (d2 * 6 | 0) | 0; + j[L2 >> 1] = j[c2 >> 1] | 0; + j[L2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[L2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + j[D2 >> 1] = j[c2 >> 1] | 0; + j[D2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[D2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + b2 = dh(a2, D2, e2 + (C2 * 6 | 0) | 0, b2 - C2 | 0) | 0; + c2 = b2 + C2 | 0; + if ((c2 | 0) != (k[G2 >> 2] | 0)) { + O2 = (k[I2 >> 2] | 0) + (c2 * 6 | 0) | 0; + j[F2 >> 1] = j[O2 >> 1] | 0; + j[F2 + 2 >> 1] = j[O2 + 2 >> 1] | 0; + j[F2 + 4 >> 1] = j[O2 + 4 >> 1] | 0; + O2 = (k[H2 >> 2] | 0) + (c2 * 6 | 0) | 0; + j[M2 >> 1] = j[L2 >> 1] | 0; + j[M2 + 2 >> 1] = j[L2 + 2 >> 1] | 0; + j[M2 + 4 >> 1] = j[L2 + 4 >> 1] | 0; + j[D2 >> 1] = j[F2 >> 1] | 0; + j[D2 + 2 >> 1] = j[F2 + 2 >> 1] | 0; + j[D2 + 4 >> 1] = j[F2 + 4 >> 1] | 0; + eh(E2, a2, M2, D2); + j[O2 >> 1] = j[E2 >> 1] | 0; + j[O2 + 2 >> 1] = j[E2 + 2 >> 1] | 0; + j[O2 + 4 >> 1] = j[E2 + 4 >> 1] | 0; + O2 = k[K2 >> 2] | 0; + k[K2 >> 2] = (O2 | 0) < 1 ? 0 : O2 + -1 | 0; + b2 = b2 + 1 | 0; + } + c2 = b2 + C2 | 0; + } else { + d2 = m[e2 + (C2 * 6 | 0) >> 1] | 0; + b2 = f2 - l2 >> 31; + if ((b2 ^ n2 | 0) >= 0) + if ((b2 ^ h2 | 0) < 0) + b2 = l2; + else + b2 = l2 - g2 + f2 | 0; + else + b2 = f2; + f2 = fh(a2, o2, d2, b2, 0) | 0; + d2 = m[(k[H2 >> 2] | 0) + (C2 * 6 | 0) + 2 >> 1] | 0; + b2 = p2 - t2 >> 31; + if ((b2 ^ u2 | 0) >= 0) + if ((b2 ^ s2 | 0) < 0) + b2 = t2; + else + b2 = t2 - q2 + p2 | 0; + else + b2 = p2; + d2 = fh(a2, v2, d2, b2, 0) | 0; + e2 = m[(k[H2 >> 2] | 0) + (C2 * 6 | 0) + 4 >> 1] | 0; + b2 = w2 - z2 >> 31; + if ((b2 ^ A2 | 0) >= 0) + if ((b2 ^ y2 | 0) < 0) + b2 = z2; + else + b2 = z2 - x2 + w2 | 0; + else + b2 = w2; + B2 = fh(a2, B2, e2, b2, 0) | 0; + O2 = k[H2 >> 2] | 0; + j[O2 + (C2 * 6 | 0) >> 1] = f2; + j[O2 + (C2 * 6 | 0) + 2 >> 1] = d2; + j[O2 + (C2 * 6 | 0) + 4 >> 1] = B2; + } + b2 = k[G2 >> 2] | 0; + if ((c2 | 0) >= (b2 | 0)) + break; + else + C2 = c2; + } + r = N2; + return; + } + function dh(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 112 | 0; + l2 = a2 + 108 | 0; + m2 = a2 + 4592 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[l2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[l2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + n2 = 8; + break; + } + g2 = k[m2 >> 2] | 0; + o2 = 1 << k[36476 + (g2 << 2) >> 2]; + p2 = d2 - f2 | 0; + p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; + f2 = p2 + f2 | 0; + if ((p2 | 0) == (o2 | 0)) + k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((n2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[m2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + Ua(e2 | 0); + fb(p2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + f2 = 0; + do { + p2 = c2 + (f2 * 6 | 0) | 0; + j[p2 >> 1] = j[b2 >> 1] | 0; + j[p2 + 2 >> 1] = j[b2 + 2 >> 1] | 0; + j[p2 + 4 >> 1] = j[b2 + 4 >> 1] | 0; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function eh(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0, o2 = 0; + i3 = b2 + 4568 | 0; + o2 = gh(b2, i3) | 0; + g2 = gh(b2, i3) | 0; + i3 = gh(b2, i3) | 0; + f2 = b2 + 128 | 0; + e2 = m[d2 >> 1] | 0; + l2 = k[b2 + 136 >> 2] | 0; + n2 = l2 << 1 | 1; + e2 = (ia(ia(n2, o2) | 0, e2 - (m[c2 >> 1] | 0) >> 31 | 1) | 0) + e2 | 0; + o2 = 0 - l2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + f2 = k[f2 >> 2] | 0; + if ((f2 + l2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else { + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + f2 = k[f2 >> 2] | 0; + } + if ((e2 & f2 | 0) != (e2 | 0)) + e2 = f2 & ~(e2 >> 31); + h2 = e2 & 65535; + e2 = m[d2 + 2 >> 1] | 0; + e2 = (ia(ia(n2, g2) | 0, e2 - (m[c2 + 2 >> 1] | 0) >> 31 | 1) | 0) + e2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + if ((f2 + l2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + if ((e2 & f2 | 0) != (e2 | 0)) + e2 = f2 & ~(e2 >> 31); + g2 = e2 & 65535; + e2 = m[d2 + 4 >> 1] | 0; + e2 = (ia(ia(n2, i3) | 0, e2 - (m[c2 + 4 >> 1] | 0) >> 31 | 1) | 0) + e2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + if ((f2 + l2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + if ((e2 & f2 | 0) == (e2 | 0)) { + b2 = e2; + b2 = b2 & 65535; + j[a2 >> 1] = h2; + o2 = a2 + 2 | 0; + j[o2 >> 1] = g2; + a2 = a2 + 4 | 0; + j[a2 >> 1] = b2; + return; + } + b2 = f2 & ~(e2 >> 31); + b2 = b2 & 65535; + j[a2 >> 1] = h2; + o2 = a2 + 2 | 0; + j[o2 >> 1] = g2; + a2 = a2 + 4 | 0; + j[a2 >> 1] = b2; + return; + } + function fh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + l2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 188 + (l2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((c2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 128 | 0; + e2 = k[q2 >> 2] | 0; + if ((c2 & e2 | 0) == (c2 | 0)) + m2 = c2; + else + m2 = e2 & ~(c2 >> 31); + c2 = a2 + 112 | 0; + if ((k[c2 >> 2] | 0) < 8) + qe(a2); + e2 = a2 + 108 | 0; + d2 = k[e2 >> 2] | 0; + f2 = d2 >>> 24; + g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; + if (!g2) { + h2 = k[a2 + 148 >> 2] | 0; + e2 = k[a2 + 140 >> 2] | 0; + c2 = Tg(a2) | 0; + if ((c2 | 0) < (h2 + -1 - e2 | 0)) { + if (b2) + c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; + } else + c2 = (Ug(a2, e2) | 0) + 1 | 0; + c2 = c2 << 31 >> 31 ^ c2 >> 1; + if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; + k[e2 >> 2] = d2 << g2; + c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; + } + h2 = a2 + 136 | 0; + d2 = k[h2 >> 2] | 0; + if (!b2) { + if (!d2) + e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; + else + e2 = 0; + g2 = e2 ^ c2; + } else + g2 = c2; + b2 = k[a2 + 152 >> 2] | 0; + e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; + f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; + c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; + d2 = j[p2 >> 1] | 0; + if ((d2 | 0) == (b2 | 0)) { + e2 = e2 >> 1; + c2 = c2 >> 1; + d2 = b2 >> 1; + } + k[o2 >> 2] = e2; + b2 = d2 + 1 | 0; + j[p2 >> 1] = b2; + e2 = b2 + c2 | 0; + if ((e2 | 0) >= 1) { + if ((c2 | 0) > 0) { + c2 = c2 - b2 | 0; + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + c2 = (c2 | 0) > 0 ? 0 : c2; + } + } else { + c2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); + c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; + } + k[f2 >> 2] = c2; + b2 = k[h2 >> 2] | 0; + d2 = b2 << 1 | 1; + e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; + if ((e2 | 0) >= (0 - b2 | 0)) { + c2 = k[q2 >> 2] | 0; + if ((c2 + b2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; + } else { + e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; + c2 = k[q2 >> 2] | 0; + } + if ((e2 & c2 | 0) == (e2 | 0)) { + a2 = e2; + a2 = a2 & 65535; + return a2 | 0; + } + a2 = c2 & ~(e2 >> 31); + a2 = a2 & 65535; + return a2 | 0; + } + function gh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + m2 = b2 + 9 | 0; + c2 = l[m2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + g2 = k[a2 + 148 >> 2] | 0; + h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; + c2 = k[a2 + 140 >> 2] | 0; + e2 = Tg(a2) | 0; + do + if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) + if (!d2) { + d2 = k[f2 >> 2] | 0; + a2 = d2 + e2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + j2 = 8; + break; + } else { + h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; + d2 = k[f2 >> 2] | 0; + e2 = h2 + d2 | 0; + g2 = e2 & 1; + c2 = g2; + f2 = 1; + e2 = (g2 + e2 | 0) / 2 | 0; + break; + } + else { + e2 = (Ug(a2, c2) | 0) + 1 | 0; + g2 = k[f2 >> 2] | 0; + a2 = e2 + g2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + if (!d2) { + d2 = g2; + j2 = 8; + } else { + h2 = e2; + f2 = 1; + e2 = a2; + d2 = g2; + } + } + while (0); + if ((j2 | 0) == 8) { + h2 = e2; + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; + e2 = a2; + } + e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[m2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = d2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[m2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = j2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + function hh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 136 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 128 >> 2] | 0; + b2 = a2 + 144 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 144 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4608 | 0; + d2 = m2 << 1; + e2 = a2 + 4612 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4604 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 184 | 0; + j2 = a2 + 180 | 0; + g2 = a2 + 176 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function ih(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35800; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function jh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35800; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function kh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function lh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 180 >> 2] = f2; + k[a2 + 184 >> 2] = e2; + th(a2); + e2 = a2 + 132 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4568 >> 2] = h2; + k[a2 + 4572 >> 2] = 0; + i2[a2 + 4576 >> 0] = l2; + i2[a2 + 4577 >> 0] = 1; + i2[a2 + 4578 >> 0] = 0; + k[a2 + 4580 >> 2] = h2; + k[a2 + 4584 >> 2] = 1; + i2[a2 + 4588 >> 0] = l2; + i2[a2 + 4589 >> 0] = 1; + i2[a2 + 4590 >> 0] = 0; + k[a2 + 4592 >> 2] = 0; + r = g2; + return; + } + function mh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4620 >> 0] = e2 & 1; + b2 = a2 + 156 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + nh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function nh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 172 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + k[C2 + 8 >> 2] = c2 + (b2 * 3 | 0); + while (1) { + i2[c2 >> 0] = 0; + i2[c2 + 1 >> 0] = 0; + i2[c2 + 2 >> 0] = 0; + c2 = (k[D2 >> 2] | 0) + 3 | 0; + k[D2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + f2 = 19; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = y2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = e2; + f2 = e2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[B2 >> 2] = f2; + f2 = 19; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + f2 = a2 + 8 | 0; + b: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4596 | 0; + h2 = ia(y2, w2) | 0; + j2 = h2 + 1 | 0; + l2 = a2 + 4600 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 160 | 0; + o2 = a2 + 168 | 0; + p2 = a2 + 164 | 0; + q2 = a2 + 156 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4592 | 0; + u2 = 0; + c: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 3 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (j2 * 3 | 0) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + b2 = k[v2 >> 2] | 0; + e2 = c2 + (b2 * 3 | 0) | 0; + c2 = c2 + ((b2 + -1 | 0) * 3 | 0) | 0; + i2[e2 >> 0] = i2[c2 >> 0] | 0; + i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + c2 = k[g2 >> 2] | 0; + e2 = (k[l2 >> 2] | 0) + -3 | 0; + i2[e2 >> 0] = i2[c2 >> 0] | 0; + i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + x = 0; + ra(78, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + f2 = 30; + break c; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 * 3 | 0) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 * 3 | 0) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + (((k[q2 >> 2] | 0) - h2 | 0) * 3 | 0) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + f2 = 31; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + f2 = 43; + break b; + } + } + if ((f2 | 0) == 30) { + d2 = Wa() | 0; + break; + } else if ((f2 | 0) == 31) { + d2 = Wa() | 0; + break; + } + } else + f2 = 43; + while (0); + do + if ((f2 | 0) == 43) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + function oh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0; + M2 = r; + r = r + 16 | 0; + C2 = M2 + 12 | 0; + L2 = M2 + 9 | 0; + K2 = M2 + 6 | 0; + D2 = M2 + 3 | 0; + E2 = M2; + F2 = a2 + 172 | 0; + b2 = k[F2 >> 2] | 0; + if ((b2 | 0) <= 0) { + r = M2; + return; + } + G2 = a2 + 4600 | 0; + H2 = a2 + 4596 | 0; + I2 = a2 + 4604 | 0; + J2 = a2 + 4592 | 0; + B2 = 0; + while (1) { + y2 = B2 + -1 | 0; + d2 = k[G2 >> 2] | 0; + e2 = d2 + (y2 * 3 | 0) | 0; + N2 = k[H2 >> 2] | 0; + c2 = B2 + 1 | 0; + f2 = l[N2 + (B2 * 3 | 0) >> 0] | 0; + A2 = k[I2 >> 2] | 0; + g2 = l[N2 + (y2 * 3 | 0) >> 0] | 0; + h2 = f2 - g2 | 0; + j2 = l[e2 >> 0] | 0; + m2 = g2 - j2 | 0; + n2 = ((((i2[A2 + ((l[N2 + (c2 * 3 | 0) >> 0] | 0) - f2) >> 0] | 0) * 9 | 0) + (i2[A2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[A2 + m2 >> 0] | 0) | 0; + o2 = l[N2 + (B2 * 3 | 0) + 1 >> 0] | 0; + p2 = l[N2 + (y2 * 3 | 0) + 1 >> 0] | 0; + q2 = o2 - p2 | 0; + s2 = l[d2 + (y2 * 3 | 0) + 1 >> 0] | 0; + t2 = p2 - s2 | 0; + u2 = ((((i2[A2 + ((l[N2 + (c2 * 3 | 0) + 1 >> 0] | 0) - o2) >> 0] | 0) * 9 | 0) + (i2[A2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[A2 + t2 >> 0] | 0) | 0; + v2 = l[N2 + (B2 * 3 | 0) + 2 >> 0] | 0; + w2 = l[N2 + (y2 * 3 | 0) + 2 >> 0] | 0; + x2 = v2 - w2 | 0; + y2 = l[d2 + (y2 * 3 | 0) + 2 >> 0] | 0; + z2 = w2 - y2 | 0; + A2 = ((((i2[A2 + ((l[N2 + (c2 * 3 | 0) + 2 >> 0] | 0) - v2) >> 0] | 0) * 9 | 0) + (i2[A2 + x2 >> 0] | 0) | 0) * 9 | 0) + (i2[A2 + z2 >> 0] | 0) | 0; + if (!(u2 | n2 | A2)) { + i2[K2 >> 0] = i2[e2 >> 0] | 0; + i2[K2 + 1 >> 0] = i2[e2 + 1 >> 0] | 0; + i2[K2 + 2 >> 0] = i2[e2 + 2 >> 0] | 0; + i2[C2 >> 0] = i2[e2 >> 0] | 0; + i2[C2 + 1 >> 0] = i2[e2 + 1 >> 0] | 0; + i2[C2 + 2 >> 0] = i2[e2 + 2 >> 0] | 0; + b2 = ph(a2, C2, d2 + (B2 * 3 | 0) | 0, b2 - B2 | 0) | 0; + c2 = b2 + B2 | 0; + if ((c2 | 0) != (k[F2 >> 2] | 0)) { + N2 = (k[H2 >> 2] | 0) + (c2 * 3 | 0) | 0; + i2[E2 >> 0] = i2[N2 >> 0] | 0; + i2[E2 + 1 >> 0] = i2[N2 + 1 >> 0] | 0; + i2[E2 + 2 >> 0] = i2[N2 + 2 >> 0] | 0; + N2 = k[G2 >> 2] | 0; + i2[L2 >> 0] = i2[K2 >> 0] | 0; + i2[L2 + 1 >> 0] = i2[K2 + 1 >> 0] | 0; + i2[L2 + 2 >> 0] = i2[K2 + 2 >> 0] | 0; + i2[C2 >> 0] = i2[E2 >> 0] | 0; + i2[C2 + 1 >> 0] = i2[E2 + 1 >> 0] | 0; + i2[C2 + 2 >> 0] = i2[E2 + 2 >> 0] | 0; + qh(D2, a2, L2, C2); + N2 = N2 + (c2 * 3 | 0) | 0; + i2[N2 >> 0] = i2[D2 >> 0] | 0; + i2[N2 + 1 >> 0] = i2[D2 + 1 >> 0] | 0; + i2[N2 + 2 >> 0] = i2[D2 + 2 >> 0] | 0; + N2 = k[J2 >> 2] | 0; + k[J2 >> 2] = (N2 | 0) < 1 ? 0 : N2 + -1 | 0; + b2 = b2 + 1 | 0; + } + c2 = b2 + B2 | 0; + } else { + d2 = l[d2 + (B2 * 3 | 0) >> 0] | 0; + b2 = f2 - j2 >> 31; + if ((b2 ^ m2 | 0) >= 0) + if ((b2 ^ h2 | 0) < 0) + b2 = j2; + else + b2 = j2 - g2 + f2 | 0; + else + b2 = f2; + f2 = rh(a2, n2, d2, b2, 0) | 0; + d2 = l[(k[G2 >> 2] | 0) + (B2 * 3 | 0) + 1 >> 0] | 0; + b2 = o2 - s2 >> 31; + if ((b2 ^ t2 | 0) >= 0) + if ((b2 ^ q2 | 0) < 0) + b2 = s2; + else + b2 = s2 - p2 + o2 | 0; + else + b2 = o2; + d2 = rh(a2, u2, d2, b2, 0) | 0; + e2 = l[(k[G2 >> 2] | 0) + (B2 * 3 | 0) + 2 >> 0] | 0; + b2 = v2 - y2 >> 31; + if ((b2 ^ z2 | 0) >= 0) + if ((b2 ^ x2 | 0) < 0) + b2 = y2; + else + b2 = y2 - w2 + v2 | 0; + else + b2 = v2; + A2 = rh(a2, A2, e2, b2, 0) | 0; + N2 = (k[G2 >> 2] | 0) + (B2 * 3 | 0) | 0; + i2[N2 >> 0] = f2; + i2[N2 + 1 >> 0] = d2; + i2[N2 + 2 >> 0] = A2; + } + b2 = k[F2 >> 2] | 0; + if ((c2 | 0) >= (b2 | 0)) + break; + else + B2 = c2; + } + r = M2; + return; + } + function ph(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 112 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 4592 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[j2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[j2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + m2 = 8; + break; + } + g2 = k[l2 >> 2] | 0; + n2 = 1 << k[36476 + (g2 << 2) >> 2]; + o2 = d2 - f2 | 0; + o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; + f2 = o2 + f2 | 0; + if ((o2 | 0) == (n2 | 0)) + k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((m2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[l2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Ua(e2 | 0); + fb(o2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + f2 = 0; + do { + o2 = c2 + (f2 * 3 | 0) | 0; + i2[o2 >> 0] = i2[b2 >> 0] | 0; + i2[o2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[o2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function qh(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; + j2 = b2 + 4568 | 0; + o2 = sh(b2, j2) | 0; + g2 = sh(b2, j2) | 0; + j2 = sh(b2, j2) | 0; + f2 = b2 + 128 | 0; + e2 = l[d2 >> 0] | 0; + m2 = k[b2 + 136 >> 2] | 0; + n2 = m2 << 1 | 1; + e2 = (ia(ia(n2, o2) | 0, e2 - (l[c2 >> 0] | 0) >> 31 | 1) | 0) + e2 | 0; + o2 = 0 - m2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + f2 = k[f2 >> 2] | 0; + if ((f2 + m2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else { + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + f2 = k[f2 >> 2] | 0; + } + if ((e2 & f2 | 0) != (e2 | 0)) + e2 = f2 & ~(e2 >> 31); + h2 = e2 & 255; + e2 = l[d2 + 1 >> 0] | 0; + e2 = (ia(ia(n2, g2) | 0, e2 - (l[c2 + 1 >> 0] | 0) >> 31 | 1) | 0) + e2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + if ((f2 + m2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + if ((e2 & f2 | 0) != (e2 | 0)) + e2 = f2 & ~(e2 >> 31); + g2 = e2 & 255; + e2 = l[d2 + 2 >> 0] | 0; + e2 = (ia(ia(n2, j2) | 0, e2 - (l[c2 + 2 >> 0] | 0) >> 31 | 1) | 0) + e2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + if ((f2 + m2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + if ((e2 & f2 | 0) == (e2 | 0)) { + b2 = e2; + b2 = b2 & 255; + i2[a2 >> 0] = h2; + o2 = a2 + 1 | 0; + i2[o2 >> 0] = g2; + a2 = a2 + 2 | 0; + i2[a2 >> 0] = b2; + return; + } + b2 = f2 & ~(e2 >> 31); + b2 = b2 & 255; + i2[a2 >> 0] = h2; + o2 = a2 + 1 | 0; + i2[o2 >> 0] = g2; + a2 = a2 + 2 | 0; + i2[a2 >> 0] = b2; + return; + } + function rh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + l2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 188 + (l2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((c2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 128 | 0; + e2 = k[q2 >> 2] | 0; + if ((c2 & e2 | 0) == (c2 | 0)) + m2 = c2; + else + m2 = e2 & ~(c2 >> 31); + c2 = a2 + 112 | 0; + if ((k[c2 >> 2] | 0) < 8) + qe(a2); + e2 = a2 + 108 | 0; + d2 = k[e2 >> 2] | 0; + f2 = d2 >>> 24; + g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; + if (!g2) { + h2 = k[a2 + 148 >> 2] | 0; + e2 = k[a2 + 140 >> 2] | 0; + c2 = Tg(a2) | 0; + if ((c2 | 0) < (h2 + -1 - e2 | 0)) { + if (b2) + c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; + } else + c2 = (Ug(a2, e2) | 0) + 1 | 0; + c2 = c2 << 31 >> 31 ^ c2 >> 1; + if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; + k[e2 >> 2] = d2 << g2; + c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; + } + h2 = a2 + 136 | 0; + d2 = k[h2 >> 2] | 0; + if (!b2) { + if (!d2) + e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; + else + e2 = 0; + g2 = e2 ^ c2; + } else + g2 = c2; + b2 = k[a2 + 152 >> 2] | 0; + e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; + f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; + c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; + d2 = j[p2 >> 1] | 0; + if ((d2 | 0) == (b2 | 0)) { + e2 = e2 >> 1; + c2 = c2 >> 1; + d2 = b2 >> 1; + } + k[o2 >> 2] = e2; + b2 = d2 + 1 | 0; + j[p2 >> 1] = b2; + e2 = b2 + c2 | 0; + if ((e2 | 0) >= 1) { + if ((c2 | 0) > 0) { + c2 = c2 - b2 | 0; + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + c2 = (c2 | 0) > 0 ? 0 : c2; + } + } else { + c2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); + c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; + } + k[f2 >> 2] = c2; + b2 = k[h2 >> 2] | 0; + d2 = b2 << 1 | 1; + e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; + if ((e2 | 0) >= (0 - b2 | 0)) { + c2 = k[q2 >> 2] | 0; + if ((c2 + b2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; + } else { + e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; + c2 = k[q2 >> 2] | 0; + } + if ((e2 & c2 | 0) == (e2 | 0)) { + a2 = e2; + a2 = a2 & 255; + return a2 | 0; + } + a2 = c2 & ~(e2 >> 31); + a2 = a2 & 255; + return a2 | 0; + } + function sh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + m2 = b2 + 9 | 0; + c2 = l[m2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + g2 = k[a2 + 148 >> 2] | 0; + h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; + c2 = k[a2 + 140 >> 2] | 0; + e2 = Tg(a2) | 0; + do + if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) + if (!d2) { + d2 = k[f2 >> 2] | 0; + a2 = d2 + e2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + j2 = 8; + break; + } else { + h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; + d2 = k[f2 >> 2] | 0; + e2 = h2 + d2 | 0; + g2 = e2 & 1; + c2 = g2; + f2 = 1; + e2 = (g2 + e2 | 0) / 2 | 0; + break; + } + else { + e2 = (Ug(a2, c2) | 0) + 1 | 0; + g2 = k[f2 >> 2] | 0; + a2 = e2 + g2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + if (!d2) { + d2 = g2; + j2 = 8; + } else { + h2 = e2; + f2 = 1; + e2 = a2; + d2 = g2; + } + } + while (0); + if ((j2 | 0) == 8) { + h2 = e2; + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; + e2 = a2; + } + e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[m2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = d2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[m2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = j2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + function th(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 136 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 128 >> 2] | 0; + b2 = a2 + 144 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 144 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4608 | 0; + d2 = m2 << 1; + e2 = a2 + 4612 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4604 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 184 | 0; + j2 = a2 + 180 | 0; + g2 = a2 + 176 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function uh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35772; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function vh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35772; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function wh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function xh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 65535, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 156 >> 2] = f2; + k[a2 + 160 >> 2] = d2; + Fh(a2); + d2 = 0; + do { + k[a2 + 164 + (d2 * 12 | 0) >> 2] = 1024; + k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4544 >> 2] = 1024; + k[a2 + 4548 >> 2] = 0; + i2[a2 + 4552 >> 0] = h2; + i2[a2 + 4553 >> 0] = 1; + i2[a2 + 4554 >> 0] = 0; + k[a2 + 4556 >> 2] = 1024; + k[a2 + 4560 >> 2] = 1; + i2[a2 + 4564 >> 0] = h2; + i2[a2 + 4565 >> 0] = 1; + i2[a2 + 4566 >> 0] = 0; + k[a2 + 4568 >> 2] = 0; + r = e2; + return; + } + function yh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4596 >> 0] = e2 & 1; + b2 = a2 + 132 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + zh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function zh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 148 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[C2 >> 2] = d2; + B2 = d2 + (b2 << 1) | 0; + k[C2 + 8 >> 2] = B2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[D2 >> 2] = B2; + break; + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + g2 = 18; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = f2; + g2 = f2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[B2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 8 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4572 | 0; + h2 = ia(y2, w2) | 0; + i3 = h2 + 1 | 0; + l2 = a2 + 4576 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 136 | 0; + o2 = a2 + 144 | 0; + p2 = a2 + 140 | 0; + q2 = a2 + 132 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4568 | 0; + u2 = 0; + b: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 2 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (i3 << 1) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + e2 = k[v2 >> 2] | 0; + j[c2 + (e2 << 1) >> 1] = j[c2 + (e2 + -1 << 1) >> 1] | 0; + j[b2 + -2 >> 1] = j[c2 >> 1] | 0; + x = 0; + ra(79, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 29; + break b; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 << 1) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 << 1) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2 << 1) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + g2 = 30; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 42; + break a; + } + } + if ((g2 | 0) == 29) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 30) { + d2 = Wa() | 0; + break; + } + } else + g2 = 42; + while (0); + do + if ((g2 | 0) == 42) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Ah(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4572 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 148 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4576 | 0; + r2 = a2 + 4580 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (Ch(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = Bh(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function Bh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + m2 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 164 + (m2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((c2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((c2 & 65535 | 0) != (c2 | 0)) + c2 = c2 >> 31 & 65535 ^ 65535; + e2 = a2 + 112 | 0; + if ((k[e2 >> 2] | 0) < 8) + qe(a2); + d2 = a2 + 108 | 0; + g2 = k[d2 >> 2] | 0; + h2 = g2 >>> 24; + l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; + if (!l2) { + e2 = Tg(a2) | 0; + if ((e2 | 0) < 47) { + if (f2) + e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; + } else + e2 = (Ug(a2, 16) | 0) + 1 | 0; + e2 = e2 << 31 >> 31 ^ e2 >> 1; + if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; + k[d2 >> 2] = g2 << l2; + e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; + } + l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; + d2 = k[l2 >> 2] | 0; + if (!f2) { + a2 = j[p2 >> 1] | 0; + f2 = a2; + e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; + } else + f2 = j[p2 >> 1] | 0; + g2 = f2 << 16 >> 16 == 64; + a2 = g2 & 1; + h2 = d2 + e2 >> a2; + g2 = g2 ? 32 : f2 << 16 >> 16; + k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; + d2 = g2 + 1 | 0; + j[p2 >> 1] = d2; + f2 = d2 + h2 | 0; + if ((f2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + if ((h2 | 0) <= 0) { + p2 = h2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + p2 = h2 - d2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + function Ch(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 4576 | 0; + e2 = k[f2 >> 2] | 0; + c2 = j[e2 + (b2 + -1 << 1) >> 1] | 0; + g2 = a2 + 148 | 0; + e2 = Dh(a2, c2, e2 + (b2 << 1) | 0, (k[g2 >> 2] | 0) - b2 | 0) | 0; + d2 = e2 + b2 | 0; + if ((d2 | 0) == (k[g2 >> 2] | 0)) { + g2 = e2; + return g2 | 0; + } + c2 = c2 & 65535; + b2 = m[(k[a2 + 4572 >> 2] | 0) + (d2 << 1) >> 1] | 0; + g2 = c2 - b2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) < 1) + c2 = (Eh(a2, a2 + 4556 | 0) | 0) + c2 | 0; + else + c2 = (ia(Eh(a2, a2 + 4544 | 0) | 0, b2 - c2 >> 31 | 1) | 0) + b2 | 0; + j[(k[f2 >> 2] | 0) + (d2 << 1) >> 1] = c2; + g2 = a2 + 4568 | 0; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + g2 = e2 + 1 | 0; + return g2 | 0; + } + function Dh(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 112 | 0; + l2 = a2 + 108 | 0; + m2 = a2 + 4568 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[l2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[l2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + n2 = 8; + break; + } + g2 = k[m2 >> 2] | 0; + o2 = 1 << k[36476 + (g2 << 2) >> 2]; + p2 = d2 - f2 | 0; + p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; + f2 = p2 + f2 | 0; + if ((p2 | 0) == (o2 | 0)) + k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((n2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[m2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + Ua(e2 | 0); + fb(p2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) > 0) + f2 = 0; + else + return e2 | 0; + do { + j[c2 + (f2 << 1) >> 1] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function Eh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + h2 = b2 + 9 | 0; + c2 = l[h2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; + c2 = Tg(a2) | 0; + do + if ((c2 | 0) < (46 - e2 | 0)) + if (!d2) { + a2 = k[f2 >> 2] | 0; + e2 = a2 + c2 | 0; + d2 = e2 & 1; + e2 = (d2 + e2 | 0) / 2 | 0; + g2 = 8; + break; + } else { + c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + j2 = e2 & 1; + d2 = j2; + f2 = 1; + e2 = (j2 + e2 | 0) / 2 | 0; + break; + } + else { + c2 = (Ug(a2, 16) | 0) + 1 | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + f2 = e2 & 1; + e2 = (f2 + e2 | 0) / 2 | 0; + if (!d2) { + d2 = f2; + g2 = 8; + } else { + d2 = f2; + f2 = 1; + } + } + while (0); + if ((g2 | 0) == 8) + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; + e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[h2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + j2 = d2; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[h2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + function Fh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 65535, 0); + j2 = a2 + 152 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { + j2 = k[8909] | 0; + k[a2 + 4580 >> 2] = j2 + (((k[8910] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4584 | 0; + d2 = a2 + 4588 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 131072) { + if (f2 >>> 0 > 131072 ? (g2 = b2 + 131072 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 131072 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4580 | 0; + k[h2 >> 2] = b2 + 65536; + g2 = a2 + 160 | 0; + e2 = a2 + 156 | 0; + f2 = -65536; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 65536) + break; + } + r = l2; + return; + } + function Gh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35744; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Hh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35744; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Ih(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Jh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 4095, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 156 >> 2] = f2; + k[a2 + 160 >> 2] = d2; + Rh(a2); + d2 = 0; + do { + k[a2 + 164 + (d2 * 12 | 0) >> 2] = 64; + k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4544 >> 2] = 64; + k[a2 + 4548 >> 2] = 0; + i2[a2 + 4552 >> 0] = h2; + i2[a2 + 4553 >> 0] = 1; + i2[a2 + 4554 >> 0] = 0; + k[a2 + 4556 >> 2] = 64; + k[a2 + 4560 >> 2] = 1; + i2[a2 + 4564 >> 0] = h2; + i2[a2 + 4565 >> 0] = 1; + i2[a2 + 4566 >> 0] = 0; + k[a2 + 4568 >> 2] = 0; + r = e2; + return; + } + function Kh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4596 >> 0] = e2 & 1; + b2 = a2 + 132 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + Lh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function Lh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 148 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[C2 >> 2] = d2; + B2 = d2 + (b2 << 1) | 0; + k[C2 + 8 >> 2] = B2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[D2 >> 2] = B2; + break; + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + g2 = 18; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = f2; + g2 = f2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[B2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 8 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4572 | 0; + h2 = ia(y2, w2) | 0; + i3 = h2 + 1 | 0; + l2 = a2 + 4576 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 136 | 0; + o2 = a2 + 144 | 0; + p2 = a2 + 140 | 0; + q2 = a2 + 132 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4568 | 0; + u2 = 0; + b: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 2 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (i3 << 1) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + e2 = k[v2 >> 2] | 0; + j[c2 + (e2 << 1) >> 1] = j[c2 + (e2 + -1 << 1) >> 1] | 0; + j[b2 + -2 >> 1] = j[c2 >> 1] | 0; + x = 0; + ra(80, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 29; + break b; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 << 1) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 << 1) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2 << 1) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + g2 = 30; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 42; + break a; + } + } + if ((g2 | 0) == 29) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 30) { + d2 = Wa() | 0; + break; + } + } else + g2 = 42; + while (0); + do + if ((g2 | 0) == 42) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Mh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4572 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 148 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4576 | 0; + r2 = a2 + 4580 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (Oh(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = Nh(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function Nh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + m2 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 164 + (m2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((c2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((c2 & 4095 | 0) != (c2 | 0)) + c2 = c2 >> 31 & 4095 ^ 4095; + e2 = a2 + 112 | 0; + if ((k[e2 >> 2] | 0) < 8) + qe(a2); + d2 = a2 + 108 | 0; + g2 = k[d2 >> 2] | 0; + h2 = g2 >>> 24; + l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; + if (!l2) { + e2 = Tg(a2) | 0; + if ((e2 | 0) < 35) { + if (f2) + e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; + } else + e2 = (Ug(a2, 12) | 0) + 1 | 0; + e2 = e2 << 31 >> 31 ^ e2 >> 1; + if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; + k[d2 >> 2] = g2 << l2; + e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; + } + l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; + d2 = k[l2 >> 2] | 0; + if (!f2) { + a2 = j[p2 >> 1] | 0; + f2 = a2; + e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; + } else + f2 = j[p2 >> 1] | 0; + g2 = f2 << 16 >> 16 == 64; + a2 = g2 & 1; + h2 = d2 + e2 >> a2; + g2 = g2 ? 32 : f2 << 16 >> 16; + k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; + d2 = g2 + 1 | 0; + j[p2 >> 1] = d2; + f2 = d2 + h2 | 0; + if ((f2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + if ((h2 | 0) <= 0) { + p2 = h2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + p2 = h2 - d2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + function Oh(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 4576 | 0; + e2 = k[f2 >> 2] | 0; + c2 = j[e2 + (b2 + -1 << 1) >> 1] | 0; + g2 = a2 + 148 | 0; + e2 = Ph(a2, c2, e2 + (b2 << 1) | 0, (k[g2 >> 2] | 0) - b2 | 0) | 0; + d2 = e2 + b2 | 0; + if ((d2 | 0) == (k[g2 >> 2] | 0)) { + g2 = e2; + return g2 | 0; + } + c2 = c2 & 65535; + b2 = m[(k[a2 + 4572 >> 2] | 0) + (d2 << 1) >> 1] | 0; + g2 = c2 - b2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) < 1) + c2 = (Qh(a2, a2 + 4556 | 0) | 0) + c2 | 0; + else + c2 = (ia(Qh(a2, a2 + 4544 | 0) | 0, b2 - c2 >> 31 | 1) | 0) + b2 | 0; + j[(k[f2 >> 2] | 0) + (d2 << 1) >> 1] = c2 & 4095; + g2 = a2 + 4568 | 0; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + g2 = e2 + 1 | 0; + return g2 | 0; + } + function Ph(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 112 | 0; + l2 = a2 + 108 | 0; + m2 = a2 + 4568 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[l2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[l2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + n2 = 8; + break; + } + g2 = k[m2 >> 2] | 0; + o2 = 1 << k[36476 + (g2 << 2) >> 2]; + p2 = d2 - f2 | 0; + p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; + f2 = p2 + f2 | 0; + if ((p2 | 0) == (o2 | 0)) + k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((n2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[m2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + Ua(e2 | 0); + fb(p2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) > 0) + f2 = 0; + else + return e2 | 0; + do { + j[c2 + (f2 << 1) >> 1] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function Qh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + h2 = b2 + 9 | 0; + c2 = l[h2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; + c2 = Tg(a2) | 0; + do + if ((c2 | 0) < (34 - e2 | 0)) + if (!d2) { + a2 = k[f2 >> 2] | 0; + e2 = a2 + c2 | 0; + d2 = e2 & 1; + e2 = (d2 + e2 | 0) / 2 | 0; + g2 = 8; + break; + } else { + c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + j2 = e2 & 1; + d2 = j2; + f2 = 1; + e2 = (j2 + e2 | 0) / 2 | 0; + break; + } + else { + c2 = (Ug(a2, 12) | 0) + 1 | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + f2 = e2 & 1; + e2 = (f2 + e2 | 0) / 2 | 0; + if (!d2) { + d2 = f2; + g2 = 8; + } else { + d2 = f2; + f2 = 1; + } + } + while (0); + if ((g2 | 0) == 8) + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; + e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[h2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + j2 = d2; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[h2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + function Rh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 4095, 0); + j2 = a2 + 152 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { + j2 = k[8906] | 0; + k[a2 + 4580 >> 2] = j2 + (((k[8907] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4584 | 0; + d2 = a2 + 4588 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 8192) { + if (f2 >>> 0 > 8192 ? (g2 = b2 + 8192 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 8192 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4580 | 0; + k[h2 >> 2] = b2 + 4096; + g2 = a2 + 160 | 0; + e2 = a2 + 156 | 0; + f2 = -4096; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 4096) + break; + } + r = l2; + return; + } + function Sh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35716; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Th(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35716; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Uh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Vh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 255, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 156 >> 2] = f2; + k[a2 + 160 >> 2] = d2; + bi(a2); + d2 = 0; + do { + k[a2 + 164 + (d2 * 12 | 0) >> 2] = 4; + k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4544 >> 2] = 4; + k[a2 + 4548 >> 2] = 0; + i2[a2 + 4552 >> 0] = h2; + i2[a2 + 4553 >> 0] = 1; + i2[a2 + 4554 >> 0] = 0; + k[a2 + 4556 >> 2] = 4; + k[a2 + 4560 >> 2] = 1; + i2[a2 + 4564 >> 0] = h2; + i2[a2 + 4565 >> 0] = 1; + i2[a2 + 4566 >> 0] = 0; + k[a2 + 4568 >> 2] = 0; + r = e2; + return; + } + function Wh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4596 >> 0] = e2 & 1; + b2 = a2 + 132 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + Xh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function Xh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 148 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + k[C2 + 8 >> 2] = c2 + b2; + while (1) { + i2[c2 >> 0] = 0; + c2 = (k[D2 >> 2] | 0) + 1 | 0; + k[D2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + f2 = 19; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = y2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = e2; + f2 = e2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[B2 >> 2] = f2; + f2 = 19; + break; + } + c2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + f2 = a2 + 8 | 0; + b: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4572 | 0; + h2 = ia(y2, w2) | 0; + j2 = h2 + 1 | 0; + l2 = a2 + 4576 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 136 | 0; + o2 = a2 + 144 | 0; + p2 = a2 + 140 | 0; + q2 = a2 + 132 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4568 | 0; + u2 = 0; + c: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 1 | 0; + k[g2 >> 2] = c2; + d2 = d2 + j2 | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + e2 = k[v2 >> 2] | 0; + i2[c2 + e2 >> 0] = i2[c2 + (e2 + -1) >> 0] | 0; + i2[(k[l2 >> 2] | 0) + -1 >> 0] = i2[k[g2 >> 2] >> 0] | 0; + x = 0; + ra(81, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + f2 = 30; + break c; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + w2 | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + w2 | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + f2 = 31; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + f2 = 43; + break b; + } + } + if ((f2 | 0) == 30) { + c2 = Wa() | 0; + break; + } else if ((f2 | 0) == 31) { + c2 = Wa() | 0; + break; + } + } else + f2 = 43; + while (0); + do + if ((f2 | 0) == 43) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + function Yh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + o2 = a2 + 4572 | 0; + b2 = k[o2 >> 2] | 0; + r2 = a2 + 148 | 0; + if ((k[r2 >> 2] | 0) <= 0) + return; + p2 = a2 + 4576 | 0; + q2 = a2 + 4580 | 0; + e2 = b2; + f2 = l[b2 + -1 >> 0] | 0; + b2 = l[b2 >> 0] | 0; + n2 = 0; + while (1) { + m2 = k[p2 >> 2] | 0; + j2 = l[m2 + (n2 + -1) >> 0] | 0; + d2 = n2 + 1 | 0; + c2 = l[e2 + d2 >> 0] | 0; + h2 = k[q2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - j2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (_h(a2, n2, 0) | 0) + n2 | 0; + c2 = k[o2 >> 2] | 0; + b2 = l[c2 + (d2 + -1) >> 0] | 0; + c2 = l[c2 + d2 >> 0] | 0; + } else { + f2 = b2 - j2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = j2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + m2 = Zh(a2, h2, l[m2 + n2 >> 0] | 0, e2, 0) | 0; + i2[(k[p2 >> 2] | 0) + n2 >> 0] = m2; + } + if ((d2 | 0) >= (k[r2 >> 2] | 0)) + break; + e2 = k[o2 >> 2] | 0; + f2 = b2; + b2 = c2; + n2 = d2; + } + return; + } + function Zh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + m2 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 164 + (m2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((c2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((c2 & 255 | 0) != (c2 | 0)) + c2 = c2 >> 31 & 255 ^ 255; + e2 = a2 + 112 | 0; + if ((k[e2 >> 2] | 0) < 8) + qe(a2); + d2 = a2 + 108 | 0; + g2 = k[d2 >> 2] | 0; + h2 = g2 >>> 24; + l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; + if (!l2) { + e2 = Tg(a2) | 0; + if ((e2 | 0) < 23) { + if (f2) + e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; + } else + e2 = (Ug(a2, 8) | 0) + 1 | 0; + e2 = e2 << 31 >> 31 ^ e2 >> 1; + if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; + k[d2 >> 2] = g2 << l2; + e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; + } + l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; + d2 = k[l2 >> 2] | 0; + if (!f2) { + a2 = j[p2 >> 1] | 0; + f2 = a2; + e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; + } else + f2 = j[p2 >> 1] | 0; + g2 = f2 << 16 >> 16 == 64; + a2 = g2 & 1; + h2 = d2 + e2 >> a2; + g2 = g2 ? 32 : f2 << 16 >> 16; + k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; + d2 = g2 + 1 | 0; + j[p2 >> 1] = d2; + f2 = d2 + h2 | 0; + if ((f2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + if ((h2 | 0) <= 0) { + p2 = h2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + p2 = h2 - d2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + function _h(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 4576 | 0; + e2 = k[f2 >> 2] | 0; + c2 = i2[e2 + (b2 + -1) >> 0] | 0; + g2 = a2 + 148 | 0; + e2 = $h(a2, c2, e2 + b2 | 0, (k[g2 >> 2] | 0) - b2 | 0) | 0; + d2 = e2 + b2 | 0; + if ((d2 | 0) == (k[g2 >> 2] | 0)) { + g2 = e2; + return g2 | 0; + } + c2 = c2 & 255; + b2 = l[(k[a2 + 4572 >> 2] | 0) + d2 >> 0] | 0; + g2 = c2 - b2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) < 1) + c2 = (ai(a2, a2 + 4556 | 0) | 0) + c2 | 0; + else + c2 = (ia(ai(a2, a2 + 4544 | 0) | 0, b2 - c2 >> 31 | 1) | 0) + b2 | 0; + i2[(k[f2 >> 2] | 0) + d2 >> 0] = c2; + g2 = a2 + 4568 | 0; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + g2 = e2 + 1 | 0; + return g2 | 0; + } + function $h(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 112 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 4568 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[j2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[j2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + m2 = 8; + break; + } + g2 = k[l2 >> 2] | 0; + n2 = 1 << k[36476 + (g2 << 2) >> 2]; + o2 = d2 - f2 | 0; + o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; + f2 = o2 + f2 | 0; + if ((o2 | 0) == (n2 | 0)) + k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((m2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[l2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Ua(e2 | 0); + fb(o2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + sw(c2 | 0, b2 | 0, e2 | 0) | 0; + return e2 | 0; + } + function ai(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + h2 = b2 + 9 | 0; + c2 = l[h2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; + c2 = Tg(a2) | 0; + do + if ((c2 | 0) < (22 - e2 | 0)) + if (!d2) { + a2 = k[f2 >> 2] | 0; + e2 = a2 + c2 | 0; + d2 = e2 & 1; + e2 = (d2 + e2 | 0) / 2 | 0; + g2 = 8; + break; + } else { + c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + j2 = e2 & 1; + d2 = j2; + f2 = 1; + e2 = (j2 + e2 | 0) / 2 | 0; + break; + } + else { + c2 = (Ug(a2, 8) | 0) + 1 | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + f2 = e2 & 1; + e2 = (f2 + e2 | 0) / 2 | 0; + if (!d2) { + d2 = f2; + g2 = 8; + } else { + d2 = f2; + f2 = 1; + } + } + while (0); + if ((g2 | 0) == 8) + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; + e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[h2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + j2 = d2; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[h2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + function bi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 255, 0); + j2 = a2 + 152 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { + j2 = k[8900] | 0; + k[a2 + 4580 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4584 | 0; + d2 = a2 + 4588 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 512) { + if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 512 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4580 | 0; + k[h2 >> 2] = b2 + 256; + g2 = a2 + 160 | 0; + e2 = a2 + 156 | 0; + f2 = -256; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 256) + break; + } + r = l2; + return; + } + function ci(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35688; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function di(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35688; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function ei(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function fi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 255, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 156 >> 2] = f2; + k[a2 + 160 >> 2] = d2; + ni(a2); + d2 = 0; + do { + k[a2 + 164 + (d2 * 12 | 0) >> 2] = 4; + k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4544 >> 2] = 4; + k[a2 + 4548 >> 2] = 0; + i2[a2 + 4552 >> 0] = h2; + i2[a2 + 4553 >> 0] = 1; + i2[a2 + 4554 >> 0] = 0; + k[a2 + 4556 >> 2] = 4; + k[a2 + 4560 >> 2] = 1; + i2[a2 + 4564 >> 0] = h2; + i2[a2 + 4565 >> 0] = 1; + i2[a2 + 4566 >> 0] = 0; + k[a2 + 4568 >> 2] = 0; + r = e2; + return; + } + function gi(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4596 >> 0] = e2 & 1; + b2 = a2 + 132 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + hi(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function hi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 148 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + k[C2 + 8 >> 2] = c2 + (b2 * 3 | 0); + while (1) { + i2[c2 >> 0] = 0; + i2[c2 + 1 >> 0] = 0; + i2[c2 + 2 >> 0] = 0; + c2 = (k[D2 >> 2] | 0) + 3 | 0; + k[D2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + f2 = 19; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = y2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = e2; + f2 = e2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[B2 >> 2] = f2; + f2 = 19; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + f2 = a2 + 8 | 0; + b: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4572 | 0; + h2 = ia(y2, w2) | 0; + j2 = h2 + 1 | 0; + l2 = a2 + 4576 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 136 | 0; + o2 = a2 + 144 | 0; + p2 = a2 + 140 | 0; + q2 = a2 + 132 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4568 | 0; + u2 = 0; + c: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 3 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (j2 * 3 | 0) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + b2 = k[v2 >> 2] | 0; + e2 = c2 + (b2 * 3 | 0) | 0; + c2 = c2 + ((b2 + -1 | 0) * 3 | 0) | 0; + i2[e2 >> 0] = i2[c2 >> 0] | 0; + i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + c2 = k[g2 >> 2] | 0; + e2 = (k[l2 >> 2] | 0) + -3 | 0; + i2[e2 >> 0] = i2[c2 >> 0] | 0; + i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + x = 0; + ra(82, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + f2 = 30; + break c; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 * 3 | 0) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 * 3 | 0) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + (((k[q2 >> 2] | 0) - h2 | 0) * 3 | 0) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + f2 = 31; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + f2 = 43; + break b; + } + } + if ((f2 | 0) == 30) { + d2 = Wa() | 0; + break; + } else if ((f2 | 0) == 31) { + d2 = Wa() | 0; + break; + } + } else + f2 = 43; + while (0); + do + if ((f2 | 0) == 43) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + function ii(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = a2 + 148 | 0; + if ((k[A2 >> 2] | 0) <= 0) + return; + B2 = a2 + 4576 | 0; + C2 = a2 + 4572 | 0; + D2 = a2 + 4580 | 0; + z2 = 0; + while (1) { + w2 = z2 + -1 | 0; + f2 = k[B2 >> 2] | 0; + g2 = k[C2 >> 2] | 0; + b2 = z2 + 1 | 0; + e2 = l[g2 + (z2 * 3 | 0) >> 0] | 0; + y2 = k[D2 >> 2] | 0; + h2 = l[g2 + (w2 * 3 | 0) >> 0] | 0; + j2 = e2 - h2 | 0; + m2 = l[f2 + (w2 * 3 | 0) >> 0] | 0; + n2 = h2 - m2 | 0; + o2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) >> 0] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[y2 + j2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + n2 >> 0] | 0) | 0; + d2 = l[g2 + (z2 * 3 | 0) + 1 >> 0] | 0; + p2 = l[g2 + (w2 * 3 | 0) + 1 >> 0] | 0; + q2 = d2 - p2 | 0; + r2 = l[f2 + (w2 * 3 | 0) + 1 >> 0] | 0; + s2 = p2 - r2 | 0; + t2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 1 >> 0] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[y2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + s2 >> 0] | 0) | 0; + c2 = l[g2 + (z2 * 3 | 0) + 2 >> 0] | 0; + u2 = l[g2 + (w2 * 3 | 0) + 2 >> 0] | 0; + v2 = c2 - u2 | 0; + w2 = l[f2 + (w2 * 3 | 0) + 2 >> 0] | 0; + x2 = u2 - w2 | 0; + y2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 2 >> 0] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[y2 + v2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + x2 >> 0] | 0) | 0; + if (!(t2 | o2 | y2)) + b2 = (ji(a2, z2, 0) | 0) + z2 | 0; + else { + g2 = l[f2 + (z2 * 3 | 0) >> 0] | 0; + f2 = e2 - m2 >> 31; + if ((f2 ^ n2 | 0) >= 0) + if ((f2 ^ j2 | 0) < 0) + e2 = m2; + else + e2 = m2 - h2 + e2 | 0; + g2 = ki(a2, o2, g2, e2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 1 >> 0] | 0; + e2 = d2 - r2 >> 31; + if ((e2 ^ s2 | 0) >= 0) + if ((e2 ^ q2 | 0) < 0) + d2 = r2; + else + d2 = r2 - p2 + d2 | 0; + e2 = ki(a2, t2, f2, d2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 2 >> 0] | 0; + d2 = c2 - w2 >> 31; + if ((d2 ^ x2 | 0) >= 0) + if ((d2 ^ v2 | 0) < 0) + c2 = w2; + else + c2 = w2 - u2 + c2 | 0; + y2 = ki(a2, y2, f2, c2, 0) | 0; + z2 = (k[B2 >> 2] | 0) + (z2 * 3 | 0) | 0; + i2[z2 >> 0] = g2; + i2[z2 + 1 >> 0] = e2; + i2[z2 + 2 >> 0] = y2; + } + if ((b2 | 0) < (k[A2 >> 2] | 0)) + z2 = b2; + else + break; + } + return; + } + function ji(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + j2 = r; + r = r + 16 | 0; + m2 = j2 + 3 | 0; + n2 = j2; + f2 = a2 + 4576 | 0; + c2 = k[f2 >> 2] | 0; + d2 = c2 + ((b2 + -1 | 0) * 3 | 0) | 0; + g2 = i2[d2 >> 0] | 0; + h2 = i2[d2 + 1 >> 0] | 0; + d2 = i2[d2 + 2 >> 0] | 0; + i2[n2 >> 0] = g2; + i2[n2 + 1 >> 0] = h2; + i2[n2 + 2 >> 0] = d2; + l2 = a2 + 148 | 0; + e2 = (k[l2 >> 2] | 0) - b2 | 0; + i2[m2 >> 0] = i2[n2 >> 0] | 0; + i2[m2 + 1 >> 0] = i2[n2 + 1 >> 0] | 0; + i2[m2 + 2 >> 0] = i2[n2 + 2 >> 0] | 0; + e2 = li(a2, m2, c2 + (b2 * 3 | 0) | 0, e2) | 0; + c2 = e2 + b2 | 0; + if ((c2 | 0) == (k[l2 >> 2] | 0)) { + n2 = e2; + r = j2; + return n2 | 0; + } + m2 = (k[a2 + 4572 >> 2] | 0) + (c2 * 3 | 0) | 0; + b2 = i2[m2 >> 0] | 0; + l2 = i2[m2 + 1 >> 0] | 0; + m2 = i2[m2 + 2 >> 0] | 0; + n2 = k[f2 >> 2] | 0; + f2 = a2 + 4544 | 0; + p2 = mi(a2, f2) | 0; + o2 = mi(a2, f2) | 0; + b2 = b2 & 255; + b2 = (ia(b2 - (g2 & 255) >> 31 | 1, p2) | 0) + b2 & 255; + l2 = l2 & 255; + l2 = (ia(l2 - (h2 & 255) >> 31 | 1, o2) | 0) + l2 & 255; + m2 = m2 & 255; + m2 = (ia(m2 - (d2 & 255) >> 31 | 1, mi(a2, f2) | 0) | 0) + m2 & 255; + n2 = n2 + (c2 * 3 | 0) | 0; + i2[n2 >> 0] = b2; + i2[n2 + 1 >> 0] = l2; + i2[n2 + 2 >> 0] = m2; + n2 = a2 + 4568 | 0; + m2 = k[n2 >> 2] | 0; + k[n2 >> 2] = (m2 | 0) < 1 ? 0 : m2 + -1 | 0; + n2 = e2 + 1 | 0; + r = j2; + return n2 | 0; + } + function ki(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + m2 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 164 + (m2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((c2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((c2 & 255 | 0) != (c2 | 0)) + c2 = c2 >> 31 & 255 ^ 255; + e2 = a2 + 112 | 0; + if ((k[e2 >> 2] | 0) < 8) + qe(a2); + d2 = a2 + 108 | 0; + g2 = k[d2 >> 2] | 0; + h2 = g2 >>> 24; + l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; + if (!l2) { + e2 = Tg(a2) | 0; + if ((e2 | 0) < 23) { + if (f2) + e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; + } else + e2 = (Ug(a2, 8) | 0) + 1 | 0; + e2 = e2 << 31 >> 31 ^ e2 >> 1; + if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; + k[d2 >> 2] = g2 << l2; + e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; + } + l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; + d2 = k[l2 >> 2] | 0; + if (!f2) { + a2 = j[p2 >> 1] | 0; + f2 = a2; + e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; + } else + f2 = j[p2 >> 1] | 0; + g2 = f2 << 16 >> 16 == 64; + a2 = g2 & 1; + h2 = d2 + e2 >> a2; + g2 = g2 ? 32 : f2 << 16 >> 16; + k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; + d2 = g2 + 1 | 0; + j[p2 >> 1] = d2; + f2 = d2 + h2 | 0; + if ((f2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + if ((h2 | 0) <= 0) { + p2 = h2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + p2 = h2 - d2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + function li(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 112 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 4568 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[j2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[j2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + m2 = 8; + break; + } + g2 = k[l2 >> 2] | 0; + n2 = 1 << k[36476 + (g2 << 2) >> 2]; + o2 = d2 - f2 | 0; + o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; + f2 = o2 + f2 | 0; + if ((o2 | 0) == (n2 | 0)) + k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((m2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[l2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Ua(e2 | 0); + fb(o2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + f2 = 0; + do { + o2 = c2 + (f2 * 3 | 0) | 0; + i2[o2 >> 0] = i2[b2 >> 0] | 0; + i2[o2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[o2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function mi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + h2 = b2 + 9 | 0; + c2 = l[h2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; + c2 = Tg(a2) | 0; + do + if ((c2 | 0) < (22 - e2 | 0)) + if (!d2) { + a2 = k[f2 >> 2] | 0; + e2 = a2 + c2 | 0; + d2 = e2 & 1; + e2 = (d2 + e2 | 0) / 2 | 0; + g2 = 8; + break; + } else { + c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + j2 = e2 & 1; + d2 = j2; + f2 = 1; + e2 = (j2 + e2 | 0) / 2 | 0; + break; + } + else { + c2 = (Ug(a2, 8) | 0) + 1 | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + f2 = e2 & 1; + e2 = (f2 + e2 | 0) / 2 | 0; + if (!d2) { + d2 = f2; + g2 = 8; + } else { + d2 = f2; + f2 = 1; + } + } + while (0); + if ((g2 | 0) == 8) + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; + e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[h2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + j2 = d2; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[h2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + function Vp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 128 | 0; + f2 = m2; + o2 = m2 + 116 | 0; + p2 = m2 + 104 | 0; + h2 = m2 + 20 | 0; + l2 = m2 + 16 | 0; + j2 = m2 + 12 | 0; + n2 = m2 + 8 | 0; + g2 = m2 + 4 | 0; + i2[o2 >> 0] = i2[58887] | 0; + i2[o2 + 1 >> 0] = i2[58888] | 0; + i2[o2 + 2 >> 0] = i2[58889] | 0; + i2[o2 + 3 >> 0] = i2[58890] | 0; + i2[o2 + 4 >> 0] = i2[58891] | 0; + i2[o2 + 5 >> 0] = i2[58892] | 0; + Ep(o2 + 1 | 0, 58893, 0, k[c2 + 4 >> 2] | 0); + a2 = fp() | 0; + k[f2 >> 2] = e2; + e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; + o2 = Fp(p2, e2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(3, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + p2 = Wa() | 0; + zm(a2) | 0; + fb(p2 | 0); + } else { + zm(a2) | 0; + k[g2 >> 2] = k[b2 >> 2]; + o2 = k[l2 >> 2] | 0; + p2 = k[j2 >> 2] | 0; + k[f2 >> 2] = k[g2 >> 2]; + p2 = cv(f2, h2, o2, p2, c2, d2) | 0; + r = m2; + return p2 | 0; + } + return 0; + } + function Wp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + m2 = r; + r = r + 240 | 0; + g2 = m2 + 8 | 0; + a2 = m2; + o2 = m2 + 204 | 0; + i3 = m2 + 32 | 0; + l2 = m2 + 28 | 0; + j2 = m2 + 24 | 0; + n2 = m2 + 20 | 0; + h2 = m2 + 16 | 0; + p2 = a2; + k[p2 >> 2] = 37; + k[p2 + 4 >> 2] = 0; + Ep(a2 + 1 | 0, 58895, 0, k[c2 + 4 >> 2] | 0); + p2 = fp() | 0; + q2 = g2; + k[q2 >> 2] = e2; + k[q2 + 4 >> 2] = f2; + f2 = o2 + (av(o2, 23, p2, a2, g2) | 0) | 0; + e2 = Fp(o2, f2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(3, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + q2 = Wa() | 0; + zm(a2) | 0; + fb(q2 | 0); + } else { + zm(a2) | 0; + k[h2 >> 2] = k[b2 >> 2]; + p2 = k[l2 >> 2] | 0; + q2 = k[j2 >> 2] | 0; + k[g2 >> 2] = k[h2 >> 2]; + q2 = cv(g2, i3, p2, q2, c2, d2) | 0; + r = m2; + return q2 | 0; + } + return 0; + } + function Xp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 352 | 0; + t2 = z2 + 312 | 0; + n2 = z2 + 48 | 0; + m2 = z2 + 32 | 0; + i3 = z2 + 24 | 0; + f2 = z2 + 8 | 0; + l2 = z2; + q2 = z2 + 316 | 0; + s2 = z2 + 80 | 0; + h2 = z2 + 84 | 0; + y2 = z2 + 76 | 0; + w2 = z2 + 72 | 0; + u2 = z2 + 68 | 0; + v2 = z2 + 64 | 0; + j2 = l2; + k[j2 >> 2] = 37; + k[j2 + 4 >> 2] = 0; + j2 = Lp(l2 + 1 | 0, 58898, k[c2 + 4 >> 2] | 0) | 0; + k[s2 >> 2] = q2; + a2 = fp() | 0; + if (j2) { + k[f2 >> 2] = k[c2 + 8 >> 2]; + p[f2 + 8 >> 3] = e2; + f2 = av(q2, 30, a2, l2, f2) | 0; + } else { + p[i3 >> 3] = e2; + f2 = av(q2, 30, a2, l2, i3) | 0; + } + a: + do + if ((f2 | 0) > 29) { + x = 0; + a2 = Da(3) | 0; + f2 = x; + x = 0; + f2 = f2 & 1; + if (j2) { + if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) + A2 = 12; + } else if (!f2 ? (x = 0, k[n2 >> 2] = k[c2 + 8 >> 2], p[n2 + 8 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + g2 = o2; + A2 = 12; + } + do + if ((A2 | 0) == 12) { + a2 = k[s2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + o2 = x; + x = 0; + if (o2 & 1) + break; + f2 = k[s2 >> 2] | 0; + } else + f2 = a2; + a2 = f2; + l2 = f2; + A2 = 16; + break a; + } + while (0); + a2 = Wa() | 0; + } else { + a2 = k[s2 >> 2] | 0; + l2 = 0; + g2 = f2; + A2 = 16; + } + while (0); + if ((A2 | 0) == 16) { + i3 = a2 + g2 | 0; + j2 = Fp(a2, i3, c2) | 0; + do + if ((a2 | 0) == (q2 | 0)) { + a2 = q2; + f2 = 0; + A2 = 22; + } else { + g2 = Pl(g2 << 3) | 0; + if (!g2) { + x = 0; + Ga(6); + A2 = x; + x = 0; + if (A2 & 1) { + f2 = 0; + A2 = 20; + break; + } + a2 = k[s2 >> 2] | 0; + } + f2 = g2; + h2 = g2; + A2 = 22; + } + while (0); + do + if ((A2 | 0) == 22) { + x = 0; + g2 = ta(68, c2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[u2 >> 2] = g2; + x = 0; + ya(4, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + zm(g2) | 0; + break; + } + zm(g2) | 0; + k[v2 >> 2] = k[b2 >> 2]; + A2 = k[y2 >> 2] | 0; + a2 = k[w2 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[v2 >> 2]; + a2 = sa(40, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + A2 = x; + x = 0; + if (!(A2 & 1)) { + k[b2 >> 2] = a2; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + r = z2; + return a2 | 0; + } else + A2 = 20; + } else + A2 = 20; + } + while (0); + if ((A2 | 0) == 20) + a2 = Wa() | 0; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + } + fb(a2 | 0); + return 0; + } + function Yp(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + y2 = r; + r = r + 16 | 0; + z2 = y2; + w2 = Ss(g2, 44212) | 0; + u2 = Ss(g2, 44368) | 0; + Mb[k[(k[u2 >> 2] | 0) + 20 >> 2] & 127](z2, u2); + k[f2 >> 2] = d2; + g2 = i2[a2 >> 0] | 0; + switch (g2 << 24 >> 24) { + case 43: + case 45: { + x = 0; + g2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, g2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) + t2 = 8; + else { + l2 = k[f2 >> 2] | 0; + k[f2 >> 2] = l2 + 4; + k[l2 >> 2] = g2; + l2 = a2 + 1 | 0; + t2 = 10; + } + break; + } + default: { + l2 = a2; + t2 = 10; + } + } + a: + do + if ((t2 | 0) == 10) { + v2 = c2; + b: + do + if ((v2 - l2 | 0) > 1 ? (i2[l2 >> 0] | 0) == 48 : 0) { + h2 = l2 + 1 | 0; + switch (i2[h2 >> 0] | 0) { + case 88: + case 120: + break; + default: { + t2 = 11; + break b; + } + } + x = 0; + g2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, 48) | 0; + s2 = x; + x = 0; + if (s2 & 1) { + t2 = 8; + break a; + } + s2 = k[f2 >> 2] | 0; + k[f2 >> 2] = s2 + 4; + k[s2 >> 2] = g2; + l2 = l2 + 2 | 0; + x = 0; + g2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, i2[h2 >> 0] | 0) | 0; + s2 = x; + x = 0; + if (s2 & 1) { + t2 = 8; + break a; + } + s2 = k[f2 >> 2] | 0; + k[f2 >> 2] = s2 + 4; + k[s2 >> 2] = g2; + if (l2 >>> 0 < c2 >>> 0) { + g2 = l2; + while (1) { + h2 = i2[g2 >> 0] | 0; + x = 0; + j2 = Da(3) | 0; + s2 = x; + x = 0; + if (s2 & 1) + break; + x = 0; + h2 = Aa(39, h2 << 24 >> 24 | 0, j2 | 0) | 0; + s2 = x; + x = 0; + if (s2 & 1) + break; + if (!h2) { + s2 = l2; + break b; + } + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) { + s2 = l2; + break b; + } + } + g2 = Wa() | 0; + break a; + } else { + s2 = l2; + g2 = l2; + } + } else + t2 = 11; + while (0); + c: + do + if ((t2 | 0) == 11) + if (l2 >>> 0 < c2 >>> 0) { + g2 = l2; + while (1) { + h2 = i2[g2 >> 0] | 0; + x = 0; + j2 = Da(3) | 0; + s2 = x; + x = 0; + if (s2 & 1) + break; + x = 0; + h2 = Aa(40, h2 << 24 >> 24 | 0, j2 | 0) | 0; + s2 = x; + x = 0; + if (s2 & 1) + break; + if (!h2) { + s2 = l2; + break c; + } + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) { + s2 = l2; + break c; + } + } + g2 = Wa() | 0; + break a; + } else { + s2 = l2; + g2 = l2; + } + while (0); + p2 = i2[z2 >> 0] | 0; + q2 = z2 + 4 | 0; + if (((p2 & 1) == 0 ? (p2 & 255) >>> 1 : k[q2 >> 2] | 0) | 0) { + if ((s2 | 0) != (g2 | 0) ? (m2 = g2 + -1 | 0, s2 >>> 0 < m2 >>> 0) : 0) { + j2 = s2; + h2 = m2; + do { + p2 = i2[j2 >> 0] | 0; + i2[j2 >> 0] = i2[h2 >> 0] | 0; + i2[h2 >> 0] = p2; + j2 = j2 + 1 | 0; + h2 = h2 + -1 | 0; + } while (j2 >>> 0 < h2 >>> 0); + } + x = 0; + m2 = ta(k[(k[u2 >> 2] | 0) + 16 >> 2] | 0, u2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 8; + break; + } + n2 = z2 + 8 | 0; + o2 = z2 + 1 | 0; + d: + do + if (s2 >>> 0 < g2 >>> 0) { + h2 = 0; + j2 = 0; + p2 = s2; + while (1) { + l2 = i2[((i2[z2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0) + j2 >> 0] | 0; + if (l2 << 24 >> 24 > 0 & (h2 | 0) == (l2 << 24 >> 24 | 0)) { + h2 = k[f2 >> 2] | 0; + k[f2 >> 2] = h2 + 4; + k[h2 >> 2] = m2; + h2 = i2[z2 >> 0] | 0; + l2 = 0; + j2 = (j2 >>> 0 < (((h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + j2 | 0; + } else + l2 = h2; + x = 0; + h2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, i2[p2 >> 0] | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) + break; + A2 = k[f2 >> 2] | 0; + k[f2 >> 2] = A2 + 4; + k[A2 >> 2] = h2; + p2 = p2 + 1 | 0; + if (p2 >>> 0 >= g2 >>> 0) + break d; + else + h2 = l2 + 1 | 0; + } + g2 = Wa() | 0; + break a; + } + while (0); + h2 = d2 + (s2 - a2 << 2) | 0; + l2 = k[f2 >> 2] | 0; + if ((h2 | 0) != (l2 | 0)) { + j2 = l2 + -4 | 0; + if (h2 >>> 0 < j2 >>> 0) { + do { + A2 = k[h2 >> 2] | 0; + k[h2 >> 2] = k[j2 >> 2]; + k[j2 >> 2] = A2; + h2 = h2 + 4 | 0; + j2 = j2 + -4 | 0; + } while (h2 >>> 0 < j2 >>> 0); + m2 = w2; + h2 = l2; + } else { + m2 = w2; + h2 = l2; + } + } else + m2 = w2; + } else { + x = 0; + Ea(k[(k[w2 >> 2] | 0) + 48 >> 2] | 0, w2 | 0, s2 | 0, g2 | 0, k[f2 >> 2] | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + t2 = 8; + break; + } + h2 = (k[f2 >> 2] | 0) + (g2 - s2 << 2) | 0; + k[f2 >> 2] = h2; + m2 = w2; + } + e: + do + if (g2 >>> 0 < c2 >>> 0) { + while (1) { + h2 = i2[g2 >> 0] | 0; + if (h2 << 24 >> 24 == 46) { + j2 = g2; + break; + } + x = 0; + j2 = Aa(k[(k[m2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, h2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + t2 = 4; + break; + } + A2 = k[f2 >> 2] | 0; + h2 = A2 + 4 | 0; + k[f2 >> 2] = h2; + k[A2 >> 2] = j2; + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) + break e; + } + if ((t2 | 0) == 4) { + g2 = Wa() | 0; + break a; + } + x = 0; + g2 = ta(k[(k[u2 >> 2] | 0) + 12 >> 2] | 0, u2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + t2 = 8; + break a; + } + A2 = k[f2 >> 2] | 0; + h2 = A2 + 4 | 0; + k[f2 >> 2] = h2; + k[A2 >> 2] = g2; + g2 = j2 + 1 | 0; + } + while (0); + x = 0; + Ea(k[(k[w2 >> 2] | 0) + 48 >> 2] | 0, w2 | 0, g2 | 0, c2 | 0, h2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) + t2 = 8; + else { + A2 = (k[f2 >> 2] | 0) + (v2 - g2 << 2) | 0; + k[f2 >> 2] = A2; + k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? A2 : d2 + (b2 - a2 << 2) | 0; + Sm(z2); + r = y2; + return; + } + } + while (0); + if ((t2 | 0) == 8) + g2 = Wa() | 0; + Sm(z2); + fb(g2 | 0); + } + function Zp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 352 | 0; + t2 = z2 + 304 | 0; + n2 = z2 + 48 | 0; + m2 = z2 + 32 | 0; + i3 = z2 + 24 | 0; + f2 = z2 + 8 | 0; + l2 = z2; + q2 = z2 + 308 | 0; + s2 = z2 + 72 | 0; + h2 = z2 + 76 | 0; + y2 = z2 + 68 | 0; + w2 = z2 + 64 | 0; + u2 = z2 + 60 | 0; + v2 = z2 + 56 | 0; + j2 = l2; + k[j2 >> 2] = 37; + k[j2 + 4 >> 2] = 0; + j2 = Lp(l2 + 1 | 0, 58899, k[c2 + 4 >> 2] | 0) | 0; + k[s2 >> 2] = q2; + a2 = fp() | 0; + if (j2) { + k[f2 >> 2] = k[c2 + 8 >> 2]; + p[f2 + 8 >> 3] = e2; + f2 = av(q2, 30, a2, l2, f2) | 0; + } else { + p[i3 >> 3] = e2; + f2 = av(q2, 30, a2, l2, i3) | 0; + } + a: + do + if ((f2 | 0) > 29) { + x = 0; + a2 = Da(3) | 0; + f2 = x; + x = 0; + f2 = f2 & 1; + if (j2) { + if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) + A2 = 12; + } else if (!f2 ? (x = 0, p[n2 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + g2 = o2; + A2 = 12; + } + do + if ((A2 | 0) == 12) { + a2 = k[s2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + o2 = x; + x = 0; + if (o2 & 1) + break; + f2 = k[s2 >> 2] | 0; + } else + f2 = a2; + a2 = f2; + l2 = f2; + A2 = 16; + break a; + } + while (0); + a2 = Wa() | 0; + } else { + a2 = k[s2 >> 2] | 0; + l2 = 0; + g2 = f2; + A2 = 16; + } + while (0); + if ((A2 | 0) == 16) { + i3 = a2 + g2 | 0; + j2 = Fp(a2, i3, c2) | 0; + do + if ((a2 | 0) == (q2 | 0)) { + a2 = q2; + f2 = 0; + A2 = 22; + } else { + g2 = Pl(g2 << 3) | 0; + if (!g2) { + x = 0; + Ga(6); + A2 = x; + x = 0; + if (A2 & 1) { + f2 = 0; + A2 = 20; + break; + } + a2 = k[s2 >> 2] | 0; + } + f2 = g2; + h2 = g2; + A2 = 22; + } + while (0); + do + if ((A2 | 0) == 22) { + x = 0; + g2 = ta(68, c2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[u2 >> 2] = g2; + x = 0; + ya(4, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + zm(g2) | 0; + break; + } + zm(g2) | 0; + k[v2 >> 2] = k[b2 >> 2]; + A2 = k[y2 >> 2] | 0; + a2 = k[w2 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[v2 >> 2]; + a2 = sa(40, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + A2 = x; + x = 0; + if (!(A2 & 1)) { + k[b2 >> 2] = a2; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + r = z2; + return a2 | 0; + } else + A2 = 20; + } else + A2 = 20; + } + while (0); + if ((A2 | 0) == 20) + a2 = Wa() | 0; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + } + fb(a2 | 0); + return 0; + } + function _p(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 192 | 0; + j2 = o2; + a2 = o2 + 180 | 0; + m2 = o2 + 160 | 0; + n2 = o2 + 12 | 0; + h2 = o2 + 8 | 0; + l2 = o2 + 4 | 0; + i2[a2 >> 0] = i2[58901] | 0; + i2[a2 + 1 >> 0] = i2[58902] | 0; + i2[a2 + 2 >> 0] = i2[58903] | 0; + i2[a2 + 3 >> 0] = i2[58904] | 0; + i2[a2 + 4 >> 0] = i2[58905] | 0; + i2[a2 + 5 >> 0] = i2[58906] | 0; + f2 = fp() | 0; + k[j2 >> 2] = e2; + a2 = av(m2, 20, f2, a2, j2) | 0; + e2 = m2 + a2 | 0; + f2 = Fp(m2, e2, c2) | 0; + g2 = tn(c2) | 0; + k[h2 >> 2] = g2; + x = 0; + h2 = Aa(37, h2 | 0, 44212) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + zm(g2) | 0; + fb(p2 | 0); + } else { + zm(g2) | 0; + Zb[k[(k[h2 >> 2] | 0) + 48 >> 2] & 31](h2, m2, e2, n2) | 0; + p2 = n2 + (a2 << 2) | 0; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[l2 >> 2]; + p2 = cv(j2, n2, (f2 | 0) == (e2 | 0) ? p2 : n2 + (f2 - m2 << 2) | 0, p2, c2, d2) | 0; + r = o2; + return p2 | 0; + } + return 0; + } + function $p(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0; + C2 = r; + r = r + 32 | 0; + v2 = C2 + 16 | 0; + u2 = C2 + 12 | 0; + z2 = C2 + 8 | 0; + w2 = C2 + 4 | 0; + y2 = C2; + m2 = tn(d2) | 0; + k[z2 >> 2] = m2; + x = 0; + z2 = Aa(37, z2 | 0, 44220) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + C2 = Wa() | 0; + zm(m2) | 0; + fb(C2 | 0); + } + zm(m2) | 0; + k[e2 >> 2] = 0; + t2 = z2 + 8 | 0; + m2 = k[b2 >> 2] | 0; + a: + do + if ((g2 | 0) != (h2 | 0)) { + b: + while (1) { + n2 = m2; + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0) ? (Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + m2 = 0; + n2 = 0; + } + } else + m2 = 0; + q2 = (m2 | 0) == 0; + p2 = k[c2 >> 2] | 0; + o2 = p2; + do + if (p2) { + if ((k[p2 + 12 >> 2] | 0) == (k[p2 + 16 >> 2] | 0) ? (Ob[k[(k[p2 >> 2] | 0) + 36 >> 2] & 127](p2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + o2 = 0; + B2 = 12; + break; + } + if (!q2) { + B2 = 13; + break b; + } + } else + B2 = 12; + while (0); + if ((B2 | 0) == 12) { + B2 = 0; + if (q2) { + B2 = 13; + break; + } else + p2 = 0; + } + c: + do + if ((Qb[k[(k[z2 >> 2] | 0) + 36 >> 2] & 63](z2, i2[g2 >> 0] | 0, 0) | 0) << 24 >> 24 == 37) { + p2 = g2 + 1 | 0; + if ((p2 | 0) == (h2 | 0)) { + B2 = 17; + break b; + } + s2 = Qb[k[(k[z2 >> 2] | 0) + 36 >> 2] & 63](z2, i2[p2 >> 0] | 0, 0) | 0; + switch (s2 << 24 >> 24) { + case 48: + case 69: { + q2 = g2 + 2 | 0; + if ((q2 | 0) == (h2 | 0)) { + B2 = 20; + break b; + } + g2 = p2; + p2 = Qb[k[(k[z2 >> 2] | 0) + 36 >> 2] & 63](z2, i2[q2 >> 0] | 0, 0) | 0; + m2 = s2; + break; + } + default: { + p2 = s2; + m2 = 0; + } + } + s2 = k[(k[a2 >> 2] | 0) + 36 >> 2] | 0; + k[w2 >> 2] = n2; + k[y2 >> 2] = o2; + k[u2 >> 2] = k[w2 >> 2]; + k[v2 >> 2] = k[y2 >> 2]; + s2 = ac[s2 & 15](a2, u2, v2, d2, e2, f2, p2, m2) | 0; + k[b2 >> 2] = s2; + g2 = g2 + 2 | 0; + } else { + n2 = i2[g2 >> 0] | 0; + if (n2 << 24 >> 24 > -1 ? (A2 = k[t2 >> 2] | 0, (j[A2 + (n2 << 24 >> 24 << 1) >> 1] & 8192) != 0) : 0) { + do { + g2 = g2 + 1 | 0; + if ((g2 | 0) == (h2 | 0)) { + g2 = h2; + break; + } + n2 = i2[g2 >> 0] | 0; + if (n2 << 24 >> 24 <= -1) + break; + } while ((j[A2 + (n2 << 24 >> 24 << 1) >> 1] & 8192) != 0); + n2 = p2; + while (1) { + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0) ? (Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + m2 = 0; + } + } else + m2 = 0; + o2 = (m2 | 0) == 0; + do + if (p2) { + if ((k[p2 + 12 >> 2] | 0) != (k[p2 + 16 >> 2] | 0)) + if (o2) { + s2 = n2; + break; + } else + break c; + if ((Ob[k[(k[p2 >> 2] | 0) + 36 >> 2] & 127](p2) | 0) != -1) + if (o2 ^ (n2 | 0) == 0) { + s2 = n2; + p2 = n2; + break; + } else + break c; + else { + k[c2 >> 2] = 0; + n2 = 0; + B2 = 39; + break; + } + } else + B2 = 39; + while (0); + if ((B2 | 0) == 39) { + B2 = 0; + if (o2) + break c; + else { + s2 = n2; + p2 = 0; + } + } + o2 = m2 + 12 | 0; + n2 = k[o2 >> 2] | 0; + q2 = m2 + 16 | 0; + if ((n2 | 0) == (k[q2 >> 2] | 0)) + n2 = Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0; + else + n2 = l[n2 >> 0] | 0; + if ((n2 & 255) << 24 >> 24 <= -1) + break c; + if (!(j[(k[t2 >> 2] | 0) + (n2 << 24 >> 24 << 1) >> 1] & 8192)) + break c; + n2 = k[o2 >> 2] | 0; + if ((n2 | 0) == (k[q2 >> 2] | 0)) { + Ob[k[(k[m2 >> 2] | 0) + 40 >> 2] & 127](m2) | 0; + n2 = s2; + continue; + } else { + k[o2 >> 2] = n2 + 1; + n2 = s2; + continue; + } + } + } + o2 = m2 + 12 | 0; + n2 = k[o2 >> 2] | 0; + p2 = m2 + 16 | 0; + if ((n2 | 0) == (k[p2 >> 2] | 0)) + n2 = Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0; + else + n2 = l[n2 >> 0] | 0; + s2 = Vb[k[(k[z2 >> 2] | 0) + 12 >> 2] & 63](z2, n2 & 255) | 0; + if (s2 << 24 >> 24 != (Vb[k[(k[z2 >> 2] | 0) + 12 >> 2] & 63](z2, i2[g2 >> 0] | 0) | 0) << 24 >> 24) { + B2 = 57; + break b; + } + n2 = k[o2 >> 2] | 0; + if ((n2 | 0) == (k[p2 >> 2] | 0)) + Ob[k[(k[m2 >> 2] | 0) + 40 >> 2] & 127](m2) | 0; + else + k[o2 >> 2] = n2 + 1; + g2 = g2 + 1 | 0; + } + while (0); + m2 = k[b2 >> 2] | 0; + if (!((g2 | 0) != (h2 | 0) & (k[e2 >> 2] | 0) == 0)) + break a; + } + if ((B2 | 0) == 13) { + k[e2 >> 2] = 4; + break; + } else if ((B2 | 0) == 17) { + k[e2 >> 2] = 4; + break; + } else if ((B2 | 0) == 20) { + k[e2 >> 2] = 4; + break; + } else if ((B2 | 0) == 57) { + k[e2 >> 2] = 4; + m2 = k[b2 >> 2] | 0; + break; + } + } + while (0); + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0) ? (Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + m2 = 0; + } + } else + m2 = 0; + g2 = (m2 | 0) == 0; + n2 = k[c2 >> 2] | 0; + do + if (n2) { + if ((k[n2 + 12 >> 2] | 0) == (k[n2 + 16 >> 2] | 0) ? (Ob[k[(k[n2 >> 2] | 0) + 36 >> 2] & 127](n2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + B2 = 67; + break; + } + if (!g2) + B2 = 68; + } else + B2 = 67; + while (0); + if ((B2 | 0) == 67 ? g2 : 0) + B2 = 68; + if ((B2 | 0) == 68) + k[e2 >> 2] = k[e2 >> 2] | 2; + r = C2; + return m2 | 0; + } + function aq(a2) { + a2 = a2 | 0; + return; + } + function bq(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function cq(a2) { + a2 = a2 | 0; + return 2; + } + function dq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = $p(a2, i3, h2, d2, e2, f2, 58907, 58915) | 0; + r = g2; + return a2 | 0; + } + function eq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + j2 = g2 + 8 | 0; + m2 = g2 + 4 | 0; + l2 = g2; + n2 = a2 + 8 | 0; + n2 = Ob[k[(k[n2 >> 2] | 0) + 20 >> 2] & 127](n2) | 0; + k[m2 >> 2] = k[b2 >> 2]; + k[l2 >> 2] = k[c2 >> 2]; + c2 = i2[n2 >> 0] | 0; + o2 = (c2 & 1) == 0; + b2 = o2 ? n2 + 1 | 0 : k[n2 + 8 >> 2] | 0; + c2 = b2 + (o2 ? (c2 & 255) >>> 1 : k[n2 + 4 >> 2] | 0) | 0; + k[j2 >> 2] = k[m2 >> 2]; + k[h2 >> 2] = k[l2 >> 2]; + a2 = $p(a2, j2, h2, d2, e2, f2, b2, c2) | 0; + r = g2; + return a2 | 0; + } + function fq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44220) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + gq(a2, f2 + 24 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function gq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 4 | 0; + i3 = g2; + a2 = a2 + 8 | 0; + a2 = Ob[k[k[a2 >> 2] >> 2] & 127](a2) | 0; + k[i3 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + c2 = (Hu(c2, h2, a2, a2 + 168 | 0, f2, e2, 0) | 0) - a2 | 0; + if ((c2 | 0) < 168) + k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 7 | 0; + r = g2; + return; + } + function hq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44220) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + iq(a2, f2 + 16 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function iq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 4 | 0; + i3 = g2; + a2 = a2 + 8 | 0; + a2 = Ob[k[(k[a2 >> 2] | 0) + 4 >> 2] & 127](a2) | 0; + k[i3 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + c2 = (Hu(c2, h2, a2, a2 + 288 | 0, f2, e2, 0) | 0) - a2 | 0; + if ((c2 | 0) < 288) + k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 12 | 0; + r = g2; + return; + } + function jq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44220) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + kq(a2, f2 + 20 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function kq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 4) | 0; + if (!(k[e2 >> 2] & 4)) { + if ((a2 | 0) < 69) + a2 = a2 + 2e3 | 0; + else + a2 = (a2 + -69 | 0) >>> 0 < 31 ? a2 + 1900 | 0 : a2; + k[b2 >> 2] = a2 + -1900; + } + r = g2; + return; + } + function lq(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0; + U2 = r; + r = r + 144 | 0; + j2 = U2 + 132 | 0; + h2 = U2 + 116 | 0; + N2 = U2 + 128 | 0; + w2 = U2 + 124 | 0; + I2 = U2 + 120 | 0; + O2 = U2 + 112 | 0; + P2 = U2 + 108 | 0; + Q2 = U2 + 104 | 0; + R2 = U2 + 100 | 0; + S2 = U2 + 96 | 0; + T2 = U2 + 92 | 0; + l2 = U2 + 88 | 0; + m2 = U2 + 84 | 0; + n2 = U2 + 80 | 0; + o2 = U2 + 76 | 0; + p2 = U2 + 72 | 0; + q2 = U2 + 68 | 0; + s2 = U2 + 64 | 0; + t2 = U2 + 60 | 0; + u2 = U2 + 56 | 0; + v2 = U2 + 52 | 0; + y2 = U2 + 48 | 0; + z2 = U2 + 44 | 0; + A2 = U2 + 40 | 0; + B2 = U2 + 36 | 0; + C2 = U2 + 32 | 0; + D2 = U2 + 28 | 0; + E2 = U2 + 24 | 0; + F2 = U2 + 20 | 0; + G2 = U2 + 16 | 0; + H2 = U2 + 12 | 0; + J2 = U2 + 8 | 0; + K2 = U2 + 4 | 0; + L2 = U2; + k[e2 >> 2] = 0; + M2 = tn(d2) | 0; + k[N2 >> 2] = M2; + x = 0; + N2 = Aa(37, N2 | 0, 44220) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = Wa() | 0; + zm(M2) | 0; + fb(W2 | 0); + } + zm(M2) | 0; + do + switch (g2 << 24 >> 24 | 0) { + case 65: + case 97: { + k[w2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[w2 >> 2]; + gq(a2, f2 + 24 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 104: + case 66: + case 98: { + k[I2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[I2 >> 2]; + iq(a2, f2 + 16 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 99: { + V2 = a2 + 8 | 0; + V2 = Ob[k[(k[V2 >> 2] | 0) + 12 >> 2] & 127](V2) | 0; + k[O2 >> 2] = k[b2 >> 2]; + k[P2 >> 2] = k[c2 >> 2]; + g2 = i2[V2 >> 0] | 0; + c2 = (g2 & 1) == 0; + W2 = c2 ? V2 + 1 | 0 : k[V2 + 8 >> 2] | 0; + V2 = W2 + (c2 ? (g2 & 255) >>> 1 : k[V2 + 4 >> 2] | 0) | 0; + k[h2 >> 2] = k[O2 >> 2]; + k[j2 >> 2] = k[P2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, W2, V2) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 101: + case 100: { + k[Q2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[Q2 >> 2]; + mq(a2, f2 + 12 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 68: { + k[R2 >> 2] = k[b2 >> 2]; + k[S2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[R2 >> 2]; + k[j2 >> 2] = k[S2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58915, 58923) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 70: { + k[T2 >> 2] = k[b2 >> 2]; + k[l2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[T2 >> 2]; + k[j2 >> 2] = k[l2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58923, 58931) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 72: { + k[m2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[m2 >> 2]; + nq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 73: { + k[n2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[n2 >> 2]; + oq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 106: { + k[o2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[o2 >> 2]; + pq(a2, f2 + 28 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 109: { + k[p2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[p2 >> 2]; + qq(a2, f2 + 16 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 77: { + k[q2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[q2 >> 2]; + rq(a2, f2 + 4 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 116: + case 110: { + k[s2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[s2 >> 2]; + sq(a2, b2, j2, e2, N2); + V2 = 28; + break; + } + case 112: { + k[t2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[t2 >> 2]; + tq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 114: { + k[u2 >> 2] = k[b2 >> 2]; + k[v2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[u2 >> 2]; + k[j2 >> 2] = k[v2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58931, 58942) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 82: { + k[y2 >> 2] = k[b2 >> 2]; + k[z2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[y2 >> 2]; + k[j2 >> 2] = k[z2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58942, 58947) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 83: { + k[A2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[A2 >> 2]; + uq(a2, f2, b2, j2, e2, N2); + V2 = 28; + break; + } + case 84: { + k[B2 >> 2] = k[b2 >> 2]; + k[C2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[B2 >> 2]; + k[j2 >> 2] = k[C2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58947, 58955) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 119: { + k[D2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[D2 >> 2]; + vq(a2, f2 + 24 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 120: { + W2 = k[(k[a2 >> 2] | 0) + 20 >> 2] | 0; + k[E2 >> 2] = k[b2 >> 2]; + k[F2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[E2 >> 2]; + k[j2 >> 2] = k[F2 >> 2]; + h2 = Nb[W2 & 63](a2, h2, j2, d2, e2, f2) | 0; + break; + } + case 88: { + V2 = a2 + 8 | 0; + V2 = Ob[k[(k[V2 >> 2] | 0) + 24 >> 2] & 127](V2) | 0; + k[G2 >> 2] = k[b2 >> 2]; + k[H2 >> 2] = k[c2 >> 2]; + g2 = i2[V2 >> 0] | 0; + c2 = (g2 & 1) == 0; + W2 = c2 ? V2 + 1 | 0 : k[V2 + 8 >> 2] | 0; + V2 = W2 + (c2 ? (g2 & 255) >>> 1 : k[V2 + 4 >> 2] | 0) | 0; + k[h2 >> 2] = k[G2 >> 2]; + k[j2 >> 2] = k[H2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, W2, V2) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 121: { + k[J2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[J2 >> 2]; + kq(a2, f2 + 20 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 89: { + k[K2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[K2 >> 2]; + wq(a2, f2 + 20 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 37: { + k[L2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[L2 >> 2]; + xq(a2, b2, j2, e2, N2); + V2 = 28; + break; + } + default: { + k[e2 >> 2] = k[e2 >> 2] | 4; + V2 = 28; + } + } + while (0); + if ((V2 | 0) == 28) + h2 = k[b2 >> 2] | 0; + r = U2; + return h2 | 0; + } + function mq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 + -1 | 0) >>> 0 < 31 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function nq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 24 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function oq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 + -1 | 0) >>> 0 < 12 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function pq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 3) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 366 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function qq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 13 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2 + -1; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function rq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 60 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function sq(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0; + g2 = e2 + 8 | 0; + a: + while (1) { + e2 = k[b2 >> 2] | 0; + do + if (e2) { + if ((k[e2 + 12 >> 2] | 0) == (k[e2 + 16 >> 2] | 0)) + if ((Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0) == -1) { + k[b2 >> 2] = 0; + e2 = 0; + break; + } else { + e2 = k[b2 >> 2] | 0; + break; + } + } else + e2 = 0; + while (0); + e2 = (e2 | 0) == 0; + a2 = k[c2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) != (k[a2 + 16 >> 2] | 0)) + if (e2) + break; + else + break a; + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) != -1) + if (e2) + break; + else + break a; + else { + k[c2 >> 2] = 0; + h2 = 12; + break; + } + } else + h2 = 12; + while (0); + if ((h2 | 0) == 12) { + h2 = 0; + if (e2) { + a2 = 0; + break; + } else + a2 = 0; + } + e2 = k[b2 >> 2] | 0; + f2 = k[e2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[e2 + 16 >> 2] | 0)) + e2 = Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0; + else + e2 = l[f2 >> 0] | 0; + if ((e2 & 255) << 24 >> 24 <= -1) + break; + if (!(j[(k[g2 >> 2] | 0) + (e2 << 24 >> 24 << 1) >> 1] & 8192)) + break; + e2 = k[b2 >> 2] | 0; + a2 = e2 + 12 | 0; + f2 = k[a2 >> 2] | 0; + if ((f2 | 0) == (k[e2 + 16 >> 2] | 0)) { + Ob[k[(k[e2 >> 2] | 0) + 40 >> 2] & 127](e2) | 0; + continue; + } else { + k[a2 >> 2] = f2 + 1; + continue; + } + } + e2 = k[b2 >> 2] | 0; + do + if (e2) { + if ((k[e2 + 12 >> 2] | 0) == (k[e2 + 16 >> 2] | 0)) + if ((Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0) == -1) { + k[b2 >> 2] = 0; + e2 = 0; + break; + } else { + e2 = k[b2 >> 2] | 0; + break; + } + } else + e2 = 0; + while (0); + e2 = (e2 | 0) == 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0) ? (Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + h2 = 32; + break; + } + if (!e2) + h2 = 33; + } else + h2 = 32; + while (0); + if ((h2 | 0) == 32 ? e2 : 0) + h2 = 33; + if ((h2 | 0) == 33) + k[d2 >> 2] = k[d2 >> 2] | 2; + return; + } + function tq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 16 | 0; + h2 = m2 + 4 | 0; + j2 = m2; + l2 = a2 + 8 | 0; + l2 = Ob[k[(k[l2 >> 2] | 0) + 8 >> 2] & 127](l2) | 0; + a2 = i2[l2 >> 0] | 0; + if (!(a2 & 1)) + g2 = (a2 & 255) >>> 1; + else + g2 = k[l2 + 4 >> 2] | 0; + a2 = i2[l2 + 12 >> 0] | 0; + if (!(a2 & 1)) + a2 = (a2 & 255) >>> 1; + else + a2 = k[l2 + 16 >> 2] | 0; + do + if ((g2 | 0) != (0 - a2 | 0)) { + k[j2 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Hu(c2, h2, l2, l2 + 24 | 0, f2, e2, 0) | 0; + g2 = k[b2 >> 2] | 0; + if ((a2 | 0) == (l2 | 0) & (g2 | 0) == 12) { + k[b2 >> 2] = 0; + break; + } + if ((g2 | 0) < 12 & (a2 - l2 | 0) == 12) + k[b2 >> 2] = g2 + 12; + } else + k[e2 >> 2] = k[e2 >> 2] | 4; + while (0); + r = m2; + return; + } + function uq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 61 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function vq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 1) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 7 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function wq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 4) | 0; + if (!(k[e2 >> 2] & 4)) + k[b2 >> 2] = a2 + -1900; + r = g2; + return; + } + function xq(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0; + a2 = k[b2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + break; + } else { + a2 = k[b2 >> 2] | 0; + break; + } + } else + a2 = 0; + while (0); + f2 = (a2 | 0) == 0; + a2 = k[c2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0) ? (Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + h2 = 11; + break; + } + if (f2) { + g2 = a2; + h2 = 13; + } else + h2 = 12; + } else + h2 = 11; + while (0); + if ((h2 | 0) == 11) + if (f2) + h2 = 12; + else { + g2 = 0; + h2 = 13; + } + a: + do + if ((h2 | 0) == 12) + k[d2 >> 2] = k[d2 >> 2] | 6; + else if ((h2 | 0) == 13) { + a2 = k[b2 >> 2] | 0; + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = l[f2 >> 0] | 0; + if ((Qb[k[(k[e2 >> 2] | 0) + 36 >> 2] & 63](e2, a2 & 255, 0) | 0) << 24 >> 24 != 37) { + k[d2 >> 2] = k[d2 >> 2] | 4; + break; + } + a2 = k[b2 >> 2] | 0; + f2 = a2 + 12 | 0; + e2 = k[f2 >> 2] | 0; + if ((e2 | 0) == (k[a2 + 16 >> 2] | 0)) { + Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + a2 = k[b2 >> 2] | 0; + if (!a2) + a2 = 0; + else + h2 = 21; + } else { + k[f2 >> 2] = e2 + 1; + h2 = 21; + } + do + if ((h2 | 0) == 21) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + break; + } else { + a2 = k[b2 >> 2] | 0; + break; + } + } + while (0); + a2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0) ? (Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + h2 = 30; + break; + } + if (a2) + break a; + } else + h2 = 30; + while (0); + if ((h2 | 0) == 30 ? !a2 : 0) + break; + k[d2 >> 2] = k[d2 >> 2] | 2; + } + while (0); + return; + } + function yq(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + w2 = r; + r = r + 32 | 0; + q2 = w2 + 16 | 0; + p2 = w2 + 12 | 0; + u2 = w2 + 8 | 0; + s2 = w2 + 4 | 0; + t2 = w2; + i3 = tn(d2) | 0; + k[u2 >> 2] = i3; + x = 0; + u2 = Aa(37, u2 | 0, 44212) | 0; + o2 = x; + x = 0; + if (o2 & 1) { + w2 = Wa() | 0; + zm(i3) | 0; + fb(w2 | 0); + } + zm(i3) | 0; + k[e2 >> 2] = 0; + i3 = k[b2 >> 2] | 0; + a: + do + if ((g2 | 0) != (h2 | 0)) { + b: + while (1) { + l2 = i3; + if (i3) { + j2 = k[i3 + 12 >> 2] | 0; + if ((j2 | 0) == (k[i3 + 16 >> 2] | 0)) + j2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + j2 = k[j2 >> 2] | 0; + if ((j2 | 0) == -1) { + k[b2 >> 2] = 0; + i3 = 0; + n2 = 1; + o2 = 0; + } else { + n2 = 0; + o2 = l2; + } + } else { + i3 = 0; + n2 = 1; + o2 = l2; + } + m2 = k[c2 >> 2] | 0; + j2 = m2; + do + if (m2) { + l2 = k[m2 + 12 >> 2] | 0; + if ((l2 | 0) == (k[m2 + 16 >> 2] | 0)) + l2 = Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0; + else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) != -1) + if (n2) + break; + else { + v2 = 17; + break b; + } + else { + k[c2 >> 2] = 0; + j2 = 0; + v2 = 15; + break; + } + } else + v2 = 15; + while (0); + if ((v2 | 0) == 15) { + v2 = 0; + if (n2) { + v2 = 17; + break; + } else + m2 = 0; + } + c: + do + if ((Qb[k[(k[u2 >> 2] | 0) + 52 >> 2] & 63](u2, k[g2 >> 2] | 0, 0) | 0) << 24 >> 24 == 37) { + l2 = g2 + 4 | 0; + if ((l2 | 0) == (h2 | 0)) { + v2 = 21; + break b; + } + n2 = Qb[k[(k[u2 >> 2] | 0) + 52 >> 2] & 63](u2, k[l2 >> 2] | 0, 0) | 0; + switch (n2 << 24 >> 24) { + case 48: + case 69: { + m2 = g2 + 8 | 0; + if ((m2 | 0) == (h2 | 0)) { + v2 = 24; + break b; + } + g2 = l2; + l2 = Qb[k[(k[u2 >> 2] | 0) + 52 >> 2] & 63](u2, k[m2 >> 2] | 0, 0) | 0; + i3 = n2; + break; + } + default: { + l2 = n2; + i3 = 0; + } + } + n2 = k[(k[a2 >> 2] | 0) + 36 >> 2] | 0; + k[s2 >> 2] = o2; + k[t2 >> 2] = j2; + k[p2 >> 2] = k[s2 >> 2]; + k[q2 >> 2] = k[t2 >> 2]; + o2 = ac[n2 & 15](a2, p2, q2, d2, e2, f2, l2, i3) | 0; + k[b2 >> 2] = o2; + g2 = g2 + 8 | 0; + } else { + if (!(Qb[k[(k[u2 >> 2] | 0) + 12 >> 2] & 63](u2, 8192, k[g2 >> 2] | 0) | 0)) { + l2 = i3 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = i3 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) + j2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + j2 = k[j2 >> 2] | 0; + o2 = Vb[k[(k[u2 >> 2] | 0) + 28 >> 2] & 63](u2, j2) | 0; + if ((o2 | 0) != (Vb[k[(k[u2 >> 2] | 0) + 28 >> 2] & 63](u2, k[g2 >> 2] | 0) | 0)) { + v2 = 61; + break b; + } + j2 = k[l2 >> 2] | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) + Ob[k[(k[i3 >> 2] | 0) + 40 >> 2] & 127](i3) | 0; + else + k[l2 >> 2] = j2 + 4; + g2 = g2 + 4 | 0; + break; + } + do { + g2 = g2 + 4 | 0; + if ((g2 | 0) == (h2 | 0)) { + g2 = h2; + break; + } + } while (Qb[k[(k[u2 >> 2] | 0) + 12 >> 2] & 63](u2, 8192, k[g2 >> 2] | 0) | 0); + j2 = m2; + n2 = m2; + while (1) { + if (i3) { + l2 = k[i3 + 12 >> 2] | 0; + if ((l2 | 0) == (k[i3 + 16 >> 2] | 0)) + l2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) == -1) { + k[b2 >> 2] = 0; + m2 = 1; + i3 = 0; + } else + m2 = 0; + } else { + m2 = 1; + i3 = 0; + } + do + if (n2) { + l2 = k[n2 + 12 >> 2] | 0; + if ((l2 | 0) == (k[n2 + 16 >> 2] | 0)) + l2 = Ob[k[(k[n2 >> 2] | 0) + 36 >> 2] & 127](n2) | 0; + else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) != -1) + if (m2 ^ (j2 | 0) == 0) { + o2 = j2; + n2 = j2; + break; + } else + break c; + else { + k[c2 >> 2] = 0; + j2 = 0; + v2 = 44; + break; + } + } else + v2 = 44; + while (0); + if ((v2 | 0) == 44) { + v2 = 0; + if (m2) + break c; + else { + o2 = j2; + n2 = 0; + } + } + l2 = i3 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = i3 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) + j2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + j2 = k[j2 >> 2] | 0; + if (!(Qb[k[(k[u2 >> 2] | 0) + 12 >> 2] & 63](u2, 8192, j2) | 0)) + break c; + j2 = k[l2 >> 2] | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) { + Ob[k[(k[i3 >> 2] | 0) + 40 >> 2] & 127](i3) | 0; + j2 = o2; + continue; + } else { + k[l2 >> 2] = j2 + 4; + j2 = o2; + continue; + } + } + } + while (0); + i3 = k[b2 >> 2] | 0; + if (!((g2 | 0) != (h2 | 0) & (k[e2 >> 2] | 0) == 0)) + break a; + } + if ((v2 | 0) == 17) { + k[e2 >> 2] = 4; + break; + } else if ((v2 | 0) == 21) { + k[e2 >> 2] = 4; + break; + } else if ((v2 | 0) == 24) { + k[e2 >> 2] = 4; + break; + } else if ((v2 | 0) == 61) { + k[e2 >> 2] = 4; + i3 = k[b2 >> 2] | 0; + break; + } + } + while (0); + if (i3) { + g2 = k[i3 + 12 >> 2] | 0; + if ((g2 | 0) == (k[i3 + 16 >> 2] | 0)) + g2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + i3 = 0; + l2 = 1; + } else + l2 = 0; + } else { + i3 = 0; + l2 = 1; + } + g2 = k[c2 >> 2] | 0; + do + if (g2) { + j2 = k[g2 + 12 >> 2] | 0; + if ((j2 | 0) == (k[g2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) != -1) + if (l2) + break; + else { + v2 = 76; + break; + } + else { + k[c2 >> 2] = 0; + v2 = 74; + break; + } + } else + v2 = 74; + while (0); + if ((v2 | 0) == 74 ? l2 : 0) + v2 = 76; + if ((v2 | 0) == 76) + k[e2 >> 2] = k[e2 >> 2] | 2; + r = w2; + return i3 | 0; + } + function zq(a2) { + a2 = a2 | 0; + return; + } + function Aq(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Bq(a2) { + a2 = a2 | 0; + return 2; + } + function Cq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = yq(a2, i3, h2, d2, e2, f2, 44788, 44820) | 0; + r = g2; + return a2 | 0; + } + function Dq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + j2 = g2 + 8 | 0; + m2 = g2 + 4 | 0; + l2 = g2; + p2 = a2 + 8 | 0; + p2 = Ob[k[(k[p2 >> 2] | 0) + 20 >> 2] & 127](p2) | 0; + k[m2 >> 2] = k[b2 >> 2]; + k[l2 >> 2] = k[c2 >> 2]; + n2 = i2[p2 >> 0] | 0; + o2 = (n2 & 1) == 0; + c2 = p2 + 4 | 0; + b2 = o2 ? c2 : k[p2 + 8 >> 2] | 0; + c2 = b2 + ((o2 ? (n2 & 255) >>> 1 : k[c2 >> 2] | 0) << 2) | 0; + k[j2 >> 2] = k[m2 >> 2]; + k[h2 >> 2] = k[l2 >> 2]; + a2 = yq(a2, j2, h2, d2, e2, f2, b2, c2) | 0; + r = g2; + return a2 | 0; + } + function Eq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44212) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + Fq(a2, f2 + 24 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function Fq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 4 | 0; + i3 = g2; + a2 = a2 + 8 | 0; + a2 = Ob[k[k[a2 >> 2] >> 2] & 127](a2) | 0; + k[i3 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + c2 = (Su(c2, h2, a2, a2 + 168 | 0, f2, e2, 0) | 0) - a2 | 0; + if ((c2 | 0) < 168) + k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 7 | 0; + r = g2; + return; + } + function Gq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44212) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + Hq(a2, f2 + 16 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function Hq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 4 | 0; + i3 = g2; + a2 = a2 + 8 | 0; + a2 = Ob[k[(k[a2 >> 2] | 0) + 4 >> 2] & 127](a2) | 0; + k[i3 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + c2 = (Su(c2, h2, a2, a2 + 288 | 0, f2, e2, 0) | 0) - a2 | 0; + if ((c2 | 0) < 288) + k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 12 | 0; + r = g2; + return; + } + function Iq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44212) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + Jq(a2, f2 + 20 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function Jq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 4) | 0; + if (!(k[e2 >> 2] & 4)) { + if ((a2 | 0) < 69) + a2 = a2 + 2e3 | 0; + else + a2 = (a2 + -69 | 0) >>> 0 < 31 ? a2 + 1900 | 0 : a2; + k[b2 >> 2] = a2 + -1900; + } + r = g2; + return; + } + function Kq(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0; + U2 = r; + r = r + 144 | 0; + j2 = U2 + 132 | 0; + h2 = U2 + 116 | 0; + N2 = U2 + 128 | 0; + w2 = U2 + 124 | 0; + I2 = U2 + 120 | 0; + O2 = U2 + 112 | 0; + P2 = U2 + 108 | 0; + Q2 = U2 + 104 | 0; + R2 = U2 + 100 | 0; + S2 = U2 + 96 | 0; + T2 = U2 + 92 | 0; + l2 = U2 + 88 | 0; + m2 = U2 + 84 | 0; + n2 = U2 + 80 | 0; + o2 = U2 + 76 | 0; + p2 = U2 + 72 | 0; + q2 = U2 + 68 | 0; + s2 = U2 + 64 | 0; + t2 = U2 + 60 | 0; + u2 = U2 + 56 | 0; + v2 = U2 + 52 | 0; + y2 = U2 + 48 | 0; + z2 = U2 + 44 | 0; + A2 = U2 + 40 | 0; + B2 = U2 + 36 | 0; + C2 = U2 + 32 | 0; + D2 = U2 + 28 | 0; + E2 = U2 + 24 | 0; + F2 = U2 + 20 | 0; + G2 = U2 + 16 | 0; + H2 = U2 + 12 | 0; + J2 = U2 + 8 | 0; + K2 = U2 + 4 | 0; + L2 = U2; + k[e2 >> 2] = 0; + M2 = tn(d2) | 0; + k[N2 >> 2] = M2; + x = 0; + N2 = Aa(37, N2 | 0, 44212) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = Wa() | 0; + zm(M2) | 0; + fb(W2 | 0); + } + zm(M2) | 0; + do + switch (g2 << 24 >> 24 | 0) { + case 65: + case 97: { + k[w2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[w2 >> 2]; + Fq(a2, f2 + 24 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 104: + case 66: + case 98: { + k[I2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[I2 >> 2]; + Hq(a2, f2 + 16 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 99: { + W2 = a2 + 8 | 0; + W2 = Ob[k[(k[W2 >> 2] | 0) + 12 >> 2] & 127](W2) | 0; + k[O2 >> 2] = k[b2 >> 2]; + k[P2 >> 2] = k[c2 >> 2]; + g2 = i2[W2 >> 0] | 0; + c2 = (g2 & 1) == 0; + V2 = W2 + 4 | 0; + W2 = c2 ? V2 : k[W2 + 8 >> 2] | 0; + V2 = W2 + ((c2 ? (g2 & 255) >>> 1 : k[V2 >> 2] | 0) << 2) | 0; + k[h2 >> 2] = k[O2 >> 2]; + k[j2 >> 2] = k[P2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, W2, V2) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 101: + case 100: { + k[Q2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[Q2 >> 2]; + Lq(a2, f2 + 12 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 68: { + k[R2 >> 2] = k[b2 >> 2]; + k[S2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[R2 >> 2]; + k[j2 >> 2] = k[S2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44820, 44852) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 70: { + k[T2 >> 2] = k[b2 >> 2]; + k[l2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[T2 >> 2]; + k[j2 >> 2] = k[l2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44852, 44884) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 72: { + k[m2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[m2 >> 2]; + Mq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 73: { + k[n2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[n2 >> 2]; + Nq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 106: { + k[o2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[o2 >> 2]; + Oq(a2, f2 + 28 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 109: { + k[p2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[p2 >> 2]; + Pq(a2, f2 + 16 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 77: { + k[q2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[q2 >> 2]; + Qq(a2, f2 + 4 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 116: + case 110: { + k[s2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[s2 >> 2]; + Rq(a2, b2, j2, e2, N2); + V2 = 28; + break; + } + case 112: { + k[t2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[t2 >> 2]; + Sq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 114: { + k[u2 >> 2] = k[b2 >> 2]; + k[v2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[u2 >> 2]; + k[j2 >> 2] = k[v2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44884, 44928) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 82: { + k[y2 >> 2] = k[b2 >> 2]; + k[z2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[y2 >> 2]; + k[j2 >> 2] = k[z2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44928, 44948) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 83: { + k[A2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[A2 >> 2]; + Tq(a2, f2, b2, j2, e2, N2); + V2 = 28; + break; + } + case 84: { + k[B2 >> 2] = k[b2 >> 2]; + k[C2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[B2 >> 2]; + k[j2 >> 2] = k[C2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44948, 44980) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 119: { + k[D2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[D2 >> 2]; + Uq(a2, f2 + 24 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 120: { + W2 = k[(k[a2 >> 2] | 0) + 20 >> 2] | 0; + k[E2 >> 2] = k[b2 >> 2]; + k[F2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[E2 >> 2]; + k[j2 >> 2] = k[F2 >> 2]; + h2 = Nb[W2 & 63](a2, h2, j2, d2, e2, f2) | 0; + break; + } + case 88: { + W2 = a2 + 8 | 0; + W2 = Ob[k[(k[W2 >> 2] | 0) + 24 >> 2] & 127](W2) | 0; + k[G2 >> 2] = k[b2 >> 2]; + k[H2 >> 2] = k[c2 >> 2]; + g2 = i2[W2 >> 0] | 0; + c2 = (g2 & 1) == 0; + V2 = W2 + 4 | 0; + W2 = c2 ? V2 : k[W2 + 8 >> 2] | 0; + V2 = W2 + ((c2 ? (g2 & 255) >>> 1 : k[V2 >> 2] | 0) << 2) | 0; + k[h2 >> 2] = k[G2 >> 2]; + k[j2 >> 2] = k[H2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, W2, V2) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 121: { + k[J2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[J2 >> 2]; + Jq(a2, f2 + 20 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 89: { + k[K2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[K2 >> 2]; + Vq(a2, f2 + 20 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 37: { + k[L2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[L2 >> 2]; + Wq(a2, b2, j2, e2, N2); + V2 = 28; + break; + } + default: { + k[e2 >> 2] = k[e2 >> 2] | 4; + V2 = 28; + } + } + while (0); + if ((V2 | 0) == 28) + h2 = k[b2 >> 2] | 0; + r = U2; + return h2 | 0; + } + function Lq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 + -1 | 0) >>> 0 < 31 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Mq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 24 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Nq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 + -1 | 0) >>> 0 < 12 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Oq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 3) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 366 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Pq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 13 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2 + -1; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Qq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 60 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Rq(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0; + a: + while (1) { + a2 = k[b2 >> 2] | 0; + do + if (a2) { + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + g2 = 1; + break; + } else { + g2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + g2 = 1; + while (0); + f2 = k[c2 >> 2] | 0; + do + if (f2) { + a2 = k[f2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[f2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; + else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (g2) { + g2 = f2; + break; + } else { + g2 = f2; + break a; + } + else { + k[c2 >> 2] = 0; + h2 = 15; + break; + } + } else + h2 = 15; + while (0); + if ((h2 | 0) == 15) { + h2 = 0; + if (g2) { + g2 = 0; + break; + } else + g2 = 0; + } + a2 = k[b2 >> 2] | 0; + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if (!(Qb[k[(k[e2 >> 2] | 0) + 12 >> 2] & 63](e2, 8192, a2) | 0)) + break; + a2 = k[b2 >> 2] | 0; + f2 = a2 + 12 | 0; + g2 = k[f2 >> 2] | 0; + if ((g2 | 0) == (k[a2 + 16 >> 2] | 0)) { + Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + continue; + } else { + k[f2 >> 2] = g2 + 4; + continue; + } + } + a2 = k[b2 >> 2] | 0; + do + if (a2) { + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + f2 = 1; + break; + } else { + f2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + f2 = 1; + while (0); + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (f2) + break; + else { + h2 = 39; + break; + } + else { + k[c2 >> 2] = 0; + h2 = 37; + break; + } + } else + h2 = 37; + while (0); + if ((h2 | 0) == 37 ? f2 : 0) + h2 = 39; + if ((h2 | 0) == 39) + k[d2 >> 2] = k[d2 >> 2] | 2; + return; + } + function Sq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 16 | 0; + h2 = m2 + 4 | 0; + j2 = m2; + l2 = a2 + 8 | 0; + l2 = Ob[k[(k[l2 >> 2] | 0) + 8 >> 2] & 127](l2) | 0; + a2 = i2[l2 >> 0] | 0; + if (!(a2 & 1)) + g2 = (a2 & 255) >>> 1; + else + g2 = k[l2 + 4 >> 2] | 0; + a2 = i2[l2 + 12 >> 0] | 0; + if (!(a2 & 1)) + a2 = (a2 & 255) >>> 1; + else + a2 = k[l2 + 16 >> 2] | 0; + do + if ((g2 | 0) != (0 - a2 | 0)) { + k[j2 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Su(c2, h2, l2, l2 + 24 | 0, f2, e2, 0) | 0; + g2 = k[b2 >> 2] | 0; + if ((a2 | 0) == (l2 | 0) & (g2 | 0) == 12) { + k[b2 >> 2] = 0; + break; + } + if ((g2 | 0) < 12 & (a2 - l2 | 0) == 12) + k[b2 >> 2] = g2 + 12; + } else + k[e2 >> 2] = k[e2 >> 2] | 4; + while (0); + r = m2; + return; + } + function Tq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 61 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Uq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 1) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 7 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Vq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 4) | 0; + if (!(k[e2 >> 2] & 4)) + k[b2 >> 2] = a2 + -1900; + r = g2; + return; + } + function Wq(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0; + a2 = k[b2 >> 2] | 0; + do + if (a2) { + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + g2 = 1; + break; + } else { + g2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + g2 = 1; + while (0); + f2 = k[c2 >> 2] | 0; + do + if (f2) { + a2 = k[f2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[f2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; + else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (g2) { + h2 = f2; + i3 = 17; + break; + } else { + i3 = 16; + break; + } + else { + k[c2 >> 2] = 0; + i3 = 14; + break; + } + } else + i3 = 14; + while (0); + if ((i3 | 0) == 14) + if (g2) + i3 = 16; + else { + h2 = 0; + i3 = 17; + } + a: + do + if ((i3 | 0) == 16) + k[d2 >> 2] = k[d2 >> 2] | 6; + else if ((i3 | 0) == 17) { + a2 = k[b2 >> 2] | 0; + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((Qb[k[(k[e2 >> 2] | 0) + 52 >> 2] & 63](e2, a2, 0) | 0) << 24 >> 24 != 37) { + k[d2 >> 2] = k[d2 >> 2] | 4; + break; + } + a2 = k[b2 >> 2] | 0; + f2 = a2 + 12 | 0; + g2 = k[f2 >> 2] | 0; + if ((g2 | 0) == (k[a2 + 16 >> 2] | 0)) { + Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + a2 = k[b2 >> 2] | 0; + if (!a2) + f2 = 1; + else + i3 = 25; + } else { + k[f2 >> 2] = g2 + 4; + i3 = 25; + } + do + if ((i3 | 0) == 25) { + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + f2 = 1; + break; + } else { + f2 = (k[b2 >> 2] | 0) == 0; + break; + } + } + while (0); + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0; + else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (f2) + break a; + else + break; + else { + k[c2 >> 2] = 0; + i3 = 37; + break; + } + } else + i3 = 37; + while (0); + if ((i3 | 0) == 37 ? !f2 : 0) + break; + k[d2 >> 2] = k[d2 >> 2] | 2; + } + while (0); + return; + } + function Xq(a2) { + a2 = a2 | 0; + Yq(a2 + 8 | 0); + return; + } + function Yq(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + b2 = k[a2 >> 2] | 0; + x = 0; + c2 = Da(3) | 0; + d2 = x; + x = 0; + do + if (!(d2 & 1)) { + if ((b2 | 0) != (c2 | 0) ? (x = 0, qa(188, k[a2 >> 2] | 0), d2 = x, x = 0, d2 & 1) : 0) + break; + return; + } + while (0); + d2 = Wa(0) | 0; + oc(d2); + } + function Zq(a2) { + a2 = a2 | 0; + Yq(a2 + 8 | 0); + mj(a2); + return; + } + function _q(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0; + j2 = r; + r = r + 112 | 0; + h2 = j2 + 4 | 0; + c2 = j2; + k[c2 >> 2] = h2 + 100; + $q(a2 + 8 | 0, h2, c2, e2, f2, g2); + e2 = k[c2 >> 2] | 0; + c2 = k[b2 >> 2] | 0; + if ((h2 | 0) != (e2 | 0)) + do { + g2 = i2[h2 >> 0] | 0; + do + if (c2) { + d2 = c2 + 24 | 0; + f2 = k[d2 >> 2] | 0; + if ((f2 | 0) == (k[c2 + 28 >> 2] | 0)) { + b2 = (Vb[k[(k[c2 >> 2] | 0) + 52 >> 2] & 63](c2, g2 & 255) | 0) == -1; + c2 = b2 ? 0 : c2; + break; + } else { + k[d2 >> 2] = f2 + 1; + i2[f2 >> 0] = g2; + break; + } + } else + c2 = 0; + while (0); + h2 = h2 + 1 | 0; + } while ((h2 | 0) != (e2 | 0)); + r = j2; + return c2 | 0; + } + function $q(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 16 | 0; + j2 = l2; + i2[j2 >> 0] = 37; + g2 = j2 + 1 | 0; + i2[g2 >> 0] = e2; + h2 = j2 + 2 | 0; + i2[h2 >> 0] = f2; + i2[j2 + 3 >> 0] = 0; + if (f2 << 24 >> 24) { + i2[g2 >> 0] = f2; + i2[h2 >> 0] = e2; + } + a2 = b2 + (_a(b2 | 0, (k[c2 >> 2] | 0) - b2 | 0, j2 | 0, d2 | 0, k[a2 >> 2] | 0) | 0) | 0; + k[c2 >> 2] = a2; + r = l2; + return; + } + function ar(a2) { + a2 = a2 | 0; + Yq(a2 + 8 | 0); + return; + } + function br(a2) { + a2 = a2 | 0; + Yq(a2 + 8 | 0); + mj(a2); + return; + } + function cr(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0; + h2 = r; + r = r + 416 | 0; + d2 = h2 + 8 | 0; + c2 = h2; + k[c2 >> 2] = d2 + 400; + dr(a2 + 8 | 0, d2, c2, e2, f2, g2); + a2 = k[c2 >> 2] | 0; + c2 = k[b2 >> 2] | 0; + if ((d2 | 0) != (a2 | 0)) { + e2 = d2; + do { + d2 = k[e2 >> 2] | 0; + if (!c2) + c2 = 0; + else { + f2 = c2 + 24 | 0; + g2 = k[f2 >> 2] | 0; + if ((g2 | 0) == (k[c2 + 28 >> 2] | 0)) + d2 = Vb[k[(k[c2 >> 2] | 0) + 52 >> 2] & 63](c2, d2) | 0; + else { + k[f2 >> 2] = g2 + 4; + k[g2 >> 2] = d2; + } + c2 = (d2 | 0) == -1 ? 0 : c2; + } + e2 = e2 + 4 | 0; + } while ((e2 | 0) != (a2 | 0)); + } + r = h2; + return c2 | 0; + } + function dr(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 128 | 0; + j2 = g2 + 16 | 0; + l2 = g2 + 12 | 0; + h2 = g2; + i3 = g2 + 8 | 0; + k[l2 >> 2] = j2 + 100; + $q(a2, j2, l2, d2, e2, f2); + e2 = h2; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[i3 >> 2] = j2; + e2 = (k[c2 >> 2] | 0) - b2 >> 2; + f2 = Ak(k[a2 >> 2] | 0) | 0; + x = 0; + e2 = Ea(18, b2 | 0, i3 | 0, e2 | 0, h2 | 0) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + e2 = Wa() | 0; + if ((f2 | 0) != 0 ? (x = 0, ta(75, f2 | 0) | 0, l2 = x, x = 0, l2 & 1) : 0) { + l2 = Wa(0) | 0; + oc(l2); + } + fb(e2 | 0); + } + if ((f2 | 0) != 0 ? (x = 0, ta(75, f2 | 0) | 0, l2 = x, x = 0, l2 & 1) : 0) { + l2 = Wa(0) | 0; + oc(l2); + } + if ((e2 | 0) == -1) + $r(58955); + else { + k[c2 >> 2] = b2 + (e2 << 2); + r = g2; + return; + } + } + function er(a2) { + a2 = a2 | 0; + return; + } + function fr(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function gr(a2) { + a2 = a2 | 0; + return 127; + } + function hr(a2) { + a2 = a2 | 0; + return 127; + } + function ir(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function jr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function kr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function lr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Rm(a2, 1, 45); + return; + } + function mr(a2) { + a2 = a2 | 0; + return 0; + } + function nr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function or(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function pr(a2) { + a2 = a2 | 0; + return; + } + function qr(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function rr(a2) { + a2 = a2 | 0; + return 127; + } + function sr(a2) { + a2 = a2 | 0; + return 127; + } + function tr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function ur(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function vr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function wr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Rm(a2, 1, 45); + return; + } + function xr(a2) { + a2 = a2 | 0; + return 0; + } + function yr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function zr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Ar(a2) { + a2 = a2 | 0; + return; + } + function Br(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Cr(a2) { + a2 = a2 | 0; + return 2147483647; + } + function Dr(a2) { + a2 = a2 | 0; + return 2147483647; + } + function Er(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Fr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Gr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Hr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + dn(a2, 1, 45); + return; + } + function Ir(a2) { + a2 = a2 | 0; + return 0; + } + function Jr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Kr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Lr(a2) { + a2 = a2 | 0; + return; + } + function Mr(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Nr(a2) { + a2 = a2 | 0; + return 2147483647; + } + function Or(a2) { + a2 = a2 | 0; + return 2147483647; + } + function Pr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Qr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Rr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Sr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + dn(a2, 1, 45); + return; + } + function Tr(a2) { + a2 = a2 | 0; + return 0; + } + function Ur(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Vr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Wr(a2) { + a2 = a2 | 0; + return; + } + function Xr(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Yr(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + B2 = r; + r = r + 240 | 0; + z2 = B2 + 24 | 0; + A2 = B2; + a2 = B2 + 136 | 0; + D2 = B2 + 16 | 0; + y2 = B2 + 12 | 0; + C2 = B2 + 8 | 0; + n2 = B2 + 134 | 0; + j2 = B2 + 4 | 0; + w2 = B2 + 124 | 0; + k[D2 >> 2] = a2; + E2 = D2 + 4 | 0; + k[E2 >> 2] = 189; + l2 = a2 + 100 | 0; + x = 0; + h2 = ta(68, e2 | 0) | 0; + v2 = x; + x = 0; + if (!(v2 & 1)) { + k[C2 >> 2] = h2; + x = 0; + a2 = Aa(37, C2 | 0, 44220) | 0; + v2 = x; + x = 0; + a: + do + if (!(v2 & 1) ? (i2[n2 >> 0] = 0, k[j2 >> 2] = k[c2 >> 2], m2 = k[e2 + 4 >> 2] | 0, x = 0, k[z2 >> 2] = k[j2 >> 2], m2 = ua(1, b2 | 0, z2 | 0, d2 | 0, C2 | 0, m2 | 0, f2 | 0, n2 | 0, a2 | 0, D2 | 0, y2 | 0, l2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + b: + do + if (m2) { + x = 0; + Ea(k[(k[a2 >> 2] | 0) + 32 >> 2] | 0, a2 | 0, 58976, 58986, w2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + G2 = 10; + break a; + } + j2 = k[y2 >> 2] | 0; + l2 = k[D2 >> 2] | 0; + a2 = j2 - l2 | 0; + if ((a2 | 0) > 98) { + a2 = Pl(a2 + 2 | 0) | 0; + h2 = a2; + if (!a2) { + x = 0; + Ga(6); + v2 = x; + x = 0; + if (!(v2 & 1)) { + a2 = 0; + G2 = 13; + } + } else + G2 = 13; + } else { + h2 = 0; + a2 = z2; + G2 = 13; + } + do + if ((G2 | 0) == 13) { + if (i2[n2 >> 0] | 0) { + i2[a2 >> 0] = 45; + a2 = a2 + 1 | 0; + } + u2 = w2 + 10 | 0; + v2 = w2; + if (l2 >>> 0 < j2 >>> 0) { + m2 = w2 + 1 | 0; + d2 = m2 + 1 | 0; + e2 = d2 + 1 | 0; + n2 = e2 + 1 | 0; + o2 = n2 + 1 | 0; + p2 = o2 + 1 | 0; + q2 = p2 + 1 | 0; + s2 = q2 + 1 | 0; + t2 = s2 + 1 | 0; + do { + j2 = i2[l2 >> 0] | 0; + do + if ((i2[w2 >> 0] | 0) != j2 << 24 >> 24) + if ((i2[m2 >> 0] | 0) != j2 << 24 >> 24) + if ((i2[d2 >> 0] | 0) != j2 << 24 >> 24) + if ((i2[e2 >> 0] | 0) != j2 << 24 >> 24) + if ((i2[n2 >> 0] | 0) == j2 << 24 >> 24) + j2 = n2; + else { + if ((i2[o2 >> 0] | 0) == j2 << 24 >> 24) { + j2 = o2; + break; + } + if ((i2[p2 >> 0] | 0) == j2 << 24 >> 24) { + j2 = p2; + break; + } + if ((i2[q2 >> 0] | 0) == j2 << 24 >> 24) { + j2 = q2; + break; + } + if ((i2[s2 >> 0] | 0) == j2 << 24 >> 24) { + j2 = s2; + break; + } + j2 = (i2[t2 >> 0] | 0) == j2 << 24 >> 24 ? t2 : u2; + } + else + j2 = e2; + else + j2 = d2; + else + j2 = m2; + else + j2 = w2; + while (0); + i2[a2 >> 0] = i2[58976 + (j2 - v2) >> 0] | 0; + l2 = l2 + 1 | 0; + a2 = a2 + 1 | 0; + } while (l2 >>> 0 < (k[y2 >> 2] | 0) >>> 0); + } + i2[a2 >> 0] = 0; + k[A2 >> 2] = g2; + if ((jl(z2, 58987, A2) | 0) != 1 ? (x = 0, qa(190, 58991), g2 = x, x = 0, g2 & 1) : 0) + break; + if (h2) + Ql(h2); + break b; + } + while (0); + a2 = Wa() | 0; + if (!h2) { + j2 = a2; + h2 = D2; + break a; + } + Ql(h2); + j2 = a2; + h2 = D2; + break a; + } + while (0); + a2 = k[b2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + G2 = 10; + break a; + } + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + break; + } else { + a2 = k[b2 >> 2] | 0; + break; + } + } + } else + a2 = 0; + while (0); + h2 = (a2 | 0) == 0; + a2 = k[c2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + G2 = 10; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + G2 = 37; + break; + } + } + if (!h2) + G2 = 38; + } else + G2 = 37; + while (0); + if ((G2 | 0) == 37 ? h2 : 0) + G2 = 38; + if ((G2 | 0) == 38) + k[f2 >> 2] = k[f2 >> 2] | 2; + h2 = k[b2 >> 2] | 0; + zm(k[C2 >> 2] | 0) | 0; + a2 = k[D2 >> 2] | 0; + k[D2 >> 2] = 0; + if ((a2 | 0) != 0 ? (x = 0, qa(k[E2 >> 2] | 0, a2 | 0), G2 = x, x = 0, G2 & 1) : 0) { + G2 = Wa(0) | 0; + oc(G2); + } + r = B2; + return h2 | 0; + } else + G2 = 10; + while (0); + if ((G2 | 0) == 10) { + j2 = Wa() | 0; + h2 = D2; + } + zm(k[C2 >> 2] | 0) | 0; + a2 = k[h2 >> 2] | 0; + k[h2 >> 2] = 0; + if (!a2) + F2 = j2; + else { + h2 = k[E2 >> 2] | 0; + G2 = 45; + } + } else { + j2 = Wa() | 0; + k[D2 >> 2] = 0; + h2 = 189; + G2 = 45; + } + if ((G2 | 0) == 45) { + x = 0; + qa(h2 | 0, a2 | 0); + G2 = x; + x = 0; + if (G2 & 1) { + G2 = Wa(0) | 0; + oc(G2); + } else + F2 = j2; + } + fb(F2 | 0); + return 0; + } + function Zr(a2) { + a2 = a2 | 0; + return; + } + function _r(a2, b2, c2, d2, e2, f2, g2, h2, m2, n2, o2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + var p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0, X2 = 0, Y2 = 0, Z2 = 0, _2 = 0, $2 = 0, aa2 = 0, ba2 = 0, ca2 = 0, da2 = 0; + ba2 = r; + r = r + 512 | 0; + P2 = ba2 + 88 | 0; + t2 = ba2 + 96 | 0; + da2 = ba2 + 80 | 0; + T2 = ba2 + 72 | 0; + S2 = ba2 + 68 | 0; + U2 = ba2 + 500 | 0; + Q2 = ba2 + 497 | 0; + V2 = ba2 + 496 | 0; + Y2 = ba2 + 56 | 0; + aa2 = ba2 + 44 | 0; + _2 = ba2 + 32 | 0; + Z2 = ba2 + 20 | 0; + $2 = ba2 + 8 | 0; + R2 = ba2 + 4 | 0; + X2 = ba2; + k[P2 >> 2] = o2; + k[da2 >> 2] = t2; + ca2 = da2 + 4 | 0; + k[ca2 >> 2] = 189; + k[T2 >> 2] = t2; + k[S2 >> 2] = t2 + 400; + k[Y2 >> 2] = 0; + k[Y2 + 4 >> 2] = 0; + k[Y2 + 8 >> 2] = 0; + k[aa2 >> 2] = 0; + k[aa2 + 4 >> 2] = 0; + k[aa2 + 8 >> 2] = 0; + k[_2 >> 2] = 0; + k[_2 + 4 >> 2] = 0; + k[_2 + 8 >> 2] = 0; + k[Z2 >> 2] = 0; + k[Z2 + 4 >> 2] = 0; + k[Z2 + 8 >> 2] = 0; + k[$2 >> 2] = 0; + k[$2 + 4 >> 2] = 0; + k[$2 + 8 >> 2] = 0; + x = 0; + za(1, c2 | 0, d2 | 0, U2 | 0, Q2 | 0, V2 | 0, Y2 | 0, aa2 | 0, _2 | 0, Z2 | 0, R2 | 0); + O2 = x; + x = 0; + a: + do + if (O2 & 1) + h2 = Wa() | 0; + else { + k[n2 >> 2] = k[m2 >> 2]; + I2 = h2 + 8 | 0; + J2 = _2 + 4 | 0; + K2 = Z2 + 4 | 0; + L2 = Z2 + 8 | 0; + M2 = Z2 + 1 | 0; + N2 = _2 + 8 | 0; + O2 = _2 + 1 | 0; + z2 = (e2 & 512 | 0) != 0; + A2 = aa2 + 8 | 0; + B2 = aa2 + 1 | 0; + C2 = aa2 + 4 | 0; + D2 = $2 + 4 | 0; + E2 = $2 + 8 | 0; + F2 = $2 + 1 | 0; + G2 = U2 + 3 | 0; + H2 = Y2 + 4 | 0; + y2 = 0; + s2 = 0; + b: + while (1) { + o2 = k[a2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + if ((o2 | 0) == -1) { + k[a2 >> 2] = 0; + o2 = 0; + break; + } else { + o2 = k[a2 >> 2] | 0; + break; + } + } + } else + o2 = 0; + while (0); + o2 = (o2 | 0) == 0; + h2 = k[b2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (o2) { + w2 = h2; + break; + } else { + W2 = 235; + break b; + } + x = 0; + c2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + if ((c2 | 0) != -1) + if (o2) { + w2 = h2; + break; + } else { + W2 = 235; + break b; + } + else { + k[b2 >> 2] = 0; + W2 = 15; + break; + } + } else + W2 = 15; + while (0); + if ((W2 | 0) == 15) { + W2 = 0; + if (o2) { + W2 = 235; + break; + } else + w2 = 0; + } + c: + do + switch (i2[U2 + y2 >> 0] | 0) { + case 1: { + if ((y2 | 0) != 3) { + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 24; + break b; + } + } else + o2 = l[h2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 <= -1) { + W2 = 40; + break b; + } + if (!(j[(k[I2 >> 2] | 0) + (o2 << 24 >> 24 << 1) >> 1] & 8192)) { + W2 = 40; + break b; + } + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 24; + break b; + } + } else { + k[h2 >> 2] = c2 + 1; + o2 = l[c2 >> 0] | 0; + } + x = 0; + ra(67, $2 | 0, o2 & 255 | 0); + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 24; + break b; + } else { + o2 = w2; + d2 = w2; + W2 = 42; + } + } + break; + } + case 0: { + if ((y2 | 0) != 3) { + o2 = w2; + d2 = w2; + W2 = 42; + } + break; + } + case 3: { + h2 = i2[_2 >> 0] | 0; + o2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[J2 >> 2] | 0; + c2 = i2[Z2 >> 0] | 0; + d2 = (c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[K2 >> 2] | 0; + if ((o2 | 0) != (0 - d2 | 0)) { + if (!o2) { + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + h2 = i2[Z2 >> 0] | 0; + } else { + o2 = l[h2 >> 0] | 0; + h2 = c2; + } + if ((o2 & 255) << 24 >> 24 != (i2[((h2 & 1) == 0 ? M2 : k[L2 >> 2] | 0) >> 0] | 0)) + break c; + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[h2 >> 2] = c2 + 1; + i2[g2 >> 0] = 1; + w2 = i2[Z2 >> 0] | 0; + s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[K2 >> 2] | 0) >>> 0 > 1 ? Z2 : s2; + break c; + } + e2 = k[a2 >> 2] | 0; + p2 = k[e2 + 12 >> 2] | 0; + c2 = k[e2 + 16 >> 2] | 0; + o2 = (p2 | 0) == (c2 | 0); + if (!d2) { + if (o2) { + x = 0; + o2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + h2 = i2[_2 >> 0] | 0; + } else + o2 = l[p2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 != (i2[((h2 & 1) == 0 ? O2 : k[N2 >> 2] | 0) >> 0] | 0)) { + i2[g2 >> 0] = 1; + break c; + } + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[h2 >> 2] = c2 + 1; + w2 = i2[_2 >> 0] | 0; + s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[J2 >> 2] | 0) >>> 0 > 1 ? _2 : s2; + break c; + } + if (o2) { + x = 0; + o2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + c2 = k[a2 >> 2] | 0; + h2 = i2[_2 >> 0] | 0; + e2 = c2; + p2 = k[c2 + 12 >> 2] | 0; + c2 = k[c2 + 16 >> 2] | 0; + } else + o2 = l[p2 >> 0] | 0; + d2 = e2 + 12 | 0; + c2 = (p2 | 0) == (c2 | 0); + if ((o2 & 255) << 24 >> 24 == (i2[((h2 & 1) == 0 ? O2 : k[N2 >> 2] | 0) >> 0] | 0)) { + if (c2) { + x = 0; + ta(k[(k[e2 >> 2] | 0) + 40 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[d2 >> 2] = p2 + 1; + w2 = i2[_2 >> 0] | 0; + s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[J2 >> 2] | 0) >>> 0 > 1 ? _2 : s2; + break c; + } + if (c2) { + x = 0; + o2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + o2 = l[p2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 != (i2[((i2[Z2 >> 0] & 1) == 0 ? M2 : k[L2 >> 2] | 0) >> 0] | 0)) { + W2 = 104; + break b; + } + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[h2 >> 2] = c2 + 1; + i2[g2 >> 0] = 1; + w2 = i2[Z2 >> 0] | 0; + s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[K2 >> 2] | 0) >>> 0 > 1 ? Z2 : s2; + } + break; + } + case 2: { + if (!(y2 >>> 0 < 2 | (s2 | 0) != 0) ? !(z2 | (y2 | 0) == 2 & (i2[G2 >> 0] | 0) != 0) : 0) { + s2 = 0; + break c; + } + u2 = i2[aa2 >> 0] | 0; + o2 = (u2 & 1) == 0; + v2 = k[A2 >> 2] | 0; + c2 = o2 ? B2 : v2; + q2 = c2; + d: + do + if ((y2 | 0) != 0 ? (l[U2 + (y2 + -1) >> 0] | 0) < 2 : 0) { + p2 = o2 ? (u2 & 255) >>> 1 : k[C2 >> 2] | 0; + d2 = c2 + p2 | 0; + e2 = k[I2 >> 2] | 0; + e: + do + if (!p2) + h2 = q2; + else { + p2 = c2; + h2 = q2; + do { + o2 = i2[p2 >> 0] | 0; + if (o2 << 24 >> 24 <= -1) + break e; + if (!(j[e2 + (o2 << 24 >> 24 << 1) >> 1] & 8192)) + break e; + p2 = p2 + 1 | 0; + h2 = p2; + } while ((p2 | 0) != (d2 | 0)); + } + while (0); + d2 = h2 - q2 | 0; + e2 = i2[$2 >> 0] | 0; + o2 = (e2 & 1) == 0; + e2 = o2 ? (e2 & 255) >>> 1 : k[D2 >> 2] | 0; + if (e2 >>> 0 >= d2 >>> 0) { + o2 = o2 ? F2 : k[E2 >> 2] | 0; + p2 = o2 + e2 | 0; + if ((h2 | 0) != (q2 | 0)) { + o2 = o2 + (e2 - d2) | 0; + while (1) { + if ((i2[o2 >> 0] | 0) != (i2[c2 >> 0] | 0)) { + h2 = q2; + break d; + } + o2 = o2 + 1 | 0; + if ((o2 | 0) == (p2 | 0)) + break; + else + c2 = c2 + 1 | 0; + } + } + } else + h2 = q2; + } else + h2 = q2; + while (0); + o2 = (u2 & 1) == 0; + o2 = (o2 ? B2 : v2) + (o2 ? (u2 & 255) >>> 1 : k[C2 >> 2] | 0) | 0; + f: + do + if ((h2 | 0) != (o2 | 0)) { + e2 = w2; + d2 = w2; + o2 = h2; + while (1) { + h2 = k[a2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 21; + break b; + } + if ((h2 | 0) == -1) { + k[a2 >> 2] = 0; + h2 = 0; + break; + } else { + h2 = k[a2 >> 2] | 0; + break; + } + } + } else + h2 = 0; + while (0); + c2 = (h2 | 0) == 0; + do + if (d2) { + if ((k[d2 + 12 >> 2] | 0) != (k[d2 + 16 >> 2] | 0)) + if (c2) { + h2 = e2; + p2 = d2; + break; + } else + break f; + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 21; + break b; + } + if ((h2 | 0) != -1) + if (c2 ^ (e2 | 0) == 0) { + h2 = e2; + p2 = e2; + break; + } else + break f; + else { + k[b2 >> 2] = 0; + h2 = 0; + W2 = 131; + break; + } + } else { + h2 = e2; + W2 = 131; + } + while (0); + if ((W2 | 0) == 131) { + W2 = 0; + if (c2) + break f; + else + p2 = 0; + } + c2 = k[a2 >> 2] | 0; + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 21; + break b; + } + } else + c2 = l[d2 >> 0] | 0; + if ((c2 & 255) << 24 >> 24 != (i2[o2 >> 0] | 0)) + break f; + c2 = k[a2 >> 2] | 0; + d2 = c2 + 12 | 0; + e2 = k[d2 >> 2] | 0; + if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 21; + break b; + } + } else + k[d2 >> 2] = e2 + 1; + o2 = o2 + 1 | 0; + c2 = i2[aa2 >> 0] | 0; + w2 = (c2 & 1) == 0; + c2 = (w2 ? B2 : k[A2 >> 2] | 0) + (w2 ? (c2 & 255) >>> 1 : k[C2 >> 2] | 0) | 0; + if ((o2 | 0) == (c2 | 0)) { + o2 = c2; + break; + } else { + e2 = h2; + d2 = p2; + } + } + } + while (0); + if (z2 ? (w2 = i2[aa2 >> 0] | 0, v2 = (w2 & 1) == 0, (o2 | 0) != ((v2 ? B2 : k[A2 >> 2] | 0) + (v2 ? (w2 & 255) >>> 1 : k[C2 >> 2] | 0) | 0)) : 0) { + W2 = 143; + break b; + } + break; + } + case 4: { + q2 = i2[V2 >> 0] | 0; + h2 = w2; + e2 = w2; + o2 = 0; + g: + while (1) { + c2 = k[a2 >> 2] | 0; + do + if (c2) { + if ((k[c2 + 12 >> 2] | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + c2 = 0; + break; + } else { + c2 = k[a2 >> 2] | 0; + break; + } + } + } else + c2 = 0; + while (0); + d2 = (c2 | 0) == 0; + do + if (e2) { + if ((k[e2 + 12 >> 2] | 0) != (k[e2 + 16 >> 2] | 0)) + if (d2) { + p2 = h2; + break; + } else { + d2 = h2; + break g; + } + x = 0; + c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + if ((c2 | 0) != -1) + if (d2 ^ (h2 | 0) == 0) { + p2 = h2; + e2 = h2; + break; + } else { + d2 = h2; + break g; + } + else { + k[b2 >> 2] = 0; + h2 = 0; + W2 = 156; + break; + } + } else + W2 = 156; + while (0); + if ((W2 | 0) == 156) { + W2 = 0; + if (d2) { + d2 = h2; + break; + } else { + p2 = h2; + e2 = 0; + } + } + h2 = k[a2 >> 2] | 0; + c2 = k[h2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + } else + h2 = l[c2 >> 0] | 0; + c2 = h2 & 255; + if (c2 << 24 >> 24 > -1 ? (j[(k[I2 >> 2] | 0) + (h2 << 24 >> 24 << 1) >> 1] & 2048) != 0 : 0) { + h2 = k[n2 >> 2] | 0; + if ((h2 | 0) == (k[P2 >> 2] | 0)) { + x = 0; + Fa(12, m2 | 0, n2 | 0, P2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + h2 = k[n2 >> 2] | 0; + } + k[n2 >> 2] = h2 + 1; + i2[h2 >> 0] = c2; + o2 = o2 + 1 | 0; + } else { + w2 = i2[Y2 >> 0] | 0; + if (!(c2 << 24 >> 24 == q2 << 24 >> 24 & ((o2 | 0) != 0 ? (((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[H2 >> 2] | 0) | 0) != 0 : 0))) { + d2 = p2; + break; + } + if ((t2 | 0) == (k[S2 >> 2] | 0)) { + x = 0; + Fa(13, da2 | 0, T2 | 0, S2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + t2 = k[T2 >> 2] | 0; + } + w2 = t2 + 4 | 0; + k[T2 >> 2] = w2; + k[t2 >> 2] = o2; + t2 = w2; + o2 = 0; + } + h2 = k[a2 >> 2] | 0; + c2 = h2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[h2 >> 2] | 0) + 40 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } else { + h2 = p2; + continue; + } + } else { + k[c2 >> 2] = d2 + 1; + h2 = p2; + continue; + } + } + if ((o2 | 0) != 0 ? (k[da2 >> 2] | 0) != (t2 | 0) : 0) { + if ((t2 | 0) == (k[S2 >> 2] | 0)) { + x = 0; + Fa(13, da2 | 0, T2 | 0, S2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + t2 = k[T2 >> 2] | 0; + } + w2 = t2 + 4 | 0; + k[T2 >> 2] = w2; + k[t2 >> 2] = o2; + t2 = w2; + } + p2 = k[R2 >> 2] | 0; + if ((p2 | 0) > 0) { + o2 = k[a2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + if ((o2 | 0) == -1) { + k[a2 >> 2] = 0; + o2 = 0; + break; + } else { + o2 = k[a2 >> 2] | 0; + break; + } + } + } else + o2 = 0; + while (0); + o2 = (o2 | 0) == 0; + do + if (d2) { + if ((k[d2 + 12 >> 2] | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + W2 = 193; + break; + } + } + if (!o2) { + W2 = 198; + break b; + } + } else + W2 = 193; + while (0); + if ((W2 | 0) == 193) { + W2 = 0; + if (o2) { + W2 = 198; + break b; + } else + d2 = 0; + } + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + o2 = l[h2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 != (i2[Q2 >> 0] | 0)) { + W2 = 198; + break b; + } + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[h2 >> 2] = c2 + 1; + if ((p2 | 0) > 0) { + e2 = d2; + c2 = d2; + q2 = p2; + while (1) { + o2 = k[a2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + if ((o2 | 0) == -1) { + k[a2 >> 2] = 0; + o2 = 0; + break; + } else { + o2 = k[a2 >> 2] | 0; + break; + } + } + } else + o2 = 0; + while (0); + h2 = (o2 | 0) == 0; + do + if (c2) { + if ((k[c2 + 12 >> 2] | 0) != (k[c2 + 16 >> 2] | 0)) + if (h2) { + o2 = e2; + p2 = c2; + break; + } else { + W2 = 222; + break b; + } + x = 0; + o2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + if ((o2 | 0) != -1) + if (h2 ^ (e2 | 0) == 0) { + o2 = e2; + p2 = e2; + break; + } else { + W2 = 222; + break b; + } + else { + k[b2 >> 2] = 0; + o2 = 0; + W2 = 215; + break; + } + } else { + o2 = e2; + W2 = 215; + } + while (0); + if ((W2 | 0) == 215) { + W2 = 0; + if (h2) { + W2 = 222; + break b; + } else + p2 = 0; + } + h2 = k[a2 >> 2] | 0; + c2 = k[h2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + } else + h2 = l[c2 >> 0] | 0; + if ((h2 & 255) << 24 >> 24 <= -1) { + W2 = 222; + break b; + } + if (!(j[(k[I2 >> 2] | 0) + (h2 << 24 >> 24 << 1) >> 1] & 2048)) { + W2 = 222; + break b; + } + if ((k[n2 >> 2] | 0) == (k[P2 >> 2] | 0) ? (x = 0, Fa(12, m2 | 0, n2 | 0, P2 | 0), w2 = x, x = 0, w2 & 1) : 0) { + W2 = 22; + break b; + } + h2 = k[a2 >> 2] | 0; + c2 = k[h2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + } else + h2 = l[c2 >> 0] | 0; + c2 = k[n2 >> 2] | 0; + k[n2 >> 2] = c2 + 1; + i2[c2 >> 0] = h2; + h2 = q2; + q2 = q2 + -1 | 0; + k[R2 >> 2] = q2; + c2 = k[a2 >> 2] | 0; + d2 = c2 + 12 | 0; + e2 = k[d2 >> 2] | 0; + if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + } else + k[d2 >> 2] = e2 + 1; + if ((h2 | 0) <= 1) + break; + else { + e2 = o2; + c2 = p2; + } + } + } + } + if ((k[n2 >> 2] | 0) == (k[m2 >> 2] | 0)) { + W2 = 233; + break b; + } + break; + } + default: { + } + } + while (0); + h: + do + if ((W2 | 0) == 42) + while (1) { + W2 = 0; + h2 = k[a2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 20; + break b; + } + if ((h2 | 0) == -1) { + k[a2 >> 2] = 0; + h2 = 0; + break; + } else { + h2 = k[a2 >> 2] | 0; + break; + } + } + } else + h2 = 0; + while (0); + c2 = (h2 | 0) == 0; + do + if (d2) { + if ((k[d2 + 12 >> 2] | 0) != (k[d2 + 16 >> 2] | 0)) + if (c2) { + e2 = o2; + break; + } else + break h; + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 20; + break b; + } + if ((h2 | 0) != -1) + if (c2 ^ (o2 | 0) == 0) { + e2 = o2; + d2 = o2; + break; + } else + break h; + else { + k[b2 >> 2] = 0; + o2 = 0; + W2 = 54; + break; + } + } else + W2 = 54; + while (0); + if ((W2 | 0) == 54) { + W2 = 0; + if (c2) + break h; + else { + e2 = o2; + d2 = 0; + } + } + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 20; + break b; + } + } else + o2 = l[h2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 <= -1) + break h; + if (!(j[(k[I2 >> 2] | 0) + (o2 << 24 >> 24 << 1) >> 1] & 8192)) + break h; + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 20; + break b; + } + } else { + k[h2 >> 2] = c2 + 1; + o2 = l[c2 >> 0] | 0; + } + x = 0; + ra(67, $2 | 0, o2 & 255 | 0); + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 20; + break b; + } else { + o2 = e2; + W2 = 42; + } + } + while (0); + y2 = y2 + 1 | 0; + if (y2 >>> 0 >= 4) { + W2 = 235; + break; + } + } + i: + switch (W2 | 0) { + case 20: { + h2 = Wa() | 0; + break a; + } + case 21: { + h2 = Wa() | 0; + break a; + } + case 22: { + h2 = Wa() | 0; + break a; + } + case 23: { + h2 = Wa() | 0; + break a; + } + case 24: { + h2 = Wa() | 0; + break a; + } + case 40: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 104: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 143: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 198: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 222: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 233: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 235: { + j: + do + if (s2) { + e2 = s2 + 1 | 0; + p2 = s2 + 8 | 0; + q2 = s2 + 4 | 0; + c2 = 1; + k: + while (1) { + o2 = i2[s2 >> 0] | 0; + if (!(o2 & 1)) + o2 = (o2 & 255) >>> 1; + else + o2 = k[q2 >> 2] | 0; + if (c2 >>> 0 >= o2 >>> 0) + break j; + o2 = k[a2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + W2 = 19; + break k; + } + if ((o2 | 0) == -1) { + k[a2 >> 2] = 0; + o2 = 0; + break; + } else { + o2 = k[a2 >> 2] | 0; + break; + } + } + } else + o2 = 0; + while (0); + h2 = (o2 | 0) == 0; + o2 = k[b2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + W2 = 19; + break k; + } + if ((o2 | 0) == -1) { + k[b2 >> 2] = 0; + W2 = 253; + break; + } + } + if (!h2) { + W2 = 260; + break k; + } + } else + W2 = 253; + while (0); + if ((W2 | 0) == 253 ? (W2 = 0, h2) : 0) { + W2 = 260; + break; + } + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + W2 = 19; + break; + } + } else + o2 = l[h2 >> 0] | 0; + if (!(i2[s2 >> 0] & 1)) + h2 = e2; + else + h2 = k[p2 >> 2] | 0; + if ((o2 & 255) << 24 >> 24 != (i2[h2 + c2 >> 0] | 0)) { + W2 = 260; + break; + } + o2 = c2 + 1 | 0; + h2 = k[a2 >> 2] | 0; + c2 = h2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[h2 >> 2] | 0) + 40 >> 2] | 0, h2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + W2 = 19; + break; + } else { + c2 = o2; + continue; + } + } else { + k[c2 >> 2] = d2 + 1; + c2 = o2; + continue; + } + } + if ((W2 | 0) == 19) { + h2 = Wa() | 0; + break a; + } else if ((W2 | 0) == 260) { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break i; + } + } + while (0); + o2 = k[da2 >> 2] | 0; + if ((o2 | 0) != (t2 | 0) ? (k[X2 >> 2] = 0, cs(Y2, o2, t2, X2), (k[X2 >> 2] | 0) != 0) : 0) { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + } else + h2 = 1; + break; + } + } + Sm($2); + Sm(Z2); + Sm(_2); + Sm(aa2); + Sm(Y2); + o2 = k[da2 >> 2] | 0; + k[da2 >> 2] = 0; + if ((o2 | 0) != 0 ? (x = 0, qa(k[ca2 >> 2] | 0, o2 | 0), da2 = x, x = 0, da2 & 1) : 0) { + da2 = Wa(0) | 0; + oc(da2); + } + r = ba2; + return h2 | 0; + } + while (0); + Sm($2); + Sm(Z2); + Sm(_2); + Sm(aa2); + Sm(Y2); + o2 = k[da2 >> 2] | 0; + k[da2 >> 2] = 0; + if ((o2 | 0) != 0 ? (x = 0, qa(k[ca2 >> 2] | 0, o2 | 0), da2 = x, x = 0, da2 & 1) : 0) { + da2 = Wa(0) | 0; + oc(da2); + } + fb(h2 | 0); + return 0; + } + function $r(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = Va(8) | 0; + x = 0; + ra(90, b2 | 0, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } else + ub(b2 | 0, 616, 80); + } + function as(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + v2 = r; + r = r + 144 | 0; + h2 = v2 + 24 | 0; + a2 = v2 + 32 | 0; + w2 = v2 + 16 | 0; + q2 = v2 + 8 | 0; + n2 = v2 + 4 | 0; + o2 = v2 + 28 | 0; + j2 = v2; + k[w2 >> 2] = a2; + A2 = w2 + 4 | 0; + k[A2 >> 2] = 189; + l2 = a2 + 100 | 0; + x = 0; + u2 = ta(68, e2 | 0) | 0; + m2 = x; + x = 0; + if (!(m2 & 1)) { + k[n2 >> 2] = u2; + x = 0; + m2 = Aa(37, n2 | 0, 44220) | 0; + a2 = x; + x = 0; + a: + do + if (!(a2 & 1) ? (i2[o2 >> 0] = 0, s2 = k[c2 >> 2] | 0, k[j2 >> 2] = s2, p2 = k[e2 + 4 >> 2] | 0, t2 = s2, x = 0, k[h2 >> 2] = k[j2 >> 2], p2 = ua(1, b2 | 0, h2 | 0, d2 | 0, n2 | 0, p2 | 0, f2 | 0, o2 | 0, m2 | 0, w2 | 0, q2 | 0, l2 | 0) | 0, e2 = x, x = 0, !(e2 & 1)) : 0) { + if (p2) { + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + if (i2[o2 >> 0] | 0) { + x = 0; + a2 = Aa(k[(k[m2 >> 2] | 0) + 28 >> 2] | 0, m2 | 0, 45) | 0; + e2 = x; + x = 0; + if (e2 & 1) + break; + x = 0; + ra(67, g2 | 0, a2 | 0); + e2 = x; + x = 0; + if (e2 & 1) + break; + } + x = 0; + j2 = Aa(k[(k[m2 >> 2] | 0) + 28 >> 2] | 0, m2 | 0, 48) | 0; + e2 = x; + x = 0; + if (e2 & 1) + break; + a2 = k[w2 >> 2] | 0; + l2 = k[q2 >> 2] | 0; + h2 = l2 + -1 | 0; + b: + do + if (a2 >>> 0 < h2 >>> 0) + do { + if ((i2[a2 >> 0] | 0) != j2 << 24 >> 24) + break b; + a2 = a2 + 1 | 0; + } while (a2 >>> 0 < h2 >>> 0); + while (0); + x = 0; + va(32, g2 | 0, a2 | 0, l2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) + break; + } + a2 = k[b2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) + break a; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + break; + } else { + a2 = k[b2 >> 2] | 0; + break; + } + } + } else + a2 = 0; + while (0); + h2 = (a2 | 0) == 0; + do + if (s2) { + if ((k[t2 + 12 >> 2] | 0) == (k[t2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[s2 >> 2] | 0) + 36 >> 2] | 0, t2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break a; + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + z2 = 29; + break; + } + } + if (!h2) + z2 = 30; + } else + z2 = 29; + while (0); + if ((z2 | 0) == 29 ? h2 : 0) + z2 = 30; + if ((z2 | 0) == 30) + k[f2 >> 2] = k[f2 >> 2] | 2; + h2 = k[b2 >> 2] | 0; + zm(u2) | 0; + a2 = k[w2 >> 2] | 0; + k[w2 >> 2] = 0; + if ((a2 | 0) != 0 ? (x = 0, qa(k[A2 >> 2] | 0, a2 | 0), A2 = x, x = 0, A2 & 1) : 0) { + A2 = Wa(0) | 0; + oc(A2); + } + r = v2; + return h2 | 0; + } + while (0); + h2 = Wa() | 0; + zm(u2) | 0; + a2 = k[w2 >> 2] | 0; + k[w2 >> 2] = 0; + if (!a2) + y2 = h2; + else + z2 = 36; + } else { + h2 = Wa() | 0; + k[w2 >> 2] = 0; + z2 = 36; + } + if ((z2 | 0) == 36) { + x = 0; + qa(k[A2 >> 2] | 0, a2 | 0); + A2 = x; + x = 0; + if (A2 & 1) { + A2 = Wa(0) | 0; + oc(A2); + } else + y2 = h2; + } + fb(y2 | 0); + return 0; + } + function bs(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0; + z2 = r; + r = r + 112 | 0; + m2 = z2 + 100 | 0; + n2 = z2 + 88 | 0; + o2 = z2 + 76 | 0; + p2 = z2 + 64 | 0; + q2 = z2 + 52 | 0; + s2 = z2 + 48 | 0; + t2 = z2 + 36 | 0; + u2 = z2 + 24 | 0; + v2 = z2 + 12 | 0; + w2 = z2; + do + if (a2) { + a2 = Ss(b2, 43828) | 0; + Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](m2, a2); + w2 = k[m2 >> 2] | 0; + i2[c2 >> 0] = w2; + i2[c2 + 1 >> 0] = w2 >> 8; + i2[c2 + 2 >> 0] = w2 >> 16; + i2[c2 + 3 >> 0] = w2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](n2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[j2 >> 2] = k[n2 >> 2]; + k[j2 + 4 >> 2] = k[n2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[n2 + 8 >> 2]; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + Sm(n2); + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](o2, a2); + if (!(i2[h2 >> 0] & 1)) { + i2[h2 + 1 >> 0] = 0; + i2[h2 >> 0] = 0; + } else { + i2[k[h2 + 8 >> 2] >> 0] = 0; + k[h2 + 4 >> 2] = 0; + } + x = 0; + ra(91, h2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[h2 >> 2] = k[o2 >> 2]; + k[h2 + 4 >> 2] = k[o2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[o2 + 8 >> 2]; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + Sm(o2); + h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + i2[d2 >> 0] = h2; + h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + i2[e2 >> 0] = h2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](p2, a2); + if (!(i2[f2 >> 0] & 1)) { + i2[f2 + 1 >> 0] = 0; + i2[f2 >> 0] = 0; + } else { + i2[k[f2 + 8 >> 2] >> 0] = 0; + k[f2 + 4 >> 2] = 0; + } + x = 0; + ra(91, f2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } + ; + k[f2 >> 2] = k[p2 >> 2]; + k[f2 + 4 >> 2] = k[p2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[p2 + 8 >> 2]; + k[p2 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 + 8 >> 2] = 0; + Sm(p2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](q2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else { + k[g2 >> 2] = k[q2 >> 2]; + k[g2 + 4 >> 2] = k[q2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[q2 + 8 >> 2]; + k[q2 >> 2] = 0; + k[q2 + 4 >> 2] = 0; + k[q2 + 8 >> 2] = 0; + Sm(q2); + y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } else { + a2 = Ss(b2, 43764) | 0; + Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](s2, a2); + s2 = k[s2 >> 2] | 0; + i2[c2 >> 0] = s2; + i2[c2 + 1 >> 0] = s2 >> 8; + i2[c2 + 2 >> 0] = s2 >> 16; + i2[c2 + 3 >> 0] = s2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](t2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[j2 >> 2] = k[t2 >> 2]; + k[j2 + 4 >> 2] = k[t2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[t2 + 8 >> 2]; + k[t2 >> 2] = 0; + k[t2 + 4 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + Sm(t2); + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](u2, a2); + if (!(i2[h2 >> 0] & 1)) { + i2[h2 + 1 >> 0] = 0; + i2[h2 >> 0] = 0; + } else { + i2[k[h2 + 8 >> 2] >> 0] = 0; + k[h2 + 4 >> 2] = 0; + } + x = 0; + ra(91, h2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[h2 >> 2] = k[u2 >> 2]; + k[h2 + 4 >> 2] = k[u2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[u2 + 8 >> 2]; + k[u2 >> 2] = 0; + k[u2 + 4 >> 2] = 0; + k[u2 + 8 >> 2] = 0; + Sm(u2); + h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + i2[d2 >> 0] = h2; + h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + i2[e2 >> 0] = h2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](v2, a2); + if (!(i2[f2 >> 0] & 1)) { + i2[f2 + 1 >> 0] = 0; + i2[f2 >> 0] = 0; + } else { + i2[k[f2 + 8 >> 2] >> 0] = 0; + k[f2 + 4 >> 2] = 0; + } + x = 0; + ra(91, f2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } + ; + k[f2 >> 2] = k[v2 >> 2]; + k[f2 + 4 >> 2] = k[v2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[v2 + 8 >> 2]; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + Sm(v2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](w2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else { + k[g2 >> 2] = k[w2 >> 2]; + k[g2 + 4 >> 2] = k[w2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[w2 + 8 >> 2]; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + Sm(w2); + y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } + while (0); + k[l2 >> 2] = y2; + r = z2; + return; + } + function cs(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = i2[a2 >> 0] | 0; + g2 = a2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + a: + do + if (((e2 & 1) == 0 ? (e2 & 255) >>> 1 : f2) | 0) { + if ((b2 | 0) != (c2 | 0)) { + e2 = c2 + -4 | 0; + if (e2 >>> 0 > b2 >>> 0) { + f2 = b2; + do { + h2 = k[f2 >> 2] | 0; + k[f2 >> 2] = k[e2 >> 2]; + k[e2 >> 2] = h2; + f2 = f2 + 4 | 0; + e2 = e2 + -4 | 0; + } while (f2 >>> 0 < e2 >>> 0); + } + e2 = i2[a2 >> 0] | 0; + f2 = k[g2 >> 2] | 0; + } + h2 = (e2 & 1) == 0; + g2 = h2 ? a2 + 1 | 0 : k[a2 + 8 >> 2] | 0; + c2 = c2 + -4 | 0; + a2 = g2 + (h2 ? (e2 & 255) >>> 1 : f2) | 0; + f2 = i2[g2 >> 0] | 0; + e2 = f2 << 24 >> 24 < 1 | f2 << 24 >> 24 == 127; + b: + do + if (c2 >>> 0 > b2 >>> 0) { + while (1) { + if (!e2 ? (f2 << 24 >> 24 | 0) != (k[b2 >> 2] | 0) : 0) + break; + g2 = (a2 - g2 | 0) > 1 ? g2 + 1 | 0 : g2; + b2 = b2 + 4 | 0; + f2 = i2[g2 >> 0] | 0; + e2 = f2 << 24 >> 24 < 1 | f2 << 24 >> 24 == 127; + if (b2 >>> 0 >= c2 >>> 0) + break b; + } + k[d2 >> 2] = 4; + break a; + } + while (0); + if (!e2 ? ((k[c2 >> 2] | 0) + -1 | 0) >>> 0 >= f2 << 24 >> 24 >>> 0 : 0) + k[d2 >> 2] = 4; + } + while (0); + return; + } + function ds(a2) { + a2 = a2 | 0; + return; + } + function es(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function fs(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + B2 = r; + r = r + 576 | 0; + w2 = B2 + 424 | 0; + A2 = B2; + a2 = B2 + 24 | 0; + D2 = B2 + 16 | 0; + y2 = B2 + 12 | 0; + C2 = B2 + 8 | 0; + n2 = B2 + 464 | 0; + j2 = B2 + 4 | 0; + z2 = B2 + 468 | 0; + k[D2 >> 2] = a2; + F2 = D2 + 4 | 0; + k[F2 >> 2] = 189; + l2 = a2 + 400 | 0; + x = 0; + h2 = ta(68, e2 | 0) | 0; + v2 = x; + x = 0; + if (!(v2 & 1)) { + k[C2 >> 2] = h2; + x = 0; + a2 = Aa(37, C2 | 0, 44212) | 0; + v2 = x; + x = 0; + a: + do + if (!(v2 & 1) ? (i2[n2 >> 0] = 0, k[j2 >> 2] = k[c2 >> 2], m2 = k[e2 + 4 >> 2] | 0, x = 0, k[w2 >> 2] = k[j2 >> 2], m2 = ua(2, b2 | 0, w2 | 0, d2 | 0, C2 | 0, m2 | 0, f2 | 0, n2 | 0, a2 | 0, D2 | 0, y2 | 0, l2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + b: + do + if (m2) { + x = 0; + Ea(k[(k[a2 >> 2] | 0) + 48 >> 2] | 0, a2 | 0, 59007, 59017, w2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + G2 = 10; + break a; + } + j2 = k[y2 >> 2] | 0; + l2 = k[D2 >> 2] | 0; + a2 = j2 - l2 | 0; + if ((a2 | 0) > 392) { + a2 = Pl((a2 >> 2) + 2 | 0) | 0; + h2 = a2; + if (!a2) { + x = 0; + Ga(6); + v2 = x; + x = 0; + if (!(v2 & 1)) { + a2 = 0; + G2 = 13; + } + } else + G2 = 13; + } else { + h2 = 0; + a2 = z2; + G2 = 13; + } + do + if ((G2 | 0) == 13) { + if (i2[n2 >> 0] | 0) { + i2[a2 >> 0] = 45; + a2 = a2 + 1 | 0; + } + u2 = w2 + 40 | 0; + v2 = w2; + if (l2 >>> 0 < j2 >>> 0) { + m2 = w2 + 4 | 0; + d2 = m2 + 4 | 0; + e2 = d2 + 4 | 0; + n2 = e2 + 4 | 0; + o2 = n2 + 4 | 0; + p2 = o2 + 4 | 0; + q2 = p2 + 4 | 0; + s2 = q2 + 4 | 0; + t2 = s2 + 4 | 0; + do { + j2 = k[l2 >> 2] | 0; + do + if ((k[w2 >> 2] | 0) != (j2 | 0)) + if ((k[m2 >> 2] | 0) != (j2 | 0)) + if ((k[d2 >> 2] | 0) != (j2 | 0)) + if ((k[e2 >> 2] | 0) != (j2 | 0)) + if ((k[n2 >> 2] | 0) == (j2 | 0)) + j2 = n2; + else { + if ((k[o2 >> 2] | 0) == (j2 | 0)) { + j2 = o2; + break; + } + if ((k[p2 >> 2] | 0) == (j2 | 0)) { + j2 = p2; + break; + } + if ((k[q2 >> 2] | 0) == (j2 | 0)) { + j2 = q2; + break; + } + if ((k[s2 >> 2] | 0) == (j2 | 0)) { + j2 = s2; + break; + } + j2 = (k[t2 >> 2] | 0) == (j2 | 0) ? t2 : u2; + } + else + j2 = e2; + else + j2 = d2; + else + j2 = m2; + else + j2 = w2; + while (0); + i2[a2 >> 0] = i2[59007 + (j2 - v2 >> 2) >> 0] | 0; + l2 = l2 + 4 | 0; + a2 = a2 + 1 | 0; + } while (l2 >>> 0 < (k[y2 >> 2] | 0) >>> 0); + } + i2[a2 >> 0] = 0; + k[A2 >> 2] = g2; + if ((jl(z2, 58987, A2) | 0) != 1 ? (x = 0, qa(190, 58991), g2 = x, x = 0, g2 & 1) : 0) + break; + if (h2) + Ql(h2); + break b; + } + while (0); + a2 = Wa() | 0; + if (!h2) { + j2 = a2; + h2 = D2; + break a; + } + Ql(h2); + j2 = a2; + h2 = D2; + break a; + } + while (0); + a2 = k[b2 >> 2] | 0; + do + if (a2) { + h2 = k[a2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + G2 = 10; + break a; + } + } else + a2 = k[h2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + j2 = 1; + break; + } else { + j2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + j2 = 1; + while (0); + a2 = k[c2 >> 2] | 0; + do + if (a2) { + h2 = k[a2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + G2 = 10; + break a; + } + } else + a2 = k[h2 >> 2] | 0; + if ((a2 | 0) != -1) + if (j2) + break; + else { + G2 = 40; + break; + } + else { + k[c2 >> 2] = 0; + G2 = 38; + break; + } + } else + G2 = 38; + while (0); + if ((G2 | 0) == 38 ? j2 : 0) + G2 = 40; + if ((G2 | 0) == 40) + k[f2 >> 2] = k[f2 >> 2] | 2; + h2 = k[b2 >> 2] | 0; + zm(k[C2 >> 2] | 0) | 0; + a2 = k[D2 >> 2] | 0; + k[D2 >> 2] = 0; + if ((a2 | 0) != 0 ? (x = 0, qa(k[F2 >> 2] | 0, a2 | 0), G2 = x, x = 0, G2 & 1) : 0) { + G2 = Wa(0) | 0; + oc(G2); + } + r = B2; + return h2 | 0; + } else + G2 = 10; + while (0); + if ((G2 | 0) == 10) { + j2 = Wa() | 0; + h2 = D2; + } + zm(k[C2 >> 2] | 0) | 0; + a2 = k[h2 >> 2] | 0; + k[h2 >> 2] = 0; + if (!a2) + E2 = j2; + else { + h2 = k[F2 >> 2] | 0; + G2 = 47; + } + } else { + j2 = Wa() | 0; + k[D2 >> 2] = 0; + h2 = 189; + G2 = 47; + } + if ((G2 | 0) == 47) { + x = 0; + qa(h2 | 0, a2 | 0); + G2 = x; + x = 0; + if (G2 & 1) { + G2 = Wa(0) | 0; + oc(G2); + } else + E2 = j2; + } + fb(E2 | 0); + return 0; + } + function gs(a2, b2, c2, d2, e2, f2, g2, h2, j2, m2, n2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + var o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0, X2 = 0, Y2 = 0, Z2 = 0, _2 = 0; + Y2 = r; + r = r + 512 | 0; + K2 = Y2 + 96 | 0; + o2 = Y2 + 104 | 0; + _2 = Y2 + 88 | 0; + O2 = Y2 + 80 | 0; + N2 = Y2 + 76 | 0; + P2 = Y2 + 504 | 0; + L2 = Y2 + 72 | 0; + Q2 = Y2 + 68 | 0; + T2 = Y2 + 56 | 0; + X2 = Y2 + 44 | 0; + V2 = Y2 + 32 | 0; + U2 = Y2 + 20 | 0; + W2 = Y2 + 8 | 0; + M2 = Y2 + 4 | 0; + S2 = Y2; + k[K2 >> 2] = n2; + k[_2 >> 2] = o2; + Z2 = _2 + 4 | 0; + k[Z2 >> 2] = 189; + k[O2 >> 2] = o2; + k[N2 >> 2] = o2 + 400; + k[T2 >> 2] = 0; + k[T2 + 4 >> 2] = 0; + k[T2 + 8 >> 2] = 0; + k[X2 >> 2] = 0; + k[X2 + 4 >> 2] = 0; + k[X2 + 8 >> 2] = 0; + k[V2 >> 2] = 0; + k[V2 + 4 >> 2] = 0; + k[V2 + 8 >> 2] = 0; + k[U2 >> 2] = 0; + k[U2 + 4 >> 2] = 0; + k[U2 + 8 >> 2] = 0; + k[W2 >> 2] = 0; + k[W2 + 4 >> 2] = 0; + k[W2 + 8 >> 2] = 0; + x = 0; + za(2, c2 | 0, d2 | 0, P2 | 0, L2 | 0, Q2 | 0, T2 | 0, X2 | 0, V2 | 0, U2 | 0, M2 | 0); + J2 = x; + x = 0; + a: + do + if (J2 & 1) + c2 = Wa() | 0; + else { + k[m2 >> 2] = k[j2 >> 2]; + G2 = V2 + 4 | 0; + H2 = U2 + 4 | 0; + I2 = U2 + 8 | 0; + J2 = V2 + 8 | 0; + z2 = (e2 & 512 | 0) != 0; + A2 = X2 + 8 | 0; + B2 = X2 + 4 | 0; + C2 = W2 + 4 | 0; + D2 = W2 + 8 | 0; + E2 = P2 + 3 | 0; + F2 = T2 + 4 | 0; + y2 = 0; + q2 = 0; + b: + while (1) { + n2 = k[a2 >> 2] | 0; + do + if (n2) { + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + n2 = k[c2 >> 2] | 0; + if ((n2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + c2 = k[b2 >> 2] | 0; + do + if (c2) { + n2 = k[c2 + 12 >> 2] | 0; + if ((n2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + n2 = k[n2 >> 2] | 0; + if ((n2 | 0) != -1) + if (d2) { + w2 = c2; + break; + } else { + s2 = o2; + R2 = 244; + break b; + } + else { + k[b2 >> 2] = 0; + R2 = 16; + break; + } + } else + R2 = 16; + while (0); + if ((R2 | 0) == 16) { + R2 = 0; + if (d2) { + s2 = o2; + R2 = 244; + break; + } else + w2 = 0; + } + c: + do + switch (i2[P2 + y2 >> 0] | 0) { + case 1: { + if ((y2 | 0) != 3) { + n2 = k[a2 >> 2] | 0; + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 26; + break b; + } + } else + n2 = k[c2 >> 2] | 0; + x = 0; + n2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 8192, n2 | 0) | 0; + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 26; + break b; + } + if (!n2) { + R2 = 42; + break b; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 26; + break b; + } + } else { + k[c2 >> 2] = d2 + 4; + n2 = k[d2 >> 2] | 0; + } + x = 0; + ra(92, W2 | 0, n2 | 0); + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 26; + break b; + } else { + n2 = w2; + e2 = w2; + R2 = 44; + } + } else + n2 = o2; + break; + } + case 0: { + if ((y2 | 0) == 3) + n2 = o2; + else { + n2 = w2; + e2 = w2; + R2 = 44; + } + break; + } + case 3: { + c2 = i2[V2 >> 0] | 0; + n2 = (c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[G2 >> 2] | 0; + d2 = i2[U2 >> 0] | 0; + e2 = (d2 & 1) == 0 ? (d2 & 255) >>> 1 : k[H2 >> 2] | 0; + if ((n2 | 0) == (0 - e2 | 0)) + n2 = o2; + else { + if (!n2) { + n2 = k[a2 >> 2] | 0; + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + c2 = i2[U2 >> 0] | 0; + } else { + n2 = k[c2 >> 2] | 0; + c2 = d2; + } + if ((n2 | 0) != (k[((c2 & 1) == 0 ? H2 : k[I2 >> 2] | 0) >> 2] | 0)) { + n2 = o2; + break c; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[c2 >> 2] = d2 + 4; + i2[g2 >> 0] = 1; + w2 = i2[U2 >> 0] | 0; + n2 = o2; + q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[H2 >> 2] | 0) >>> 0 > 1 ? U2 : q2; + break c; + } + p2 = k[a2 >> 2] | 0; + s2 = k[p2 + 12 >> 2] | 0; + d2 = k[p2 + 16 >> 2] | 0; + n2 = (s2 | 0) == (d2 | 0); + if (!e2) { + if (n2) { + x = 0; + n2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + c2 = i2[V2 >> 0] | 0; + } else + n2 = k[s2 >> 2] | 0; + if ((n2 | 0) != (k[((c2 & 1) == 0 ? G2 : k[J2 >> 2] | 0) >> 2] | 0)) { + i2[g2 >> 0] = 1; + n2 = o2; + break c; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[c2 >> 2] = d2 + 4; + w2 = i2[V2 >> 0] | 0; + n2 = o2; + q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[G2 >> 2] | 0) >>> 0 > 1 ? V2 : q2; + break c; + } + if (n2) { + x = 0; + n2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + d2 = k[a2 >> 2] | 0; + c2 = i2[V2 >> 0] | 0; + p2 = d2; + s2 = k[d2 + 12 >> 2] | 0; + d2 = k[d2 + 16 >> 2] | 0; + } else + n2 = k[s2 >> 2] | 0; + e2 = p2 + 12 | 0; + d2 = (s2 | 0) == (d2 | 0); + if ((n2 | 0) == (k[((c2 & 1) == 0 ? G2 : k[J2 >> 2] | 0) >> 2] | 0)) { + if (d2) { + x = 0; + ta(k[(k[p2 >> 2] | 0) + 40 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[e2 >> 2] = s2 + 4; + w2 = i2[V2 >> 0] | 0; + n2 = o2; + q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[G2 >> 2] | 0) >>> 0 > 1 ? V2 : q2; + break c; + } + if (d2) { + x = 0; + n2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + n2 = k[s2 >> 2] | 0; + if ((n2 | 0) != (k[((i2[U2 >> 0] & 1) == 0 ? H2 : k[I2 >> 2] | 0) >> 2] | 0)) { + R2 = 107; + break b; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[c2 >> 2] = d2 + 4; + i2[g2 >> 0] = 1; + w2 = i2[U2 >> 0] | 0; + n2 = o2; + q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[H2 >> 2] | 0) >>> 0 > 1 ? U2 : q2; + } + break; + } + case 2: { + if (!(y2 >>> 0 < 2 | (q2 | 0) != 0) ? !(z2 | (y2 | 0) == 2 & (i2[E2 >> 0] | 0) != 0) : 0) { + n2 = o2; + q2 = 0; + break c; + } + e2 = i2[X2 >> 0] | 0; + d2 = k[A2 >> 2] | 0; + c2 = (e2 & 1) == 0 ? B2 : d2; + n2 = c2; + d: + do + if ((y2 | 0) != 0 ? (l[P2 + (y2 + -1) >> 0] | 0) < 2 : 0) { + v2 = (e2 & 1) == 0; + e: + do + if ((c2 | 0) != ((v2 ? B2 : d2) + ((v2 ? (e2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0)) { + e2 = c2; + while (1) { + x = 0; + c2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 8192, k[e2 >> 2] | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + R2 = 23; + break b; + } + if (!c2) + break; + e2 = e2 + 4 | 0; + n2 = e2; + c2 = i2[X2 >> 0] | 0; + d2 = k[A2 >> 2] | 0; + v2 = (c2 & 1) == 0; + if ((e2 | 0) == ((v2 ? B2 : d2) + ((v2 ? (c2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0)) { + e2 = c2; + break e; + } + } + e2 = i2[X2 >> 0] | 0; + d2 = k[A2 >> 2] | 0; + } + while (0); + s2 = (e2 & 1) == 0 ? B2 : d2; + c2 = s2; + t2 = n2 - c2 >> 2; + u2 = i2[W2 >> 0] | 0; + p2 = (u2 & 1) == 0; + u2 = p2 ? (u2 & 255) >>> 1 : k[C2 >> 2] | 0; + if (u2 >>> 0 >= t2 >>> 0) { + p2 = p2 ? C2 : k[D2 >> 2] | 0; + v2 = p2 + (u2 << 2) | 0; + if (!t2) + c2 = n2; + else { + p2 = p2 + (u2 - t2 << 2) | 0; + while (1) { + if ((k[p2 >> 2] | 0) != (k[s2 >> 2] | 0)) + break d; + p2 = p2 + 4 | 0; + if ((p2 | 0) == (v2 | 0)) { + c2 = n2; + break; + } else + s2 = s2 + 4 | 0; + } + } + } + } else + c2 = n2; + while (0); + n2 = (e2 & 1) == 0; + n2 = (n2 ? B2 : d2) + ((n2 ? (e2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0; + f: + do + if ((c2 | 0) != (n2 | 0)) { + p2 = w2; + e2 = w2; + n2 = c2; + while (1) { + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 22; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + do + if (e2) { + c2 = k[e2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 22; + break b; + } + } else + c2 = k[c2 >> 2] | 0; + if ((c2 | 0) != -1) + if (d2 ^ (p2 | 0) == 0) { + c2 = p2; + s2 = p2; + break; + } else + break f; + else { + k[b2 >> 2] = 0; + c2 = 0; + R2 = 136; + break; + } + } else { + c2 = p2; + R2 = 136; + } + while (0); + if ((R2 | 0) == 136) { + R2 = 0; + if (d2) + break f; + else + s2 = 0; + } + d2 = k[a2 >> 2] | 0; + e2 = k[d2 + 12 >> 2] | 0; + if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 22; + break b; + } + } else + d2 = k[e2 >> 2] | 0; + if ((d2 | 0) != (k[n2 >> 2] | 0)) + break f; + d2 = k[a2 >> 2] | 0; + e2 = d2 + 12 | 0; + p2 = k[e2 >> 2] | 0; + if ((p2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 22; + break b; + } + } else + k[e2 >> 2] = p2 + 4; + n2 = n2 + 4 | 0; + d2 = i2[X2 >> 0] | 0; + w2 = (d2 & 1) == 0; + d2 = (w2 ? B2 : k[A2 >> 2] | 0) + ((w2 ? (d2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0; + if ((n2 | 0) == (d2 | 0)) { + n2 = d2; + break; + } else { + p2 = c2; + e2 = s2; + } + } + } + while (0); + if (z2 ? (w2 = i2[X2 >> 0] | 0, v2 = (w2 & 1) == 0, (n2 | 0) != ((v2 ? B2 : k[A2 >> 2] | 0) + ((v2 ? (w2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0)) : 0) { + R2 = 148; + break b; + } else + n2 = o2; + break; + } + case 4: { + u2 = k[Q2 >> 2] | 0; + t2 = w2; + p2 = w2; + n2 = o2; + c2 = 0; + g: + while (1) { + d2 = k[a2 >> 2] | 0; + do + if (d2) { + e2 = k[d2 + 12 >> 2] | 0; + if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + } else + d2 = k[e2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[a2 >> 2] = 0; + e2 = 1; + break; + } else { + e2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + e2 = 1; + while (0); + do + if (p2) { + d2 = k[p2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[p2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) != -1) + if (e2 ^ (t2 | 0) == 0) { + d2 = t2; + s2 = t2; + break; + } else { + o2 = t2; + break g; + } + else { + k[b2 >> 2] = 0; + d2 = 0; + R2 = 162; + break; + } + } else { + d2 = t2; + R2 = 162; + } + while (0); + if ((R2 | 0) == 162) { + R2 = 0; + if (e2) { + o2 = d2; + break; + } else + s2 = 0; + } + e2 = k[a2 >> 2] | 0; + o2 = k[e2 + 12 >> 2] | 0; + if ((o2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + e2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + } else + e2 = k[o2 >> 2] | 0; + x = 0; + o2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 2048, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + if (o2) { + o2 = k[m2 >> 2] | 0; + if ((o2 | 0) == (k[K2 >> 2] | 0)) { + x = 0; + Fa(14, j2 | 0, m2 | 0, K2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + o2 = k[m2 >> 2] | 0; + } + k[m2 >> 2] = o2 + 4; + k[o2 >> 2] = e2; + c2 = c2 + 1 | 0; + } else { + w2 = i2[T2 >> 0] | 0; + if (!((e2 | 0) == (u2 | 0) & ((c2 | 0) != 0 ? (((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[F2 >> 2] | 0) | 0) != 0 : 0))) { + o2 = d2; + break; + } + if ((n2 | 0) == (k[N2 >> 2] | 0)) { + x = 0; + Fa(13, _2 | 0, O2 | 0, N2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + n2 = k[O2 >> 2] | 0; + } + w2 = n2 + 4 | 0; + k[O2 >> 2] = w2; + k[n2 >> 2] = c2; + n2 = w2; + c2 = 0; + } + e2 = k[a2 >> 2] | 0; + o2 = e2 + 12 | 0; + p2 = k[o2 >> 2] | 0; + if ((p2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[e2 >> 2] | 0) + 40 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } else { + t2 = d2; + p2 = s2; + continue; + } + } else { + k[o2 >> 2] = p2 + 4; + t2 = d2; + p2 = s2; + continue; + } + } + if ((c2 | 0) != 0 ? (k[_2 >> 2] | 0) != (n2 | 0) : 0) { + if ((n2 | 0) == (k[N2 >> 2] | 0)) { + x = 0; + Fa(13, _2 | 0, O2 | 0, N2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + n2 = k[O2 >> 2] | 0; + } + w2 = n2 + 4 | 0; + k[O2 >> 2] = w2; + k[n2 >> 2] = c2; + n2 = w2; + } + s2 = k[M2 >> 2] | 0; + if ((s2 | 0) > 0) { + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + do + if (o2) { + c2 = k[o2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + c2 = k[c2 >> 2] | 0; + if ((c2 | 0) != -1) + if (d2) + break; + else { + R2 = 206; + break b; + } + else { + k[b2 >> 2] = 0; + R2 = 200; + break; + } + } else + R2 = 200; + while (0); + if ((R2 | 0) == 200) { + R2 = 0; + if (d2) { + R2 = 206; + break b; + } else + o2 = 0; + } + c2 = k[a2 >> 2] | 0; + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) != (k[L2 >> 2] | 0)) { + R2 = 206; + break b; + } + c2 = k[a2 >> 2] | 0; + d2 = c2 + 12 | 0; + e2 = k[d2 >> 2] | 0; + if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[d2 >> 2] = e2 + 4; + if ((s2 | 0) > 0) { + p2 = o2; + e2 = o2; + t2 = s2; + while (1) { + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + do + if (e2) { + c2 = k[e2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + c2 = k[c2 >> 2] | 0; + if ((c2 | 0) != -1) + if (d2 ^ (p2 | 0) == 0) { + c2 = p2; + s2 = p2; + break; + } else { + R2 = 231; + break b; + } + else { + k[b2 >> 2] = 0; + c2 = 0; + R2 = 224; + break; + } + } else { + c2 = p2; + R2 = 224; + } + while (0); + if ((R2 | 0) == 224) { + R2 = 0; + if (d2) { + R2 = 231; + break b; + } else + s2 = 0; + } + d2 = k[a2 >> 2] | 0; + e2 = k[d2 + 12 >> 2] | 0; + if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + d2 = k[e2 >> 2] | 0; + x = 0; + d2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 2048, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + if (!d2) { + R2 = 231; + break b; + } + if ((k[m2 >> 2] | 0) == (k[K2 >> 2] | 0) ? (x = 0, Fa(14, j2 | 0, m2 | 0, K2 | 0), w2 = x, x = 0, w2 & 1) : 0) { + R2 = 24; + break b; + } + d2 = k[a2 >> 2] | 0; + e2 = k[d2 + 12 >> 2] | 0; + if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + d2 = k[e2 >> 2] | 0; + e2 = k[m2 >> 2] | 0; + k[m2 >> 2] = e2 + 4; + k[e2 >> 2] = d2; + d2 = t2; + t2 = t2 + -1 | 0; + k[M2 >> 2] = t2; + e2 = k[a2 >> 2] | 0; + o2 = e2 + 12 | 0; + p2 = k[o2 >> 2] | 0; + if ((p2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[e2 >> 2] | 0) + 40 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + k[o2 >> 2] = p2 + 4; + if ((d2 | 0) <= 1) + break; + else { + p2 = c2; + e2 = s2; + } + } + } + } + if ((k[m2 >> 2] | 0) == (k[j2 >> 2] | 0)) { + R2 = 242; + break b; + } + break; + } + default: + n2 = o2; + } + while (0); + h: + do + if ((R2 | 0) == 44) + while (1) { + R2 = 0; + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 21; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + do + if (e2) { + c2 = k[e2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 21; + break b; + } + } else + c2 = k[c2 >> 2] | 0; + if ((c2 | 0) != -1) + if (d2 ^ (n2 | 0) == 0) { + p2 = n2; + e2 = n2; + break; + } else { + n2 = o2; + break h; + } + else { + k[b2 >> 2] = 0; + n2 = 0; + R2 = 57; + break; + } + } else + R2 = 57; + while (0); + if ((R2 | 0) == 57) { + R2 = 0; + if (d2) { + n2 = o2; + break h; + } else { + p2 = n2; + e2 = 0; + } + } + n2 = k[a2 >> 2] | 0; + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 21; + break b; + } + } else + n2 = k[c2 >> 2] | 0; + x = 0; + n2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 8192, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 21; + break b; + } + if (!n2) { + n2 = o2; + break h; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 21; + break b; + } + } else { + k[c2 >> 2] = d2 + 4; + n2 = k[d2 >> 2] | 0; + } + x = 0; + ra(92, W2 | 0, n2 | 0); + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 21; + break b; + } else { + n2 = p2; + R2 = 44; + } + } + while (0); + y2 = y2 + 1 | 0; + if (y2 >>> 0 >= 4) { + s2 = n2; + R2 = 244; + break; + } else + o2 = n2; + } + i: + switch (R2 | 0) { + case 21: { + c2 = Wa() | 0; + break a; + } + case 22: { + c2 = Wa() | 0; + break a; + } + case 23: { + c2 = Wa() | 0; + break a; + } + case 24: { + c2 = Wa() | 0; + break a; + } + case 25: { + c2 = Wa() | 0; + break a; + } + case 26: { + c2 = Wa() | 0; + break a; + } + case 42: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 107: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 148: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 206: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 231: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 242: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 244: { + j: + do + if (q2) { + o2 = q2 + 4 | 0; + p2 = q2 + 8 | 0; + e2 = 1; + k: + while (1) { + n2 = i2[q2 >> 0] | 0; + if (!(n2 & 1)) + n2 = (n2 & 255) >>> 1; + else + n2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= n2 >>> 0) + break j; + n2 = k[a2 >> 2] | 0; + do + if (n2) { + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + R2 = 20; + break k; + } + } else + n2 = k[c2 >> 2] | 0; + if ((n2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + n2 = k[b2 >> 2] | 0; + do + if (n2) { + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + R2 = 20; + break k; + } + } else + n2 = k[c2 >> 2] | 0; + if ((n2 | 0) != -1) + if (d2) + break; + else { + R2 = 271; + break k; + } + else { + k[b2 >> 2] = 0; + R2 = 263; + break; + } + } else + R2 = 263; + while (0); + if ((R2 | 0) == 263 ? (R2 = 0, d2) : 0) { + R2 = 271; + break; + } + n2 = k[a2 >> 2] | 0; + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + R2 = 20; + break; + } + } else + n2 = k[c2 >> 2] | 0; + if (!(i2[q2 >> 0] & 1)) + c2 = o2; + else + c2 = k[p2 >> 2] | 0; + if ((n2 | 0) != (k[c2 + (e2 << 2) >> 2] | 0)) { + R2 = 271; + break; + } + n2 = e2 + 1 | 0; + c2 = k[a2 >> 2] | 0; + d2 = c2 + 12 | 0; + e2 = k[d2 >> 2] | 0; + if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + R2 = 20; + break; + } else { + e2 = n2; + continue; + } + } else { + k[d2 >> 2] = e2 + 4; + e2 = n2; + continue; + } + } + if ((R2 | 0) == 20) { + c2 = Wa() | 0; + break a; + } else if ((R2 | 0) == 271) { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break i; + } + } + while (0); + n2 = k[_2 >> 2] | 0; + if ((n2 | 0) != (s2 | 0) ? (k[S2 >> 2] = 0, cs(T2, n2, s2, S2), (k[S2 >> 2] | 0) != 0) : 0) { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + } else + c2 = 1; + break; + } + } + en(W2); + en(U2); + en(V2); + en(X2); + Sm(T2); + n2 = k[_2 >> 2] | 0; + k[_2 >> 2] = 0; + if ((n2 | 0) != 0 ? (x = 0, qa(k[Z2 >> 2] | 0, n2 | 0), _2 = x, x = 0, _2 & 1) : 0) { + _2 = Wa(0) | 0; + oc(_2); + } + r = Y2; + return c2 | 0; + } + while (0); + en(W2); + en(U2); + en(V2); + en(X2); + Sm(T2); + n2 = k[_2 >> 2] | 0; + k[_2 >> 2] = 0; + if ((n2 | 0) != 0 ? (x = 0, qa(k[Z2 >> 2] | 0, n2 | 0), _2 = x, x = 0, _2 & 1) : 0) { + _2 = Wa(0) | 0; + oc(_2); + } + fb(c2 | 0); + return 0; + } + function hs(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + v2 = r; + r = r + 432 | 0; + h2 = v2 + 424 | 0; + a2 = v2 + 24 | 0; + y2 = v2 + 16 | 0; + q2 = v2 + 8 | 0; + n2 = v2 + 4 | 0; + o2 = v2 + 428 | 0; + j2 = v2; + k[y2 >> 2] = a2; + A2 = y2 + 4 | 0; + k[A2 >> 2] = 189; + l2 = a2 + 400 | 0; + x = 0; + u2 = ta(68, e2 | 0) | 0; + m2 = x; + x = 0; + if (!(m2 & 1)) { + k[n2 >> 2] = u2; + x = 0; + m2 = Aa(37, n2 | 0, 44212) | 0; + a2 = x; + x = 0; + a: + do + if (!(a2 & 1) ? (i2[o2 >> 0] = 0, s2 = k[c2 >> 2] | 0, k[j2 >> 2] = s2, p2 = k[e2 + 4 >> 2] | 0, t2 = s2, x = 0, k[h2 >> 2] = k[j2 >> 2], p2 = ua(2, b2 | 0, h2 | 0, d2 | 0, n2 | 0, p2 | 0, f2 | 0, o2 | 0, m2 | 0, y2 | 0, q2 | 0, l2 | 0) | 0, e2 = x, x = 0, !(e2 & 1)) : 0) { + if (p2) { + if (!(i2[g2 >> 0] & 1)) + i2[g2 >> 0] = 0; + else + k[k[g2 + 8 >> 2] >> 2] = 0; + k[g2 + 4 >> 2] = 0; + if (i2[o2 >> 0] | 0) { + x = 0; + a2 = Aa(k[(k[m2 >> 2] | 0) + 44 >> 2] | 0, m2 | 0, 45) | 0; + e2 = x; + x = 0; + if (e2 & 1) + break; + x = 0; + ra(92, g2 | 0, a2 | 0); + e2 = x; + x = 0; + if (e2 & 1) + break; + } + x = 0; + j2 = Aa(k[(k[m2 >> 2] | 0) + 44 >> 2] | 0, m2 | 0, 48) | 0; + e2 = x; + x = 0; + if (e2 & 1) + break; + a2 = k[y2 >> 2] | 0; + l2 = k[q2 >> 2] | 0; + h2 = l2 + -4 | 0; + b: + do + if (a2 >>> 0 < h2 >>> 0) + do { + if ((k[a2 >> 2] | 0) != (j2 | 0)) + break b; + a2 = a2 + 4 | 0; + } while (a2 >>> 0 < h2 >>> 0); + while (0); + x = 0; + va(33, g2 | 0, a2 | 0, l2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) + break; + } + a2 = k[b2 >> 2] | 0; + do + if (a2) { + h2 = k[a2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) + break a; + } else + a2 = k[h2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + h2 = 1; + break; + } else { + h2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + h2 = 1; + while (0); + do + if (s2) { + a2 = k[t2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[t2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[s2 >> 2] | 0) + 36 >> 2] | 0, t2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break a; + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (h2) + break; + else { + z2 = 32; + break; + } + else { + k[c2 >> 2] = 0; + z2 = 30; + break; + } + } else + z2 = 30; + while (0); + if ((z2 | 0) == 30 ? h2 : 0) + z2 = 32; + if ((z2 | 0) == 32) + k[f2 >> 2] = k[f2 >> 2] | 2; + h2 = k[b2 >> 2] | 0; + zm(u2) | 0; + a2 = k[y2 >> 2] | 0; + k[y2 >> 2] = 0; + if ((a2 | 0) != 0 ? (x = 0, qa(k[A2 >> 2] | 0, a2 | 0), A2 = x, x = 0, A2 & 1) : 0) { + A2 = Wa(0) | 0; + oc(A2); + } + r = v2; + return h2 | 0; + } + while (0); + h2 = Wa() | 0; + zm(u2) | 0; + a2 = k[y2 >> 2] | 0; + k[y2 >> 2] = 0; + if (!a2) + w2 = h2; + else + z2 = 38; + } else { + h2 = Wa() | 0; + k[y2 >> 2] = 0; + z2 = 38; + } + if ((z2 | 0) == 38) { + x = 0; + qa(k[A2 >> 2] | 0, a2 | 0); + A2 = x; + x = 0; + if (A2 & 1) { + A2 = Wa(0) | 0; + oc(A2); + } else + w2 = h2; + } + fb(w2 | 0); + return 0; + } + function is(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0; + z2 = r; + r = r + 112 | 0; + m2 = z2 + 100 | 0; + n2 = z2 + 88 | 0; + o2 = z2 + 76 | 0; + p2 = z2 + 64 | 0; + q2 = z2 + 52 | 0; + s2 = z2 + 48 | 0; + t2 = z2 + 36 | 0; + u2 = z2 + 24 | 0; + v2 = z2 + 12 | 0; + w2 = z2; + do + if (a2) { + a2 = Ss(b2, 43956) | 0; + Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](m2, a2); + w2 = k[m2 >> 2] | 0; + i2[c2 >> 0] = w2; + i2[c2 + 1 >> 0] = w2 >> 8; + i2[c2 + 2 >> 0] = w2 >> 16; + i2[c2 + 3 >> 0] = w2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](n2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[j2 >> 2] = k[n2 >> 2]; + k[j2 + 4 >> 2] = k[n2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[n2 + 8 >> 2]; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + en(n2); + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](o2, a2); + if (!(i2[h2 >> 0] & 1)) + i2[h2 >> 0] = 0; + else + k[k[h2 + 8 >> 2] >> 2] = 0; + k[h2 + 4 >> 2] = 0; + x = 0; + ra(93, h2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[h2 >> 2] = k[o2 >> 2]; + k[h2 + 4 >> 2] = k[o2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[o2 + 8 >> 2]; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + en(o2); + h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + k[d2 >> 2] = h2; + h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + k[e2 >> 2] = h2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](p2, a2); + if (!(i2[f2 >> 0] & 1)) { + i2[f2 + 1 >> 0] = 0; + i2[f2 >> 0] = 0; + } else { + i2[k[f2 + 8 >> 2] >> 0] = 0; + k[f2 + 4 >> 2] = 0; + } + x = 0; + ra(91, f2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } + ; + k[f2 >> 2] = k[p2 >> 2]; + k[f2 + 4 >> 2] = k[p2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[p2 + 8 >> 2]; + k[p2 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 + 8 >> 2] = 0; + Sm(p2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](q2, a2); + if (!(i2[g2 >> 0] & 1)) + i2[g2 >> 0] = 0; + else + k[k[g2 + 8 >> 2] >> 2] = 0; + k[g2 + 4 >> 2] = 0; + x = 0; + ra(93, g2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else { + k[g2 >> 2] = k[q2 >> 2]; + k[g2 + 4 >> 2] = k[q2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[q2 + 8 >> 2]; + k[q2 >> 2] = 0; + k[q2 + 4 >> 2] = 0; + k[q2 + 8 >> 2] = 0; + en(q2); + y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } else { + a2 = Ss(b2, 43892) | 0; + Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](s2, a2); + s2 = k[s2 >> 2] | 0; + i2[c2 >> 0] = s2; + i2[c2 + 1 >> 0] = s2 >> 8; + i2[c2 + 2 >> 0] = s2 >> 16; + i2[c2 + 3 >> 0] = s2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](t2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[j2 >> 2] = k[t2 >> 2]; + k[j2 + 4 >> 2] = k[t2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[t2 + 8 >> 2]; + k[t2 >> 2] = 0; + k[t2 + 4 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + en(t2); + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](u2, a2); + if (!(i2[h2 >> 0] & 1)) + i2[h2 >> 0] = 0; + else + k[k[h2 + 8 >> 2] >> 2] = 0; + k[h2 + 4 >> 2] = 0; + x = 0; + ra(93, h2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[h2 >> 2] = k[u2 >> 2]; + k[h2 + 4 >> 2] = k[u2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[u2 + 8 >> 2]; + k[u2 >> 2] = 0; + k[u2 + 4 >> 2] = 0; + k[u2 + 8 >> 2] = 0; + en(u2); + h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + k[d2 >> 2] = h2; + h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + k[e2 >> 2] = h2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](v2, a2); + if (!(i2[f2 >> 0] & 1)) { + i2[f2 + 1 >> 0] = 0; + i2[f2 >> 0] = 0; + } else { + i2[k[f2 + 8 >> 2] >> 0] = 0; + k[f2 + 4 >> 2] = 0; + } + x = 0; + ra(91, f2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } + ; + k[f2 >> 2] = k[v2 >> 2]; + k[f2 + 4 >> 2] = k[v2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[v2 + 8 >> 2]; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + Sm(v2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](w2, a2); + if (!(i2[g2 >> 0] & 1)) + i2[g2 >> 0] = 0; + else + k[k[g2 + 8 >> 2] >> 2] = 0; + k[g2 + 4 >> 2] = 0; + x = 0; + ra(93, g2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else { + k[g2 >> 2] = k[w2 >> 2]; + k[g2 + 4 >> 2] = k[w2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[w2 + 8 >> 2]; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + en(w2); + y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } + while (0); + k[l2 >> 2] = y2; + r = z2; + return; + } + function js(a2) { + a2 = a2 | 0; + return; + } + function ks(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function ls(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = +f2; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + D2 = r; + r = r + 384 | 0; + u2 = D2 + 8 | 0; + g2 = D2; + j2 = D2 + 284 | 0; + l2 = D2 + 72 | 0; + h2 = D2 + 184 | 0; + F2 = D2 + 68 | 0; + A2 = D2 + 80 | 0; + w2 = D2 + 77 | 0; + B2 = D2 + 76 | 0; + G2 = D2 + 56 | 0; + I2 = D2 + 44 | 0; + H2 = D2 + 32 | 0; + m2 = D2 + 28 | 0; + t2 = D2 + 84 | 0; + z2 = D2 + 24 | 0; + y2 = D2 + 20 | 0; + v2 = D2 + 16 | 0; + k[l2 >> 2] = j2; + p[u2 >> 3] = f2; + j2 = il(j2, 100, 59018, u2) | 0; + do + if (j2 >>> 0 > 99) { + x = 0; + a2 = Da(3) | 0; + C2 = x; + x = 0; + if (!(C2 & 1) ? (x = 0, p[g2 >> 3] = f2, q2 = Ea(17, l2 | 0, a2 | 0, 59018, g2 | 0) | 0, C2 = x, x = 0, !(C2 & 1)) : 0) { + a2 = k[l2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + C2 = x; + x = 0; + if (C2 & 1) { + a2 = 0; + g2 = 0; + C2 = 7; + break; + } + a2 = k[l2 >> 2] | 0; + } + h2 = Pl(q2) | 0; + g2 = h2; + if (!h2) { + x = 0; + Ga(6); + C2 = x; + x = 0; + if (C2 & 1) + C2 = 7; + else { + s2 = 0; + C2 = 10; + } + } else { + s2 = h2; + C2 = 10; + } + } else { + a2 = 0; + g2 = 0; + C2 = 7; + } + } else { + g2 = 0; + a2 = 0; + s2 = h2; + q2 = j2; + C2 = 10; + } + while (0); + if ((C2 | 0) == 10) { + x = 0; + h2 = ta(68, d2 | 0) | 0; + o2 = x; + x = 0; + if (o2 & 1) + C2 = 7; + else { + k[F2 >> 2] = h2; + x = 0; + o2 = Aa(37, F2 | 0, 44220) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (n2 = k[l2 >> 2] | 0, x = 0, Ea(k[(k[o2 >> 2] | 0) + 32 >> 2] | 0, o2 | 0, n2 | 0, n2 + q2 | 0, s2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + if (!q2) + n2 = 0; + else + n2 = (i2[k[l2 >> 2] >> 0] | 0) == 45; + k[G2 >> 2] = 0; + k[G2 + 4 >> 2] = 0; + k[G2 + 8 >> 2] = 0; + k[I2 >> 2] = 0; + k[I2 + 4 >> 2] = 0; + k[I2 + 8 >> 2] = 0; + k[H2 >> 2] = 0; + k[H2 + 4 >> 2] = 0; + k[H2 + 8 >> 2] = 0; + x = 0; + za(3, c2 | 0, n2 | 0, F2 | 0, A2 | 0, w2 | 0, B2 | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); + c2 = x; + x = 0; + if (!(c2 & 1)) { + m2 = k[m2 >> 2] | 0; + if ((q2 | 0) > (m2 | 0)) { + c2 = i2[H2 >> 0] | 0; + j2 = i2[I2 >> 0] | 0; + j2 = (q2 - m2 << 1 | 1) + m2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; + } else { + c2 = i2[H2 >> 0] | 0; + j2 = i2[I2 >> 0] | 0; + j2 = m2 + 2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; + } + if (j2 >>> 0 > 100) { + j2 = Pl(j2) | 0; + l2 = j2; + if (!j2) { + x = 0; + Ga(6); + t2 = x; + x = 0; + if (!(t2 & 1)) { + j2 = 0; + C2 = 26; + } + } else + C2 = 26; + } else { + l2 = 0; + j2 = t2; + C2 = 26; + } + if ((C2 | 0) == 26) { + x = 0; + wa(1, j2 | 0, z2 | 0, y2 | 0, k[d2 + 4 >> 2] | 0, s2 | 0, s2 + q2 | 0, o2 | 0, n2 | 0, A2 | 0, i2[w2 >> 0] | 0, i2[B2 >> 0] | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); + B2 = x; + x = 0; + if (!(B2 & 1) ? (k[v2 >> 2] = k[b2 >> 2], b2 = k[z2 >> 2] | 0, E2 = k[y2 >> 2] | 0, x = 0, k[u2 >> 2] = k[v2 >> 2], E2 = sa(39, u2 | 0, j2 | 0, b2 | 0, E2 | 0, d2 | 0, e2 | 0) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) { + if (l2) { + Ql(l2); + h2 = k[F2 >> 2] | 0; + } + Sm(H2); + Sm(I2); + Sm(G2); + zm(h2) | 0; + if (g2) + Ql(g2); + if (a2) + Ql(a2); + r = D2; + return E2 | 0; + } + } + j2 = Wa() | 0; + if (l2) { + Ql(l2); + h2 = k[F2 >> 2] | 0; + } + } else + j2 = Wa() | 0; + Sm(H2); + Sm(I2); + Sm(G2); + } else + j2 = Wa() | 0; + zm(h2) | 0; + } + } + if ((C2 | 0) == 7) + j2 = Wa() | 0; + if (g2) + Ql(g2); + if (a2) + Ql(a2); + fb(j2 | 0); + return 0; + } + function ms(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + D2 = r; + r = r + 112 | 0; + o2 = D2 + 108 | 0; + p2 = D2 + 96 | 0; + t2 = D2 + 92 | 0; + u2 = D2 + 80 | 0; + v2 = D2 + 68 | 0; + w2 = D2 + 56 | 0; + y2 = D2 + 52 | 0; + z2 = D2 + 40 | 0; + A2 = D2 + 36 | 0; + B2 = D2 + 24 | 0; + q2 = D2 + 12 | 0; + s2 = D2; + do + if (a2) { + a2 = Ss(c2, 43828) | 0; + c2 = k[a2 >> 2] | 0; + do + if (b2) { + Mb[k[c2 + 44 >> 2] & 127](o2, a2); + b2 = k[o2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](p2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[p2 >> 2]; + k[j2 + 4 >> 2] = k[p2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[p2 + 8 >> 2]; + k[p2 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 + 8 >> 2] = 0; + Sm(p2); + n2 = a2; + break; + } + } else { + Mb[k[c2 + 40 >> 2] & 127](t2, a2); + b2 = k[t2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](u2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[u2 >> 2]; + k[j2 + 4 >> 2] = k[u2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[u2 + 8 >> 2]; + k[u2 >> 2] = 0; + k[u2 + 4 >> 2] = 0; + k[u2 + 8 >> 2] = 0; + Sm(u2); + n2 = a2; + break; + } + } + while (0); + j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + i2[e2 >> 0] = j2; + j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + i2[f2 >> 0] = j2; + Mb[k[(k[n2 >> 2] | 0) + 20 >> 2] & 127](v2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } + ; + k[g2 >> 2] = k[v2 >> 2]; + k[g2 + 4 >> 2] = k[v2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[v2 + 8 >> 2]; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + Sm(v2); + Mb[k[(k[n2 >> 2] | 0) + 24 >> 2] & 127](w2, a2); + if (!(i2[h2 >> 0] & 1)) { + i2[h2 + 1 >> 0] = 0; + i2[h2 >> 0] = 0; + } else { + i2[k[h2 + 8 >> 2] >> 0] = 0; + k[h2 + 4 >> 2] = 0; + } + x = 0; + ra(91, h2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } else { + k[h2 >> 2] = k[w2 >> 2]; + k[h2 + 4 >> 2] = k[w2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[w2 + 8 >> 2]; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + Sm(w2); + C2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } else { + a2 = Ss(c2, 43764) | 0; + c2 = k[a2 >> 2] | 0; + do + if (b2) { + Mb[k[c2 + 44 >> 2] & 127](y2, a2); + b2 = k[y2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](z2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[z2 >> 2]; + k[j2 + 4 >> 2] = k[z2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[z2 + 8 >> 2]; + k[z2 >> 2] = 0; + k[z2 + 4 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + Sm(z2); + m2 = a2; + break; + } + } else { + Mb[k[c2 + 40 >> 2] & 127](A2, a2); + b2 = k[A2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](B2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[B2 >> 2]; + k[j2 + 4 >> 2] = k[B2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[B2 + 8 >> 2]; + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + Sm(B2); + m2 = a2; + break; + } + } + while (0); + j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + i2[e2 >> 0] = j2; + j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + i2[f2 >> 0] = j2; + Mb[k[(k[m2 >> 2] | 0) + 20 >> 2] & 127](q2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } + ; + k[g2 >> 2] = k[q2 >> 2]; + k[g2 + 4 >> 2] = k[q2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[q2 + 8 >> 2]; + k[q2 >> 2] = 0; + k[q2 + 4 >> 2] = 0; + k[q2 + 8 >> 2] = 0; + Sm(q2); + Mb[k[(k[m2 >> 2] | 0) + 24 >> 2] & 127](s2, a2); + if (!(i2[h2 >> 0] & 1)) { + i2[h2 + 1 >> 0] = 0; + i2[h2 >> 0] = 0; + } else { + i2[k[h2 + 8 >> 2] >> 0] = 0; + k[h2 + 4 >> 2] = 0; + } + x = 0; + ra(91, h2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } else { + k[h2 >> 2] = k[s2 >> 2]; + k[h2 + 4 >> 2] = k[s2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[s2 + 8 >> 2]; + k[s2 >> 2] = 0; + k[s2 + 4 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + Sm(s2); + C2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } + while (0); + k[l2 >> 2] = C2; + r = D2; + return; + } + function ns(a2, b2, c2, d2, e2, f2, g2, h2, l2, m2, n2, o2, p2, q2, r2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + p2 = p2 | 0; + q2 = q2 | 0; + r2 = r2 | 0; + var s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0; + k[c2 >> 2] = a2; + N2 = q2 + 4 | 0; + O2 = q2 + 8 | 0; + P2 = q2 + 1 | 0; + H2 = p2 + 4 | 0; + I2 = (d2 & 512 | 0) == 0; + J2 = p2 + 8 | 0; + K2 = p2 + 1 | 0; + L2 = g2 + 8 | 0; + M2 = (r2 | 0) > 0; + A2 = o2 + 4 | 0; + B2 = o2 + 8 | 0; + C2 = o2 + 1 | 0; + D2 = r2 + 1 | 0; + F2 = -2 - r2 - ((r2 | 0) < 0 ? ~r2 : -1) | 0; + G2 = (r2 | 0) > 0; + z2 = 0; + do { + switch (i2[l2 + z2 >> 0] | 0) { + case 0: { + k[b2 >> 2] = k[c2 >> 2]; + break; + } + case 1: { + k[b2 >> 2] = k[c2 >> 2]; + x2 = Vb[k[(k[g2 >> 2] | 0) + 28 >> 2] & 63](g2, 32) | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = x2; + break; + } + case 3: { + y2 = i2[q2 >> 0] | 0; + s2 = (y2 & 1) == 0; + if ((s2 ? (y2 & 255) >>> 1 : k[N2 >> 2] | 0) | 0) { + x2 = i2[(s2 ? P2 : k[O2 >> 2] | 0) >> 0] | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = x2; + } + break; + } + case 2: { + u2 = i2[p2 >> 0] | 0; + s2 = (u2 & 1) == 0; + u2 = s2 ? (u2 & 255) >>> 1 : k[H2 >> 2] | 0; + if (!(I2 | (u2 | 0) == 0)) { + t2 = s2 ? K2 : k[J2 >> 2] | 0; + v2 = t2 + u2 | 0; + s2 = k[c2 >> 2] | 0; + if (u2) + do { + i2[s2 >> 0] = i2[t2 >> 0] | 0; + t2 = t2 + 1 | 0; + s2 = s2 + 1 | 0; + } while ((t2 | 0) != (v2 | 0)); + k[c2 >> 2] = s2; + } + break; + } + case 4: { + s2 = k[c2 >> 2] | 0; + e2 = h2 ? e2 + 1 | 0 : e2; + w2 = e2; + v2 = k[L2 >> 2] | 0; + a: + do + if (e2 >>> 0 < f2 >>> 0) { + t2 = e2; + do { + u2 = i2[t2 >> 0] | 0; + if (u2 << 24 >> 24 <= -1) + break a; + if (!(j[v2 + (u2 << 24 >> 24 << 1) >> 1] & 2048)) + break a; + t2 = t2 + 1 | 0; + } while (t2 >>> 0 < f2 >>> 0); + } else + t2 = e2; + while (0); + u2 = t2; + if (M2) { + x2 = -2 - u2 - ~(u2 >>> 0 > w2 >>> 0 ? w2 : u2) | 0; + x2 = F2 >>> 0 > x2 >>> 0 ? F2 : x2; + if (t2 >>> 0 > e2 >>> 0 & G2) { + u2 = t2; + w2 = r2; + while (1) { + u2 = u2 + -1 | 0; + y2 = i2[u2 >> 0] | 0; + v2 = k[c2 >> 2] | 0; + k[c2 >> 2] = v2 + 1; + i2[v2 >> 0] = y2; + v2 = (w2 | 0) > 1; + if (!(u2 >>> 0 > e2 >>> 0 & v2)) + break; + else + w2 = w2 + -1 | 0; + } + } else + v2 = G2; + y2 = D2 + x2 | 0; + u2 = t2 + (x2 + 1) | 0; + if (v2) + w2 = Vb[k[(k[g2 >> 2] | 0) + 28 >> 2] & 63](g2, 48) | 0; + else + w2 = 0; + t2 = k[c2 >> 2] | 0; + k[c2 >> 2] = t2 + 1; + if ((y2 | 0) > 0) { + v2 = y2; + while (1) { + i2[t2 >> 0] = w2; + t2 = k[c2 >> 2] | 0; + k[c2 >> 2] = t2 + 1; + if ((v2 | 0) > 1) + v2 = v2 + -1 | 0; + else + break; + } + } + i2[t2 >> 0] = m2; + } else + u2 = t2; + if ((u2 | 0) != (e2 | 0)) { + y2 = i2[o2 >> 0] | 0; + t2 = (y2 & 1) == 0; + if (!((t2 ? (y2 & 255) >>> 1 : k[A2 >> 2] | 0) | 0)) + t2 = -1; + else + t2 = i2[(t2 ? C2 : k[B2 >> 2] | 0) >> 0] | 0; + if ((u2 | 0) != (e2 | 0)) { + v2 = 0; + w2 = 0; + while (1) { + if ((w2 | 0) == (t2 | 0)) { + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = n2; + v2 = v2 + 1 | 0; + y2 = i2[o2 >> 0] | 0; + t2 = (y2 & 1) == 0; + if (v2 >>> 0 < (t2 ? (y2 & 255) >>> 1 : k[A2 >> 2] | 0) >>> 0) { + t2 = i2[(t2 ? C2 : k[B2 >> 2] | 0) + v2 >> 0] | 0; + t2 = t2 << 24 >> 24 == 127 ? -1 : t2 << 24 >> 24; + w2 = 0; + } else { + t2 = w2; + w2 = 0; + } + } + u2 = u2 + -1 | 0; + x2 = i2[u2 >> 0] | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = x2; + if ((u2 | 0) == (e2 | 0)) + break; + else + w2 = w2 + 1 | 0; + } + } + } else { + x2 = Vb[k[(k[g2 >> 2] | 0) + 28 >> 2] & 63](g2, 48) | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = x2; + } + t2 = k[c2 >> 2] | 0; + if ((s2 | 0) != (t2 | 0) ? (E2 = t2 + -1 | 0, s2 >>> 0 < E2 >>> 0) : 0) { + t2 = E2; + do { + y2 = i2[s2 >> 0] | 0; + i2[s2 >> 0] = i2[t2 >> 0] | 0; + i2[t2 >> 0] = y2; + s2 = s2 + 1 | 0; + t2 = t2 + -1 | 0; + } while (s2 >>> 0 < t2 >>> 0); + } + break; + } + default: { + } + } + z2 = z2 + 1 | 0; + } while ((z2 | 0) != 4); + t2 = i2[q2 >> 0] | 0; + e2 = (t2 & 1) == 0; + t2 = e2 ? (t2 & 255) >>> 1 : k[N2 >> 2] | 0; + if (t2 >>> 0 > 1) { + s2 = e2 ? P2 : k[O2 >> 2] | 0; + u2 = s2 + t2 | 0; + e2 = k[c2 >> 2] | 0; + if ((t2 | 0) != 1) { + s2 = s2 + 1 | 0; + do { + i2[e2 >> 0] = i2[s2 >> 0] | 0; + e2 = e2 + 1 | 0; + s2 = s2 + 1 | 0; + } while ((s2 | 0) != (u2 | 0)); + } + k[c2 >> 2] = e2; + } + switch (d2 & 176 | 0) { + case 32: { + k[b2 >> 2] = k[c2 >> 2]; + break; + } + case 16: + break; + default: + k[b2 >> 2] = a2; + } + return; + } + function os(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + z2 = r; + r = r + 176 | 0; + p2 = z2 + 56 | 0; + B2 = z2 + 52 | 0; + w2 = z2 + 64 | 0; + t2 = z2 + 61 | 0; + y2 = z2 + 60 | 0; + C2 = z2 + 40 | 0; + E2 = z2 + 28 | 0; + D2 = z2 + 16 | 0; + l2 = z2 + 12 | 0; + o2 = z2 + 68 | 0; + v2 = z2 + 8 | 0; + u2 = z2 + 4 | 0; + q2 = z2; + a2 = tn(d2) | 0; + k[B2 >> 2] = a2; + x = 0; + s2 = Aa(37, B2 | 0, 44220) | 0; + n2 = x; + x = 0; + do + if (n2 & 1) + F2 = 13; + else { + m2 = i2[f2 >> 0] | 0; + g2 = (m2 & 1) == 0; + n2 = f2 + 4 | 0; + if (!((g2 ? (m2 & 255) >>> 1 : k[n2 >> 2] | 0) | 0)) + m2 = 0; + else { + g2 = i2[(g2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0) >> 0] | 0; + x = 0; + h2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, 45) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 13; + break; + } + m2 = g2 << 24 >> 24 == h2 << 24 >> 24; + } + k[C2 >> 2] = 0; + k[C2 + 4 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + k[D2 >> 2] = 0; + k[D2 + 4 >> 2] = 0; + k[D2 + 8 >> 2] = 0; + x = 0; + za(3, c2 | 0, m2 | 0, B2 | 0, w2 | 0, t2 | 0, y2 | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); + j2 = x; + x = 0; + if (!(j2 & 1)) { + j2 = i2[f2 >> 0] | 0; + c2 = k[n2 >> 2] | 0; + g2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : c2; + l2 = k[l2 >> 2] | 0; + if ((g2 | 0) > (l2 | 0)) { + G2 = i2[D2 >> 0] | 0; + h2 = i2[E2 >> 0] | 0; + g2 = (g2 - l2 << 1 | 1) + l2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; + } else { + G2 = i2[D2 >> 0] | 0; + g2 = i2[E2 >> 0] | 0; + g2 = l2 + 2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; + } + if (g2 >>> 0 > 100) { + g2 = Pl(g2) | 0; + h2 = g2; + if (!g2) { + x = 0; + Ga(6); + G2 = x; + x = 0; + if (!(G2 & 1)) { + j2 = i2[f2 >> 0] | 0; + c2 = k[n2 >> 2] | 0; + g2 = 0; + F2 = 17; + } + } else + F2 = 17; + } else { + h2 = 0; + g2 = o2; + F2 = 17; + } + if ((F2 | 0) == 17) { + G2 = (j2 & 1) == 0; + f2 = G2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0; + x = 0; + wa(1, g2 | 0, v2 | 0, u2 | 0, k[d2 + 4 >> 2] | 0, f2 | 0, f2 + (G2 ? (j2 & 255) >>> 1 : c2) | 0, s2 | 0, m2 | 0, w2 | 0, i2[t2 >> 0] | 0, i2[y2 >> 0] | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); + G2 = x; + x = 0; + if (!(G2 & 1) ? (k[q2 >> 2] = k[b2 >> 2], G2 = k[v2 >> 2] | 0, A2 = k[u2 >> 2] | 0, x = 0, k[p2 >> 2] = k[q2 >> 2], A2 = sa(39, p2 | 0, g2 | 0, G2 | 0, A2 | 0, d2 | 0, e2 | 0) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) { + if (h2) { + Ql(h2); + a2 = k[B2 >> 2] | 0; + } + Sm(D2); + Sm(E2); + Sm(C2); + zm(a2) | 0; + r = z2; + return A2 | 0; + } + } + g2 = Wa() | 0; + if (h2) { + Ql(h2); + a2 = k[B2 >> 2] | 0; + } + } else + g2 = Wa() | 0; + Sm(D2); + Sm(E2); + Sm(C2); + } + while (0); + if ((F2 | 0) == 13) + g2 = Wa() | 0; + zm(a2) | 0; + fb(g2 | 0); + return 0; + } + function ps(a2) { + a2 = a2 | 0; + return; + } + function qs(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function rs(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = +f2; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + D2 = r; + r = r + 992 | 0; + u2 = D2 + 8 | 0; + g2 = D2; + j2 = D2 + 888 | 0; + l2 = D2 + 880 | 0; + h2 = D2 + 480 | 0; + F2 = D2 + 76 | 0; + A2 = D2 + 884 | 0; + w2 = D2 + 72 | 0; + B2 = D2 + 68 | 0; + G2 = D2 + 56 | 0; + I2 = D2 + 44 | 0; + H2 = D2 + 32 | 0; + m2 = D2 + 28 | 0; + t2 = D2 + 80 | 0; + z2 = D2 + 24 | 0; + y2 = D2 + 20 | 0; + v2 = D2 + 16 | 0; + k[l2 >> 2] = j2; + p[u2 >> 3] = f2; + j2 = il(j2, 100, 59018, u2) | 0; + do + if (j2 >>> 0 > 99) { + x = 0; + a2 = Da(3) | 0; + C2 = x; + x = 0; + if (!(C2 & 1) ? (x = 0, p[g2 >> 3] = f2, q2 = Ea(17, l2 | 0, a2 | 0, 59018, g2 | 0) | 0, C2 = x, x = 0, !(C2 & 1)) : 0) { + a2 = k[l2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + C2 = x; + x = 0; + if (C2 & 1) { + a2 = 0; + g2 = 0; + C2 = 7; + break; + } + a2 = k[l2 >> 2] | 0; + } + h2 = Pl(q2 << 2) | 0; + g2 = h2; + if (!h2) { + x = 0; + Ga(6); + C2 = x; + x = 0; + if (C2 & 1) + C2 = 7; + else { + s2 = 0; + C2 = 10; + } + } else { + s2 = h2; + C2 = 10; + } + } else { + a2 = 0; + g2 = 0; + C2 = 7; + } + } else { + g2 = 0; + a2 = 0; + s2 = h2; + q2 = j2; + C2 = 10; + } + while (0); + if ((C2 | 0) == 10) { + x = 0; + h2 = ta(68, d2 | 0) | 0; + o2 = x; + x = 0; + if (o2 & 1) + C2 = 7; + else { + k[F2 >> 2] = h2; + x = 0; + o2 = Aa(37, F2 | 0, 44212) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (n2 = k[l2 >> 2] | 0, x = 0, Ea(k[(k[o2 >> 2] | 0) + 48 >> 2] | 0, o2 | 0, n2 | 0, n2 + q2 | 0, s2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + if (!q2) + n2 = 0; + else + n2 = (i2[k[l2 >> 2] >> 0] | 0) == 45; + k[G2 >> 2] = 0; + k[G2 + 4 >> 2] = 0; + k[G2 + 8 >> 2] = 0; + k[I2 >> 2] = 0; + k[I2 + 4 >> 2] = 0; + k[I2 + 8 >> 2] = 0; + k[H2 >> 2] = 0; + k[H2 + 4 >> 2] = 0; + k[H2 + 8 >> 2] = 0; + x = 0; + za(4, c2 | 0, n2 | 0, F2 | 0, A2 | 0, w2 | 0, B2 | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); + c2 = x; + x = 0; + if (!(c2 & 1)) { + m2 = k[m2 >> 2] | 0; + if ((q2 | 0) > (m2 | 0)) { + c2 = i2[H2 >> 0] | 0; + j2 = i2[I2 >> 0] | 0; + j2 = (q2 - m2 << 1 | 1) + m2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; + } else { + c2 = i2[H2 >> 0] | 0; + j2 = i2[I2 >> 0] | 0; + j2 = m2 + 2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; + } + if (j2 >>> 0 > 100) { + j2 = Pl(j2 << 2) | 0; + l2 = j2; + if (!j2) { + x = 0; + Ga(6); + t2 = x; + x = 0; + if (!(t2 & 1)) { + j2 = 0; + C2 = 26; + } + } else + C2 = 26; + } else { + l2 = 0; + j2 = t2; + C2 = 26; + } + if ((C2 | 0) == 26) { + x = 0; + wa(2, j2 | 0, z2 | 0, y2 | 0, k[d2 + 4 >> 2] | 0, s2 | 0, s2 + (q2 << 2) | 0, o2 | 0, n2 | 0, A2 | 0, k[w2 >> 2] | 0, k[B2 >> 2] | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); + B2 = x; + x = 0; + if (!(B2 & 1) ? (k[v2 >> 2] = k[b2 >> 2], b2 = k[z2 >> 2] | 0, E2 = k[y2 >> 2] | 0, x = 0, k[u2 >> 2] = k[v2 >> 2], E2 = sa(40, u2 | 0, j2 | 0, b2 | 0, E2 | 0, d2 | 0, e2 | 0) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) { + if (l2) { + Ql(l2); + h2 = k[F2 >> 2] | 0; + } + en(H2); + en(I2); + Sm(G2); + zm(h2) | 0; + if (g2) + Ql(g2); + if (a2) + Ql(a2); + r = D2; + return E2 | 0; + } + } + j2 = Wa() | 0; + if (l2) { + Ql(l2); + h2 = k[F2 >> 2] | 0; + } + } else + j2 = Wa() | 0; + en(H2); + en(I2); + Sm(G2); + } else + j2 = Wa() | 0; + zm(h2) | 0; + } + } + if ((C2 | 0) == 7) + j2 = Wa() | 0; + if (g2) + Ql(g2); + if (a2) + Ql(a2); + fb(j2 | 0); + return 0; + } + function ss(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0; + B2 = r; + r = r + 112 | 0; + m2 = B2 + 108 | 0; + n2 = B2 + 96 | 0; + q2 = B2 + 92 | 0; + s2 = B2 + 80 | 0; + t2 = B2 + 68 | 0; + u2 = B2 + 56 | 0; + v2 = B2 + 52 | 0; + w2 = B2 + 40 | 0; + y2 = B2 + 36 | 0; + z2 = B2 + 24 | 0; + o2 = B2 + 12 | 0; + p2 = B2; + do + if (a2) { + a2 = Ss(c2, 43956) | 0; + c2 = k[a2 >> 2] | 0; + do + if (b2) { + Mb[k[c2 + 44 >> 2] & 127](m2, a2); + b2 = k[m2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](n2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[n2 >> 2]; + k[j2 + 4 >> 2] = k[n2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[n2 + 8 >> 2]; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + en(n2); + break; + } + } else { + Mb[k[c2 + 40 >> 2] & 127](q2, a2); + b2 = k[q2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](s2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[s2 >> 2]; + k[j2 + 4 >> 2] = k[s2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[s2 + 8 >> 2]; + k[s2 >> 2] = 0; + k[s2 + 4 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + en(s2); + break; + } + } + while (0); + j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + k[e2 >> 2] = j2; + j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + k[f2 >> 2] = j2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](t2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } + ; + k[g2 >> 2] = k[t2 >> 2]; + k[g2 + 4 >> 2] = k[t2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[t2 + 8 >> 2]; + k[t2 >> 2] = 0; + k[t2 + 4 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + Sm(t2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](u2, a2); + if (!(i2[h2 >> 0] & 1)) + i2[h2 >> 0] = 0; + else + k[k[h2 + 8 >> 2] >> 2] = 0; + k[h2 + 4 >> 2] = 0; + x = 0; + ra(93, h2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } else { + k[h2 >> 2] = k[u2 >> 2]; + k[h2 + 4 >> 2] = k[u2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[u2 + 8 >> 2]; + k[u2 >> 2] = 0; + k[u2 + 4 >> 2] = 0; + k[u2 + 8 >> 2] = 0; + en(u2); + A2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } else { + a2 = Ss(c2, 43892) | 0; + c2 = k[a2 >> 2] | 0; + do + if (b2) { + Mb[k[c2 + 44 >> 2] & 127](v2, a2); + b2 = k[v2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](w2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[w2 >> 2]; + k[j2 + 4 >> 2] = k[w2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[w2 + 8 >> 2]; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + en(w2); + break; + } + } else { + Mb[k[c2 + 40 >> 2] & 127](y2, a2); + b2 = k[y2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](z2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[z2 >> 2]; + k[j2 + 4 >> 2] = k[z2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[z2 + 8 >> 2]; + k[z2 >> 2] = 0; + k[z2 + 4 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + en(z2); + break; + } + } + while (0); + j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + k[e2 >> 2] = j2; + j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + k[f2 >> 2] = j2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](o2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } + ; + k[g2 >> 2] = k[o2 >> 2]; + k[g2 + 4 >> 2] = k[o2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[o2 + 8 >> 2]; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + Sm(o2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](p2, a2); + if (!(i2[h2 >> 0] & 1)) + i2[h2 >> 0] = 0; + else + k[k[h2 + 8 >> 2] >> 2] = 0; + k[h2 + 4 >> 2] = 0; + x = 0; + ra(93, h2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } else { + k[h2 >> 2] = k[p2 >> 2]; + k[h2 + 4 >> 2] = k[p2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[p2 + 8 >> 2]; + k[p2 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 + 8 >> 2] = 0; + en(p2); + A2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } + while (0); + k[l2 >> 2] = A2; + r = B2; + return; + } + function ts(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2, m2, n2, o2, p2, q2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + p2 = p2 | 0; + q2 = q2 | 0; + var r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0; + k[c2 >> 2] = a2; + J2 = p2 + 4 | 0; + K2 = p2 + 8 | 0; + C2 = o2 + 4 | 0; + D2 = (d2 & 512 | 0) == 0; + E2 = o2 + 8 | 0; + F2 = (q2 | 0) > 0; + G2 = n2 + 4 | 0; + H2 = n2 + 8 | 0; + I2 = n2 + 1 | 0; + A2 = (q2 | 0) > 0; + z2 = 0; + do { + switch (i2[j2 + z2 >> 0] | 0) { + case 0: { + k[b2 >> 2] = k[c2 >> 2]; + break; + } + case 1: { + k[b2 >> 2] = k[c2 >> 2]; + x2 = Vb[k[(k[g2 >> 2] | 0) + 44 >> 2] & 63](g2, 32) | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 4; + k[y2 >> 2] = x2; + break; + } + case 3: { + y2 = i2[p2 >> 0] | 0; + r2 = (y2 & 1) == 0; + if ((r2 ? (y2 & 255) >>> 1 : k[J2 >> 2] | 0) | 0) { + x2 = k[(r2 ? J2 : k[K2 >> 2] | 0) >> 2] | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 4; + k[y2 >> 2] = x2; + } + break; + } + case 2: { + v2 = i2[o2 >> 0] | 0; + r2 = (v2 & 1) == 0; + v2 = r2 ? (v2 & 255) >>> 1 : k[C2 >> 2] | 0; + if (!(D2 | (v2 | 0) == 0)) { + r2 = r2 ? C2 : k[E2 >> 2] | 0; + t2 = r2 + (v2 << 2) | 0; + u2 = k[c2 >> 2] | 0; + if (v2) { + s2 = u2; + while (1) { + k[s2 >> 2] = k[r2 >> 2]; + r2 = r2 + 4 | 0; + if ((r2 | 0) == (t2 | 0)) + break; + else + s2 = s2 + 4 | 0; + } + } + k[c2 >> 2] = u2 + (v2 << 2); + } + break; + } + case 4: { + r2 = k[c2 >> 2] | 0; + e2 = h2 ? e2 + 4 | 0 : e2; + a: + do + if (e2 >>> 0 < f2 >>> 0) { + s2 = e2; + do { + if (!(Qb[k[(k[g2 >> 2] | 0) + 12 >> 2] & 63](g2, 2048, k[s2 >> 2] | 0) | 0)) + break a; + s2 = s2 + 4 | 0; + } while (s2 >>> 0 < f2 >>> 0); + } else + s2 = e2; + while (0); + if (F2) { + if (s2 >>> 0 > e2 >>> 0 & A2) { + v2 = k[c2 >> 2] | 0; + u2 = q2; + while (1) { + s2 = s2 + -4 | 0; + t2 = v2 + 4 | 0; + k[v2 >> 2] = k[s2 >> 2]; + w2 = u2 + -1 | 0; + u2 = (u2 | 0) > 1; + if (s2 >>> 0 > e2 >>> 0 & u2) { + v2 = t2; + u2 = w2; + } else { + v2 = w2; + break; + } + } + k[c2 >> 2] = t2; + t2 = v2; + } else { + u2 = A2; + t2 = q2; + } + if (u2) + w2 = Vb[k[(k[g2 >> 2] | 0) + 44 >> 2] & 63](g2, 48) | 0; + else + w2 = 0; + x2 = k[c2 >> 2] | 0; + u2 = t2 + ((t2 | 0) < 0 ? ~t2 : -1) | 0; + if ((t2 | 0) > 0) { + v2 = x2; + while (1) { + k[v2 >> 2] = w2; + if ((t2 | 0) > 1) { + v2 = v2 + 4 | 0; + t2 = t2 + -1 | 0; + } else + break; + } + } + k[c2 >> 2] = x2 + (u2 + 2 << 2); + k[x2 + (u2 + 1 << 2) >> 2] = l2; + } + if ((s2 | 0) == (e2 | 0)) { + x2 = Vb[k[(k[g2 >> 2] | 0) + 44 >> 2] & 63](g2, 48) | 0; + y2 = k[c2 >> 2] | 0; + s2 = y2 + 4 | 0; + k[c2 >> 2] = s2; + k[y2 >> 2] = x2; + } else { + x2 = i2[n2 >> 0] | 0; + t2 = (x2 & 1) == 0; + y2 = k[G2 >> 2] | 0; + if (!((t2 ? (x2 & 255) >>> 1 : y2) | 0)) + t2 = -1; + else + t2 = i2[(t2 ? I2 : k[H2 >> 2] | 0) >> 0] | 0; + if ((s2 | 0) != (e2 | 0)) { + w2 = 0; + x2 = 0; + while (1) { + u2 = k[c2 >> 2] | 0; + if ((x2 | 0) == (t2 | 0)) { + v2 = u2 + 4 | 0; + k[c2 >> 2] = v2; + k[u2 >> 2] = m2; + w2 = w2 + 1 | 0; + u2 = i2[n2 >> 0] | 0; + t2 = (u2 & 1) == 0; + if (w2 >>> 0 < (t2 ? (u2 & 255) >>> 1 : y2) >>> 0) { + t2 = i2[(t2 ? I2 : k[H2 >> 2] | 0) + w2 >> 0] | 0; + u2 = v2; + t2 = t2 << 24 >> 24 == 127 ? -1 : t2 << 24 >> 24; + v2 = 0; + } else { + u2 = v2; + t2 = x2; + v2 = 0; + } + } else + v2 = x2; + s2 = s2 + -4 | 0; + x2 = k[s2 >> 2] | 0; + k[c2 >> 2] = u2 + 4; + k[u2 >> 2] = x2; + if ((s2 | 0) == (e2 | 0)) + break; + else + x2 = v2 + 1 | 0; + } + } + s2 = k[c2 >> 2] | 0; + } + if ((r2 | 0) != (s2 | 0) ? (B2 = s2 + -4 | 0, r2 >>> 0 < B2 >>> 0) : 0) { + s2 = B2; + do { + y2 = k[r2 >> 2] | 0; + k[r2 >> 2] = k[s2 >> 2]; + k[s2 >> 2] = y2; + r2 = r2 + 4 | 0; + s2 = s2 + -4 | 0; + } while (r2 >>> 0 < s2 >>> 0); + } + break; + } + default: { + } + } + z2 = z2 + 1 | 0; + } while ((z2 | 0) != 4); + r2 = i2[p2 >> 0] | 0; + e2 = (r2 & 1) == 0; + r2 = e2 ? (r2 & 255) >>> 1 : k[J2 >> 2] | 0; + if (r2 >>> 0 > 1) { + s2 = e2 ? J2 : k[K2 >> 2] | 0; + e2 = s2 + 4 | 0; + s2 = s2 + (r2 << 2) | 0; + t2 = k[c2 >> 2] | 0; + u2 = s2 - e2 | 0; + if ((r2 | 0) != 1) { + r2 = t2; + while (1) { + k[r2 >> 2] = k[e2 >> 2]; + e2 = e2 + 4 | 0; + if ((e2 | 0) == (s2 | 0)) + break; + else + r2 = r2 + 4 | 0; + } + } + k[c2 >> 2] = t2 + (u2 >>> 2 << 2); + } + switch (d2 & 176 | 0) { + case 32: { + k[b2 >> 2] = k[c2 >> 2]; + break; + } + case 16: + break; + default: + k[b2 >> 2] = a2; + } + return; + } + function us(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + z2 = r; + r = r + 480 | 0; + o2 = z2 + 468 | 0; + B2 = z2 + 464 | 0; + w2 = z2 + 472 | 0; + t2 = z2 + 56 | 0; + y2 = z2 + 52 | 0; + C2 = z2 + 40 | 0; + E2 = z2 + 28 | 0; + D2 = z2 + 16 | 0; + l2 = z2 + 12 | 0; + n2 = z2 + 64 | 0; + v2 = z2 + 8 | 0; + u2 = z2 + 4 | 0; + p2 = z2; + a2 = tn(d2) | 0; + k[B2 >> 2] = a2; + x = 0; + q2 = Aa(37, B2 | 0, 44212) | 0; + s2 = x; + x = 0; + do + if (s2 & 1) + F2 = 13; + else { + m2 = i2[f2 >> 0] | 0; + g2 = (m2 & 1) == 0; + s2 = f2 + 4 | 0; + if (!((g2 ? (m2 & 255) >>> 1 : k[s2 >> 2] | 0) | 0)) + m2 = 0; + else { + g2 = k[(g2 ? s2 : k[f2 + 8 >> 2] | 0) >> 2] | 0; + x = 0; + h2 = Aa(k[(k[q2 >> 2] | 0) + 44 >> 2] | 0, q2 | 0, 45) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 13; + break; + } + m2 = (g2 | 0) == (h2 | 0); + } + k[C2 >> 2] = 0; + k[C2 + 4 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + k[D2 >> 2] = 0; + k[D2 + 4 >> 2] = 0; + k[D2 + 8 >> 2] = 0; + x = 0; + za(4, c2 | 0, m2 | 0, B2 | 0, w2 | 0, t2 | 0, y2 | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); + j2 = x; + x = 0; + if (!(j2 & 1)) { + j2 = i2[f2 >> 0] | 0; + c2 = k[s2 >> 2] | 0; + g2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : c2; + l2 = k[l2 >> 2] | 0; + if ((g2 | 0) > (l2 | 0)) { + G2 = i2[D2 >> 0] | 0; + h2 = i2[E2 >> 0] | 0; + g2 = (g2 - l2 << 1 | 1) + l2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; + } else { + G2 = i2[D2 >> 0] | 0; + g2 = i2[E2 >> 0] | 0; + g2 = l2 + 2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; + } + if (g2 >>> 0 > 100) { + g2 = Pl(g2 << 2) | 0; + h2 = g2; + if (!g2) { + x = 0; + Ga(6); + G2 = x; + x = 0; + if (!(G2 & 1)) { + j2 = i2[f2 >> 0] | 0; + c2 = k[s2 >> 2] | 0; + g2 = 0; + F2 = 17; + } + } else + F2 = 17; + } else { + h2 = 0; + g2 = n2; + F2 = 17; + } + if ((F2 | 0) == 17) { + G2 = (j2 & 1) == 0; + f2 = G2 ? s2 : k[f2 + 8 >> 2] | 0; + x = 0; + wa(2, g2 | 0, v2 | 0, u2 | 0, k[d2 + 4 >> 2] | 0, f2 | 0, f2 + ((G2 ? (j2 & 255) >>> 1 : c2) << 2) | 0, q2 | 0, m2 | 0, w2 | 0, k[t2 >> 2] | 0, k[y2 >> 2] | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); + G2 = x; + x = 0; + if (!(G2 & 1) ? (k[p2 >> 2] = k[b2 >> 2], G2 = k[v2 >> 2] | 0, A2 = k[u2 >> 2] | 0, x = 0, k[o2 >> 2] = k[p2 >> 2], A2 = sa(40, o2 | 0, g2 | 0, G2 | 0, A2 | 0, d2 | 0, e2 | 0) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) { + if (h2) { + Ql(h2); + a2 = k[B2 >> 2] | 0; + } + en(D2); + en(E2); + Sm(C2); + zm(a2) | 0; + r = z2; + return A2 | 0; + } + } + g2 = Wa() | 0; + if (h2) { + Ql(h2); + a2 = k[B2 >> 2] | 0; + } + } else + g2 = Wa() | 0; + en(D2); + en(E2); + Sm(C2); + } + while (0); + if ((F2 | 0) == 13) + g2 = Wa() | 0; + zm(a2) | 0; + fb(g2 | 0); + return 0; + } + function vs(a2) { + a2 = a2 | 0; + return; + } + function ws(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function xs(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + a2 = vk((i2[b2 >> 0] & 1) == 0 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0, 1) | 0; + return a2 >>> ((a2 | 0) != (-1 | 0) & 1) | 0; + } + function ys(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0; + h2 = r; + r = r + 16 | 0; + j2 = h2; + k[j2 >> 2] = 0; + k[j2 + 4 >> 2] = 0; + k[j2 + 8 >> 2] = 0; + g2 = i2[f2 >> 0] | 0; + l2 = (g2 & 1) == 0; + b2 = l2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0; + g2 = l2 ? (g2 & 255) >>> 1 : k[f2 + 4 >> 2] | 0; + f2 = b2 + g2 | 0; + a: + do + if ((g2 | 0) > 0) { + while (1) { + x = 0; + ra(67, j2 | 0, i2[b2 >> 0] | 0); + l2 = x; + x = 0; + if (l2 & 1) + break; + b2 = b2 + 1 | 0; + if (b2 >>> 0 >= f2 >>> 0) { + g2 = 4; + break a; + } + } + b2 = Wa() | 0; + g2 = 7; + } else + g2 = 4; + while (0); + b: + do + if ((g2 | 0) == 4) { + x = 0; + b2 = Ea(19, ((c2 | 0) == -1 ? -1 : c2 << 1) | 0, d2 | 0, e2 | 0, ((i2[j2 >> 0] & 1) == 0 ? j2 + 1 | 0 : k[j2 + 8 >> 2] | 0) | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + b2 = Wa() | 0; + g2 = 7; + break; + } + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + l2 = xl(b2) | 0; + f2 = b2 + l2 | 0; + c: + do + if ((l2 | 0) > 0) { + while (1) { + x = 0; + ra(67, a2 | 0, i2[b2 >> 0] | 0); + l2 = x; + x = 0; + if (l2 & 1) + break; + b2 = b2 + 1 | 0; + if (b2 >>> 0 >= f2 >>> 0) + break c; + } + b2 = Wa() | 0; + Sm(a2); + break b; + } + while (0); + Sm(j2); + r = h2; + return; + } + while (0); + Sm(j2); + fb(b2 | 0); + } + function zs(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function As(a2) { + a2 = a2 | 0; + return; + } + function Bs(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Cs(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + a2 = vk((i2[b2 >> 0] & 1) == 0 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0, 1) | 0; + return a2 >>> ((a2 | 0) != (-1 | 0) & 1) | 0; + } + function Ds(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + v2 = r; + r = r + 224 | 0; + n2 = v2 + 184 | 0; + m2 = v2 + 192 | 0; + l2 = v2 + 180 | 0; + o2 = v2 + 176 | 0; + t2 = v2 + 168 | 0; + s2 = v2 + 40 | 0; + q2 = v2 + 32 | 0; + u2 = v2 + 28 | 0; + w2 = v2 + 16 | 0; + j2 = v2 + 8 | 0; + p2 = v2; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + k[j2 + 4 >> 2] = 0; + k[j2 >> 2] = 44696; + h2 = i2[f2 >> 0] | 0; + y2 = (h2 & 1) == 0; + g2 = f2 + 4 | 0; + b2 = y2 ? g2 : k[f2 + 8 >> 2] | 0; + f2 = y2 ? (h2 & 255) >>> 1 : k[g2 >> 2] | 0; + g2 = b2 + (f2 << 2) | 0; + h2 = m2 + 32 | 0; + a: + do + if ((f2 | 0) > 0) { + b: + while (1) { + k[o2 >> 2] = b2; + x = 0; + f2 = Ha(k[(k[j2 >> 2] | 0) + 12 >> 2] | 0, j2 | 0, n2 | 0, b2 | 0, g2 | 0, o2 | 0, m2 | 0, h2 | 0, l2 | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + f2 = 12; + break; + } + if ((f2 | 0) == 2 ? 1 : (k[o2 >> 2] | 0) == (b2 | 0)) { + f2 = 5; + break; + } + if (m2 >>> 0 < (k[l2 >> 2] | 0) >>> 0) { + b2 = m2; + do { + x = 0; + ra(67, w2 | 0, i2[b2 >> 0] | 0); + y2 = x; + x = 0; + if (y2 & 1) { + f2 = 11; + break b; + } + b2 = b2 + 1 | 0; + } while (b2 >>> 0 < (k[l2 >> 2] | 0) >>> 0); + } + b2 = k[o2 >> 2] | 0; + if (!((f2 | 0) != 2 & b2 >>> 0 < g2 >>> 0)) { + f2 = 9; + break a; + } + } + if ((f2 | 0) == 5) { + x = 0; + qa(190, 58955); + x = 0; + b2 = Wa() | 0; + } else if ((f2 | 0) == 11) + b2 = Wa() | 0; + else if ((f2 | 0) == 12) + b2 = Wa() | 0; + } else + f2 = 9; + while (0); + c: + do + if ((f2 | 0) == 9) { + x = 0; + b2 = Ea(19, ((c2 | 0) == -1 ? -1 : c2 << 1) | 0, d2 | 0, e2 | 0, ((i2[w2 >> 0] & 1) == 0 ? w2 + 1 | 0 : k[w2 + 8 >> 2] | 0) | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + b2 = Wa() | 0; + break; + } + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 >> 2] = 44744; + y2 = xl(b2) | 0; + g2 = b2 + y2 | 0; + h2 = g2; + j2 = s2 + 128 | 0; + d: + do + if ((y2 | 0) > 0) { + e: + while (1) { + k[u2 >> 2] = b2; + x = 0; + f2 = Ha(k[(k[p2 >> 2] | 0) + 16 >> 2] | 0, p2 | 0, t2 | 0, b2 | 0, ((h2 - b2 | 0) > 32 ? b2 + 32 | 0 : g2) | 0, u2 | 0, s2 | 0, j2 | 0, q2 | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + f2 = 24; + break; + } + if ((f2 | 0) == 2 ? 1 : (k[u2 >> 2] | 0) == (b2 | 0)) { + f2 = 18; + break; + } + if (s2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + b2 = s2; + do { + x = 0; + ra(92, a2 | 0, k[b2 >> 2] | 0); + y2 = x; + x = 0; + if (y2 & 1) { + f2 = 23; + break e; + } + b2 = b2 + 4 | 0; + } while (b2 >>> 0 < (k[q2 >> 2] | 0) >>> 0); + } + b2 = k[u2 >> 2] | 0; + if (!((f2 | 0) != 2 & b2 >>> 0 < g2 >>> 0)) + break d; + } + if ((f2 | 0) == 18) { + x = 0; + qa(190, 58955); + x = 0; + b2 = Wa() | 0; + } else if ((f2 | 0) == 23) + b2 = Wa() | 0; + else if ((f2 | 0) == 24) + b2 = Wa() | 0; + en(a2); + break c; + } + while (0); + Sm(w2); + r = v2; + return; + } + while (0); + Sm(w2); + fb(b2 | 0); + } + function Es(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function Fs(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + k[a2 + 4 >> 2] = b2 + -1; + k[a2 >> 2] = 44196; + f2 = a2 + 8 | 0; + x = 0; + ra(94, f2 | 0, 28); + e2 = x; + x = 0; + if (e2 & 1) + b2 = Wa() | 0; + else { + e2 = a2 + 144 | 0; + x = 0; + Fa(5, e2 | 0, 58885, 1); + d2 = x; + x = 0; + if (d2 & 1) + b2 = Wa() | 0; + else { + c2 = k[f2 >> 2] | 0; + d2 = a2 + 12 | 0; + b2 = k[d2 >> 2] | 0; + if ((b2 | 0) != (c2 | 0)) { + do + b2 = b2 + -4 | 0; + while ((b2 | 0) != (c2 | 0)); + k[d2 >> 2] = b2; + } + k[495] = 0; + k[494] = 43124; + x = 0; + ra(95, a2 | 0, 1976); + d2 = x; + x = 0; + do + if (((((((((((((!(d2 & 1) ? (k[497] = 0, k[496] = 43164, x = 0, ra(96, a2 | 0, 1984), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[499] = 0, k[498] = 44236, k[500] = 0, i2[2004] = 0, d2 = Ys() | 0, k[500] = d2, x = 0, ra(97, a2 | 0, 1992), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[503] = 0, k[502] = 44484, x = 0, ra(98, a2 | 0, 2008), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[505] = 0, k[504] = 44552, x = 0, ra(99, a2 | 0, 2016), d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ra(100, 2024, 1), d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ra(101, a2 | 0, 2024), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[511] = 0, k[510] = 44600, x = 0, ra(102, a2 | 0, 2040), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[513] = 0, k[512] = 44648, x = 0, ra(103, a2 | 0, 2048), d2 = x, x = 0, !(d2 & 1)) : 0) ? (bu(2056, 1), x = 0, ra(104, a2 | 0, 2056), d2 = x, x = 0, !(d2 & 1)) : 0) ? (cu(2080, 1), x = 0, ra(105, a2 | 0, 2080), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[529] = 0, k[528] = 43204, x = 0, ra(106, a2 | 0, 2112), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[531] = 0, k[530] = 43276, x = 0, ra(107, a2 | 0, 2120), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[533] = 0, k[532] = 43348, x = 0, ra(108, a2 | 0, 2128), d2 = x, x = 0, !(d2 & 1)) : 0) { + k[535] = 0; + k[534] = 43408; + x = 0; + ra(109, a2 | 0, 2136); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[537] = 0; + k[536] = 43716; + x = 0; + ra(110, a2 | 0, 2144); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[539] = 0; + k[538] = 43780; + x = 0; + ra(111, a2 | 0, 2152); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[541] = 0; + k[540] = 43844; + x = 0; + ra(112, a2 | 0, 2160); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[543] = 0; + k[542] = 43908; + x = 0; + ra(113, a2 | 0, 2168); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[545] = 0; + k[544] = 43972; + x = 0; + ra(114, a2 | 0, 2176); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[547] = 0; + k[546] = 44008; + x = 0; + ra(115, a2 | 0, 2184); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[549] = 0; + k[548] = 44044; + x = 0; + ra(116, a2 | 0, 2192); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[551] = 0; + k[550] = 44080; + x = 0; + ra(117, a2 | 0, 2200); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[553] = 0; + k[552] = 43468; + k[554] = 43516; + x = 0; + ra(118, a2 | 0, 2208); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[557] = 0; + k[556] = 43560; + k[558] = 43608; + x = 0; + ra(119, a2 | 0, 2224); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[561] = 0; + k[560] = 44464; + x = 0; + b2 = Da(3) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + b2 = Wa() | 0; + break; + } + k[562] = b2; + k[560] = 43652; + x = 0; + ra(120, a2 | 0, 2240); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[565] = 0; + k[564] = 44464; + x = 0; + b2 = Da(3) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + b2 = Wa() | 0; + break; + } + k[566] = b2; + k[564] = 43684; + x = 0; + ra(121, a2 | 0, 2256); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = 42; + break; + } + k[569] = 0; + k[568] = 44116; + x = 0; + ra(122, a2 | 0, 2272); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = 42; + break; + } + k[571] = 0; + k[570] = 44156; + x = 0; + ra(123, a2 | 0, 2280); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = 42; + break; + } + return; + } else + g2 = 42; + while (0); + if ((g2 | 0) == 42) + b2 = Wa() | 0; + Sm(e2); + } + Nv(f2); + } + fb(b2 | 0); + } + function Gs() { + var a2 = 0; + do + if ((i2[2288] | 0) == 0 ? (Qa(2288) | 0) != 0 : 0) { + x = 0; + Da(4) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2288); + fb(a2 | 0); + } else { + k[11246] = 44980; + Ya(2288); + break; + } + } + while (0); + return k[11246] | 0; + } + function Hs(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + ym(b2); + e2 = a2 + 8 | 0; + d2 = k[e2 >> 2] | 0; + do + if ((k[a2 + 12 >> 2] | 0) - d2 >> 2 >>> 0 <= c2 >>> 0) { + x = 0; + ra(124, e2 | 0, c2 + 1 | 0); + a2 = x; + x = 0; + if (!(a2 & 1)) { + d2 = k[e2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + if (b2) + zm(b2) | 0; + fb(d2 | 0); + } + while (0); + a2 = k[d2 + (c2 << 2) >> 2] | 0; + if (a2) { + zm(a2) | 0; + d2 = k[e2 >> 2] | 0; + } + k[d2 + (c2 << 2) >> 2] = b2; + return; + } + function Is(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + k[a2 >> 2] = 44196; + d2 = a2 + 8 | 0; + e2 = a2 + 12 | 0; + b2 = k[d2 >> 2] | 0; + if ((k[e2 >> 2] | 0) != (b2 | 0)) { + c2 = 0; + do { + b2 = k[b2 + (c2 << 2) >> 2] | 0; + if (b2) + zm(b2) | 0; + c2 = c2 + 1 | 0; + b2 = k[d2 >> 2] | 0; + } while (c2 >>> 0 < (k[e2 >> 2] | 0) - b2 >> 2 >>> 0); + } + Sm(a2 + 144 | 0); + Nv(d2); + return; + } + function Js(a2) { + a2 = a2 | 0; + Is(a2); + mj(a2); + return; + } + function Ks(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (Pv(a2, b2) | 0) + return k[(k[a2 + 8 >> 2] | 0) + (b2 << 2) >> 2] | 0; + else { + a2 = Va(4) | 0; + Aj(a2); + ub(a2 | 0, 640, 82); + } + return 0; + } + function Ls() { + Fs(2296, 1); + k[11245] = 2296; + return 44980; + } + function Ms() { + var a2 = 0; + a2 = Gs() | 0; + a2 = k[a2 >> 2] | 0; + k[11247] = a2; + ym(a2); + return 44988; + } + function Ns() { + var a2 = 0; + do + if ((i2[2456] | 0) == 0 ? (Qa(2456) | 0) != 0 : 0) { + x = 0; + Da(5) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2456); + fb(a2 | 0); + } else { + k[11248] = 44988; + Ya(2456); + break; + } + } + while (0); + return k[11248] | 0; + } + function Os(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + x = 0; + b2 = Da(6) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } else { + c2 = k[b2 >> 2] | 0; + k[a2 >> 2] = c2; + ym(c2); + return; + } + } + function Ps(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + b2 = k[b2 >> 2] | 0; + k[a2 >> 2] = b2; + ym(b2); + return; + } + function Qs(a2) { + a2 = a2 | 0; + zm(k[a2 >> 2] | 0) | 0; + return; + } + function Rs(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = r; + r = r + 16 | 0; + b2 = c2; + if ((k[a2 >> 2] | 0) != -1) { + k[b2 >> 2] = a2; + k[b2 + 4 >> 2] = 191; + k[b2 + 8 >> 2] = 0; + Om(a2, b2, 192); + } + r = c2; + return (k[a2 + 4 >> 2] | 0) + -1 | 0; + } + function Ss(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + a2 = k[a2 >> 2] | 0; + return Ks(a2, Rs(b2) | 0) | 0; + } + function Ts(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Us(a2) { + a2 = a2 | 0; + if (a2) + Lb[k[(k[a2 >> 2] | 0) + 4 >> 2] & 255](a2); + return; + } + function Vs(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = k[11052] | 0; + k[11052] = b2 + 1; + k[a2 + 4 >> 2] = b2 + 1; + return; + } + function Ws(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Xs(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if (c2 >>> 0 < 128) { + c2 = (Ys() | 0) + (c2 << 1) | 0; + c2 = (j[c2 >> 1] & b2) << 16 >> 16 != 0; + } else + c2 = 0; + return c2 | 0; + } + function Ys() { + var a2 = 0, b2 = 0; + x = 0; + a2 = Da(7) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else + return k[a2 >> 2] | 0; + return 0; + } + function Zs(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + f2 = (c2 - b2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + e2 = b2; + while (1) { + a2 = k[e2 >> 2] | 0; + if (a2 >>> 0 < 128) { + a2 = (Ys() | 0) + (a2 << 1) | 0; + a2 = m[a2 >> 1] | 0; + } else + a2 = 0; + j[d2 >> 1] = a2; + e2 = e2 + 4 | 0; + if ((e2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 2 | 0; + } + } + return b2 + (f2 << 2) | 0; + } + function _s(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + a: + do + if ((c2 | 0) == (d2 | 0)) + c2 = d2; + else + while (1) { + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 < 128 ? (a2 = (Ys() | 0) + (a2 << 1) | 0, (j[a2 >> 1] & b2) << 16 >> 16 != 0) : 0) + break a; + c2 = c2 + 4 | 0; + if ((c2 | 0) == (d2 | 0)) { + c2 = d2; + break; + } + } + while (0); + return c2 | 0; + } + function $s(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + a: + do + if ((c2 | 0) == (d2 | 0)) + c2 = d2; + else + while (1) { + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 >= 128) + break a; + a2 = (Ys() | 0) + (a2 << 1) | 0; + if (!((j[a2 >> 1] & b2) << 16 >> 16)) + break a; + c2 = c2 + 4 | 0; + if ((c2 | 0) == (d2 | 0)) { + c2 = d2; + break; + } + } + while (0); + return c2 | 0; + } + function at(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (b2 >>> 0 < 128) { + b2 = (bt() | 0) + (b2 << 2) | 0; + b2 = k[b2 >> 2] | 0; + } + return b2 | 0; + } + function bt() { + var a2 = 0, b2 = 0; + x = 0; + a2 = Da(8) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else + return k[a2 >> 2] | 0; + return 0; + } + function ct(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = (c2 - b2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + d2 = b2; + do { + a2 = k[d2 >> 2] | 0; + if (a2 >>> 0 < 128) { + a2 = (bt() | 0) + (a2 << 2) | 0; + a2 = k[a2 >> 2] | 0; + } + k[d2 >> 2] = a2; + d2 = d2 + 4 | 0; + } while ((d2 | 0) != (c2 | 0)); + } + return b2 + (e2 << 2) | 0; + } + function dt(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (b2 >>> 0 < 128) { + b2 = (et() | 0) + (b2 << 2) | 0; + b2 = k[b2 >> 2] | 0; + } + return b2 | 0; + } + function et() { + var a2 = 0, b2 = 0; + x = 0; + a2 = Da(9) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else + return k[a2 >> 2] | 0; + return 0; + } + function ft(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = (c2 - b2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + d2 = b2; + do { + a2 = k[d2 >> 2] | 0; + if (a2 >>> 0 < 128) { + a2 = (et() | 0) + (a2 << 2) | 0; + a2 = k[a2 >> 2] | 0; + } + k[d2 >> 2] = a2; + d2 = d2 + 4 | 0; + } while ((d2 | 0) != (c2 | 0)); + } + return b2 + (e2 << 2) | 0; + } + function gt(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return b2 << 24 >> 24 | 0; + } + function ht(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + if ((b2 | 0) != (c2 | 0)) + while (1) { + k[d2 >> 2] = i2[b2 >> 0]; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 4 | 0; + } + return c2 | 0; + } + function it(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return (b2 >>> 0 < 128 ? b2 & 255 : c2) | 0; + } + function jt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = (c2 - b2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + f2 = b2; + a2 = e2; + while (1) { + e2 = k[f2 >> 2] | 0; + i2[a2 >> 0] = e2 >>> 0 < 128 ? e2 & 255 : d2; + f2 = f2 + 4 | 0; + if ((f2 | 0) == (c2 | 0)) + break; + else + a2 = a2 + 1 | 0; + } + } + return b2 + (g2 << 2) | 0; + } + function kt(a2) { + a2 = a2 | 0; + var b2 = 0; + k[a2 >> 2] = 44236; + b2 = k[a2 + 8 >> 2] | 0; + if ((b2 | 0) != 0 ? (i2[a2 + 12 >> 0] | 0) != 0 : 0) + nj(b2); + return; + } + function lt(a2) { + a2 = a2 | 0; + kt(a2); + mj(a2); + return; + } + function mt(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (b2 << 24 >> 24 > -1) { + b2 = (bt() | 0) + ((b2 & 255) << 2) | 0; + b2 = k[b2 >> 2] & 255; + } + return b2 | 0; + } + function nt(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((b2 | 0) != (c2 | 0)) { + a2 = b2; + do { + b2 = i2[a2 >> 0] | 0; + if (b2 << 24 >> 24 > -1) { + b2 = (bt() | 0) + (b2 << 24 >> 24 << 2) | 0; + b2 = k[b2 >> 2] & 255; + } + i2[a2 >> 0] = b2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (c2 | 0)); + } + return c2 | 0; + } + function ot(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (b2 << 24 >> 24 > -1) { + b2 = (et() | 0) + (b2 << 24 >> 24 << 2) | 0; + b2 = k[b2 >> 2] & 255; + } + return b2 | 0; + } + function pt(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((b2 | 0) != (c2 | 0)) { + a2 = b2; + do { + b2 = i2[a2 >> 0] | 0; + if (b2 << 24 >> 24 > -1) { + b2 = (et() | 0) + (b2 << 24 >> 24 << 2) | 0; + b2 = k[b2 >> 2] & 255; + } + i2[a2 >> 0] = b2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (c2 | 0)); + } + return c2 | 0; + } + function qt(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return b2 | 0; + } + function rt(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + if ((b2 | 0) != (c2 | 0)) + while (1) { + i2[d2 >> 0] = i2[b2 >> 0] | 0; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 1 | 0; + } + return c2 | 0; + } + function st(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return (b2 << 24 >> 24 > -1 ? b2 : c2) | 0; + } + function tt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + if ((b2 | 0) != (c2 | 0)) + while (1) { + a2 = i2[b2 >> 0] | 0; + i2[e2 >> 0] = a2 << 24 >> 24 > -1 ? a2 : d2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + e2 = e2 + 1 | 0; + } + return c2 | 0; + } + function ut(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function vt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + k[e2 >> 2] = c2; + k[h2 >> 2] = f2; + return 3; + } + function wt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + k[e2 >> 2] = c2; + k[h2 >> 2] = f2; + return 3; + } + function xt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + k[e2 >> 2] = c2; + return 3; + } + function yt(a2) { + a2 = a2 | 0; + return 1; + } + function zt(a2) { + a2 = a2 | 0; + return 1; + } + function At(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + a2 = d2 - c2 | 0; + return (a2 >>> 0 < e2 >>> 0 ? a2 : e2) | 0; + } + function Bt(a2) { + a2 = a2 | 0; + return 1; + } + function Ct(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + k[a2 + 4 >> 2] = b2 + -1; + k[a2 >> 2] = 44304; + x = 0; + b2 = Da(3) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa() | 0; + fb(c2 | 0); + } else { + k[a2 + 8 >> 2] = b2; + return; + } + } + function Dt(a2) { + a2 = a2 | 0; + Gu(a2); + mj(a2); + return; + } + function Hl(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0, X2 = 0, Y2 = 0, Z2 = 0, _2 = 0, $2 = 0, aa2 = 0, ba2 = 0, ca2 = 0, da2 = 0, ea2 = 0, fa2 = 0, ga2 = 0; + ga2 = r; + r = r + 624 | 0; + ba2 = ga2 + 24 | 0; + da2 = ga2 + 16 | 0; + ca2 = ga2 + 588 | 0; + Y2 = ga2 + 576 | 0; + aa2 = ga2; + V2 = ga2 + 536 | 0; + fa2 = ga2 + 8 | 0; + ea2 = ga2 + 528 | 0; + L2 = (a2 | 0) != 0; + N2 = V2 + 40 | 0; + U2 = N2; + V2 = V2 + 39 | 0; + W2 = fa2 + 4 | 0; + X2 = Y2 + 12 | 0; + Y2 = Y2 + 11 | 0; + Z2 = ca2; + _2 = X2; + $2 = _2 - Z2 | 0; + O2 = -2 - Z2 | 0; + P2 = _2 + 2 | 0; + Q2 = ba2 + 288 | 0; + R2 = ca2 + 9 | 0; + S2 = R2; + T2 = ca2 + 8 | 0; + f2 = 0; + w2 = b2; + g2 = 0; + b2 = 0; + a: + while (1) { + do + if ((f2 | 0) > -1) + if ((g2 | 0) > (2147483647 - f2 | 0)) { + f2 = mk() | 0; + k[f2 >> 2] = 75; + f2 = -1; + break; + } else { + f2 = g2 + f2 | 0; + break; + } + while (0); + g2 = i2[w2 >> 0] | 0; + if (!(g2 << 24 >> 24)) { + K2 = 245; + break; + } else + h2 = w2; + b: + while (1) { + switch (g2 << 24 >> 24) { + case 37: { + g2 = h2; + K2 = 9; + break b; + } + case 0: { + g2 = h2; + break b; + } + default: { + } + } + J2 = h2 + 1 | 0; + g2 = i2[J2 >> 0] | 0; + h2 = J2; + } + c: + do + if ((K2 | 0) == 9) + while (1) { + K2 = 0; + if ((i2[g2 + 1 >> 0] | 0) != 37) + break c; + h2 = h2 + 1 | 0; + g2 = g2 + 2 | 0; + if ((i2[g2 >> 0] | 0) == 37) + K2 = 9; + else + break; + } + while (0); + y2 = h2 - w2 | 0; + if (L2 ? (k[a2 >> 2] & 32 | 0) == 0 : 0) + fl(w2, y2, a2) | 0; + if ((h2 | 0) != (w2 | 0)) { + w2 = g2; + g2 = y2; + continue; + } + o2 = g2 + 1 | 0; + h2 = i2[o2 >> 0] | 0; + m2 = (h2 << 24 >> 24) + -48 | 0; + if (m2 >>> 0 < 10) { + J2 = (i2[g2 + 2 >> 0] | 0) == 36; + o2 = J2 ? g2 + 3 | 0 : o2; + h2 = i2[o2 >> 0] | 0; + u2 = J2 ? m2 : -1; + b2 = J2 ? 1 : b2; + } else + u2 = -1; + g2 = h2 << 24 >> 24; + d: + do + if ((g2 & -32 | 0) == 32) { + m2 = 0; + while (1) { + if (!(1 << g2 + -32 & 75913)) { + q2 = m2; + g2 = o2; + break d; + } + m2 = 1 << (h2 << 24 >> 24) + -32 | m2; + o2 = o2 + 1 | 0; + h2 = i2[o2 >> 0] | 0; + g2 = h2 << 24 >> 24; + if ((g2 & -32 | 0) != 32) { + q2 = m2; + g2 = o2; + break; + } + } + } else { + q2 = 0; + g2 = o2; + } + while (0); + do + if (h2 << 24 >> 24 == 42) { + m2 = g2 + 1 | 0; + h2 = (i2[m2 >> 0] | 0) + -48 | 0; + if (h2 >>> 0 < 10 ? (i2[g2 + 2 >> 0] | 0) == 36 : 0) { + k[e2 + (h2 << 2) >> 2] = 10; + b2 = 1; + g2 = g2 + 3 | 0; + h2 = k[d2 + ((i2[m2 >> 0] | 0) + -48 << 3) >> 2] | 0; + } else { + if (b2) { + f2 = -1; + break a; + } + if (!L2) { + x2 = q2; + g2 = m2; + b2 = 0; + J2 = 0; + break; + } + b2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + h2 = k[b2 >> 2] | 0; + k[c2 >> 2] = b2 + 4; + b2 = 0; + g2 = m2; + } + if ((h2 | 0) < 0) { + x2 = q2 | 8192; + J2 = 0 - h2 | 0; + } else { + x2 = q2; + J2 = h2; + } + } else { + m2 = (h2 << 24 >> 24) + -48 | 0; + if (m2 >>> 0 < 10) { + h2 = 0; + do { + h2 = (h2 * 10 | 0) + m2 | 0; + g2 = g2 + 1 | 0; + m2 = (i2[g2 >> 0] | 0) + -48 | 0; + } while (m2 >>> 0 < 10); + if ((h2 | 0) < 0) { + f2 = -1; + break a; + } else { + x2 = q2; + J2 = h2; + } + } else { + x2 = q2; + J2 = 0; + } + } + while (0); + e: + do + if ((i2[g2 >> 0] | 0) == 46) { + m2 = g2 + 1 | 0; + h2 = i2[m2 >> 0] | 0; + if (h2 << 24 >> 24 != 42) { + o2 = (h2 << 24 >> 24) + -48 | 0; + if (o2 >>> 0 < 10) { + g2 = m2; + h2 = 0; + } else { + g2 = m2; + o2 = 0; + break; + } + while (1) { + h2 = (h2 * 10 | 0) + o2 | 0; + g2 = g2 + 1 | 0; + o2 = (i2[g2 >> 0] | 0) + -48 | 0; + if (o2 >>> 0 >= 10) { + o2 = h2; + break e; + } + } + } + m2 = g2 + 2 | 0; + h2 = (i2[m2 >> 0] | 0) + -48 | 0; + if (h2 >>> 0 < 10 ? (i2[g2 + 3 >> 0] | 0) == 36 : 0) { + k[e2 + (h2 << 2) >> 2] = 10; + g2 = g2 + 4 | 0; + o2 = k[d2 + ((i2[m2 >> 0] | 0) + -48 << 3) >> 2] | 0; + break; + } + if (b2) { + f2 = -1; + break a; + } + if (L2) { + g2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + o2 = k[g2 >> 2] | 0; + k[c2 >> 2] = g2 + 4; + g2 = m2; + } else { + g2 = m2; + o2 = 0; + } + } else + o2 = -1; + while (0); + s2 = 0; + while (1) { + h2 = (i2[g2 >> 0] | 0) + -65 | 0; + if (h2 >>> 0 > 57) { + f2 = -1; + break a; + } + m2 = g2 + 1 | 0; + h2 = i2[56223 + (s2 * 58 | 0) + h2 >> 0] | 0; + q2 = h2 & 255; + if ((q2 + -1 | 0) >>> 0 < 8) { + g2 = m2; + s2 = q2; + } else { + I2 = m2; + break; + } + } + if (!(h2 << 24 >> 24)) { + f2 = -1; + break; + } + m2 = (u2 | 0) > -1; + do + if (h2 << 24 >> 24 == 19) + if (m2) { + f2 = -1; + break a; + } else + K2 = 52; + else { + if (m2) { + k[e2 + (u2 << 2) >> 2] = q2; + G2 = d2 + (u2 << 3) | 0; + H2 = k[G2 + 4 >> 2] | 0; + K2 = aa2; + k[K2 >> 2] = k[G2 >> 2]; + k[K2 + 4 >> 2] = H2; + K2 = 52; + break; + } + if (!L2) { + f2 = 0; + break a; + } + Ml(aa2, q2, c2); + } + while (0); + if ((K2 | 0) == 52 ? (K2 = 0, !L2) : 0) { + w2 = I2; + g2 = y2; + continue; + } + u2 = i2[g2 >> 0] | 0; + u2 = (s2 | 0) != 0 & (u2 & 15 | 0) == 3 ? u2 & -33 : u2; + m2 = x2 & -65537; + H2 = (x2 & 8192 | 0) == 0 ? x2 : m2; + f: + do + switch (u2 | 0) { + case 110: + switch (s2 | 0) { + case 0: { + k[k[aa2 >> 2] >> 2] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 1: { + k[k[aa2 >> 2] >> 2] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 2: { + w2 = k[aa2 >> 2] | 0; + k[w2 >> 2] = f2; + k[w2 + 4 >> 2] = ((f2 | 0) < 0) << 31 >> 31; + w2 = I2; + g2 = y2; + continue a; + } + case 3: { + j[k[aa2 >> 2] >> 1] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 4: { + i2[k[aa2 >> 2] >> 0] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 6: { + k[k[aa2 >> 2] >> 2] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 7: { + w2 = k[aa2 >> 2] | 0; + k[w2 >> 2] = f2; + k[w2 + 4 >> 2] = ((f2 | 0) < 0) << 31 >> 31; + w2 = I2; + g2 = y2; + continue a; + } + default: { + w2 = I2; + g2 = y2; + continue a; + } + } + case 112: { + s2 = H2 | 8; + o2 = o2 >>> 0 > 8 ? o2 : 8; + u2 = 120; + K2 = 64; + break; + } + case 88: + case 120: { + s2 = H2; + K2 = 64; + break; + } + case 111: { + m2 = aa2; + h2 = k[m2 >> 2] | 0; + m2 = k[m2 + 4 >> 2] | 0; + if ((h2 | 0) == 0 & (m2 | 0) == 0) + g2 = N2; + else { + g2 = N2; + do { + g2 = g2 + -1 | 0; + i2[g2 >> 0] = h2 & 7 | 48; + h2 = uw(h2 | 0, m2 | 0, 3) | 0; + m2 = M; + } while (!((h2 | 0) == 0 & (m2 | 0) == 0)); + } + if (!(H2 & 8)) { + h2 = H2; + s2 = 0; + q2 = 56703; + K2 = 77; + } else { + s2 = U2 - g2 + 1 | 0; + h2 = H2; + o2 = (o2 | 0) < (s2 | 0) ? s2 : o2; + s2 = 0; + q2 = 56703; + K2 = 77; + } + break; + } + case 105: + case 100: { + h2 = aa2; + g2 = k[h2 >> 2] | 0; + h2 = k[h2 + 4 >> 2] | 0; + if ((h2 | 0) < 0) { + g2 = rw(0, 0, g2 | 0, h2 | 0) | 0; + h2 = M; + m2 = aa2; + k[m2 >> 2] = g2; + k[m2 + 4 >> 2] = h2; + m2 = 1; + q2 = 56703; + K2 = 76; + break f; + } + if (!(H2 & 2048)) { + q2 = H2 & 1; + m2 = q2; + q2 = (q2 | 0) == 0 ? 56703 : 56705; + K2 = 76; + } else { + m2 = 1; + q2 = 56704; + K2 = 76; + } + break; + } + case 117: { + h2 = aa2; + g2 = k[h2 >> 2] | 0; + h2 = k[h2 + 4 >> 2] | 0; + m2 = 0; + q2 = 56703; + K2 = 76; + break; + } + case 99: { + i2[V2 >> 0] = k[aa2 >> 2]; + w2 = V2; + h2 = 1; + s2 = 0; + u2 = 56703; + g2 = N2; + break; + } + case 109: { + g2 = mk() | 0; + g2 = nk(k[g2 >> 2] | 0) | 0; + K2 = 82; + break; + } + case 115: { + g2 = k[aa2 >> 2] | 0; + g2 = (g2 | 0) != 0 ? g2 : 56713; + K2 = 82; + break; + } + case 67: { + k[fa2 >> 2] = k[aa2 >> 2]; + k[W2 >> 2] = 0; + k[aa2 >> 2] = fa2; + o2 = -1; + K2 = 86; + break; + } + case 83: { + if (!o2) { + Ol(a2, 32, J2, 0, H2); + g2 = 0; + K2 = 98; + } else + K2 = 86; + break; + } + case 65: + case 71: + case 70: + case 69: + case 97: + case 103: + case 102: + case 101: { + n2 = +p[aa2 >> 3]; + k[da2 >> 2] = 0; + p[t >> 3] = n2; + if ((k[t + 4 >> 2] | 0) >= 0) + if (!(H2 & 2048)) { + G2 = H2 & 1; + F2 = G2; + G2 = (G2 | 0) == 0 ? 56721 : 56726; + } else { + F2 = 1; + G2 = 56723; + } + else { + n2 = -n2; + F2 = 1; + G2 = 56720; + } + p[t >> 3] = n2; + E2 = k[t + 4 >> 2] & 2146435072; + do + if (E2 >>> 0 < 2146435072 | (E2 | 0) == 2146435072 & 0 < 0) { + v2 = +Gk(n2, da2) * 2; + h2 = v2 != 0; + if (h2) + k[da2 >> 2] = (k[da2 >> 2] | 0) + -1; + C2 = u2 | 32; + if ((C2 | 0) == 97) { + w2 = u2 & 32; + y2 = (w2 | 0) == 0 ? G2 : G2 + 9 | 0; + x2 = F2 | 2; + g2 = 12 - o2 | 0; + do + if (!(o2 >>> 0 > 11 | (g2 | 0) == 0)) { + n2 = 8; + do { + g2 = g2 + -1 | 0; + n2 = n2 * 16; + } while ((g2 | 0) != 0); + if ((i2[y2 >> 0] | 0) == 45) { + n2 = -(n2 + (-v2 - n2)); + break; + } else { + n2 = v2 + n2 - n2; + break; + } + } else + n2 = v2; + while (0); + h2 = k[da2 >> 2] | 0; + g2 = (h2 | 0) < 0 ? 0 - h2 | 0 : h2; + g2 = Nl(g2, ((g2 | 0) < 0) << 31 >> 31, X2) | 0; + if ((g2 | 0) == (X2 | 0)) { + i2[Y2 >> 0] = 48; + g2 = Y2; + } + i2[g2 + -1 >> 0] = (h2 >> 31 & 2) + 43; + s2 = g2 + -2 | 0; + i2[s2 >> 0] = u2 + 15; + q2 = (o2 | 0) < 1; + m2 = (H2 & 8 | 0) == 0; + h2 = ca2; + while (1) { + G2 = ~~n2; + g2 = h2 + 1 | 0; + i2[h2 >> 0] = l[56687 + G2 >> 0] | w2; + n2 = (n2 - +(G2 | 0)) * 16; + do + if ((g2 - Z2 | 0) == 1) { + if (m2 & (q2 & n2 == 0)) + break; + i2[g2 >> 0] = 46; + g2 = h2 + 2 | 0; + } + while (0); + if (!(n2 != 0)) + break; + else + h2 = g2; + } + o2 = (o2 | 0) != 0 & (O2 + g2 | 0) < (o2 | 0) ? P2 + o2 - s2 | 0 : $2 - s2 + g2 | 0; + m2 = o2 + x2 | 0; + Ol(a2, 32, J2, m2, H2); + if (!(k[a2 >> 2] & 32)) + fl(y2, x2, a2) | 0; + Ol(a2, 48, J2, m2, H2 ^ 65536); + g2 = g2 - Z2 | 0; + if (!(k[a2 >> 2] & 32)) + fl(ca2, g2, a2) | 0; + h2 = _2 - s2 | 0; + Ol(a2, 48, o2 - (g2 + h2) | 0, 0, 0); + if (!(k[a2 >> 2] & 32)) + fl(s2, h2, a2) | 0; + Ol(a2, 32, J2, m2, H2 ^ 8192); + g2 = (m2 | 0) < (J2 | 0) ? J2 : m2; + break; + } + g2 = (o2 | 0) < 0 ? 6 : o2; + if (h2) { + h2 = (k[da2 >> 2] | 0) + -28 | 0; + k[da2 >> 2] = h2; + n2 = v2 * 268435456; + } else { + n2 = v2; + h2 = k[da2 >> 2] | 0; + } + E2 = (h2 | 0) < 0 ? ba2 : Q2; + D2 = E2; + h2 = E2; + do { + B2 = ~~n2 >>> 0; + k[h2 >> 2] = B2; + h2 = h2 + 4 | 0; + n2 = (n2 - +(B2 >>> 0)) * 1e9; + } while (n2 != 0); + m2 = h2; + h2 = k[da2 >> 2] | 0; + if ((h2 | 0) > 0) { + q2 = E2; + while (1) { + s2 = (h2 | 0) > 29 ? 29 : h2; + o2 = m2 + -4 | 0; + do + if (o2 >>> 0 < q2 >>> 0) + o2 = q2; + else { + h2 = 0; + do { + B2 = ww(k[o2 >> 2] | 0, 0, s2 | 0) | 0; + B2 = tw(B2 | 0, M | 0, h2 | 0, 0) | 0; + h2 = M; + A2 = Fw(B2 | 0, h2 | 0, 1e9, 0) | 0; + k[o2 >> 2] = A2; + h2 = Ew(B2 | 0, h2 | 0, 1e9, 0) | 0; + o2 = o2 + -4 | 0; + } while (o2 >>> 0 >= q2 >>> 0); + if (!h2) { + o2 = q2; + break; + } + o2 = q2 + -4 | 0; + k[o2 >> 2] = h2; + } + while (0); + while (1) { + if (m2 >>> 0 <= o2 >>> 0) + break; + h2 = m2 + -4 | 0; + if (!(k[h2 >> 2] | 0)) + m2 = h2; + else + break; + } + h2 = (k[da2 >> 2] | 0) - s2 | 0; + k[da2 >> 2] = h2; + if ((h2 | 0) > 0) + q2 = o2; + else + break; + } + } else + o2 = E2; + if ((h2 | 0) < 0) { + y2 = ((g2 + 25 | 0) / 9 | 0) + 1 | 0; + z2 = (C2 | 0) == 102; + w2 = o2; + while (1) { + x2 = 0 - h2 | 0; + x2 = (x2 | 0) > 9 ? 9 : x2; + do + if (w2 >>> 0 < m2 >>> 0) { + h2 = (1 << x2) + -1 | 0; + q2 = 1e9 >>> x2; + o2 = 0; + s2 = w2; + do { + B2 = k[s2 >> 2] | 0; + k[s2 >> 2] = (B2 >>> x2) + o2; + o2 = ia(B2 & h2, q2) | 0; + s2 = s2 + 4 | 0; + } while (s2 >>> 0 < m2 >>> 0); + h2 = (k[w2 >> 2] | 0) == 0 ? w2 + 4 | 0 : w2; + if (!o2) { + o2 = h2; + break; + } + k[m2 >> 2] = o2; + o2 = h2; + m2 = m2 + 4 | 0; + } else + o2 = (k[w2 >> 2] | 0) == 0 ? w2 + 4 | 0 : w2; + while (0); + h2 = z2 ? E2 : o2; + m2 = (m2 - h2 >> 2 | 0) > (y2 | 0) ? h2 + (y2 << 2) | 0 : m2; + h2 = (k[da2 >> 2] | 0) + x2 | 0; + k[da2 >> 2] = h2; + if ((h2 | 0) >= 0) { + w2 = o2; + break; + } else + w2 = o2; + } + } else + w2 = o2; + do + if (w2 >>> 0 < m2 >>> 0) { + h2 = (D2 - w2 >> 2) * 9 | 0; + q2 = k[w2 >> 2] | 0; + if (q2 >>> 0 < 10) + break; + else + o2 = 10; + do { + o2 = o2 * 10 | 0; + h2 = h2 + 1 | 0; + } while (q2 >>> 0 >= o2 >>> 0); + } else + h2 = 0; + while (0); + A2 = (C2 | 0) == 103; + B2 = (g2 | 0) != 0; + o2 = g2 - ((C2 | 0) != 102 ? h2 : 0) + ((B2 & A2) << 31 >> 31) | 0; + if ((o2 | 0) < (((m2 - D2 >> 2) * 9 | 0) + -9 | 0)) { + s2 = o2 + 9216 | 0; + z2 = (s2 | 0) / 9 | 0; + o2 = E2 + (z2 + -1023 << 2) | 0; + s2 = ((s2 | 0) % 9 | 0) + 1 | 0; + if ((s2 | 0) < 9) { + q2 = 10; + do { + q2 = q2 * 10 | 0; + s2 = s2 + 1 | 0; + } while ((s2 | 0) != 9); + } else + q2 = 10; + x2 = k[o2 >> 2] | 0; + y2 = (x2 >>> 0) % (q2 >>> 0) | 0; + if ((y2 | 0) == 0 ? (E2 + (z2 + -1022 << 2) | 0) == (m2 | 0) : 0) + q2 = w2; + else + K2 = 163; + do + if ((K2 | 0) == 163) { + K2 = 0; + v2 = (((x2 >>> 0) / (q2 >>> 0) | 0) & 1 | 0) == 0 ? 9007199254740992 : 9007199254740994; + s2 = (q2 | 0) / 2 | 0; + do + if (y2 >>> 0 < s2 >>> 0) + n2 = 0.5; + else { + if ((y2 | 0) == (s2 | 0) ? (E2 + (z2 + -1022 << 2) | 0) == (m2 | 0) : 0) { + n2 = 1; + break; + } + n2 = 1.5; + } + while (0); + do + if (F2) { + if ((i2[G2 >> 0] | 0) != 45) + break; + v2 = -v2; + n2 = -n2; + } + while (0); + s2 = x2 - y2 | 0; + k[o2 >> 2] = s2; + if (!(v2 + n2 != v2)) { + q2 = w2; + break; + } + C2 = s2 + q2 | 0; + k[o2 >> 2] = C2; + if (C2 >>> 0 > 999999999) { + h2 = w2; + while (1) { + q2 = o2 + -4 | 0; + k[o2 >> 2] = 0; + if (q2 >>> 0 < h2 >>> 0) { + h2 = h2 + -4 | 0; + k[h2 >> 2] = 0; + } + C2 = (k[q2 >> 2] | 0) + 1 | 0; + k[q2 >> 2] = C2; + if (C2 >>> 0 > 999999999) + o2 = q2; + else { + w2 = h2; + o2 = q2; + break; + } + } + } + h2 = (D2 - w2 >> 2) * 9 | 0; + s2 = k[w2 >> 2] | 0; + if (s2 >>> 0 < 10) { + q2 = w2; + break; + } else + q2 = 10; + do { + q2 = q2 * 10 | 0; + h2 = h2 + 1 | 0; + } while (s2 >>> 0 >= q2 >>> 0); + q2 = w2; + } + while (0); + C2 = o2 + 4 | 0; + w2 = q2; + m2 = m2 >>> 0 > C2 >>> 0 ? C2 : m2; + } + y2 = 0 - h2 | 0; + while (1) { + if (m2 >>> 0 <= w2 >>> 0) { + z2 = 0; + C2 = m2; + break; + } + o2 = m2 + -4 | 0; + if (!(k[o2 >> 2] | 0)) + m2 = o2; + else { + z2 = 1; + C2 = m2; + break; + } + } + do + if (A2) { + g2 = (B2 & 1 ^ 1) + g2 | 0; + if ((g2 | 0) > (h2 | 0) & (h2 | 0) > -5) { + u2 = u2 + -1 | 0; + g2 = g2 + -1 - h2 | 0; + } else { + u2 = u2 + -2 | 0; + g2 = g2 + -1 | 0; + } + m2 = H2 & 8; + if (m2) + break; + do + if (z2) { + m2 = k[C2 + -4 >> 2] | 0; + if (!m2) { + o2 = 9; + break; + } + if (!((m2 >>> 0) % 10 | 0)) { + q2 = 10; + o2 = 0; + } else { + o2 = 0; + break; + } + do { + q2 = q2 * 10 | 0; + o2 = o2 + 1 | 0; + } while (((m2 >>> 0) % (q2 >>> 0) | 0 | 0) == 0); + } else + o2 = 9; + while (0); + m2 = ((C2 - D2 >> 2) * 9 | 0) + -9 | 0; + if ((u2 | 32 | 0) == 102) { + m2 = m2 - o2 | 0; + m2 = (m2 | 0) < 0 ? 0 : m2; + g2 = (g2 | 0) < (m2 | 0) ? g2 : m2; + m2 = 0; + break; + } else { + m2 = m2 + h2 - o2 | 0; + m2 = (m2 | 0) < 0 ? 0 : m2; + g2 = (g2 | 0) < (m2 | 0) ? g2 : m2; + m2 = 0; + break; + } + } else + m2 = H2 & 8; + while (0); + x2 = g2 | m2; + q2 = (x2 | 0) != 0 & 1; + s2 = (u2 | 32 | 0) == 102; + if (s2) { + h2 = (h2 | 0) > 0 ? h2 : 0; + u2 = 0; + } else { + o2 = (h2 | 0) < 0 ? y2 : h2; + o2 = Nl(o2, ((o2 | 0) < 0) << 31 >> 31, X2) | 0; + if ((_2 - o2 | 0) < 2) + do { + o2 = o2 + -1 | 0; + i2[o2 >> 0] = 48; + } while ((_2 - o2 | 0) < 2); + i2[o2 + -1 >> 0] = (h2 >> 31 & 2) + 43; + D2 = o2 + -2 | 0; + i2[D2 >> 0] = u2; + h2 = _2 - D2 | 0; + u2 = D2; + } + y2 = F2 + 1 + g2 + q2 + h2 | 0; + Ol(a2, 32, J2, y2, H2); + if (!(k[a2 >> 2] & 32)) + fl(G2, F2, a2) | 0; + Ol(a2, 48, J2, y2, H2 ^ 65536); + do + if (s2) { + o2 = w2 >>> 0 > E2 >>> 0 ? E2 : w2; + h2 = o2; + do { + m2 = Nl(k[h2 >> 2] | 0, 0, R2) | 0; + do + if ((h2 | 0) == (o2 | 0)) { + if ((m2 | 0) != (R2 | 0)) + break; + i2[T2 >> 0] = 48; + m2 = T2; + } else { + if (m2 >>> 0 <= ca2 >>> 0) + break; + do { + m2 = m2 + -1 | 0; + i2[m2 >> 0] = 48; + } while (m2 >>> 0 > ca2 >>> 0); + } + while (0); + if (!(k[a2 >> 2] & 32)) + fl(m2, S2 - m2 | 0, a2) | 0; + h2 = h2 + 4 | 0; + } while (h2 >>> 0 <= E2 >>> 0); + do + if (x2) { + if (k[a2 >> 2] & 32) + break; + fl(56755, 1, a2) | 0; + } + while (0); + if ((g2 | 0) > 0 & h2 >>> 0 < C2 >>> 0) { + m2 = h2; + while (1) { + h2 = Nl(k[m2 >> 2] | 0, 0, R2) | 0; + if (h2 >>> 0 > ca2 >>> 0) + do { + h2 = h2 + -1 | 0; + i2[h2 >> 0] = 48; + } while (h2 >>> 0 > ca2 >>> 0); + if (!(k[a2 >> 2] & 32)) + fl(h2, (g2 | 0) > 9 ? 9 : g2, a2) | 0; + m2 = m2 + 4 | 0; + h2 = g2 + -9 | 0; + if (!((g2 | 0) > 9 & m2 >>> 0 < C2 >>> 0)) { + g2 = h2; + break; + } else + g2 = h2; + } + } + Ol(a2, 48, g2 + 9 | 0, 9, 0); + } else { + s2 = z2 ? C2 : w2 + 4 | 0; + if ((g2 | 0) > -1) { + q2 = (m2 | 0) == 0; + o2 = w2; + do { + h2 = Nl(k[o2 >> 2] | 0, 0, R2) | 0; + if ((h2 | 0) == (R2 | 0)) { + i2[T2 >> 0] = 48; + h2 = T2; + } + do + if ((o2 | 0) == (w2 | 0)) { + m2 = h2 + 1 | 0; + if (!(k[a2 >> 2] & 32)) + fl(h2, 1, a2) | 0; + if (q2 & (g2 | 0) < 1) { + h2 = m2; + break; + } + if (k[a2 >> 2] & 32) { + h2 = m2; + break; + } + fl(56755, 1, a2) | 0; + h2 = m2; + } else { + if (h2 >>> 0 <= ca2 >>> 0) + break; + do { + h2 = h2 + -1 | 0; + i2[h2 >> 0] = 48; + } while (h2 >>> 0 > ca2 >>> 0); + } + while (0); + m2 = S2 - h2 | 0; + if (!(k[a2 >> 2] & 32)) + fl(h2, (g2 | 0) > (m2 | 0) ? m2 : g2, a2) | 0; + g2 = g2 - m2 | 0; + o2 = o2 + 4 | 0; + } while (o2 >>> 0 < s2 >>> 0 & (g2 | 0) > -1); + } + Ol(a2, 48, g2 + 18 | 0, 18, 0); + if (k[a2 >> 2] & 32) + break; + fl(u2, _2 - u2 | 0, a2) | 0; + } + while (0); + Ol(a2, 32, J2, y2, H2 ^ 8192); + g2 = (y2 | 0) < (J2 | 0) ? J2 : y2; + } else { + s2 = (u2 & 32 | 0) != 0; + q2 = n2 != n2 | false; + h2 = q2 ? 0 : F2; + o2 = h2 + 3 | 0; + Ol(a2, 32, J2, o2, m2); + g2 = k[a2 >> 2] | 0; + if (!(g2 & 32)) { + fl(G2, h2, a2) | 0; + g2 = k[a2 >> 2] | 0; + } + if (!(g2 & 32)) + fl(q2 ? s2 ? 56747 : 56751 : s2 ? 56739 : 56743, 3, a2) | 0; + Ol(a2, 32, J2, o2, H2 ^ 8192); + g2 = (o2 | 0) < (J2 | 0) ? J2 : o2; + } + while (0); + w2 = I2; + continue a; + } + default: { + m2 = H2; + h2 = o2; + s2 = 0; + u2 = 56703; + g2 = N2; + } + } + while (0); + g: + do + if ((K2 | 0) == 64) { + m2 = aa2; + h2 = k[m2 >> 2] | 0; + m2 = k[m2 + 4 >> 2] | 0; + q2 = u2 & 32; + if (!((h2 | 0) == 0 & (m2 | 0) == 0)) { + g2 = N2; + do { + g2 = g2 + -1 | 0; + i2[g2 >> 0] = l[56687 + (h2 & 15) >> 0] | q2; + h2 = uw(h2 | 0, m2 | 0, 4) | 0; + m2 = M; + } while (!((h2 | 0) == 0 & (m2 | 0) == 0)); + K2 = aa2; + if ((s2 & 8 | 0) == 0 | (k[K2 >> 2] | 0) == 0 & (k[K2 + 4 >> 2] | 0) == 0) { + h2 = s2; + s2 = 0; + q2 = 56703; + K2 = 77; + } else { + h2 = s2; + s2 = 2; + q2 = 56703 + (u2 >> 4) | 0; + K2 = 77; + } + } else { + g2 = N2; + h2 = s2; + s2 = 0; + q2 = 56703; + K2 = 77; + } + } else if ((K2 | 0) == 76) { + g2 = Nl(g2, h2, N2) | 0; + h2 = H2; + s2 = m2; + K2 = 77; + } else if ((K2 | 0) == 82) { + K2 = 0; + H2 = tl(g2, 0, o2) | 0; + G2 = (H2 | 0) == 0; + w2 = g2; + h2 = G2 ? o2 : H2 - g2 | 0; + s2 = 0; + u2 = 56703; + g2 = G2 ? g2 + o2 | 0 : H2; + } else if ((K2 | 0) == 86) { + K2 = 0; + h2 = 0; + g2 = 0; + q2 = k[aa2 >> 2] | 0; + while (1) { + m2 = k[q2 >> 2] | 0; + if (!m2) + break; + g2 = Sk(ea2, m2) | 0; + if ((g2 | 0) < 0 | g2 >>> 0 > (o2 - h2 | 0) >>> 0) + break; + h2 = g2 + h2 | 0; + if (o2 >>> 0 > h2 >>> 0) + q2 = q2 + 4 | 0; + else + break; + } + if ((g2 | 0) < 0) { + f2 = -1; + break a; + } + Ol(a2, 32, J2, h2, H2); + if (!h2) { + g2 = 0; + K2 = 98; + } else { + m2 = 0; + o2 = k[aa2 >> 2] | 0; + while (1) { + g2 = k[o2 >> 2] | 0; + if (!g2) { + g2 = h2; + K2 = 98; + break g; + } + g2 = Sk(ea2, g2) | 0; + m2 = g2 + m2 | 0; + if ((m2 | 0) > (h2 | 0)) { + g2 = h2; + K2 = 98; + break g; + } + if (!(k[a2 >> 2] & 32)) + fl(ea2, g2, a2) | 0; + if (m2 >>> 0 >= h2 >>> 0) { + g2 = h2; + K2 = 98; + break; + } else + o2 = o2 + 4 | 0; + } + } + } + while (0); + if ((K2 | 0) == 98) { + K2 = 0; + Ol(a2, 32, J2, g2, H2 ^ 8192); + w2 = I2; + g2 = (J2 | 0) > (g2 | 0) ? J2 : g2; + continue; + } + if ((K2 | 0) == 77) { + K2 = 0; + m2 = (o2 | 0) > -1 ? h2 & -65537 : h2; + h2 = aa2; + h2 = (k[h2 >> 2] | 0) != 0 | (k[h2 + 4 >> 2] | 0) != 0; + if ((o2 | 0) != 0 | h2) { + h2 = (h2 & 1 ^ 1) + (U2 - g2) | 0; + w2 = g2; + h2 = (o2 | 0) > (h2 | 0) ? o2 : h2; + u2 = q2; + g2 = N2; + } else { + w2 = N2; + h2 = 0; + u2 = q2; + g2 = N2; + } + } + q2 = g2 - w2 | 0; + h2 = (h2 | 0) < (q2 | 0) ? q2 : h2; + o2 = s2 + h2 | 0; + g2 = (J2 | 0) < (o2 | 0) ? o2 : J2; + Ol(a2, 32, g2, o2, m2); + if (!(k[a2 >> 2] & 32)) + fl(u2, s2, a2) | 0; + Ol(a2, 48, g2, o2, m2 ^ 65536); + Ol(a2, 48, h2, q2, 0); + if (!(k[a2 >> 2] & 32)) + fl(w2, q2, a2) | 0; + Ol(a2, 32, g2, o2, m2 ^ 8192); + w2 = I2; + } + h: + do + if ((K2 | 0) == 245) { + if (!a2) + if (b2) { + f2 = 1; + while (1) { + b2 = k[e2 + (f2 << 2) >> 2] | 0; + if (!b2) + break; + Ml(d2 + (f2 << 3) | 0, b2, c2); + f2 = f2 + 1 | 0; + if ((f2 | 0) >= 10) { + f2 = 1; + break h; + } + } + if ((f2 | 0) < 10) + while (1) { + if (k[e2 + (f2 << 2) >> 2] | 0) { + f2 = -1; + break h; + } + f2 = f2 + 1 | 0; + if ((f2 | 0) >= 10) { + f2 = 1; + break; + } + } + else + f2 = 1; + } else + f2 = 0; + } + while (0); + r = ga2; + return f2 | 0; + } + function Il(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return $k(a2, b2, c2) | 0; + } + function Jl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 112 | 0; + g2 = h2; + e2 = g2; + f2 = e2 + 112 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (f2 | 0)); + e2 = g2 + 4 | 0; + k[e2 >> 2] = a2; + f2 = g2 + 8 | 0; + k[f2 >> 2] = -1; + k[g2 + 44 >> 2] = a2; + k[g2 + 76 >> 2] = -1; + qk(g2, 0); + d2 = +ok(g2, c2, 1); + c2 = (k[e2 >> 2] | 0) - (k[f2 >> 2] | 0) + (k[g2 + 108 >> 2] | 0) | 0; + if (b2) + k[b2 >> 2] = (c2 | 0) != 0 ? a2 + c2 | 0 : a2; + r = h2; + return +d2; + } + function Kl(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0; + i3 = r; + r = r + 112 | 0; + h2 = i3; + k[h2 >> 2] = 0; + f2 = h2 + 4 | 0; + k[f2 >> 2] = a2; + k[h2 + 44 >> 2] = a2; + g2 = h2 + 8 | 0; + k[g2 >> 2] = (a2 | 0) < 0 ? -1 : a2 + 2147483647 | 0; + k[h2 + 76 >> 2] = -1; + qk(h2, 0); + d2 = pk(h2, c2, 1, d2, e2) | 0; + if (b2) + k[b2 >> 2] = a2 + ((k[f2 >> 2] | 0) + (k[h2 + 108 >> 2] | 0) - (k[g2 >> 2] | 0)); + r = i3; + return d2 | 0; + } + function Ll(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + d2 = a2 + 20 | 0; + e2 = k[d2 >> 2] | 0; + a2 = (k[a2 + 16 >> 2] | 0) - e2 | 0; + a2 = a2 >>> 0 > c2 >>> 0 ? c2 : a2; + vw(e2 | 0, b2 | 0, a2 | 0) | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) + a2; + return c2 | 0; + } + function Ml(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + a: + do + if (b2 >>> 0 <= 20) + do + switch (b2 | 0) { + case 9: { + d2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + b2 = k[d2 >> 2] | 0; + k[c2 >> 2] = d2 + 4; + k[a2 >> 2] = b2; + break a; + } + case 10: { + d2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + b2 = k[d2 >> 2] | 0; + k[c2 >> 2] = d2 + 4; + d2 = a2; + k[d2 >> 2] = b2; + k[d2 + 4 >> 2] = ((b2 | 0) < 0) << 31 >> 31; + break a; + } + case 11: { + d2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + b2 = k[d2 >> 2] | 0; + k[c2 >> 2] = d2 + 4; + d2 = a2; + k[d2 >> 2] = b2; + k[d2 + 4 >> 2] = 0; + break a; + } + case 12: { + d2 = (k[c2 >> 2] | 0) + (8 - 1) & ~(8 - 1); + b2 = d2; + e2 = k[b2 >> 2] | 0; + b2 = k[b2 + 4 >> 2] | 0; + k[c2 >> 2] = d2 + 8; + d2 = a2; + k[d2 >> 2] = e2; + k[d2 + 4 >> 2] = b2; + break a; + } + case 13: { + e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + d2 = k[e2 >> 2] | 0; + k[c2 >> 2] = e2 + 4; + d2 = (d2 & 65535) << 16 >> 16; + e2 = a2; + k[e2 >> 2] = d2; + k[e2 + 4 >> 2] = ((d2 | 0) < 0) << 31 >> 31; + break a; + } + case 14: { + e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + d2 = k[e2 >> 2] | 0; + k[c2 >> 2] = e2 + 4; + e2 = a2; + k[e2 >> 2] = d2 & 65535; + k[e2 + 4 >> 2] = 0; + break a; + } + case 15: { + e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + d2 = k[e2 >> 2] | 0; + k[c2 >> 2] = e2 + 4; + d2 = (d2 & 255) << 24 >> 24; + e2 = a2; + k[e2 >> 2] = d2; + k[e2 + 4 >> 2] = ((d2 | 0) < 0) << 31 >> 31; + break a; + } + case 16: { + e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + d2 = k[e2 >> 2] | 0; + k[c2 >> 2] = e2 + 4; + e2 = a2; + k[e2 >> 2] = d2 & 255; + k[e2 + 4 >> 2] = 0; + break a; + } + case 17: { + e2 = (k[c2 >> 2] | 0) + (8 - 1) & ~(8 - 1); + f2 = +p[e2 >> 3]; + k[c2 >> 2] = e2 + 8; + p[a2 >> 3] = f2; + break a; + } + case 18: { + e2 = (k[c2 >> 2] | 0) + (8 - 1) & ~(8 - 1); + f2 = +p[e2 >> 3]; + k[c2 >> 2] = e2 + 8; + p[a2 >> 3] = f2; + break a; + } + default: + break a; + } + while (0); + while (0); + return; + } + function Nl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if (b2 >>> 0 > 0 | (b2 | 0) == 0 & a2 >>> 0 > 4294967295) + while (1) { + d2 = Fw(a2 | 0, b2 | 0, 10, 0) | 0; + c2 = c2 + -1 | 0; + i2[c2 >> 0] = d2 | 48; + d2 = Ew(a2 | 0, b2 | 0, 10, 0) | 0; + if (b2 >>> 0 > 9 | (b2 | 0) == 9 & a2 >>> 0 > 4294967295) { + a2 = d2; + b2 = M; + } else { + a2 = d2; + break; + } + } + if (a2) + while (1) { + c2 = c2 + -1 | 0; + i2[c2 >> 0] = (a2 >>> 0) % 10 | 0 | 48; + if (a2 >>> 0 < 10) + break; + else + a2 = (a2 >>> 0) / 10 | 0; + } + return c2 | 0; + } + function Ol(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 256 | 0; + g2 = h2; + do + if ((c2 | 0) > (d2 | 0) & (e2 & 73728 | 0) == 0) { + e2 = c2 - d2 | 0; + sw(g2 | 0, b2 | 0, (e2 >>> 0 > 256 ? 256 : e2) | 0) | 0; + b2 = k[a2 >> 2] | 0; + f2 = (b2 & 32 | 0) == 0; + if (e2 >>> 0 > 255) { + d2 = c2 - d2 | 0; + do { + if (f2) { + fl(g2, 256, a2) | 0; + b2 = k[a2 >> 2] | 0; + } + e2 = e2 + -256 | 0; + f2 = (b2 & 32 | 0) == 0; + } while (e2 >>> 0 > 255); + if (f2) + e2 = d2 & 255; + else + break; + } else if (!f2) + break; + fl(g2, e2, a2) | 0; + } + while (0); + r = h2; + return; + } + function Pl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0; + do + if (a2 >>> 0 < 245) { + o2 = a2 >>> 0 < 11 ? 16 : a2 + 11 & -8; + a2 = o2 >>> 3; + h2 = k[10218] | 0; + c2 = h2 >>> a2; + if (c2 & 3) { + a2 = (c2 & 1 ^ 1) + a2 | 0; + d2 = a2 << 1; + c2 = 40912 + (d2 << 2) | 0; + d2 = 40912 + (d2 + 2 << 2) | 0; + e2 = k[d2 >> 2] | 0; + f2 = e2 + 8 | 0; + g2 = k[f2 >> 2] | 0; + do + if ((c2 | 0) != (g2 | 0)) { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = g2 + 12 | 0; + if ((k[b2 >> 2] | 0) == (e2 | 0)) { + k[b2 >> 2] = c2; + k[d2 >> 2] = g2; + break; + } else + Pa(); + } else + k[10218] = h2 & ~(1 << a2); + while (0); + M2 = a2 << 3; + k[e2 + 4 >> 2] = M2 | 3; + M2 = e2 + (M2 | 4) | 0; + k[M2 >> 2] = k[M2 >> 2] | 1; + M2 = f2; + return M2 | 0; + } + g2 = k[10220] | 0; + if (o2 >>> 0 > g2 >>> 0) { + if (c2) { + d2 = 2 << a2; + d2 = c2 << a2 & (d2 | 0 - d2); + d2 = (d2 & 0 - d2) + -1 | 0; + i3 = d2 >>> 12 & 16; + d2 = d2 >>> i3; + e2 = d2 >>> 5 & 8; + d2 = d2 >>> e2; + f2 = d2 >>> 2 & 4; + d2 = d2 >>> f2; + c2 = d2 >>> 1 & 2; + d2 = d2 >>> c2; + a2 = d2 >>> 1 & 1; + a2 = (e2 | i3 | f2 | c2 | a2) + (d2 >>> a2) | 0; + d2 = a2 << 1; + c2 = 40912 + (d2 << 2) | 0; + d2 = 40912 + (d2 + 2 << 2) | 0; + f2 = k[d2 >> 2] | 0; + i3 = f2 + 8 | 0; + e2 = k[i3 >> 2] | 0; + do + if ((c2 | 0) != (e2 | 0)) { + if (e2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = e2 + 12 | 0; + if ((k[b2 >> 2] | 0) == (f2 | 0)) { + k[b2 >> 2] = c2; + k[d2 >> 2] = e2; + j2 = k[10220] | 0; + break; + } else + Pa(); + } else { + k[10218] = h2 & ~(1 << a2); + j2 = g2; + } + while (0); + M2 = a2 << 3; + g2 = M2 - o2 | 0; + k[f2 + 4 >> 2] = o2 | 3; + h2 = f2 + o2 | 0; + k[f2 + (o2 | 4) >> 2] = g2 | 1; + k[f2 + M2 >> 2] = g2; + if (j2) { + e2 = k[10223] | 0; + c2 = j2 >>> 3; + b2 = c2 << 1; + d2 = 40912 + (b2 << 2) | 0; + a2 = k[10218] | 0; + c2 = 1 << c2; + if (a2 & c2) { + a2 = 40912 + (b2 + 2 << 2) | 0; + b2 = k[a2 >> 2] | 0; + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + l2 = a2; + m2 = b2; + } + } else { + k[10218] = a2 | c2; + l2 = 40912 + (b2 + 2 << 2) | 0; + m2 = d2; + } + k[l2 >> 2] = e2; + k[m2 + 12 >> 2] = e2; + k[e2 + 8 >> 2] = m2; + k[e2 + 12 >> 2] = d2; + } + k[10220] = g2; + k[10223] = h2; + M2 = i3; + return M2 | 0; + } + a2 = k[10219] | 0; + if (a2) { + c2 = (a2 & 0 - a2) + -1 | 0; + L2 = c2 >>> 12 & 16; + c2 = c2 >>> L2; + K2 = c2 >>> 5 & 8; + c2 = c2 >>> K2; + M2 = c2 >>> 2 & 4; + c2 = c2 >>> M2; + a2 = c2 >>> 1 & 2; + c2 = c2 >>> a2; + d2 = c2 >>> 1 & 1; + d2 = k[41176 + ((K2 | L2 | M2 | a2 | d2) + (c2 >>> d2) << 2) >> 2] | 0; + c2 = (k[d2 + 4 >> 2] & -8) - o2 | 0; + a2 = d2; + while (1) { + b2 = k[a2 + 16 >> 2] | 0; + if (!b2) { + b2 = k[a2 + 20 >> 2] | 0; + if (!b2) { + i3 = c2; + break; + } + } + a2 = (k[b2 + 4 >> 2] & -8) - o2 | 0; + M2 = a2 >>> 0 < c2 >>> 0; + c2 = M2 ? a2 : c2; + a2 = b2; + d2 = M2 ? b2 : d2; + } + f2 = k[10222] | 0; + if (d2 >>> 0 < f2 >>> 0) + Pa(); + h2 = d2 + o2 | 0; + if (d2 >>> 0 >= h2 >>> 0) + Pa(); + g2 = k[d2 + 24 >> 2] | 0; + c2 = k[d2 + 12 >> 2] | 0; + do + if ((c2 | 0) == (d2 | 0)) { + a2 = d2 + 20 | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) { + a2 = d2 + 16 | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) { + n2 = 0; + break; + } + } + while (1) { + c2 = b2 + 20 | 0; + e2 = k[c2 >> 2] | 0; + if (e2) { + b2 = e2; + a2 = c2; + continue; + } + c2 = b2 + 16 | 0; + e2 = k[c2 >> 2] | 0; + if (!e2) + break; + else { + b2 = e2; + a2 = c2; + } + } + if (a2 >>> 0 < f2 >>> 0) + Pa(); + else { + k[a2 >> 2] = 0; + n2 = b2; + break; + } + } else { + e2 = k[d2 + 8 >> 2] | 0; + if (e2 >>> 0 < f2 >>> 0) + Pa(); + b2 = e2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (d2 | 0)) + Pa(); + a2 = c2 + 8 | 0; + if ((k[a2 >> 2] | 0) == (d2 | 0)) { + k[b2 >> 2] = c2; + k[a2 >> 2] = e2; + n2 = c2; + break; + } else + Pa(); + } + while (0); + do + if (g2) { + b2 = k[d2 + 28 >> 2] | 0; + a2 = 41176 + (b2 << 2) | 0; + if ((d2 | 0) == (k[a2 >> 2] | 0)) { + k[a2 >> 2] = n2; + if (!n2) { + k[10219] = k[10219] & ~(1 << b2); + break; + } + } else { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = g2 + 16 | 0; + if ((k[b2 >> 2] | 0) == (d2 | 0)) + k[b2 >> 2] = n2; + else + k[g2 + 20 >> 2] = n2; + if (!n2) + break; + } + a2 = k[10222] | 0; + if (n2 >>> 0 < a2 >>> 0) + Pa(); + k[n2 + 24 >> 2] = g2; + b2 = k[d2 + 16 >> 2] | 0; + do + if (b2) + if (b2 >>> 0 < a2 >>> 0) + Pa(); + else { + k[n2 + 16 >> 2] = b2; + k[b2 + 24 >> 2] = n2; + break; + } + while (0); + b2 = k[d2 + 20 >> 2] | 0; + if (b2) + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[n2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = n2; + break; + } + } + while (0); + if (i3 >>> 0 < 16) { + M2 = i3 + o2 | 0; + k[d2 + 4 >> 2] = M2 | 3; + M2 = d2 + (M2 + 4) | 0; + k[M2 >> 2] = k[M2 >> 2] | 1; + } else { + k[d2 + 4 >> 2] = o2 | 3; + k[d2 + (o2 | 4) >> 2] = i3 | 1; + k[d2 + (i3 + o2) >> 2] = i3; + b2 = k[10220] | 0; + if (b2) { + f2 = k[10223] | 0; + c2 = b2 >>> 3; + b2 = c2 << 1; + e2 = 40912 + (b2 << 2) | 0; + a2 = k[10218] | 0; + c2 = 1 << c2; + if (a2 & c2) { + b2 = 40912 + (b2 + 2 << 2) | 0; + a2 = k[b2 >> 2] | 0; + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + p2 = b2; + q2 = a2; + } + } else { + k[10218] = a2 | c2; + p2 = 40912 + (b2 + 2 << 2) | 0; + q2 = e2; + } + k[p2 >> 2] = f2; + k[q2 + 12 >> 2] = f2; + k[f2 + 8 >> 2] = q2; + k[f2 + 12 >> 2] = e2; + } + k[10220] = i3; + k[10223] = h2; + } + M2 = d2 + 8 | 0; + return M2 | 0; + } else + q2 = o2; + } else + q2 = o2; + } else if (a2 >>> 0 <= 4294967231) { + a2 = a2 + 11 | 0; + m2 = a2 & -8; + l2 = k[10219] | 0; + if (l2) { + c2 = 0 - m2 | 0; + a2 = a2 >>> 8; + if (a2) + if (m2 >>> 0 > 16777215) + j2 = 31; + else { + q2 = (a2 + 1048320 | 0) >>> 16 & 8; + v2 = a2 << q2; + p2 = (v2 + 520192 | 0) >>> 16 & 4; + v2 = v2 << p2; + j2 = (v2 + 245760 | 0) >>> 16 & 2; + j2 = 14 - (p2 | q2 | j2) + (v2 << j2 >>> 15) | 0; + j2 = m2 >>> (j2 + 7 | 0) & 1 | j2 << 1; + } + else + j2 = 0; + a2 = k[41176 + (j2 << 2) >> 2] | 0; + a: + do + if (!a2) { + e2 = 0; + a2 = 0; + v2 = 86; + } else { + g2 = c2; + e2 = 0; + h2 = m2 << ((j2 | 0) == 31 ? 0 : 25 - (j2 >>> 1) | 0); + i3 = a2; + a2 = 0; + while (1) { + f2 = k[i3 + 4 >> 2] & -8; + c2 = f2 - m2 | 0; + if (c2 >>> 0 < g2 >>> 0) + if ((f2 | 0) == (m2 | 0)) { + f2 = i3; + a2 = i3; + v2 = 90; + break a; + } else + a2 = i3; + else + c2 = g2; + v2 = k[i3 + 20 >> 2] | 0; + i3 = k[i3 + 16 + (h2 >>> 31 << 2) >> 2] | 0; + e2 = (v2 | 0) == 0 | (v2 | 0) == (i3 | 0) ? e2 : v2; + if (!i3) { + v2 = 86; + break; + } else { + g2 = c2; + h2 = h2 << 1; + } + } + } + while (0); + if ((v2 | 0) == 86) { + if ((e2 | 0) == 0 & (a2 | 0) == 0) { + a2 = 2 << j2; + a2 = l2 & (a2 | 0 - a2); + if (!a2) { + q2 = m2; + break; + } + a2 = (a2 & 0 - a2) + -1 | 0; + n2 = a2 >>> 12 & 16; + a2 = a2 >>> n2; + l2 = a2 >>> 5 & 8; + a2 = a2 >>> l2; + p2 = a2 >>> 2 & 4; + a2 = a2 >>> p2; + q2 = a2 >>> 1 & 2; + a2 = a2 >>> q2; + e2 = a2 >>> 1 & 1; + e2 = k[41176 + ((l2 | n2 | p2 | q2 | e2) + (a2 >>> e2) << 2) >> 2] | 0; + a2 = 0; + } + if (!e2) { + h2 = c2; + i3 = a2; + } else { + f2 = e2; + v2 = 90; + } + } + if ((v2 | 0) == 90) + while (1) { + v2 = 0; + q2 = (k[f2 + 4 >> 2] & -8) - m2 | 0; + e2 = q2 >>> 0 < c2 >>> 0; + c2 = e2 ? q2 : c2; + a2 = e2 ? f2 : a2; + e2 = k[f2 + 16 >> 2] | 0; + if (e2) { + f2 = e2; + v2 = 90; + continue; + } + f2 = k[f2 + 20 >> 2] | 0; + if (!f2) { + h2 = c2; + i3 = a2; + break; + } else + v2 = 90; + } + if ((i3 | 0) != 0 ? h2 >>> 0 < ((k[10220] | 0) - m2 | 0) >>> 0 : 0) { + e2 = k[10222] | 0; + if (i3 >>> 0 < e2 >>> 0) + Pa(); + g2 = i3 + m2 | 0; + if (i3 >>> 0 >= g2 >>> 0) + Pa(); + f2 = k[i3 + 24 >> 2] | 0; + c2 = k[i3 + 12 >> 2] | 0; + do + if ((c2 | 0) == (i3 | 0)) { + a2 = i3 + 20 | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) { + a2 = i3 + 16 | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) { + o2 = 0; + break; + } + } + while (1) { + c2 = b2 + 20 | 0; + d2 = k[c2 >> 2] | 0; + if (d2) { + b2 = d2; + a2 = c2; + continue; + } + c2 = b2 + 16 | 0; + d2 = k[c2 >> 2] | 0; + if (!d2) + break; + else { + b2 = d2; + a2 = c2; + } + } + if (a2 >>> 0 < e2 >>> 0) + Pa(); + else { + k[a2 >> 2] = 0; + o2 = b2; + break; + } + } else { + d2 = k[i3 + 8 >> 2] | 0; + if (d2 >>> 0 < e2 >>> 0) + Pa(); + b2 = d2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (i3 | 0)) + Pa(); + a2 = c2 + 8 | 0; + if ((k[a2 >> 2] | 0) == (i3 | 0)) { + k[b2 >> 2] = c2; + k[a2 >> 2] = d2; + o2 = c2; + break; + } else + Pa(); + } + while (0); + do + if (f2) { + b2 = k[i3 + 28 >> 2] | 0; + a2 = 41176 + (b2 << 2) | 0; + if ((i3 | 0) == (k[a2 >> 2] | 0)) { + k[a2 >> 2] = o2; + if (!o2) { + k[10219] = k[10219] & ~(1 << b2); + break; + } + } else { + if (f2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = f2 + 16 | 0; + if ((k[b2 >> 2] | 0) == (i3 | 0)) + k[b2 >> 2] = o2; + else + k[f2 + 20 >> 2] = o2; + if (!o2) + break; + } + a2 = k[10222] | 0; + if (o2 >>> 0 < a2 >>> 0) + Pa(); + k[o2 + 24 >> 2] = f2; + b2 = k[i3 + 16 >> 2] | 0; + do + if (b2) + if (b2 >>> 0 < a2 >>> 0) + Pa(); + else { + k[o2 + 16 >> 2] = b2; + k[b2 + 24 >> 2] = o2; + break; + } + while (0); + b2 = k[i3 + 20 >> 2] | 0; + if (b2) + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[o2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = o2; + break; + } + } + while (0); + b: + do + if (h2 >>> 0 >= 16) { + k[i3 + 4 >> 2] = m2 | 3; + k[i3 + (m2 | 4) >> 2] = h2 | 1; + k[i3 + (h2 + m2) >> 2] = h2; + b2 = h2 >>> 3; + if (h2 >>> 0 < 256) { + a2 = b2 << 1; + d2 = 40912 + (a2 << 2) | 0; + c2 = k[10218] | 0; + b2 = 1 << b2; + if (c2 & b2) { + b2 = 40912 + (a2 + 2 << 2) | 0; + a2 = k[b2 >> 2] | 0; + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + s2 = b2; + t2 = a2; + } + } else { + k[10218] = c2 | b2; + s2 = 40912 + (a2 + 2 << 2) | 0; + t2 = d2; + } + k[s2 >> 2] = g2; + k[t2 + 12 >> 2] = g2; + k[i3 + (m2 + 8) >> 2] = t2; + k[i3 + (m2 + 12) >> 2] = d2; + break; + } + b2 = h2 >>> 8; + if (b2) + if (h2 >>> 0 > 16777215) + d2 = 31; + else { + L2 = (b2 + 1048320 | 0) >>> 16 & 8; + M2 = b2 << L2; + K2 = (M2 + 520192 | 0) >>> 16 & 4; + M2 = M2 << K2; + d2 = (M2 + 245760 | 0) >>> 16 & 2; + d2 = 14 - (K2 | L2 | d2) + (M2 << d2 >>> 15) | 0; + d2 = h2 >>> (d2 + 7 | 0) & 1 | d2 << 1; + } + else + d2 = 0; + b2 = 41176 + (d2 << 2) | 0; + k[i3 + (m2 + 28) >> 2] = d2; + k[i3 + (m2 + 20) >> 2] = 0; + k[i3 + (m2 + 16) >> 2] = 0; + a2 = k[10219] | 0; + c2 = 1 << d2; + if (!(a2 & c2)) { + k[10219] = a2 | c2; + k[b2 >> 2] = g2; + k[i3 + (m2 + 24) >> 2] = b2; + k[i3 + (m2 + 12) >> 2] = g2; + k[i3 + (m2 + 8) >> 2] = g2; + break; + } + b2 = k[b2 >> 2] | 0; + c: + do + if ((k[b2 + 4 >> 2] & -8 | 0) != (h2 | 0)) { + d2 = h2 << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); + while (1) { + a2 = b2 + 16 + (d2 >>> 31 << 2) | 0; + c2 = k[a2 >> 2] | 0; + if (!c2) + break; + if ((k[c2 + 4 >> 2] & -8 | 0) == (h2 | 0)) { + y2 = c2; + break c; + } else { + d2 = d2 << 1; + b2 = c2; + } + } + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[a2 >> 2] = g2; + k[i3 + (m2 + 24) >> 2] = b2; + k[i3 + (m2 + 12) >> 2] = g2; + k[i3 + (m2 + 8) >> 2] = g2; + break b; + } + } else + y2 = b2; + while (0); + b2 = y2 + 8 | 0; + a2 = k[b2 >> 2] | 0; + M2 = k[10222] | 0; + if (a2 >>> 0 >= M2 >>> 0 & y2 >>> 0 >= M2 >>> 0) { + k[a2 + 12 >> 2] = g2; + k[b2 >> 2] = g2; + k[i3 + (m2 + 8) >> 2] = a2; + k[i3 + (m2 + 12) >> 2] = y2; + k[i3 + (m2 + 24) >> 2] = 0; + break; + } else + Pa(); + } else { + M2 = h2 + m2 | 0; + k[i3 + 4 >> 2] = M2 | 3; + M2 = i3 + (M2 + 4) | 0; + k[M2 >> 2] = k[M2 >> 2] | 1; + } + while (0); + M2 = i3 + 8 | 0; + return M2 | 0; + } else + q2 = m2; + } else + q2 = m2; + } else + q2 = -1; + while (0); + c2 = k[10220] | 0; + if (c2 >>> 0 >= q2 >>> 0) { + b2 = c2 - q2 | 0; + a2 = k[10223] | 0; + if (b2 >>> 0 > 15) { + k[10223] = a2 + q2; + k[10220] = b2; + k[a2 + (q2 + 4) >> 2] = b2 | 1; + k[a2 + c2 >> 2] = b2; + k[a2 + 4 >> 2] = q2 | 3; + } else { + k[10220] = 0; + k[10223] = 0; + k[a2 + 4 >> 2] = c2 | 3; + M2 = a2 + (c2 + 4) | 0; + k[M2 >> 2] = k[M2 >> 2] | 1; + } + M2 = a2 + 8 | 0; + return M2 | 0; + } + a2 = k[10221] | 0; + if (a2 >>> 0 > q2 >>> 0) { + L2 = a2 - q2 | 0; + k[10221] = L2; + M2 = k[10224] | 0; + k[10224] = M2 + q2; + k[M2 + (q2 + 4) >> 2] = L2 | 1; + k[M2 + 4 >> 2] = q2 | 3; + M2 = M2 + 8 | 0; + return M2 | 0; + } + do + if (!(k[10336] | 0)) { + a2 = hb(30) | 0; + if (!(a2 + -1 & a2)) { + k[10338] = a2; + k[10337] = a2; + k[10339] = -1; + k[10340] = -1; + k[10341] = 0; + k[10329] = 0; + y2 = (zb(0) | 0) & -16 ^ 1431655768; + k[10336] = y2; + break; + } else + Pa(); + } + while (0); + i3 = q2 + 48 | 0; + h2 = k[10338] | 0; + j2 = q2 + 47 | 0; + g2 = h2 + j2 | 0; + h2 = 0 - h2 | 0; + l2 = g2 & h2; + if (l2 >>> 0 <= q2 >>> 0) { + M2 = 0; + return M2 | 0; + } + a2 = k[10328] | 0; + if ((a2 | 0) != 0 ? (t2 = k[10326] | 0, y2 = t2 + l2 | 0, y2 >>> 0 <= t2 >>> 0 | y2 >>> 0 > a2 >>> 0) : 0) { + M2 = 0; + return M2 | 0; + } + d: + do + if (!(k[10329] & 4)) { + a2 = k[10224] | 0; + e: + do + if (a2) { + e2 = 41320; + while (1) { + c2 = k[e2 >> 2] | 0; + if (c2 >>> 0 <= a2 >>> 0 ? (r2 = e2 + 4 | 0, (c2 + (k[r2 >> 2] | 0) | 0) >>> 0 > a2 >>> 0) : 0) { + f2 = e2; + a2 = r2; + break; + } + e2 = k[e2 + 8 >> 2] | 0; + if (!e2) { + v2 = 174; + break e; + } + } + c2 = g2 - (k[10221] | 0) & h2; + if (c2 >>> 0 < 2147483647) { + e2 = bb(c2 | 0) | 0; + y2 = (e2 | 0) == ((k[f2 >> 2] | 0) + (k[a2 >> 2] | 0) | 0); + a2 = y2 ? c2 : 0; + if (y2) { + if ((e2 | 0) != (-1 | 0)) { + w2 = e2; + p2 = a2; + v2 = 194; + break d; + } + } else + v2 = 184; + } else + a2 = 0; + } else + v2 = 174; + while (0); + do + if ((v2 | 0) == 174) { + f2 = bb(0) | 0; + if ((f2 | 0) != (-1 | 0)) { + a2 = f2; + c2 = k[10337] | 0; + e2 = c2 + -1 | 0; + if (!(e2 & a2)) + c2 = l2; + else + c2 = l2 - a2 + (e2 + a2 & 0 - c2) | 0; + a2 = k[10326] | 0; + e2 = a2 + c2 | 0; + if (c2 >>> 0 > q2 >>> 0 & c2 >>> 0 < 2147483647) { + y2 = k[10328] | 0; + if ((y2 | 0) != 0 ? e2 >>> 0 <= a2 >>> 0 | e2 >>> 0 > y2 >>> 0 : 0) { + a2 = 0; + break; + } + e2 = bb(c2 | 0) | 0; + y2 = (e2 | 0) == (f2 | 0); + a2 = y2 ? c2 : 0; + if (y2) { + w2 = f2; + p2 = a2; + v2 = 194; + break d; + } else + v2 = 184; + } else + a2 = 0; + } else + a2 = 0; + } + while (0); + f: + do + if ((v2 | 0) == 184) { + f2 = 0 - c2 | 0; + do + if (i3 >>> 0 > c2 >>> 0 & (c2 >>> 0 < 2147483647 & (e2 | 0) != (-1 | 0)) ? (u2 = k[10338] | 0, u2 = j2 - c2 + u2 & 0 - u2, u2 >>> 0 < 2147483647) : 0) + if ((bb(u2 | 0) | 0) == (-1 | 0)) { + bb(f2 | 0) | 0; + break f; + } else { + c2 = u2 + c2 | 0; + break; + } + while (0); + if ((e2 | 0) != (-1 | 0)) { + w2 = e2; + p2 = c2; + v2 = 194; + break d; + } + } + while (0); + k[10329] = k[10329] | 4; + v2 = 191; + } else { + a2 = 0; + v2 = 191; + } + while (0); + if ((((v2 | 0) == 191 ? l2 >>> 0 < 2147483647 : 0) ? (w2 = bb(l2 | 0) | 0, x2 = bb(0) | 0, w2 >>> 0 < x2 >>> 0 & ((w2 | 0) != (-1 | 0) & (x2 | 0) != (-1 | 0))) : 0) ? (z2 = x2 - w2 | 0, A2 = z2 >>> 0 > (q2 + 40 | 0) >>> 0, A2) : 0) { + p2 = A2 ? z2 : a2; + v2 = 194; + } + if ((v2 | 0) == 194) { + a2 = (k[10326] | 0) + p2 | 0; + k[10326] = a2; + if (a2 >>> 0 > (k[10327] | 0) >>> 0) + k[10327] = a2; + g2 = k[10224] | 0; + g: + do + if (g2) { + f2 = 41320; + do { + a2 = k[f2 >> 2] | 0; + c2 = f2 + 4 | 0; + e2 = k[c2 >> 2] | 0; + if ((w2 | 0) == (a2 + e2 | 0)) { + B2 = a2; + C2 = c2; + D2 = e2; + E2 = f2; + v2 = 204; + break; + } + f2 = k[f2 + 8 >> 2] | 0; + } while ((f2 | 0) != 0); + if (((v2 | 0) == 204 ? (k[E2 + 12 >> 2] & 8 | 0) == 0 : 0) ? g2 >>> 0 < w2 >>> 0 & g2 >>> 0 >= B2 >>> 0 : 0) { + k[C2 >> 2] = D2 + p2; + M2 = (k[10221] | 0) + p2 | 0; + L2 = g2 + 8 | 0; + L2 = (L2 & 7 | 0) == 0 ? 0 : 0 - L2 & 7; + K2 = M2 - L2 | 0; + k[10224] = g2 + L2; + k[10221] = K2; + k[g2 + (L2 + 4) >> 2] = K2 | 1; + k[g2 + (M2 + 4) >> 2] = 40; + k[10225] = k[10340]; + break; + } + a2 = k[10222] | 0; + if (w2 >>> 0 < a2 >>> 0) { + k[10222] = w2; + a2 = w2; + } + c2 = w2 + p2 | 0; + f2 = 41320; + while (1) { + if ((k[f2 >> 2] | 0) == (c2 | 0)) { + e2 = f2; + c2 = f2; + v2 = 212; + break; + } + f2 = k[f2 + 8 >> 2] | 0; + if (!f2) { + c2 = 41320; + break; + } + } + if ((v2 | 0) == 212) + if (!(k[c2 + 12 >> 2] & 8)) { + k[e2 >> 2] = w2; + n2 = c2 + 4 | 0; + k[n2 >> 2] = (k[n2 >> 2] | 0) + p2; + n2 = w2 + 8 | 0; + n2 = (n2 & 7 | 0) == 0 ? 0 : 0 - n2 & 7; + j2 = w2 + (p2 + 8) | 0; + j2 = (j2 & 7 | 0) == 0 ? 0 : 0 - j2 & 7; + b2 = w2 + (j2 + p2) | 0; + m2 = n2 + q2 | 0; + o2 = w2 + m2 | 0; + l2 = b2 - (w2 + n2) - q2 | 0; + k[w2 + (n2 + 4) >> 2] = q2 | 3; + h: + do + if ((b2 | 0) != (g2 | 0)) { + if ((b2 | 0) == (k[10223] | 0)) { + M2 = (k[10220] | 0) + l2 | 0; + k[10220] = M2; + k[10223] = o2; + k[w2 + (m2 + 4) >> 2] = M2 | 1; + k[w2 + (M2 + m2) >> 2] = M2; + break; + } + h2 = p2 + 4 | 0; + c2 = k[w2 + (h2 + j2) >> 2] | 0; + if ((c2 & 3 | 0) == 1) { + i3 = c2 & -8; + f2 = c2 >>> 3; + i: + do + if (c2 >>> 0 >= 256) { + g2 = k[w2 + ((j2 | 24) + p2) >> 2] | 0; + d2 = k[w2 + (p2 + 12 + j2) >> 2] | 0; + do + if ((d2 | 0) == (b2 | 0)) { + e2 = j2 | 16; + d2 = w2 + (h2 + e2) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + d2 = w2 + (e2 + p2) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + J2 = 0; + break; + } + } + while (1) { + e2 = c2 + 20 | 0; + f2 = k[e2 >> 2] | 0; + if (f2) { + c2 = f2; + d2 = e2; + continue; + } + e2 = c2 + 16 | 0; + f2 = k[e2 >> 2] | 0; + if (!f2) + break; + else { + c2 = f2; + d2 = e2; + } + } + if (d2 >>> 0 < a2 >>> 0) + Pa(); + else { + k[d2 >> 2] = 0; + J2 = c2; + break; + } + } else { + e2 = k[w2 + ((j2 | 8) + p2) >> 2] | 0; + if (e2 >>> 0 < a2 >>> 0) + Pa(); + a2 = e2 + 12 | 0; + if ((k[a2 >> 2] | 0) != (b2 | 0)) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (b2 | 0)) { + k[a2 >> 2] = d2; + k[c2 >> 2] = e2; + J2 = d2; + break; + } else + Pa(); + } + while (0); + if (!g2) + break; + a2 = k[w2 + (p2 + 28 + j2) >> 2] | 0; + c2 = 41176 + (a2 << 2) | 0; + do + if ((b2 | 0) != (k[c2 >> 2] | 0)) { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + a2 = g2 + 16 | 0; + if ((k[a2 >> 2] | 0) == (b2 | 0)) + k[a2 >> 2] = J2; + else + k[g2 + 20 >> 2] = J2; + if (!J2) + break i; + } else { + k[c2 >> 2] = J2; + if (J2) + break; + k[10219] = k[10219] & ~(1 << a2); + break i; + } + while (0); + c2 = k[10222] | 0; + if (J2 >>> 0 < c2 >>> 0) + Pa(); + k[J2 + 24 >> 2] = g2; + b2 = j2 | 16; + a2 = k[w2 + (b2 + p2) >> 2] | 0; + do + if (a2) + if (a2 >>> 0 < c2 >>> 0) + Pa(); + else { + k[J2 + 16 >> 2] = a2; + k[a2 + 24 >> 2] = J2; + break; + } + while (0); + b2 = k[w2 + (h2 + b2) >> 2] | 0; + if (!b2) + break; + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[J2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = J2; + break; + } + } else { + d2 = k[w2 + ((j2 | 8) + p2) >> 2] | 0; + e2 = k[w2 + (p2 + 12 + j2) >> 2] | 0; + c2 = 40912 + (f2 << 1 << 2) | 0; + do + if ((d2 | 0) != (c2 | 0)) { + if (d2 >>> 0 < a2 >>> 0) + Pa(); + if ((k[d2 + 12 >> 2] | 0) == (b2 | 0)) + break; + Pa(); + } + while (0); + if ((e2 | 0) == (d2 | 0)) { + k[10218] = k[10218] & ~(1 << f2); + break; + } + do + if ((e2 | 0) == (c2 | 0)) + F2 = e2 + 8 | 0; + else { + if (e2 >>> 0 < a2 >>> 0) + Pa(); + a2 = e2 + 8 | 0; + if ((k[a2 >> 2] | 0) == (b2 | 0)) { + F2 = a2; + break; + } + Pa(); + } + while (0); + k[d2 + 12 >> 2] = e2; + k[F2 >> 2] = d2; + } + while (0); + b2 = w2 + ((i3 | j2) + p2) | 0; + e2 = i3 + l2 | 0; + } else + e2 = l2; + b2 = b2 + 4 | 0; + k[b2 >> 2] = k[b2 >> 2] & -2; + k[w2 + (m2 + 4) >> 2] = e2 | 1; + k[w2 + (e2 + m2) >> 2] = e2; + b2 = e2 >>> 3; + if (e2 >>> 0 < 256) { + a2 = b2 << 1; + d2 = 40912 + (a2 << 2) | 0; + c2 = k[10218] | 0; + b2 = 1 << b2; + do + if (!(c2 & b2)) { + k[10218] = c2 | b2; + K2 = 40912 + (a2 + 2 << 2) | 0; + L2 = d2; + } else { + b2 = 40912 + (a2 + 2 << 2) | 0; + a2 = k[b2 >> 2] | 0; + if (a2 >>> 0 >= (k[10222] | 0) >>> 0) { + K2 = b2; + L2 = a2; + break; + } + Pa(); + } + while (0); + k[K2 >> 2] = o2; + k[L2 + 12 >> 2] = o2; + k[w2 + (m2 + 8) >> 2] = L2; + k[w2 + (m2 + 12) >> 2] = d2; + break; + } + b2 = e2 >>> 8; + do + if (!b2) + d2 = 0; + else { + if (e2 >>> 0 > 16777215) { + d2 = 31; + break; + } + K2 = (b2 + 1048320 | 0) >>> 16 & 8; + L2 = b2 << K2; + J2 = (L2 + 520192 | 0) >>> 16 & 4; + L2 = L2 << J2; + d2 = (L2 + 245760 | 0) >>> 16 & 2; + d2 = 14 - (J2 | K2 | d2) + (L2 << d2 >>> 15) | 0; + d2 = e2 >>> (d2 + 7 | 0) & 1 | d2 << 1; + } + while (0); + b2 = 41176 + (d2 << 2) | 0; + k[w2 + (m2 + 28) >> 2] = d2; + k[w2 + (m2 + 20) >> 2] = 0; + k[w2 + (m2 + 16) >> 2] = 0; + a2 = k[10219] | 0; + c2 = 1 << d2; + if (!(a2 & c2)) { + k[10219] = a2 | c2; + k[b2 >> 2] = o2; + k[w2 + (m2 + 24) >> 2] = b2; + k[w2 + (m2 + 12) >> 2] = o2; + k[w2 + (m2 + 8) >> 2] = o2; + break; + } + b2 = k[b2 >> 2] | 0; + j: + do + if ((k[b2 + 4 >> 2] & -8 | 0) != (e2 | 0)) { + d2 = e2 << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); + while (1) { + a2 = b2 + 16 + (d2 >>> 31 << 2) | 0; + c2 = k[a2 >> 2] | 0; + if (!c2) + break; + if ((k[c2 + 4 >> 2] & -8 | 0) == (e2 | 0)) { + M2 = c2; + break j; + } else { + d2 = d2 << 1; + b2 = c2; + } + } + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[a2 >> 2] = o2; + k[w2 + (m2 + 24) >> 2] = b2; + k[w2 + (m2 + 12) >> 2] = o2; + k[w2 + (m2 + 8) >> 2] = o2; + break h; + } + } else + M2 = b2; + while (0); + b2 = M2 + 8 | 0; + a2 = k[b2 >> 2] | 0; + L2 = k[10222] | 0; + if (a2 >>> 0 >= L2 >>> 0 & M2 >>> 0 >= L2 >>> 0) { + k[a2 + 12 >> 2] = o2; + k[b2 >> 2] = o2; + k[w2 + (m2 + 8) >> 2] = a2; + k[w2 + (m2 + 12) >> 2] = M2; + k[w2 + (m2 + 24) >> 2] = 0; + break; + } else + Pa(); + } else { + M2 = (k[10221] | 0) + l2 | 0; + k[10221] = M2; + k[10224] = o2; + k[w2 + (m2 + 4) >> 2] = M2 | 1; + } + while (0); + M2 = w2 + (n2 | 8) | 0; + return M2 | 0; + } else + c2 = 41320; + while (1) { + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 <= g2 >>> 0 ? (b2 = k[c2 + 4 >> 2] | 0, d2 = a2 + b2 | 0, d2 >>> 0 > g2 >>> 0) : 0) + break; + c2 = k[c2 + 8 >> 2] | 0; + } + e2 = a2 + (b2 + -39) | 0; + a2 = a2 + (b2 + -47 + ((e2 & 7 | 0) == 0 ? 0 : 0 - e2 & 7)) | 0; + e2 = g2 + 16 | 0; + a2 = a2 >>> 0 < e2 >>> 0 ? g2 : a2; + b2 = a2 + 8 | 0; + c2 = w2 + 8 | 0; + c2 = (c2 & 7 | 0) == 0 ? 0 : 0 - c2 & 7; + M2 = p2 + -40 - c2 | 0; + k[10224] = w2 + c2; + k[10221] = M2; + k[w2 + (c2 + 4) >> 2] = M2 | 1; + k[w2 + (p2 + -36) >> 2] = 40; + k[10225] = k[10340]; + c2 = a2 + 4 | 0; + k[c2 >> 2] = 27; + k[b2 >> 2] = k[10330]; + k[b2 + 4 >> 2] = k[10331]; + k[b2 + 8 >> 2] = k[10332]; + k[b2 + 12 >> 2] = k[10333]; + k[10330] = w2; + k[10331] = p2; + k[10333] = 0; + k[10332] = b2; + b2 = a2 + 28 | 0; + k[b2 >> 2] = 7; + if ((a2 + 32 | 0) >>> 0 < d2 >>> 0) + do { + M2 = b2; + b2 = b2 + 4 | 0; + k[b2 >> 2] = 7; + } while ((M2 + 8 | 0) >>> 0 < d2 >>> 0); + if ((a2 | 0) != (g2 | 0)) { + f2 = a2 - g2 | 0; + k[c2 >> 2] = k[c2 >> 2] & -2; + k[g2 + 4 >> 2] = f2 | 1; + k[a2 >> 2] = f2; + b2 = f2 >>> 3; + if (f2 >>> 0 < 256) { + a2 = b2 << 1; + d2 = 40912 + (a2 << 2) | 0; + c2 = k[10218] | 0; + b2 = 1 << b2; + if (c2 & b2) { + b2 = 40912 + (a2 + 2 << 2) | 0; + a2 = k[b2 >> 2] | 0; + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + G2 = b2; + H2 = a2; + } + } else { + k[10218] = c2 | b2; + G2 = 40912 + (a2 + 2 << 2) | 0; + H2 = d2; + } + k[G2 >> 2] = g2; + k[H2 + 12 >> 2] = g2; + k[g2 + 8 >> 2] = H2; + k[g2 + 12 >> 2] = d2; + break; + } + b2 = f2 >>> 8; + if (b2) + if (f2 >>> 0 > 16777215) + d2 = 31; + else { + L2 = (b2 + 1048320 | 0) >>> 16 & 8; + M2 = b2 << L2; + K2 = (M2 + 520192 | 0) >>> 16 & 4; + M2 = M2 << K2; + d2 = (M2 + 245760 | 0) >>> 16 & 2; + d2 = 14 - (K2 | L2 | d2) + (M2 << d2 >>> 15) | 0; + d2 = f2 >>> (d2 + 7 | 0) & 1 | d2 << 1; + } + else + d2 = 0; + c2 = 41176 + (d2 << 2) | 0; + k[g2 + 28 >> 2] = d2; + k[g2 + 20 >> 2] = 0; + k[e2 >> 2] = 0; + b2 = k[10219] | 0; + a2 = 1 << d2; + if (!(b2 & a2)) { + k[10219] = b2 | a2; + k[c2 >> 2] = g2; + k[g2 + 24 >> 2] = c2; + k[g2 + 12 >> 2] = g2; + k[g2 + 8 >> 2] = g2; + break; + } + b2 = k[c2 >> 2] | 0; + k: + do + if ((k[b2 + 4 >> 2] & -8 | 0) != (f2 | 0)) { + d2 = f2 << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); + while (1) { + a2 = b2 + 16 + (d2 >>> 31 << 2) | 0; + c2 = k[a2 >> 2] | 0; + if (!c2) + break; + if ((k[c2 + 4 >> 2] & -8 | 0) == (f2 | 0)) { + I2 = c2; + break k; + } else { + d2 = d2 << 1; + b2 = c2; + } + } + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[a2 >> 2] = g2; + k[g2 + 24 >> 2] = b2; + k[g2 + 12 >> 2] = g2; + k[g2 + 8 >> 2] = g2; + break g; + } + } else + I2 = b2; + while (0); + b2 = I2 + 8 | 0; + a2 = k[b2 >> 2] | 0; + M2 = k[10222] | 0; + if (a2 >>> 0 >= M2 >>> 0 & I2 >>> 0 >= M2 >>> 0) { + k[a2 + 12 >> 2] = g2; + k[b2 >> 2] = g2; + k[g2 + 8 >> 2] = a2; + k[g2 + 12 >> 2] = I2; + k[g2 + 24 >> 2] = 0; + break; + } else + Pa(); + } + } else { + M2 = k[10222] | 0; + if ((M2 | 0) == 0 | w2 >>> 0 < M2 >>> 0) + k[10222] = w2; + k[10330] = w2; + k[10331] = p2; + k[10333] = 0; + k[10227] = k[10336]; + k[10226] = -1; + b2 = 0; + do { + M2 = b2 << 1; + L2 = 40912 + (M2 << 2) | 0; + k[40912 + (M2 + 3 << 2) >> 2] = L2; + k[40912 + (M2 + 2 << 2) >> 2] = L2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != 32); + M2 = w2 + 8 | 0; + M2 = (M2 & 7 | 0) == 0 ? 0 : 0 - M2 & 7; + L2 = p2 + -40 - M2 | 0; + k[10224] = w2 + M2; + k[10221] = L2; + k[w2 + (M2 + 4) >> 2] = L2 | 1; + k[w2 + (p2 + -36) >> 2] = 40; + k[10225] = k[10340]; + } + while (0); + b2 = k[10221] | 0; + if (b2 >>> 0 > q2 >>> 0) { + L2 = b2 - q2 | 0; + k[10221] = L2; + M2 = k[10224] | 0; + k[10224] = M2 + q2; + k[M2 + (q2 + 4) >> 2] = L2 | 1; + k[M2 + 4 >> 2] = q2 | 3; + M2 = M2 + 8 | 0; + return M2 | 0; + } + } + M2 = mk() | 0; + k[M2 >> 2] = 12; + M2 = 0; + return M2 | 0; + } + function Ql(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0; + if (!a2) + return; + b2 = a2 + -8 | 0; + h2 = k[10222] | 0; + if (b2 >>> 0 < h2 >>> 0) + Pa(); + c2 = k[a2 + -4 >> 2] | 0; + d2 = c2 & 3; + if ((d2 | 0) == 1) + Pa(); + o2 = c2 & -8; + q2 = a2 + (o2 + -8) | 0; + do + if (!(c2 & 1)) { + b2 = k[b2 >> 2] | 0; + if (!d2) + return; + i3 = -8 - b2 | 0; + l2 = a2 + i3 | 0; + m2 = b2 + o2 | 0; + if (l2 >>> 0 < h2 >>> 0) + Pa(); + if ((l2 | 0) == (k[10223] | 0)) { + b2 = a2 + (o2 + -4) | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 & 3 | 0) != 3) { + u2 = l2; + f2 = m2; + break; + } + k[10220] = m2; + k[b2 >> 2] = c2 & -2; + k[a2 + (i3 + 4) >> 2] = m2 | 1; + k[q2 >> 2] = m2; + return; + } + e2 = b2 >>> 3; + if (b2 >>> 0 < 256) { + d2 = k[a2 + (i3 + 8) >> 2] | 0; + c2 = k[a2 + (i3 + 12) >> 2] | 0; + b2 = 40912 + (e2 << 1 << 2) | 0; + if ((d2 | 0) != (b2 | 0)) { + if (d2 >>> 0 < h2 >>> 0) + Pa(); + if ((k[d2 + 12 >> 2] | 0) != (l2 | 0)) + Pa(); + } + if ((c2 | 0) == (d2 | 0)) { + k[10218] = k[10218] & ~(1 << e2); + u2 = l2; + f2 = m2; + break; + } + if ((c2 | 0) != (b2 | 0)) { + if (c2 >>> 0 < h2 >>> 0) + Pa(); + b2 = c2 + 8 | 0; + if ((k[b2 >> 2] | 0) == (l2 | 0)) + g2 = b2; + else + Pa(); + } else + g2 = c2 + 8 | 0; + k[d2 + 12 >> 2] = c2; + k[g2 >> 2] = d2; + u2 = l2; + f2 = m2; + break; + } + g2 = k[a2 + (i3 + 24) >> 2] | 0; + d2 = k[a2 + (i3 + 12) >> 2] | 0; + do + if ((d2 | 0) == (l2 | 0)) { + c2 = a2 + (i3 + 20) | 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + c2 = a2 + (i3 + 16) | 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + j2 = 0; + break; + } + } + while (1) { + d2 = b2 + 20 | 0; + e2 = k[d2 >> 2] | 0; + if (e2) { + b2 = e2; + c2 = d2; + continue; + } + d2 = b2 + 16 | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + break; + else { + b2 = e2; + c2 = d2; + } + } + if (c2 >>> 0 < h2 >>> 0) + Pa(); + else { + k[c2 >> 2] = 0; + j2 = b2; + break; + } + } else { + e2 = k[a2 + (i3 + 8) >> 2] | 0; + if (e2 >>> 0 < h2 >>> 0) + Pa(); + b2 = e2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (l2 | 0)) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (l2 | 0)) { + k[b2 >> 2] = d2; + k[c2 >> 2] = e2; + j2 = d2; + break; + } else + Pa(); + } + while (0); + if (g2) { + b2 = k[a2 + (i3 + 28) >> 2] | 0; + c2 = 41176 + (b2 << 2) | 0; + if ((l2 | 0) == (k[c2 >> 2] | 0)) { + k[c2 >> 2] = j2; + if (!j2) { + k[10219] = k[10219] & ~(1 << b2); + u2 = l2; + f2 = m2; + break; + } + } else { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = g2 + 16 | 0; + if ((k[b2 >> 2] | 0) == (l2 | 0)) + k[b2 >> 2] = j2; + else + k[g2 + 20 >> 2] = j2; + if (!j2) { + u2 = l2; + f2 = m2; + break; + } + } + c2 = k[10222] | 0; + if (j2 >>> 0 < c2 >>> 0) + Pa(); + k[j2 + 24 >> 2] = g2; + b2 = k[a2 + (i3 + 16) >> 2] | 0; + do + if (b2) + if (b2 >>> 0 < c2 >>> 0) + Pa(); + else { + k[j2 + 16 >> 2] = b2; + k[b2 + 24 >> 2] = j2; + break; + } + while (0); + b2 = k[a2 + (i3 + 20) >> 2] | 0; + if (b2) + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[j2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = j2; + u2 = l2; + f2 = m2; + break; + } + else { + u2 = l2; + f2 = m2; + } + } else { + u2 = l2; + f2 = m2; + } + } else { + u2 = b2; + f2 = o2; + } + while (0); + if (u2 >>> 0 >= q2 >>> 0) + Pa(); + b2 = a2 + (o2 + -4) | 0; + c2 = k[b2 >> 2] | 0; + if (!(c2 & 1)) + Pa(); + if (!(c2 & 2)) { + if ((q2 | 0) == (k[10224] | 0)) { + t2 = (k[10221] | 0) + f2 | 0; + k[10221] = t2; + k[10224] = u2; + k[u2 + 4 >> 2] = t2 | 1; + if ((u2 | 0) != (k[10223] | 0)) + return; + k[10223] = 0; + k[10220] = 0; + return; + } + if ((q2 | 0) == (k[10223] | 0)) { + t2 = (k[10220] | 0) + f2 | 0; + k[10220] = t2; + k[10223] = u2; + k[u2 + 4 >> 2] = t2 | 1; + k[u2 + t2 >> 2] = t2; + return; + } + f2 = (c2 & -8) + f2 | 0; + e2 = c2 >>> 3; + do + if (c2 >>> 0 >= 256) { + g2 = k[a2 + (o2 + 16) >> 2] | 0; + b2 = k[a2 + (o2 | 4) >> 2] | 0; + do + if ((b2 | 0) == (q2 | 0)) { + c2 = a2 + (o2 + 12) | 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + c2 = a2 + (o2 + 8) | 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + p2 = 0; + break; + } + } + while (1) { + d2 = b2 + 20 | 0; + e2 = k[d2 >> 2] | 0; + if (e2) { + b2 = e2; + c2 = d2; + continue; + } + d2 = b2 + 16 | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + break; + else { + b2 = e2; + c2 = d2; + } + } + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[c2 >> 2] = 0; + p2 = b2; + break; + } + } else { + c2 = k[a2 + o2 >> 2] | 0; + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + d2 = c2 + 12 | 0; + if ((k[d2 >> 2] | 0) != (q2 | 0)) + Pa(); + e2 = b2 + 8 | 0; + if ((k[e2 >> 2] | 0) == (q2 | 0)) { + k[d2 >> 2] = b2; + k[e2 >> 2] = c2; + p2 = b2; + break; + } else + Pa(); + } + while (0); + if (g2) { + b2 = k[a2 + (o2 + 20) >> 2] | 0; + c2 = 41176 + (b2 << 2) | 0; + if ((q2 | 0) == (k[c2 >> 2] | 0)) { + k[c2 >> 2] = p2; + if (!p2) { + k[10219] = k[10219] & ~(1 << b2); + break; + } + } else { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = g2 + 16 | 0; + if ((k[b2 >> 2] | 0) == (q2 | 0)) + k[b2 >> 2] = p2; + else + k[g2 + 20 >> 2] = p2; + if (!p2) + break; + } + c2 = k[10222] | 0; + if (p2 >>> 0 < c2 >>> 0) + Pa(); + k[p2 + 24 >> 2] = g2; + b2 = k[a2 + (o2 + 8) >> 2] | 0; + do + if (b2) + if (b2 >>> 0 < c2 >>> 0) + Pa(); + else { + k[p2 + 16 >> 2] = b2; + k[b2 + 24 >> 2] = p2; + break; + } + while (0); + b2 = k[a2 + (o2 + 12) >> 2] | 0; + if (b2) + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[p2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = p2; + break; + } + } + } else { + d2 = k[a2 + o2 >> 2] | 0; + c2 = k[a2 + (o2 | 4) >> 2] | 0; + b2 = 40912 + (e2 << 1 << 2) | 0; + if ((d2 | 0) != (b2 | 0)) { + if (d2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + if ((k[d2 + 12 >> 2] | 0) != (q2 | 0)) + Pa(); + } + if ((c2 | 0) == (d2 | 0)) { + k[10218] = k[10218] & ~(1 << e2); + break; + } + if ((c2 | 0) != (b2 | 0)) { + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = c2 + 8 | 0; + if ((k[b2 >> 2] | 0) == (q2 | 0)) + n2 = b2; + else + Pa(); + } else + n2 = c2 + 8 | 0; + k[d2 + 12 >> 2] = c2; + k[n2 >> 2] = d2; + } + while (0); + k[u2 + 4 >> 2] = f2 | 1; + k[u2 + f2 >> 2] = f2; + if ((u2 | 0) == (k[10223] | 0)) { + k[10220] = f2; + return; + } + } else { + k[b2 >> 2] = c2 & -2; + k[u2 + 4 >> 2] = f2 | 1; + k[u2 + f2 >> 2] = f2; + } + b2 = f2 >>> 3; + if (f2 >>> 0 < 256) { + c2 = b2 << 1; + e2 = 40912 + (c2 << 2) | 0; + d2 = k[10218] | 0; + b2 = 1 << b2; + if (d2 & b2) { + b2 = 40912 + (c2 + 2 << 2) | 0; + c2 = k[b2 >> 2] | 0; + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + r2 = b2; + s2 = c2; + } + } else { + k[10218] = d2 | b2; + r2 = 40912 + (c2 + 2 << 2) | 0; + s2 = e2; + } + k[r2 >> 2] = u2; + k[s2 + 12 >> 2] = u2; + k[u2 + 8 >> 2] = s2; + k[u2 + 12 >> 2] = e2; + return; + } + b2 = f2 >>> 8; + if (b2) + if (f2 >>> 0 > 16777215) + e2 = 31; + else { + r2 = (b2 + 1048320 | 0) >>> 16 & 8; + s2 = b2 << r2; + q2 = (s2 + 520192 | 0) >>> 16 & 4; + s2 = s2 << q2; + e2 = (s2 + 245760 | 0) >>> 16 & 2; + e2 = 14 - (q2 | r2 | e2) + (s2 << e2 >>> 15) | 0; + e2 = f2 >>> (e2 + 7 | 0) & 1 | e2 << 1; + } + else + e2 = 0; + b2 = 41176 + (e2 << 2) | 0; + k[u2 + 28 >> 2] = e2; + k[u2 + 20 >> 2] = 0; + k[u2 + 16 >> 2] = 0; + c2 = k[10219] | 0; + d2 = 1 << e2; + a: + do + if (c2 & d2) { + b2 = k[b2 >> 2] | 0; + b: + do + if ((k[b2 + 4 >> 2] & -8 | 0) != (f2 | 0)) { + e2 = f2 << ((e2 | 0) == 31 ? 0 : 25 - (e2 >>> 1) | 0); + while (1) { + c2 = b2 + 16 + (e2 >>> 31 << 2) | 0; + d2 = k[c2 >> 2] | 0; + if (!d2) + break; + if ((k[d2 + 4 >> 2] & -8 | 0) == (f2 | 0)) { + t2 = d2; + break b; + } else { + e2 = e2 << 1; + b2 = d2; + } + } + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[c2 >> 2] = u2; + k[u2 + 24 >> 2] = b2; + k[u2 + 12 >> 2] = u2; + k[u2 + 8 >> 2] = u2; + break a; + } + } else + t2 = b2; + while (0); + b2 = t2 + 8 | 0; + c2 = k[b2 >> 2] | 0; + s2 = k[10222] | 0; + if (c2 >>> 0 >= s2 >>> 0 & t2 >>> 0 >= s2 >>> 0) { + k[c2 + 12 >> 2] = u2; + k[b2 >> 2] = u2; + k[u2 + 8 >> 2] = c2; + k[u2 + 12 >> 2] = t2; + k[u2 + 24 >> 2] = 0; + break; + } else + Pa(); + } else { + k[10219] = c2 | d2; + k[b2 >> 2] = u2; + k[u2 + 24 >> 2] = b2; + k[u2 + 12 >> 2] = u2; + k[u2 + 8 >> 2] = u2; + } + while (0); + u2 = (k[10226] | 0) + -1 | 0; + k[10226] = u2; + if (!u2) + b2 = 41328; + else + return; + while (1) { + b2 = k[b2 >> 2] | 0; + if (!b2) + break; + else + b2 = b2 + 8 | 0; + } + k[10226] = -1; + return; + } + function Rl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + if (a2) { + c2 = ia(b2, a2) | 0; + if ((b2 | a2) >>> 0 > 65535) + c2 = ((c2 >>> 0) / (a2 >>> 0) | 0 | 0) == (b2 | 0) ? c2 : -1; + } else + c2 = 0; + b2 = Pl(c2) | 0; + if (!b2) + return b2 | 0; + if (!(k[b2 + -4 >> 2] & 3)) + return b2 | 0; + sw(b2 | 0, 0, c2 | 0) | 0; + return b2 | 0; + } + function Sl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + if (!a2) { + a2 = Pl(b2) | 0; + return a2 | 0; + } + if (b2 >>> 0 > 4294967231) { + a2 = mk() | 0; + k[a2 >> 2] = 12; + a2 = 0; + return a2 | 0; + } + c2 = Tl(a2 + -8 | 0, b2 >>> 0 < 11 ? 16 : b2 + 11 & -8) | 0; + if (c2) { + a2 = c2 + 8 | 0; + return a2 | 0; + } + c2 = Pl(b2) | 0; + if (!c2) { + a2 = 0; + return a2 | 0; + } + d2 = k[a2 + -4 >> 2] | 0; + d2 = (d2 & -8) - ((d2 & 3 | 0) == 0 ? 8 : 4) | 0; + vw(c2 | 0, a2 | 0, (d2 >>> 0 < b2 >>> 0 ? d2 : b2) | 0) | 0; + Ql(a2); + a2 = c2; + return a2 | 0; + } + function Tl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = a2 + 4 | 0; + p2 = k[o2 >> 2] | 0; + i3 = p2 & -8; + l2 = a2 + i3 | 0; + h2 = k[10222] | 0; + c2 = p2 & 3; + if (!((c2 | 0) != 1 & a2 >>> 0 >= h2 >>> 0 & a2 >>> 0 < l2 >>> 0)) + Pa(); + d2 = a2 + (i3 | 4) | 0; + e2 = k[d2 >> 2] | 0; + if (!(e2 & 1)) + Pa(); + if (!c2) { + if (b2 >>> 0 < 256) { + a2 = 0; + return a2 | 0; + } + if (i3 >>> 0 >= (b2 + 4 | 0) >>> 0 ? (i3 - b2 | 0) >>> 0 <= k[10338] << 1 >>> 0 : 0) + return a2 | 0; + a2 = 0; + return a2 | 0; + } + if (i3 >>> 0 >= b2 >>> 0) { + c2 = i3 - b2 | 0; + if (c2 >>> 0 <= 15) + return a2 | 0; + k[o2 >> 2] = p2 & 1 | b2 | 2; + k[a2 + (b2 + 4) >> 2] = c2 | 3; + k[d2 >> 2] = k[d2 >> 2] | 1; + Ul(a2 + b2 | 0, c2); + return a2 | 0; + } + if ((l2 | 0) == (k[10224] | 0)) { + c2 = (k[10221] | 0) + i3 | 0; + if (c2 >>> 0 <= b2 >>> 0) { + a2 = 0; + return a2 | 0; + } + n2 = c2 - b2 | 0; + k[o2 >> 2] = p2 & 1 | b2 | 2; + k[a2 + (b2 + 4) >> 2] = n2 | 1; + k[10224] = a2 + b2; + k[10221] = n2; + return a2 | 0; + } + if ((l2 | 0) == (k[10223] | 0)) { + d2 = (k[10220] | 0) + i3 | 0; + if (d2 >>> 0 < b2 >>> 0) { + a2 = 0; + return a2 | 0; + } + c2 = d2 - b2 | 0; + if (c2 >>> 0 > 15) { + k[o2 >> 2] = p2 & 1 | b2 | 2; + k[a2 + (b2 + 4) >> 2] = c2 | 1; + k[a2 + d2 >> 2] = c2; + d2 = a2 + (d2 + 4) | 0; + k[d2 >> 2] = k[d2 >> 2] & -2; + d2 = a2 + b2 | 0; + } else { + k[o2 >> 2] = p2 & 1 | d2 | 2; + d2 = a2 + (d2 + 4) | 0; + k[d2 >> 2] = k[d2 >> 2] | 1; + d2 = 0; + c2 = 0; + } + k[10220] = c2; + k[10223] = d2; + return a2 | 0; + } + if (e2 & 2) { + a2 = 0; + return a2 | 0; + } + m2 = (e2 & -8) + i3 | 0; + if (m2 >>> 0 < b2 >>> 0) { + a2 = 0; + return a2 | 0; + } + n2 = m2 - b2 | 0; + f2 = e2 >>> 3; + do + if (e2 >>> 0 >= 256) { + g2 = k[a2 + (i3 + 24) >> 2] | 0; + f2 = k[a2 + (i3 + 12) >> 2] | 0; + do + if ((f2 | 0) == (l2 | 0)) { + d2 = a2 + (i3 + 20) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + d2 = a2 + (i3 + 16) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + j2 = 0; + break; + } + } + while (1) { + e2 = c2 + 20 | 0; + f2 = k[e2 >> 2] | 0; + if (f2) { + c2 = f2; + d2 = e2; + continue; + } + e2 = c2 + 16 | 0; + f2 = k[e2 >> 2] | 0; + if (!f2) + break; + else { + c2 = f2; + d2 = e2; + } + } + if (d2 >>> 0 < h2 >>> 0) + Pa(); + else { + k[d2 >> 2] = 0; + j2 = c2; + break; + } + } else { + e2 = k[a2 + (i3 + 8) >> 2] | 0; + if (e2 >>> 0 < h2 >>> 0) + Pa(); + c2 = e2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (l2 | 0)) + Pa(); + d2 = f2 + 8 | 0; + if ((k[d2 >> 2] | 0) == (l2 | 0)) { + k[c2 >> 2] = f2; + k[d2 >> 2] = e2; + j2 = f2; + break; + } else + Pa(); + } + while (0); + if (g2) { + c2 = k[a2 + (i3 + 28) >> 2] | 0; + d2 = 41176 + (c2 << 2) | 0; + if ((l2 | 0) == (k[d2 >> 2] | 0)) { + k[d2 >> 2] = j2; + if (!j2) { + k[10219] = k[10219] & ~(1 << c2); + break; + } + } else { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + c2 = g2 + 16 | 0; + if ((k[c2 >> 2] | 0) == (l2 | 0)) + k[c2 >> 2] = j2; + else + k[g2 + 20 >> 2] = j2; + if (!j2) + break; + } + d2 = k[10222] | 0; + if (j2 >>> 0 < d2 >>> 0) + Pa(); + k[j2 + 24 >> 2] = g2; + c2 = k[a2 + (i3 + 16) >> 2] | 0; + do + if (c2) + if (c2 >>> 0 < d2 >>> 0) + Pa(); + else { + k[j2 + 16 >> 2] = c2; + k[c2 + 24 >> 2] = j2; + break; + } + while (0); + c2 = k[a2 + (i3 + 20) >> 2] | 0; + if (c2) + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[j2 + 20 >> 2] = c2; + k[c2 + 24 >> 2] = j2; + break; + } + } + } else { + e2 = k[a2 + (i3 + 8) >> 2] | 0; + d2 = k[a2 + (i3 + 12) >> 2] | 0; + c2 = 40912 + (f2 << 1 << 2) | 0; + if ((e2 | 0) != (c2 | 0)) { + if (e2 >>> 0 < h2 >>> 0) + Pa(); + if ((k[e2 + 12 >> 2] | 0) != (l2 | 0)) + Pa(); + } + if ((d2 | 0) == (e2 | 0)) { + k[10218] = k[10218] & ~(1 << f2); + break; + } + if ((d2 | 0) != (c2 | 0)) { + if (d2 >>> 0 < h2 >>> 0) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (l2 | 0)) + g2 = c2; + else + Pa(); + } else + g2 = d2 + 8 | 0; + k[e2 + 12 >> 2] = d2; + k[g2 >> 2] = e2; + } + while (0); + if (n2 >>> 0 < 16) { + k[o2 >> 2] = m2 | p2 & 1 | 2; + b2 = a2 + (m2 | 4) | 0; + k[b2 >> 2] = k[b2 >> 2] | 1; + return a2 | 0; + } else { + k[o2 >> 2] = p2 & 1 | b2 | 2; + k[a2 + (b2 + 4) >> 2] = n2 | 3; + p2 = a2 + (m2 | 4) | 0; + k[p2 >> 2] = k[p2 >> 2] | 1; + Ul(a2 + b2 | 0, n2); + return a2 | 0; + } + return 0; + } + function Ul(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; + q2 = a2 + b2 | 0; + c2 = k[a2 + 4 >> 2] | 0; + do + if (!(c2 & 1)) { + j2 = k[a2 >> 2] | 0; + if (!(c2 & 3)) + return; + n2 = a2 + (0 - j2) | 0; + m2 = j2 + b2 | 0; + i3 = k[10222] | 0; + if (n2 >>> 0 < i3 >>> 0) + Pa(); + if ((n2 | 0) == (k[10223] | 0)) { + d2 = a2 + (b2 + 4) | 0; + c2 = k[d2 >> 2] | 0; + if ((c2 & 3 | 0) != 3) { + t2 = n2; + g2 = m2; + break; + } + k[10220] = m2; + k[d2 >> 2] = c2 & -2; + k[a2 + (4 - j2) >> 2] = m2 | 1; + k[q2 >> 2] = m2; + return; + } + f2 = j2 >>> 3; + if (j2 >>> 0 < 256) { + e2 = k[a2 + (8 - j2) >> 2] | 0; + d2 = k[a2 + (12 - j2) >> 2] | 0; + c2 = 40912 + (f2 << 1 << 2) | 0; + if ((e2 | 0) != (c2 | 0)) { + if (e2 >>> 0 < i3 >>> 0) + Pa(); + if ((k[e2 + 12 >> 2] | 0) != (n2 | 0)) + Pa(); + } + if ((d2 | 0) == (e2 | 0)) { + k[10218] = k[10218] & ~(1 << f2); + t2 = n2; + g2 = m2; + break; + } + if ((d2 | 0) != (c2 | 0)) { + if (d2 >>> 0 < i3 >>> 0) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (n2 | 0)) + h2 = c2; + else + Pa(); + } else + h2 = d2 + 8 | 0; + k[e2 + 12 >> 2] = d2; + k[h2 >> 2] = e2; + t2 = n2; + g2 = m2; + break; + } + h2 = k[a2 + (24 - j2) >> 2] | 0; + e2 = k[a2 + (12 - j2) >> 2] | 0; + do + if ((e2 | 0) == (n2 | 0)) { + e2 = 16 - j2 | 0; + d2 = a2 + (e2 + 4) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + d2 = a2 + e2 | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + l2 = 0; + break; + } + } + while (1) { + e2 = c2 + 20 | 0; + f2 = k[e2 >> 2] | 0; + if (f2) { + c2 = f2; + d2 = e2; + continue; + } + e2 = c2 + 16 | 0; + f2 = k[e2 >> 2] | 0; + if (!f2) + break; + else { + c2 = f2; + d2 = e2; + } + } + if (d2 >>> 0 < i3 >>> 0) + Pa(); + else { + k[d2 >> 2] = 0; + l2 = c2; + break; + } + } else { + f2 = k[a2 + (8 - j2) >> 2] | 0; + if (f2 >>> 0 < i3 >>> 0) + Pa(); + c2 = f2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (n2 | 0)) + Pa(); + d2 = e2 + 8 | 0; + if ((k[d2 >> 2] | 0) == (n2 | 0)) { + k[c2 >> 2] = e2; + k[d2 >> 2] = f2; + l2 = e2; + break; + } else + Pa(); + } + while (0); + if (h2) { + c2 = k[a2 + (28 - j2) >> 2] | 0; + d2 = 41176 + (c2 << 2) | 0; + if ((n2 | 0) == (k[d2 >> 2] | 0)) { + k[d2 >> 2] = l2; + if (!l2) { + k[10219] = k[10219] & ~(1 << c2); + t2 = n2; + g2 = m2; + break; + } + } else { + if (h2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + c2 = h2 + 16 | 0; + if ((k[c2 >> 2] | 0) == (n2 | 0)) + k[c2 >> 2] = l2; + else + k[h2 + 20 >> 2] = l2; + if (!l2) { + t2 = n2; + g2 = m2; + break; + } + } + e2 = k[10222] | 0; + if (l2 >>> 0 < e2 >>> 0) + Pa(); + k[l2 + 24 >> 2] = h2; + c2 = 16 - j2 | 0; + d2 = k[a2 + c2 >> 2] | 0; + do + if (d2) + if (d2 >>> 0 < e2 >>> 0) + Pa(); + else { + k[l2 + 16 >> 2] = d2; + k[d2 + 24 >> 2] = l2; + break; + } + while (0); + c2 = k[a2 + (c2 + 4) >> 2] | 0; + if (c2) + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[l2 + 20 >> 2] = c2; + k[c2 + 24 >> 2] = l2; + t2 = n2; + g2 = m2; + break; + } + else { + t2 = n2; + g2 = m2; + } + } else { + t2 = n2; + g2 = m2; + } + } else { + t2 = a2; + g2 = b2; + } + while (0); + i3 = k[10222] | 0; + if (q2 >>> 0 < i3 >>> 0) + Pa(); + c2 = a2 + (b2 + 4) | 0; + d2 = k[c2 >> 2] | 0; + if (!(d2 & 2)) { + if ((q2 | 0) == (k[10224] | 0)) { + s2 = (k[10221] | 0) + g2 | 0; + k[10221] = s2; + k[10224] = t2; + k[t2 + 4 >> 2] = s2 | 1; + if ((t2 | 0) != (k[10223] | 0)) + return; + k[10223] = 0; + k[10220] = 0; + return; + } + if ((q2 | 0) == (k[10223] | 0)) { + s2 = (k[10220] | 0) + g2 | 0; + k[10220] = s2; + k[10223] = t2; + k[t2 + 4 >> 2] = s2 | 1; + k[t2 + s2 >> 2] = s2; + return; + } + g2 = (d2 & -8) + g2 | 0; + f2 = d2 >>> 3; + do + if (d2 >>> 0 >= 256) { + h2 = k[a2 + (b2 + 24) >> 2] | 0; + e2 = k[a2 + (b2 + 12) >> 2] | 0; + do + if ((e2 | 0) == (q2 | 0)) { + d2 = a2 + (b2 + 20) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + d2 = a2 + (b2 + 16) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + p2 = 0; + break; + } + } + while (1) { + e2 = c2 + 20 | 0; + f2 = k[e2 >> 2] | 0; + if (f2) { + c2 = f2; + d2 = e2; + continue; + } + e2 = c2 + 16 | 0; + f2 = k[e2 >> 2] | 0; + if (!f2) + break; + else { + c2 = f2; + d2 = e2; + } + } + if (d2 >>> 0 < i3 >>> 0) + Pa(); + else { + k[d2 >> 2] = 0; + p2 = c2; + break; + } + } else { + f2 = k[a2 + (b2 + 8) >> 2] | 0; + if (f2 >>> 0 < i3 >>> 0) + Pa(); + c2 = f2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (q2 | 0)) + Pa(); + d2 = e2 + 8 | 0; + if ((k[d2 >> 2] | 0) == (q2 | 0)) { + k[c2 >> 2] = e2; + k[d2 >> 2] = f2; + p2 = e2; + break; + } else + Pa(); + } + while (0); + if (h2) { + c2 = k[a2 + (b2 + 28) >> 2] | 0; + d2 = 41176 + (c2 << 2) | 0; + if ((q2 | 0) == (k[d2 >> 2] | 0)) { + k[d2 >> 2] = p2; + if (!p2) { + k[10219] = k[10219] & ~(1 << c2); + break; + } + } else { + if (h2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + c2 = h2 + 16 | 0; + if ((k[c2 >> 2] | 0) == (q2 | 0)) + k[c2 >> 2] = p2; + else + k[h2 + 20 >> 2] = p2; + if (!p2) + break; + } + d2 = k[10222] | 0; + if (p2 >>> 0 < d2 >>> 0) + Pa(); + k[p2 + 24 >> 2] = h2; + c2 = k[a2 + (b2 + 16) >> 2] | 0; + do + if (c2) + if (c2 >>> 0 < d2 >>> 0) + Pa(); + else { + k[p2 + 16 >> 2] = c2; + k[c2 + 24 >> 2] = p2; + break; + } + while (0); + c2 = k[a2 + (b2 + 20) >> 2] | 0; + if (c2) + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[p2 + 20 >> 2] = c2; + k[c2 + 24 >> 2] = p2; + break; + } + } + } else { + e2 = k[a2 + (b2 + 8) >> 2] | 0; + d2 = k[a2 + (b2 + 12) >> 2] | 0; + c2 = 40912 + (f2 << 1 << 2) | 0; + if ((e2 | 0) != (c2 | 0)) { + if (e2 >>> 0 < i3 >>> 0) + Pa(); + if ((k[e2 + 12 >> 2] | 0) != (q2 | 0)) + Pa(); + } + if ((d2 | 0) == (e2 | 0)) { + k[10218] = k[10218] & ~(1 << f2); + break; + } + if ((d2 | 0) != (c2 | 0)) { + if (d2 >>> 0 < i3 >>> 0) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (q2 | 0)) + o2 = c2; + else + Pa(); + } else + o2 = d2 + 8 | 0; + k[e2 + 12 >> 2] = d2; + k[o2 >> 2] = e2; + } + while (0); + k[t2 + 4 >> 2] = g2 | 1; + k[t2 + g2 >> 2] = g2; + if ((t2 | 0) == (k[10223] | 0)) { + k[10220] = g2; + return; + } + } else { + k[c2 >> 2] = d2 & -2; + k[t2 + 4 >> 2] = g2 | 1; + k[t2 + g2 >> 2] = g2; + } + c2 = g2 >>> 3; + if (g2 >>> 0 < 256) { + d2 = c2 << 1; + f2 = 40912 + (d2 << 2) | 0; + e2 = k[10218] | 0; + c2 = 1 << c2; + if (e2 & c2) { + c2 = 40912 + (d2 + 2 << 2) | 0; + d2 = k[c2 >> 2] | 0; + if (d2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + r2 = c2; + s2 = d2; + } + } else { + k[10218] = e2 | c2; + r2 = 40912 + (d2 + 2 << 2) | 0; + s2 = f2; + } + k[r2 >> 2] = t2; + k[s2 + 12 >> 2] = t2; + k[t2 + 8 >> 2] = s2; + k[t2 + 12 >> 2] = f2; + return; + } + c2 = g2 >>> 8; + if (c2) + if (g2 >>> 0 > 16777215) + f2 = 31; + else { + r2 = (c2 + 1048320 | 0) >>> 16 & 8; + s2 = c2 << r2; + q2 = (s2 + 520192 | 0) >>> 16 & 4; + s2 = s2 << q2; + f2 = (s2 + 245760 | 0) >>> 16 & 2; + f2 = 14 - (q2 | r2 | f2) + (s2 << f2 >>> 15) | 0; + f2 = g2 >>> (f2 + 7 | 0) & 1 | f2 << 1; + } + else + f2 = 0; + c2 = 41176 + (f2 << 2) | 0; + k[t2 + 28 >> 2] = f2; + k[t2 + 20 >> 2] = 0; + k[t2 + 16 >> 2] = 0; + d2 = k[10219] | 0; + e2 = 1 << f2; + if (!(d2 & e2)) { + k[10219] = d2 | e2; + k[c2 >> 2] = t2; + k[t2 + 24 >> 2] = c2; + k[t2 + 12 >> 2] = t2; + k[t2 + 8 >> 2] = t2; + return; + } + c2 = k[c2 >> 2] | 0; + a: + do + if ((k[c2 + 4 >> 2] & -8 | 0) != (g2 | 0)) { + f2 = g2 << ((f2 | 0) == 31 ? 0 : 25 - (f2 >>> 1) | 0); + while (1) { + d2 = c2 + 16 + (f2 >>> 31 << 2) | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + break; + if ((k[e2 + 4 >> 2] & -8 | 0) == (g2 | 0)) { + c2 = e2; + break a; + } else { + f2 = f2 << 1; + c2 = e2; + } + } + if (d2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + k[d2 >> 2] = t2; + k[t2 + 24 >> 2] = c2; + k[t2 + 12 >> 2] = t2; + k[t2 + 8 >> 2] = t2; + return; + } + while (0); + d2 = c2 + 8 | 0; + e2 = k[d2 >> 2] | 0; + s2 = k[10222] | 0; + if (!(e2 >>> 0 >= s2 >>> 0 & c2 >>> 0 >= s2 >>> 0)) + Pa(); + k[e2 + 12 >> 2] = t2; + k[d2 >> 2] = t2; + k[t2 + 8 >> 2] = e2; + k[t2 + 12 >> 2] = c2; + k[t2 + 24 >> 2] = 0; + return; + } + function Vl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = k[9321] | 0; + Zl(42048, d2, 42104); + k[10342] = 42892; + k[10344] = 42912; + k[10343] = 0; + a2 = k[10720] | 0; + x = 0; + ra(62, 41368 + a2 | 0, 42048); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa() | 0; + qn(41376); + fb(f2 | 0); + } + k[41368 + (a2 + 72) >> 2] = 0; + k[41368 + (a2 + 76) >> 2] = -1; + e2 = k[9322] | 0; + _l(42152, e2, 42112); + k[10364] = 42972; + k[10365] = 42992; + c2 = k[10740] | 0; + x = 0; + ra(62, 41456 + c2 | 0, 42152); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa() | 0; + qn(41460); + fb(f2 | 0); + } + a2 = c2 + 72 | 0; + k[41456 + a2 >> 2] = 0; + b2 = c2 + 76 | 0; + k[41456 + b2 >> 2] = -1; + f2 = k[9320] | 0; + _l(42200, f2, 42120); + k[10385] = 42972; + k[10386] = 42992; + x = 0; + ra(62, 41540 + c2 | 0, 42200); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + qn(41544); + fb(g2 | 0); + } + k[41540 + a2 >> 2] = 0; + k[41540 + b2 >> 2] = -1; + g2 = k[41540 + ((k[(k[10385] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + k[10406] = 42972; + k[10407] = 42992; + x = 0; + ra(62, 41624 + c2 | 0, g2 | 0); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + qn(41628); + fb(g2 | 0); + } + k[41624 + a2 >> 2] = 0; + k[41624 + b2 >> 2] = -1; + k[41368 + ((k[(k[10342] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41456; + a2 = 41540 + ((k[(k[10385] | 0) + -12 >> 2] | 0) + 4) | 0; + k[a2 >> 2] = k[a2 >> 2] | 8192; + k[41540 + ((k[(k[10385] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41456; + $l(42248, d2, 42128); + k[10427] = 42932; + k[10429] = 42952; + k[10428] = 0; + a2 = k[10730] | 0; + x = 0; + ra(62, 41708 + a2 | 0, 42248); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + vn(41716); + fb(g2 | 0); + } + k[41708 + (a2 + 72) >> 2] = 0; + k[41708 + (a2 + 76) >> 2] = -1; + am(42304, e2, 42136); + k[10449] = 43012; + k[10450] = 43032; + c2 = k[10750] | 0; + x = 0; + ra(62, 41796 + c2 | 0, 42304); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + vn(41800); + fb(g2 | 0); + } + a2 = c2 + 72 | 0; + k[41796 + a2 >> 2] = 0; + b2 = c2 + 76 | 0; + k[41796 + b2 >> 2] = -1; + am(42352, f2, 42144); + k[10470] = 43012; + k[10471] = 43032; + x = 0; + ra(62, 41880 + c2 | 0, 42352); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + vn(41884); + fb(g2 | 0); + } + k[41880 + a2 >> 2] = 0; + k[41880 + b2 >> 2] = -1; + g2 = k[41880 + ((k[(k[10470] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + k[10491] = 43012; + k[10492] = 43032; + x = 0; + ra(62, 41964 + c2 | 0, g2 | 0); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + vn(41968); + fb(g2 | 0); + } else { + k[41964 + a2 >> 2] = 0; + k[41964 + b2 >> 2] = -1; + k[41708 + ((k[(k[10427] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41796; + g2 = 41880 + ((k[(k[10470] | 0) + -12 >> 2] | 0) + 4) | 0; + k[g2 >> 2] = k[g2 >> 2] | 8192; + k[41880 + ((k[(k[10470] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41796; + return; + } + } + function Wl(a2) { + a2 = a2 | 0; + x = 0; + ta(70, 41456) | 0; + a2 = x; + x = 0; + if (((!(a2 & 1) ? (x = 0, ta(70, 41624) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, ta(71, 41796) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, ta(71, 41964) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) + return; + a2 = Wa(0) | 0; + oc(a2); + } + function Xl() { + Vl(0); + tb(187, 56757, w | 0) | 0; + return; + } + function Yl() { + return; + } + function Zl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2 + 4 | 0; + d2 = e2; + zn(a2); + k[a2 >> 2] = 42600; + k[a2 + 32 >> 2] = b2; + k[a2 + 40 >> 2] = c2; + k[a2 + 48 >> 2] = -1; + i2[a2 + 52 >> 0] = 0; + Ps(f2, a2 + 4 | 0); + k[d2 >> 2] = k[f2 >> 2]; + x = 0; + ra(23, a2 | 0, d2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = Wa() | 0; + Qs(d2); + xn(a2); + fb(f2 | 0); + } else { + Qs(d2); + r = e2; + return; + } + } + function _l(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2 + 4 | 0; + d2 = e2; + zn(a2); + k[a2 >> 2] = 42536; + k[a2 + 32 >> 2] = b2; + Ps(f2, a2 + 4 | 0); + k[d2 >> 2] = k[f2 >> 2]; + x = 0; + b2 = Aa(37, d2 | 0, 44280) | 0; + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa() | 0; + Qs(d2); + xn(a2); + fb(f2 | 0); + } else { + Qs(d2); + k[a2 + 36 >> 2] = b2; + k[a2 + 40 >> 2] = c2; + f2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; + i2[a2 + 44 >> 0] = f2; + r = e2; + return; + } + } + function $l(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2 + 4 | 0; + d2 = e2; + On(a2); + k[a2 >> 2] = 42472; + k[a2 + 32 >> 2] = b2; + k[a2 + 40 >> 2] = c2; + k[a2 + 48 >> 2] = -1; + i2[a2 + 52 >> 0] = 0; + Ps(f2, a2 + 4 | 0); + k[d2 >> 2] = k[f2 >> 2]; + x = 0; + ra(21, a2 | 0, d2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = Wa() | 0; + Qs(d2); + Mn(a2); + fb(f2 | 0); + } else { + Qs(d2); + r = e2; + return; + } + } + function am(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2 + 4 | 0; + d2 = e2; + On(a2); + k[a2 >> 2] = 42408; + k[a2 + 32 >> 2] = b2; + Ps(f2, a2 + 4 | 0); + k[d2 >> 2] = k[f2 >> 2]; + x = 0; + b2 = Aa(37, d2 | 0, 44288) | 0; + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa() | 0; + Qs(d2); + Mn(a2); + fb(f2 | 0); + } else { + Qs(d2); + k[a2 + 36 >> 2] = b2; + k[a2 + 40 >> 2] = c2; + f2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; + i2[a2 + 44 >> 0] = f2; + r = e2; + return; + } + } + function bm(a2) { + a2 = a2 | 0; + Mn(a2); + mj(a2); + return; + } + function cm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Ob[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](a2) | 0; + b2 = Ss(b2, 44288) | 0; + k[a2 + 36 >> 2] = b2; + b2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; + i2[a2 + 44 >> 0] = b2; + return; + } + function dm(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2; + c2 = a2 + 36 | 0; + d2 = a2 + 40 | 0; + e2 = h2 + 8 | 0; + f2 = h2; + b2 = a2 + 32 | 0; + a: + while (1) { + a2 = k[c2 >> 2] | 0; + a2 = Wb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 31](a2, k[d2 >> 2] | 0, h2, e2, g2) | 0; + l2 = (k[g2 >> 2] | 0) - f2 | 0; + if ((gl(h2, 1, l2, k[b2 >> 2] | 0) | 0) != (l2 | 0)) { + a2 = -1; + break; + } + switch (a2 | 0) { + case 1: + break; + case 2: { + a2 = -1; + break a; + } + default: { + i3 = 4; + break a; + } + } + } + if ((i3 | 0) == 4) + a2 = ((dl(k[b2 >> 2] | 0) | 0) != 0) << 31 >> 31; + r = j2; + return a2 | 0; + } + function em(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + a: + do + if (!(i2[a2 + 44 >> 0] | 0)) + if ((c2 | 0) > 0) { + d2 = b2; + b2 = 0; + while (1) { + if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, k[d2 >> 2] | 0) | 0) == -1) + break a; + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + d2 = d2 + 4 | 0; + else + break; + } + } else + b2 = 0; + else + b2 = gl(b2, 4, c2, k[a2 + 32 >> 2] | 0) | 0; + while (0); + return b2 | 0; + } + function fm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + s2 = r; + r = r + 32 | 0; + o2 = s2 + 16 | 0; + c2 = s2 + 8 | 0; + n2 = s2 + 4 | 0; + m2 = s2; + p2 = (b2 | 0) == -1; + a: + do + if (!p2) { + k[c2 >> 2] = b2; + if (i2[a2 + 44 >> 0] | 0) + if ((gl(c2, 4, 1, k[a2 + 32 >> 2] | 0) | 0) == 1) { + q2 = 11; + break; + } else { + c2 = -1; + break; + } + k[n2 >> 2] = o2; + j2 = c2 + 4 | 0; + l2 = a2 + 36 | 0; + e2 = a2 + 40 | 0; + f2 = o2 + 8 | 0; + g2 = o2; + h2 = a2 + 32 | 0; + while (1) { + a2 = k[l2 >> 2] | 0; + a2 = ac[k[(k[a2 >> 2] | 0) + 12 >> 2] & 15](a2, k[e2 >> 2] | 0, c2, j2, m2, o2, f2, n2) | 0; + if ((k[m2 >> 2] | 0) == (c2 | 0)) { + c2 = -1; + break a; + } + if ((a2 | 0) == 3) + break; + d2 = (a2 | 0) == 1; + if (a2 >>> 0 >= 2) { + c2 = -1; + break a; + } + a2 = (k[n2 >> 2] | 0) - g2 | 0; + if ((gl(o2, 1, a2, k[h2 >> 2] | 0) | 0) != (a2 | 0)) { + c2 = -1; + break a; + } + if (d2) + c2 = d2 ? k[m2 >> 2] | 0 : c2; + else { + q2 = 11; + break a; + } + } + if ((gl(c2, 1, 1, k[h2 >> 2] | 0) | 0) != 1) + c2 = -1; + else + q2 = 11; + } else + q2 = 11; + while (0); + if ((q2 | 0) == 11) + c2 = p2 ? 0 : b2; + r = s2; + return c2 | 0; + } + function gm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + d2 = Ss(b2, 44288) | 0; + c2 = a2 + 36 | 0; + k[c2 >> 2] = d2; + d2 = Ob[k[(k[d2 >> 2] | 0) + 24 >> 2] & 127](d2) | 0; + b2 = a2 + 44 | 0; + k[b2 >> 2] = d2; + c2 = k[c2 >> 2] | 0; + c2 = (Ob[k[(k[c2 >> 2] | 0) + 28 >> 2] & 127](c2) | 0) & 1; + i2[a2 + 53 >> 0] = c2; + if ((k[b2 >> 2] | 0) > 8) + $r(56783); + return; + } + function hm(a2) { + a2 = a2 | 0; + Mn(a2); + mj(a2); + return; + } + function im(a2) { + a2 = a2 | 0; + return lm(a2, 0) | 0; + } + function jm(a2) { + a2 = a2 | 0; + return lm(a2, 1) | 0; + } + function km(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + j2 = l2 + 16 | 0; + h2 = l2 + 8 | 0; + d2 = l2 + 4 | 0; + e2 = l2; + f2 = a2 + 52 | 0; + c2 = (i2[f2 >> 0] | 0) != 0; + a: + do + if ((b2 | 0) == -1) + if (c2) + b2 = -1; + else { + b2 = k[a2 + 48 >> 2] | 0; + i2[f2 >> 0] = (b2 | 0) != -1 & 1; + } + else { + g2 = a2 + 48 | 0; + b: + do + if (c2) { + k[d2 >> 2] = k[g2 >> 2]; + c2 = k[a2 + 36 >> 2] | 0; + switch (ac[k[(k[c2 >> 2] | 0) + 12 >> 2] & 15](c2, k[a2 + 40 >> 2] | 0, d2, d2 + 4 | 0, e2, j2, j2 + 8 | 0, h2) | 0) { + case 1: + case 2: { + b2 = -1; + break a; + } + case 3: { + i2[j2 >> 0] = k[g2 >> 2]; + k[h2 >> 2] = j2 + 1; + break; + } + default: { + } + } + c2 = a2 + 32 | 0; + while (1) { + d2 = k[h2 >> 2] | 0; + if (d2 >>> 0 <= j2 >>> 0) + break b; + a2 = d2 + -1 | 0; + k[h2 >> 2] = a2; + if ((kl(i2[a2 >> 0] | 0, k[c2 >> 2] | 0) | 0) == -1) { + b2 = -1; + break a; + } + } + } + while (0); + k[g2 >> 2] = b2; + i2[f2 >> 0] = 1; + } + while (0); + r = l2; + return b2 | 0; + } + function lm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0; + q2 = r; + r = r + 32 | 0; + p2 = q2 + 16 | 0; + o2 = q2 + 8 | 0; + l2 = q2 + 4 | 0; + m2 = q2; + e2 = a2 + 52 | 0; + a: + do + if (i2[e2 >> 0] | 0) { + d2 = a2 + 48 | 0; + c2 = k[d2 >> 2] | 0; + if (b2) { + k[d2 >> 2] = -1; + i2[e2 >> 0] = 0; + } + } else { + c2 = k[a2 + 44 >> 2] | 0; + c2 = (c2 | 0) > 1 ? c2 : 1; + n2 = a2 + 32 | 0; + if ((c2 | 0) > 0) { + e2 = 0; + do { + d2 = hl(k[n2 >> 2] | 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + i2[p2 + e2 >> 0] = d2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (c2 | 0)); + } + b: + do + if (!(i2[a2 + 53 >> 0] | 0)) { + g2 = a2 + 40 | 0; + h2 = a2 + 36 | 0; + j2 = o2 + 4 | 0; + c: + while (1) { + s2 = k[g2 >> 2] | 0; + e2 = s2; + d2 = k[e2 >> 2] | 0; + e2 = k[e2 + 4 >> 2] | 0; + t2 = k[h2 >> 2] | 0; + f2 = p2 + c2 | 0; + switch (ac[k[(k[t2 >> 2] | 0) + 16 >> 2] & 15](t2, s2, p2, f2, l2, o2, j2, m2) | 0) { + case 2: { + c2 = -1; + break a; + } + case 3: + break c; + case 1: + break; + default: + break b; + } + t2 = k[g2 >> 2] | 0; + k[t2 >> 2] = d2; + k[t2 + 4 >> 2] = e2; + if ((c2 | 0) == 8) { + c2 = -1; + break a; + } + d2 = hl(k[n2 >> 2] | 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + i2[f2 >> 0] = d2; + c2 = c2 + 1 | 0; + } + k[o2 >> 2] = i2[p2 >> 0]; + } else + k[o2 >> 2] = i2[p2 >> 0]; + while (0); + if (b2) { + c2 = k[o2 >> 2] | 0; + k[a2 + 48 >> 2] = c2; + break; + } + while (1) { + if ((c2 | 0) <= 0) + break; + c2 = c2 + -1 | 0; + if ((kl(i2[p2 + c2 >> 0] | 0, k[n2 >> 2] | 0) | 0) == -1) { + c2 = -1; + break a; + } + } + c2 = k[o2 >> 2] | 0; + } + while (0); + r = q2; + return c2 | 0; + } + function mm(a2) { + a2 = a2 | 0; + xn(a2); + mj(a2); + return; + } + function nm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Ob[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](a2) | 0; + b2 = Ss(b2, 44280) | 0; + k[a2 + 36 >> 2] = b2; + b2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; + i2[a2 + 44 >> 0] = b2; + return; + } + function om(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2; + c2 = a2 + 36 | 0; + d2 = a2 + 40 | 0; + e2 = h2 + 8 | 0; + f2 = h2; + b2 = a2 + 32 | 0; + a: + while (1) { + a2 = k[c2 >> 2] | 0; + a2 = Wb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 31](a2, k[d2 >> 2] | 0, h2, e2, g2) | 0; + l2 = (k[g2 >> 2] | 0) - f2 | 0; + if ((gl(h2, 1, l2, k[b2 >> 2] | 0) | 0) != (l2 | 0)) { + a2 = -1; + break; + } + switch (a2 | 0) { + case 1: + break; + case 2: { + a2 = -1; + break a; + } + default: { + i3 = 4; + break a; + } + } + } + if ((i3 | 0) == 4) + a2 = ((dl(k[b2 >> 2] | 0) | 0) != 0) << 31 >> 31; + r = j2; + return a2 | 0; + } + function pm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + a: + do + if (!(i2[a2 + 44 >> 0] | 0)) + if ((c2 | 0) > 0) { + d2 = b2; + b2 = 0; + while (1) { + if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, l[d2 >> 0] | 0) | 0) == -1) + break a; + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + d2 = d2 + 1 | 0; + else + break; + } + } else + b2 = 0; + else + b2 = gl(b2, 1, c2, k[a2 + 32 >> 2] | 0) | 0; + while (0); + return b2 | 0; + } + function qm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + s2 = r; + r = r + 32 | 0; + o2 = s2 + 16 | 0; + c2 = s2 + 8 | 0; + n2 = s2 + 4 | 0; + m2 = s2; + p2 = (b2 | 0) == -1; + a: + do + if (!p2) { + i2[c2 >> 0] = b2; + if (i2[a2 + 44 >> 0] | 0) + if ((gl(c2, 1, 1, k[a2 + 32 >> 2] | 0) | 0) == 1) { + q2 = 11; + break; + } else { + c2 = -1; + break; + } + k[n2 >> 2] = o2; + l2 = c2 + 1 | 0; + e2 = a2 + 36 | 0; + f2 = a2 + 40 | 0; + g2 = o2 + 8 | 0; + h2 = o2; + j2 = a2 + 32 | 0; + while (1) { + a2 = k[e2 >> 2] | 0; + a2 = ac[k[(k[a2 >> 2] | 0) + 12 >> 2] & 15](a2, k[f2 >> 2] | 0, c2, l2, m2, o2, g2, n2) | 0; + if ((k[m2 >> 2] | 0) == (c2 | 0)) { + c2 = -1; + break a; + } + if ((a2 | 0) == 3) + break; + d2 = (a2 | 0) == 1; + if (a2 >>> 0 >= 2) { + c2 = -1; + break a; + } + a2 = (k[n2 >> 2] | 0) - h2 | 0; + if ((gl(o2, 1, a2, k[j2 >> 2] | 0) | 0) != (a2 | 0)) { + c2 = -1; + break a; + } + if (d2) + c2 = d2 ? k[m2 >> 2] | 0 : c2; + else { + q2 = 11; + break a; + } + } + if ((gl(c2, 1, 1, k[j2 >> 2] | 0) | 0) != 1) + c2 = -1; + else + q2 = 11; + } else + q2 = 11; + while (0); + if ((q2 | 0) == 11) + c2 = p2 ? 0 : b2; + r = s2; + return c2 | 0; + } + function rm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + d2 = Ss(b2, 44280) | 0; + c2 = a2 + 36 | 0; + k[c2 >> 2] = d2; + d2 = Ob[k[(k[d2 >> 2] | 0) + 24 >> 2] & 127](d2) | 0; + b2 = a2 + 44 | 0; + k[b2 >> 2] = d2; + c2 = k[c2 >> 2] | 0; + c2 = (Ob[k[(k[c2 >> 2] | 0) + 28 >> 2] & 127](c2) | 0) & 1; + i2[a2 + 53 >> 0] = c2; + if ((k[b2 >> 2] | 0) > 8) + $r(56783); + return; + } + function sm(a2) { + a2 = a2 | 0; + xn(a2); + mj(a2); + return; + } + function tm(a2) { + a2 = a2 | 0; + return wm(a2, 0) | 0; + } + function um(a2) { + a2 = a2 | 0; + return wm(a2, 1) | 0; + } + function vm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + j2 = l2 + 16 | 0; + h2 = l2 + 4 | 0; + d2 = l2 + 8 | 0; + e2 = l2; + f2 = a2 + 52 | 0; + c2 = (i2[f2 >> 0] | 0) != 0; + a: + do + if ((b2 | 0) == -1) + if (c2) + b2 = -1; + else { + b2 = k[a2 + 48 >> 2] | 0; + i2[f2 >> 0] = (b2 | 0) != -1 & 1; + } + else { + g2 = a2 + 48 | 0; + b: + do + if (c2) { + i2[d2 >> 0] = k[g2 >> 2]; + c2 = k[a2 + 36 >> 2] | 0; + switch (ac[k[(k[c2 >> 2] | 0) + 12 >> 2] & 15](c2, k[a2 + 40 >> 2] | 0, d2, d2 + 1 | 0, e2, j2, j2 + 8 | 0, h2) | 0) { + case 1: + case 2: { + b2 = -1; + break a; + } + case 3: { + i2[j2 >> 0] = k[g2 >> 2]; + k[h2 >> 2] = j2 + 1; + break; + } + default: { + } + } + c2 = a2 + 32 | 0; + while (1) { + d2 = k[h2 >> 2] | 0; + if (d2 >>> 0 <= j2 >>> 0) + break b; + a2 = d2 + -1 | 0; + k[h2 >> 2] = a2; + if ((kl(i2[a2 >> 0] | 0, k[c2 >> 2] | 0) | 0) == -1) { + b2 = -1; + break a; + } + } + } + while (0); + k[g2 >> 2] = b2; + i2[f2 >> 0] = 1; + } + while (0); + r = l2; + return b2 | 0; + } + function wm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0; + s2 = r; + r = r + 32 | 0; + q2 = s2 + 16 | 0; + p2 = s2 + 8 | 0; + m2 = s2 + 4 | 0; + n2 = s2; + e2 = a2 + 52 | 0; + a: + do + if (i2[e2 >> 0] | 0) { + d2 = a2 + 48 | 0; + c2 = k[d2 >> 2] | 0; + if (b2) { + k[d2 >> 2] = -1; + i2[e2 >> 0] = 0; + } + } else { + c2 = k[a2 + 44 >> 2] | 0; + c2 = (c2 | 0) > 1 ? c2 : 1; + o2 = a2 + 32 | 0; + if ((c2 | 0) > 0) { + e2 = 0; + do { + d2 = hl(k[o2 >> 2] | 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + i2[q2 + e2 >> 0] = d2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (c2 | 0)); + } + b: + do + if (!(i2[a2 + 53 >> 0] | 0)) { + g2 = a2 + 40 | 0; + h2 = a2 + 36 | 0; + j2 = p2 + 1 | 0; + c: + while (1) { + t2 = k[g2 >> 2] | 0; + e2 = t2; + d2 = k[e2 >> 2] | 0; + e2 = k[e2 + 4 >> 2] | 0; + u2 = k[h2 >> 2] | 0; + f2 = q2 + c2 | 0; + switch (ac[k[(k[u2 >> 2] | 0) + 16 >> 2] & 15](u2, t2, q2, f2, m2, p2, j2, n2) | 0) { + case 2: { + c2 = -1; + break a; + } + case 3: + break c; + case 1: + break; + default: + break b; + } + u2 = k[g2 >> 2] | 0; + k[u2 >> 2] = d2; + k[u2 + 4 >> 2] = e2; + if ((c2 | 0) == 8) { + c2 = -1; + break a; + } + d2 = hl(k[o2 >> 2] | 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + i2[f2 >> 0] = d2; + c2 = c2 + 1 | 0; + } + i2[p2 >> 0] = i2[q2 >> 0] | 0; + } else + i2[p2 >> 0] = i2[q2 >> 0] | 0; + while (0); + if (b2) { + c2 = i2[p2 >> 0] | 0; + k[a2 + 48 >> 2] = c2 & 255; + } else { + while (1) { + if ((c2 | 0) <= 0) + break; + c2 = c2 + -1 | 0; + if ((kl(l[q2 + c2 >> 0] | 0, k[o2 >> 2] | 0) | 0) == -1) { + c2 = -1; + break a; + } + } + c2 = i2[p2 >> 0] | 0; + } + c2 = c2 & 255; + } + while (0); + r = s2; + return c2 | 0; + } + function xm(a2) { + a2 = a2 | 0; + return; + } + function ym(a2) { + a2 = a2 | 0; + a2 = a2 + 4 | 0; + k[a2 >> 2] = (k[a2 >> 2] | 0) + 1; + return; + } + function zm(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = b2 + -1; + if (!b2) { + Lb[k[(k[a2 >> 2] | 0) + 8 >> 2] & 255](a2); + a2 = 1; + } else + a2 = 0; + return a2 | 0; + } + function Am(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 36868; + x = 0; + ra(86, a2 + 4 | 0, ((i2[b2 >> 0] & 1) == 0 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0) | 0); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + fb(a2 | 0); + } else + return; + } + function Bm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 36868; + x = 0; + ra(86, a2 + 4 | 0, b2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + fb(a2 | 0); + } else + return; + } + function Cm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + d2 = xl(b2) | 0; + c2 = lj(d2 + 13 | 0) | 0; + k[c2 >> 2] = d2; + k[c2 + 4 >> 2] = d2; + k[c2 + 8 >> 2] = 0; + c2 = c2 + 12 | 0; + vw(c2 | 0, b2 | 0, d2 + 1 | 0) | 0; + k[a2 >> 2] = c2; + return; + } + function Dm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + k[a2 >> 2] = c2; + k[a2 + 4 >> 2] = b2; + return; + } + function Em(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = r; + r = r + 16 | 0; + d2 = e2; + _b[k[(k[a2 >> 2] | 0) + 12 >> 2] & 15](d2, a2, b2); + if ((k[d2 + 4 >> 2] | 0) == (k[c2 + 4 >> 2] | 0)) + d2 = (k[d2 >> 2] | 0) == (k[c2 >> 2] | 0); + else + d2 = 0; + r = e2; + return d2 | 0; + } + function Fm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return ((k[b2 >> 2] | 0) == (c2 | 0) ? (k[b2 + 4 >> 2] | 0) == (a2 | 0) : 0) | 0; + } + function Gm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + b2 = nk(c2) | 0; + Qm(a2, b2, xl(b2) | 0); + return; + } + function Hm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + g2 = r; + r = r + 16 | 0; + f2 = g2; + d2 = k[b2 >> 2] | 0; + do + if (d2) { + e2 = i2[c2 >> 0] | 0; + if (!(e2 & 1)) + e2 = (e2 & 255) >>> 1; + else + e2 = k[c2 + 4 >> 2] | 0; + if (e2) { + Zm(c2, 56990) | 0; + d2 = k[b2 >> 2] | 0; + } + b2 = k[b2 + 4 >> 2] | 0; + _b[k[(k[b2 >> 2] | 0) + 24 >> 2] & 15](f2, b2, d2); + b2 = i2[f2 >> 0] | 0; + e2 = (b2 & 1) == 0; + x = 0; + va(30, c2 | 0, (e2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0) | 0, (e2 ? (b2 & 255) >>> 1 : k[f2 + 4 >> 2] | 0) | 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + g2 = Wa() | 0; + Sm(f2); + fb(g2 | 0); + } else { + Sm(f2); + break; + } + } + while (0); + k[a2 >> 2] = k[c2 >> 2]; + k[a2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + k[c2 + 8 >> 2] = 0; + r = g2; + return; + } + function Im(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 32 | 0; + d2 = e2 + 12 | 0; + f2 = e2; + Qm(f2, c2, xl(c2) | 0); + x = 0; + Fa(10, d2 | 0, b2 | 0, f2 | 0); + c2 = x; + x = 0; + do + if (!(c2 & 1)) { + x = 0; + ra(87, a2 | 0, d2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + e2 = Wa() | 0; + Sm(d2); + d2 = e2; + break; + } else { + Sm(d2); + Sm(f2); + k[a2 >> 2] = 42664; + c2 = k[b2 + 4 >> 2] | 0; + f2 = a2 + 8 | 0; + k[f2 >> 2] = k[b2 >> 2]; + k[f2 + 4 >> 2] = c2; + r = e2; + return; + } + } else + d2 = Wa() | 0; + while (0); + Sm(f2); + fb(d2 | 0); + } + function Jm(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + f2 = r; + r = r + 48 | 0; + e2 = f2 + 24 | 0; + h2 = f2 + 16 | 0; + g2 = f2; + k[h2 >> 2] = b2; + k[h2 + 4 >> 2] = c2; + Pm(g2, d2); + x = 0; + Fa(10, e2 | 0, h2 | 0, g2 | 0); + d2 = x; + x = 0; + do + if (!(d2 & 1)) { + x = 0; + ra(87, a2 | 0, e2 | 0); + h2 = x; + x = 0; + if (h2 & 1) { + h2 = Wa() | 0; + Sm(e2); + e2 = h2; + break; + } else { + Sm(e2); + Sm(g2); + k[a2 >> 2] = 42664; + k[a2 + 8 >> 2] = b2; + k[a2 + 12 >> 2] = c2; + r = f2; + return; + } + } else + e2 = Wa() | 0; + while (0); + Sm(g2); + fb(e2 | 0); + } + function Km(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + e2 = r; + r = r + 48 | 0; + d2 = e2 + 24 | 0; + g2 = e2 + 16 | 0; + f2 = e2; + k[g2 >> 2] = b2; + k[g2 + 4 >> 2] = c2; + Qm(f2, 58898, 0); + x = 0; + Fa(10, d2 | 0, g2 | 0, f2 | 0); + g2 = x; + x = 0; + do + if (!(g2 & 1)) { + x = 0; + ra(87, a2 | 0, d2 | 0); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Sm(d2); + d2 = g2; + break; + } else { + Sm(d2); + Sm(f2); + k[a2 >> 2] = 42664; + k[a2 + 8 >> 2] = b2; + k[a2 + 12 >> 2] = c2; + r = e2; + return; + } + } else + d2 = Wa() | 0; + while (0); + Sm(f2); + fb(d2 | 0); + } + function Lm(a2) { + a2 = a2 | 0; + wj(a2); + return; + } + function Mm(a2) { + a2 = a2 | 0; + wj(a2); + mj(a2); + return; + } + function Nm(a2) { + a2 = a2 | 0; + return; + } + function Om(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + Ab(42676) | 0; + if ((k[a2 >> 2] | 0) == 1) + do + Ma(42704, 42676) | 0; + while ((k[a2 >> 2] | 0) == 1); + do + if (!(k[a2 >> 2] | 0)) { + k[a2 >> 2] = 1; + x = 0; + ta(72, 42676) | 0; + d2 = x; + x = 0; + if ((((!(d2 & 1) ? (x = 0, qa(c2 | 0, b2 | 0), d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ta(73, 42676) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[a2 >> 2] = -1, x = 0, ta(72, 42676) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ta(74, 42704) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) + break; + d2 = Wa(0) | 0; + cb(d2 | 0) | 0; + x = 0; + ta(73, 42676) | 0; + d2 = x; + x = 0; + if ((!(d2 & 1) ? (k[a2 >> 2] = 0, x = 0, ta(72, 42676) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ta(74, 42704) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) { + x = 0; + Ga(5); + x = 0; + } + b2 = Wa() | 0; + x = 0; + Ga(3); + d2 = x; + x = 0; + if (d2 & 1) { + d2 = Wa(0) | 0; + oc(d2); + } else + fb(b2 | 0); + } else + lb(42676) | 0; + while (0); + return; + } + function Pm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (!(i2[b2 >> 0] & 1)) { + k[a2 >> 2] = k[b2 >> 2]; + k[a2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[a2 + 8 >> 2] = k[b2 + 8 >> 2]; + } else + Qm(a2, k[b2 + 8 >> 2] | 0, k[b2 + 4 >> 2] | 0); + return; + } + function Qm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (c2 >>> 0 > 4294967279) + ij(a2); + if (c2 >>> 0 < 11) { + i2[a2 >> 0] = c2 << 1; + a2 = a2 + 1 | 0; + } else { + e2 = c2 + 16 & -16; + d2 = lj(e2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = c2; + a2 = d2; + } + vw(a2 | 0, b2 | 0, c2 | 0) | 0; + i2[a2 + c2 >> 0] = 0; + return; + } + function Rm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (b2 >>> 0 > 4294967279) + ij(a2); + if (b2 >>> 0 < 11) { + i2[a2 >> 0] = b2 << 1; + a2 = a2 + 1 | 0; + } else { + e2 = b2 + 16 & -16; + d2 = lj(e2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = b2; + a2 = d2; + } + sw(a2 | 0, c2 | 0, b2 | 0) | 0; + i2[a2 + b2 >> 0] = 0; + return; + } + function Sm(a2) { + a2 = a2 | 0; + if (i2[a2 >> 0] & 1) + mj(k[a2 + 8 >> 2] | 0); + return; + } + function Tm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + if ((a2 | 0) != (b2 | 0)) { + c2 = i2[b2 >> 0] | 0; + d2 = (c2 & 1) == 0; + Vm(a2, d2 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0, d2 ? (c2 & 255) >>> 1 : k[b2 + 4 >> 2] | 0) | 0; + } + return a2 | 0; + } + function Um(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return Vm(a2, b2, xl(b2) | 0) | 0; + } + function Vm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) + f2 = 10; + else { + d2 = k[a2 >> 2] | 0; + f2 = (d2 & -2) + -1 | 0; + d2 = d2 & 255; + } + e2 = (d2 & 1) == 0; + do + if (f2 >>> 0 >= c2 >>> 0) { + if (e2) + d2 = a2 + 1 | 0; + else + d2 = k[a2 + 8 >> 2] | 0; + xw(d2 | 0, b2 | 0, c2 | 0) | 0; + i2[d2 + c2 >> 0] = 0; + if (!(i2[a2 >> 0] & 1)) { + i2[a2 >> 0] = c2 << 1; + break; + } else { + k[a2 + 4 >> 2] = c2; + break; + } + } else { + if (e2) + d2 = (d2 & 255) >>> 1; + else + d2 = k[a2 + 4 >> 2] | 0; + an(a2, f2, c2 - f2 | 0, d2, 0, d2, c2, b2); + } + while (0); + return a2 | 0; + } + function Wm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + d2 = i2[a2 >> 0] | 0; + e2 = (d2 & 1) == 0; + if (e2) + d2 = (d2 & 255) >>> 1; + else + d2 = k[a2 + 4 >> 2] | 0; + do + if (d2 >>> 0 >= b2 >>> 0) + if (e2) { + i2[a2 + 1 + b2 >> 0] = 0; + i2[a2 >> 0] = b2 << 1; + break; + } else { + i2[(k[a2 + 8 >> 2] | 0) + b2 >> 0] = 0; + k[a2 + 4 >> 2] = b2; + break; + } + else + Xm(a2, b2 - d2 | 0, c2) | 0; + while (0); + return; + } + function Xm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + if (b2) { + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) + e2 = 10; + else { + d2 = k[a2 >> 2] | 0; + e2 = (d2 & -2) + -1 | 0; + d2 = d2 & 255; + } + if (!(d2 & 1)) + f2 = (d2 & 255) >>> 1; + else + f2 = k[a2 + 4 >> 2] | 0; + if ((e2 - f2 | 0) >>> 0 < b2 >>> 0) { + bn(a2, e2, b2 - e2 + f2 | 0, f2, f2, 0, 0); + d2 = i2[a2 >> 0] | 0; + } + if (!(d2 & 1)) + e2 = a2 + 1 | 0; + else + e2 = k[a2 + 8 >> 2] | 0; + sw(e2 + f2 | 0, c2 | 0, b2 | 0) | 0; + d2 = f2 + b2 | 0; + if (!(i2[a2 >> 0] & 1)) + i2[a2 >> 0] = d2 << 1; + else + k[a2 + 4 >> 2] = d2; + i2[e2 + d2 >> 0] = 0; + } + return a2 | 0; + } + function Ym(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + if (b2 >>> 0 > 4294967279) + ij(a2); + c2 = i2[a2 >> 0] | 0; + if (!(c2 & 1)) + d2 = 10; + else { + c2 = k[a2 >> 2] | 0; + d2 = (c2 & -2) + -1 | 0; + c2 = c2 & 255; + } + if (!(c2 & 1)) + h2 = (c2 & 255) >>> 1; + else + h2 = k[a2 + 4 >> 2] | 0; + b2 = h2 >>> 0 > b2 >>> 0 ? h2 : b2; + if (b2 >>> 0 < 11) + g2 = 10; + else + g2 = (b2 + 16 & -16) + -1 | 0; + a: + do + if ((g2 | 0) != (d2 | 0)) { + do + if ((g2 | 0) != 10) { + b2 = g2 + 1 | 0; + if (g2 >>> 0 <= d2 >>> 0) { + x = 0; + b2 = ta(67, b2 | 0) | 0; + f2 = x; + x = 0; + if (f2 & 1) { + a2 = Wa(0) | 0; + cb(a2 | 0) | 0; + eb(); + break a; + } + } else + b2 = lj(b2) | 0; + if (!(c2 & 1)) { + d2 = 1; + e2 = a2 + 1 | 0; + f2 = 0; + break; + } else { + d2 = 1; + e2 = k[a2 + 8 >> 2] | 0; + f2 = 1; + break; + } + } else { + b2 = a2 + 1 | 0; + d2 = 0; + e2 = k[a2 + 8 >> 2] | 0; + f2 = 1; + } + while (0); + if (!(c2 & 1)) + c2 = (c2 & 255) >>> 1; + else + c2 = k[a2 + 4 >> 2] | 0; + vw(b2 | 0, e2 | 0, c2 + 1 | 0) | 0; + if (f2) + mj(e2); + if (d2) { + k[a2 >> 2] = g2 + 1 | 1; + k[a2 + 4 >> 2] = h2; + k[a2 + 8 >> 2] = b2; + break; + } else { + i2[a2 >> 0] = h2 << 1; + break; + } + } + while (0); + return; + } + function Zm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return $m(a2, b2, xl(b2) | 0) | 0; + } + function _m(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + c2 = i2[a2 >> 0] | 0; + d2 = (c2 & 1) != 0; + if (d2) { + e2 = (k[a2 >> 2] & -2) + -1 | 0; + f2 = k[a2 + 4 >> 2] | 0; + } else { + e2 = 10; + f2 = (c2 & 255) >>> 1; + } + if ((f2 | 0) == (e2 | 0)) { + bn(a2, e2, 1, e2, e2, 0, 0); + if (!(i2[a2 >> 0] & 1)) + e2 = 7; + else + e2 = 8; + } else if (d2) + e2 = 8; + else + e2 = 7; + if ((e2 | 0) == 7) { + i2[a2 >> 0] = (f2 << 1) + 2; + c2 = a2 + 1 | 0; + d2 = f2 + 1 | 0; + } else if ((e2 | 0) == 8) { + c2 = k[a2 + 8 >> 2] | 0; + d2 = f2 + 1 | 0; + k[a2 + 4 >> 2] = d2; + } + i2[c2 + f2 >> 0] = b2; + i2[c2 + d2 >> 0] = 0; + return; + } + function $m(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) + e2 = 10; + else { + d2 = k[a2 >> 2] | 0; + e2 = (d2 & -2) + -1 | 0; + d2 = d2 & 255; + } + if (!(d2 & 1)) + f2 = (d2 & 255) >>> 1; + else + f2 = k[a2 + 4 >> 2] | 0; + if ((e2 - f2 | 0) >>> 0 >= c2 >>> 0) { + if (c2) { + if (!(d2 & 1)) + e2 = a2 + 1 | 0; + else + e2 = k[a2 + 8 >> 2] | 0; + vw(e2 + f2 | 0, b2 | 0, c2 | 0) | 0; + d2 = f2 + c2 | 0; + if (!(i2[a2 >> 0] & 1)) + i2[a2 >> 0] = d2 << 1; + else + k[a2 + 4 >> 2] = d2; + i2[e2 + d2 >> 0] = 0; + } + } else + an(a2, e2, c2 - e2 + f2 | 0, f2, f2, 0, c2, b2); + return a2 | 0; + } + function an(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0; + if ((-18 - b2 | 0) >>> 0 < c2 >>> 0) + ij(a2); + if (!(i2[a2 >> 0] & 1)) + m2 = a2 + 1 | 0; + else + m2 = k[a2 + 8 >> 2] | 0; + if (b2 >>> 0 < 2147483623) { + j2 = c2 + b2 | 0; + l2 = b2 << 1; + j2 = j2 >>> 0 < l2 >>> 0 ? l2 : j2; + j2 = j2 >>> 0 < 11 ? 11 : j2 + 16 & -16; + } else + j2 = -17; + l2 = lj(j2) | 0; + if (e2) + vw(l2 | 0, m2 | 0, e2 | 0) | 0; + if (g2) + vw(l2 + e2 | 0, h2 | 0, g2 | 0) | 0; + c2 = d2 - f2 | 0; + if ((c2 | 0) != (e2 | 0)) + vw(l2 + (g2 + e2) | 0, m2 + (f2 + e2) | 0, c2 - e2 | 0) | 0; + if ((b2 | 0) != 10) + mj(m2); + k[a2 + 8 >> 2] = l2; + k[a2 >> 2] = j2 | 1; + b2 = c2 + g2 | 0; + k[a2 + 4 >> 2] = b2; + i2[l2 + b2 >> 0] = 0; + return; + } + function bn(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0; + if ((-17 - b2 | 0) >>> 0 < c2 >>> 0) + ij(a2); + if (!(i2[a2 >> 0] & 1)) + l2 = a2 + 1 | 0; + else + l2 = k[a2 + 8 >> 2] | 0; + if (b2 >>> 0 < 2147483623) { + h2 = c2 + b2 | 0; + j2 = b2 << 1; + h2 = h2 >>> 0 < j2 >>> 0 ? j2 : h2; + h2 = h2 >>> 0 < 11 ? 11 : h2 + 16 & -16; + } else + h2 = -17; + j2 = lj(h2) | 0; + if (e2) + vw(j2 | 0, l2 | 0, e2 | 0) | 0; + c2 = d2 - f2 | 0; + if ((c2 | 0) != (e2 | 0)) + vw(j2 + (g2 + e2) | 0, l2 + (f2 + e2) | 0, c2 - e2 | 0) | 0; + if ((b2 | 0) != 10) + mj(l2); + k[a2 + 8 >> 2] = j2; + k[a2 >> 2] = h2 | 1; + return; + } + function cn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (c2 >>> 0 > 1073741807) + ij(a2); + if (c2 >>> 0 < 2) { + i2[a2 >> 0] = c2 << 1; + a2 = a2 + 4 | 0; + } else { + e2 = c2 + 4 & -4; + d2 = lj(e2 << 2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = c2; + a2 = d2; + } + Al(a2, b2, c2) | 0; + k[a2 + (c2 << 2) >> 2] = 0; + return; + } + function dn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (b2 >>> 0 > 1073741807) + ij(a2); + if (b2 >>> 0 < 2) { + i2[a2 >> 0] = b2 << 1; + a2 = a2 + 4 | 0; + } else { + e2 = b2 + 4 & -4; + d2 = lj(e2 << 2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = b2; + a2 = d2; + } + Cl(a2, c2, b2) | 0; + k[a2 + (b2 << 2) >> 2] = 0; + return; + } + function en(a2) { + a2 = a2 | 0; + if (i2[a2 >> 0] & 1) + mj(k[a2 + 8 >> 2] | 0); + return; + } + function fn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return gn(a2, b2, zl(b2) | 0) | 0; + } + function gn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) + f2 = 1; + else { + d2 = k[a2 >> 2] | 0; + f2 = (d2 & -2) + -1 | 0; + d2 = d2 & 255; + } + e2 = (d2 & 1) == 0; + do + if (f2 >>> 0 >= c2 >>> 0) { + if (e2) + d2 = a2 + 4 | 0; + else + d2 = k[a2 + 8 >> 2] | 0; + Bl(d2, b2, c2) | 0; + k[d2 + (c2 << 2) >> 2] = 0; + if (!(i2[a2 >> 0] & 1)) { + i2[a2 >> 0] = c2 << 1; + break; + } else { + k[a2 + 4 >> 2] = c2; + break; + } + } else { + if (e2) + d2 = (d2 & 255) >>> 1; + else + d2 = k[a2 + 4 >> 2] | 0; + kn(a2, f2, c2 - f2 | 0, d2, 0, d2, c2, b2); + } + while (0); + return a2 | 0; + } + function hn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + if (b2 >>> 0 > 1073741807) + ij(a2); + c2 = i2[a2 >> 0] | 0; + if (!(c2 & 1)) + d2 = 1; + else { + c2 = k[a2 >> 2] | 0; + d2 = (c2 & -2) + -1 | 0; + c2 = c2 & 255; + } + if (!(c2 & 1)) + h2 = (c2 & 255) >>> 1; + else + h2 = k[a2 + 4 >> 2] | 0; + b2 = h2 >>> 0 > b2 >>> 0 ? h2 : b2; + if (b2 >>> 0 < 2) + g2 = 1; + else + g2 = (b2 + 4 & -4) + -1 | 0; + a: + do + if ((g2 | 0) != (d2 | 0)) { + do + if ((g2 | 0) != 1) { + b2 = (g2 << 2) + 4 | 0; + if (g2 >>> 0 <= d2 >>> 0) { + x = 0; + b2 = ta(67, b2 | 0) | 0; + f2 = x; + x = 0; + if (f2 & 1) { + a2 = Wa(0) | 0; + cb(a2 | 0) | 0; + eb(); + break a; + } + } else + b2 = lj(b2) | 0; + if (!(c2 & 1)) { + d2 = 1; + e2 = a2 + 4 | 0; + f2 = 0; + break; + } else { + d2 = 1; + e2 = k[a2 + 8 >> 2] | 0; + f2 = 1; + break; + } + } else { + b2 = a2 + 4 | 0; + d2 = 0; + e2 = k[a2 + 8 >> 2] | 0; + f2 = 1; + } + while (0); + if (!(c2 & 1)) + c2 = (c2 & 255) >>> 1; + else + c2 = k[a2 + 4 >> 2] | 0; + Al(b2, e2, c2 + 1 | 0) | 0; + if (f2) + mj(e2); + if (d2) { + k[a2 >> 2] = g2 + 1 | 1; + k[a2 + 4 >> 2] = h2; + k[a2 + 8 >> 2] = b2; + break; + } else { + i2[a2 >> 0] = h2 << 1; + break; + } + } + while (0); + return; + } + function jn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + c2 = i2[a2 >> 0] | 0; + d2 = (c2 & 1) != 0; + if (d2) { + e2 = (k[a2 >> 2] & -2) + -1 | 0; + f2 = k[a2 + 4 >> 2] | 0; + } else { + e2 = 1; + f2 = (c2 & 255) >>> 1; + } + if ((f2 | 0) == (e2 | 0)) { + ln(a2, e2, 1, e2, e2, 0, 0); + if (!(i2[a2 >> 0] & 1)) + e2 = 7; + else + e2 = 8; + } else if (d2) + e2 = 8; + else + e2 = 7; + if ((e2 | 0) == 7) { + i2[a2 >> 0] = (f2 << 1) + 2; + c2 = a2 + 4 | 0; + d2 = f2 + 1 | 0; + } else if ((e2 | 0) == 8) { + c2 = k[a2 + 8 >> 2] | 0; + d2 = f2 + 1 | 0; + k[a2 + 4 >> 2] = d2; + } + k[c2 + (f2 << 2) >> 2] = b2; + k[c2 + (d2 << 2) >> 2] = 0; + return; + } + function kn(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0; + if ((1073741806 - b2 | 0) >>> 0 < c2 >>> 0) + ij(a2); + if (!(i2[a2 >> 0] & 1)) + m2 = a2 + 4 | 0; + else + m2 = k[a2 + 8 >> 2] | 0; + if (b2 >>> 0 < 536870887) { + j2 = c2 + b2 | 0; + l2 = b2 << 1; + j2 = j2 >>> 0 < l2 >>> 0 ? l2 : j2; + j2 = j2 >>> 0 < 2 ? 2 : j2 + 4 & -4; + } else + j2 = 1073741807; + l2 = lj(j2 << 2) | 0; + if (e2) + Al(l2, m2, e2) | 0; + if (g2) + Al(l2 + (e2 << 2) | 0, h2, g2) | 0; + c2 = d2 - f2 | 0; + if ((c2 | 0) != (e2 | 0)) + Al(l2 + (g2 + e2 << 2) | 0, m2 + (f2 + e2 << 2) | 0, c2 - e2 | 0) | 0; + if ((b2 | 0) != 1) + mj(m2); + k[a2 + 8 >> 2] = l2; + k[a2 >> 2] = j2 | 1; + b2 = c2 + g2 | 0; + k[a2 + 4 >> 2] = b2; + k[l2 + (b2 << 2) >> 2] = 0; + return; + } + function ln(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0; + if ((1073741807 - b2 | 0) >>> 0 < c2 >>> 0) + ij(a2); + if (!(i2[a2 >> 0] & 1)) + l2 = a2 + 4 | 0; + else + l2 = k[a2 + 8 >> 2] | 0; + if (b2 >>> 0 < 536870887) { + h2 = c2 + b2 | 0; + j2 = b2 << 1; + h2 = h2 >>> 0 < j2 >>> 0 ? j2 : h2; + h2 = h2 >>> 0 < 2 ? 2 : h2 + 4 & -4; + } else + h2 = 1073741807; + j2 = lj(h2 << 2) | 0; + if (e2) + Al(j2, l2, e2) | 0; + c2 = d2 - f2 | 0; + if ((c2 | 0) != (e2 | 0)) + Al(j2 + (g2 + e2 << 2) | 0, l2 + (f2 + e2 << 2) | 0, c2 - e2 | 0) | 0; + if ((b2 | 0) != 1) + mj(l2); + k[a2 + 8 >> 2] = j2; + k[a2 >> 2] = h2 | 1; + return; + } + function mn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + e2 = b2; + d2 = c2 - e2 | 0; + if (d2 >>> 0 > 4294967279) + ij(a2); + if (d2 >>> 0 < 11) { + i2[a2 >> 0] = d2 << 1; + f2 = a2 + 1 | 0; + } else { + g2 = d2 + 16 & -16; + f2 = lj(g2) | 0; + k[a2 + 8 >> 2] = f2; + k[a2 >> 2] = g2 | 1; + k[a2 + 4 >> 2] = d2; + } + a2 = c2 - e2 | 0; + if ((b2 | 0) != (c2 | 0)) { + d2 = f2; + while (1) { + i2[d2 >> 0] = i2[b2 >> 0] | 0; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 1 | 0; + } + } + i2[f2 + a2 >> 0] = 0; + return; + } + function nn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = b2; + d2 = c2 - f2 | 0; + e2 = d2 >> 2; + if (e2 >>> 0 > 1073741807) + ij(a2); + if (e2 >>> 0 < 2) { + i2[a2 >> 0] = d2 >>> 1; + a2 = a2 + 4 | 0; + } else { + g2 = e2 + 4 & -4; + d2 = lj(g2 << 2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = g2 | 1; + k[a2 + 4 >> 2] = e2; + a2 = d2; + } + e2 = (c2 - f2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + d2 = a2; + while (1) { + k[d2 >> 2] = k[b2 >> 2]; + b2 = b2 + 4 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 4 | 0; + } + } + k[a2 + (e2 << 2) >> 2] = 0; + return; + } + function on(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + c2 = r; + r = r + 16 | 0; + d2 = c2; + e2 = (k[a2 + 24 >> 2] | 0) == 0; + k[a2 + 16 >> 2] = e2 & 1 | b2; + if (!((e2 & 1 | b2) & k[a2 + 20 >> 2])) { + r = c2; + return; + } + b2 = Va(16) | 0; + Co() | 0; + k[d2 >> 2] = 1; + k[d2 + 4 >> 2] = 43112; + x = 0; + Fa(11, b2 | 0, 57437, d2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa() | 0; + Ua(b2 | 0); + fb(e2 | 0); + } else + ub(b2 | 0, 864, 112); + } + function pn(a2) { + a2 = a2 | 0; + var b2 = 0; + k[a2 >> 2] = 43068; + x = 0; + ra(88, a2 | 0, 0); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else { + Qs(a2 + 28 | 0); + Ql(k[a2 + 32 >> 2] | 0); + Ql(k[a2 + 36 >> 2] | 0); + Ql(k[a2 + 48 >> 2] | 0); + Ql(k[a2 + 60 >> 2] | 0); + return; + } + } + function qn(a2) { + a2 = a2 | 0; + pn(a2); + return; + } + function rn(a2) { + a2 = a2 | 0; + pn(a2); + mj(a2); + return; + } + function sn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + c2 = k[a2 + 40 >> 2] | 0; + d2 = a2 + 32 | 0; + e2 = a2 + 36 | 0; + if (c2) + do { + c2 = c2 + -1 | 0; + _b[k[(k[d2 >> 2] | 0) + (c2 << 2) >> 2] & 15](b2, a2, k[(k[e2 >> 2] | 0) + (c2 << 2) >> 2] | 0); + } while ((c2 | 0) != 0); + return; + } + function tn(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = r; + r = r + 16 | 0; + b2 = c2; + Ps(b2, a2 + 28 | 0); + r = c2; + return k[b2 >> 2] | 0; + } + function un(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + k[a2 + 24 >> 2] = b2; + k[a2 + 16 >> 2] = (b2 | 0) == 0 & 1; + k[a2 + 20 >> 2] = 0; + k[a2 + 4 >> 2] = 4098; + k[a2 + 12 >> 2] = 0; + k[a2 + 8 >> 2] = 6; + c2 = a2 + 28 | 0; + b2 = a2 + 32 | 0; + a2 = b2 + 40 | 0; + do { + k[b2 >> 2] = 0; + b2 = b2 + 4 | 0; + } while ((b2 | 0) < (a2 | 0)); + Os(c2); + return; + } + function vn(a2) { + a2 = a2 | 0; + pn(a2); + return; + } + function wn(a2) { + a2 = a2 | 0; + pn(a2); + mj(a2); + return; + } + function xn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42760; + Qs(a2 + 4 | 0); + return; + } + function yn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42760; + Qs(a2 + 4 | 0); + mj(a2); + return; + } + function zn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42760; + Os(a2 + 4 | 0); + a2 = a2 + 8 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[a2 + 20 >> 2] = 0; + return; + } + function An(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function Bn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return a2 | 0; + } + function Cn(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function Dn(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function En(a2) { + a2 = a2 | 0; + return 0; + } + function Fn(a2) { + a2 = a2 | 0; + return 0; + } + function Gn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 12 | 0; + g2 = a2 + 16 | 0; + a: + do + if ((c2 | 0) > 0) { + e2 = b2; + b2 = 0; + while (1) { + d2 = k[f2 >> 2] | 0; + if (d2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[f2 >> 2] = d2 + 1; + d2 = i2[d2 >> 0] | 0; + } else { + d2 = Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + if ((d2 | 0) == -1) + break a; + d2 = d2 & 255; + } + i2[e2 >> 0] = d2; + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + e2 = e2 + 1 | 0; + else + break; + } + } else + b2 = 0; + while (0); + return b2 | 0; + } + function Hn(a2) { + a2 = a2 | 0; + return -1; + } + function In(a2) { + a2 = a2 | 0; + var b2 = 0; + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) + a2 = -1; + else { + b2 = a2 + 12 | 0; + a2 = k[b2 >> 2] | 0; + k[b2 >> 2] = a2 + 1; + a2 = l[a2 >> 0] | 0; + } + return a2 | 0; + } + function Jn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1; + } + function Kn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + f2 = a2 + 24 | 0; + g2 = a2 + 28 | 0; + a: + do + if ((c2 | 0) > 0) { + e2 = b2; + b2 = 0; + while (1) { + d2 = k[f2 >> 2] | 0; + if (d2 >>> 0 >= (k[g2 >> 2] | 0) >>> 0) { + if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, l[e2 >> 0] | 0) | 0) == -1) + break a; + } else { + h2 = i2[e2 >> 0] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = h2; + } + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + e2 = e2 + 1 | 0; + else + break; + } + } else + b2 = 0; + while (0); + return b2 | 0; + } + function Ln(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1; + } + function Mn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42824; + Qs(a2 + 4 | 0); + return; + } + function Nn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42824; + Qs(a2 + 4 | 0); + mj(a2); + return; + } + function On(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42824; + Os(a2 + 4 | 0); + a2 = a2 + 8 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[a2 + 20 >> 2] = 0; + return; + } + function Pn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function Qn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return a2 | 0; + } + function Rn(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function Sn(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function Tn(a2) { + a2 = a2 | 0; + return 0; + } + function Un(a2) { + a2 = a2 | 0; + return 0; + } + function Vn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 12 | 0; + g2 = a2 + 16 | 0; + a: + do + if ((c2 | 0) > 0) { + e2 = b2; + b2 = 0; + while (1) { + d2 = k[f2 >> 2] | 0; + if (d2 >>> 0 >= (k[g2 >> 2] | 0) >>> 0) { + d2 = Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + if ((d2 | 0) == -1) + break a; + } else { + k[f2 >> 2] = d2 + 4; + d2 = k[d2 >> 2] | 0; + } + k[e2 >> 2] = d2; + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + e2 = e2 + 4 | 0; + else + break; + } + } else + b2 = 0; + while (0); + return b2 | 0; + } + function Wn(a2) { + a2 = a2 | 0; + return -1; + } + function Xn(a2) { + a2 = a2 | 0; + var b2 = 0; + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) + a2 = -1; + else { + b2 = a2 + 12 | 0; + a2 = k[b2 >> 2] | 0; + k[b2 >> 2] = a2 + 4; + a2 = k[a2 >> 2] | 0; + } + return a2 | 0; + } + function Yn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1; + } + function Zn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + f2 = a2 + 24 | 0; + g2 = a2 + 28 | 0; + a: + do + if ((c2 | 0) > 0) { + e2 = b2; + b2 = 0; + while (1) { + d2 = k[f2 >> 2] | 0; + if (d2 >>> 0 >= (k[g2 >> 2] | 0) >>> 0) { + if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, k[e2 >> 2] | 0) | 0) == -1) + break a; + } else { + h2 = k[e2 >> 2] | 0; + k[f2 >> 2] = d2 + 4; + k[d2 >> 2] = h2; + } + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + e2 = e2 + 4 | 0; + else + break; + } + } else + b2 = 0; + while (0); + return b2 | 0; + } + function _n(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1; + } + function $n(a2) { + a2 = a2 | 0; + pn(a2 + 8 | 0); + return; + } + function ao(a2) { + a2 = a2 | 0; + pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 8) | 0); + return; + } + function bo(a2) { + a2 = a2 | 0; + pn(a2 + 8 | 0); + mj(a2); + return; + } + function co(a2) { + a2 = a2 | 0; + bo(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + return; + } + function eo(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + d2 = r; + r = r + 16 | 0; + c2 = d2; + a: + do + if (k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0) { + x = 0; + ra(65, c2 | 0, a2 | 0); + b2 = x; + x = 0; + b: + do + if (b2 & 1) + b2 = Wa(0) | 0; + else { + do + if (i2[c2 >> 0] | 0) { + b2 = k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + x = 0; + b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; + e2 = x; + x = 0; + if (!(e2 & 1)) { + if ((b2 | 0) != -1) + break; + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + e2 | 0, k[a2 + (e2 + 16) >> 2] | 1 | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) + break; + } + b2 = Wa(0) | 0; + ro(c2); + break b; + } + while (0); + ro(c2); + break a; + } + while (0); + cb(b2 | 0) | 0; + x = 0; + qa(181, a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) { + eb(); + break; + } + b2 = Wa() | 0; + x = 0; + Ga(3); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else + fb(b2 | 0); + } + while (0); + r = d2; + return a2 | 0; + } + function fo(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = a2 + 16 | 0; + k[b2 >> 2] = k[b2 >> 2] | 1; + if (!(k[a2 + 20 >> 2] & 1)) + return; + else + vb(); + } + function go(a2) { + a2 = a2 | 0; + pn(a2 + 8 | 0); + return; + } + function ho(a2) { + a2 = a2 | 0; + pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 8) | 0); + return; + } + function io(a2) { + a2 = a2 | 0; + pn(a2 + 8 | 0); + mj(a2); + return; + } + function jo(a2) { + a2 = a2 | 0; + io(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + return; + } + function ko(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + d2 = r; + r = r + 16 | 0; + c2 = d2; + a: + do + if (k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0) { + x = 0; + ra(89, c2 | 0, a2 | 0); + b2 = x; + x = 0; + b: + do + if (b2 & 1) + b2 = Wa(0) | 0; + else { + do + if (i2[c2 >> 0] | 0) { + b2 = k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + x = 0; + b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; + e2 = x; + x = 0; + if (!(e2 & 1)) { + if ((b2 | 0) != -1) + break; + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + e2 | 0, k[a2 + (e2 + 16) >> 2] | 1 | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) + break; + } + b2 = Wa(0) | 0; + zo(c2); + break b; + } + while (0); + zo(c2); + break a; + } + while (0); + cb(b2 | 0) | 0; + x = 0; + qa(181, a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) { + eb(); + break; + } + b2 = Wa() | 0; + x = 0; + Ga(3); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else + fb(b2 | 0); + } + while (0); + r = d2; + return a2 | 0; + } + function lo(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function mo(a2) { + a2 = a2 | 0; + pn(a2 + 4 | 0); + return; + } + function no(a2) { + a2 = a2 | 0; + pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0); + return; + } + function oo(a2) { + a2 = a2 | 0; + pn(a2 + 4 | 0); + mj(a2); + return; + } + function po(a2) { + a2 = a2 | 0; + oo(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + return; + } + function qo(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + i2[a2 >> 0] = 0; + k[a2 + 4 >> 2] = b2; + c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; + if (!(k[b2 + (c2 + 16) >> 2] | 0)) { + c2 = k[b2 + (c2 + 72) >> 2] | 0; + if (c2) + eo(c2) | 0; + i2[a2 >> 0] = 1; + } + return; + } + function ro(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + a2 = a2 + 4 | 0; + c2 = k[a2 >> 2] | 0; + b2 = k[(k[c2 >> 2] | 0) + -12 >> 2] | 0; + do + if ((((k[c2 + (b2 + 24) >> 2] | 0) != 0 ? (k[c2 + (b2 + 16) >> 2] | 0) == 0 : 0) ? (k[c2 + (b2 + 4) >> 2] & 8192 | 0) != 0 : 0) ? !(gb() | 0) : 0) { + b2 = k[a2 >> 2] | 0; + b2 = k[b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + x = 0; + b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; + c2 = x; + x = 0; + if (!(c2 & 1)) { + if ((b2 | 0) != -1) + break; + b2 = k[a2 >> 2] | 0; + c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, b2 + c2 | 0, k[b2 + (c2 + 16) >> 2] | 1 | 0); + c2 = x; + x = 0; + if (!(c2 & 1)) + break; + } + c2 = Wa(0) | 0; + cb(c2 | 0) | 0; + x = 0; + Ga(3); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + } + while (0); + return; + } + function so(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 32 | 0; + h2 = o2 + 20 | 0; + j2 = o2 + 16 | 0; + m2 = o2 + 8 | 0; + c2 = o2; + x = 0; + ra(65, m2 | 0, a2 | 0); + l2 = x; + x = 0; + a: + do + if (l2 & 1) { + c2 = Wa(0) | 0; + d2 = a2; + e2 = a2; + n2 = 19; + } else { + do + if (i2[m2 >> 0] | 0) { + l2 = tn(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + k[c2 >> 2] = l2; + x = 0; + l2 = Aa(37, c2 | 0, 43392) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + n2 = Wa(0) | 0; + Qs(c2); + c2 = n2; + } else { + Qs(c2); + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + g2 = k[a2 + (e2 + 24) >> 2] | 0; + d2 = a2 + e2 | 0; + e2 = a2 + (e2 + 76) | 0; + c2 = k[e2 >> 2] | 0; + do + if ((c2 | 0) == -1) { + c2 = tn(d2) | 0; + k[h2 >> 2] = c2; + x = 0; + c2 = Aa(37, h2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (!(p2 & 1) ? (x = 0, f2 = Aa(k[(k[c2 >> 2] | 0) + 28 >> 2] | 0, c2 | 0, 32) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { + Qs(h2); + c2 = f2 << 24 >> 24; + k[e2 >> 2] = c2; + n2 = 10; + break; + } + c2 = Wa(0) | 0; + Qs(h2); + } else + n2 = 10; + while (0); + if ((n2 | 0) == 10) { + p2 = k[(k[l2 >> 2] | 0) + 16 >> 2] | 0; + k[j2 >> 2] = g2; + x = 0; + k[h2 >> 2] = k[j2 >> 2]; + c2 = Ba(p2 | 0, l2 | 0, h2 | 0, d2 | 0, c2 & 255 | 0, b2 | 0) | 0; + p2 = x; + x = 0; + if (!(p2 & 1)) { + if (c2) + break; + p2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + p2 | 0, k[a2 + (p2 + 16) >> 2] | 5 | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) + break; + } + c2 = Wa(0) | 0; + } + } + ro(m2); + d2 = a2; + e2 = a2; + n2 = 19; + break a; + } + while (0); + ro(m2); + } + while (0); + do + if ((n2 | 0) == 19) { + cb(c2 | 0) | 0; + x = 0; + qa(181, d2 + (k[(k[e2 >> 2] | 0) + -12 >> 2] | 0) | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) { + eb(); + break; + } + c2 = Wa() | 0; + x = 0; + Ga(3); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa(0) | 0; + oc(p2); + } else + fb(c2 | 0); + } + while (0); + r = o2; + return a2 | 0; + } + function to(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 32 | 0; + h2 = o2 + 20 | 0; + j2 = o2 + 16 | 0; + m2 = o2 + 8 | 0; + c2 = o2; + x = 0; + ra(65, m2 | 0, a2 | 0); + l2 = x; + x = 0; + a: + do + if (l2 & 1) { + c2 = Wa(0) | 0; + d2 = a2; + e2 = a2; + n2 = 19; + } else { + do + if (i2[m2 >> 0] | 0) { + l2 = tn(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + k[c2 >> 2] = l2; + x = 0; + l2 = Aa(37, c2 | 0, 43392) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + n2 = Wa(0) | 0; + Qs(c2); + c2 = n2; + } else { + Qs(c2); + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + g2 = k[a2 + (e2 + 24) >> 2] | 0; + d2 = a2 + e2 | 0; + e2 = a2 + (e2 + 76) | 0; + c2 = k[e2 >> 2] | 0; + do + if ((c2 | 0) == -1) { + c2 = tn(d2) | 0; + k[h2 >> 2] = c2; + x = 0; + c2 = Aa(37, h2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (!(p2 & 1) ? (x = 0, f2 = Aa(k[(k[c2 >> 2] | 0) + 28 >> 2] | 0, c2 | 0, 32) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { + Qs(h2); + c2 = f2 << 24 >> 24; + k[e2 >> 2] = c2; + n2 = 10; + break; + } + c2 = Wa(0) | 0; + Qs(h2); + } else + n2 = 10; + while (0); + if ((n2 | 0) == 10) { + p2 = k[(k[l2 >> 2] | 0) + 24 >> 2] | 0; + k[j2 >> 2] = g2; + x = 0; + k[h2 >> 2] = k[j2 >> 2]; + c2 = Ba(p2 | 0, l2 | 0, h2 | 0, d2 | 0, c2 & 255 | 0, b2 | 0) | 0; + p2 = x; + x = 0; + if (!(p2 & 1)) { + if (c2) + break; + p2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + p2 | 0, k[a2 + (p2 + 16) >> 2] | 5 | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) + break; + } + c2 = Wa(0) | 0; + } + } + ro(m2); + d2 = a2; + e2 = a2; + n2 = 19; + break a; + } + while (0); + ro(m2); + } + while (0); + do + if ((n2 | 0) == 19) { + cb(c2 | 0) | 0; + x = 0; + qa(181, d2 + (k[(k[e2 >> 2] | 0) + -12 >> 2] | 0) | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) { + eb(); + break; + } + c2 = Wa() | 0; + x = 0; + Ga(3); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa(0) | 0; + oc(p2); + } else + fb(c2 | 0); + } + while (0); + r = o2; + return a2 | 0; + } + function uo(a2) { + a2 = a2 | 0; + pn(a2 + 4 | 0); + return; + } + function vo(a2) { + a2 = a2 | 0; + pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0); + return; + } + function wo(a2) { + a2 = a2 | 0; + pn(a2 + 4 | 0); + mj(a2); + return; + } + function xo(a2) { + a2 = a2 | 0; + wo(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + return; + } + function yo(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + i2[a2 >> 0] = 0; + k[a2 + 4 >> 2] = b2; + c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; + if (!(k[b2 + (c2 + 16) >> 2] | 0)) { + c2 = k[b2 + (c2 + 72) >> 2] | 0; + if (c2) + ko(c2) | 0; + i2[a2 >> 0] = 1; + } + return; + } + function zo(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + a2 = a2 + 4 | 0; + c2 = k[a2 >> 2] | 0; + b2 = k[(k[c2 >> 2] | 0) + -12 >> 2] | 0; + do + if ((((k[c2 + (b2 + 24) >> 2] | 0) != 0 ? (k[c2 + (b2 + 16) >> 2] | 0) == 0 : 0) ? (k[c2 + (b2 + 4) >> 2] & 8192 | 0) != 0 : 0) ? !(gb() | 0) : 0) { + b2 = k[a2 >> 2] | 0; + b2 = k[b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + x = 0; + b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; + c2 = x; + x = 0; + if (!(c2 & 1)) { + if ((b2 | 0) != -1) + break; + b2 = k[a2 >> 2] | 0; + c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, b2 + c2 | 0, k[b2 + (c2 + 16) >> 2] | 1 | 0); + c2 = x; + x = 0; + if (!(c2 & 1)) + break; + } + c2 = Wa(0) | 0; + cb(c2 | 0) | 0; + x = 0; + Ga(3); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + } + while (0); + return; + } + function Ao(a2) { + a2 = a2 | 0; + return 57453; + } + function Bo(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((c2 | 0) != 1 & (c2 | 0) < 257) + Gm(a2, b2, c2); + else + Qm(a2, 57462, 35); + return; + } + function Co() { + if ((i2[1048] | 0) == 0 ? (Qa(1048) | 0) != 0 : 0) { + k[10778] = 43084; + tb(72, 43112, w | 0) | 0; + Ya(1048); + } + return 43112; + } + function Do(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + d2 = r; + r = r + 16 | 0; + e2 = d2 + 8 | 0; + f2 = d2; + h2 = c2; + g2 = k[h2 + 4 >> 2] | 0; + c2 = f2; + k[c2 >> 2] = k[h2 >> 2]; + k[c2 + 4 >> 2] = g2; + k[e2 >> 2] = k[f2 >> 2]; + k[e2 + 4 >> 2] = k[f2 + 4 >> 2]; + Im(a2, e2, b2); + k[a2 >> 2] = 43048; + r = d2; + return; + } + function Eo(a2) { + a2 = a2 | 0; + Lm(a2); + return; + } + function Fo(a2) { + a2 = a2 | 0; + Lm(a2); + mj(a2); + return; + } + function Go(a2) { + a2 = a2 | 0; + pn(a2); + mj(a2); + return; + } + function Ho(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Io(a2) { + a2 = a2 | 0; + return; + } + function Jo(a2) { + a2 = a2 | 0; + return; + } + function Ko(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Lo(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + a: + do + if ((d2 | 0) == (e2 | 0)) + g2 = 6; + else + while (1) { + if ((b2 | 0) == (c2 | 0)) { + b2 = -1; + break a; + } + a2 = i2[b2 >> 0] | 0; + f2 = i2[d2 >> 0] | 0; + if (a2 << 24 >> 24 < f2 << 24 >> 24) { + b2 = -1; + break a; + } + if (f2 << 24 >> 24 < a2 << 24 >> 24) { + b2 = 1; + break a; + } + b2 = b2 + 1 | 0; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (e2 | 0)) { + g2 = 6; + break; + } + } + while (0); + if ((g2 | 0) == 6) + b2 = (b2 | 0) != (c2 | 0) & 1; + return b2 | 0; + } + function Mo(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + mn(a2, c2, d2); + return; + } + function No(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if ((b2 | 0) == (c2 | 0)) + a2 = 0; + else { + a2 = 0; + do { + a2 = (i2[b2 >> 0] | 0) + (a2 << 4) | 0; + d2 = a2 & -268435456; + a2 = (d2 >>> 24 | d2) ^ a2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (c2 | 0)); + } + return a2 | 0; + } + function Oo(a2) { + a2 = a2 | 0; + return; + } + function Po(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Qo(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + a: + do + if ((d2 | 0) == (e2 | 0)) + g2 = 6; + else + while (1) { + if ((b2 | 0) == (c2 | 0)) { + b2 = -1; + break a; + } + a2 = k[b2 >> 2] | 0; + f2 = k[d2 >> 2] | 0; + if ((a2 | 0) < (f2 | 0)) { + b2 = -1; + break a; + } + if ((f2 | 0) < (a2 | 0)) { + b2 = 1; + break a; + } + b2 = b2 + 4 | 0; + d2 = d2 + 4 | 0; + if ((d2 | 0) == (e2 | 0)) { + g2 = 6; + break; + } + } + while (0); + if ((g2 | 0) == 6) + b2 = (b2 | 0) != (c2 | 0) & 1; + return b2 | 0; + } + function Ro(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + nn(a2, c2, d2); + return; + } + function So(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if ((b2 | 0) == (c2 | 0)) + a2 = 0; + else { + a2 = 0; + do { + a2 = (k[b2 >> 2] | 0) + (a2 << 4) | 0; + d2 = a2 & -268435456; + a2 = (d2 >>> 24 | d2) ^ a2; + b2 = b2 + 4 | 0; + } while ((b2 | 0) != (c2 | 0)); + } + return a2 | 0; + } + function To(a2) { + a2 = a2 | 0; + return; + } + function Uo(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Vo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + q2 = r; + r = r + 64 | 0; + o2 = q2 + 56 | 0; + g2 = q2 + 52 | 0; + m2 = q2 + 48 | 0; + h2 = q2 + 44 | 0; + j2 = q2 + 40 | 0; + l2 = q2 + 36 | 0; + n2 = q2 + 32 | 0; + s2 = q2 + 8 | 0; + p2 = q2; + a: + do + if (!(k[d2 + 4 >> 2] & 1)) { + k[m2 >> 2] = -1; + s2 = k[(k[a2 >> 2] | 0) + 16 >> 2] | 0; + k[h2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[g2 >> 2] = k[h2 >> 2]; + k[o2 >> 2] = k[j2 >> 2]; + g2 = Nb[s2 & 63](a2, g2, o2, d2, e2, m2) | 0; + k[b2 >> 2] = g2; + switch (k[m2 >> 2] | 0) { + case 0: { + i2[f2 >> 0] = 0; + break a; + } + case 1: { + i2[f2 >> 0] = 1; + break a; + } + default: { + i2[f2 >> 0] = 1; + k[e2 >> 2] = 4; + break a; + } + } + } else { + g2 = tn(d2) | 0; + k[l2 >> 2] = g2; + x = 0; + a2 = Aa(37, l2 | 0, 44220) | 0; + m2 = x; + x = 0; + do + if (!(m2 & 1)) { + zm(g2) | 0; + g2 = tn(d2) | 0; + k[n2 >> 2] = g2; + x = 0; + j2 = Aa(37, n2 | 0, 44360) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + s2 = Wa() | 0; + zm(g2) | 0; + g2 = s2; + break; + } + zm(g2) | 0; + x = 0; + ra(k[(k[j2 >> 2] | 0) + 24 >> 2] | 0, s2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + h2 = s2 + 12 | 0; + x = 0; + ra(k[(k[j2 >> 2] | 0) + 28 >> 2] | 0, h2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + k[p2 >> 2] = k[c2 >> 2]; + x = 0; + k[o2 >> 2] = k[p2 >> 2]; + g2 = na(7, b2 | 0, o2 | 0, s2 | 0, s2 + 24 | 0, a2 | 0, e2 | 0, 1) | 0; + e2 = x; + x = 0; + if (e2 & 1) { + g2 = Wa() | 0; + Sm(s2 + 12 | 0); + Sm(s2); + break; + } else { + i2[f2 >> 0] = (g2 | 0) == (s2 | 0) & 1; + g2 = k[b2 >> 2] | 0; + Sm(s2 + 12 | 0); + Sm(s2); + break a; + } + } + } else + h2 = s2; + g2 = Wa() | 0; + j2 = M; + if ((s2 | 0) != (h2 | 0)) + do { + h2 = h2 + -12 | 0; + Sm(h2); + } while ((h2 | 0) != (s2 | 0)); + } else { + s2 = Wa() | 0; + zm(g2) | 0; + g2 = s2; + } + while (0); + fb(g2 | 0); + } + while (0); + r = q2; + return g2 | 0; + } + function Wo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Iu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function Xo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Ju(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function Yo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Ku(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function Zo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Lu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function _o(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Mu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function $o(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Nu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function ap(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Ou(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function bp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Pu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function cp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Qu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function dp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + C2 = r; + r = r + 240 | 0; + w2 = C2; + q2 = C2 + 208 | 0; + E2 = C2 + 32 | 0; + a2 = C2 + 28 | 0; + D2 = C2 + 16 | 0; + v2 = C2 + 12 | 0; + t2 = C2 + 48 | 0; + u2 = C2 + 8 | 0; + s2 = C2 + 4 | 0; + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + x = 0; + d2 = ta(68, d2 | 0) | 0; + p2 = x; + x = 0; + do + if (p2 & 1) + a2 = Wa() | 0; + else { + k[a2 >> 2] = d2; + x = 0; + a2 = Aa(37, a2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (!(p2 & 1) ? (x = 0, Ea(k[(k[a2 >> 2] | 0) + 32 >> 2] | 0, a2 | 0, 57498, 57524, q2 | 0) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { + zm(d2) | 0; + k[D2 >> 2] = 0; + k[D2 + 4 >> 2] = 0; + k[D2 + 8 >> 2] = 0; + if (!(i2[D2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[D2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, D2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + o2 = D2 + 8 | 0; + p2 = D2 + 1 | 0; + d2 = (i2[D2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[v2 >> 2] = d2; + k[u2 >> 2] = t2; + k[s2 >> 2] = 0; + n2 = D2 + 4 | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 29; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 29; + break b; + } + if ((j2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + F2 = 19; + break; + } + } else + F2 = 19; + while (0); + if ((F2 | 0) == 19) { + F2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[D2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[n2 >> 2] | 0; + if ((k[v2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, D2 | 0, h2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 29; + break; + } + if (!(i2[D2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[D2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, D2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 29; + break; + } + d2 = (i2[D2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[v2 >> 2] = d2 + h2; + } + j2 = a2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + G2 = x; + x = 0; + if (G2 & 1) { + F2 = 29; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, 16, d2, v2, s2, 0, E2, t2, u2, q2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + G2 = x; + x = 0; + if (G2 & 1) { + F2 = 29; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((F2 | 0) == 29) { + a2 = Wa() | 0; + break; + } + x = 0; + Fa(8, D2 | 0, (k[v2 >> 2] | 0) - d2 | 0, 0); + G2 = x; + x = 0; + if ((!(G2 & 1) ? (y2 = i2[D2 >> 0] | 0, z2 = k[o2 >> 2] | 0, x = 0, A2 = Da(3) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) ? (x = 0, k[w2 >> 2] = f2, B2 = Ea(16, ((y2 & 1) == 0 ? p2 : z2) | 0, A2 | 0, 58882, w2 | 0) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) { + if ((B2 | 0) != 1) + k[e2 >> 2] = 4; + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + G2 = x; + x = 0; + if (G2 & 1) { + F2 = 30; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + G2 = x; + x = 0; + if (G2 & 1) { + F2 = 30; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + F2 = 55; + break; + } + } + if (!d2) + F2 = 56; + } else + F2 = 55; + while (0); + if ((F2 | 0) == 55 ? d2 : 0) + F2 = 56; + if ((F2 | 0) == 56) + k[e2 >> 2] = k[e2 >> 2] | 2; + G2 = k[b2 >> 2] | 0; + Sm(D2); + Sm(E2); + r = C2; + return G2 | 0; + } else + F2 = 30; + } else + F2 = 30; + while (0); + if ((F2 | 0) == 30) + a2 = Wa() | 0; + Sm(D2); + break; + } + a2 = Wa() | 0; + zm(d2) | 0; + } + while (0); + Sm(E2); + fb(a2 | 0); + return 0; + } + function ep(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = k[d2 >> 2] | 0; + p2 = (o2 | 0) == (c2 | 0); + do + if (p2) { + m2 = (i2[l2 + 24 >> 0] | 0) == a2 << 24 >> 24; + if (!m2 ? (i2[l2 + 25 >> 0] | 0) != a2 << 24 >> 24 : 0) { + n2 = 5; + break; + } + k[d2 >> 2] = c2 + 1; + i2[c2 >> 0] = m2 ? 43 : 45; + k[e2 >> 2] = 0; + m2 = 0; + } else + n2 = 5; + while (0); + a: + do + if ((n2 | 0) == 5) { + n2 = i2[g2 >> 0] | 0; + if (a2 << 24 >> 24 == f2 << 24 >> 24 ? (((n2 & 1) == 0 ? (n2 & 255) >>> 1 : k[g2 + 4 >> 2] | 0) | 0) != 0 : 0) { + m2 = k[j2 >> 2] | 0; + if ((m2 - h2 | 0) >= 160) { + m2 = 0; + break; + } + b2 = k[e2 >> 2] | 0; + k[j2 >> 2] = m2 + 4; + k[m2 >> 2] = b2; + k[e2 >> 2] = 0; + m2 = 0; + break; + } + g2 = l2 + 26 | 0; + m2 = l2; + while (1) { + if ((i2[m2 >> 0] | 0) == a2 << 24 >> 24) + break; + m2 = m2 + 1 | 0; + if ((m2 | 0) == (g2 | 0)) { + m2 = g2; + break; + } + } + m2 = m2 - l2 | 0; + if ((m2 | 0) > 23) + m2 = -1; + else { + switch (b2 | 0) { + case 10: + case 8: { + if ((m2 | 0) >= (b2 | 0)) { + m2 = -1; + break a; + } + break; + } + case 16: { + if ((m2 | 0) >= 22) { + if (p2) { + m2 = -1; + break a; + } + if ((o2 - c2 | 0) >= 3) { + m2 = -1; + break a; + } + if ((i2[o2 + -1 >> 0] | 0) != 48) { + m2 = -1; + break a; + } + k[e2 >> 2] = 0; + m2 = i2[57498 + m2 >> 0] | 0; + k[d2 >> 2] = o2 + 1; + i2[o2 >> 0] = m2; + m2 = 0; + break a; + } + break; + } + default: { + } + } + m2 = i2[57498 + m2 >> 0] | 0; + k[d2 >> 2] = o2 + 1; + i2[o2 >> 0] = m2; + k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; + m2 = 0; + } + } + while (0); + return m2 | 0; + } + function fp() { + var a2 = 0, b2 = 0; + do + if ((i2[1968] | 0) == 0 ? (Qa(1968) | 0) != 0 : 0) { + x = 0; + a2 = va(31, 2147483647, 58885, 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Bb(1968); + fb(b2 | 0); + } else { + k[11196] = a2; + Ya(1968); + break; + } + } + while (0); + return k[11196] | 0; + } + function gp(a2) { + a2 = a2 | 0; + return; + } + function hp(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function ip(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + q2 = r; + r = r + 64 | 0; + o2 = q2 + 56 | 0; + g2 = q2 + 52 | 0; + m2 = q2 + 48 | 0; + h2 = q2 + 44 | 0; + j2 = q2 + 40 | 0; + l2 = q2 + 36 | 0; + n2 = q2 + 32 | 0; + s2 = q2 + 8 | 0; + p2 = q2; + a: + do + if (!(k[d2 + 4 >> 2] & 1)) { + k[m2 >> 2] = -1; + s2 = k[(k[a2 >> 2] | 0) + 16 >> 2] | 0; + k[h2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[g2 >> 2] = k[h2 >> 2]; + k[o2 >> 2] = k[j2 >> 2]; + g2 = Nb[s2 & 63](a2, g2, o2, d2, e2, m2) | 0; + k[b2 >> 2] = g2; + switch (k[m2 >> 2] | 0) { + case 0: { + i2[f2 >> 0] = 0; + break a; + } + case 1: { + i2[f2 >> 0] = 1; + break a; + } + default: { + i2[f2 >> 0] = 1; + k[e2 >> 2] = 4; + break a; + } + } + } else { + g2 = tn(d2) | 0; + k[l2 >> 2] = g2; + x = 0; + a2 = Aa(37, l2 | 0, 44212) | 0; + m2 = x; + x = 0; + do + if (!(m2 & 1)) { + zm(g2) | 0; + g2 = tn(d2) | 0; + k[n2 >> 2] = g2; + x = 0; + j2 = Aa(37, n2 | 0, 44368) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + s2 = Wa() | 0; + zm(g2) | 0; + g2 = s2; + break; + } + zm(g2) | 0; + x = 0; + ra(k[(k[j2 >> 2] | 0) + 24 >> 2] | 0, s2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + h2 = s2 + 12 | 0; + x = 0; + ra(k[(k[j2 >> 2] | 0) + 28 >> 2] | 0, h2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + k[p2 >> 2] = k[c2 >> 2]; + x = 0; + k[o2 >> 2] = k[p2 >> 2]; + g2 = na(8, b2 | 0, o2 | 0, s2 | 0, s2 + 24 | 0, a2 | 0, e2 | 0, 1) | 0; + e2 = x; + x = 0; + if (e2 & 1) { + g2 = Wa() | 0; + en(s2 + 12 | 0); + en(s2); + break; + } else { + i2[f2 >> 0] = (g2 | 0) == (s2 | 0) & 1; + g2 = k[b2 >> 2] | 0; + en(s2 + 12 | 0); + en(s2); + break a; + } + } + } else + h2 = s2; + g2 = Wa() | 0; + j2 = M; + if ((s2 | 0) != (h2 | 0)) + do { + h2 = h2 + -12 | 0; + en(h2); + } while ((h2 | 0) != (s2 | 0)); + } else { + s2 = Wa() | 0; + zm(g2) | 0; + g2 = s2; + } + while (0); + fb(g2 | 0); + } + while (0); + r = q2; + return g2 | 0; + } + function jp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Tu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function kp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Uu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function lp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Vu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function mp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Wu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function np(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Xu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function op(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Yu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function pp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Zu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function qp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = _u(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function rp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = $u(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function sp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0; + B2 = r; + r = r + 320 | 0; + v2 = B2; + p2 = B2 + 208 | 0; + D2 = B2 + 32 | 0; + a2 = B2 + 28 | 0; + C2 = B2 + 16 | 0; + u2 = B2 + 12 | 0; + s2 = B2 + 48 | 0; + t2 = B2 + 8 | 0; + q2 = B2 + 4 | 0; + k[D2 >> 2] = 0; + k[D2 + 4 >> 2] = 0; + k[D2 + 8 >> 2] = 0; + x = 0; + d2 = ta(68, d2 | 0) | 0; + o2 = x; + x = 0; + do + if (o2 & 1) + a2 = Wa() | 0; + else { + k[a2 >> 2] = d2; + x = 0; + a2 = Aa(37, a2 | 0, 44212) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Ea(k[(k[a2 >> 2] | 0) + 48 >> 2] | 0, a2 | 0, 57498, 57524, p2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + zm(d2) | 0; + k[C2 >> 2] = 0; + k[C2 + 4 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + if (!(i2[C2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[C2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, C2 | 0, a2 | 0, 0); + o2 = x; + x = 0; + a: + do + if (!(o2 & 1)) { + n2 = C2 + 8 | 0; + o2 = C2 + 1 | 0; + a2 = (i2[C2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[u2 >> 2] = a2; + k[t2 >> 2] = s2; + k[q2 >> 2] = 0; + m2 = C2 + 4 | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + E2 = 30; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + j2 = k[c2 >> 2] | 0; + do + if (j2) { + g2 = k[j2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + E2 = 30; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) { + g2 = j2; + break; + } else { + g2 = j2; + break b; + } + else { + k[c2 >> 2] = 0; + E2 = 20; + break; + } + } else + E2 = 20; + while (0); + if ((E2 | 0) == 20) { + E2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[C2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[m2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (a2 + h2 | 0)) { + x = 0; + Fa(8, C2 | 0, h2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + E2 = 30; + break; + } + if (!(i2[C2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[C2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, C2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + E2 = 30; + break; + } + a2 = (i2[C2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[u2 >> 2] = a2 + h2; + } + j2 = d2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + l2 = d2 + 16 | 0; + if ((h2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 30; + break; + } + } else + h2 = k[h2 >> 2] | 0; + if (tp(h2, 16, a2, u2, q2, 0, D2, s2, t2, p2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 30; + break; + } else { + g2 = d2; + continue; + } + } else { + k[j2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((E2 | 0) == 30) { + a2 = Wa() | 0; + break; + } + x = 0; + Fa(8, C2 | 0, (k[u2 >> 2] | 0) - a2 | 0, 0); + F2 = x; + x = 0; + if ((!(F2 & 1) ? (w2 = i2[C2 >> 0] | 0, y2 = k[n2 >> 2] | 0, x = 0, z2 = Da(3) | 0, F2 = x, x = 0, !(F2 & 1)) : 0) ? (x = 0, k[v2 >> 2] = f2, A2 = Ea(16, ((w2 & 1) == 0 ? o2 : y2) | 0, z2 | 0, 58882, v2 | 0) | 0, F2 = x, x = 0, !(F2 & 1)) : 0) { + if ((A2 | 0) != 1) + k[e2 >> 2] = 4; + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 31; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 31; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + E2 = 59; + break; + } + else { + k[c2 >> 2] = 0; + E2 = 57; + break; + } + } else + E2 = 57; + while (0); + if ((E2 | 0) == 57 ? d2 : 0) + E2 = 59; + if ((E2 | 0) == 59) + k[e2 >> 2] = k[e2 >> 2] | 2; + F2 = k[b2 >> 2] | 0; + Sm(C2); + Sm(D2); + r = B2; + return F2 | 0; + } else + E2 = 31; + } else + E2 = 31; + while (0); + if ((E2 | 0) == 31) + a2 = Wa() | 0; + Sm(C2); + break; + } + a2 = Wa() | 0; + zm(d2) | 0; + } + while (0); + Sm(D2); + fb(a2 | 0); + return 0; + } + function tp(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = k[d2 >> 2] | 0; + p2 = (o2 | 0) == (c2 | 0); + do + if (p2) { + m2 = (k[l2 + 96 >> 2] | 0) == (a2 | 0); + if (!m2 ? (k[l2 + 100 >> 2] | 0) != (a2 | 0) : 0) { + n2 = 5; + break; + } + k[d2 >> 2] = c2 + 1; + i2[c2 >> 0] = m2 ? 43 : 45; + k[e2 >> 2] = 0; + m2 = 0; + } else + n2 = 5; + while (0); + a: + do + if ((n2 | 0) == 5) { + n2 = i2[g2 >> 0] | 0; + if ((a2 | 0) == (f2 | 0) ? (((n2 & 1) == 0 ? (n2 & 255) >>> 1 : k[g2 + 4 >> 2] | 0) | 0) != 0 : 0) { + m2 = k[j2 >> 2] | 0; + if ((m2 - h2 | 0) >= 160) { + m2 = 0; + break; + } + b2 = k[e2 >> 2] | 0; + k[j2 >> 2] = m2 + 4; + k[m2 >> 2] = b2; + k[e2 >> 2] = 0; + m2 = 0; + break; + } + g2 = l2 + 104 | 0; + m2 = l2; + while (1) { + if ((k[m2 >> 2] | 0) == (a2 | 0)) + break; + m2 = m2 + 4 | 0; + if ((m2 | 0) == (g2 | 0)) { + m2 = g2; + break; + } + } + m2 = m2 - l2 | 0; + g2 = m2 >> 2; + if ((m2 | 0) > 92) + m2 = -1; + else { + switch (b2 | 0) { + case 10: + case 8: { + if ((g2 | 0) >= (b2 | 0)) { + m2 = -1; + break a; + } + break; + } + case 16: { + if ((m2 | 0) >= 88) { + if (p2) { + m2 = -1; + break a; + } + if ((o2 - c2 | 0) >= 3) { + m2 = -1; + break a; + } + if ((i2[o2 + -1 >> 0] | 0) != 48) { + m2 = -1; + break a; + } + k[e2 >> 2] = 0; + m2 = i2[57498 + g2 >> 0] | 0; + k[d2 >> 2] = o2 + 1; + i2[o2 >> 0] = m2; + m2 = 0; + break a; + } + break; + } + default: { + } + } + m2 = i2[57498 + g2 >> 0] | 0; + k[d2 >> 2] = o2 + 1; + i2[o2 >> 0] = m2; + k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; + m2 = 0; + } + } + while (0); + return m2 | 0; + } + function up(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + b2 = tn(b2) | 0; + k[h2 >> 2] = b2; + x = 0; + e2 = Aa(37, h2 | 0, 44220) | 0; + l2 = x; + x = 0; + if ((((!(l2 & 1) ? (x = 0, Ea(k[(k[e2 >> 2] | 0) + 32 >> 2] | 0, e2 | 0, 57498, 57524, c2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (x = 0, g2 = Aa(37, h2 | 0, 44360) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (x = 0, f2 = ta(k[(k[g2 >> 2] | 0) + 16 >> 2] | 0, g2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (i2[d2 >> 0] = f2, x = 0, ra(k[(k[g2 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, g2 | 0), l2 = x, x = 0, !(l2 & 1)) : 0) { + zm(b2) | 0; + r = j2; + return; + } + l2 = Wa() | 0; + zm(b2) | 0; + fb(l2 | 0); + } + function vp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + m2 = r; + r = r + 16 | 0; + l2 = m2; + b2 = tn(b2) | 0; + k[l2 >> 2] = b2; + x = 0; + f2 = Aa(37, l2 | 0, 44220) | 0; + n2 = x; + x = 0; + if (((((!(n2 & 1) ? (x = 0, Ea(k[(k[f2 >> 2] | 0) + 32 >> 2] | 0, f2 | 0, 57498, 57530, c2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (x = 0, j2 = Aa(37, l2 | 0, 44360) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (x = 0, g2 = ta(k[(k[j2 >> 2] | 0) + 12 >> 2] | 0, j2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (i2[d2 >> 0] = g2, x = 0, h2 = ta(k[(k[j2 >> 2] | 0) + 16 >> 2] | 0, j2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (i2[e2 >> 0] = h2, x = 0, ra(k[(k[j2 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, j2 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) { + zm(b2) | 0; + r = m2; + return; + } + n2 = Wa() | 0; + zm(b2) | 0; + fb(n2 | 0); + } + function wp(a2, b2, c2, d2, e2, f2, g2, h2, j2, m2, n2, o2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + var p2 = 0, q2 = 0; + a: + do + if (a2 << 24 >> 24 == f2 << 24 >> 24) + if (i2[b2 >> 0] | 0) { + i2[b2 >> 0] = 0; + c2 = k[e2 >> 2] | 0; + k[e2 >> 2] = c2 + 1; + i2[c2 >> 0] = 46; + c2 = i2[h2 >> 0] | 0; + if ((((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0 ? (p2 = k[m2 >> 2] | 0, (p2 - j2 | 0) < 160) : 0) { + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = p2 + 4; + k[p2 >> 2] = j2; + p2 = 0; + } else + p2 = 0; + } else + p2 = -1; + else { + if (a2 << 24 >> 24 == g2 << 24 >> 24 ? (g2 = i2[h2 >> 0] | 0, (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) { + if (!(i2[b2 >> 0] | 0)) { + p2 = -1; + break; + } + p2 = k[m2 >> 2] | 0; + if ((p2 - j2 | 0) >= 160) { + p2 = 0; + break; + } + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = p2 + 4; + k[p2 >> 2] = j2; + k[n2 >> 2] = 0; + p2 = 0; + break; + } + f2 = o2 + 32 | 0; + p2 = o2; + while (1) { + if ((i2[p2 >> 0] | 0) == a2 << 24 >> 24) + break; + p2 = p2 + 1 | 0; + if ((p2 | 0) == (f2 | 0)) { + p2 = f2; + break; + } + } + f2 = p2 - o2 | 0; + if ((f2 | 0) > 31) + p2 = -1; + else { + g2 = i2[57498 + f2 >> 0] | 0; + switch (f2 | 0) { + case 24: + case 25: { + p2 = k[e2 >> 2] | 0; + if ((p2 | 0) != (d2 | 0) ? (l[p2 + -1 >> 0] & 95 | 0) != (l[c2 >> 0] & 127 | 0) : 0) { + p2 = -1; + break a; + } + k[e2 >> 2] = p2 + 1; + i2[p2 >> 0] = g2; + p2 = 0; + break a; + } + case 23: + case 22: { + i2[c2 >> 0] = 80; + p2 = k[e2 >> 2] | 0; + k[e2 >> 2] = p2 + 1; + i2[p2 >> 0] = g2; + p2 = 0; + break a; + } + default: { + p2 = g2 & 95; + if ((((p2 | 0) == (i2[c2 >> 0] | 0) ? (i2[c2 >> 0] = p2 | 128, (i2[b2 >> 0] | 0) != 0) : 0) ? (i2[b2 >> 0] = 0, c2 = i2[h2 >> 0] | 0, (((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) ? (q2 = k[m2 >> 2] | 0, (q2 - j2 | 0) < 160) : 0) { + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = q2 + 4; + k[q2 >> 2] = j2; + } + m2 = k[e2 >> 2] | 0; + k[e2 >> 2] = m2 + 1; + i2[m2 >> 0] = g2; + if ((f2 | 0) > 21) { + p2 = 0; + break a; + } + k[n2 >> 2] = (k[n2 >> 2] | 0) + 1; + p2 = 0; + break a; + } + } + } + } + while (0); + return p2 | 0; + } + function xp(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0; + i3 = r; + r = r + 16 | 0; + h2 = i3; + b2 = tn(b2) | 0; + k[h2 >> 2] = b2; + x = 0; + e2 = Aa(37, h2 | 0, 44212) | 0; + j2 = x; + x = 0; + if ((((!(j2 & 1) ? (x = 0, Ea(k[(k[e2 >> 2] | 0) + 48 >> 2] | 0, e2 | 0, 57498, 57524, c2 | 0) | 0, j2 = x, x = 0, !(j2 & 1)) : 0) ? (x = 0, g2 = Aa(37, h2 | 0, 44368) | 0, j2 = x, x = 0, !(j2 & 1)) : 0) ? (x = 0, f2 = ta(k[(k[g2 >> 2] | 0) + 16 >> 2] | 0, g2 | 0) | 0, j2 = x, x = 0, !(j2 & 1)) : 0) ? (k[d2 >> 2] = f2, x = 0, ra(k[(k[g2 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, g2 | 0), j2 = x, x = 0, !(j2 & 1)) : 0) { + zm(b2) | 0; + r = i3; + return; + } + j2 = Wa() | 0; + zm(b2) | 0; + fb(j2 | 0); + } + function yp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0; + l2 = r; + r = r + 16 | 0; + j2 = l2; + b2 = tn(b2) | 0; + k[j2 >> 2] = b2; + x = 0; + f2 = Aa(37, j2 | 0, 44212) | 0; + m2 = x; + x = 0; + if (((((!(m2 & 1) ? (x = 0, Ea(k[(k[f2 >> 2] | 0) + 48 >> 2] | 0, f2 | 0, 57498, 57530, c2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (x = 0, i3 = Aa(37, j2 | 0, 44368) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (x = 0, g2 = ta(k[(k[i3 >> 2] | 0) + 12 >> 2] | 0, i3 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (k[d2 >> 2] = g2, x = 0, h2 = ta(k[(k[i3 >> 2] | 0) + 16 >> 2] | 0, i3 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (k[e2 >> 2] = h2, x = 0, ra(k[(k[i3 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, i3 | 0), m2 = x, x = 0, !(m2 & 1)) : 0) { + zm(b2) | 0; + r = l2; + return; + } + m2 = Wa() | 0; + zm(b2) | 0; + fb(m2 | 0); + } + function zp(a2, b2, c2, d2, e2, f2, g2, h2, j2, m2, n2, o2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + var p2 = 0, q2 = 0; + a: + do + if ((a2 | 0) == (f2 | 0)) + if (i2[b2 >> 0] | 0) { + i2[b2 >> 0] = 0; + c2 = k[e2 >> 2] | 0; + k[e2 >> 2] = c2 + 1; + i2[c2 >> 0] = 46; + c2 = i2[h2 >> 0] | 0; + if ((((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0 ? (p2 = k[m2 >> 2] | 0, (p2 - j2 | 0) < 160) : 0) { + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = p2 + 4; + k[p2 >> 2] = j2; + p2 = 0; + } else + p2 = 0; + } else + p2 = -1; + else { + if ((a2 | 0) == (g2 | 0) ? (g2 = i2[h2 >> 0] | 0, (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) { + if (!(i2[b2 >> 0] | 0)) { + p2 = -1; + break; + } + p2 = k[m2 >> 2] | 0; + if ((p2 - j2 | 0) >= 160) { + p2 = 0; + break; + } + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = p2 + 4; + k[p2 >> 2] = j2; + k[n2 >> 2] = 0; + p2 = 0; + break; + } + f2 = o2 + 128 | 0; + p2 = o2; + while (1) { + if ((k[p2 >> 2] | 0) == (a2 | 0)) + break; + p2 = p2 + 4 | 0; + if ((p2 | 0) == (f2 | 0)) { + p2 = f2; + break; + } + } + f2 = p2 - o2 | 0; + p2 = f2 >> 2; + if ((f2 | 0) <= 124) { + g2 = i2[57498 + p2 >> 0] | 0; + switch (p2 | 0) { + case 24: + case 25: { + p2 = k[e2 >> 2] | 0; + if ((p2 | 0) != (d2 | 0) ? (l[p2 + -1 >> 0] & 95 | 0) != (l[c2 >> 0] & 127 | 0) : 0) { + p2 = -1; + break a; + } + k[e2 >> 2] = p2 + 1; + i2[p2 >> 0] = g2; + p2 = 0; + break a; + } + case 23: + case 22: { + i2[c2 >> 0] = 80; + break; + } + default: { + p2 = g2 & 95; + if ((((p2 | 0) == (i2[c2 >> 0] | 0) ? (i2[c2 >> 0] = p2 | 128, (i2[b2 >> 0] | 0) != 0) : 0) ? (i2[b2 >> 0] = 0, c2 = i2[h2 >> 0] | 0, (((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) ? (q2 = k[m2 >> 2] | 0, (q2 - j2 | 0) < 160) : 0) { + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = q2 + 4; + k[q2 >> 2] = j2; + } + } + } + m2 = k[e2 >> 2] | 0; + k[e2 >> 2] = m2 + 1; + i2[m2 >> 0] = g2; + if ((f2 | 0) > 84) + p2 = 0; + else { + k[n2 >> 2] = (k[n2 >> 2] | 0) + 1; + p2 = 0; + } + } else + p2 = -1; + } + while (0); + return p2 | 0; + } + function Ap(a2) { + a2 = a2 | 0; + return; + } + function Bp(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Cp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 32 | 0; + f2 = m2 + 20 | 0; + g2 = m2 + 16 | 0; + h2 = m2 + 12 | 0; + l2 = m2; + a: + do + if (!(k[c2 + 4 >> 2] & 1)) { + l2 = k[(k[a2 >> 2] | 0) + 24 >> 2] | 0; + k[g2 >> 2] = k[b2 >> 2]; + k[f2 >> 2] = k[g2 >> 2]; + f2 = Wb[l2 & 31](a2, f2, c2, d2, e2 & 1) | 0; + } else { + f2 = tn(c2) | 0; + k[h2 >> 2] = f2; + x = 0; + g2 = Aa(37, h2 | 0, 44360) | 0; + j2 = x; + x = 0; + b: + do + if (j2 & 1) { + m2 = Wa() | 0; + zm(f2) | 0; + f2 = m2; + } else { + zm(f2) | 0; + f2 = k[g2 >> 2] | 0; + if (e2) + Mb[k[f2 + 24 >> 2] & 127](l2, g2); + else + Mb[k[f2 + 28 >> 2] & 127](l2, g2); + a2 = i2[l2 >> 0] | 0; + j2 = (a2 & 1) == 0; + f2 = l2 + 1 | 0; + e2 = l2 + 8 | 0; + h2 = j2 ? f2 : l2 + 1 | 0; + f2 = j2 ? f2 : k[l2 + 8 >> 2] | 0; + j2 = l2 + 4 | 0; + c2 = (a2 & 1) == 0; + c: + do + if ((f2 | 0) != ((c2 ? h2 : k[e2 >> 2] | 0) + (c2 ? (a2 & 255) >>> 1 : k[j2 >> 2] | 0) | 0)) { + d: + while (1) { + g2 = i2[f2 >> 0] | 0; + d2 = k[b2 >> 2] | 0; + do + if (d2) { + c2 = d2 + 24 | 0; + a2 = k[c2 >> 2] | 0; + if ((a2 | 0) != (k[d2 + 28 >> 2] | 0)) { + k[c2 >> 2] = a2 + 1; + i2[a2 >> 0] = g2; + break; + } + x = 0; + g2 = Aa(k[(k[d2 >> 2] | 0) + 52 >> 2] | 0, d2 | 0, g2 & 255 | 0) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break d; + if ((g2 | 0) == -1) + k[b2 >> 2] = 0; + } + while (0); + f2 = f2 + 1 | 0; + a2 = i2[l2 >> 0] | 0; + c2 = (a2 & 1) == 0; + if ((f2 | 0) == ((c2 ? h2 : k[e2 >> 2] | 0) + (c2 ? (a2 & 255) >>> 1 : k[j2 >> 2] | 0) | 0)) + break c; + } + f2 = Wa() | 0; + Sm(l2); + break b; + } + while (0); + f2 = k[b2 >> 2] | 0; + Sm(l2); + break a; + } + while (0); + fb(f2 | 0); + } + while (0); + r = m2; + return f2 | 0; + } + function Dp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 64 | 0; + f2 = m2; + o2 = m2 + 56 | 0; + p2 = m2 + 44 | 0; + h2 = m2 + 20 | 0; + l2 = m2 + 16 | 0; + j2 = m2 + 12 | 0; + n2 = m2 + 8 | 0; + g2 = m2 + 4 | 0; + i2[o2 >> 0] = i2[58887] | 0; + i2[o2 + 1 >> 0] = i2[58888] | 0; + i2[o2 + 2 >> 0] = i2[58889] | 0; + i2[o2 + 3 >> 0] = i2[58890] | 0; + i2[o2 + 4 >> 0] = i2[58891] | 0; + i2[o2 + 5 >> 0] = i2[58892] | 0; + Ep(o2 + 1 | 0, 58893, 1, k[c2 + 4 >> 2] | 0); + a2 = fp() | 0; + k[f2 >> 2] = e2; + e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; + o2 = Fp(p2, e2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(1, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + p2 = Wa() | 0; + zm(a2) | 0; + fb(p2 | 0); + } else { + zm(a2) | 0; + k[g2 >> 2] = k[b2 >> 2]; + o2 = k[l2 >> 2] | 0; + p2 = k[j2 >> 2] | 0; + k[f2 >> 2] = k[g2 >> 2]; + p2 = md(f2, h2, o2, p2, c2, d2) | 0; + r = m2; + return p2 | 0; + } + return 0; + } + function Ep(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + if (d2 & 2048) { + i2[a2 >> 0] = 43; + a2 = a2 + 1 | 0; + } + if (d2 & 512) { + i2[a2 >> 0] = 35; + a2 = a2 + 1 | 0; + } + e2 = i2[b2 >> 0] | 0; + if (e2 << 24 >> 24) { + f2 = b2; + while (1) { + f2 = f2 + 1 | 0; + b2 = a2 + 1 | 0; + i2[a2 >> 0] = e2; + e2 = i2[f2 >> 0] | 0; + if (!(e2 << 24 >> 24)) { + a2 = b2; + break; + } else + a2 = b2; + } + } + a: + do + switch (d2 & 74 | 0) { + case 64: { + i2[a2 >> 0] = 111; + break; + } + case 8: + if (!(d2 & 16384)) { + i2[a2 >> 0] = 120; + break a; + } else { + i2[a2 >> 0] = 88; + break a; + } + default: + if (c2) { + i2[a2 >> 0] = 100; + break a; + } else { + i2[a2 >> 0] = 117; + break a; + } + } + while (0); + return; + } + function Fp(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + a: + do + switch (k[c2 + 4 >> 2] & 176 | 0) { + case 16: { + c2 = i2[a2 >> 0] | 0; + switch (c2 << 24 >> 24) { + case 43: + case 45: { + a2 = a2 + 1 | 0; + break a; + } + default: { + } + } + if ((b2 - a2 | 0) > 1 & c2 << 24 >> 24 == 48) { + switch (i2[a2 + 1 >> 0] | 0) { + case 88: + case 120: + break; + default: { + d2 = 7; + break a; + } + } + a2 = a2 + 2 | 0; + } else + d2 = 7; + break; + } + case 32: { + a2 = b2; + break; + } + default: + d2 = 7; + } + while (0); + return a2 | 0; + } + function Gp(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + u2 = r; + r = r + 16 | 0; + v2 = u2; + s2 = Ss(g2, 44220) | 0; + l2 = Ss(g2, 44360) | 0; + Mb[k[(k[l2 >> 2] | 0) + 20 >> 2] & 127](v2, l2); + p2 = i2[v2 >> 0] | 0; + q2 = v2 + 4 | 0; + a: + do + if (!(((p2 & 1) == 0 ? (p2 & 255) >>> 1 : k[q2 >> 2] | 0) | 0)) { + x = 0; + Ea(k[(k[s2 >> 2] | 0) + 32 >> 2] | 0, s2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + t2 = 5; + else { + g2 = d2 + (c2 - a2) | 0; + k[f2 >> 2] = g2; + t2 = 29; + } + } else { + k[f2 >> 2] = d2; + g2 = i2[a2 >> 0] | 0; + switch (g2 << 24 >> 24) { + case 43: + case 45: { + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, g2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = g2; + j2 = a2 + 1 | 0; + break; + } + default: + j2 = a2; + } + b: + do + if ((c2 - j2 | 0) > 1 ? (i2[j2 >> 0] | 0) == 48 : 0) { + g2 = j2 + 1 | 0; + switch (i2[g2 >> 0] | 0) { + case 88: + case 120: + break; + default: + break b; + } + x = 0; + h2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, 48) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + p2 = k[f2 >> 2] | 0; + k[f2 >> 2] = p2 + 1; + i2[p2 >> 0] = h2; + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, i2[g2 >> 0] | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + p2 = k[f2 >> 2] | 0; + k[f2 >> 2] = p2 + 1; + i2[p2 >> 0] = g2; + j2 = j2 + 2 | 0; + } + while (0); + if ((j2 | 0) != (c2 | 0) ? (m2 = c2 + -1 | 0, j2 >>> 0 < m2 >>> 0) : 0) { + h2 = j2; + g2 = m2; + do { + p2 = i2[h2 >> 0] | 0; + i2[h2 >> 0] = i2[g2 >> 0] | 0; + i2[g2 >> 0] = p2; + h2 = h2 + 1 | 0; + g2 = g2 + -1 | 0; + } while (h2 >>> 0 < g2 >>> 0); + } + x = 0; + m2 = ta(k[(k[l2 >> 2] | 0) + 16 >> 2] | 0, l2 | 0) | 0; + p2 = x; + x = 0; + if (!(p2 & 1)) { + n2 = v2 + 8 | 0; + o2 = v2 + 1 | 0; + c: + do + if (j2 >>> 0 < c2 >>> 0) { + g2 = 0; + h2 = 0; + p2 = j2; + while (1) { + l2 = i2[((i2[v2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0) + h2 >> 0] | 0; + if (l2 << 24 >> 24 != 0 & (g2 | 0) == (l2 << 24 >> 24 | 0)) { + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = g2 + 1; + i2[g2 >> 0] = m2; + g2 = i2[v2 >> 0] | 0; + l2 = 0; + h2 = (h2 >>> 0 < (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + h2 | 0; + } else + l2 = g2; + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, i2[p2 >> 0] | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) + break; + w2 = k[f2 >> 2] | 0; + k[f2 >> 2] = w2 + 1; + i2[w2 >> 0] = g2; + p2 = p2 + 1 | 0; + if (p2 >>> 0 >= c2 >>> 0) + break c; + else + g2 = l2 + 1 | 0; + } + g2 = Wa() | 0; + break a; + } + while (0); + h2 = a2; + g2 = d2 + (j2 - h2) | 0; + a2 = k[f2 >> 2] | 0; + if ((g2 | 0) == (a2 | 0)) { + a2 = h2; + t2 = 29; + } else { + a2 = a2 + -1 | 0; + if (g2 >>> 0 < a2 >>> 0) + do { + w2 = i2[g2 >> 0] | 0; + i2[g2 >> 0] = i2[a2 >> 0] | 0; + i2[a2 >> 0] = w2; + g2 = g2 + 1 | 0; + a2 = a2 + -1 | 0; + } while (g2 >>> 0 < a2 >>> 0); + a2 = h2; + g2 = k[f2 >> 2] | 0; + t2 = 29; + } + } else + t2 = 5; + } + while (0); + if ((t2 | 0) == 5) + g2 = Wa() | 0; + else if ((t2 | 0) == 29) { + k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? g2 : d2 + (b2 - a2) | 0; + Sm(v2); + r = u2; + return; + } + Sm(v2); + fb(g2 | 0); + } + function Hp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + m2 = r; + r = r + 96 | 0; + g2 = m2 + 8 | 0; + a2 = m2; + o2 = m2 + 74 | 0; + i3 = m2 + 32 | 0; + l2 = m2 + 28 | 0; + j2 = m2 + 24 | 0; + n2 = m2 + 20 | 0; + h2 = m2 + 16 | 0; + p2 = a2; + k[p2 >> 2] = 37; + k[p2 + 4 >> 2] = 0; + Ep(a2 + 1 | 0, 58895, 1, k[c2 + 4 >> 2] | 0); + p2 = fp() | 0; + q2 = g2; + k[q2 >> 2] = e2; + k[q2 + 4 >> 2] = f2; + f2 = o2 + (av(o2, 22, p2, a2, g2) | 0) | 0; + e2 = Fp(o2, f2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(1, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + q2 = Wa() | 0; + zm(a2) | 0; + fb(q2 | 0); + } else { + zm(a2) | 0; + k[h2 >> 2] = k[b2 >> 2]; + p2 = k[l2 >> 2] | 0; + q2 = k[j2 >> 2] | 0; + k[g2 >> 2] = k[h2 >> 2]; + q2 = md(g2, i3, p2, q2, c2, d2) | 0; + r = m2; + return q2 | 0; + } + return 0; + } + function Ip(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 64 | 0; + f2 = m2; + o2 = m2 + 56 | 0; + p2 = m2 + 44 | 0; + h2 = m2 + 20 | 0; + l2 = m2 + 16 | 0; + j2 = m2 + 12 | 0; + n2 = m2 + 8 | 0; + g2 = m2 + 4 | 0; + i2[o2 >> 0] = i2[58887] | 0; + i2[o2 + 1 >> 0] = i2[58888] | 0; + i2[o2 + 2 >> 0] = i2[58889] | 0; + i2[o2 + 3 >> 0] = i2[58890] | 0; + i2[o2 + 4 >> 0] = i2[58891] | 0; + i2[o2 + 5 >> 0] = i2[58892] | 0; + Ep(o2 + 1 | 0, 58893, 0, k[c2 + 4 >> 2] | 0); + a2 = fp() | 0; + k[f2 >> 2] = e2; + e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; + o2 = Fp(p2, e2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(1, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + p2 = Wa() | 0; + zm(a2) | 0; + fb(p2 | 0); + } else { + zm(a2) | 0; + k[g2 >> 2] = k[b2 >> 2]; + o2 = k[l2 >> 2] | 0; + p2 = k[j2 >> 2] | 0; + k[f2 >> 2] = k[g2 >> 2]; + p2 = md(f2, h2, o2, p2, c2, d2) | 0; + r = m2; + return p2 | 0; + } + return 0; + } + function Jp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + m2 = r; + r = r + 112 | 0; + g2 = m2 + 8 | 0; + a2 = m2; + o2 = m2 + 75 | 0; + i3 = m2 + 32 | 0; + l2 = m2 + 28 | 0; + j2 = m2 + 24 | 0; + n2 = m2 + 20 | 0; + h2 = m2 + 16 | 0; + p2 = a2; + k[p2 >> 2] = 37; + k[p2 + 4 >> 2] = 0; + Ep(a2 + 1 | 0, 58895, 0, k[c2 + 4 >> 2] | 0); + p2 = fp() | 0; + q2 = g2; + k[q2 >> 2] = e2; + k[q2 + 4 >> 2] = f2; + f2 = o2 + (av(o2, 23, p2, a2, g2) | 0) | 0; + e2 = Fp(o2, f2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(1, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + q2 = Wa() | 0; + zm(a2) | 0; + fb(q2 | 0); + } else { + zm(a2) | 0; + k[h2 >> 2] = k[b2 >> 2]; + p2 = k[l2 >> 2] | 0; + q2 = k[j2 >> 2] | 0; + k[g2 >> 2] = k[h2 >> 2]; + q2 = md(g2, i3, p2, q2, c2, d2) | 0; + r = m2; + return q2 | 0; + } + return 0; + } + function Kp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 176 | 0; + t2 = z2 + 84 | 0; + n2 = z2 + 48 | 0; + m2 = z2 + 32 | 0; + i3 = z2 + 24 | 0; + f2 = z2 + 8 | 0; + l2 = z2; + q2 = z2 + 88 | 0; + s2 = z2 + 80 | 0; + h2 = z2 + 118 | 0; + y2 = z2 + 76 | 0; + w2 = z2 + 72 | 0; + u2 = z2 + 68 | 0; + v2 = z2 + 64 | 0; + j2 = l2; + k[j2 >> 2] = 37; + k[j2 + 4 >> 2] = 0; + j2 = Lp(l2 + 1 | 0, 58898, k[c2 + 4 >> 2] | 0) | 0; + k[s2 >> 2] = q2; + a2 = fp() | 0; + if (j2) { + k[f2 >> 2] = k[c2 + 8 >> 2]; + p[f2 + 8 >> 3] = e2; + f2 = av(q2, 30, a2, l2, f2) | 0; + } else { + p[i3 >> 3] = e2; + f2 = av(q2, 30, a2, l2, i3) | 0; + } + a: + do + if ((f2 | 0) > 29) { + x = 0; + a2 = Da(3) | 0; + f2 = x; + x = 0; + f2 = f2 & 1; + if (j2) { + if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) + A2 = 12; + } else if (!f2 ? (x = 0, k[n2 >> 2] = k[c2 + 8 >> 2], p[n2 + 8 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + g2 = o2; + A2 = 12; + } + do + if ((A2 | 0) == 12) { + a2 = k[s2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + o2 = x; + x = 0; + if (o2 & 1) + break; + f2 = k[s2 >> 2] | 0; + } else + f2 = a2; + a2 = f2; + l2 = f2; + A2 = 16; + break a; + } + while (0); + a2 = Wa() | 0; + } else { + a2 = k[s2 >> 2] | 0; + l2 = 0; + g2 = f2; + A2 = 16; + } + while (0); + if ((A2 | 0) == 16) { + i3 = a2 + g2 | 0; + j2 = Fp(a2, i3, c2) | 0; + do + if ((a2 | 0) == (q2 | 0)) { + a2 = q2; + f2 = 0; + A2 = 22; + } else { + g2 = Pl(g2 << 1) | 0; + if (!g2) { + x = 0; + Ga(6); + A2 = x; + x = 0; + if (A2 & 1) { + f2 = 0; + A2 = 20; + break; + } + a2 = k[s2 >> 2] | 0; + } + f2 = g2; + h2 = g2; + A2 = 22; + } + while (0); + do + if ((A2 | 0) == 22) { + x = 0; + g2 = ta(68, c2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[u2 >> 2] = g2; + x = 0; + ya(2, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + zm(g2) | 0; + break; + } + zm(g2) | 0; + k[v2 >> 2] = k[b2 >> 2]; + A2 = k[y2 >> 2] | 0; + a2 = k[w2 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[v2 >> 2]; + a2 = sa(39, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + A2 = x; + x = 0; + if (!(A2 & 1)) { + k[b2 >> 2] = a2; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + r = z2; + return a2 | 0; + } else + A2 = 20; + } else + A2 = 20; + } + while (0); + if ((A2 | 0) == 20) + a2 = Wa() | 0; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + } + fb(a2 | 0); + return 0; + } + function Lp(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + if (c2 & 2048) { + i2[a2 >> 0] = 43; + a2 = a2 + 1 | 0; + } + if (c2 & 1024) { + i2[a2 >> 0] = 35; + a2 = a2 + 1 | 0; + } + g2 = c2 & 260; + e2 = c2 >>> 14; + h2 = (g2 | 0) == 260; + if (h2) + f2 = 0; + else { + i2[a2 >> 0] = 46; + i2[a2 + 1 >> 0] = 42; + a2 = a2 + 2 | 0; + f2 = 1; + } + c2 = i2[b2 >> 0] | 0; + if (c2 << 24 >> 24) { + d2 = a2; + while (1) { + b2 = b2 + 1 | 0; + a2 = d2 + 1 | 0; + i2[d2 >> 0] = c2; + c2 = i2[b2 >> 0] | 0; + if (!(c2 << 24 >> 24)) + break; + else + d2 = a2; + } + } + a: + do + switch (g2 | 0) { + case 4: + if (!(e2 & 1)) { + i2[a2 >> 0] = 102; + break a; + } else { + i2[a2 >> 0] = 70; + break a; + } + case 256: + if (!(e2 & 1)) { + i2[a2 >> 0] = 101; + break a; + } else { + i2[a2 >> 0] = 69; + break a; + } + default: { + c2 = (e2 & 1 | 0) != 0; + if (h2) + if (c2) { + i2[a2 >> 0] = 65; + break a; + } else { + i2[a2 >> 0] = 97; + break a; + } + else if (c2) { + i2[a2 >> 0] = 71; + break a; + } else { + i2[a2 >> 0] = 103; + break a; + } + } + } + while (0); + return f2 | 0; + } + function Mp(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0; + z2 = r; + r = r + 16 | 0; + A2 = z2; + y2 = Ss(g2, 44220) | 0; + v2 = Ss(g2, 44360) | 0; + Mb[k[(k[v2 >> 2] | 0) + 20 >> 2] & 127](A2, v2); + k[f2 >> 2] = d2; + g2 = i2[a2 >> 0] | 0; + switch (g2 << 24 >> 24) { + case 43: + case 45: { + x = 0; + g2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, g2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) + u2 = 8; + else { + m2 = k[f2 >> 2] | 0; + k[f2 >> 2] = m2 + 1; + i2[m2 >> 0] = g2; + m2 = a2 + 1 | 0; + u2 = 10; + } + break; + } + default: { + m2 = a2; + u2 = 10; + } + } + a: + do + if ((u2 | 0) == 10) { + w2 = c2; + b: + do + if ((w2 - m2 | 0) > 1 ? (i2[m2 >> 0] | 0) == 48 : 0) { + j2 = m2 + 1 | 0; + switch (i2[j2 >> 0] | 0) { + case 88: + case 120: + break; + default: { + u2 = 11; + break b; + } + } + x = 0; + g2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, 48) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + u2 = 8; + break a; + } + t2 = k[f2 >> 2] | 0; + k[f2 >> 2] = t2 + 1; + i2[t2 >> 0] = g2; + m2 = m2 + 2 | 0; + x = 0; + g2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, i2[j2 >> 0] | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + u2 = 8; + break a; + } + t2 = k[f2 >> 2] | 0; + k[f2 >> 2] = t2 + 1; + i2[t2 >> 0] = g2; + if (m2 >>> 0 < c2 >>> 0) { + g2 = m2; + while (1) { + j2 = i2[g2 >> 0] | 0; + x = 0; + l2 = Da(3) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break; + x = 0; + j2 = Aa(39, j2 << 24 >> 24 | 0, l2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break; + if (!j2) { + t2 = m2; + break b; + } + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) { + t2 = m2; + break b; + } + } + g2 = Wa() | 0; + break a; + } else { + t2 = m2; + g2 = m2; + } + } else + u2 = 11; + while (0); + c: + do + if ((u2 | 0) == 11) + if (m2 >>> 0 < c2 >>> 0) { + g2 = m2; + while (1) { + j2 = i2[g2 >> 0] | 0; + x = 0; + l2 = Da(3) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break; + x = 0; + j2 = Aa(40, j2 << 24 >> 24 | 0, l2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break; + if (!j2) { + t2 = m2; + break c; + } + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) { + t2 = m2; + break c; + } + } + g2 = Wa() | 0; + break a; + } else { + t2 = m2; + g2 = m2; + } + while (0); + q2 = i2[A2 >> 0] | 0; + s2 = A2 + 4 | 0; + if (((q2 & 1) == 0 ? (q2 & 255) >>> 1 : k[s2 >> 2] | 0) | 0) { + if ((t2 | 0) != (g2 | 0) ? (n2 = g2 + -1 | 0, t2 >>> 0 < n2 >>> 0) : 0) { + l2 = t2; + j2 = n2; + do { + q2 = i2[l2 >> 0] | 0; + i2[l2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = q2; + l2 = l2 + 1 | 0; + j2 = j2 + -1 | 0; + } while (l2 >>> 0 < j2 >>> 0); + } + x = 0; + n2 = ta(k[(k[v2 >> 2] | 0) + 16 >> 2] | 0, v2 | 0) | 0; + q2 = x; + x = 0; + if (q2 & 1) { + u2 = 8; + break; + } + o2 = A2 + 8 | 0; + p2 = A2 + 1 | 0; + d: + do + if (t2 >>> 0 < g2 >>> 0) { + j2 = 0; + l2 = 0; + q2 = t2; + while (1) { + m2 = i2[((i2[A2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0) + l2 >> 0] | 0; + if (m2 << 24 >> 24 > 0 & (j2 | 0) == (m2 << 24 >> 24 | 0)) { + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = n2; + j2 = i2[A2 >> 0] | 0; + m2 = 0; + l2 = (l2 >>> 0 < (((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[s2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + l2 | 0; + } else + m2 = j2; + x = 0; + j2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, i2[q2 >> 0] | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) + break; + B2 = k[f2 >> 2] | 0; + k[f2 >> 2] = B2 + 1; + i2[B2 >> 0] = j2; + q2 = q2 + 1 | 0; + if (q2 >>> 0 >= g2 >>> 0) + break d; + else + j2 = m2 + 1 | 0; + } + g2 = Wa() | 0; + break a; + } + while (0); + j2 = d2 + (t2 - a2) | 0; + l2 = k[f2 >> 2] | 0; + if ((j2 | 0) != (l2 | 0) ? (h2 = l2 + -1 | 0, j2 >>> 0 < h2 >>> 0) : 0) { + do { + B2 = i2[j2 >> 0] | 0; + i2[j2 >> 0] = i2[h2 >> 0] | 0; + i2[h2 >> 0] = B2; + j2 = j2 + 1 | 0; + h2 = h2 + -1 | 0; + } while (j2 >>> 0 < h2 >>> 0); + j2 = y2; + } else + j2 = y2; + } else { + x = 0; + Ea(k[(k[y2 >> 2] | 0) + 32 >> 2] | 0, y2 | 0, t2 | 0, g2 | 0, k[f2 >> 2] | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) { + u2 = 8; + break; + } + k[f2 >> 2] = (k[f2 >> 2] | 0) + (g2 - t2); + j2 = y2; + } + e: + do + if (g2 >>> 0 < c2 >>> 0) { + while (1) { + h2 = i2[g2 >> 0] | 0; + if (h2 << 24 >> 24 == 46) + break; + x = 0; + h2 = Aa(k[(k[j2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, h2 | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) { + u2 = 4; + break; + } + B2 = k[f2 >> 2] | 0; + k[f2 >> 2] = B2 + 1; + i2[B2 >> 0] = h2; + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) + break e; + } + if ((u2 | 0) == 4) { + g2 = Wa() | 0; + break a; + } + x = 0; + h2 = ta(k[(k[v2 >> 2] | 0) + 12 >> 2] | 0, v2 | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) { + u2 = 8; + break a; + } + B2 = k[f2 >> 2] | 0; + k[f2 >> 2] = B2 + 1; + i2[B2 >> 0] = h2; + g2 = g2 + 1 | 0; + } + while (0); + x = 0; + Ea(k[(k[y2 >> 2] | 0) + 32 >> 2] | 0, y2 | 0, g2 | 0, c2 | 0, k[f2 >> 2] | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) + u2 = 8; + else { + B2 = (k[f2 >> 2] | 0) + (w2 - g2) | 0; + k[f2 >> 2] = B2; + k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? B2 : d2 + (b2 - a2) | 0; + Sm(A2); + r = z2; + return; + } + } + while (0); + if ((u2 | 0) == 8) + g2 = Wa() | 0; + Sm(A2); + fb(g2 | 0); + } + function Np(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 176 | 0; + t2 = z2 + 76 | 0; + n2 = z2 + 48 | 0; + m2 = z2 + 32 | 0; + i3 = z2 + 24 | 0; + f2 = z2 + 8 | 0; + l2 = z2; + q2 = z2 + 80 | 0; + s2 = z2 + 72 | 0; + h2 = z2 + 110 | 0; + y2 = z2 + 68 | 0; + w2 = z2 + 64 | 0; + u2 = z2 + 60 | 0; + v2 = z2 + 56 | 0; + j2 = l2; + k[j2 >> 2] = 37; + k[j2 + 4 >> 2] = 0; + j2 = Lp(l2 + 1 | 0, 58899, k[c2 + 4 >> 2] | 0) | 0; + k[s2 >> 2] = q2; + a2 = fp() | 0; + if (j2) { + k[f2 >> 2] = k[c2 + 8 >> 2]; + p[f2 + 8 >> 3] = e2; + f2 = av(q2, 30, a2, l2, f2) | 0; + } else { + p[i3 >> 3] = e2; + f2 = av(q2, 30, a2, l2, i3) | 0; + } + a: + do + if ((f2 | 0) > 29) { + x = 0; + a2 = Da(3) | 0; + f2 = x; + x = 0; + f2 = f2 & 1; + if (j2) { + if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) + A2 = 12; + } else if (!f2 ? (x = 0, p[n2 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + g2 = o2; + A2 = 12; + } + do + if ((A2 | 0) == 12) { + a2 = k[s2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + o2 = x; + x = 0; + if (o2 & 1) + break; + f2 = k[s2 >> 2] | 0; + } else + f2 = a2; + a2 = f2; + l2 = f2; + A2 = 16; + break a; + } + while (0); + a2 = Wa() | 0; + } else { + a2 = k[s2 >> 2] | 0; + l2 = 0; + g2 = f2; + A2 = 16; + } + while (0); + if ((A2 | 0) == 16) { + i3 = a2 + g2 | 0; + j2 = Fp(a2, i3, c2) | 0; + do + if ((a2 | 0) == (q2 | 0)) { + a2 = q2; + f2 = 0; + A2 = 22; + } else { + g2 = Pl(g2 << 1) | 0; + if (!g2) { + x = 0; + Ga(6); + A2 = x; + x = 0; + if (A2 & 1) { + f2 = 0; + A2 = 20; + break; + } + a2 = k[s2 >> 2] | 0; + } + f2 = g2; + h2 = g2; + A2 = 22; + } + while (0); + do + if ((A2 | 0) == 22) { + x = 0; + g2 = ta(68, c2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[u2 >> 2] = g2; + x = 0; + ya(2, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + zm(g2) | 0; + break; + } + zm(g2) | 0; + k[v2 >> 2] = k[b2 >> 2]; + A2 = k[y2 >> 2] | 0; + a2 = k[w2 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[v2 >> 2]; + a2 = sa(39, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + A2 = x; + x = 0; + if (!(A2 & 1)) { + k[b2 >> 2] = a2; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + r = z2; + return a2 | 0; + } else + A2 = 20; + } else + A2 = 20; + } + while (0); + if ((A2 | 0) == 20) + a2 = Wa() | 0; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + } + fb(a2 | 0); + return 0; + } + function Op(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 80 | 0; + j2 = o2; + a2 = o2 + 70 | 0; + m2 = o2 + 12 | 0; + n2 = o2 + 32 | 0; + h2 = o2 + 8 | 0; + l2 = o2 + 4 | 0; + i2[a2 >> 0] = i2[58901] | 0; + i2[a2 + 1 >> 0] = i2[58902] | 0; + i2[a2 + 2 >> 0] = i2[58903] | 0; + i2[a2 + 3 >> 0] = i2[58904] | 0; + i2[a2 + 4 >> 0] = i2[58905] | 0; + i2[a2 + 5 >> 0] = i2[58906] | 0; + f2 = fp() | 0; + k[j2 >> 2] = e2; + a2 = av(m2, 20, f2, a2, j2) | 0; + e2 = m2 + a2 | 0; + f2 = Fp(m2, e2, c2) | 0; + g2 = tn(c2) | 0; + k[h2 >> 2] = g2; + x = 0; + h2 = Aa(37, h2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + zm(g2) | 0; + fb(p2 | 0); + } else { + zm(g2) | 0; + Zb[k[(k[h2 >> 2] | 0) + 32 >> 2] & 31](h2, m2, e2, n2) | 0; + p2 = n2 + a2 | 0; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[l2 >> 2]; + p2 = md(j2, n2, (f2 | 0) == (e2 | 0) ? p2 : n2 + (f2 - m2) | 0, p2, c2, d2) | 0; + r = o2; + return p2 | 0; + } + return 0; + } + function Pp(a2) { + a2 = a2 | 0; + return; + } + function Qp(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Rp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + f2 = l2 + 20 | 0; + g2 = l2 + 16 | 0; + h2 = l2 + 12 | 0; + j2 = l2; + a: + do + if (!(k[c2 + 4 >> 2] & 1)) { + j2 = k[(k[a2 >> 2] | 0) + 24 >> 2] | 0; + k[g2 >> 2] = k[b2 >> 2]; + k[f2 >> 2] = k[g2 >> 2]; + f2 = Wb[j2 & 31](a2, f2, c2, d2, e2 & 1) | 0; + } else { + f2 = tn(c2) | 0; + k[h2 >> 2] = f2; + x = 0; + g2 = Aa(37, h2 | 0, 44368) | 0; + h2 = x; + x = 0; + b: + do + if (h2 & 1) { + l2 = Wa() | 0; + zm(f2) | 0; + f2 = l2; + } else { + zm(f2) | 0; + f2 = k[g2 >> 2] | 0; + if (e2) + Mb[k[f2 + 24 >> 2] & 127](j2, g2); + else + Mb[k[f2 + 28 >> 2] & 127](j2, g2); + a2 = i2[j2 >> 0] | 0; + c2 = (a2 & 1) == 0; + f2 = j2 + 4 | 0; + e2 = j2 + 8 | 0; + h2 = c2 ? f2 : j2 + 4 | 0; + f2 = c2 ? f2 : k[j2 + 8 >> 2] | 0; + c2 = (a2 & 1) == 0; + c: + do + if ((f2 | 0) != ((c2 ? h2 : k[e2 >> 2] | 0) + ((c2 ? (a2 & 255) >>> 1 : k[h2 >> 2] | 0) << 2) | 0)) { + while (1) { + g2 = k[f2 >> 2] | 0; + d2 = k[b2 >> 2] | 0; + if (d2) { + c2 = d2 + 24 | 0; + a2 = k[c2 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 28 >> 2] | 0)) { + x = 0; + g2 = Aa(k[(k[d2 >> 2] | 0) + 52 >> 2] | 0, d2 | 0, g2 | 0) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + } else { + k[c2 >> 2] = a2 + 4; + k[a2 >> 2] = g2; + } + if ((g2 | 0) == -1) + k[b2 >> 2] = 0; + } + f2 = f2 + 4 | 0; + a2 = i2[j2 >> 0] | 0; + c2 = (a2 & 1) == 0; + if ((f2 | 0) == ((c2 ? h2 : k[e2 >> 2] | 0) + ((c2 ? (a2 & 255) >>> 1 : k[h2 >> 2] | 0) << 2) | 0)) + break c; + } + f2 = Wa() | 0; + en(j2); + break b; + } + while (0); + f2 = k[b2 >> 2] | 0; + en(j2); + break a; + } + while (0); + fb(f2 | 0); + } + while (0); + r = l2; + return f2 | 0; + } + function Sp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 128 | 0; + f2 = m2; + o2 = m2 + 116 | 0; + p2 = m2 + 104 | 0; + h2 = m2 + 20 | 0; + l2 = m2 + 16 | 0; + j2 = m2 + 12 | 0; + n2 = m2 + 8 | 0; + g2 = m2 + 4 | 0; + i2[o2 >> 0] = i2[58887] | 0; + i2[o2 + 1 >> 0] = i2[58888] | 0; + i2[o2 + 2 >> 0] = i2[58889] | 0; + i2[o2 + 3 >> 0] = i2[58890] | 0; + i2[o2 + 4 >> 0] = i2[58891] | 0; + i2[o2 + 5 >> 0] = i2[58892] | 0; + Ep(o2 + 1 | 0, 58893, 1, k[c2 + 4 >> 2] | 0); + a2 = fp() | 0; + k[f2 >> 2] = e2; + e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; + o2 = Fp(p2, e2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(3, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + p2 = Wa() | 0; + zm(a2) | 0; + fb(p2 | 0); + } else { + zm(a2) | 0; + k[g2 >> 2] = k[b2 >> 2]; + o2 = k[l2 >> 2] | 0; + p2 = k[j2 >> 2] | 0; + k[f2 >> 2] = k[g2 >> 2]; + p2 = cv(f2, h2, o2, p2, c2, d2) | 0; + r = m2; + return p2 | 0; + } + return 0; + } + function Tp(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + u2 = r; + r = r + 16 | 0; + v2 = u2; + s2 = Ss(g2, 44212) | 0; + l2 = Ss(g2, 44368) | 0; + Mb[k[(k[l2 >> 2] | 0) + 20 >> 2] & 127](v2, l2); + p2 = i2[v2 >> 0] | 0; + q2 = v2 + 4 | 0; + a: + do + if (!(((p2 & 1) == 0 ? (p2 & 255) >>> 1 : k[q2 >> 2] | 0) | 0)) { + x = 0; + Ea(k[(k[s2 >> 2] | 0) + 48 >> 2] | 0, s2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + t2 = 5; + else { + g2 = d2 + (c2 - a2 << 2) | 0; + k[f2 >> 2] = g2; + t2 = 28; + } + } else { + k[f2 >> 2] = d2; + g2 = i2[a2 >> 0] | 0; + switch (g2 << 24 >> 24) { + case 43: + case 45: { + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, g2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 4; + k[j2 >> 2] = g2; + j2 = a2 + 1 | 0; + break; + } + default: + j2 = a2; + } + b: + do + if ((c2 - j2 | 0) > 1 ? (i2[j2 >> 0] | 0) == 48 : 0) { + g2 = j2 + 1 | 0; + switch (i2[g2 >> 0] | 0) { + case 88: + case 120: + break; + default: { + p2 = j2; + break b; + } + } + x = 0; + h2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, 48) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + p2 = k[f2 >> 2] | 0; + k[f2 >> 2] = p2 + 4; + k[p2 >> 2] = h2; + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, i2[g2 >> 0] | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + p2 = k[f2 >> 2] | 0; + k[f2 >> 2] = p2 + 4; + k[p2 >> 2] = g2; + p2 = j2 + 2 | 0; + } else + p2 = j2; + while (0); + if ((p2 | 0) != (c2 | 0) ? (m2 = c2 + -1 | 0, p2 >>> 0 < m2 >>> 0) : 0) { + h2 = p2; + g2 = m2; + do { + o2 = i2[h2 >> 0] | 0; + i2[h2 >> 0] = i2[g2 >> 0] | 0; + i2[g2 >> 0] = o2; + h2 = h2 + 1 | 0; + g2 = g2 + -1 | 0; + } while (h2 >>> 0 < g2 >>> 0); + } + x = 0; + l2 = ta(k[(k[l2 >> 2] | 0) + 16 >> 2] | 0, l2 | 0) | 0; + o2 = x; + x = 0; + if (!(o2 & 1)) { + m2 = v2 + 8 | 0; + n2 = v2 + 1 | 0; + c: + do + if (p2 >>> 0 < c2 >>> 0) { + g2 = 0; + h2 = 0; + o2 = p2; + while (1) { + j2 = i2[((i2[v2 >> 0] & 1) == 0 ? n2 : k[m2 >> 2] | 0) + h2 >> 0] | 0; + if (j2 << 24 >> 24 != 0 & (g2 | 0) == (j2 << 24 >> 24 | 0)) { + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = g2 + 4; + k[g2 >> 2] = l2; + g2 = i2[v2 >> 0] | 0; + j2 = 0; + h2 = (h2 >>> 0 < (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + h2 | 0; + } else + j2 = g2; + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, i2[o2 >> 0] | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) + break; + w2 = k[f2 >> 2] | 0; + k[f2 >> 2] = w2 + 4; + k[w2 >> 2] = g2; + o2 = o2 + 1 | 0; + if (o2 >>> 0 >= c2 >>> 0) + break c; + else + g2 = j2 + 1 | 0; + } + g2 = Wa() | 0; + break a; + } + while (0); + j2 = a2; + g2 = d2 + (p2 - j2 << 2) | 0; + h2 = k[f2 >> 2] | 0; + if ((g2 | 0) != (h2 | 0)) { + a2 = h2 + -4 | 0; + if (g2 >>> 0 < a2 >>> 0) { + do { + w2 = k[g2 >> 2] | 0; + k[g2 >> 2] = k[a2 >> 2]; + k[a2 >> 2] = w2; + g2 = g2 + 4 | 0; + a2 = a2 + -4 | 0; + } while (g2 >>> 0 < a2 >>> 0); + a2 = j2; + g2 = h2; + t2 = 28; + } else { + a2 = j2; + g2 = h2; + t2 = 28; + } + } else { + a2 = j2; + t2 = 28; + } + } else + t2 = 5; + } + while (0); + if ((t2 | 0) == 5) + g2 = Wa() | 0; + else if ((t2 | 0) == 28) { + k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? g2 : d2 + (b2 - a2 << 2) | 0; + Sm(v2); + r = u2; + return; + } + Sm(v2); + fb(g2 | 0); + } + function Up(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + m2 = r; + r = r + 224 | 0; + g2 = m2 + 8 | 0; + a2 = m2; + o2 = m2 + 196 | 0; + i3 = m2 + 32 | 0; + l2 = m2 + 28 | 0; + j2 = m2 + 24 | 0; + n2 = m2 + 20 | 0; + h2 = m2 + 16 | 0; + p2 = a2; + k[p2 >> 2] = 37; + k[p2 + 4 >> 2] = 0; + Ep(a2 + 1 | 0, 58895, 1, k[c2 + 4 >> 2] | 0); + p2 = fp() | 0; + q2 = g2; + k[q2 >> 2] = e2; + k[q2 + 4 >> 2] = f2; + f2 = o2 + (av(o2, 22, p2, a2, g2) | 0) | 0; + e2 = Fp(o2, f2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(3, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + q2 = Wa() | 0; + zm(a2) | 0; + fb(q2 | 0); + } else { + zm(a2) | 0; + k[h2 >> 2] = k[b2 >> 2]; + p2 = k[l2 >> 2] | 0; + q2 = k[j2 >> 2] | 0; + k[g2 >> 2] = k[h2 >> 2]; + q2 = cv(g2, i3, p2, q2, c2, d2) | 0; + r = m2; + return q2 | 0; + } + return 0; + } + function Et(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; + t2 = r; + r = r + 16 | 0; + q2 = t2; + o2 = t2 + 8 | 0; + a: + do + if ((c2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = c2; + while (1) { + if (!(k[j2 >> 2] | 0)) + break a; + j2 = j2 + 4 | 0; + if ((j2 | 0) == (d2 | 0)) { + j2 = d2; + break; + } + } + } + while (0); + k[h2 >> 2] = f2; + k[e2 >> 2] = c2; + m2 = g2; + p2 = a2 + 8 | 0; + b: + do + if (!((f2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0))) { + a2 = f2; + l2 = j2; + c: + while (1) { + v2 = b2; + f2 = k[v2 + 4 >> 2] | 0; + j2 = q2; + k[j2 >> 2] = k[v2 >> 2]; + k[j2 + 4 >> 2] = f2; + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + f2 = Ba(21, a2 | 0, e2 | 0, l2 - c2 >> 2 | 0, m2 - a2 | 0, b2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 9; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 8; + break; + } + switch (f2 | 0) { + case 0: { + n2 = 1; + break b; + } + case -1: { + j2 = a2; + u2 = 14; + break c; + } + default: { + } + } + j2 = (k[h2 >> 2] | 0) + f2 | 0; + k[h2 >> 2] = j2; + if ((j2 | 0) == (g2 | 0)) { + u2 = 27; + break; + } + if ((l2 | 0) == (d2 | 0)) { + c2 = k[e2 >> 2] | 0; + a2 = j2; + j2 = d2; + } else { + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + c2 = va(34, o2 | 0, 0, b2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 35; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 34; + break; + } + if ((c2 | 0) == -1) { + n2 = 2; + break b; + } + if (c2 >>> 0 > (m2 - (k[h2 >> 2] | 0) | 0) >>> 0) { + n2 = 1; + break b; + } + if (c2) { + j2 = o2; + while (1) { + l2 = i2[j2 >> 0] | 0; + v2 = k[h2 >> 2] | 0; + k[h2 >> 2] = v2 + 1; + i2[v2 >> 0] = l2; + c2 = c2 + -1 | 0; + if (!c2) + break; + else + j2 = j2 + 1 | 0; + } + } + c2 = (k[e2 >> 2] | 0) + 4 | 0; + k[e2 >> 2] = c2; + d: + do + if ((c2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = c2; + while (1) { + if (!(k[j2 >> 2] | 0)) + break d; + j2 = j2 + 4 | 0; + if ((j2 | 0) == (d2 | 0)) { + j2 = d2; + break; + } + } + } + while (0); + a2 = k[h2 >> 2] | 0; + } + if ((a2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0)) { + u2 = 47; + break b; + } else + l2 = j2; + } + if ((u2 | 0) == 8) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 9) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } else if ((u2 | 0) == 14) { + k[h2 >> 2] = j2; + e: + do + if ((c2 | 0) != (k[e2 >> 2] | 0)) { + while (1) { + v2 = k[c2 >> 2] | 0; + a2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + j2 = va(34, j2 | 0, v2 | 0, q2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + s2 = a2; + break; + } + if ((a2 | 0) != 0 ? (x = 0, ta(75, a2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 18; + break; + } + if ((j2 | 0) == -1) + break e; + j2 = (k[h2 >> 2] | 0) + j2 | 0; + k[h2 >> 2] = j2; + c2 = c2 + 4 | 0; + if ((c2 | 0) == (k[e2 >> 2] | 0)) + break e; + } + if ((u2 | 0) == 18) { + v2 = Wa(0) | 0; + oc(v2); + } + c2 = Wa() | 0; + if ((s2 | 0) != 0 ? (x = 0, ta(75, s2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } + while (0); + k[e2 >> 2] = c2; + n2 = 2; + break; + } else if ((u2 | 0) == 27) { + c2 = k[e2 >> 2] | 0; + u2 = 47; + break; + } else if ((u2 | 0) == 34) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 35) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } + } else + u2 = 47; + while (0); + if ((u2 | 0) == 47) + n2 = (c2 | 0) != (d2 | 0) & 1; + r = t2; + return n2 | 0; + } + function Ft(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; + t2 = r; + r = r + 16 | 0; + s2 = t2; + a: + do + if ((c2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = c2; + while (1) { + if (!(i2[j2 >> 0] | 0)) + break a; + j2 = j2 + 1 | 0; + if ((j2 | 0) == (d2 | 0)) { + j2 = d2; + break; + } + } + } + while (0); + k[h2 >> 2] = f2; + k[e2 >> 2] = c2; + n2 = g2; + p2 = a2 + 8 | 0; + b: + do + if (!((f2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0))) { + a2 = f2; + m2 = j2; + c: + while (1) { + l2 = b2; + j2 = k[l2 + 4 >> 2] | 0; + f2 = s2; + k[f2 >> 2] = k[l2 >> 2]; + k[f2 + 4 >> 2] = j2; + f2 = m2; + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + l2 = Ba(22, a2 | 0, e2 | 0, f2 - c2 | 0, n2 - a2 >> 2 | 0, b2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 9; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 8; + break; + } + switch (l2 | 0) { + case 0: { + o2 = 2; + break b; + } + case -1: { + j2 = a2; + u2 = 14; + break c; + } + default: { + } + } + a2 = (k[h2 >> 2] | 0) + (l2 << 2) | 0; + k[h2 >> 2] = a2; + if ((a2 | 0) == (g2 | 0)) { + u2 = 31; + break; + } + c2 = k[e2 >> 2] | 0; + if ((m2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + c2 = Ea(20, a2 | 0, c2 | 0, 1, b2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 38; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 37; + break; + } + if (c2) { + o2 = 2; + break b; + } + k[h2 >> 2] = (k[h2 >> 2] | 0) + 4; + c2 = (k[e2 >> 2] | 0) + 1 | 0; + k[e2 >> 2] = c2; + d: + do + if ((c2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = c2; + while (1) { + if (!(i2[j2 >> 0] | 0)) + break d; + j2 = j2 + 1 | 0; + if ((j2 | 0) == (d2 | 0)) { + j2 = d2; + break; + } + } + } + while (0); + a2 = k[h2 >> 2] | 0; + } + if ((a2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0)) { + u2 = 47; + break b; + } else + m2 = j2; + } + if ((u2 | 0) == 8) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 9) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } else if ((u2 | 0) == 14) { + k[h2 >> 2] = j2; + e: + do + if ((c2 | 0) != (k[e2 >> 2] | 0)) { + a2 = j2; + f: + while (1) { + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + a2 = Ea(20, a2 | 0, c2 | 0, f2 - c2 | 0, s2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 19; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 18; + break; + } + switch (a2 | 0) { + case -1: { + u2 = 25; + break f; + } + case -2: { + u2 = 26; + break f; + } + case 0: { + c2 = c2 + 1 | 0; + break; + } + default: + c2 = c2 + a2 | 0; + } + a2 = (k[h2 >> 2] | 0) + 4 | 0; + k[h2 >> 2] = a2; + if ((c2 | 0) == (k[e2 >> 2] | 0)) { + q2 = c2; + break e; + } + } + if ((u2 | 0) == 18) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 19) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } else if ((u2 | 0) == 25) { + k[e2 >> 2] = c2; + o2 = 2; + break b; + } else if ((u2 | 0) == 26) { + k[e2 >> 2] = c2; + o2 = 1; + break b; + } + } else + q2 = c2; + while (0); + k[e2 >> 2] = q2; + o2 = (q2 | 0) != (d2 | 0) & 1; + break; + } else if ((u2 | 0) == 31) { + c2 = k[e2 >> 2] | 0; + u2 = 47; + break; + } else if ((u2 | 0) == 37) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 38) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } + } else + u2 = 47; + while (0); + if ((u2 | 0) == 47) + o2 = (c2 | 0) != (d2 | 0) & 1; + r = t2; + return o2 | 0; + } + function Gt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = r; + r = r + 16 | 0; + f2 = g2; + k[e2 >> 2] = c2; + c2 = Ak(k[a2 + 8 >> 2] | 0) | 0; + x = 0; + a2 = va(34, f2 | 0, 0, b2 | 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + f2 = Wa() | 0; + if ((c2 | 0) != 0 ? (x = 0, ta(75, c2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { + g2 = Wa(0) | 0; + oc(g2); + } + fb(f2 | 0); + } + if ((c2 | 0) != 0 ? (x = 0, ta(75, c2 | 0) | 0, b2 = x, x = 0, b2 & 1) : 0) { + b2 = Wa(0) | 0; + oc(b2); + } + switch (a2 | 0) { + case 0: + case -1: { + f2 = 2; + break; + } + default: { + a2 = a2 + -1 | 0; + if (a2 >>> 0 <= (d2 - (k[e2 >> 2] | 0) | 0) >>> 0) + if (!a2) + f2 = 0; + else + while (1) { + b2 = i2[f2 >> 0] | 0; + d2 = k[e2 >> 2] | 0; + k[e2 >> 2] = d2 + 1; + i2[d2 >> 0] = b2; + a2 = a2 + -1 | 0; + if (!a2) { + f2 = 0; + break; + } else + f2 = f2 + 1 | 0; + } + else + f2 = 1; + } + } + r = g2; + return f2 | 0; + } + function Ht(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + b2 = a2 + 8 | 0; + x = 0; + c2 = ta(75, k[b2 >> 2] | 0) | 0; + d2 = x; + x = 0; + do + if (d2 & 1) + e2 = 16; + else { + x = 0; + d2 = va(35, 0, 0, 4) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa(0) | 0; + if (!c2) + break; + x = 0; + ta(75, c2 | 0) | 0; + g2 = x; + x = 0; + if (!(g2 & 1)) + break; + g2 = Wa(0) | 0; + oc(g2); + } + if ((c2 | 0) != 0 ? (x = 0, ta(75, c2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { + g2 = Wa(0) | 0; + oc(g2); + } + if (!d2) { + a2 = k[b2 >> 2] | 0; + if (a2) { + x = 0; + a2 = ta(75, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + e2 = 16; + break; + } + if ((a2 | 0) != 0 ? (x = 0, ta(75, a2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { + g2 = Wa(0) | 0; + oc(g2); + } else + f2 = 0; + } else + f2 = 1; + } else + f2 = -1; + return f2 | 0; + } + while (0); + if ((e2 | 0) == 16) + a2 = Wa(0) | 0; + oc(a2); + return 0; + } + function It(a2) { + a2 = a2 | 0; + return 0; + } + function Jt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + j2 = d2; + i3 = a2 + 8 | 0; + a: + do + if ((c2 | 0) == (d2 | 0) | (e2 | 0) == 0) + a2 = 0; + else { + a2 = 0; + h2 = 0; + while (1) { + g2 = Ak(k[i3 >> 2] | 0) | 0; + x = 0; + f2 = va(36, c2 | 0, j2 - c2 | 0, b2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + m2 = g2; + break; + } + if ((g2 | 0) != 0 ? (x = 0, ta(75, g2 | 0) | 0, n2 = x, x = 0, n2 & 1) : 0) { + l2 = 5; + break; + } + switch (f2 | 0) { + case -2: + case -1: + break a; + case 0: { + c2 = c2 + 1 | 0; + f2 = 1; + break; + } + default: + c2 = c2 + f2 | 0; + } + a2 = f2 + a2 | 0; + h2 = h2 + 1 | 0; + if ((c2 | 0) == (d2 | 0) | h2 >>> 0 >= e2 >>> 0) + break a; + } + if ((l2 | 0) == 5) { + n2 = Wa(0) | 0; + oc(n2); + } + a2 = Wa() | 0; + if ((m2 | 0) != 0 ? (x = 0, ta(75, m2 | 0) | 0, n2 = x, x = 0, n2 & 1) : 0) { + n2 = Wa(0) | 0; + oc(n2); + } + fb(a2 | 0); + } + while (0); + return a2 | 0; + } + function Kt(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + a2 = k[a2 + 8 >> 2] | 0; + if (a2) { + x = 0; + a2 = ta(75, a2 | 0) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + if ((a2 | 0) != 0 ? (x = 0, ta(75, a2 | 0) | 0, c2 = x, x = 0, c2 & 1) : 0) { + c2 = Wa(0) | 0; + oc(c2); + } else + b2 = 4; + } else + b2 = 1; + return b2 | 0; + } + function Lt(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Mt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0; + a2 = r; + r = r + 16 | 0; + i3 = a2 + 4 | 0; + b2 = a2; + k[i3 >> 2] = c2; + k[b2 >> 2] = f2; + g2 = Rv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; + k[e2 >> 2] = k[i3 >> 2]; + k[h2 >> 2] = k[b2 >> 2]; + r = a2; + return g2 | 0; + } + function Nt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0; + a2 = r; + r = r + 16 | 0; + i3 = a2 + 4 | 0; + b2 = a2; + k[i3 >> 2] = c2; + k[b2 >> 2] = f2; + g2 = Sv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; + k[e2 >> 2] = k[i3 >> 2]; + k[h2 >> 2] = k[b2 >> 2]; + r = a2; + return g2 | 0; + } + function Ot(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + k[e2 >> 2] = c2; + return 3; + } + function Pt(a2) { + a2 = a2 | 0; + return 0; + } + function Qt(a2) { + a2 = a2 | 0; + return 0; + } + function Rt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + return Tv(c2, d2, e2, 1114111, 0) | 0; + } + function St(a2) { + a2 = a2 | 0; + return 4; + } + function Tt(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Ut(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0; + a2 = r; + r = r + 16 | 0; + i3 = a2 + 4 | 0; + b2 = a2; + k[i3 >> 2] = c2; + k[b2 >> 2] = f2; + g2 = Uv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; + k[e2 >> 2] = k[i3 >> 2]; + k[h2 >> 2] = k[b2 >> 2]; + r = a2; + return g2 | 0; + } + function Vt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0; + a2 = r; + r = r + 16 | 0; + i3 = a2 + 4 | 0; + b2 = a2; + k[i3 >> 2] = c2; + k[b2 >> 2] = f2; + g2 = Vv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; + k[e2 >> 2] = k[i3 >> 2]; + k[h2 >> 2] = k[b2 >> 2]; + r = a2; + return g2 | 0; + } + function Wt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + k[e2 >> 2] = c2; + return 3; + } + function Xt(a2) { + a2 = a2 | 0; + return 0; + } + function Yt(a2) { + a2 = a2 | 0; + return 0; + } + function Zt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + return Wv(c2, d2, e2, 1114111, 0) | 0; + } + function _t(a2) { + a2 = a2 | 0; + return 4; + } + function $t(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function au(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function bu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 + 4 >> 2] = b2 + -1; + k[a2 >> 2] = 44384; + i2[a2 + 8 >> 0] = 46; + i2[a2 + 9 >> 0] = 44; + a2 = a2 + 12 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function cu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 + 4 >> 2] = b2 + -1; + k[a2 >> 2] = 44424; + k[a2 + 8 >> 2] = 46; + k[a2 + 12 >> 2] = 44; + a2 = a2 + 16 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function du(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 44384; + Sm(a2 + 12 | 0); + return; + } + function eu(a2) { + a2 = a2 | 0; + du(a2); + mj(a2); + return; + } + function fu(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 44424; + Sm(a2 + 16 | 0); + return; + } + function gu(a2) { + a2 = a2 | 0; + fu(a2); + mj(a2); + return; + } + function hu(a2) { + a2 = a2 | 0; + return i2[a2 + 8 >> 0] | 0; + } + function iu(a2) { + a2 = a2 | 0; + return k[a2 + 8 >> 2] | 0; + } + function ju(a2) { + a2 = a2 | 0; + return i2[a2 + 9 >> 0] | 0; + } + function ku(a2) { + a2 = a2 | 0; + return k[a2 + 12 >> 2] | 0; + } + function lu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Pm(a2, b2 + 12 | 0); + return; + } + function mu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Pm(a2, b2 + 16 | 0); + return; + } + function nu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Qm(a2, 59024, 4); + return; + } + function ou(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + cn(a2, 44996, zl(44996) | 0); + return; + } + function pu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Qm(a2, 59029, 5); + return; + } + function qu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + cn(a2, 45016, zl(45016) | 0); + return; + } + function ru(a2) { + a2 = a2 | 0; + switch (k[a2 + 4 >> 2] & 74 | 0) { + case 64: { + a2 = 8; + break; + } + case 8: { + a2 = 16; + break; + } + case 0: { + a2 = 0; + break; + } + default: + a2 = 10; + } + return a2 | 0; + } + function su(a2) { + a2 = a2 | 0; + do + if ((i2[2464] | 0) == 0 ? (Qa(2464) | 0) != 0 : 0) { + if ((i2[2472] | 0) == 0 ? (Qa(2472) | 0) != 0 : 0) { + a2 = 45040; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 45208); + tb(193, 0, w | 0) | 0; + Ya(2472); + } + x = 0; + Aa(41, 45040, 59035) | 0; + a2 = x; + x = 0; + if (((((((((((((!(a2 & 1) ? (x = 0, Aa(41, 45052, 59042) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45064, 59049) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45076, 59057) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45088, 59067) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45100, 59076) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45112, 59083) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45124, 59092) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45136, 59096) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45148, 59100) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45160, 59104) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45172, 59108) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45184, 59112) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45196, 59116) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + k[11302] = 45040; + Ya(2464); + break; + } + a2 = Wa() | 0; + Bb(2464); + fb(a2 | 0); + } + while (0); + return k[11302] | 0; + } + function tu(a2) { + a2 = a2 | 0; + do + if ((i2[2480] | 0) == 0 ? (Qa(2480) | 0) != 0 : 0) { + if ((i2[2488] | 0) == 0 ? (Qa(2488) | 0) != 0 : 0) { + a2 = 45212; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 45380); + tb(194, 0, w | 0) | 0; + Ya(2488); + } + x = 0; + Aa(42, 45212, 45380) | 0; + a2 = x; + x = 0; + if (((((((((((((!(a2 & 1) ? (x = 0, Aa(42, 45224, 45408) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45236, 45436) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45248, 45468) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45260, 45508) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45272, 45544) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45284, 45572) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45296, 45608) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45308, 45624) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45320, 45640) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45332, 45656) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45344, 45672) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45356, 45688) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45368, 45704) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + k[11430] = 45212; + Ya(2480); + break; + } + a2 = Wa() | 0; + Bb(2480); + fb(a2 | 0); + } + while (0); + return k[11430] | 0; + } + function uu(a2) { + a2 = a2 | 0; + a: + do + if ((i2[2496] | 0) == 0 ? (Qa(2496) | 0) != 0 : 0) { + if ((i2[2504] | 0) == 0 ? (Qa(2504) | 0) != 0 : 0) { + a2 = 45724; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 46012); + tb(195, 0, w | 0) | 0; + Ya(2504); + } + x = 0; + Aa(41, 45724, 59120) | 0; + a2 = x; + x = 0; + do + if ((((((((((((((!(a2 & 1) ? (x = 0, Aa(41, 45736, 59128) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45748, 59137) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45760, 59143) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45772, 59149) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45784, 59153) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45796, 59158) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45808, 59163) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45820, 59170) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45832, 59180) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45844, 59188) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45856, 59197) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45868, 59206) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45880, 59210) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45892, 59214) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + x = 0; + Aa(41, 45904, 59218) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45916, 59149) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45928, 59222) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45940, 59226) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45952, 59230) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45964, 59234) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45976, 59238) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45988, 59242) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 46e3, 59246) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + k[11503] = 45724; + Ya(2496); + break a; + } + while (0); + a2 = Wa() | 0; + Bb(2496); + fb(a2 | 0); + } + while (0); + return k[11503] | 0; + } + function vu(a2) { + a2 = a2 | 0; + a: + do + if ((i2[2512] | 0) == 0 ? (Qa(2512) | 0) != 0 : 0) { + if ((i2[2520] | 0) == 0 ? (Qa(2520) | 0) != 0 : 0) { + a2 = 46016; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 46304); + tb(196, 0, w | 0) | 0; + Ya(2520); + } + x = 0; + Aa(42, 46016, 46304) | 0; + a2 = x; + x = 0; + do + if ((((((((((((((!(a2 & 1) ? (x = 0, Aa(42, 46028, 46336) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46040, 46372) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46052, 46396) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46064, 46420) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46076, 46436) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46088, 46456) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46100, 46476) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46112, 46504) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46124, 46544) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46136, 46576) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46148, 46612) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46160, 46648) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46172, 46664) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46184, 46680) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + x = 0; + Aa(42, 46196, 46696) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46208, 46420) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46220, 46712) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46232, 46728) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46244, 46744) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46256, 46760) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46268, 46776) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46280, 46792) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46292, 46808) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + k[11706] = 46016; + Ya(2512); + break a; + } + while (0); + a2 = Wa() | 0; + Bb(2512); + fb(a2 | 0); + } + while (0); + return k[11706] | 0; + } + function wu(a2) { + a2 = a2 | 0; + do + if ((i2[2528] | 0) == 0 ? (Qa(2528) | 0) != 0 : 0) { + if ((i2[2536] | 0) == 0 ? (Qa(2536) | 0) != 0 : 0) { + a2 = 46828; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 47116); + tb(197, 0, w | 0) | 0; + Ya(2536); + } + x = 0; + Aa(41, 46828, 59250) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Aa(41, 46840, 59253) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + k[11779] = 46828; + Ya(2528); + break; + } + a2 = Wa() | 0; + Bb(2528); + fb(a2 | 0); + } + while (0); + return k[11779] | 0; + } + function xu(a2) { + a2 = a2 | 0; + do + if ((i2[2544] | 0) == 0 ? (Qa(2544) | 0) != 0 : 0) { + if ((i2[2552] | 0) == 0 ? (Qa(2552) | 0) != 0 : 0) { + a2 = 47120; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 47408); + tb(198, 0, w | 0) | 0; + Ya(2552); + } + x = 0; + Aa(42, 47120, 47408) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Aa(42, 47132, 47420) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + k[11858] = 47120; + Ya(2544); + break; + } + a2 = Wa() | 0; + Bb(2544); + fb(a2 | 0); + } + while (0); + return k[11858] | 0; + } + function yu(a2) { + a2 = a2 | 0; + do + if ((i2[2560] | 0) == 0 ? (Qa(2560) | 0) != 0 : 0) { + x = 0; + Fa(5, 47436, 59256, 8); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2560); + fb(a2 | 0); + } else { + tb(199, 47436, w | 0) | 0; + Ya(2560); + break; + } + } + while (0); + return 47436; + } + function zu(a2) { + a2 = a2 | 0; + var b2 = 0; + do + if ((i2[2568] | 0) == 0 ? (Qa(2568) | 0) != 0 : 0) { + x = 0; + a2 = ta(76, 47448) | 0; + b2 = x; + x = 0; + if (!(b2 & 1) ? (x = 0, Fa(15, 47484, 47448, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { + tb(200, 47484, w | 0) | 0; + Ya(2568); + break; + } + b2 = Wa() | 0; + Bb(2568); + fb(b2 | 0); + } + while (0); + return 47484; + } + function Au(a2) { + a2 = a2 | 0; + do + if ((i2[2576] | 0) == 0 ? (Qa(2576) | 0) != 0 : 0) { + x = 0; + Fa(5, 47496, 59265, 8); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2576); + fb(a2 | 0); + } else { + tb(199, 47496, w | 0) | 0; + Ya(2576); + break; + } + } + while (0); + return 47496; + } + function Bu(a2) { + a2 = a2 | 0; + var b2 = 0; + do + if ((i2[2584] | 0) == 0 ? (Qa(2584) | 0) != 0 : 0) { + x = 0; + a2 = ta(76, 47508) | 0; + b2 = x; + x = 0; + if (!(b2 & 1) ? (x = 0, Fa(15, 47544, 47508, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { + tb(200, 47544, w | 0) | 0; + Ya(2584); + break; + } + b2 = Wa() | 0; + Bb(2584); + fb(b2 | 0); + } + while (0); + return 47544; + } + function Cu(a2) { + a2 = a2 | 0; + do + if ((i2[2592] | 0) == 0 ? (Qa(2592) | 0) != 0 : 0) { + x = 0; + Fa(5, 47556, 59274, 20); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2592); + fb(a2 | 0); + } else { + tb(199, 47556, w | 0) | 0; + Ya(2592); + break; + } + } + while (0); + return 47556; + } + function Du(a2) { + a2 = a2 | 0; + var b2 = 0; + do + if ((i2[2600] | 0) == 0 ? (Qa(2600) | 0) != 0 : 0) { + x = 0; + a2 = ta(76, 47568) | 0; + b2 = x; + x = 0; + if (!(b2 & 1) ? (x = 0, Fa(15, 47652, 47568, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { + tb(200, 47652, w | 0) | 0; + Ya(2600); + break; + } + b2 = Wa() | 0; + Bb(2600); + fb(b2 | 0); + } + while (0); + return 47652; + } + function Eu(a2) { + a2 = a2 | 0; + do + if ((i2[2608] | 0) == 0 ? (Qa(2608) | 0) != 0 : 0) { + x = 0; + Fa(5, 47664, 59295, 11); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2608); + fb(a2 | 0); + } else { + tb(199, 47664, w | 0) | 0; + Ya(2608); + break; + } + } + while (0); + return 47664; + } + function Fu(a2) { + a2 = a2 | 0; + var b2 = 0; + do + if ((i2[2616] | 0) == 0 ? (Qa(2616) | 0) != 0 : 0) { + x = 0; + a2 = ta(76, 47676) | 0; + b2 = x; + x = 0; + if (!(b2 & 1) ? (x = 0, Fa(15, 47724, 47676, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { + tb(200, 47724, w | 0) | 0; + Ya(2616); + break; + } + b2 = Wa() | 0; + Bb(2616); + fb(b2 | 0); + } + while (0); + return 47724; + } + function Gu(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 44304; + a2 = a2 + 8 | 0; + b2 = k[a2 >> 2] | 0; + x = 0; + c2 = Da(3) | 0; + d2 = x; + x = 0; + do + if (!(d2 & 1)) { + if ((b2 | 0) != (c2 | 0) ? (x = 0, qa(188, k[a2 >> 2] | 0), d2 = x, x = 0, d2 & 1) : 0) + break; + return; + } + while (0); + d2 = Wa(0) | 0; + oc(d2); + } + function Hu(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 112 | 0; + j2 = z2; + n2 = (d2 - c2 | 0) / 12 | 0; + do + if (n2 >>> 0 > 100) { + j2 = Pl(n2) | 0; + if ((j2 | 0) == 0 ? (x = 0, Ga(6), y2 = x, x = 0, y2 & 1) : 0) { + h2 = 0; + q2 = 6; + break; + } + h2 = j2; + q2 = 11; + } else { + h2 = 0; + q2 = 11; + } + while (0); + a: + do + if ((q2 | 0) == 11) { + if ((c2 | 0) == (d2 | 0)) + m2 = 0; + else { + q2 = c2; + o2 = 0; + p2 = j2; + while (1) { + m2 = i2[q2 >> 0] | 0; + if (!(m2 & 1)) + m2 = (m2 & 255) >>> 1; + else + m2 = k[q2 + 4 >> 2] | 0; + if (!m2) { + i2[p2 >> 0] = 2; + m2 = o2 + 1 | 0; + n2 = n2 + -1 | 0; + } else { + i2[p2 >> 0] = 1; + m2 = o2; + } + q2 = q2 + 12 | 0; + if ((q2 | 0) == (d2 | 0)) + break; + else { + o2 = m2; + p2 = p2 + 1 | 0; + } + } + } + w2 = (c2 | 0) == (d2 | 0); + y2 = (c2 | 0) == (d2 | 0); + v2 = 0; + s2 = m2; + b: + while (1) { + m2 = k[a2 >> 2] | 0; + do + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + u2 = x; + x = 0; + if (u2 & 1) { + q2 = 5; + break b; + } + if ((m2 | 0) == -1) { + k[a2 >> 2] = 0; + m2 = 0; + break; + } else { + m2 = k[a2 >> 2] | 0; + break; + } + } + } else + m2 = 0; + while (0); + q2 = (m2 | 0) == 0; + o2 = k[b2 >> 2] | 0; + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + u2 = x; + x = 0; + if (u2 & 1) { + q2 = 5; + break; + } + if ((m2 | 0) == -1) { + k[b2 >> 2] = 0; + o2 = 0; + } + } + } else + o2 = 0; + p2 = (o2 | 0) == 0; + m2 = k[a2 >> 2] | 0; + if (!((n2 | 0) != 0 & (q2 ^ p2))) { + q2 = 64; + break; + } + o2 = k[m2 + 12 >> 2] | 0; + if ((o2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + u2 = x; + x = 0; + if (u2 & 1) { + q2 = 5; + break; + } + } else + m2 = l[o2 >> 0] | 0; + m2 = m2 & 255; + if (!g2) { + x = 0; + m2 = Aa(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, m2 | 0) | 0; + u2 = x; + x = 0; + if (u2 & 1) { + q2 = 5; + break; + } + } + u2 = v2 + 1 | 0; + if (w2) { + m2 = 0; + q2 = s2; + } else { + p2 = 0; + t2 = c2; + q2 = s2; + s2 = j2; + while (1) { + do + if ((i2[s2 >> 0] | 0) == 1) { + if (!(i2[t2 >> 0] & 1)) + o2 = t2 + 1 | 0; + else + o2 = k[t2 + 8 >> 2] | 0; + o2 = i2[o2 + v2 >> 0] | 0; + if (!g2) { + x = 0; + o2 = Aa(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, o2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + q2 = 4; + break b; + } + } + if (m2 << 24 >> 24 != o2 << 24 >> 24) { + i2[s2 >> 0] = 0; + o2 = p2; + n2 = n2 + -1 | 0; + break; + } + o2 = i2[t2 >> 0] | 0; + if (!(o2 & 1)) + o2 = (o2 & 255) >>> 1; + else + o2 = k[t2 + 4 >> 2] | 0; + if ((o2 | 0) == (u2 | 0)) { + i2[s2 >> 0] = 2; + o2 = 1; + q2 = q2 + 1 | 0; + n2 = n2 + -1 | 0; + } else + o2 = 1; + } else + o2 = p2; + while (0); + t2 = t2 + 12 | 0; + if ((t2 | 0) == (d2 | 0)) { + m2 = o2; + break; + } else { + p2 = o2; + s2 = s2 + 1 | 0; + } + } + } + if (!m2) { + v2 = u2; + s2 = q2; + continue; + } + m2 = k[a2 >> 2] | 0; + o2 = m2 + 12 | 0; + p2 = k[o2 >> 2] | 0; + if ((p2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[m2 >> 2] | 0) + 40 >> 2] | 0, m2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + q2 = 5; + break; + } + } else + k[o2 >> 2] = p2 + 1; + if ((q2 + n2 | 0) >>> 0 < 2 | y2) { + v2 = u2; + s2 = q2; + continue; + } else { + m2 = c2; + p2 = q2; + q2 = j2; + } + while (1) { + if ((i2[q2 >> 0] | 0) == 2) { + o2 = i2[m2 >> 0] | 0; + if (!(o2 & 1)) + o2 = (o2 & 255) >>> 1; + else + o2 = k[m2 + 4 >> 2] | 0; + if ((o2 | 0) != (u2 | 0)) { + i2[q2 >> 0] = 0; + p2 = p2 + -1 | 0; + } + } + m2 = m2 + 12 | 0; + if ((m2 | 0) == (d2 | 0)) { + v2 = u2; + s2 = p2; + continue b; + } else + q2 = q2 + 1 | 0; + } + } + if ((q2 | 0) == 4) { + c2 = Wa() | 0; + break; + } else if ((q2 | 0) == 5) { + c2 = Wa() | 0; + break; + } else if ((q2 | 0) == 64) { + do + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + q2 = 6; + break a; + } + if ((m2 | 0) == -1) { + k[a2 >> 2] = 0; + m2 = 0; + break; + } else { + m2 = k[a2 >> 2] | 0; + break; + } + } + } else + m2 = 0; + while (0); + n2 = (m2 | 0) == 0; + do + if (!p2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + q2 = 6; + break a; + } + if ((m2 | 0) == -1) { + k[b2 >> 2] = 0; + q2 = 76; + break; + } + } + if (!n2) + q2 = 77; + } else + q2 = 76; + while (0); + if ((q2 | 0) == 76 ? n2 : 0) + q2 = 77; + if ((q2 | 0) == 77) + k[f2 >> 2] = k[f2 >> 2] | 2; + c: + do + if ((c2 | 0) == (d2 | 0)) + q2 = 81; + else + while (1) { + if ((i2[j2 >> 0] | 0) == 2) + break c; + c2 = c2 + 12 | 0; + if ((c2 | 0) == (d2 | 0)) { + q2 = 81; + break; + } else + j2 = j2 + 1 | 0; + } + while (0); + if ((q2 | 0) == 81) { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = d2; + } + if (h2) + Ql(h2); + r = z2; + return c2 | 0; + } + } + while (0); + if ((q2 | 0) == 6) + c2 = Wa() | 0; + if (h2) + Ql(h2); + fb(c2 | 0); + return 0; + } + function Iu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[B2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, B2 | 0, h2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + h2; + } + j2 = a2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(21, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + E2 = x; + x = 0; + if (!(E2 & 1)) { + k[f2 >> 2] = d2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Ju(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + g2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (g2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (g2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (g2) { + h2 = 0; + break; + } else + h2 = 0; + } + g2 = i2[B2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + g2 | 0)) { + x = 0; + Fa(8, B2 | 0, g2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + g2; + } + j2 = a2 + 12 | 0; + g2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + g2 = l[g2 >> 0] | 0; + if (ep(g2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(22, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + g2 = M; + E2 = x; + x = 0; + if (!(E2 & 1)) { + E2 = f2; + k[E2 >> 2] = d2; + k[E2 + 4 >> 2] = g2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Ku(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0; + B2 = r; + r = r + 240 | 0; + t2 = B2 + 202 | 0; + g2 = B2 + 200 | 0; + D2 = B2 + 24 | 0; + C2 = B2 + 12 | 0; + v2 = B2 + 8 | 0; + z2 = B2 + 40 | 0; + A2 = B2 + 4 | 0; + w2 = B2; + u2 = ru(d2) | 0; + up(D2, d2, t2, g2); + k[C2 >> 2] = 0; + k[C2 + 4 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + if (!(i2[C2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[C2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, C2 | 0, a2 | 0, 0); + s2 = x; + x = 0; + a: + do + if (!(s2 & 1)) { + p2 = C2 + 8 | 0; + q2 = C2 + 1 | 0; + d2 = (i2[C2 >> 0] & 1) == 0 ? q2 : k[p2 >> 2] | 0; + k[v2 >> 2] = d2; + k[A2 >> 2] = z2; + k[w2 >> 2] = 0; + s2 = C2 + 4 | 0; + o2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + E2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + m2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + E2 = 24; + break b; + } + if ((m2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + E2 = 16; + break; + } + } else + E2 = 16; + while (0); + if ((E2 | 0) == 16) { + E2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[C2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[s2 >> 2] | 0; + if ((k[v2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, C2 | 0, h2 << 1 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + E2 = 24; + break; + } + if (!(i2[C2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[C2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, C2 | 0, d2 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + E2 = 24; + break; + } + d2 = (i2[C2 >> 0] & 1) == 0 ? q2 : k[p2 >> 2] | 0; + k[v2 >> 2] = d2 + h2; + } + m2 = a2 + 12 | 0; + h2 = k[m2 >> 2] | 0; + n2 = a2 + 16 | 0; + if ((h2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 24; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, u2, d2, v2, w2, o2, D2, z2, A2, t2) | 0) + break; + g2 = k[m2 >> 2] | 0; + if ((g2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 24; + break; + } else + continue; + } else { + k[m2 >> 2] = g2 + 1; + continue; + } + } + if ((E2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + F2 = i2[D2 >> 0] | 0; + if ((((F2 & 1) == 0 ? (F2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) | 0) != 0 ? (y2 = k[A2 >> 2] | 0, (y2 - z2 | 0) < 160) : 0) { + F2 = k[w2 >> 2] | 0; + k[A2 >> 2] = y2 + 4; + k[y2 >> 2] = F2; + } + x = 0; + d2 = Ea(23, d2 | 0, k[v2 >> 2] | 0, e2 | 0, u2 | 0) | 0; + F2 = x; + x = 0; + if (!(F2 & 1)) { + j[f2 >> 1] = d2; + cs(D2, z2, k[A2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + E2 = 49; + break; + } + } + if (!d2) + E2 = 50; + } else + E2 = 49; + while (0); + if ((E2 | 0) == 49 ? d2 : 0) + E2 = 50; + if ((E2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + F2 = k[b2 >> 2] | 0; + Sm(C2); + Sm(D2); + r = B2; + return F2 | 0; + } else + E2 = 25; + } else + E2 = 25; + while (0); + if ((E2 | 0) == 25) + a2 = Wa() | 0; + Sm(C2); + Sm(D2); + fb(a2 | 0); + return 0; + } + function Lu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[B2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, B2 | 0, h2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + h2; + } + j2 = a2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(24, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + E2 = x; + x = 0; + if (!(E2 & 1)) { + k[f2 >> 2] = d2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Mu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[B2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, B2 | 0, h2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + h2; + } + j2 = a2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(25, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + E2 = x; + x = 0; + if (!(E2 & 1)) { + k[f2 >> 2] = d2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Nu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + g2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (g2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (g2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (g2) { + h2 = 0; + break; + } else + h2 = 0; + } + g2 = i2[B2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + g2 | 0)) { + x = 0; + Fa(8, B2 | 0, g2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + g2; + } + j2 = a2 + 12 | 0; + g2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + g2 = l[g2 >> 0] | 0; + if (ep(g2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(26, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + g2 = M; + E2 = x; + x = 0; + if (!(E2 & 1)) { + E2 = f2; + k[E2 >> 2] = d2; + k[E2 + 4 >> 2] = g2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Ou(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + E2 = r; + r = r + 240 | 0; + v2 = E2 + 208 | 0; + h2 = E2 + 203 | 0; + j2 = E2 + 202 | 0; + G2 = E2 + 24 | 0; + F2 = E2 + 12 | 0; + y2 = E2 + 8 | 0; + C2 = E2 + 40 | 0; + D2 = E2 + 4 | 0; + z2 = E2; + A2 = E2 + 201 | 0; + w2 = E2 + 200 | 0; + vp(G2, d2, v2, h2, j2); + k[F2 >> 2] = 0; + k[F2 + 4 >> 2] = 0; + k[F2 + 8 >> 2] = 0; + if (!(i2[F2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, a2 | 0, 0); + u2 = x; + x = 0; + a: + do + if (!(u2 & 1)) { + s2 = F2 + 8 | 0; + t2 = F2 + 1 | 0; + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2; + k[D2 >> 2] = C2; + k[z2 >> 2] = 0; + i2[A2 >> 0] = 1; + i2[w2 >> 0] = 69; + u2 = F2 + 4 | 0; + q2 = i2[h2 >> 0] | 0; + p2 = i2[j2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + j2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (j2) + break; + else + break b; + x = 0; + m2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break b; + } + if ((m2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + H2 = 16; + break; + } + } else + H2 = 16; + while (0); + if ((H2 | 0) == 16) { + H2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[F2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[u2 >> 2] | 0; + if ((k[y2 >> 2] | 0) == (d2 + j2 | 0)) { + x = 0; + Fa(8, F2 | 0, j2 << 1 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if (!(i2[F2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, d2 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2 + j2; + } + m2 = a2 + 12 | 0; + j2 = k[m2 >> 2] | 0; + n2 = a2 + 16 | 0; + if ((j2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } + } else + j2 = l[j2 >> 0] | 0; + if (wp(j2 & 255, A2, w2, d2, y2, q2, p2, G2, C2, D2, z2, v2) | 0) + break; + h2 = k[m2 >> 2] | 0; + if ((h2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } else + continue; + } else { + k[m2 >> 2] = h2 + 1; + continue; + } + } + if ((H2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + I2 = i2[G2 >> 0] | 0; + if (!((i2[A2 >> 0] | 0) == 0 ? 1 : (((I2 & 1) == 0 ? (I2 & 255) >>> 1 : k[G2 + 4 >> 2] | 0) | 0) == 0) ? (B2 = k[D2 >> 2] | 0, (B2 - C2 | 0) < 160) : 0) { + I2 = k[z2 >> 2] | 0; + k[D2 >> 2] = B2 + 4; + k[B2 >> 2] = I2; + } + x = 0; + g2 = +Ca(1, d2 | 0, k[y2 >> 2] | 0, e2 | 0); + I2 = x; + x = 0; + if (!(I2 & 1)) { + o[f2 >> 2] = g2; + cs(G2, C2, k[D2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + H2 = 49; + break; + } + } + if (!d2) + H2 = 50; + } else + H2 = 49; + while (0); + if ((H2 | 0) == 49 ? d2 : 0) + H2 = 50; + if ((H2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + I2 = k[b2 >> 2] | 0; + Sm(F2); + Sm(G2); + r = E2; + return I2 | 0; + } else + H2 = 25; + } else + H2 = 25; + while (0); + if ((H2 | 0) == 25) + a2 = Wa() | 0; + Sm(F2); + Sm(G2); + fb(a2 | 0); + return 0; + } + function Pu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + E2 = r; + r = r + 240 | 0; + v2 = E2 + 208 | 0; + h2 = E2 + 203 | 0; + j2 = E2 + 202 | 0; + G2 = E2 + 24 | 0; + F2 = E2 + 12 | 0; + y2 = E2 + 8 | 0; + C2 = E2 + 40 | 0; + D2 = E2 + 4 | 0; + z2 = E2; + A2 = E2 + 201 | 0; + w2 = E2 + 200 | 0; + vp(G2, d2, v2, h2, j2); + k[F2 >> 2] = 0; + k[F2 + 4 >> 2] = 0; + k[F2 + 8 >> 2] = 0; + if (!(i2[F2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, a2 | 0, 0); + u2 = x; + x = 0; + a: + do + if (!(u2 & 1)) { + s2 = F2 + 8 | 0; + t2 = F2 + 1 | 0; + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2; + k[D2 >> 2] = C2; + k[z2 >> 2] = 0; + i2[A2 >> 0] = 1; + i2[w2 >> 0] = 69; + u2 = F2 + 4 | 0; + q2 = i2[h2 >> 0] | 0; + o2 = i2[j2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + j2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (j2) + break; + else + break b; + x = 0; + m2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break b; + } + if ((m2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + H2 = 16; + break; + } + } else + H2 = 16; + while (0); + if ((H2 | 0) == 16) { + H2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[F2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[u2 >> 2] | 0; + if ((k[y2 >> 2] | 0) == (d2 + j2 | 0)) { + x = 0; + Fa(8, F2 | 0, j2 << 1 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if (!(i2[F2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, d2 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2 + j2; + } + m2 = a2 + 12 | 0; + j2 = k[m2 >> 2] | 0; + n2 = a2 + 16 | 0; + if ((j2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } + } else + j2 = l[j2 >> 0] | 0; + if (wp(j2 & 255, A2, w2, d2, y2, q2, o2, G2, C2, D2, z2, v2) | 0) + break; + h2 = k[m2 >> 2] | 0; + if ((h2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } else + continue; + } else { + k[m2 >> 2] = h2 + 1; + continue; + } + } + if ((H2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + I2 = i2[G2 >> 0] | 0; + if (!((i2[A2 >> 0] | 0) == 0 ? 1 : (((I2 & 1) == 0 ? (I2 & 255) >>> 1 : k[G2 + 4 >> 2] | 0) | 0) == 0) ? (B2 = k[D2 >> 2] | 0, (B2 - C2 | 0) < 160) : 0) { + I2 = k[z2 >> 2] | 0; + k[D2 >> 2] = B2 + 4; + k[B2 >> 2] = I2; + } + x = 0; + g2 = +Ca(2, d2 | 0, k[y2 >> 2] | 0, e2 | 0); + I2 = x; + x = 0; + if (!(I2 & 1)) { + p[f2 >> 3] = g2; + cs(G2, C2, k[D2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + H2 = 49; + break; + } + } + if (!d2) + H2 = 50; + } else + H2 = 49; + while (0); + if ((H2 | 0) == 49 ? d2 : 0) + H2 = 50; + if ((H2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + I2 = k[b2 >> 2] | 0; + Sm(F2); + Sm(G2); + r = E2; + return I2 | 0; + } else + H2 = 25; + } else + H2 = 25; + while (0); + if ((H2 | 0) == 25) + a2 = Wa() | 0; + Sm(F2); + Sm(G2); + fb(a2 | 0); + return 0; + } + function Qu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + E2 = r; + r = r + 240 | 0; + v2 = E2 + 208 | 0; + h2 = E2 + 203 | 0; + j2 = E2 + 202 | 0; + G2 = E2 + 24 | 0; + F2 = E2 + 12 | 0; + y2 = E2 + 8 | 0; + C2 = E2 + 40 | 0; + D2 = E2 + 4 | 0; + z2 = E2; + A2 = E2 + 201 | 0; + w2 = E2 + 200 | 0; + vp(G2, d2, v2, h2, j2); + k[F2 >> 2] = 0; + k[F2 + 4 >> 2] = 0; + k[F2 + 8 >> 2] = 0; + if (!(i2[F2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, a2 | 0, 0); + u2 = x; + x = 0; + a: + do + if (!(u2 & 1)) { + s2 = F2 + 8 | 0; + t2 = F2 + 1 | 0; + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2; + k[D2 >> 2] = C2; + k[z2 >> 2] = 0; + i2[A2 >> 0] = 1; + i2[w2 >> 0] = 69; + u2 = F2 + 4 | 0; + q2 = i2[h2 >> 0] | 0; + o2 = i2[j2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + j2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (j2) + break; + else + break b; + x = 0; + m2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break b; + } + if ((m2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + H2 = 16; + break; + } + } else + H2 = 16; + while (0); + if ((H2 | 0) == 16) { + H2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[F2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[u2 >> 2] | 0; + if ((k[y2 >> 2] | 0) == (d2 + j2 | 0)) { + x = 0; + Fa(8, F2 | 0, j2 << 1 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if (!(i2[F2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, d2 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2 + j2; + } + m2 = a2 + 12 | 0; + j2 = k[m2 >> 2] | 0; + n2 = a2 + 16 | 0; + if ((j2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } + } else + j2 = l[j2 >> 0] | 0; + if (wp(j2 & 255, A2, w2, d2, y2, q2, o2, G2, C2, D2, z2, v2) | 0) + break; + h2 = k[m2 >> 2] | 0; + if ((h2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } else + continue; + } else { + k[m2 >> 2] = h2 + 1; + continue; + } + } + if ((H2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + I2 = i2[G2 >> 0] | 0; + if (!((i2[A2 >> 0] | 0) == 0 ? 1 : (((I2 & 1) == 0 ? (I2 & 255) >>> 1 : k[G2 + 4 >> 2] | 0) | 0) == 0) ? (B2 = k[D2 >> 2] | 0, (B2 - C2 | 0) < 160) : 0) { + I2 = k[z2 >> 2] | 0; + k[D2 >> 2] = B2 + 4; + k[B2 >> 2] = I2; + } + x = 0; + g2 = +Ca(3, d2 | 0, k[y2 >> 2] | 0, e2 | 0); + I2 = x; + x = 0; + if (!(I2 & 1)) { + p[f2 >> 3] = g2; + cs(G2, C2, k[D2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + H2 = 49; + break; + } + } + if (!d2) + H2 = 50; + } else + H2 = 49; + while (0); + if ((H2 | 0) == 49 ? d2 : 0) + H2 = 50; + if ((H2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + I2 = k[b2 >> 2] | 0; + Sm(F2); + Sm(G2); + r = E2; + return I2 | 0; + } else + H2 = 25; + } else + H2 = 25; + while (0); + if ((H2 | 0) == 25) + a2 = Wa() | 0; + Sm(F2); + Sm(G2); + fb(a2 | 0); + return 0; + } + function Ru(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2; + k[f2 >> 2] = d2; + d2 = Ak(b2) | 0; + b2 = pl(a2, c2, f2) | 0; + if ((d2 | 0) != 0 ? (x = 0, ta(75, d2 | 0) | 0, f2 = x, x = 0, f2 & 1) : 0) { + f2 = Wa(0) | 0; + oc(f2); + } + r = e2; + return b2 | 0; + } + function Su(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0; + y2 = r; + r = r + 112 | 0; + j2 = y2; + m2 = (d2 - c2 | 0) / 12 | 0; + do + if (m2 >>> 0 > 100) { + j2 = Pl(m2) | 0; + if ((j2 | 0) == 0 ? (x = 0, Ga(6), w2 = x, x = 0, w2 & 1) : 0) { + h2 = 0; + o2 = 6; + break; + } + h2 = j2; + o2 = 11; + } else { + h2 = 0; + o2 = 11; + } + while (0); + a: + do + if ((o2 | 0) == 11) { + if ((c2 | 0) == (d2 | 0)) + l2 = 0; + else { + p2 = c2; + n2 = 0; + o2 = j2; + while (1) { + l2 = i2[p2 >> 0] | 0; + if (!(l2 & 1)) + l2 = (l2 & 255) >>> 1; + else + l2 = k[p2 + 4 >> 2] | 0; + if (!l2) { + i2[o2 >> 0] = 2; + l2 = n2 + 1 | 0; + m2 = m2 + -1 | 0; + } else { + i2[o2 >> 0] = 1; + l2 = n2; + } + p2 = p2 + 12 | 0; + if ((p2 | 0) == (d2 | 0)) + break; + else { + n2 = l2; + o2 = o2 + 1 | 0; + } + } + } + v2 = (c2 | 0) == (d2 | 0); + w2 = (c2 | 0) == (d2 | 0); + u2 = 0; + q2 = m2; + b: + while (1) { + m2 = k[a2 >> 2] | 0; + do + if (m2) { + n2 = k[m2 + 12 >> 2] | 0; + if ((n2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + o2 = 5; + break b; + } + } else + m2 = k[n2 >> 2] | 0; + if ((m2 | 0) == -1) { + k[a2 >> 2] = 0; + p2 = 1; + break; + } else { + p2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + p2 = 1; + while (0); + n2 = k[b2 >> 2] | 0; + if (n2) { + m2 = k[n2 + 12 >> 2] | 0; + if ((m2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + o2 = 5; + break; + } + } else + m2 = k[m2 >> 2] | 0; + if ((m2 | 0) == -1) { + k[b2 >> 2] = 0; + n2 = 0; + o2 = 1; + } else + o2 = 0; + } else { + n2 = 0; + o2 = 1; + } + m2 = k[a2 >> 2] | 0; + if (!((q2 | 0) != 0 & (p2 ^ o2))) { + o2 = 66; + break; + } + n2 = k[m2 + 12 >> 2] | 0; + if ((n2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + o2 = 5; + break; + } + } else + m2 = k[n2 >> 2] | 0; + if (!g2) { + x = 0; + m2 = Aa(k[(k[e2 >> 2] | 0) + 28 >> 2] | 0, e2 | 0, m2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + o2 = 5; + break; + } + } + t2 = u2 + 1 | 0; + if (v2) { + m2 = 0; + p2 = q2; + } else { + p2 = 0; + s2 = c2; + o2 = q2; + q2 = j2; + while (1) { + do + if ((i2[q2 >> 0] | 0) == 1) { + if (!(i2[s2 >> 0] & 1)) + n2 = s2 + 4 | 0; + else + n2 = k[s2 + 8 >> 2] | 0; + n2 = k[n2 + (u2 << 2) >> 2] | 0; + if (!g2) { + x = 0; + n2 = Aa(k[(k[e2 >> 2] | 0) + 28 >> 2] | 0, e2 | 0, n2 | 0) | 0; + z2 = x; + x = 0; + if (z2 & 1) { + o2 = 4; + break b; + } + } + if ((m2 | 0) != (n2 | 0)) { + i2[q2 >> 0] = 0; + n2 = p2; + o2 = o2 + -1 | 0; + break; + } + n2 = i2[s2 >> 0] | 0; + if (!(n2 & 1)) + n2 = (n2 & 255) >>> 1; + else + n2 = k[s2 + 4 >> 2] | 0; + if ((n2 | 0) == (t2 | 0)) { + i2[q2 >> 0] = 2; + n2 = 1; + l2 = l2 + 1 | 0; + o2 = o2 + -1 | 0; + } else + n2 = 1; + } else + n2 = p2; + while (0); + s2 = s2 + 12 | 0; + if ((s2 | 0) == (d2 | 0)) { + m2 = n2; + p2 = o2; + break; + } else { + p2 = n2; + q2 = q2 + 1 | 0; + } + } + } + if (!m2) { + u2 = t2; + q2 = p2; + continue; + } + m2 = k[a2 >> 2] | 0; + n2 = m2 + 12 | 0; + o2 = k[n2 >> 2] | 0; + if ((o2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[m2 >> 2] | 0) + 40 >> 2] | 0, m2 | 0) | 0; + z2 = x; + x = 0; + if (z2 & 1) { + o2 = 5; + break; + } + } else + k[n2 >> 2] = o2 + 4; + if ((l2 + p2 | 0) >>> 0 < 2 | w2) { + u2 = t2; + q2 = p2; + continue; + } else { + m2 = c2; + o2 = j2; + } + while (1) { + if ((i2[o2 >> 0] | 0) == 2) { + n2 = i2[m2 >> 0] | 0; + if (!(n2 & 1)) + n2 = (n2 & 255) >>> 1; + else + n2 = k[m2 + 4 >> 2] | 0; + if ((n2 | 0) != (t2 | 0)) { + i2[o2 >> 0] = 0; + l2 = l2 + -1 | 0; + } + } + m2 = m2 + 12 | 0; + if ((m2 | 0) == (d2 | 0)) { + u2 = t2; + q2 = p2; + continue b; + } else + o2 = o2 + 1 | 0; + } + } + if ((o2 | 0) == 4) { + c2 = Wa() | 0; + break; + } else if ((o2 | 0) == 5) { + c2 = Wa() | 0; + break; + } else if ((o2 | 0) == 66) { + do + if (m2) { + l2 = k[m2 + 12 >> 2] | 0; + if ((l2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + l2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + z2 = x; + x = 0; + if (z2 & 1) { + o2 = 6; + break a; + } + } else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) == -1) { + k[a2 >> 2] = 0; + m2 = 1; + break; + } else { + m2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + m2 = 1; + while (0); + do + if (n2) { + l2 = k[n2 + 12 >> 2] | 0; + if ((l2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + l2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + z2 = x; + x = 0; + if (z2 & 1) { + o2 = 6; + break a; + } + } else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) != -1) + if (m2) + break; + else { + o2 = 81; + break; + } + else { + k[b2 >> 2] = 0; + o2 = 79; + break; + } + } else + o2 = 79; + while (0); + if ((o2 | 0) == 79 ? m2 : 0) + o2 = 81; + if ((o2 | 0) == 81) + k[f2 >> 2] = k[f2 >> 2] | 2; + c: + do + if ((c2 | 0) == (d2 | 0)) + o2 = 85; + else + while (1) { + if ((i2[j2 >> 0] | 0) == 2) + break c; + c2 = c2 + 12 | 0; + if ((c2 | 0) == (d2 | 0)) { + o2 = 85; + break; + } else + j2 = j2 + 1 | 0; + } + while (0); + if ((o2 | 0) == 85) { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = d2; + } + if (h2) + Ql(h2); + r = y2; + return c2 | 0; + } + } + while (0); + if ((o2 | 0) == 6) + c2 = Wa() | 0; + if (h2) + Ql(h2); + fb(c2 | 0); + return 0; + } + function Tu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + j2 = k[c2 >> 2] | 0; + do + if (j2) { + g2 = k[j2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break; + else { + g2 = j2; + break b; + } + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (h2) { + g2 = 0; + break; + } else + j2 = 0; + } + g2 = i2[A2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + g2 | 0)) { + x = 0; + Fa(8, A2 | 0, g2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + g2; + } + h2 = d2 + 12 | 0; + g2 = k[h2 >> 2] | 0; + l2 = d2 + 16 | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + g2 = k[g2 >> 2] | 0; + if (tp(g2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) { + g2 = j2; + break; + } + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else { + g2 = d2; + continue; + } + } else { + k[h2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(21, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + D2 = x; + x = 0; + if (!(D2 & 1)) { + k[f2 >> 2] = a2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Uu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + g2 = 0; + j2 = 1; + } else + j2 = 0; + } else { + g2 = 0; + j2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + d2 = k[h2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + d2 = i2[A2 >> 0] | 0; + d2 = (d2 & 1) == 0 ? (d2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + d2 | 0)) { + x = 0; + Fa(8, A2 | 0, d2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + d2; + } + j2 = g2 + 12 | 0; + d2 = k[j2 >> 2] | 0; + l2 = g2 + 16 | 0; + if ((d2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if (tp(d2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) + break; + d2 = k[j2 >> 2] | 0; + if ((d2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[g2 >> 2] | 0) + 40 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else + continue; + } else { + k[j2 >> 2] = d2 + 4; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(22, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + d2 = M; + D2 = x; + x = 0; + if (!(D2 & 1)) { + D2 = f2; + k[D2 >> 2] = a2; + k[D2 + 4 >> 2] = d2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Vu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 320 | 0; + s2 = A2 + 208 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + xp(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + a2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = a2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + l2 = k[c2 >> 2] | 0; + do + if (l2) { + g2 = k[l2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[l2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[l2 >> 2] | 0) + 36 >> 2] | 0, l2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 25; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break; + else { + g2 = l2; + break b; + } + else { + k[c2 >> 2] = 0; + D2 = 17; + break; + } + } else + D2 = 17; + while (0); + if ((D2 | 0) == 17) { + D2 = 0; + if (h2) { + g2 = 0; + break; + } else + l2 = 0; + } + g2 = i2[B2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (a2 + g2 | 0)) { + x = 0; + Fa(8, B2 | 0, g2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 25; + break; + } + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 25; + break; + } + a2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = a2 + g2; + } + h2 = d2 + 12 | 0; + g2 = k[h2 >> 2] | 0; + m2 = d2 + 16 | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + } else + g2 = k[g2 >> 2] | 0; + if (tp(g2, t2, a2, u2, v2, n2, C2, y2, z2, s2) | 0) { + g2 = l2; + break; + } + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } else { + g2 = d2; + continue; + } + } else { + k[h2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((D2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + a2 = Ea(23, a2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + E2 = x; + x = 0; + if (!(E2 & 1)) { + j[f2 >> 1] = a2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + D2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + D2 = 51; + break; + } + } else + D2 = 51; + while (0); + if ((D2 | 0) == 51 ? d2 : 0) + D2 = 53; + if ((D2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 26; + } else + D2 = 26; + while (0); + if ((D2 | 0) == 26) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Wu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + j2 = k[c2 >> 2] | 0; + do + if (j2) { + g2 = k[j2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break; + else { + g2 = j2; + break b; + } + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (h2) { + g2 = 0; + break; + } else + j2 = 0; + } + g2 = i2[A2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + g2 | 0)) { + x = 0; + Fa(8, A2 | 0, g2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + g2; + } + h2 = d2 + 12 | 0; + g2 = k[h2 >> 2] | 0; + l2 = d2 + 16 | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + g2 = k[g2 >> 2] | 0; + if (tp(g2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) { + g2 = j2; + break; + } + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else { + g2 = d2; + continue; + } + } else { + k[h2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(24, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + D2 = x; + x = 0; + if (!(D2 & 1)) { + k[f2 >> 2] = a2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Xu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + j2 = k[c2 >> 2] | 0; + do + if (j2) { + g2 = k[j2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break; + else { + g2 = j2; + break b; + } + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (h2) { + g2 = 0; + break; + } else + j2 = 0; + } + g2 = i2[A2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + g2 | 0)) { + x = 0; + Fa(8, A2 | 0, g2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + g2; + } + h2 = d2 + 12 | 0; + g2 = k[h2 >> 2] | 0; + l2 = d2 + 16 | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + g2 = k[g2 >> 2] | 0; + if (tp(g2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) { + g2 = j2; + break; + } + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else { + g2 = d2; + continue; + } + } else { + k[h2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(25, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + D2 = x; + x = 0; + if (!(D2 & 1)) { + k[f2 >> 2] = a2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Yu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + g2 = 0; + j2 = 1; + } else + j2 = 0; + } else { + g2 = 0; + j2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + d2 = k[h2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + d2 = i2[A2 >> 0] | 0; + d2 = (d2 & 1) == 0 ? (d2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + d2 | 0)) { + x = 0; + Fa(8, A2 | 0, d2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + d2; + } + j2 = g2 + 12 | 0; + d2 = k[j2 >> 2] | 0; + l2 = g2 + 16 | 0; + if ((d2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if (tp(d2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) + break; + d2 = k[j2 >> 2] | 0; + if ((d2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[g2 >> 2] | 0) + 40 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else + continue; + } else { + k[j2 >> 2] = d2 + 4; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(26, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + d2 = M; + D2 = x; + x = 0; + if (!(D2 & 1)) { + D2 = f2; + k[D2 >> 2] = a2; + k[D2 + 4 >> 2] = d2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Zu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0; + D2 = r; + r = r + 352 | 0; + u2 = D2 + 208 | 0; + h2 = D2 + 40 | 0; + j2 = D2 + 36 | 0; + F2 = D2 + 24 | 0; + E2 = D2 + 12 | 0; + w2 = D2 + 8 | 0; + B2 = D2 + 48 | 0; + C2 = D2 + 4 | 0; + y2 = D2; + z2 = D2 + 337 | 0; + v2 = D2 + 336 | 0; + yp(F2, d2, u2, h2, j2); + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + t2 = x; + x = 0; + a: + do + if (!(t2 & 1)) { + q2 = E2 + 8 | 0; + s2 = E2 + 1 | 0; + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2; + k[C2 >> 2] = B2; + k[y2 >> 2] = 0; + i2[z2 >> 0] = 1; + i2[v2 >> 0] = 69; + t2 = E2 + 4 | 0; + p2 = k[h2 >> 2] | 0; + n2 = k[j2 >> 2] | 0; + d2 = k[b2 >> 2] | 0; + b: + while (1) { + if (d2) { + h2 = k[d2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + } else + h2 = k[h2 >> 2] | 0; + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + l2 = 1; + } else + l2 = 0; + } else { + d2 = 0; + l2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + j2 = k[h2 + 12 >> 2] | 0; + if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break b; + } + } else + j2 = k[j2 >> 2] | 0; + if ((j2 | 0) != -1) + if (l2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + G2 = 17; + break; + } + } else + G2 = 17; + while (0); + if ((G2 | 0) == 17) { + G2 = 0; + if (l2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[E2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[t2 >> 2] | 0; + if ((k[w2 >> 2] | 0) == (a2 + j2 | 0)) { + x = 0; + Fa(8, E2 | 0, j2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2 + j2; + } + l2 = d2 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = d2 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } + } else + j2 = k[j2 >> 2] | 0; + if (zp(j2, z2, v2, a2, w2, p2, n2, F2, B2, C2, y2, u2) | 0) + break; + h2 = k[l2 >> 2] | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } else + continue; + } else { + k[l2 >> 2] = h2 + 4; + continue; + } + } + if ((G2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + H2 = i2[F2 >> 0] | 0; + if (!((i2[z2 >> 0] | 0) == 0 ? 1 : (((H2 & 1) == 0 ? (H2 & 255) >>> 1 : k[F2 + 4 >> 2] | 0) | 0) == 0) ? (A2 = k[C2 >> 2] | 0, (A2 - B2 | 0) < 160) : 0) { + H2 = k[y2 >> 2] | 0; + k[C2 >> 2] = A2 + 4; + k[A2 >> 2] = H2; + } + x = 0; + g2 = +Ca(1, a2 | 0, k[w2 >> 2] | 0, e2 | 0); + H2 = x; + x = 0; + if (!(H2 & 1)) { + o[f2 >> 2] = g2; + cs(F2, B2, k[C2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + G2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + G2 = 51; + break; + } + } else + G2 = 51; + while (0); + if ((G2 | 0) == 51 ? d2 : 0) + G2 = 53; + if ((G2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + H2 = k[b2 >> 2] | 0; + Sm(E2); + Sm(F2); + r = D2; + return H2 | 0; + } else + G2 = 26; + } else + G2 = 26; + while (0); + if ((G2 | 0) == 26) + a2 = Wa() | 0; + Sm(E2); + Sm(F2); + fb(a2 | 0); + return 0; + } + function _u(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0; + D2 = r; + r = r + 352 | 0; + u2 = D2 + 208 | 0; + h2 = D2 + 40 | 0; + j2 = D2 + 36 | 0; + F2 = D2 + 24 | 0; + E2 = D2 + 12 | 0; + w2 = D2 + 8 | 0; + B2 = D2 + 48 | 0; + C2 = D2 + 4 | 0; + y2 = D2; + z2 = D2 + 337 | 0; + v2 = D2 + 336 | 0; + yp(F2, d2, u2, h2, j2); + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + t2 = x; + x = 0; + a: + do + if (!(t2 & 1)) { + q2 = E2 + 8 | 0; + s2 = E2 + 1 | 0; + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2; + k[C2 >> 2] = B2; + k[y2 >> 2] = 0; + i2[z2 >> 0] = 1; + i2[v2 >> 0] = 69; + t2 = E2 + 4 | 0; + o2 = k[h2 >> 2] | 0; + n2 = k[j2 >> 2] | 0; + d2 = k[b2 >> 2] | 0; + b: + while (1) { + if (d2) { + h2 = k[d2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + } else + h2 = k[h2 >> 2] | 0; + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + l2 = 1; + } else + l2 = 0; + } else { + d2 = 0; + l2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + j2 = k[h2 + 12 >> 2] | 0; + if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break b; + } + } else + j2 = k[j2 >> 2] | 0; + if ((j2 | 0) != -1) + if (l2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + G2 = 17; + break; + } + } else + G2 = 17; + while (0); + if ((G2 | 0) == 17) { + G2 = 0; + if (l2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[E2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[t2 >> 2] | 0; + if ((k[w2 >> 2] | 0) == (a2 + j2 | 0)) { + x = 0; + Fa(8, E2 | 0, j2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2 + j2; + } + l2 = d2 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = d2 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } + } else + j2 = k[j2 >> 2] | 0; + if (zp(j2, z2, v2, a2, w2, o2, n2, F2, B2, C2, y2, u2) | 0) + break; + h2 = k[l2 >> 2] | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } else + continue; + } else { + k[l2 >> 2] = h2 + 4; + continue; + } + } + if ((G2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + H2 = i2[F2 >> 0] | 0; + if (!((i2[z2 >> 0] | 0) == 0 ? 1 : (((H2 & 1) == 0 ? (H2 & 255) >>> 1 : k[F2 + 4 >> 2] | 0) | 0) == 0) ? (A2 = k[C2 >> 2] | 0, (A2 - B2 | 0) < 160) : 0) { + H2 = k[y2 >> 2] | 0; + k[C2 >> 2] = A2 + 4; + k[A2 >> 2] = H2; + } + x = 0; + g2 = +Ca(2, a2 | 0, k[w2 >> 2] | 0, e2 | 0); + H2 = x; + x = 0; + if (!(H2 & 1)) { + p[f2 >> 3] = g2; + cs(F2, B2, k[C2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + G2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + G2 = 51; + break; + } + } else + G2 = 51; + while (0); + if ((G2 | 0) == 51 ? d2 : 0) + G2 = 53; + if ((G2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + H2 = k[b2 >> 2] | 0; + Sm(E2); + Sm(F2); + r = D2; + return H2 | 0; + } else + G2 = 26; + } else + G2 = 26; + while (0); + if ((G2 | 0) == 26) + a2 = Wa() | 0; + Sm(E2); + Sm(F2); + fb(a2 | 0); + return 0; + } + function $u(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0; + D2 = r; + r = r + 352 | 0; + u2 = D2 + 208 | 0; + h2 = D2 + 40 | 0; + j2 = D2 + 36 | 0; + F2 = D2 + 24 | 0; + E2 = D2 + 12 | 0; + w2 = D2 + 8 | 0; + B2 = D2 + 48 | 0; + C2 = D2 + 4 | 0; + y2 = D2; + z2 = D2 + 337 | 0; + v2 = D2 + 336 | 0; + yp(F2, d2, u2, h2, j2); + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + t2 = x; + x = 0; + a: + do + if (!(t2 & 1)) { + q2 = E2 + 8 | 0; + s2 = E2 + 1 | 0; + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2; + k[C2 >> 2] = B2; + k[y2 >> 2] = 0; + i2[z2 >> 0] = 1; + i2[v2 >> 0] = 69; + t2 = E2 + 4 | 0; + o2 = k[h2 >> 2] | 0; + n2 = k[j2 >> 2] | 0; + d2 = k[b2 >> 2] | 0; + b: + while (1) { + if (d2) { + h2 = k[d2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + } else + h2 = k[h2 >> 2] | 0; + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + l2 = 1; + } else + l2 = 0; + } else { + d2 = 0; + l2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + j2 = k[h2 + 12 >> 2] | 0; + if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break b; + } + } else + j2 = k[j2 >> 2] | 0; + if ((j2 | 0) != -1) + if (l2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + G2 = 17; + break; + } + } else + G2 = 17; + while (0); + if ((G2 | 0) == 17) { + G2 = 0; + if (l2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[E2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[t2 >> 2] | 0; + if ((k[w2 >> 2] | 0) == (a2 + j2 | 0)) { + x = 0; + Fa(8, E2 | 0, j2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2 + j2; + } + l2 = d2 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = d2 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } + } else + j2 = k[j2 >> 2] | 0; + if (zp(j2, z2, v2, a2, w2, o2, n2, F2, B2, C2, y2, u2) | 0) + break; + h2 = k[l2 >> 2] | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } else + continue; + } else { + k[l2 >> 2] = h2 + 4; + continue; + } + } + if ((G2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + H2 = i2[F2 >> 0] | 0; + if (!((i2[z2 >> 0] | 0) == 0 ? 1 : (((H2 & 1) == 0 ? (H2 & 255) >>> 1 : k[F2 + 4 >> 2] | 0) | 0) == 0) ? (A2 = k[C2 >> 2] | 0, (A2 - B2 | 0) < 160) : 0) { + H2 = k[y2 >> 2] | 0; + k[C2 >> 2] = A2 + 4; + k[A2 >> 2] = H2; + } + x = 0; + g2 = +Ca(3, a2 | 0, k[w2 >> 2] | 0, e2 | 0); + H2 = x; + x = 0; + if (!(H2 & 1)) { + p[f2 >> 3] = g2; + cs(F2, B2, k[C2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + G2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + G2 = 51; + break; + } + } else + G2 = 51; + while (0); + if ((G2 | 0) == 51 ? d2 : 0) + G2 = 53; + if ((G2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + H2 = k[b2 >> 2] | 0; + Sm(E2); + Sm(F2); + r = D2; + return H2 | 0; + } else + G2 = 26; + } else + G2 = 26; + while (0); + if ((G2 | 0) == 26) + a2 = Wa() | 0; + Sm(E2); + Sm(F2); + fb(a2 | 0); + return 0; + } + function av(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + f2 = r; + r = r + 16 | 0; + g2 = f2; + k[g2 >> 2] = e2; + e2 = Ak(c2) | 0; + c2 = ol(a2, b2, d2, g2) | 0; + if ((e2 | 0) != 0 ? (x = 0, ta(75, e2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { + g2 = Wa(0) | 0; + oc(g2); + } + r = f2; + return c2 | 0; + } + function bv(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2; + k[f2 >> 2] = d2; + d2 = Ak(b2) | 0; + x = 0; + b2 = va(37, a2 | 0, c2 | 0, f2 | 0) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + b2 = Wa() | 0; + if ((d2 | 0) != 0 ? (x = 0, ta(75, d2 | 0) | 0, f2 = x, x = 0, f2 & 1) : 0) { + f2 = Wa(0) | 0; + oc(f2); + } + fb(b2 | 0); + } else { + if ((d2 | 0) != 0 ? (x = 0, ta(75, d2 | 0) | 0, f2 = x, x = 0, f2 & 1) : 0) { + f2 = Wa(0) | 0; + oc(f2); + } + r = e2; + return b2 | 0; + } + return 0; + } + function cv(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + n2 = r; + r = r + 16 | 0; + m2 = n2; + g2 = k[a2 >> 2] | 0; + a: + do + if (!g2) + g2 = 0; + else { + o2 = b2; + j2 = d2 - o2 >> 2; + l2 = e2 + 12 | 0; + h2 = k[l2 >> 2] | 0; + j2 = (h2 | 0) > (j2 | 0) ? h2 - j2 | 0 : 0; + h2 = c2; + o2 = h2 - o2 | 0; + e2 = o2 >> 2; + if ((o2 | 0) > 0 ? (Qb[k[(k[g2 >> 2] | 0) + 48 >> 2] & 63](g2, b2, e2) | 0) != (e2 | 0) : 0) { + k[a2 >> 2] = 0; + g2 = 0; + break; + } + do + if ((j2 | 0) > 0) { + dn(m2, j2, f2); + x = 0; + e2 = va(k[(k[g2 >> 2] | 0) + 48 >> 2] | 0, g2 | 0, ((i2[m2 >> 0] & 1) == 0 ? m2 + 4 | 0 : k[m2 + 8 >> 2] | 0) | 0, j2 | 0) | 0; + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + en(m2); + fb(o2 | 0); + } + if ((e2 | 0) == (j2 | 0)) { + en(m2); + break; + } else { + k[a2 >> 2] = 0; + en(m2); + g2 = 0; + break a; + } + } + while (0); + o2 = d2 - h2 | 0; + d2 = o2 >> 2; + if ((o2 | 0) > 0 ? (Qb[k[(k[g2 >> 2] | 0) + 48 >> 2] & 63](g2, c2, d2) | 0) != (d2 | 0) : 0) { + k[a2 >> 2] = 0; + g2 = 0; + break; + } + k[l2 >> 2] = 0; + } + while (0); + r = n2; + return g2 | 0; + } + function dv(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + f2 = k[a2 >> 2] | 0; + do + if (f2) { + if ((k[f2 + 12 >> 2] | 0) == (k[f2 + 16 >> 2] | 0)) + if ((Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0) == -1) { + k[a2 >> 2] = 0; + f2 = 0; + break; + } else { + f2 = k[a2 >> 2] | 0; + break; + } + } else + f2 = 0; + while (0); + g2 = (f2 | 0) == 0; + f2 = k[b2 >> 2] | 0; + do + if (f2) { + if ((k[f2 + 12 >> 2] | 0) == (k[f2 + 16 >> 2] | 0) ? (Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + r2 = 11; + break; + } + if (g2) + r2 = 13; + else + r2 = 12; + } else + r2 = 11; + while (0); + if ((r2 | 0) == 11) + if (g2) + r2 = 12; + else { + f2 = 0; + r2 = 13; + } + a: + do + if ((r2 | 0) == 12) { + k[c2 >> 2] = k[c2 >> 2] | 6; + f2 = 0; + } else if ((r2 | 0) == 13) { + g2 = k[a2 >> 2] | 0; + h2 = k[g2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[g2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + g2 = l[h2 >> 0] | 0; + h2 = g2 & 255; + if (h2 << 24 >> 24 > -1 ? (q2 = d2 + 8 | 0, (j[(k[q2 >> 2] | 0) + (g2 << 24 >> 24 << 1) >> 1] & 2048) != 0) : 0) { + m2 = (Qb[k[(k[d2 >> 2] | 0) + 36 >> 2] & 63](d2, h2, 0) | 0) << 24 >> 24; + g2 = k[a2 >> 2] | 0; + h2 = g2 + 12 | 0; + i3 = k[h2 >> 2] | 0; + if ((i3 | 0) == (k[g2 + 16 >> 2] | 0)) { + Ob[k[(k[g2 >> 2] | 0) + 40 >> 2] & 127](g2) | 0; + o2 = e2; + n2 = f2; + e2 = f2; + f2 = m2; + } else { + k[h2 >> 2] = i3 + 1; + o2 = e2; + n2 = f2; + e2 = f2; + f2 = m2; + } + while (1) { + f2 = f2 + -48 | 0; + p2 = o2 + -1 | 0; + g2 = k[a2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) + if ((Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0) == -1) { + k[a2 >> 2] = 0; + g2 = 0; + break; + } else { + g2 = k[a2 >> 2] | 0; + break; + } + } else + g2 = 0; + while (0); + i3 = (g2 | 0) == 0; + if (e2) + if ((k[e2 + 12 >> 2] | 0) == (k[e2 + 16 >> 2] | 0)) + if ((Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0) == -1) { + k[b2 >> 2] = 0; + h2 = 0; + e2 = 0; + } else { + h2 = n2; + e2 = n2; + } + else + h2 = n2; + else { + h2 = n2; + e2 = 0; + } + g2 = k[a2 >> 2] | 0; + if (!((o2 | 0) > 1 & (i3 ^ (e2 | 0) == 0))) + break; + i3 = k[g2 + 12 >> 2] | 0; + if ((i3 | 0) == (k[g2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + g2 = l[i3 >> 0] | 0; + i3 = g2 & 255; + if (i3 << 24 >> 24 <= -1) + break a; + if (!(j[(k[q2 >> 2] | 0) + (g2 << 24 >> 24 << 1) >> 1] & 2048)) + break a; + f2 = ((Qb[k[(k[d2 >> 2] | 0) + 36 >> 2] & 63](d2, i3, 0) | 0) << 24 >> 24) + (f2 * 10 | 0) | 0; + g2 = k[a2 >> 2] | 0; + i3 = g2 + 12 | 0; + m2 = k[i3 >> 2] | 0; + if ((m2 | 0) == (k[g2 + 16 >> 2] | 0)) { + Ob[k[(k[g2 >> 2] | 0) + 40 >> 2] & 127](g2) | 0; + o2 = p2; + n2 = h2; + continue; + } else { + k[i3 >> 2] = m2 + 1; + o2 = p2; + n2 = h2; + continue; + } + } + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) + if ((Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0) == -1) { + k[a2 >> 2] = 0; + g2 = 0; + break; + } else { + g2 = k[a2 >> 2] | 0; + break; + } + } else + g2 = 0; + while (0); + g2 = (g2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0) ? (Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + r2 = 50; + break; + } + if (g2) + break a; + } else + r2 = 50; + while (0); + if ((r2 | 0) == 50 ? !g2 : 0) + break; + k[c2 >> 2] = k[c2 >> 2] | 2; + break; + } + k[c2 >> 2] = k[c2 >> 2] | 4; + f2 = 0; + } + while (0); + return f2 | 0; + } + function ev(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + f2 = k[a2 >> 2] | 0; + do + if (f2) { + g2 = k[f2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[f2 + 16 >> 2] | 0)) + f2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; + else + f2 = k[g2 >> 2] | 0; + if ((f2 | 0) == -1) { + k[a2 >> 2] = 0; + h2 = 1; + break; + } else { + h2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + h2 = 1; + while (0); + g2 = k[b2 >> 2] | 0; + do + if (g2) { + f2 = k[g2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[g2 + 16 >> 2] | 0)) + f2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + f2 = k[f2 >> 2] | 0; + if ((f2 | 0) != -1) + if (h2) { + o2 = 17; + break; + } else { + o2 = 16; + break; + } + else { + k[b2 >> 2] = 0; + o2 = 14; + break; + } + } else + o2 = 14; + while (0); + if ((o2 | 0) == 14) + if (h2) + o2 = 16; + else { + g2 = 0; + o2 = 17; + } + a: + do + if ((o2 | 0) == 16) { + k[c2 >> 2] = k[c2 >> 2] | 6; + f2 = 0; + } else if ((o2 | 0) == 17) { + f2 = k[a2 >> 2] | 0; + h2 = k[f2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[f2 + 16 >> 2] | 0)) + f2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; + else + f2 = k[h2 >> 2] | 0; + if (!(Qb[k[(k[d2 >> 2] | 0) + 12 >> 2] & 63](d2, 2048, f2) | 0)) { + k[c2 >> 2] = k[c2 >> 2] | 4; + f2 = 0; + break; + } + f2 = (Qb[k[(k[d2 >> 2] | 0) + 52 >> 2] & 63](d2, f2, 0) | 0) << 24 >> 24; + h2 = k[a2 >> 2] | 0; + i3 = h2 + 12 | 0; + j2 = k[i3 >> 2] | 0; + if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { + Ob[k[(k[h2 >> 2] | 0) + 40 >> 2] & 127](h2) | 0; + m2 = e2; + l2 = g2; + i3 = g2; + } else { + k[i3 >> 2] = j2 + 4; + m2 = e2; + l2 = g2; + i3 = g2; + } + while (1) { + f2 = f2 + -48 | 0; + n2 = m2 + -1 | 0; + g2 = k[a2 >> 2] | 0; + do + if (g2) { + h2 = k[g2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[g2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == -1) { + k[a2 >> 2] = 0; + j2 = 1; + break; + } else { + j2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + j2 = 1; + while (0); + do + if (i3) { + g2 = k[i3 + 12 >> 2] | 0; + if ((g2 | 0) == (k[i3 + 16 >> 2] | 0)) + g2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + i3 = 0; + e2 = 0; + g2 = 1; + break; + } else { + i3 = l2; + e2 = l2; + g2 = (l2 | 0) == 0; + break; + } + } else { + i3 = l2; + e2 = 0; + g2 = 1; + } + while (0); + h2 = k[a2 >> 2] | 0; + if (!((m2 | 0) > 1 & (j2 ^ g2))) + break; + g2 = k[h2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[h2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0; + else + g2 = k[g2 >> 2] | 0; + if (!(Qb[k[(k[d2 >> 2] | 0) + 12 >> 2] & 63](d2, 2048, g2) | 0)) + break a; + f2 = ((Qb[k[(k[d2 >> 2] | 0) + 52 >> 2] & 63](d2, g2, 0) | 0) << 24 >> 24) + (f2 * 10 | 0) | 0; + g2 = k[a2 >> 2] | 0; + h2 = g2 + 12 | 0; + j2 = k[h2 >> 2] | 0; + if ((j2 | 0) == (k[g2 + 16 >> 2] | 0)) { + Ob[k[(k[g2 >> 2] | 0) + 40 >> 2] & 127](g2) | 0; + m2 = n2; + l2 = i3; + i3 = e2; + continue; + } else { + k[h2 >> 2] = j2 + 4; + m2 = n2; + l2 = i3; + i3 = e2; + continue; + } + } + do + if (h2) { + g2 = k[h2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[h2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0; + else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) == -1) { + k[a2 >> 2] = 0; + h2 = 1; + break; + } else { + h2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + h2 = 1; + while (0); + do + if (i3) { + g2 = k[i3 + 12 >> 2] | 0; + if ((g2 | 0) == (k[i3 + 16 >> 2] | 0)) + g2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break a; + else + break; + else { + k[b2 >> 2] = 0; + o2 = 60; + break; + } + } else + o2 = 60; + while (0); + if ((o2 | 0) == 60 ? !h2 : 0) + break; + k[c2 >> 2] = k[c2 >> 2] | 2; + } + while (0); + return f2 | 0; + } + function fv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + f2 = a2 + 4 | 0; + d2 = (k[f2 >> 2] | 0) != 189; + h2 = k[a2 >> 2] | 0; + g2 = h2; + e2 = (k[c2 >> 2] | 0) - g2 | 0; + e2 = e2 >>> 0 < 2147483647 ? e2 << 1 : -1; + g2 = (k[b2 >> 2] | 0) - g2 | 0; + h2 = Sl(d2 ? h2 : 0, e2) | 0; + if (!h2) + ak(); + do + if (!d2) { + d2 = k[a2 >> 2] | 0; + k[a2 >> 2] = h2; + if (d2) { + x = 0; + qa(k[f2 >> 2] | 0, d2 | 0); + h2 = x; + x = 0; + if (h2 & 1) { + h2 = Wa(0) | 0; + oc(h2); + } else { + i3 = k[a2 >> 2] | 0; + break; + } + } else + i3 = h2; + } else { + k[a2 >> 2] = h2; + i3 = h2; + } + while (0); + k[f2 >> 2] = 201; + k[b2 >> 2] = i3 + g2; + k[c2 >> 2] = (k[a2 >> 2] | 0) + e2; + return; + } + function gv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + f2 = a2 + 4 | 0; + d2 = (k[f2 >> 2] | 0) != 189; + h2 = k[a2 >> 2] | 0; + g2 = h2; + e2 = (k[c2 >> 2] | 0) - g2 | 0; + e2 = e2 >>> 0 < 2147483647 ? e2 << 1 : -1; + g2 = (k[b2 >> 2] | 0) - g2 >> 2; + h2 = Sl(d2 ? h2 : 0, e2) | 0; + if (!h2) + ak(); + do + if (!d2) { + d2 = k[a2 >> 2] | 0; + k[a2 >> 2] = h2; + if (d2) { + x = 0; + qa(k[f2 >> 2] | 0, d2 | 0); + h2 = x; + x = 0; + if (h2 & 1) { + h2 = Wa(0) | 0; + oc(h2); + } else { + i3 = k[a2 >> 2] | 0; + break; + } + } else + i3 = h2; + } else { + k[a2 >> 2] = h2; + i3 = h2; + } + while (0); + k[f2 >> 2] = 201; + k[b2 >> 2] = i3 + (g2 << 2); + k[c2 >> 2] = (k[a2 >> 2] | 0) + (e2 >>> 2 << 2); + return; + } + function hv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + f2 = b2; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) { + e2 = 10; + j2 = (d2 & 255) >>> 1; + } else { + d2 = k[a2 >> 2] | 0; + e2 = (d2 & -2) + -1 | 0; + j2 = k[a2 + 4 >> 2] | 0; + d2 = d2 & 255; + } + h2 = c2 - f2 | 0; + do + if ((c2 | 0) != (b2 | 0)) { + if ((e2 - j2 | 0) >>> 0 < h2 >>> 0) { + bn(a2, e2, j2 + h2 - e2 | 0, j2, j2, 0, 0); + d2 = i2[a2 >> 0] | 0; + } + if (!(d2 & 1)) + g2 = a2 + 1 | 0; + else + g2 = k[a2 + 8 >> 2] | 0; + f2 = c2 + (j2 - f2) | 0; + if ((b2 | 0) != (c2 | 0)) { + d2 = b2; + e2 = g2 + j2 | 0; + while (1) { + i2[e2 >> 0] = i2[d2 >> 0] | 0; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (c2 | 0)) + break; + else + e2 = e2 + 1 | 0; + } + } + i2[g2 + f2 >> 0] = 0; + d2 = j2 + h2 | 0; + if (!(i2[a2 >> 0] & 1)) { + i2[a2 >> 0] = d2 << 1; + break; + } else { + k[a2 + 4 >> 2] = d2; + break; + } + } + while (0); + return a2 | 0; + } + function iv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + f2 = a2 + 4 | 0; + d2 = (k[f2 >> 2] | 0) != 189; + h2 = k[a2 >> 2] | 0; + g2 = h2; + e2 = (k[c2 >> 2] | 0) - g2 | 0; + e2 = e2 >>> 0 < 2147483647 ? e2 << 1 : -1; + g2 = (k[b2 >> 2] | 0) - g2 >> 2; + h2 = Sl(d2 ? h2 : 0, e2) | 0; + if (!h2) + ak(); + do + if (!d2) { + d2 = k[a2 >> 2] | 0; + k[a2 >> 2] = h2; + if (d2) { + x = 0; + qa(k[f2 >> 2] | 0, d2 | 0); + h2 = x; + x = 0; + if (h2 & 1) { + h2 = Wa(0) | 0; + oc(h2); + } else { + i3 = k[a2 >> 2] | 0; + break; + } + } else + i3 = h2; + } else { + k[a2 >> 2] = h2; + i3 = h2; + } + while (0); + k[f2 >> 2] = 201; + k[b2 >> 2] = i3 + (g2 << 2); + k[c2 >> 2] = (k[a2 >> 2] | 0) + (e2 >>> 2 << 2); + return; + } + function jv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + f2 = b2; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) { + e2 = 1; + j2 = (d2 & 255) >>> 1; + } else { + d2 = k[a2 >> 2] | 0; + e2 = (d2 & -2) + -1 | 0; + j2 = k[a2 + 4 >> 2] | 0; + d2 = d2 & 255; + } + h2 = c2 - f2 >> 2; + do + if (h2) { + if ((e2 - j2 | 0) >>> 0 < h2 >>> 0) { + ln(a2, e2, j2 + h2 - e2 | 0, j2, j2, 0, 0); + d2 = i2[a2 >> 0] | 0; + } + if (!(d2 & 1)) + g2 = a2 + 4 | 0; + else + g2 = k[a2 + 8 >> 2] | 0; + f2 = j2 + ((c2 - f2 | 0) >>> 2) | 0; + if ((b2 | 0) != (c2 | 0)) { + d2 = b2; + e2 = g2 + (j2 << 2) | 0; + while (1) { + k[e2 >> 2] = k[d2 >> 2]; + d2 = d2 + 4 | 0; + if ((d2 | 0) == (c2 | 0)) + break; + else + e2 = e2 + 4 | 0; + } + } + k[g2 + (f2 << 2) >> 2] = 0; + d2 = j2 + h2 | 0; + if (!(i2[a2 >> 0] & 1)) { + i2[a2 >> 0] = d2 << 1; + break; + } else { + k[a2 + 4 >> 2] = d2; + break; + } + } + while (0); + return a2 | 0; + } + function kv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + i2[a2 + 128 >> 0] = 0; + do + if (b2) { + x = 0; + ra(125, a2 | 0, b2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa() | 0; + Nv(a2); + fb(c2 | 0); + } else { + cw(a2, b2); + break; + } + } + while (0); + return; + } + function lv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43148) | 0); + return; + } + function mv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43188) | 0); + return; + } + function nv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44220) | 0); + return; + } + function ov(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44212) | 0); + return; + } + function pv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44280) | 0); + return; + } + function qv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44288) | 0); + return; + } + function rv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44344) | 0); + return; + } + function sv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44352) | 0); + return; + } + function tv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44360) | 0); + return; + } + function uv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44368) | 0); + return; + } + function vv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43260) | 0); + return; + } + function wv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43332) | 0); + return; + } + function xv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43392) | 0); + return; + } + function yv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43452) | 0); + return; + } + function zv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43764) | 0); + return; + } + function Av(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43828) | 0); + return; + } + function Bv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43892) | 0); + return; + } + function Cv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43956) | 0); + return; + } + function Dv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43992) | 0); + return; + } + function Ev(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44028) | 0); + return; + } + function Fv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44064) | 0); + return; + } + function Gv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44100) | 0); + return; + } + function Hv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43544) | 0); + return; + } + function Iv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43636) | 0); + return; + } + function Jv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43668) | 0); + return; + } + function Kv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43700) | 0); + return; + } + function Lv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44140) | 0); + return; + } + function Mv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44180) | 0); + return; + } + function Nv(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = a2 + 4 | 0; + b2 = k[d2 >> 2] | 0; + if ((b2 | 0) != (c2 | 0)) { + do + b2 = b2 + -4 | 0; + while ((b2 | 0) != (c2 | 0)); + k[d2 >> 2] = b2; + } + if ((a2 + 16 | 0) == (c2 | 0)) { + i2[a2 + 128 >> 0] = 0; + break; + } else { + mj(c2); + break; + } + } + while (0); + return; + } + function Ov(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + g2 = a2 + 4 | 0; + c2 = k[g2 >> 2] | 0; + d2 = k[a2 >> 2] | 0; + e2 = c2 - d2 >> 2; + if (e2 >>> 0 >= b2 >>> 0) { + if (e2 >>> 0 > b2 >>> 0 ? (f2 = d2 + (b2 << 2) | 0, (c2 | 0) != (f2 | 0)) : 0) { + do + c2 = c2 + -4 | 0; + while ((c2 | 0) != (f2 | 0)); + k[g2 >> 2] = c2; + } + } else + bw(a2, b2 - e2 | 0); + return; + } + function Pv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + c2 = k[a2 + 8 >> 2] | 0; + if ((k[a2 + 12 >> 2] | 0) - c2 >> 2 >>> 0 > b2 >>> 0) + c2 = (k[c2 + (b2 << 2) >> 2] | 0) != 0; + else + c2 = 0; + return c2 | 0; + } + function Qv(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + c2 = k[c2 + 4 >> 2] | 0; + a2 = (k[a2 >> 2] | 0) + (c2 >> 1) | 0; + if (c2 & 1) + b2 = k[(k[a2 >> 2] | 0) + b2 >> 2] | 0; + Lb[b2 & 255](a2); + return; + } + function Rv(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var l2 = 0, n2 = 0; + k[c2 >> 2] = a2; + k[f2 >> 2] = d2; + if (h2 & 2) + if ((e2 - d2 | 0) < 3) + a2 = 1; + else { + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = -17; + l2 = k[f2 >> 2] | 0; + k[f2 >> 2] = l2 + 1; + i2[l2 >> 0] = -69; + l2 = k[f2 >> 2] | 0; + k[f2 >> 2] = l2 + 1; + i2[l2 >> 0] = -65; + l2 = 4; + } + else + l2 = 4; + a: + do + if ((l2 | 0) == 4) { + n2 = b2; + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 < b2 >>> 0) + while (1) { + h2 = j[a2 >> 1] | 0; + l2 = h2 & 65535; + if (l2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + do + if ((h2 & 65535) < 128) { + a2 = k[f2 >> 2] | 0; + if ((e2 - a2 | 0) < 1) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2; + } else { + if ((h2 & 65535) < 2048) { + a2 = k[f2 >> 2] | 0; + if ((e2 - a2 | 0) < 2) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = l2 >>> 6 | 192; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 & 63 | 128; + break; + } + if ((h2 & 65535) < 55296) { + a2 = k[f2 >> 2] | 0; + if ((e2 - a2 | 0) < 3) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = l2 >>> 12 | 224; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 >>> 6 & 63 | 128; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 & 63 | 128; + break; + } + if ((h2 & 65535) >= 56320) { + if ((h2 & 65535) < 57344) { + a2 = 2; + break a; + } + a2 = k[f2 >> 2] | 0; + if ((e2 - a2 | 0) < 3) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = l2 >>> 12 | 224; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 >>> 6 & 63 | 128; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 & 63 | 128; + break; + } + if ((n2 - a2 | 0) < 4) { + a2 = 1; + break a; + } + a2 = a2 + 2 | 0; + h2 = m[a2 >> 1] | 0; + if ((h2 & 64512 | 0) != 56320) { + a2 = 2; + break a; + } + if ((e2 - (k[f2 >> 2] | 0) | 0) < 4) { + a2 = 1; + break a; + } + d2 = l2 & 960; + if (((d2 << 10) + 65536 | l2 << 10 & 64512 | h2 & 1023) >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[c2 >> 2] = a2; + a2 = (d2 >>> 6) + 1 | 0; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = a2 >>> 2 | 240; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 >>> 2 & 15 | a2 << 4 & 48 | 128; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 << 4 & 48 | h2 >>> 6 & 15 | 128; + l2 = k[f2 >> 2] | 0; + k[f2 >> 2] = l2 + 1; + i2[l2 >> 0] = h2 & 63 | 128; + } + while (0); + a2 = (k[c2 >> 2] | 0) + 2 | 0; + k[c2 >> 2] = a2; + if (a2 >>> 0 >= b2 >>> 0) { + a2 = 0; + break; + } + } + else + a2 = 0; + } + while (0); + return a2 | 0; + } + function Sv(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + k[c2 >> 2] = a2; + k[f2 >> 2] = d2; + if (h2 & 4) { + a2 = k[c2 >> 2] | 0; + h2 = b2; + if ((((h2 - a2 | 0) > 2 ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) ? (i2[a2 + 2 >> 0] | 0) == -65 : 0) { + k[c2 >> 2] = a2 + 3; + m2 = k[f2 >> 2] | 0; + } else + m2 = d2; + } else { + m2 = d2; + h2 = b2; + } + q2 = e2; + d2 = k[c2 >> 2] | 0; + a2 = d2 >>> 0 < b2 >>> 0; + a: + do + if (a2 & m2 >>> 0 < e2 >>> 0) + while (1) { + a2 = i2[d2 >> 0] | 0; + o2 = a2 & 255; + if (o2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + do + if (a2 << 24 >> 24 > -1) { + j[m2 >> 1] = a2 & 255; + k[c2 >> 2] = d2 + 1; + } else { + if ((a2 & 255) < 194) { + a2 = 2; + break a; + } + if ((a2 & 255) < 224) { + if ((h2 - d2 | 0) < 2) { + a2 = 1; + break a; + } + a2 = l[d2 + 1 >> 0] | 0; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = a2 & 63 | o2 << 6 & 1984; + if (a2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + j[m2 >> 1] = a2; + k[c2 >> 2] = d2 + 2; + break; + } + if ((a2 & 255) < 240) { + if ((h2 - d2 | 0) < 3) { + a2 = 1; + break a; + } + n2 = i2[d2 + 1 >> 0] | 0; + a2 = i2[d2 + 2 >> 0] | 0; + switch (o2 | 0) { + case 224: { + if ((n2 & -32) << 24 >> 24 != -96) { + a2 = 2; + break a; + } + break; + } + case 237: { + if ((n2 & -32) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + break; + } + default: + if ((n2 & -64) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + } + a2 = a2 & 255; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = (n2 & 255) << 6 & 4032 | o2 << 12 | a2 & 63; + if ((a2 & 65535) >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + j[m2 >> 1] = a2; + k[c2 >> 2] = d2 + 3; + break; + } + if ((a2 & 255) >= 245) { + a2 = 2; + break a; + } + if ((h2 - d2 | 0) < 4) { + a2 = 1; + break a; + } + n2 = i2[d2 + 1 >> 0] | 0; + a2 = i2[d2 + 2 >> 0] | 0; + d2 = i2[d2 + 3 >> 0] | 0; + switch (o2 | 0) { + case 240: { + if ((n2 + 112 & 255) >= 48) { + a2 = 2; + break a; + } + break; + } + case 244: { + if ((n2 & -16) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + break; + } + default: + if ((n2 & -64) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + } + p2 = a2 & 255; + if ((p2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = d2 & 255; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + if ((q2 - m2 | 0) < 4) { + a2 = 1; + break a; + } + o2 = o2 & 7; + d2 = n2 & 255; + n2 = p2 << 6; + a2 = a2 & 63; + if ((d2 << 12 & 258048 | o2 << 18 | n2 & 4032 | a2) >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + j[m2 >> 1] = d2 << 2 & 60 | p2 >>> 4 & 3 | ((d2 >>> 4 & 3 | o2 << 2) << 6) + 16320 | 55296; + p2 = m2 + 2 | 0; + k[f2 >> 2] = p2; + j[p2 >> 1] = a2 | n2 & 960 | 56320; + k[c2 >> 2] = (k[c2 >> 2] | 0) + 4; + } + while (0); + m2 = (k[f2 >> 2] | 0) + 2 | 0; + k[f2 >> 2] = m2; + d2 = k[c2 >> 2] | 0; + a2 = d2 >>> 0 < b2 >>> 0; + if (!(a2 & m2 >>> 0 < e2 >>> 0)) { + r2 = 39; + break; + } + } + else + r2 = 39; + while (0); + if ((r2 | 0) == 39) + a2 = a2 & 1; + return a2 | 0; + } + function Tv(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, k2 = 0, m2 = 0, n2 = 0; + n2 = b2; + if ((((e2 & 4 | 0) != 0 ? (n2 - a2 | 0) > 2 : 0) ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) + e2 = (i2[a2 + 2 >> 0] | 0) == -65 ? a2 + 3 | 0 : a2; + else + e2 = a2; + a: + do + if ((c2 | 0) != 0 & e2 >>> 0 < b2 >>> 0) { + m2 = e2; + f2 = 0; + b: + while (1) { + e2 = i2[m2 >> 0] | 0; + k2 = e2 & 255; + if (k2 >>> 0 > d2 >>> 0) { + e2 = m2; + f2 = 42; + break a; + } + do + if (e2 << 24 >> 24 > -1) + e2 = m2 + 1 | 0; + else { + if ((e2 & 255) < 194) { + e2 = m2; + f2 = 42; + break a; + } + if ((e2 & 255) < 224) { + if ((n2 - m2 | 0) < 2) { + e2 = m2; + f2 = 42; + break a; + } + e2 = l[m2 + 1 >> 0] | 0; + if ((e2 & 192 | 0) != 128) { + e2 = m2; + f2 = 42; + break a; + } + if ((e2 & 63 | k2 << 6 & 1984) >>> 0 > d2 >>> 0) { + e2 = m2; + f2 = 42; + break a; + } + e2 = m2 + 2 | 0; + break; + } + if ((e2 & 255) < 240) { + e2 = m2; + if ((n2 - e2 | 0) < 3) { + e2 = m2; + f2 = 42; + break a; + } + h2 = i2[m2 + 1 >> 0] | 0; + g2 = i2[m2 + 2 >> 0] | 0; + switch (k2 | 0) { + case 224: { + if ((h2 & -32) << 24 >> 24 != -96) { + f2 = 20; + break b; + } + break; + } + case 237: { + if ((h2 & -32) << 24 >> 24 != -128) { + f2 = 22; + break b; + } + break; + } + default: + if ((h2 & -64) << 24 >> 24 != -128) { + f2 = 24; + break b; + } + } + e2 = g2 & 255; + if ((e2 & 192 | 0) != 128) { + e2 = m2; + f2 = 42; + break a; + } + if (((h2 & 255) << 6 & 4032 | k2 << 12 & 61440 | e2 & 63) >>> 0 > d2 >>> 0) { + e2 = m2; + f2 = 42; + break a; + } + e2 = m2 + 3 | 0; + break; + } + if ((e2 & 255) >= 245) { + e2 = m2; + f2 = 42; + break a; + } + e2 = m2; + if ((c2 - f2 | 0) >>> 0 < 2 | (n2 - e2 | 0) < 4) { + e2 = m2; + f2 = 42; + break a; + } + j2 = i2[m2 + 1 >> 0] | 0; + g2 = i2[m2 + 2 >> 0] | 0; + h2 = i2[m2 + 3 >> 0] | 0; + switch (k2 | 0) { + case 240: { + if ((j2 + 112 & 255) >= 48) { + f2 = 32; + break b; + } + break; + } + case 244: { + if ((j2 & -16) << 24 >> 24 != -128) { + f2 = 34; + break b; + } + break; + } + default: + if ((j2 & -64) << 24 >> 24 != -128) { + f2 = 36; + break b; + } + } + g2 = g2 & 255; + if ((g2 & 192 | 0) != 128) { + e2 = m2; + f2 = 42; + break a; + } + e2 = h2 & 255; + if ((e2 & 192 | 0) != 128) { + e2 = m2; + f2 = 42; + break a; + } + if (((j2 & 255) << 12 & 258048 | k2 << 18 & 1835008 | g2 << 6 & 4032 | e2 & 63) >>> 0 > d2 >>> 0) { + e2 = m2; + f2 = 42; + break a; + } + e2 = m2 + 4 | 0; + f2 = f2 + 1 | 0; + } + while (0); + f2 = f2 + 1 | 0; + if (!(f2 >>> 0 < c2 >>> 0 & e2 >>> 0 < b2 >>> 0)) { + f2 = 42; + break a; + } else + m2 = e2; + } + if ((f2 | 0) == 20) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 22) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 24) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 32) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 34) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 36) { + e2 = e2 - a2 | 0; + break; + } + } else + f2 = 42; + while (0); + if ((f2 | 0) == 42) + e2 = e2 - a2 | 0; + return e2 | 0; + } + function Uv(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0; + k[c2 >> 2] = a2; + k[f2 >> 2] = d2; + l2 = e2; + if (h2 & 2) + if ((l2 - d2 | 0) < 3) + a2 = 1; + else { + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = -17; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = -69; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = -65; + j2 = 4; + } + else + j2 = 4; + a: + do + if ((j2 | 0) == 4) { + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 < b2 >>> 0) + while (1) { + h2 = k[a2 >> 2] | 0; + if (h2 >>> 0 > g2 >>> 0 | (h2 & -2048 | 0) == 55296) { + a2 = 2; + break a; + } + do + if (h2 >>> 0 >= 128) { + if (h2 >>> 0 < 2048) { + a2 = k[f2 >> 2] | 0; + if ((l2 - a2 | 0) < 2) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2 >>> 6 | 192; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 & 63 | 128; + break; + } + a2 = k[f2 >> 2] | 0; + e2 = l2 - a2 | 0; + if (h2 >>> 0 < 65536) { + if ((e2 | 0) < 3) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2 >>> 12 | 224; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 >>> 6 & 63 | 128; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 & 63 | 128; + break; + } else { + if ((e2 | 0) < 4) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2 >>> 18 | 240; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 >>> 12 & 63 | 128; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 >>> 6 & 63 | 128; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 & 63 | 128; + break; + } + } else { + a2 = k[f2 >> 2] | 0; + if ((l2 - a2 | 0) < 1) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2; + } + while (0); + a2 = (k[c2 >> 2] | 0) + 4 | 0; + k[c2 >> 2] = a2; + if (a2 >>> 0 >= b2 >>> 0) { + a2 = 0; + break; + } + } + else + a2 = 0; + } + while (0); + return a2 | 0; + } + function Vv(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + k[c2 >> 2] = a2; + k[f2 >> 2] = d2; + if (h2 & 4) { + a2 = k[c2 >> 2] | 0; + h2 = b2; + if ((((h2 - a2 | 0) > 2 ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) ? (i2[a2 + 2 >> 0] | 0) == -65 : 0) { + k[c2 >> 2] = a2 + 3; + d2 = k[f2 >> 2] | 0; + p2 = h2; + } else + p2 = h2; + } else + p2 = b2; + h2 = k[c2 >> 2] | 0; + a2 = h2 >>> 0 < b2 >>> 0; + a: + do + if (a2 & d2 >>> 0 < e2 >>> 0) + while (1) { + a2 = i2[h2 >> 0] | 0; + o2 = a2 & 255; + do + if (a2 << 24 >> 24 > -1) { + if (o2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[d2 >> 2] = o2; + k[c2 >> 2] = h2 + 1; + } else { + if ((a2 & 255) < 194) { + a2 = 2; + break a; + } + if ((a2 & 255) < 224) { + if ((p2 - h2 | 0) < 2) { + a2 = 1; + break a; + } + a2 = l[h2 + 1 >> 0] | 0; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = a2 & 63 | o2 << 6 & 1984; + if (a2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[d2 >> 2] = a2; + k[c2 >> 2] = h2 + 2; + break; + } + if ((a2 & 255) < 240) { + if ((p2 - h2 | 0) < 3) { + a2 = 1; + break a; + } + j2 = i2[h2 + 1 >> 0] | 0; + a2 = i2[h2 + 2 >> 0] | 0; + switch (o2 | 0) { + case 224: { + if ((j2 & -32) << 24 >> 24 != -96) { + a2 = 2; + break a; + } + break; + } + case 237: { + if ((j2 & -32) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + break; + } + default: + if ((j2 & -64) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + } + a2 = a2 & 255; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = (j2 & 255) << 6 & 4032 | o2 << 12 & 61440 | a2 & 63; + if (a2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[d2 >> 2] = a2; + k[c2 >> 2] = h2 + 3; + break; + } + if ((a2 & 255) >= 245) { + a2 = 2; + break a; + } + if ((p2 - h2 | 0) < 4) { + a2 = 1; + break a; + } + n2 = i2[h2 + 1 >> 0] | 0; + a2 = i2[h2 + 2 >> 0] | 0; + j2 = i2[h2 + 3 >> 0] | 0; + switch (o2 | 0) { + case 240: { + if ((n2 + 112 & 255) >= 48) { + a2 = 2; + break a; + } + break; + } + case 244: { + if ((n2 & -16) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + break; + } + default: + if ((n2 & -64) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + } + m2 = a2 & 255; + if ((m2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = j2 & 255; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = (n2 & 255) << 12 & 258048 | o2 << 18 & 1835008 | m2 << 6 & 4032 | a2 & 63; + if (a2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[d2 >> 2] = a2; + k[c2 >> 2] = h2 + 4; + } + while (0); + d2 = (k[f2 >> 2] | 0) + 4 | 0; + k[f2 >> 2] = d2; + h2 = k[c2 >> 2] | 0; + a2 = h2 >>> 0 < b2 >>> 0; + if (!(a2 & d2 >>> 0 < e2 >>> 0)) { + q2 = 38; + break; + } + } + else + q2 = 38; + while (0); + if ((q2 | 0) == 38) + a2 = a2 & 1; + return a2 | 0; + } + function Wv(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, k2 = 0, m2 = 0, n2 = 0; + n2 = b2; + if ((((e2 & 4 | 0) != 0 ? (n2 - a2 | 0) > 2 : 0) ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) + e2 = (i2[a2 + 2 >> 0] | 0) == -65 ? a2 + 3 | 0 : a2; + else + e2 = a2; + a: + do + if ((c2 | 0) != 0 & e2 >>> 0 < b2 >>> 0) { + k2 = e2; + m2 = 0; + b: + while (1) { + e2 = i2[k2 >> 0] | 0; + j2 = e2 & 255; + do + if (e2 << 24 >> 24 > -1) { + if (j2 >>> 0 > d2 >>> 0) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2 + 1 | 0; + } else { + if ((e2 & 255) < 194) { + e2 = k2; + f2 = 42; + break a; + } + if ((e2 & 255) < 224) { + if ((n2 - k2 | 0) < 2) { + e2 = k2; + f2 = 42; + break a; + } + e2 = l[k2 + 1 >> 0] | 0; + if ((e2 & 192 | 0) != 128) { + e2 = k2; + f2 = 42; + break a; + } + if ((e2 & 63 | j2 << 6 & 1984) >>> 0 > d2 >>> 0) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2 + 2 | 0; + break; + } + if ((e2 & 255) < 240) { + e2 = k2; + if ((n2 - e2 | 0) < 3) { + e2 = k2; + f2 = 42; + break a; + } + g2 = i2[k2 + 1 >> 0] | 0; + f2 = i2[k2 + 2 >> 0] | 0; + switch (j2 | 0) { + case 224: { + if ((g2 & -32) << 24 >> 24 != -96) { + f2 = 20; + break b; + } + break; + } + case 237: { + if ((g2 & -32) << 24 >> 24 != -128) { + f2 = 22; + break b; + } + break; + } + default: + if ((g2 & -64) << 24 >> 24 != -128) { + f2 = 24; + break b; + } + } + e2 = f2 & 255; + if ((e2 & 192 | 0) != 128) { + e2 = k2; + f2 = 42; + break a; + } + if (((g2 & 255) << 6 & 4032 | j2 << 12 & 61440 | e2 & 63) >>> 0 > d2 >>> 0) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2 + 3 | 0; + break; + } + if ((e2 & 255) >= 245) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2; + if ((n2 - e2 | 0) < 4) { + e2 = k2; + f2 = 42; + break a; + } + h2 = i2[k2 + 1 >> 0] | 0; + f2 = i2[k2 + 2 >> 0] | 0; + g2 = i2[k2 + 3 >> 0] | 0; + switch (j2 | 0) { + case 240: { + if ((h2 + 112 & 255) >= 48) { + f2 = 32; + break b; + } + break; + } + case 244: { + if ((h2 & -16) << 24 >> 24 != -128) { + f2 = 34; + break b; + } + break; + } + default: + if ((h2 & -64) << 24 >> 24 != -128) { + f2 = 36; + break b; + } + } + f2 = f2 & 255; + if ((f2 & 192 | 0) != 128) { + e2 = k2; + f2 = 42; + break a; + } + e2 = g2 & 255; + if ((e2 & 192 | 0) != 128) { + e2 = k2; + f2 = 42; + break a; + } + if (((h2 & 255) << 12 & 258048 | j2 << 18 & 1835008 | f2 << 6 & 4032 | e2 & 63) >>> 0 > d2 >>> 0) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2 + 4 | 0; + } + while (0); + m2 = m2 + 1 | 0; + if (!(m2 >>> 0 < c2 >>> 0 & e2 >>> 0 < b2 >>> 0)) { + f2 = 42; + break a; + } else + k2 = e2; + } + if ((f2 | 0) == 20) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 22) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 24) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 32) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 34) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 36) { + e2 = e2 - a2 | 0; + break; + } + } else + f2 = 42; + while (0); + if ((f2 | 0) == 42) + e2 = e2 - a2 | 0; + return e2 | 0; + } + function Xv(a2) { + a2 = a2 | 0; + Sm(45196); + Sm(45184); + Sm(45172); + Sm(45160); + Sm(45148); + Sm(45136); + Sm(45124); + Sm(45112); + Sm(45100); + Sm(45088); + Sm(45076); + Sm(45064); + Sm(45052); + Sm(45040); + return; + } + function Yv(a2) { + a2 = a2 | 0; + en(45368); + en(45356); + en(45344); + en(45332); + en(45320); + en(45308); + en(45296); + en(45284); + en(45272); + en(45260); + en(45248); + en(45236); + en(45224); + en(45212); + return; + } + function Zv(a2) { + a2 = a2 | 0; + Sm(46e3); + Sm(45988); + Sm(45976); + Sm(45964); + Sm(45952); + Sm(45940); + Sm(45928); + Sm(45916); + Sm(45904); + Sm(45892); + Sm(45880); + Sm(45868); + Sm(45856); + Sm(45844); + Sm(45832); + Sm(45820); + Sm(45808); + Sm(45796); + Sm(45784); + Sm(45772); + Sm(45760); + Sm(45748); + Sm(45736); + Sm(45724); + return; + } + function _v(a2) { + a2 = a2 | 0; + en(46292); + en(46280); + en(46268); + en(46256); + en(46244); + en(46232); + en(46220); + en(46208); + en(46196); + en(46184); + en(46172); + en(46160); + en(46148); + en(46136); + en(46124); + en(46112); + en(46100); + en(46088); + en(46076); + en(46064); + en(46052); + en(46040); + en(46028); + en(46016); + return; + } + function $v(a2) { + a2 = a2 | 0; + Sm(47104); + Sm(47092); + Sm(47080); + Sm(47068); + Sm(47056); + Sm(47044); + Sm(47032); + Sm(47020); + Sm(47008); + Sm(46996); + Sm(46984); + Sm(46972); + Sm(46960); + Sm(46948); + Sm(46936); + Sm(46924); + Sm(46912); + Sm(46900); + Sm(46888); + Sm(46876); + Sm(46864); + Sm(46852); + Sm(46840); + Sm(46828); + return; + } + function aw(a2) { + a2 = a2 | 0; + en(47396); + en(47384); + en(47372); + en(47360); + en(47348); + en(47336); + en(47324); + en(47312); + en(47300); + en(47288); + en(47276); + en(47264); + en(47252); + en(47240); + en(47228); + en(47216); + en(47204); + en(47192); + en(47180); + en(47168); + en(47156); + en(47144); + en(47132); + en(47120); + return; + } + function bw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + i3 = r; + r = r + 32 | 0; + h2 = i3; + f2 = k[a2 + 8 >> 2] | 0; + c2 = k[a2 + 4 >> 2] | 0; + if (f2 - c2 >> 2 >>> 0 < b2 >>> 0) { + d2 = k[a2 >> 2] | 0; + g2 = c2 - d2 >> 2; + e2 = g2 + b2 | 0; + if (e2 >>> 0 > 1073741823) + jj(a2); + c2 = f2 - d2 | 0; + if (c2 >> 2 >>> 0 < 536870911) { + c2 = c2 >> 1; + c2 = c2 >>> 0 < e2 >>> 0 ? e2 : c2; + } else + c2 = 1073741823; + dw(h2, c2, g2, a2 + 16 | 0); + g2 = h2 + 8 | 0; + f2 = k[g2 >> 2] | 0; + sw(f2 | 0, 0, b2 << 2 | 0) | 0; + k[g2 >> 2] = f2 + (b2 << 2); + ew(a2, h2); + fw(h2); + } else + cw(a2, b2); + r = i3; + return; + } + function cw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + c2 = a2 + 4 | 0; + a2 = b2; + b2 = k[c2 >> 2] | 0; + do { + k[b2 >> 2] = 0; + b2 = (k[c2 >> 2] | 0) + 4 | 0; + k[c2 >> 2] = b2; + a2 = a2 + -1 | 0; + } while ((a2 | 0) != 0); + return; + } + function dw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = d2; + do + if (b2) { + e2 = d2 + 112 | 0; + if (b2 >>> 0 < 29 & (i2[e2 >> 0] | 0) == 0) { + i2[e2 >> 0] = 1; + break; + } else { + d2 = lj(b2 << 2) | 0; + break; + } + } else + d2 = 0; + while (0); + k[a2 >> 2] = d2; + c2 = d2 + (c2 << 2) | 0; + k[a2 + 8 >> 2] = c2; + k[a2 + 4 >> 2] = c2; + k[a2 + 12 >> 2] = d2 + (b2 << 2); + return; + } + function ew(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = k[a2 >> 2] | 0; + f2 = a2 + 4 | 0; + c2 = b2 + 4 | 0; + e2 = (k[f2 >> 2] | 0) - d2 | 0; + g2 = (k[c2 >> 2] | 0) + (0 - (e2 >> 2) << 2) | 0; + k[c2 >> 2] = g2; + vw(g2 | 0, d2 | 0, e2 | 0) | 0; + e2 = k[a2 >> 2] | 0; + k[a2 >> 2] = k[c2 >> 2]; + k[c2 >> 2] = e2; + e2 = b2 + 8 | 0; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = k[e2 >> 2]; + k[e2 >> 2] = d2; + e2 = a2 + 8 | 0; + a2 = b2 + 12 | 0; + d2 = k[e2 >> 2] | 0; + k[e2 >> 2] = k[a2 >> 2]; + k[a2 >> 2] = d2; + k[b2 >> 2] = k[c2 >> 2]; + return; + } + function fw(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + c2 = k[a2 + 4 >> 2] | 0; + d2 = a2 + 8 | 0; + b2 = k[d2 >> 2] | 0; + if ((b2 | 0) != (c2 | 0)) { + do + b2 = b2 + -4 | 0; + while ((b2 | 0) != (c2 | 0)); + k[d2 >> 2] = b2; + } + c2 = k[a2 >> 2] | 0; + do + if (c2) { + b2 = k[a2 + 16 >> 2] | 0; + if ((b2 | 0) == (c2 | 0)) { + i2[b2 + 112 >> 0] = 0; + break; + } else { + mj(c2); + break; + } + } + while (0); + return; + } + function gw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + if (b2 >>> 0 > 1073741823) + jj(a2); + c2 = a2 + 128 | 0; + if (b2 >>> 0 < 29 & (i2[c2 >> 0] | 0) == 0) { + i2[c2 >> 0] = 1; + c2 = a2 + 16 | 0; + } else + c2 = lj(b2 << 2) | 0; + k[a2 + 4 >> 2] = c2; + k[a2 >> 2] = c2; + k[a2 + 8 >> 2] = c2 + (b2 << 2); + return; + } + function hw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + do + if ((a2 | 0) != (b2 | 0)) { + e2 = mk() | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + d2 = +ql(a2, g2, fp() | 0); + a2 = k[e2 >> 2] | 0; + if (!a2) + k[e2 >> 2] = f2; + if ((k[g2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + break; + } + if ((a2 | 0) == 34) + k[c2 >> 2] = 4; + } else { + k[c2 >> 2] = 4; + d2 = 0; + } + while (0); + r = h2; + return +d2; + } + function iw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + do + if ((a2 | 0) != (b2 | 0)) { + e2 = mk() | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + d2 = +ql(a2, g2, fp() | 0); + a2 = k[e2 >> 2] | 0; + if (!a2) + k[e2 >> 2] = f2; + if ((k[g2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + break; + } + if ((a2 | 0) == 34) + k[c2 >> 2] = 4; + } else { + k[c2 >> 2] = 4; + d2 = 0; + } + while (0); + r = h2; + return +d2; + } + function jw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + do + if ((a2 | 0) == (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + } else { + e2 = mk() | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + d2 = +ql(a2, g2, fp() | 0); + a2 = k[e2 >> 2] | 0; + if (!a2) + k[e2 >> 2] = f2; + if ((k[g2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + break; + } + if ((a2 | 0) == 34) + k[c2 >> 2] = 4; + } + while (0); + r = h2; + return +d2; + } + function kw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + do + if ((a2 | 0) != (b2 | 0)) { + if ((i2[a2 >> 0] | 0) == 45) { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + break; + } + e2 = mk() | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + a2 = fk(a2, g2, d2, fp() | 0) | 0; + d2 = k[e2 >> 2] | 0; + if (!d2) + k[e2 >> 2] = f2; + if ((k[g2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + break; + } + if ((d2 | 0) == 34) { + k[c2 >> 2] = 4; + d2 = -1; + a2 = -1; + } else + d2 = M; + } else { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + } + while (0); + M = d2; + r = h2; + return a2 | 0; + } + function lw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + do + if ((a2 | 0) != (b2 | 0)) { + if ((i2[a2 >> 0] | 0) == 45) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = fk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + if (d2 >>> 0 > 0 | (d2 | 0) == 0 & a2 >>> 0 > 4294967295 | (e2 | 0) == 34) { + k[c2 >> 2] = 4; + a2 = -1; + break; + } else + break; + } else { + k[c2 >> 2] = 4; + a2 = 0; + } + while (0); + r = j2; + return a2 | 0; + } + function mw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + do + if ((a2 | 0) != (b2 | 0)) { + if ((i2[a2 >> 0] | 0) == 45) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = fk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + if (d2 >>> 0 > 0 | (d2 | 0) == 0 & a2 >>> 0 > 4294967295 | (e2 | 0) == 34) { + k[c2 >> 2] = 4; + a2 = -1; + break; + } else + break; + } else { + k[c2 >> 2] = 4; + a2 = 0; + } + while (0); + r = j2; + return a2 | 0; + } + function nw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + do + if ((a2 | 0) != (b2 | 0)) { + if ((i2[a2 >> 0] | 0) == 45) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = fk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + if (d2 >>> 0 > 0 | (d2 | 0) == 0 & a2 >>> 0 > 65535 | (e2 | 0) == 34) { + k[c2 >> 2] = 4; + a2 = -1; + break; + } else { + a2 = a2 & 65535; + break; + } + } else { + k[c2 >> 2] = 4; + a2 = 0; + } + while (0); + r = j2; + return a2 | 0; + } + function ow(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + i3 = r; + r = r + 16 | 0; + h2 = i3; + do + if ((a2 | 0) != (b2 | 0)) { + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = gk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + break; + } + if ((e2 | 0) == 34) { + k[c2 >> 2] = 4; + h2 = (d2 | 0) > 0 | (d2 | 0) == 0 & a2 >>> 0 > 0; + M = h2 ? 2147483647 : -2147483648; + r = i3; + return (h2 ? -1 : 0) | 0; + } + } else { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + } + while (0); + M = d2; + r = i3; + return a2 | 0; + } + function pw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + i3 = r; + r = r + 16 | 0; + h2 = i3; + a: + do + if ((a2 | 0) == (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + } else { + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = gk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + do + if ((e2 | 0) == 34) { + k[c2 >> 2] = 4; + if ((d2 | 0) > 0 | (d2 | 0) == 0 & a2 >>> 0 > 0) { + a2 = 2147483647; + break a; + } + } else { + if ((d2 | 0) < -1 | (d2 | 0) == -1 & a2 >>> 0 < 2147483648) { + k[c2 >> 2] = 4; + break; + } + if ((d2 | 0) > 0 | (d2 | 0) == 0 & a2 >>> 0 > 2147483647) { + k[c2 >> 2] = 4; + a2 = 2147483647; + break a; + } else + break a; + } + while (0); + a2 = -2147483648; + } + while (0); + r = i3; + return a2 | 0; + } + function qw() { + } + function rw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + d2 = b2 - d2 - (c2 >>> 0 > a2 >>> 0 | 0) >>> 0; + return (M = d2, a2 - c2 >>> 0 | 0) | 0; + } + function sw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = a2 + c2 | 0; + if ((c2 | 0) >= 20) { + b2 = b2 & 255; + f2 = a2 & 3; + g2 = b2 | b2 << 8 | b2 << 16 | b2 << 24; + e2 = d2 & ~3; + if (f2) { + f2 = a2 + 4 - f2 | 0; + while ((a2 | 0) < (f2 | 0)) { + i2[a2 >> 0] = b2; + a2 = a2 + 1 | 0; + } + } + while ((a2 | 0) < (e2 | 0)) { + k[a2 >> 2] = g2; + a2 = a2 + 4 | 0; + } + } + while ((a2 | 0) < (d2 | 0)) { + i2[a2 >> 0] = b2; + a2 = a2 + 1 | 0; + } + return a2 - c2 | 0; + } + function tw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + c2 = a2 + c2 >>> 0; + return (M = b2 + d2 + (c2 >>> 0 < a2 >>> 0 | 0) >>> 0, c2 | 0) | 0; + } + function uw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((c2 | 0) < 32) { + M = b2 >>> c2; + return a2 >>> c2 | (b2 & (1 << c2) - 1) << 32 - c2; + } + M = 0; + return b2 >>> c2 - 32 | 0; + } + function vw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if ((c2 | 0) >= 4096) + return db(a2 | 0, b2 | 0, c2 | 0) | 0; + d2 = a2 | 0; + if ((a2 & 3) == (b2 & 3)) { + while (a2 & 3) { + if (!c2) + return d2 | 0; + i2[a2 >> 0] = i2[b2 >> 0] | 0; + a2 = a2 + 1 | 0; + b2 = b2 + 1 | 0; + c2 = c2 - 1 | 0; + } + while ((c2 | 0) >= 4) { + k[a2 >> 2] = k[b2 >> 2]; + a2 = a2 + 4 | 0; + b2 = b2 + 4 | 0; + c2 = c2 - 4 | 0; + } + } + while ((c2 | 0) > 0) { + i2[a2 >> 0] = i2[b2 >> 0] | 0; + a2 = a2 + 1 | 0; + b2 = b2 + 1 | 0; + c2 = c2 - 1 | 0; + } + return d2 | 0; + } + function ww(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((c2 | 0) < 32) { + M = b2 << c2 | (a2 & (1 << c2) - 1 << 32 - c2) >>> 32 - c2; + return a2 << c2; + } + M = a2 << c2 - 32; + return 0; + } + function xw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if ((b2 | 0) < (a2 | 0) & (a2 | 0) < (b2 + c2 | 0)) { + d2 = a2; + b2 = b2 + c2 | 0; + a2 = a2 + c2 | 0; + while ((c2 | 0) > 0) { + a2 = a2 - 1 | 0; + b2 = b2 - 1 | 0; + c2 = c2 - 1 | 0; + i2[a2 >> 0] = i2[b2 >> 0] | 0; + } + a2 = d2; + } else + vw(a2, b2, c2) | 0; + return a2 | 0; + } + function yw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((c2 | 0) < 32) { + M = b2 >> c2; + return a2 >>> c2 | (b2 & (1 << c2) - 1) << 32 - c2; + } + M = (b2 | 0) < 0 ? -1 : 0; + return b2 >> c2 - 32 | 0; + } + function zw(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = i2[v + (a2 & 255) >> 0] | 0; + if ((b2 | 0) < 8) + return b2 | 0; + b2 = i2[v + (a2 >> 8 & 255) >> 0] | 0; + if ((b2 | 0) < 8) + return b2 + 8 | 0; + b2 = i2[v + (a2 >> 16 & 255) >> 0] | 0; + if ((b2 | 0) < 8) + return b2 + 16 | 0; + return (i2[v + (a2 >>> 24) >> 0] | 0) + 24 | 0; + } + function Aw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + f2 = a2 & 65535; + e2 = b2 & 65535; + c2 = ia(e2, f2) | 0; + d2 = a2 >>> 16; + a2 = (c2 >>> 16) + (ia(e2, d2) | 0) | 0; + e2 = b2 >>> 16; + b2 = ia(e2, f2) | 0; + return (M = (a2 >>> 16) + (ia(e2, d2) | 0) + (((a2 & 65535) + b2 | 0) >>> 16) | 0, a2 + b2 << 16 | c2 & 65535 | 0) | 0; + } + function Bw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0; + j2 = b2 >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; + i3 = ((b2 | 0) < 0 ? -1 : 0) >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; + f2 = d2 >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; + e2 = ((d2 | 0) < 0 ? -1 : 0) >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; + h2 = rw(j2 ^ a2, i3 ^ b2, j2, i3) | 0; + g2 = M; + a2 = f2 ^ j2; + b2 = e2 ^ i3; + return rw((Gw(h2, g2, rw(f2 ^ c2, e2 ^ d2, f2, e2) | 0, M, 0) | 0) ^ a2, M ^ b2, a2, b2) | 0; + } + function Cw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0; + e2 = r; + r = r + 16 | 0; + h2 = e2 | 0; + g2 = b2 >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; + f2 = ((b2 | 0) < 0 ? -1 : 0) >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; + j2 = d2 >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; + i3 = ((d2 | 0) < 0 ? -1 : 0) >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; + a2 = rw(g2 ^ a2, f2 ^ b2, g2, f2) | 0; + b2 = M; + Gw(a2, b2, rw(j2 ^ c2, i3 ^ d2, j2, i3) | 0, M, h2) | 0; + d2 = rw(k[h2 >> 2] ^ g2, k[h2 + 4 >> 2] ^ f2, g2, f2) | 0; + c2 = M; + r = e2; + return (M = c2, d2) | 0; + } + function Dw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = a2; + f2 = c2; + c2 = Aw(e2, f2) | 0; + a2 = M; + return (M = (ia(b2, f2) | 0) + (ia(d2, e2) | 0) + a2 | a2 & 0, c2 | 0 | 0) | 0; + } + function Ew(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + return Gw(a2, b2, c2, d2, 0) | 0; + } + function Fw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + f2 = r; + r = r + 16 | 0; + e2 = f2 | 0; + Gw(a2, b2, c2, d2, e2) | 0; + r = f2; + return (M = k[e2 + 4 >> 2] | 0, k[e2 >> 2] | 0) | 0; + } + function Gw(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + l2 = a2; + i3 = b2; + j2 = i3; + g2 = c2; + n2 = d2; + h2 = n2; + if (!j2) { + f2 = (e2 | 0) != 0; + if (!h2) { + if (f2) { + k[e2 >> 2] = (l2 >>> 0) % (g2 >>> 0); + k[e2 + 4 >> 2] = 0; + } + n2 = 0; + e2 = (l2 >>> 0) / (g2 >>> 0) >>> 0; + return (M = n2, e2) | 0; + } else { + if (!f2) { + n2 = 0; + e2 = 0; + return (M = n2, e2) | 0; + } + k[e2 >> 2] = a2 | 0; + k[e2 + 4 >> 2] = b2 & 0; + n2 = 0; + e2 = 0; + return (M = n2, e2) | 0; + } + } + f2 = (h2 | 0) == 0; + do + if (g2) { + if (!f2) { + f2 = (ka(h2 | 0) | 0) - (ka(j2 | 0) | 0) | 0; + if (f2 >>> 0 <= 31) { + m2 = f2 + 1 | 0; + h2 = 31 - f2 | 0; + b2 = f2 - 31 >> 31; + g2 = m2; + a2 = l2 >>> (m2 >>> 0) & b2 | j2 << h2; + b2 = j2 >>> (m2 >>> 0) & b2; + f2 = 0; + h2 = l2 << h2; + break; + } + if (!e2) { + n2 = 0; + e2 = 0; + return (M = n2, e2) | 0; + } + k[e2 >> 2] = a2 | 0; + k[e2 + 4 >> 2] = i3 | b2 & 0; + n2 = 0; + e2 = 0; + return (M = n2, e2) | 0; + } + f2 = g2 - 1 | 0; + if (f2 & g2) { + h2 = (ka(g2 | 0) | 0) + 33 - (ka(j2 | 0) | 0) | 0; + p2 = 64 - h2 | 0; + m2 = 32 - h2 | 0; + i3 = m2 >> 31; + o2 = h2 - 32 | 0; + b2 = o2 >> 31; + g2 = h2; + a2 = m2 - 1 >> 31 & j2 >>> (o2 >>> 0) | (j2 << m2 | l2 >>> (h2 >>> 0)) & b2; + b2 = b2 & j2 >>> (h2 >>> 0); + f2 = l2 << p2 & i3; + h2 = (j2 << p2 | l2 >>> (o2 >>> 0)) & i3 | l2 << m2 & h2 - 33 >> 31; + break; + } + if (e2) { + k[e2 >> 2] = f2 & l2; + k[e2 + 4 >> 2] = 0; + } + if ((g2 | 0) == 1) { + o2 = i3 | b2 & 0; + p2 = a2 | 0 | 0; + return (M = o2, p2) | 0; + } else { + p2 = zw(g2 | 0) | 0; + o2 = j2 >>> (p2 >>> 0) | 0; + p2 = j2 << 32 - p2 | l2 >>> (p2 >>> 0) | 0; + return (M = o2, p2) | 0; + } + } else { + if (f2) { + if (e2) { + k[e2 >> 2] = (j2 >>> 0) % (g2 >>> 0); + k[e2 + 4 >> 2] = 0; + } + o2 = 0; + p2 = (j2 >>> 0) / (g2 >>> 0) >>> 0; + return (M = o2, p2) | 0; + } + if (!l2) { + if (e2) { + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = (j2 >>> 0) % (h2 >>> 0); + } + o2 = 0; + p2 = (j2 >>> 0) / (h2 >>> 0) >>> 0; + return (M = o2, p2) | 0; + } + f2 = h2 - 1 | 0; + if (!(f2 & h2)) { + if (e2) { + k[e2 >> 2] = a2 | 0; + k[e2 + 4 >> 2] = f2 & j2 | b2 & 0; + } + o2 = 0; + p2 = j2 >>> ((zw(h2 | 0) | 0) >>> 0); + return (M = o2, p2) | 0; + } + f2 = (ka(h2 | 0) | 0) - (ka(j2 | 0) | 0) | 0; + if (f2 >>> 0 <= 30) { + b2 = f2 + 1 | 0; + h2 = 31 - f2 | 0; + g2 = b2; + a2 = j2 << h2 | l2 >>> (b2 >>> 0); + b2 = j2 >>> (b2 >>> 0); + f2 = 0; + h2 = l2 << h2; + break; + } + if (!e2) { + o2 = 0; + p2 = 0; + return (M = o2, p2) | 0; + } + k[e2 >> 2] = a2 | 0; + k[e2 + 4 >> 2] = i3 | b2 & 0; + o2 = 0; + p2 = 0; + return (M = o2, p2) | 0; + } + while (0); + if (!g2) { + j2 = h2; + i3 = 0; + h2 = 0; + } else { + m2 = c2 | 0 | 0; + l2 = n2 | d2 & 0; + j2 = tw(m2 | 0, l2 | 0, -1, -1) | 0; + c2 = M; + i3 = h2; + h2 = 0; + do { + d2 = i3; + i3 = f2 >>> 31 | i3 << 1; + f2 = h2 | f2 << 1; + d2 = a2 << 1 | d2 >>> 31 | 0; + n2 = a2 >>> 31 | b2 << 1 | 0; + rw(j2, c2, d2, n2) | 0; + p2 = M; + o2 = p2 >> 31 | ((p2 | 0) < 0 ? -1 : 0) << 1; + h2 = o2 & 1; + a2 = rw(d2, n2, o2 & m2, (((p2 | 0) < 0 ? -1 : 0) >> 31 | ((p2 | 0) < 0 ? -1 : 0) << 1) & l2) | 0; + b2 = M; + g2 = g2 - 1 | 0; + } while ((g2 | 0) != 0); + j2 = i3; + i3 = 0; + } + g2 = 0; + if (e2) { + k[e2 >> 2] = a2; + k[e2 + 4 >> 2] = b2; + } + o2 = (f2 | 0) >>> 31 | (j2 | g2) << 1 | (g2 << 1 | f2 >>> 31) & 0 | i3; + p2 = (f2 << 1 | 0 >>> 31) & -2 | h2; + return (M = o2, p2) | 0; + } + function Hw(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + return Ib[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0) | 0; + } + function Iw(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + Jb[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0); + } + function Jw(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = +g2; + return Kb[a2 & 3](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, +g2) | 0; + } + function Kw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Lb[a2 & 255](b2 | 0); + } + function Lw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + Mb[a2 & 127](b2 | 0, c2 | 0); + } + function Mw(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + return Nb[a2 & 63](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0) | 0; + } + function Nw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return Ob[a2 & 127](b2 | 0) | 0; + } + function Ow(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + l2 = l2 | 0; + return Pb[a2 & 3](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0, j2 | 0, k2 | 0, l2 | 0) | 0; + } + function Pw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + return Qb[a2 & 63](b2 | 0, c2 | 0, d2 | 0) | 0; + } + function Qw(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2, l2, m2, n2, o2, p2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + p2 = p2 | 0; + Rb[a2 & 3](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0, j2 | 0, k2 | 0, l2 | 0, m2 | 0, n2 | 0, o2 | 0, p2 | 0); + } + function Rw(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + Sb[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0); + } + function Sw(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + Tb[a2 & 7](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0); } - } /* literal or match pair ? */ - - /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ - //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, - // "pendingBuf overflow"); - - } while (lx < s.last_lit); - } - - send_code(s, END_BLOCK, ltree); -} - - -/* =========================================================================== - * Construct one Huffman tree and assigns the code bit strings and lengths. - * Update the total bit length for the current block. - * IN assertion: the field freq is set for all tree elements. - * OUT assertions: the fields len and code are set to the optimal bit length - * and corresponding code. The length opt_len is updated; static_len is - * also updated if stree is not null. The field max_code is set. - */ -function build_tree(s, desc) -// deflate_state *s; -// tree_desc *desc; /* the tree descriptor */ -{ - var tree = desc.dyn_tree; - var stree = desc.stat_desc.static_tree; - var has_stree = desc.stat_desc.has_stree; - var elems = desc.stat_desc.elems; - var n, m; /* iterate over heap elements */ - var max_code = -1; /* largest code with non zero frequency */ - var node; /* new node being created */ - - /* Construct the initial heap, with least frequent element in - * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. - * heap[0] is not used. - */ - s.heap_len = 0; - s.heap_max = HEAP_SIZE; - - for (n = 0; n < elems; n++) { - if (tree[n * 2]/*.Freq*/ !== 0) { - s.heap[++s.heap_len] = max_code = n; - s.depth[n] = 0; - - } else { - tree[n * 2 + 1]/*.Len*/ = 0; - } - } - - /* The pkzip format requires that at least one distance code exists, - * and that at least one bit should be sent even if there is only one - * possible code. So to avoid special checks later on we force at least - * two codes of non zero frequency. - */ - while (s.heap_len < 2) { - node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0); - tree[node * 2]/*.Freq*/ = 1; - s.depth[node] = 0; - s.opt_len--; - - if (has_stree) { - s.static_len -= stree[node * 2 + 1]/*.Len*/; - } - /* node is 0 or 1 so it does not have extra bits */ - } - desc.max_code = max_code; - - /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, - * establish sub-heaps of increasing lengths: - */ - for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); } - - /* Construct the Huffman tree by repeatedly combining the least two - * frequent nodes. - */ - node = elems; /* next internal node of the tree */ - do { - //pqremove(s, tree, n); /* n = node of least frequency */ - /*** pqremove ***/ - n = s.heap[1/*SMALLEST*/]; - s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--]; - pqdownheap(s, tree, 1/*SMALLEST*/); - /***/ - - m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */ - - s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */ - s.heap[--s.heap_max] = m; - - /* Create a new node father of n and m */ - tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/; - s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; - tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node; - - /* and insert the new node in the heap */ - s.heap[1/*SMALLEST*/] = node++; - pqdownheap(s, tree, 1/*SMALLEST*/); - - } while (s.heap_len >= 2); - - s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/]; - - /* At this point, the fields freq and dad are set. We can now - * generate the bit lengths. - */ - gen_bitlen(s, desc); - - /* The field len is now set, we can generate the bit codes */ - gen_codes(tree, max_code, s.bl_count); -} - - -/* =========================================================================== - * Scan a literal or distance tree to determine the frequencies of the codes - * in the bit length tree. - */ -function scan_tree(s, tree, max_code) -// deflate_state *s; -// ct_data *tree; /* the tree to be scanned */ -// int max_code; /* and its largest code of non zero frequency */ -{ - var n; /* iterates over all tree elements */ - var prevlen = -1; /* last emitted length */ - var curlen; /* length of current code */ - - var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */ - - var count = 0; /* repeat count of the current code */ - var max_count = 7; /* max repeat count */ - var min_count = 4; /* min repeat count */ - - if (nextlen === 0) { - max_count = 138; - min_count = 3; - } - tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */ - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; - nextlen = tree[(n + 1) * 2 + 1]/*.Len*/; - - if (++count < max_count && curlen === nextlen) { - continue; - - } else if (count < min_count) { - s.bl_tree[curlen * 2]/*.Freq*/ += count; - - } else if (curlen !== 0) { - - if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; } - s.bl_tree[REP_3_6 * 2]/*.Freq*/++; - - } else if (count <= 10) { - s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++; - - } else { - s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++; - } - - count = 0; - prevlen = curlen; - - if (nextlen === 0) { - max_count = 138; - min_count = 3; - - } else if (curlen === nextlen) { - max_count = 6; - min_count = 3; - - } else { - max_count = 7; - min_count = 4; - } - } -} - - -/* =========================================================================== - * Send a literal or distance tree in compressed form, using the codes in - * bl_tree. - */ -function send_tree(s, tree, max_code) -// deflate_state *s; -// ct_data *tree; /* the tree to be scanned */ -// int max_code; /* and its largest code of non zero frequency */ -{ - var n; /* iterates over all tree elements */ - var prevlen = -1; /* last emitted length */ - var curlen; /* length of current code */ - - var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */ - - var count = 0; /* repeat count of the current code */ - var max_count = 7; /* max repeat count */ - var min_count = 4; /* min repeat count */ - - /* tree[max_code+1].Len = -1; */ /* guard already set */ - if (nextlen === 0) { - max_count = 138; - min_count = 3; - } - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; - nextlen = tree[(n + 1) * 2 + 1]/*.Len*/; - - if (++count < max_count && curlen === nextlen) { - continue; - - } else if (count < min_count) { - do { send_code(s, curlen, s.bl_tree); } while (--count !== 0); - - } else if (curlen !== 0) { - if (curlen !== prevlen) { - send_code(s, curlen, s.bl_tree); - count--; - } - //Assert(count >= 3 && count <= 6, " 3_6?"); - send_code(s, REP_3_6, s.bl_tree); - send_bits(s, count - 3, 2); - - } else if (count <= 10) { - send_code(s, REPZ_3_10, s.bl_tree); - send_bits(s, count - 3, 3); - - } else { - send_code(s, REPZ_11_138, s.bl_tree); - send_bits(s, count - 11, 7); - } - - count = 0; - prevlen = curlen; - if (nextlen === 0) { - max_count = 138; - min_count = 3; - - } else if (curlen === nextlen) { - max_count = 6; - min_count = 3; - - } else { - max_count = 7; - min_count = 4; - } - } -} - - -/* =========================================================================== - * Construct the Huffman tree for the bit lengths and return the index in - * bl_order of the last bit length code to send. - */ -function build_bl_tree(s) { - var max_blindex; /* index of last bit length code of non zero freq */ - - /* Determine the bit length frequencies for literal and distance trees */ - scan_tree(s, s.dyn_ltree, s.l_desc.max_code); - scan_tree(s, s.dyn_dtree, s.d_desc.max_code); - - /* Build the bit length tree: */ - build_tree(s, s.bl_desc); - /* opt_len now includes the length of the tree representations, except - * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. - */ - - /* Determine the number of bit length codes to send. The pkzip format - * requires that at least 4 bit length codes be sent. (appnote.txt says - * 3 but the actual value used is 4.) - */ - for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { - if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) { - break; - } - } - /* Update opt_len to include the bit length tree and counts */ - s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; - //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", - // s->opt_len, s->static_len)); - - return max_blindex; -} - - -/* =========================================================================== - * Send the header for a block using dynamic Huffman trees: the counts, the - * lengths of the bit length codes, the literal tree and the distance tree. - * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. - */ -function send_all_trees(s, lcodes, dcodes, blcodes) -// deflate_state *s; -// int lcodes, dcodes, blcodes; /* number of codes for each tree */ -{ - var rank; /* index in bl_order */ - - //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); - //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, - // "too many codes"); - //Tracev((stderr, "\nbl counts: ")); - send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */ - send_bits(s, dcodes - 1, 5); - send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */ - for (rank = 0; rank < blcodes; rank++) { - //Tracev((stderr, "\nbl code %2d ", bl_order[rank])); - send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3); - } - //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); - - send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */ - //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); - - send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */ - //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); -} - - -/* =========================================================================== - * Check if the data type is TEXT or BINARY, using the following algorithm: - * - TEXT if the two conditions below are satisfied: - * a) There are no non-portable control characters belonging to the - * "black list" (0..6, 14..25, 28..31). - * b) There is at least one printable character belonging to the - * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). - * - BINARY otherwise. - * - The following partially-portable control characters form a - * "gray list" that is ignored in this detection algorithm: - * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). - * IN assertion: the fields Freq of dyn_ltree are set. - */ -function detect_data_type(s) { - /* black_mask is the bit mask of black-listed bytes - * set bits 0..6, 14..25, and 28..31 - * 0xf3ffc07f = binary 11110011111111111100000001111111 - */ - var black_mask = 0xf3ffc07f; - var n; - - /* Check for non-textual ("black-listed") bytes. */ - for (n = 0; n <= 31; n++, black_mask >>>= 1) { - if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) { - return Z_BINARY; - } - } - - /* Check for textual ("white-listed") bytes. */ - if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 || - s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) { - return Z_TEXT; - } - for (n = 32; n < LITERALS; n++) { - if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) { - return Z_TEXT; - } - } - - /* There are no "black-listed" or "white-listed" bytes: - * this stream either is empty or has tolerated ("gray-listed") bytes only. - */ - return Z_BINARY; -} - - -var static_init_done = false; - -/* =========================================================================== - * Initialize the tree data structures for a new zlib stream. - */ -function _tr_init(s) -{ - - if (!static_init_done) { - tr_static_init(); - static_init_done = true; - } - - s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); - s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); - s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); - - s.bi_buf = 0; - s.bi_valid = 0; - - /* Initialize the first block of the first file: */ - init_block(s); -} - - -/* =========================================================================== - * Send a stored block - */ -function _tr_stored_block(s, buf, stored_len, last) -//DeflateState *s; -//charf *buf; /* input block */ -//ulg stored_len; /* length of input block */ -//int last; /* one if this is the last block for a file */ -{ - send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */ - copy_block(s, buf, stored_len, true); /* with header */ -} - - -/* =========================================================================== - * Send one empty static block to give enough lookahead for inflate. - * This takes 10 bits, of which 7 may remain in the bit buffer. - */ -function _tr_align(s) { - send_bits(s, STATIC_TREES << 1, 3); - send_code(s, END_BLOCK, static_ltree); - bi_flush(s); -} - - -/* =========================================================================== - * Determine the best encoding for the current block: dynamic trees, static - * trees or store, and output the encoded block to the zip file. - */ -function _tr_flush_block(s, buf, stored_len, last) -//DeflateState *s; -//charf *buf; /* input block, or NULL if too old */ -//ulg stored_len; /* length of input block */ -//int last; /* one if this is the last block for a file */ -{ - var opt_lenb, static_lenb; /* opt_len and static_len in bytes */ - var max_blindex = 0; /* index of last bit length code of non zero freq */ - - /* Build the Huffman trees unless a stored block is forced */ - if (s.level > 0) { - - /* Check if the file is binary or text */ - if (s.strm.data_type === Z_UNKNOWN) { - s.strm.data_type = detect_data_type(s); - } - - /* Construct the literal and distance trees */ - build_tree(s, s.l_desc); - // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, - // s->static_len)); - - build_tree(s, s.d_desc); - // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, - // s->static_len)); - /* At this point, opt_len and static_len are the total bit lengths of - * the compressed block data, excluding the tree representations. - */ - - /* Build the bit length tree for the above two trees, and get the index - * in bl_order of the last bit length code to send. - */ - max_blindex = build_bl_tree(s); - - /* Determine the best encoding. Compute the block lengths in bytes. */ - opt_lenb = (s.opt_len + 3 + 7) >>> 3; - static_lenb = (s.static_len + 3 + 7) >>> 3; - - // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", - // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, - // s->last_lit)); - - if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; } - - } else { - // Assert(buf != (char*)0, "lost buf"); - opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ - } - - if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) { - /* 4: two words for the lengths */ - - /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. - * Otherwise we can't have processed more than WSIZE input bytes since - * the last block flush, because compression would have been - * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to - * transform a block into a stored block. - */ - _tr_stored_block(s, buf, stored_len, last); - - } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { - - send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3); - compress_block(s, static_ltree, static_dtree); - - } else { - send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3); - send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); - compress_block(s, s.dyn_ltree, s.dyn_dtree); - } - // Assert (s->compressed_len == s->bits_sent, "bad compressed size"); - /* The above check is made mod 2^32, for files larger than 512 MB - * and uLong implemented on 32 bits. - */ - init_block(s); - - if (last) { - bi_windup(s); - } - // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, - // s->compressed_len-7*last)); -} - -/* =========================================================================== - * Save the match info and tally the frequency counts. Return true if - * the current block must be flushed. - */ -function _tr_tally(s, dist, lc) -// deflate_state *s; -// unsigned dist; /* distance of matched string */ -// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ -{ - //var out_length, in_length, dcode; - - s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff; - s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff; - - s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff; - s.last_lit++; - - if (dist === 0) { - /* lc is the unmatched char */ - s.dyn_ltree[lc * 2]/*.Freq*/++; - } else { - s.matches++; - /* Here, lc is the match length - MIN_MATCH */ - dist--; /* dist = match distance - 1 */ - //Assert((ush)dist < (ush)MAX_DIST(s) && - // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && - // (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); - - s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++; - s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++; - } - -// (!) This block is disabled in zlib defaults, -// don't enable it for binary compatibility - -//#ifdef TRUNCATE_BLOCK -// /* Try to guess if it is profitable to stop the current block here */ -// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) { -// /* Compute an upper bound for the compressed length */ -// out_length = s.last_lit*8; -// in_length = s.strstart - s.block_start; -// -// for (dcode = 0; dcode < D_CODES; dcode++) { -// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]); -// } -// out_length >>>= 3; -// //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", -// // s->last_lit, in_length, out_length, -// // 100L - out_length*100L/in_length)); -// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) { -// return true; -// } -// } -//#endif - - return (s.last_lit === s.lit_bufsize - 1); - /* We avoid equality with lit_bufsize because of wraparound at 64K - * on 16 bit machines and because stored blocks are restricted to - * 64K-1 bytes. - */ -} - -exports._tr_init = _tr_init; -exports._tr_stored_block = _tr_stored_block; -exports._tr_flush_block = _tr_flush_block; -exports._tr_tally = _tr_tally; -exports._tr_align = _tr_align; - -},{"../utils/common":19}],31:[function(require,module,exports){ -'use strict'; - -// (C) 1995-2013 Jean-loup Gailly and Mark Adler -// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would be -// appreciated but is not required. -// 2. Altered source versions must be plainly marked as such, and must not be -// misrepresented as being the original software. -// 3. This notice may not be removed or altered from any source distribution. - -function ZStream() { - /* next input byte */ - this.input = null; // JS specific, because we have no pointers - this.next_in = 0; - /* number of bytes available at input */ - this.avail_in = 0; - /* total number of input bytes read so far */ - this.total_in = 0; - /* next output byte should be put there */ - this.output = null; // JS specific, because we have no pointers - this.next_out = 0; - /* remaining free space at output */ - this.avail_out = 0; - /* total number of bytes output so far */ - this.total_out = 0; - /* last error message, NULL if no error */ - this.msg = ''/*Z_NULL*/; - /* not visible by applications */ - this.state = null; - /* best guess about the data type: binary or text */ - this.data_type = 2/*Z_UNKNOWN*/; - /* adler32 value of the uncompressed data */ - this.adler = 0; -} - -module.exports = ZStream; - -},{}],32:[function(require,module,exports){ -(function (process){(function (){ -// 'path' module extracted from Node.js v8.11.1 (only the posix part) -// transplited with Babel - -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -'use strict'; - -function assertPath(path) { - if (typeof path !== 'string') { - throw new TypeError('Path must be a string. Received ' + JSON.stringify(path)); - } -} - -// Resolves . and .. elements in a path with directory names -function normalizeStringPosix(path, allowAboveRoot) { - var res = ''; - var lastSegmentLength = 0; - var lastSlash = -1; - var dots = 0; - var code; - for (var i = 0; i <= path.length; ++i) { - if (i < path.length) - code = path.charCodeAt(i); - else if (code === 47 /*/*/) - break; - else - code = 47 /*/*/; - if (code === 47 /*/*/) { - if (lastSlash === i - 1 || dots === 1) { - // NOOP - } else if (lastSlash !== i - 1 && dots === 2) { - if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) { - if (res.length > 2) { - var lastSlashIndex = res.lastIndexOf('/'); - if (lastSlashIndex !== res.length - 1) { - if (lastSlashIndex === -1) { - res = ''; - lastSegmentLength = 0; + function Tw(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + Ub[a2 & 7](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0, j2 | 0, k2 | 0); + } + function Uw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return Vb[a2 & 63](b2 | 0, c2 | 0) | 0; + } + function Vw(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + return Wb[a2 & 31](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0) | 0; + } + function Ww(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + return +Xb[a2 & 3](b2 | 0, c2 | 0, d2 | 0); + } + function Xw(a2) { + a2 = a2 | 0; + return Yb[a2 & 15]() | 0; + } + function Yw(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + return Zb[a2 & 31](b2 | 0, c2 | 0, d2 | 0, e2 | 0) | 0; + } + function Zw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + _b[a2 & 15](b2 | 0, c2 | 0, d2 | 0); + } + function _w(a2) { + a2 = a2 | 0; + $b[a2 & 7](); + } + function $w(a2, b2, c2, d2, e2, f2, g2, h2, i3) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + return ac[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0) | 0; + } + function ax(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = +f2; + return bc[a2 & 7](b2 | 0, c2 | 0, d2 | 0, e2 | 0, +f2) | 0; + } + function bx(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + cc[a2 & 63](b2 | 0, c2 | 0, d2 | 0, e2 | 0); + } + function cx(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + la(0); + return 0; + } + function dx(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + la(1); + } + function ex(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = +f2; + la(2); + return 0; + } + function fx(a2) { + a2 = a2 | 0; + la(3); + } + function gx(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + la(4); + } + function hx(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + la(5); + return 0; + } + function ix(a2) { + a2 = a2 | 0; + la(6); + return 0; + } + function jx(a2) { + a2 = a2 | 0; + return lb(a2 | 0) | 0; + } + function kx(a2) { + a2 = a2 | 0; + return Ab(a2 | 0) | 0; + } + function lx(a2) { + a2 = a2 | 0; + return qb(a2 | 0) | 0; + } + function mx(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + la(7); + return 0; + } + function nx(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + la(8); + return 0; + } + function ox(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2, l2, m2, n2, o2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + la(9); + } + function px(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + la(10); + } + function qx(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + la(11); + } + function rx(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + la(12); + } + function sx(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + la(13); + return 0; + } + function tx(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + la(14); + return 0; + } + function ux(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + la(15); + return 0; + } + function vx() { + la(16); + return 0; + } + function wx(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + la(17); + return 0; + } + function xx(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + la(18); + } + function yx(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + ub(a2 | 0, b2 | 0, c2 | 0); + } + function zx() { + la(19); + } + function Ax() { + yb(); + } + function Bx() { + eb(); + } + function Cx() { + vb(); + } + function Dx(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + la(20); + return 0; + } + function Ex(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + la(21); + return 0; + } + function Fx(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + la(22); + } + function ni(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 255, 0); + j2 = a2 + 152 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { + j2 = k[8900] | 0; + k[a2 + 4580 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4584 | 0; + d2 = a2 + 4588 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 512) { + if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 512 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4580 | 0; + k[h2 >> 2] = b2 + 256; + g2 = a2 + 160 | 0; + e2 = a2 + 156 | 0; + f2 = -256; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 256) + break; + } + r = l2; + return; + } + function oi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35660; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function pi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35660; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function qi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function ri(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 180 >> 2] = f2; + k[a2 + 184 >> 2] = e2; + zi(a2); + e2 = a2 + 132 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4568 >> 2] = h2; + k[a2 + 4572 >> 2] = 0; + i2[a2 + 4576 >> 0] = l2; + i2[a2 + 4577 >> 0] = 1; + i2[a2 + 4578 >> 0] = 0; + k[a2 + 4580 >> 2] = h2; + k[a2 + 4584 >> 2] = 1; + i2[a2 + 4588 >> 0] = l2; + i2[a2 + 4589 >> 0] = 1; + i2[a2 + 4590 >> 0] = 0; + k[a2 + 4592 >> 2] = 0; + r = g2; + return; + } + function si(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4620 >> 0] = e2 & 1; + b2 = a2 + 156 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + ti(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function ti(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + h2 = a2 + 172 | 0; + y2 = (k[h2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + j2 = k[a2 + 20 >> 2] | 0; + else + j2 = 1; + b2 = ia(j2 << 1, y2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + w2 = 6; + if ((w2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + k[C2 + 8 >> 2] = c2 + b2; + while (1) { + i2[c2 >> 0] = 0; + c2 = (k[D2 >> 2] | 0) + 1 | 0; + k[D2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!j2) + w2 = 19; + else { + if (!(j2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), v2 = x, x = 0, v2 & 1) : 0)) + w2 = 17; + if ((w2 | 0) == 17 ? (d2 = j2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + k[z2 >> 2] = e2; + w2 = e2 + (j2 << 2) | 0; + k[z2 + 8 >> 2] = w2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[B2 >> 2] = w2; + w2 = 19; + break; + } + c2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((w2 | 0) == 19) { + l2 = a2 + 8 | 0; + b2 = k[l2 >> 2] | 0; + b: + do + if ((b2 | 0) > 0) { + m2 = a2 + 4596 | 0; + n2 = ia(j2, y2) | 0; + o2 = n2 + 1 | 0; + p2 = a2 + 4600 | 0; + q2 = a2 + 160 | 0; + s2 = a2 + 168 | 0; + t2 = a2 + 164 | 0; + u2 = a2 + 156 | 0; + v2 = a2 + 88 | 0; + g2 = a2 + 4592 | 0; + if ((j2 | 0) > 0) + f2 = 0; + else { + f2 = 0; + while (1) { + e2 = k[C2 >> 2] | 0; + c2 = e2 + 1 | 0; + k[m2 >> 2] = c2; + d2 = e2 + o2 | 0; + k[p2 >> 2] = d2; + if (!(f2 & 1)) + c2 = o2; + else { + k[m2 >> 2] = d2; + k[p2 >> 2] = c2; + c2 = 1; + } + j2 = k[q2 >> 2] | 0; + if ((j2 | 0) <= (f2 | 0) ? (f2 | 0) < ((k[s2 >> 2] | 0) + j2 | 0) : 0) { + j2 = k[v2 >> 2] | 0; + x = 0; + Ja(k[(k[j2 >> 2] | 0) + 8 >> 2] | 0, j2 | 0, e2 + (c2 + ((k[u2 >> 2] | 0) - n2)) | 0, k[t2 >> 2] | 0, y2 | 0); + j2 = x; + x = 0; + if (j2 & 1) + break; + b2 = k[l2 >> 2] | 0; + } + f2 = f2 + 1 | 0; + if ((f2 | 0) >= (b2 | 0)) { + w2 = 50; + break b; + } + } + c2 = Wa() | 0; + break; + } + c: + while (1) { + c2 = k[C2 >> 2] | 0; + b2 = c2 + 1 | 0; + k[m2 >> 2] = b2; + c2 = c2 + o2 | 0; + k[p2 >> 2] = c2; + if (f2 & 1) { + k[m2 >> 2] = c2; + k[p2 >> 2] = b2; + b2 = c2; + } + e2 = k[z2 >> 2] | 0; + c2 = b2; + d2 = 0; + do { + k[g2 >> 2] = k[e2 + (d2 << 2) >> 2]; + w2 = k[h2 >> 2] | 0; + i2[c2 + w2 >> 0] = i2[c2 + (w2 + -1) >> 0] | 0; + i2[(k[p2 >> 2] | 0) + -1 >> 0] = i2[k[m2 >> 2] >> 0] | 0; + x = 0; + ra(83, a2 | 0, 0); + w2 = x; + x = 0; + if (w2 & 1) { + w2 = 38; + break c; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[g2 >> 2]; + c2 = (k[m2 >> 2] | 0) + y2 | 0; + k[m2 >> 2] = c2; + b2 = k[p2 >> 2] | 0; + k[p2 >> 2] = b2 + y2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (j2 | 0)); + w2 = k[q2 >> 2] | 0; + if (((w2 | 0) <= (f2 | 0) ? (f2 | 0) < ((k[s2 >> 2] | 0) + w2 | 0) : 0) ? (w2 = k[v2 >> 2] | 0, x = 0, Ja(k[(k[w2 >> 2] | 0) + 8 >> 2] | 0, w2 | 0, b2 + (y2 + ((k[u2 >> 2] | 0) - n2)) | 0, k[t2 >> 2] | 0, y2 | 0), w2 = x, x = 0, w2 & 1) : 0) { + w2 = 30; + break; + } + f2 = f2 + 1 | 0; + if ((f2 | 0) >= (k[l2 >> 2] | 0)) { + w2 = 50; + break b; + } + } + if ((w2 | 0) == 30) { + c2 = Wa() | 0; + break; + } else if ((w2 | 0) == 38) { + c2 = Wa() | 0; + break; + } + } else + w2 = 50; + while (0); + do + if ((w2 | 0) == 50) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + function ui(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; + p2 = a2 + 4596 | 0; + c2 = k[p2 >> 2] | 0; + t2 = a2 + 172 | 0; + b2 = k[t2 >> 2] | 0; + if ((b2 | 0) <= 0) + return; + q2 = a2 + 4600 | 0; + r2 = a2 + 4604 | 0; + s2 = a2 + 4592 | 0; + h2 = c2; + f2 = l[c2 + -1 >> 0] | 0; + c2 = l[c2 >> 0] | 0; + o2 = 0; + while (1) { + m2 = k[q2 >> 2] | 0; + g2 = i2[m2 + (o2 + -1) >> 0] | 0; + n2 = g2 & 255; + e2 = o2 + 1 | 0; + d2 = l[h2 + e2 >> 0] | 0; + j2 = k[r2 >> 2] | 0; + h2 = c2 - f2 | 0; + f2 = f2 - n2 | 0; + j2 = ((((i2[j2 + (d2 - c2) >> 0] | 0) * 9 | 0) + (i2[j2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[j2 + f2 >> 0] | 0) | 0; + m2 = m2 + o2 | 0; + if (!j2) { + b2 = wi(a2, g2, m2, b2 - o2 | 0) | 0; + c2 = b2 + o2 | 0; + if ((c2 | 0) != (k[t2 >> 2] | 0)) { + n2 = xi(a2, n2, l[(k[p2 >> 2] | 0) + c2 >> 0] | 0) | 0; + i2[(k[q2 >> 2] | 0) + c2 >> 0] = n2; + n2 = k[s2 >> 2] | 0; + k[s2 >> 2] = (n2 | 0) < 1 ? 0 : n2 + -1 | 0; + b2 = b2 + 1 | 0; + } + e2 = b2 + o2 | 0; + d2 = k[p2 >> 2] | 0; + c2 = l[d2 + (e2 + -1) >> 0] | 0; + d2 = l[d2 + e2 >> 0] | 0; + } else { + b2 = c2 - n2 >> 31; + if ((b2 ^ f2 | 0) < 0) + b2 = c2; + else + b2 = n2 + ((b2 ^ h2 | 0) < 0 ? 0 : h2) | 0; + n2 = vi(a2, j2, l[m2 >> 0] | 0, b2, 0) | 0; + i2[(k[q2 >> 2] | 0) + o2 >> 0] = n2; + } + b2 = k[t2 >> 2] | 0; + if ((b2 | 0) <= (e2 | 0)) + break; + h2 = k[p2 >> 2] | 0; + f2 = c2; + c2 = d2; + o2 = e2; + } + return; + } + function vi(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + l2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 188 + (l2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((c2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 128 | 0; + e2 = k[q2 >> 2] | 0; + if ((c2 & e2 | 0) == (c2 | 0)) + m2 = c2; + else + m2 = e2 & ~(c2 >> 31); + c2 = a2 + 112 | 0; + if ((k[c2 >> 2] | 0) < 8) + qe(a2); + e2 = a2 + 108 | 0; + d2 = k[e2 >> 2] | 0; + f2 = d2 >>> 24; + g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; + if (!g2) { + h2 = k[a2 + 148 >> 2] | 0; + e2 = k[a2 + 140 >> 2] | 0; + c2 = Tg(a2) | 0; + if ((c2 | 0) < (h2 + -1 - e2 | 0)) { + if (b2) + c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; + } else + c2 = (Ug(a2, e2) | 0) + 1 | 0; + c2 = c2 << 31 >> 31 ^ c2 >> 1; + if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; + k[e2 >> 2] = d2 << g2; + c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; + } + h2 = a2 + 136 | 0; + d2 = k[h2 >> 2] | 0; + if (!b2) { + if (!d2) + e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; + else + e2 = 0; + g2 = e2 ^ c2; + } else + g2 = c2; + b2 = k[a2 + 152 >> 2] | 0; + e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; + f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; + c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; + d2 = j[p2 >> 1] | 0; + if ((d2 | 0) == (b2 | 0)) { + e2 = e2 >> 1; + c2 = c2 >> 1; + d2 = b2 >> 1; + } + k[o2 >> 2] = e2; + b2 = d2 + 1 | 0; + j[p2 >> 1] = b2; + e2 = b2 + c2 | 0; + if ((e2 | 0) >= 1) { + if ((c2 | 0) > 0) { + c2 = c2 - b2 | 0; + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + c2 = (c2 | 0) > 0 ? 0 : c2; + } + } else { + c2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); + c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; + } + k[f2 >> 2] = c2; + b2 = k[h2 >> 2] | 0; + d2 = b2 << 1 | 1; + e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; + if ((e2 | 0) >= (0 - b2 | 0)) { + c2 = k[q2 >> 2] | 0; + if ((c2 + b2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; + } else { + e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; + c2 = k[q2 >> 2] | 0; + } + if ((e2 & c2 | 0) == (e2 | 0)) { + a2 = e2; + a2 = a2 & 255; + return a2 | 0; + } + a2 = c2 & ~(e2 >> 31); + a2 = a2 & 255; + return a2 | 0; + } + function wi(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 112 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 4592 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[j2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[j2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + m2 = 8; + break; + } + g2 = k[l2 >> 2] | 0; + n2 = 1 << k[36476 + (g2 << 2) >> 2]; + o2 = d2 - f2 | 0; + o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; + f2 = o2 + f2 | 0; + if ((o2 | 0) == (n2 | 0)) + k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((m2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[l2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Ua(e2 | 0); + fb(o2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + sw(c2 | 0, b2 | 0, e2 | 0) | 0; + return e2 | 0; + } + function xi(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = b2 - c2 | 0; + g2 = a2 + 128 | 0; + d2 = a2 + 136 | 0; + if ((((f2 | 0) > -1 ? f2 : 0 - f2 | 0) | 0) > (k[d2 >> 2] | 0)) { + b2 = ia(yi(a2, a2 + 4568 | 0) | 0, c2 - b2 >> 31 | 1) | 0; + e2 = k[d2 >> 2] | 0; + f2 = e2 << 1 | 1; + b2 = (ia(b2, f2) | 0) + c2 | 0; + if ((b2 | 0) >= (0 - e2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((d2 + e2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, f2) | 0) | 0; + } else { + b2 = (ia(k[a2 + 132 >> 2] | 0, f2) | 0) + b2 | 0; + d2 = k[g2 >> 2] | 0; + } + if ((b2 & d2 | 0) == (b2 | 0)) { + a2 = b2; + a2 = a2 & 255; + return a2 | 0; + } + a2 = d2 & ~(b2 >> 31); + a2 = a2 & 255; + return a2 | 0; + } else { + c2 = yi(a2, a2 + 4580 | 0) | 0; + f2 = k[d2 >> 2] | 0; + e2 = f2 << 1 | 1; + b2 = (ia(e2, c2) | 0) + b2 | 0; + if ((b2 | 0) >= (0 - f2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((d2 + f2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, e2) | 0) | 0; + } else { + b2 = (ia(k[a2 + 132 >> 2] | 0, e2) | 0) + b2 | 0; + d2 = k[g2 >> 2] | 0; + } + if ((b2 & d2 | 0) == (b2 | 0)) { + a2 = b2; + a2 = a2 & 255; + return a2 | 0; + } + a2 = d2 & ~(b2 >> 31); + a2 = a2 & 255; + return a2 | 0; + } + return 0; + } + function yi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + m2 = b2 + 9 | 0; + c2 = l[m2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + g2 = k[a2 + 148 >> 2] | 0; + h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; + c2 = k[a2 + 140 >> 2] | 0; + e2 = Tg(a2) | 0; + do + if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) + if (!d2) { + d2 = k[f2 >> 2] | 0; + a2 = d2 + e2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + j2 = 8; + break; + } else { + h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; + d2 = k[f2 >> 2] | 0; + e2 = h2 + d2 | 0; + g2 = e2 & 1; + c2 = g2; + f2 = 1; + e2 = (g2 + e2 | 0) / 2 | 0; + break; + } + else { + e2 = (Ug(a2, c2) | 0) + 1 | 0; + g2 = k[f2 >> 2] | 0; + a2 = e2 + g2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + if (!d2) { + d2 = g2; + j2 = 8; } else { - res = res.slice(0, lastSlashIndex); - lastSegmentLength = res.length - 1 - res.lastIndexOf('/'); + h2 = e2; + f2 = 1; + e2 = a2; + d2 = g2; } - lastSlash = i; - dots = 0; - continue; } - } else if (res.length === 2 || res.length === 1) { - res = ''; - lastSegmentLength = 0; - lastSlash = i; - dots = 0; - continue; + while (0); + if ((j2 | 0) == 8) { + h2 = e2; + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; + e2 = a2; + } + e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[m2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = d2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[m2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = j2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + function zi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 136 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 128 >> 2] | 0; + b2 = a2 + 144 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 144 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4608 | 0; + d2 = m2 << 1; + e2 = a2 + 4612 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4604 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 184 | 0; + j2 = a2 + 180 | 0; + g2 = a2 + 176 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Ai(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Bi(a2) { + a2 = a2 | 0; + return 50767; + } + function Ci(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + Qm(a2, 50754, 12); + return; + } + function Di(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0; + q2 = r; + r = r + 16 | 0; + s2 = q2; + k[s2 >> 2] = 0; + t2 = s2 + 4 | 0; + k[t2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + o2 = s2 + 8 | 0; + x = 0; + e2 = ta(67, 1) | 0; + n2 = x; + x = 0; + a: + do + if ((!(n2 & 1) ? (n2 = e2 + 1 | 0, i2[e2 >> 0] = c2, k[s2 >> 2] = e2, k[t2 >> 2] = n2, k[o2 >> 2] = n2, x = 0, ra(84, s2 | 0, b2 & 65535 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) ? (x = 0, ra(84, s2 | 0, a2 & 65535 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) { + l2 = d2 & 255; + e2 = k[t2 >> 2] | 0; + c2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= c2 >>> 0) { + b2 = k[s2 >> 2] | 0; + a2 = b2; + g2 = e2 - a2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, s2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + p2 = 52; + break; + } + a2 = k[s2 >> 2] | 0; + c2 = k[o2 >> 2] | 0; + b2 = a2; + } + j2 = b2; + e2 = c2 - j2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + c2 = k[t2 >> 2] | 0; + h2 = c2 - j2 | 0; + if (!e2) { + e2 = 0; + g2 = 0; + } else + p2 = 12; + } else { + h2 = k[t2 >> 2] | 0; + e2 = 2147483647; + c2 = h2; + h2 = h2 - j2 | 0; + p2 = 12; + } + if ((p2 | 0) == 12) { + x = 0; + g2 = ta(67, e2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + p2 = 52; + break; + } + } + i2[g2 + h2 >> 0] = l2; + m2 = c2 - j2 | 0; + n2 = g2 + (h2 - m2) | 0; + vw(n2 | 0, b2 | 0, m2 | 0) | 0; + k[s2 >> 2] = n2; + k[t2 >> 2] = g2 + (h2 + 1); + k[o2 >> 2] = g2 + e2; + if (a2) + mj(a2); + } else { + i2[e2 >> 0] = l2; + k[t2 >> 2] = (k[t2 >> 2] | 0) + 1; + } + b: + do + if ((d2 | 0) > 0) { + n2 = 0; + while (1) { + n2 = n2 + 1 | 0; + m2 = n2 & 255; + e2 = k[t2 >> 2] | 0; + b2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= b2 >>> 0) { + a2 = k[s2 >> 2] | 0; + c2 = a2; + g2 = e2 - c2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, s2 | 0); + l2 = x; + x = 0; + if (l2 & 1) + break; + a2 = k[s2 >> 2] | 0; + c2 = a2; + b2 = k[o2 >> 2] | 0; + } + l2 = a2; + e2 = b2 - l2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + b2 = k[t2 >> 2] | 0; + h2 = b2 - l2 | 0; + if (!e2) { + j2 = 0; + g2 = 0; + } else + p2 = 25; + } else { + h2 = k[t2 >> 2] | 0; + e2 = 2147483647; + b2 = h2; + h2 = h2 - l2 | 0; + p2 = 25; + } + if ((p2 | 0) == 25) { + p2 = 0; + x = 0; + g2 = ta(67, e2 | 0) | 0; + j2 = x; + x = 0; + if (j2 & 1) + break; + else + j2 = e2; + } + i2[g2 + h2 >> 0] = m2; + e2 = g2 + (h2 + 1) | 0; + l2 = b2 - l2 | 0; + m2 = g2 + (h2 - l2) | 0; + vw(m2 | 0, a2 | 0, l2 | 0) | 0; + k[s2 >> 2] = m2; + k[t2 >> 2] = e2; + k[o2 >> 2] = g2 + j2; + if (c2) { + mj(c2); + e2 = k[t2 >> 2] | 0; + } + } else { + i2[e2 >> 0] = m2; + e2 = (k[t2 >> 2] | 0) + 1 | 0; + k[t2 >> 2] = e2; + } + c2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= c2 >>> 0) { + b2 = k[s2 >> 2] | 0; + a2 = b2; + g2 = e2 - a2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, s2 | 0); + m2 = x; + x = 0; + if (m2 & 1) + break; + a2 = k[s2 >> 2] | 0; + c2 = k[o2 >> 2] | 0; + b2 = a2; + } + l2 = b2; + e2 = c2 - l2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + g2 = k[t2 >> 2] | 0; + h2 = g2 - l2 | 0; + if (!e2) { + j2 = 0; + c2 = 0; + } else + p2 = 36; + } else { + h2 = k[t2 >> 2] | 0; + e2 = 2147483647; + g2 = h2; + h2 = h2 - l2 | 0; + p2 = 36; + } + if ((p2 | 0) == 36) { + p2 = 0; + x = 0; + c2 = ta(67, e2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) + break; + else + j2 = e2; + } + i2[c2 + h2 >> 0] = 17; + e2 = c2 + (h2 + 1) | 0; + l2 = g2 - l2 | 0; + m2 = c2 + (h2 - l2) | 0; + vw(m2 | 0, b2 | 0, l2 | 0) | 0; + k[s2 >> 2] = m2; + k[t2 >> 2] = e2; + k[o2 >> 2] = c2 + j2; + if (a2) { + mj(a2); + e2 = k[t2 >> 2] | 0; + } + } else { + i2[e2 >> 0] = 17; + e2 = (k[t2 >> 2] | 0) + 1 | 0; + k[t2 >> 2] = e2; + } + c2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= c2 >>> 0) { + b2 = k[s2 >> 2] | 0; + a2 = b2; + g2 = e2 - a2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, s2 | 0); + m2 = x; + x = 0; + if (m2 & 1) + break; + a2 = k[s2 >> 2] | 0; + c2 = k[o2 >> 2] | 0; + b2 = a2; + } + j2 = b2; + e2 = c2 - j2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + c2 = k[t2 >> 2] | 0; + h2 = c2 - j2 | 0; + if (!e2) { + e2 = 0; + g2 = 0; + } else + p2 = 48; + } else { + h2 = k[t2 >> 2] | 0; + e2 = 2147483647; + c2 = h2; + h2 = h2 - j2 | 0; + p2 = 48; + } + if ((p2 | 0) == 48) { + p2 = 0; + x = 0; + g2 = ta(67, e2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) + break; + } + i2[g2 + h2 >> 0] = 0; + l2 = c2 - j2 | 0; + m2 = g2 + (h2 - l2) | 0; + vw(m2 | 0, b2 | 0, l2 | 0) | 0; + k[s2 >> 2] = m2; + k[t2 >> 2] = g2 + (h2 + 1); + k[o2 >> 2] = g2 + e2; + if (a2) + mj(a2); + } else { + i2[e2 >> 0] = 0; + k[t2 >> 2] = (k[t2 >> 2] | 0) + 1; + } + if ((n2 | 0) >= (d2 | 0)) + break b; + } + f2 = Wa() | 0; + break a; + } + while (0); + x = 0; + h2 = ta(67, 20) | 0; + d2 = x; + x = 0; + if (!(d2 & 1)) { + k[h2 >> 2] = 36800; + i2[h2 + 4 >> 0] = -9; + a2 = h2 + 8 | 0; + k[a2 >> 2] = 0; + g2 = h2 + 12 | 0; + k[g2 >> 2] = 0; + c2 = h2 + 16 | 0; + k[c2 >> 2] = 0; + e2 = k[t2 >> 2] | 0; + d2 = k[s2 >> 2] | 0; + b2 = e2 - d2 | 0; + do + if ((e2 | 0) != (d2 | 0)) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, a2 | 0), d2 = x, x = 0, d2 & 1) : 0)) + p2 = 62; + if ((p2 | 0) == 62 ? (x = 0, f2 = ta(67, b2 | 0) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) { + k[g2 >> 2] = f2; + k[a2 >> 2] = f2; + k[c2 >> 2] = f2 + b2; + e2 = k[s2 >> 2] | 0; + c2 = k[t2 >> 2] | 0; + if ((e2 | 0) == (c2 | 0)) + break; + do { + i2[f2 >> 0] = i2[e2 >> 0] | 0; + f2 = (k[g2 >> 2] | 0) + 1 | 0; + k[g2 >> 2] = f2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) != (c2 | 0)); + e2 = k[s2 >> 2] | 0; + break; + } + f2 = Wa() | 0; + e2 = k[a2 >> 2] | 0; + if (e2) { + if ((k[g2 >> 2] | 0) != (e2 | 0)) + k[g2 >> 2] = e2; + mj(e2); + } + mj(h2); + break a; + } + while (0); + if (!e2) { + r = q2; + return h2 | 0; + } + if ((k[t2 >> 2] | 0) != (e2 | 0)) + k[t2 >> 2] = e2; + mj(e2); + r = q2; + return h2 | 0; + } else + p2 = 52; + } else + p2 = 52; + while (0); + if ((p2 | 0) == 52) + f2 = Wa() | 0; + e2 = k[s2 >> 2] | 0; + if (!e2) + fb(f2 | 0); + if ((k[t2 >> 2] | 0) != (e2 | 0)) + k[t2 >> 2] = e2; + mj(e2); + fb(f2 | 0); + return 0; + } + function Ei(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + t2 = r; + r = r + 32 | 0; + p2 = t2 + 28 | 0; + v2 = t2 + 16 | 0; + s2 = t2 + 4 | 0; + q2 = t2; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + n2 = lj(5) | 0; + k[v2 >> 2] = n2; + o2 = v2 + 8 | 0; + k[o2 >> 2] = n2 + 5; + i2[n2 >> 0] = 74; + i2[n2 + 1 >> 0] = 70; + i2[n2 + 2 >> 0] = 73; + i2[n2 + 3 >> 0] = 70; + i2[n2 + 4 >> 0] = 0; + k[w2 >> 2] = n2 + 5; + x = 0; + ra(84, v2 | 0, k[a2 >> 2] & 65535 | 0); + n2 = x; + x = 0; + a: + do + if (!(n2 & 1)) { + l2 = k[a2 + 4 >> 2] & 255; + b2 = k[w2 >> 2] | 0; + d2 = k[o2 >> 2] | 0; + if (b2 >>> 0 >= d2 >>> 0) { + e2 = k[v2 >> 2] | 0; + f2 = e2; + g2 = b2 - f2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + u2 = 43; + break; + } + f2 = k[v2 >> 2] | 0; + d2 = k[o2 >> 2] | 0; + e2 = f2; + } + j2 = e2; + b2 = d2 - j2 | 0; + if (b2 >>> 0 < 1073741823) { + b2 = b2 << 1; + b2 = b2 >>> 0 < g2 >>> 0 ? g2 : b2; + d2 = k[w2 >> 2] | 0; + h2 = d2 - j2 | 0; + if (!b2) { + b2 = 0; + g2 = 0; + } else + u2 = 10; + } else { + h2 = k[w2 >> 2] | 0; + b2 = 2147483647; + d2 = h2; + h2 = h2 - j2 | 0; + u2 = 10; + } + if ((u2 | 0) == 10) { + x = 0; + g2 = ta(67, b2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + u2 = 43; + break; + } + } + i2[g2 + h2 >> 0] = l2; + m2 = d2 - j2 | 0; + n2 = g2 + (h2 - m2) | 0; + vw(n2 | 0, e2 | 0, m2 | 0) | 0; + k[v2 >> 2] = n2; + k[w2 >> 2] = g2 + (h2 + 1); + k[o2 >> 2] = g2 + b2; + if (f2) + mj(f2); + } else { + i2[b2 >> 0] = l2; + k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; + } + x = 0; + ra(84, v2 | 0, k[a2 + 8 >> 2] & 65535 | 0); + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, ra(84, v2 | 0, k[a2 + 12 >> 2] & 65535 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) { + n2 = a2 + 16 | 0; + m2 = k[n2 >> 2] & 255; + b2 = k[w2 >> 2] | 0; + e2 = k[o2 >> 2] | 0; + if (b2 >>> 0 >= e2 >>> 0) { + f2 = k[v2 >> 2] | 0; + d2 = f2; + g2 = b2 - d2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + l2 = x; + x = 0; + if (l2 & 1) { + u2 = 43; + break; + } + f2 = k[v2 >> 2] | 0; + d2 = f2; + e2 = k[o2 >> 2] | 0; + } + l2 = f2; + b2 = e2 - l2 | 0; + if (b2 >>> 0 < 1073741823) { + b2 = b2 << 1; + b2 = b2 >>> 0 < g2 >>> 0 ? g2 : b2; + g2 = k[w2 >> 2] | 0; + h2 = g2 - l2 | 0; + if (!b2) { + j2 = 0; + e2 = 0; + } else + u2 = 23; + } else { + h2 = k[w2 >> 2] | 0; + b2 = 2147483647; + g2 = h2; + h2 = h2 - l2 | 0; + u2 = 23; + } + if ((u2 | 0) == 23) { + x = 0; + e2 = ta(67, b2 | 0) | 0; + j2 = x; + x = 0; + if (j2 & 1) { + u2 = 43; + break; + } else + j2 = b2; + } + i2[e2 + h2 >> 0] = m2; + b2 = e2 + (h2 + 1) | 0; + l2 = g2 - l2 | 0; + m2 = e2 + (h2 - l2) | 0; + vw(m2 | 0, f2 | 0, l2 | 0) | 0; + k[v2 >> 2] = m2; + k[w2 >> 2] = b2; + k[o2 >> 2] = e2 + j2; + if (d2) { + mj(d2); + b2 = k[w2 >> 2] | 0; + } + } else { + i2[b2 >> 0] = m2; + b2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = b2; + } + m2 = a2 + 20 | 0; + l2 = k[m2 >> 2] & 255; + d2 = k[o2 >> 2] | 0; + if (b2 >>> 0 >= d2 >>> 0) { + e2 = k[v2 >> 2] | 0; + f2 = e2; + g2 = b2 - f2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + j2 = x; + x = 0; + if (j2 & 1) { + u2 = 43; + break; + } + f2 = k[v2 >> 2] | 0; + d2 = k[o2 >> 2] | 0; + e2 = f2; + } + j2 = e2; + b2 = d2 - j2 | 0; + if (b2 >>> 0 < 1073741823) { + b2 = b2 << 1; + b2 = b2 >>> 0 < g2 >>> 0 ? g2 : b2; + d2 = k[w2 >> 2] | 0; + h2 = d2 - j2 | 0; + if (!b2) { + b2 = 0; + g2 = 0; + } else + u2 = 34; + } else { + h2 = k[w2 >> 2] | 0; + b2 = 2147483647; + d2 = h2; + h2 = h2 - j2 | 0; + u2 = 34; + } + if ((u2 | 0) == 34) { + x = 0; + g2 = ta(67, b2 | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + u2 = 43; + break; + } + } + i2[g2 + h2 >> 0] = l2; + l2 = d2 - j2 | 0; + y2 = g2 + (h2 - l2) | 0; + vw(y2 | 0, e2 | 0, l2 | 0) | 0; + k[v2 >> 2] = y2; + k[w2 >> 2] = g2 + (h2 + 1); + k[o2 >> 2] = g2 + b2; + if (f2) + mj(f2); + } else { + i2[b2 >> 0] = l2; + k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; + } + b2 = k[n2 >> 2] | 0; + do + if ((b2 | 0) > 0) { + if (!(k[a2 + 24 >> 2] | 0)) { + k[q2 >> 2] = k[w2 >> 2]; + y2 = 0 + (ia(b2 * 3 | 0, k[m2 >> 2] | 0) | 0) | 0; + x = 0; + k[p2 >> 2] = k[q2 >> 2]; + Ea(15, v2 | 0, p2 | 0, 0, y2 | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + u2 = 43; + break a; + } else + break; + } + d2 = Va(16) | 0; + x = 0; + Fa(5, s2 | 0, 50792, 57); + y2 = x; + x = 0; + if (!(y2 & 1)) { + x = 0; + b2 = Da(1) | 0; + y2 = x; + x = 0; + if (!(y2 & 1) ? (x = 0, Ja(36, d2 | 0, 1, b2 | 0, s2 | 0), y2 = x, x = 0, !(y2 & 1)) : 0) { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } else + c2 = 1; + b2 = Wa() | 0; + Sm(s2); + if (!c2) { + c2 = b2; + break a; + } + } else + b2 = Wa() | 0; + Ua(d2 | 0); + c2 = b2; + break a; + } + while (0); + x = 0; + h2 = ta(67, 20) | 0; + y2 = x; + x = 0; + if (!(y2 & 1)) { + k[h2 >> 2] = 36800; + i2[h2 + 4 >> 0] = -32; + f2 = h2 + 8 | 0; + k[f2 >> 2] = 0; + g2 = h2 + 12 | 0; + k[g2 >> 2] = 0; + d2 = h2 + 16 | 0; + k[d2 >> 2] = 0; + b2 = k[w2 >> 2] | 0; + y2 = k[v2 >> 2] | 0; + e2 = b2 - y2 | 0; + do + if ((b2 | 0) != (y2 | 0)) { + if (!((e2 | 0) < 0 ? (x = 0, qa(178, f2 | 0), y2 = x, x = 0, y2 & 1) : 0)) + u2 = 53; + if ((u2 | 0) == 53 ? (x = 0, c2 = ta(67, e2 | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + k[g2 >> 2] = c2; + k[f2 >> 2] = c2; + k[d2 >> 2] = c2 + e2; + b2 = k[v2 >> 2] | 0; + d2 = k[w2 >> 2] | 0; + if ((b2 | 0) == (d2 | 0)) + break; + do { + i2[c2 >> 0] = i2[b2 >> 0] | 0; + c2 = (k[g2 >> 2] | 0) + 1 | 0; + k[g2 >> 2] = c2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (d2 | 0)); + b2 = k[v2 >> 2] | 0; + break; + } + b2 = Wa() | 0; + c2 = k[f2 >> 2] | 0; + if (c2) { + if ((k[g2 >> 2] | 0) != (c2 | 0)) + k[g2 >> 2] = c2; + mj(c2); + } + mj(h2); + u2 = 44; + break a; + } + while (0); + if (!b2) { + r = t2; + return h2 | 0; + } + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + r = t2; + return h2 | 0; + } else + u2 = 43; + } else + u2 = 43; + } else + u2 = 43; + while (0); + if ((u2 | 0) == 43) { + b2 = Wa() | 0; + u2 = 44; + } + if ((u2 | 0) == 44) + c2 = b2; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + return 0; + } + function Fi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + h2 = r; + r = r + 16 | 0; + l2 = h2; + k[l2 >> 2] = 0; + m2 = l2 + 4 | 0; + k[m2 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + x = 0; + b2 = ta(67, 1) | 0; + g2 = x; + x = 0; + a: + do + if ((((((!(g2 & 1) ? (g2 = b2 + 1 | 0, i2[b2 >> 0] = 1, k[l2 >> 2] = b2, k[m2 >> 2] = g2, k[l2 + 8 >> 2] = g2, x = 0, ra(84, l2 | 0, k[a2 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 4 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 8 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 12 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 16 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, j2 = ta(67, 20) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[j2 >> 2] = 36800; + i2[j2 + 4 >> 0] = -8; + e2 = j2 + 8 | 0; + k[e2 >> 2] = 0; + g2 = j2 + 12 | 0; + k[g2 >> 2] = 0; + a2 = j2 + 16 | 0; + k[a2 >> 2] = 0; + b2 = k[m2 >> 2] | 0; + n2 = k[l2 >> 2] | 0; + d2 = b2 - n2 | 0; + do + if ((b2 | 0) != (n2 | 0)) { + if (!((d2 | 0) < 0 ? (x = 0, qa(178, e2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + f2 = 11; + if ((f2 | 0) == 11 ? (x = 0, c2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[g2 >> 2] = c2; + k[e2 >> 2] = c2; + k[a2 >> 2] = c2 + d2; + b2 = k[l2 >> 2] | 0; + a2 = k[m2 >> 2] | 0; + if ((b2 | 0) == (a2 | 0)) + break; + do { + i2[c2 >> 0] = i2[b2 >> 0] | 0; + c2 = (k[g2 >> 2] | 0) + 1 | 0; + k[g2 >> 2] = c2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (a2 | 0)); + b2 = k[l2 >> 2] | 0; + break; + } + c2 = Wa() | 0; + b2 = k[e2 >> 2] | 0; + if (b2) { + if ((k[g2 >> 2] | 0) != (b2 | 0)) + k[g2 >> 2] = b2; + mj(b2); + } + mj(j2); + break a; + } + while (0); + if (!b2) { + r = h2; + return j2 | 0; + } + if ((k[m2 >> 2] | 0) != (b2 | 0)) + k[m2 >> 2] = b2; + mj(b2); + r = h2; + return j2 | 0; + } else + f2 = 25; + while (0); + if ((f2 | 0) == 25) + c2 = Wa() | 0; + b2 = k[l2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[m2 >> 2] | 0) != (b2 | 0)) + k[m2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + return 0; + } + function Gi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = lj(5) | 0; + i2[f2 >> 0] = 109; + i2[f2 + 1 >> 0] = 114; + i2[f2 + 2 >> 0] = 102; + i2[f2 + 3 >> 0] = 120; + i2[f2 + 4 >> 0] = a2; + x = 0; + e2 = ta(67, 20) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + e2 = Wa() | 0; + mj(f2); + fb(e2 | 0); + } + k[e2 >> 2] = 36800; + i2[e2 + 4 >> 0] = -24; + a2 = e2 + 8 | 0; + k[a2 >> 2] = 0; + b2 = e2 + 12 | 0; + k[b2 >> 2] = 0; + c2 = e2 + 16 | 0; + k[c2 >> 2] = 0; + x = 0; + d2 = ta(67, 5) | 0; + g2 = x; + x = 0; + if (!(g2 & 1)) { + k[b2 >> 2] = d2; + k[a2 >> 2] = d2; + k[c2 >> 2] = d2 + 5; + i2[d2 >> 0] = 109; + g2 = (k[b2 >> 2] | 0) + 1 | 0; + k[b2 >> 2] = g2; + d2 = f2 + 1 | 0; + i2[g2 >> 0] = i2[d2 >> 0] | 0; + g2 = (k[b2 >> 2] | 0) + 1 | 0; + k[b2 >> 2] = g2; + d2 = d2 + 1 | 0; + i2[g2 >> 0] = i2[d2 >> 0] | 0; + g2 = (k[b2 >> 2] | 0) + 1 | 0; + k[b2 >> 2] = g2; + d2 = d2 + 1 | 0; + i2[g2 >> 0] = i2[d2 >> 0] | 0; + g2 = (k[b2 >> 2] | 0) + 1 | 0; + k[b2 >> 2] = g2; + i2[g2 >> 0] = i2[d2 + 1 >> 0] | 0; + k[b2 >> 2] = (k[b2 >> 2] | 0) + 1; + mj(f2); + return e2 | 0; + } + g2 = Wa() | 0; + mj(e2); + mj(f2); + fb(g2 | 0); + return 0; + } + function Hi(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + u2 = r; + r = r + 16 | 0; + v2 = u2; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + s2 = v2 + 8 | 0; + x = 0; + e2 = ta(67, 1) | 0; + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + h2 = e2 + 1 | 0; + q2 = h2; + i2[e2 >> 0] = b2; + k[v2 >> 2] = e2; + k[w2 >> 2] = q2; + k[s2 >> 2] = q2; + if ((b2 | 0) > 0) { + g2 = h2; + q2 = 0; + do { + p2 = q2 + a2 & 255; + if (g2 >>> 0 >= h2 >>> 0) { + e2 = k[v2 >> 2] | 0; + j2 = e2; + g2 = g2 - j2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + o2 = x; + x = 0; + if (o2 & 1) { + t2 = 28; + break; + } + j2 = k[v2 >> 2] | 0; + h2 = k[s2 >> 2] | 0; + o2 = j2; + } else + o2 = e2; + n2 = o2; + e2 = h2 - n2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + h2 = k[w2 >> 2] | 0; + l2 = h2 - n2 | 0; + if (!e2) { + m2 = 0; + g2 = 0; + } else + t2 = 13; + } else { + l2 = k[w2 >> 2] | 0; + e2 = 2147483647; + h2 = l2; + l2 = l2 - n2 | 0; + t2 = 13; + } + if ((t2 | 0) == 13) { + t2 = 0; + x = 0; + g2 = ta(67, e2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + t2 = 28; + break; + } else + m2 = e2; + } + i2[g2 + l2 >> 0] = p2; + e2 = g2 + (l2 + 1) | 0; + n2 = h2 - n2 | 0; + p2 = g2 + (l2 - n2) | 0; + vw(p2 | 0, o2 | 0, n2 | 0) | 0; + k[v2 >> 2] = p2; + k[w2 >> 2] = e2; + k[s2 >> 2] = g2 + m2; + if (j2) { + mj(j2); + e2 = k[w2 >> 2] | 0; + } + } else { + i2[g2 >> 0] = p2; + e2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = e2; + } + h2 = k[s2 >> 2] | 0; + if (e2 >>> 0 >= h2 >>> 0) { + j2 = k[v2 >> 2] | 0; + g2 = j2; + l2 = e2 - g2 + 1 | 0; + if ((l2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 28; + break; + } + j2 = k[v2 >> 2] | 0; + g2 = j2; + h2 = k[s2 >> 2] | 0; + } + n2 = j2; + e2 = h2 - n2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < l2 >>> 0 ? l2 : e2; + l2 = k[w2 >> 2] | 0; + h2 = l2 - n2 | 0; + if (!e2) { + e2 = 0; + m2 = 0; + } else + t2 = 24; + } else { + h2 = k[w2 >> 2] | 0; + e2 = 2147483647; + l2 = h2; + h2 = h2 - n2 | 0; + t2 = 24; + } + if ((t2 | 0) == 24) { + t2 = 0; + x = 0; + m2 = ta(67, e2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 28; + break; + } + } + i2[m2 + h2 >> 0] = 0; + o2 = l2 - n2 | 0; + p2 = m2 + (h2 - o2) | 0; + vw(p2 | 0, j2 | 0, o2 | 0) | 0; + k[v2 >> 2] = p2; + k[w2 >> 2] = m2 + (h2 + 1); + k[s2 >> 2] = m2 + e2; + if (g2) + mj(g2); + } else { + i2[e2 >> 0] = 0; + k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; + } + q2 = q2 + 1 | 0; + g2 = k[w2 >> 2] | 0; + h2 = k[s2 >> 2] | 0; + } while ((q2 | 0) < (b2 | 0)); + if ((t2 | 0) == 28) { + f2 = Wa() | 0; + break; + } + e2 = c2 & 255; + if (g2 >>> 0 < h2 >>> 0) { + i2[g2 >> 0] = e2; + g2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = g2; + } else + t2 = 37; + } else { + g2 = h2; + e2 = c2 & 255; + t2 = 37; + } + if ((t2 | 0) == 37) { + j2 = k[v2 >> 2] | 0; + l2 = j2; + m2 = g2 - l2 + 1 | 0; + if ((m2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + t2 = 29; + break; + } + l2 = k[v2 >> 2] | 0; + h2 = k[s2 >> 2] | 0; + j2 = l2; + } + p2 = j2; + g2 = h2 - p2 | 0; + if (g2 >>> 0 < 1073741823) { + g2 = g2 << 1; + g2 = g2 >>> 0 < m2 >>> 0 ? m2 : g2; + m2 = k[w2 >> 2] | 0; + n2 = m2 - p2 | 0; + if (!g2) { + o2 = 0; + h2 = 0; + } else + t2 = 43; + } else { + n2 = k[w2 >> 2] | 0; + g2 = 2147483647; + m2 = n2; + n2 = n2 - p2 | 0; + t2 = 43; + } + if ((t2 | 0) == 43) { + x = 0; + h2 = ta(67, g2 | 0) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + t2 = 29; + break; + } else + o2 = g2; + } + i2[h2 + n2 >> 0] = e2; + g2 = h2 + (n2 + 1) | 0; + a2 = m2 - p2 | 0; + c2 = h2 + (n2 - a2) | 0; + vw(c2 | 0, j2 | 0, a2 | 0) | 0; + k[v2 >> 2] = c2; + k[w2 >> 2] = g2; + k[s2 >> 2] = h2 + o2; + if (l2) { + mj(l2); + g2 = k[w2 >> 2] | 0; + } + } + p2 = d2 & 255; + e2 = k[s2 >> 2] | 0; + if (g2 >>> 0 >= e2 >>> 0) { + h2 = k[v2 >> 2] | 0; + j2 = h2; + g2 = g2 - j2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + t2 = 29; + break; + } + j2 = k[v2 >> 2] | 0; + e2 = k[s2 >> 2] | 0; + h2 = j2; + } + o2 = h2; + e2 = e2 - o2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + l2 = k[w2 >> 2] | 0; + m2 = l2 - o2 | 0; + if (!e2) { + n2 = 0; + g2 = 0; + } else + t2 = 54; + } else { + m2 = k[w2 >> 2] | 0; + e2 = 2147483647; + l2 = m2; + m2 = m2 - o2 | 0; + t2 = 54; + } + if ((t2 | 0) == 54) { + x = 0; + g2 = ta(67, e2 | 0) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + t2 = 29; + break; + } else + n2 = e2; + } + i2[g2 + m2 >> 0] = p2; + e2 = g2 + (m2 + 1) | 0; + c2 = l2 - o2 | 0; + d2 = g2 + (m2 - c2) | 0; + vw(d2 | 0, h2 | 0, c2 | 0) | 0; + k[v2 >> 2] = d2; + k[w2 >> 2] = e2; + k[s2 >> 2] = g2 + n2; + if (j2) { + mj(j2); + e2 = k[w2 >> 2] | 0; + } + } else { + i2[g2 >> 0] = p2; + e2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = e2; + } + g2 = k[s2 >> 2] | 0; + if (e2 >>> 0 >= g2 >>> 0) { + h2 = k[v2 >> 2] | 0; + j2 = h2; + l2 = e2 - j2 + 1 | 0; + if ((l2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + t2 = 29; + break; + } + j2 = k[v2 >> 2] | 0; + g2 = k[s2 >> 2] | 0; + h2 = j2; + } + n2 = h2; + e2 = g2 - n2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < l2 >>> 0 ? l2 : e2; + g2 = k[w2 >> 2] | 0; + m2 = g2 - n2 | 0; + if (!e2) { + e2 = 0; + l2 = 0; + } else + t2 = 65; + } else { + m2 = k[w2 >> 2] | 0; + e2 = 2147483647; + g2 = m2; + m2 = m2 - n2 | 0; + t2 = 65; + } + if ((t2 | 0) == 65) { + x = 0; + l2 = ta(67, e2 | 0) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + t2 = 29; + break; + } + } + i2[l2 + m2 >> 0] = 0; + c2 = g2 - n2 | 0; + d2 = l2 + (m2 - c2) | 0; + vw(d2 | 0, h2 | 0, c2 | 0) | 0; + k[v2 >> 2] = d2; + k[w2 >> 2] = l2 + (m2 + 1); + k[s2 >> 2] = l2 + e2; + if (j2) + mj(j2); + } else { + i2[e2 >> 0] = 0; + k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; + } + x = 0; + m2 = ta(67, 20) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[m2 >> 2] = 36800; + i2[m2 + 4 >> 0] = -38; + j2 = m2 + 8 | 0; + k[j2 >> 2] = 0; + l2 = m2 + 12 | 0; + k[l2 >> 2] = 0; + g2 = m2 + 16 | 0; + k[g2 >> 2] = 0; + e2 = k[w2 >> 2] | 0; + s2 = k[v2 >> 2] | 0; + h2 = e2 - s2 | 0; + do + if ((e2 | 0) != (s2 | 0)) { + if (!((h2 | 0) < 0 ? (x = 0, qa(178, j2 | 0), s2 = x, x = 0, s2 & 1) : 0)) + t2 = 72; + if ((t2 | 0) == 72 ? (x = 0, f2 = ta(67, h2 | 0) | 0, s2 = x, x = 0, !(s2 & 1)) : 0) { + k[l2 >> 2] = f2; + k[j2 >> 2] = f2; + k[g2 >> 2] = f2 + h2; + e2 = k[v2 >> 2] | 0; + g2 = k[w2 >> 2] | 0; + if ((e2 | 0) == (g2 | 0)) + break; + do { + i2[f2 >> 0] = i2[e2 >> 0] | 0; + f2 = (k[l2 >> 2] | 0) + 1 | 0; + k[l2 >> 2] = f2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) != (g2 | 0)); + e2 = k[v2 >> 2] | 0; + break; + } + f2 = Wa() | 0; + e2 = k[j2 >> 2] | 0; + if (e2) { + if ((k[l2 >> 2] | 0) != (e2 | 0)) + k[l2 >> 2] = e2; + mj(e2); + } + mj(m2); + break a; + } + while (0); + if (!e2) { + r = u2; + return m2 | 0; + } + if ((k[w2 >> 2] | 0) != (e2 | 0)) + k[w2 >> 2] = e2; + mj(e2); + r = u2; + return m2 | 0; + } else + t2 = 29; + } else + t2 = 29; + while (0); + if ((t2 | 0) == 29) + f2 = Wa() | 0; + e2 = k[v2 >> 2] | 0; + if (!e2) + fb(f2 | 0); + if ((k[w2 >> 2] | 0) != (e2 | 0)) + k[w2 >> 2] = e2; + mj(e2); + fb(f2 | 0); + return 0; + } + function Ii(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = (b2 & 65535) >>> 8 & 255; + o2 = a2 + 4 | 0; + c2 = k[o2 >> 2] | 0; + p2 = a2 + 8 | 0; + d2 = k[p2 >> 2] | 0; + if (c2 >>> 0 >= d2 >>> 0) { + e2 = k[a2 >> 2] | 0; + f2 = e2; + g2 = c2 - f2 + 1 | 0; + if ((g2 | 0) < 0) { + jj(a2); + f2 = k[a2 >> 2] | 0; + d2 = k[p2 >> 2] | 0; + e2 = f2; + } + m2 = e2; + c2 = d2 - m2 | 0; + if (c2 >>> 0 < 1073741823) { + c2 = c2 << 1; + c2 = c2 >>> 0 < g2 >>> 0 ? g2 : c2; + g2 = k[o2 >> 2] | 0; + d2 = g2 - m2 | 0; + if (!c2) { + l2 = 0; + j2 = 0; + h2 = d2; + c2 = g2; + } else + q2 = 8; + } else { + d2 = k[o2 >> 2] | 0; + c2 = 2147483647; + g2 = d2; + d2 = d2 - m2 | 0; + q2 = 8; + } + if ((q2 | 0) == 8) { + l2 = c2; + j2 = lj(c2) | 0; + h2 = d2; + c2 = g2; + } + i2[j2 + h2 >> 0] = n2; + d2 = j2 + (h2 + 1) | 0; + m2 = c2 - m2 | 0; + n2 = j2 + (h2 - m2) | 0; + vw(n2 | 0, e2 | 0, m2 | 0) | 0; + k[a2 >> 2] = n2; + k[o2 >> 2] = d2; + k[p2 >> 2] = j2 + l2; + if (f2) { + mj(f2); + d2 = k[o2 >> 2] | 0; + } + } else { + i2[c2 >> 0] = n2; + d2 = (k[o2 >> 2] | 0) + 1 | 0; + k[o2 >> 2] = d2; + } + m2 = b2 & 255; + c2 = k[p2 >> 2] | 0; + if (d2 >>> 0 < c2 >>> 0) { + i2[d2 >> 0] = m2; + k[o2 >> 2] = (k[o2 >> 2] | 0) + 1; + return; + } + e2 = k[a2 >> 2] | 0; + f2 = e2; + d2 = d2 - f2 + 1 | 0; + if ((d2 | 0) < 0) { + jj(a2); + f2 = k[a2 >> 2] | 0; + c2 = k[p2 >> 2] | 0; + e2 = f2; + } + l2 = e2; + c2 = c2 - l2 | 0; + if (c2 >>> 0 < 1073741823) { + c2 = c2 << 1; + c2 = c2 >>> 0 < d2 >>> 0 ? d2 : c2; + g2 = k[o2 >> 2] | 0; + d2 = g2 - l2 | 0; + if (!c2) { + j2 = 0; + h2 = 0; + c2 = g2; + } else + q2 = 18; + } else { + d2 = k[o2 >> 2] | 0; + c2 = 2147483647; + g2 = d2; + d2 = d2 - l2 | 0; + q2 = 18; + } + if ((q2 | 0) == 18) { + j2 = c2; + h2 = lj(c2) | 0; + c2 = g2; + } + i2[h2 + d2 >> 0] = m2; + b2 = c2 - l2 | 0; + q2 = h2 + (d2 - b2) | 0; + vw(q2 | 0, e2 | 0, b2 | 0) | 0; + k[a2 >> 2] = q2; + k[o2 >> 2] = h2 + (d2 + 1); + k[p2 >> 2] = h2 + j2; + if (!f2) + return; + mj(f2); + return; + } + function Ji(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + e2 = k[a2 >> 2] | 0; + q2 = k[b2 >> 2] | 0; + p2 = q2; + j2 = e2; + n2 = c2; + l2 = d2 - n2 | 0; + if ((l2 | 0) <= 0) { + r2 = q2; + return r2 | 0; + } + o2 = a2 + 8 | 0; + b2 = k[o2 >> 2] | 0; + r2 = a2 + 4 | 0; + m2 = k[r2 >> 2] | 0; + f2 = m2; + if ((l2 | 0) <= (b2 - f2 | 0)) { + h2 = f2 - p2 | 0; + if ((l2 | 0) > (h2 | 0)) { + g2 = c2 + h2 | 0; + if ((g2 | 0) == (d2 | 0)) + b2 = m2; + else { + f2 = g2; + b2 = m2; + do { + i2[b2 >> 0] = i2[f2 >> 0] | 0; + b2 = (k[r2 >> 2] | 0) + 1 | 0; + k[r2 >> 2] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + } + if ((h2 | 0) > 0) + h2 = b2; + else { + r2 = q2; + return r2 | 0; + } + } else { + h2 = m2; + g2 = d2; + } + e2 = h2 - (e2 + (l2 - j2 + p2)) | 0; + b2 = q2 + e2 | 0; + if (b2 >>> 0 < m2 >>> 0) { + f2 = h2; + do { + i2[f2 >> 0] = i2[b2 >> 0] | 0; + b2 = b2 + 1 | 0; + f2 = (k[r2 >> 2] | 0) + 1 | 0; + k[r2 >> 2] = f2; + } while ((b2 | 0) != (m2 | 0)); + } + xw(h2 + (0 - e2) | 0, q2 | 0, e2 | 0) | 0; + xw(q2 | 0, c2 | 0, g2 - n2 | 0) | 0; + r2 = q2; + return r2 | 0; + } + f2 = f2 - j2 + l2 | 0; + if ((f2 | 0) < 0) { + jj(a2); + b2 = k[o2 >> 2] | 0; + e2 = k[a2 >> 2] | 0; + } + g2 = e2; + b2 = b2 - g2 | 0; + if (b2 >>> 0 < 1073741823) { + b2 = b2 << 1; + b2 = b2 >>> 0 < f2 >>> 0 ? f2 : b2; + f2 = p2 - g2 | 0; + if (!b2) { + g2 = 0; + l2 = 0; + } else + h2 = 15; + } else { + b2 = 2147483647; + f2 = p2 - g2 | 0; + h2 = 15; + } + if ((h2 | 0) == 15) { + g2 = b2; + l2 = lj(b2) | 0; + } + j2 = l2 + f2 | 0; + b2 = j2; + h2 = l2 + g2 | 0; + if ((c2 | 0) != (d2 | 0)) { + e2 = c2; + g2 = j2; + do { + i2[g2 >> 0] = i2[e2 >> 0] | 0; + g2 = b2 + 1 | 0; + b2 = g2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) != (d2 | 0)); + e2 = k[a2 >> 2] | 0; + } + c2 = p2 - e2 | 0; + d2 = l2 + (f2 - c2) | 0; + vw(d2 | 0, e2 | 0, c2 | 0) | 0; + p2 = (k[r2 >> 2] | 0) - p2 | 0; + c2 = b2; + vw(c2 | 0, q2 | 0, p2 | 0) | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = d2; + k[r2 >> 2] = c2 + p2; + k[o2 >> 2] = h2; + if (!b2) { + r2 = j2; + return r2 | 0; + } + mj(b2); + r2 = j2; + return r2 | 0; + } + function Ki(a2) { + a2 = a2 | 0; + var b2 = 0; + k[a2 >> 2] = 36800; + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) + return; + a2 = a2 + 12 | 0; + if ((k[a2 >> 2] | 0) != (b2 | 0)) + k[a2 >> 2] = b2; + mj(b2); + return; + } + function Li(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36800; + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function Mi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + Ni(b2, -1); + Ni(b2, i2[a2 + 4 >> 0] | 0); + e2 = a2 + 12 | 0; + d2 = a2 + 8 | 0; + a2 = (k[e2 >> 2] | 0) - (k[d2 >> 2] | 0) + 2 | 0; + Ni(b2, (a2 & 65535) >>> 8 & 255); + Ni(b2, a2 & 255); + a2 = k[d2 >> 2] | 0; + if ((k[e2 >> 2] | 0) == (a2 | 0)) + return; + else + c2 = 0; + do { + Ni(b2, i2[a2 + c2 >> 0] | 0); + c2 = c2 + 1 | 0; + a2 = k[d2 >> 2] | 0; + } while (c2 >>> 0 < ((k[e2 >> 2] | 0) - a2 | 0) >>> 0); + return; + } + function Ni(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + e2 = k[a2 + 4 >> 2] | 0; + if (e2) { + c2 = e2 + 24 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[e2 + 28 >> 2] | 0)) { + Vb[k[(k[e2 >> 2] | 0) + 52 >> 2] & 63](e2, b2 & 255) | 0; + return; + } else { + k[c2 >> 2] = d2 + 1; + i2[d2 >> 0] = b2; + return; + } } + c2 = a2 + 16 | 0; + d2 = k[c2 >> 2] | 0; + if (d2 >>> 0 < (k[a2 + 12 >> 2] | 0) >>> 0) { + k[c2 >> 2] = d2 + 1; + i2[(k[a2 + 8 >> 2] | 0) + d2 >> 0] = b2; + return; + } + c2 = Va(16) | 0; + x = 0; + d2 = Da(1) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } + x = 0; + Fa(7, c2 | 0, 4, d2 | 0); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); } - if (allowAboveRoot) { - if (res.length > 0) - res += '/..'; - else - res = '..'; - lastSegmentLength = 2; + function Oi(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + e2 = (b2 | 0) < 4095 ? (b2 + 128 | 0) / 256 | 0 : 16; + f2 = (c2 * 3 | 0) + 2 + e2 | 0; + d2 = c2 + 1 | 0; + f2 = (f2 | 0) < (d2 | 0) | (f2 | 0) > (b2 | 0) ? d2 : f2; + k[a2 + 4 >> 2] = f2; + d2 = (e2 << 2 | 3) + (c2 * 5 | 0) | 0; + d2 = (d2 | 0) > (b2 | 0) | (d2 | 0) < (f2 | 0) ? f2 : d2; + k[a2 + 8 >> 2] = d2; + c2 = (c2 * 7 | 0) + 4 + (e2 * 17 | 0) | 0; + k[a2 + 12 >> 2] = (c2 | 0) > (b2 | 0) | (c2 | 0) < (d2 | 0) ? d2 : c2; + k[a2 >> 2] = b2; + k[a2 + 16 >> 2] = 64; + return; } - } else { - if (res.length > 0) - res += '/' + path.slice(lastSlash + 1, i); - else - res = path.slice(lastSlash + 1, i); - lastSegmentLength = i - lastSlash - 1; - } - lastSlash = i; - dots = 0; - } else if (code === 46 /*.*/ && dots !== -1) { - ++dots; - } else { - dots = -1; - } - } - return res; -} - -function _format(sep, pathObject) { - var dir = pathObject.dir || pathObject.root; - var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || ''); - if (!dir) { - return base; - } - if (dir === pathObject.root) { - return dir + base; - } - return dir + sep + base; -} - -var posix = { - // path.resolve([from ...], to) - resolve: function resolve() { - var resolvedPath = ''; - var resolvedAbsolute = false; - var cwd; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path; - if (i >= 0) - path = arguments[i]; - else { - if (cwd === undefined) - cwd = process.cwd(); - path = cwd; - } - - assertPath(path); - - // Skip empty entries - if (path.length === 0) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute); - - if (resolvedAbsolute) { - if (resolvedPath.length > 0) - return '/' + resolvedPath; - else - return '/'; - } else if (resolvedPath.length > 0) { - return resolvedPath; - } else { - return '.'; - } - }, - - normalize: function normalize(path) { - assertPath(path); - - if (path.length === 0) return '.'; - - var isAbsolute = path.charCodeAt(0) === 47 /*/*/; - var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/; - - // Normalize the path - path = normalizeStringPosix(path, !isAbsolute); - - if (path.length === 0 && !isAbsolute) path = '.'; - if (path.length > 0 && trailingSeparator) path += '/'; - - if (isAbsolute) return '/' + path; - return path; - }, - - isAbsolute: function isAbsolute(path) { - assertPath(path); - return path.length > 0 && path.charCodeAt(0) === 47 /*/*/; - }, - - join: function join() { - if (arguments.length === 0) - return '.'; - var joined; - for (var i = 0; i < arguments.length; ++i) { - var arg = arguments[i]; - assertPath(arg); - if (arg.length > 0) { - if (joined === undefined) - joined = arg; - else - joined += '/' + arg; - } - } - if (joined === undefined) - return '.'; - return posix.normalize(joined); - }, - - relative: function relative(from, to) { - assertPath(from); - assertPath(to); - - if (from === to) return ''; - - from = posix.resolve(from); - to = posix.resolve(to); - - if (from === to) return ''; - - // Trim any leading backslashes - var fromStart = 1; - for (; fromStart < from.length; ++fromStart) { - if (from.charCodeAt(fromStart) !== 47 /*/*/) - break; - } - var fromEnd = from.length; - var fromLen = fromEnd - fromStart; - - // Trim any leading backslashes - var toStart = 1; - for (; toStart < to.length; ++toStart) { - if (to.charCodeAt(toStart) !== 47 /*/*/) - break; - } - var toEnd = to.length; - var toLen = toEnd - toStart; - - // Compare paths to find the longest common path from root - var length = fromLen < toLen ? fromLen : toLen; - var lastCommonSep = -1; - var i = 0; - for (; i <= length; ++i) { - if (i === length) { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === 47 /*/*/) { - // We get here if `from` is the exact base path for `to`. - // For example: from='/foo/bar'; to='/foo/bar/baz' - return to.slice(toStart + i + 1); - } else if (i === 0) { - // We get here if `from` is the root - // For example: from='/'; to='/foo' - return to.slice(toStart + i); - } - } else if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === 47 /*/*/) { - // We get here if `to` is the exact base path for `from`. - // For example: from='/foo/bar/baz'; to='/foo/bar' - lastCommonSep = i; - } else if (i === 0) { - // We get here if `to` is the root. - // For example: from='/foo'; to='/' - lastCommonSep = 0; - } - } - break; - } - var fromCode = from.charCodeAt(fromStart + i); - var toCode = to.charCodeAt(toStart + i); - if (fromCode !== toCode) - break; - else if (fromCode === 47 /*/*/) - lastCommonSep = i; - } - - var out = ''; - // Generate the relative path based on the path difference between `to` - // and `from` - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) { - if (out.length === 0) - out += '..'; - else - out += '/..'; - } - } - - // Lastly, append the rest of the destination (`to`) path that comes after - // the common path parts - if (out.length > 0) - return out + to.slice(toStart + lastCommonSep); - else { - toStart += lastCommonSep; - if (to.charCodeAt(toStart) === 47 /*/*/) - ++toStart; - return to.slice(toStart); - } - }, - - _makeLong: function _makeLong(path) { - return path; - }, - - dirname: function dirname(path) { - assertPath(path); - if (path.length === 0) return '.'; - var code = path.charCodeAt(0); - var hasRoot = code === 47 /*/*/; - var end = -1; - var matchedSlash = true; - for (var i = path.length - 1; i >= 1; --i) { - code = path.charCodeAt(i); - if (code === 47 /*/*/) { - if (!matchedSlash) { - end = i; - break; + function Pi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + l2 = r; + r = r + 128 | 0; + h2 = l2 + 100 | 0; + d2 = l2 + 16 | 0; + c2 = l2 + 112 | 0; + j2 = l2 + 4 | 0; + m2 = l2; + e2 = d2; + f2 = a2 + 20 | 0; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[d2 + 16 >> 2] = k[a2 + 4 >> 2]; + f2 = zc(c2, d2, a2 + 56 | 0) | 0; + c2 = k[(k[f2 >> 2] | 0) + 16 >> 2] | 0; + a2 = a2 + 8 | 0; + x = 0; + k[h2 >> 2] = k[a2 >> 2]; + k[h2 + 4 >> 2] = k[a2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[a2 + 8 >> 2]; + c2 = Aa(c2 | 0, f2 | 0, h2 | 0) | 0; + a2 = x; + x = 0; + do + if (a2 & 1) + c2 = Wa() | 0; + else { + e2 = b2 + 4 | 0; + k[j2 >> 2] = k[e2 >> 2]; + k[j2 + 4 >> 2] = k[e2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[e2 + 8 >> 2]; + e2 = b2 + 16 | 0; + a2 = k[e2 >> 2] | 0; + h2 = j2 + 8 | 0; + k[h2 >> 2] = (k[h2 >> 2] | 0) - a2; + h2 = j2 + 4 | 0; + k[h2 >> 2] = (k[h2 >> 2] | 0) + a2; + h2 = k[(k[f2 >> 2] | 0) + 12 >> 2] | 0; + k[m2 >> 2] = c2; + x = 0; + c2 = Ea(h2 | 0, f2 | 0, m2 | 0, j2 | 0, ((i2[b2 >> 0] | 0) == 0 ? 0 : (k[b2 + 8 >> 2] | 0) + a2 | 0) | 0) | 0; + j2 = x; + x = 0; + if (j2 & 1) { + c2 = Wa() | 0; + d2 = k[m2 >> 2] | 0; + k[m2 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + d2 = k[m2 >> 2] | 0; + k[m2 >> 2] = 0; + if (d2) + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + if (!(k[b2 + 4 >> 2] | 0)) + k[e2 >> 2] = (k[e2 >> 2] | 0) + c2; + if (!f2) { + r = l2; + return; + } + Lb[k[(k[f2 >> 2] | 0) + 4 >> 2] & 255](f2); + r = l2; + return; + } + while (0); + if (!f2) + fb(c2 | 0); + Lb[k[(k[f2 >> 2] | 0) + 4 >> 2] & 255](f2); + fb(c2 | 0); + } + function Qi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = k[b2 >> 2]; + k[a2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[a2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[a2 + 12 >> 0] = 0; + b2 = a2 + 16 | 0; + a2 = b2 + 100 | 0; + do { + k[b2 >> 2] = 0; + b2 = b2 + 4 | 0; + } while ((b2 | 0) < (a2 | 0)); + return; + } + function Ri(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + u2 = r; + r = r + 32 | 0; + t2 = u2 + 4 | 0; + o2 = u2 + 16 | 0; + v2 = u2; + Si(a2); + p2 = a2 + 16 | 0; + e2 = k[a2 + 24 >> 2] | 0; + a: + do + if ((e2 + -2 | 0) >>> 0 <= 14) { + q2 = a2 + 40 | 0; + c2 = k[q2 >> 2] | 0; + if (c2 >>> 0 > 2) + c2 = 5; + else { + s2 = a2 + 32 | 0; + f2 = k[s2 >> 2] | 0; + switch (f2 | 0) { + case 0: { + c2 = 1; + break a; + } + case 4: { + if ((c2 | 0) == 2) { + c2 = 2; + break a; + } + break; + } + case 3: + break; + default: + if (c2) { + c2 = 2; + break a; + } + } + n2 = a2 + 100 | 0; + c2 = a2 + 108 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) < 1) { + d2 = k[p2 >> 2] | 0; + k[c2 >> 2] = d2; + c2 = k[a2 + 20 >> 2] | 0; + k[a2 + 112 >> 2] = c2; + } else + c2 = k[a2 + 112 >> 2] | 0; + j2 = Dw(c2 | 0, ((c2 | 0) < 0) << 31 >> 31 | 0, d2 | 0, ((d2 | 0) < 0) << 31 >> 31 | 0) | 0; + h2 = (e2 + 7 | 0) / 8 | 0; + h2 = Dw(j2 | 0, M | 0, h2 | 0, ((h2 | 0) < 0) << 31 >> 31 | 0) | 0; + j2 = b2 + 4 | 0; + c2 = k[j2 >> 2] | 0; + g2 = b2 + 8 | 0; + if ((c2 | 0) != 0 ? (l2 = k[g2 >> 2] | 0, m2 = Dw(f2 | 0, ((f2 | 0) < 0) << 31 >> 31 | 0, h2 | 0, M | 0) | 0, e2 = M, 0 < (e2 | 0) | 0 == (e2 | 0) & l2 >>> 0 < m2 >>> 0) : 0) { + c2 = Va(16) | 0; + x = 0; + d2 = Da(1) | 0; + v2 = x; + x = 0; + if (!(v2 & 1) ? (x = 0, Fa(7, c2 | 0, 3, d2 | 0), v2 = x, x = 0, !(v2 & 1)) : 0) + ub(c2 | 0, 824, 96); + v2 = Wa() | 0; + Ua(c2 | 0); + fb(v2 | 0); + } + l2 = a2 + 52 | 0; + m2 = a2 + 12 | 0; + if ((f2 | 0) > 0) + f2 = 0; + else { + r = u2; + return; + } + while (1) { + Ti(a2, (f2 | 0) == 0); + d2 = xc(o2, p2, l2) | 0; + e2 = k[(k[d2 >> 2] | 0) + 8 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[b2 >> 2]; + k[t2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[t2 + 8 >> 2] = k[b2 + 8 >> 2]; + e2 = Aa(e2 | 0, d2 | 0, t2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + e2 = 32; + break; + } + w2 = k[(k[d2 >> 2] | 0) + 16 >> 2] | 0; + k[v2 >> 2] = e2; + x = 0; + oa(w2 | 0, d2 | 0, v2 | 0, n2 | 0, a2 | 0, (i2[m2 >> 0] | 0) != 0 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + e2 = 30; + break; + } + e2 = k[v2 >> 2] | 0; + k[v2 >> 2] = 0; + if (e2) + Lb[k[(k[e2 >> 2] | 0) + 4 >> 2] & 255](e2); + if (!c2) + c2 = 0; + else { + c2 = c2 + h2 | 0; + k[j2 >> 2] = c2; + k[g2 >> 2] = (k[g2 >> 2] | 0) - h2; + } + e2 = (k[q2 >> 2] | 0) == 0; + f2 = (e2 & 1) + f2 | 0; + if (d2) + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + if (!e2) { + e2 = 34; + break; + } + if ((f2 | 0) >= (k[s2 >> 2] | 0)) { + e2 = 34; + break; + } + } + if ((e2 | 0) == 30) { + c2 = Wa() | 0; + e2 = k[v2 >> 2] | 0; + k[v2 >> 2] = 0; + if (e2) + Lb[k[(k[e2 >> 2] | 0) + 4 >> 2] & 255](e2); + } else if ((e2 | 0) == 32) { + c2 = Wa() | 0; + if (!d2) { + w2 = c2; + fb(w2 | 0); + } + } else if ((e2 | 0) == 34) { + r = u2; + return; + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + w2 = c2; + fb(w2 | 0); + } + } else + c2 = 2; + while (0); + d2 = Va(16) | 0; + x = 0; + e2 = Da(1) | 0; + w2 = x; + x = 0; + if (!(w2 & 1) ? (x = 0, Fa(7, d2 | 0, c2 | 0, e2 | 0), w2 = x, x = 0, !(w2 & 1)) : 0) + ub(d2 | 0, 824, 96); + w2 = Wa() | 0; + Ua(d2 | 0); + fb(w2 | 0); + } + function Si(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + if ((Wi(a2) | 0) << 24 >> 24 != -40) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + e2 = x; + x = 0; + if (!(e2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), e2 = x, x = 0, !(e2 & 1)) : 0) + ub(b2 | 0, 824, 96); + e2 = Wa() | 0; + Ua(b2 | 0); + fb(e2 | 0); } - } else { - // We saw the first non-path separator - matchedSlash = false; - } - } - - if (end === -1) return hasRoot ? '/' : '.'; - if (hasRoot && end === 1) return '//'; - return path.slice(0, end); - }, - - basename: function basename(path, ext) { - if (ext !== undefined && typeof ext !== 'string') throw new TypeError('"ext" argument must be a string'); - assertPath(path); - - var start = 0; - var end = -1; - var matchedSlash = true; - var i; - - if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { - if (ext.length === path.length && ext === path) return ''; - var extIdx = ext.length - 1; - var firstNonSlashEnd = -1; - for (i = path.length - 1; i >= 0; --i) { - var code = path.charCodeAt(i); - if (code === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; + b2 = Wi(a2) | 0; + if (b2 << 24 >> 24 == -38) + return; + while (1) { + d2 = ((Vi(a2) | 0) & 255) << 8; + d2 = d2 | (Vi(a2) | 0) & 255; + b2 = Xi(a2, b2) | 0; + c2 = -2 - b2 + d2 | 0; + if ((c2 | 0) < 0) break; + if ((c2 | 0) > 0) { + b2 = d2 + -2 - b2 | 0; + c2 = 0; + do { + Vi(a2) | 0; + c2 = c2 + 1 | 0; + } while ((c2 | 0) != (b2 | 0)); } - } else { - if (firstNonSlashEnd === -1) { - // We saw the first non-path separator, remember this index in case - // we need it if the extension ends up not matching - matchedSlash = false; - firstNonSlashEnd = i + 1; - } - if (extIdx >= 0) { - // Try to match the explicit extension - if (code === ext.charCodeAt(extIdx)) { - if (--extIdx === -1) { - // We matched the extension, so mark this as the end of our path - // component - end = i; + b2 = Wi(a2) | 0; + if (b2 << 24 >> 24 == -38) { + e2 = 8; + break; + } + } + if ((e2 | 0) == 8) + return; + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + e2 = x; + x = 0; + if (!(e2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), e2 = x, x = 0, !(e2 & 1)) : 0) + ub(b2 | 0, 824, 96); + e2 = Wa() | 0; + Ua(b2 | 0); + fb(e2 | 0); + } + function Ti(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + if (!b2) { + if ((Vi(a2) | 0) << 24 >> 24 != -1) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 12, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + if ((Vi(a2) | 0) << 24 >> 24 != -38) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + } + Vi(a2) | 0; + Vi(a2) | 0; + c2 = Vi(a2) | 0; + d2 = c2 & 255; + do + if (c2 << 24 >> 24 == 1) { + Vi(a2) | 0; + c2 = 0; + e2 = 20; + } else { + if ((d2 | 0) == (k[a2 + 32 >> 2] | 0)) { + b2 = Vi(a2) | 0; + if (!(c2 << 24 >> 24)) + break; + else { + c2 = 0; + e2 = 20; + break; + } + } + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 2, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + while (0); + if ((e2 | 0) == 20) + while (1) { + Vi(a2) | 0; + c2 = c2 + 1 | 0; + b2 = Vi(a2) | 0; + if ((c2 | 0) == (d2 | 0)) + break; + else + e2 = 20; + } + k[a2 + 36 >> 2] = b2 & 255; + e2 = Vi(a2) | 0; + c2 = a2 + 40 | 0; + k[c2 >> 2] = e2 & 255; + if ((e2 & 255) >= 3) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + if ((Vi(a2) | 0) << 24 >> 24) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + d2 = a2 + 28 | 0; + if (k[d2 >> 2] | 0) + return; + b2 = k[a2 + 108 >> 2] | 0; + if (!b2) + b2 = k[a2 + 16 >> 2] | 0; + if (!(k[c2 >> 2] | 0)) + c2 = 1; + else + c2 = k[a2 + 32 >> 2] | 0; + e2 = ia(c2, b2) | 0; + a2 = ia(e2, ((k[a2 + 24 >> 2] | 0) + 7 | 0) / 8 | 0) | 0; + k[d2 >> 2] = a2; + return; + } + function Ui(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + if ((c2 | 0) <= 0) + return; + n2 = b2 + 4 | 0; + o2 = b2 + 8 | 0; + q2 = 0; + do { + p2 = Vi(a2) | 0; + d2 = k[n2 >> 2] | 0; + e2 = k[o2 >> 2] | 0; + if (d2 >>> 0 >= e2 >>> 0) { + f2 = k[b2 >> 2] | 0; + g2 = f2; + h2 = d2 - g2 + 1 | 0; + if ((h2 | 0) < 0) { + jj(b2); + g2 = k[b2 >> 2] | 0; + e2 = k[o2 >> 2] | 0; + f2 = g2; + } + m2 = f2; + d2 = e2 - m2 | 0; + if (d2 >>> 0 < 1073741823) { + d2 = d2 << 1; + d2 = d2 >>> 0 < h2 >>> 0 ? h2 : d2; + h2 = k[n2 >> 2] | 0; + e2 = h2 - m2 | 0; + if (!d2) { + l2 = 0; + j2 = 0; + d2 = h2; + } else + r2 = 10; + } else { + e2 = k[n2 >> 2] | 0; + d2 = 2147483647; + h2 = e2; + e2 = e2 - m2 | 0; + r2 = 10; } + if ((r2 | 0) == 10) { + r2 = 0; + l2 = d2; + j2 = lj(d2) | 0; + d2 = h2; + } + i2[j2 + e2 >> 0] = p2; + m2 = d2 - m2 | 0; + p2 = j2 + (e2 - m2) | 0; + vw(p2 | 0, f2 | 0, m2 | 0) | 0; + k[b2 >> 2] = p2; + k[n2 >> 2] = j2 + (e2 + 1); + k[o2 >> 2] = j2 + l2; + if (g2) + mj(g2); } else { - // Extension does not match, so our result is the entire path - // component - extIdx = -1; - end = firstNonSlashEnd; + i2[d2 >> 0] = p2; + k[n2 >> 2] = (k[n2 >> 2] | 0) + 1; + } + q2 = q2 + 1 | 0; + } while ((q2 | 0) != (c2 | 0)); + return; + } + function Vi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + c2 = k[a2 >> 2] | 0; + if (c2) { + a2 = c2 + 12 | 0; + b2 = k[a2 >> 2] | 0; + if ((b2 | 0) == (k[c2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[c2 >> 2] | 0) + 40 >> 2] & 127](c2) | 0; + else { + k[a2 >> 2] = b2 + 1; + a2 = l[b2 >> 0] | 0; + } + e2 = a2 & 255; + return e2 | 0; + } + d2 = a2 + 8 | 0; + e2 = k[d2 >> 2] | 0; + if (e2) { + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + c2 = i2[b2 >> 0] | 0; + if (!b2) { + e2 = c2; + return e2 | 0; } + k[a2 >> 2] = b2 + 1; + k[d2 >> 2] = e2 + -1; + e2 = c2; + return e2 | 0; + } + a2 = Va(16) | 0; + x = 0; + b2 = Da(1) | 0; + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa() | 0; + Ua(a2 | 0); + fb(e2 | 0); } + x = 0; + Fa(7, a2 | 0, 4, b2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa() | 0; + Ua(a2 | 0); + fb(e2 | 0); + } else + ub(a2 | 0, 824, 96); + return 0; } - } - - if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length; - return path.slice(start, end); - } else { - for (i = path.length - 1; i >= 0; --i) { - if (path.charCodeAt(i) === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; + function Wi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + c2 = r; + r = r + 176 | 0; + b2 = c2 + 152 | 0; + i3 = c2 + 16 | 0; + g2 = c2; + h2 = Vi(a2) | 0; + d2 = h2 & 255; + if (h2 << 24 >> 24 == -1) { + do + b2 = Vi(a2) | 0; + while (b2 << 24 >> 24 == -1); + r = c2; + return b2 | 0; + } + h2 = i3 + 56 | 0; + f2 = i3 + 4 | 0; + k[i3 >> 2] = 36160; + k[h2 >> 2] = 36180; + x = 0; + ra(62, i3 + 56 | 0, f2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + i3 = Wa() | 0; + qn(h2); + fb(i3 | 0); + } + k[i3 + 128 >> 2] = 0; + k[i3 + 132 >> 2] = -1; + k[i3 >> 2] = 36200; + k[i3 + 56 >> 2] = 36220; + x = 0; + qa(180, f2 | 0); + e2 = x; + x = 0; + do + if (e2 & 1) + b2 = Wa() | 0; + else { + k[f2 >> 2] = 36236; + e2 = i3 + 36 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[i3 + 52 >> 2] = 16; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + x = 0; + ra(63, f2 | 0, b2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + i3 = Wa() | 0; + Sm(b2); + Sm(e2); + xn(f2); + b2 = i3; + break; + } + Sm(b2); + k[i3 + ((k[(k[i3 >> 2] | 0) + -12 >> 2] | 0) + 76) >> 2] = 48; + x = 0; + b2 = va(28, i3 | 0, 50907, 62) | 0; + c2 = x; + x = 0; + if (!(c2 & 1) ? (c2 = b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0, k[c2 >> 2] = k[c2 >> 2] & -75 | 8, c2 = b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0, k[c2 >> 2] = k[c2 >> 2] | 16384, k[b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 12) >> 2] = 2, x = 0, Aa(38, b2 | 0, d2 | 0) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) { + c2 = Va(16) | 0; + x = 0; + ra(64, g2 | 0, f2 | 0); + d2 = x; + x = 0; + if (!(d2 & 1)) { + x = 0; + b2 = Da(1) | 0; + d2 = x; + x = 0; + if (!(d2 & 1) ? (x = 0, Ja(36, c2 | 0, 12, b2 | 0, g2 | 0), d2 = x, x = 0, !(d2 & 1)) : 0) { + x = 0; + Fa(6, c2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(g2); + if (!a2) { + g2 = b2; + k[i3 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + } else + b2 = Wa() | 0; + Ua(c2 | 0); + g2 = b2; + k[i3 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + g2 = Wa() | 0; + k[i3 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); } - } else if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // path component - matchedSlash = false; - end = i + 1; + while (0); + i3 = b2; + qn(h2); + fb(i3 | 0); + return 0; } - } - - if (end === -1) return ''; - return path.slice(start, end); - } - }, - - extname: function extname(path) { - assertPath(path); - var startDot = -1; - var startPart = 0; - var end = -1; - var matchedSlash = true; - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - var preDotState = 0; - for (var i = path.length - 1; i >= 0; --i) { - var code = path.charCodeAt(i); - if (code === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; + function Xi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + c2 = r; + r = r + 320 | 0; + h2 = c2 + 300 | 0; + l2 = c2 + 152 | 0; + i3 = c2 + 288 | 0; + m2 = c2 + 16 | 0; + j2 = c2; + switch (b2 << 24 >> 24) { + case -9: { + n2 = (Vi(a2) | 0) & 255; + k[a2 + 24 >> 2] = n2; + n2 = ((Vi(a2) | 0) & 255) << 8 | (Vi(a2) | 0) & 255; + m2 = ((Vi(a2) | 0) & 255) << 8 | (Vi(a2) | 0) & 255; + k[a2 + 16 >> 2] = m2; + k[a2 + 20 >> 2] = n2; + n2 = (Vi(a2) | 0) & 255; + k[a2 + 32 >> 2] = n2; + n2 = 6; + r = c2; + return n2 | 0; + } + case -8: { + n2 = Yi(a2) | 0; + r = c2; + return n2 | 0; + } + case -24: { + n2 = Zi(a2) | 0; + r = c2; + return n2 | 0; + } + case -53: + case -54: + case -55: + case -57: + case -58: + case -59: + case -61: + case -62: + case -63: + case -64: { + g2 = l2 + 56 | 0; + e2 = l2 + 4 | 0; + k[l2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, l2 + 56 | 0, e2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + n2 = Wa() | 0; + qn(g2); + fb(n2 | 0); + } + k[l2 + 128 >> 2] = 0; + k[l2 + 132 >> 2] = -1; + k[l2 >> 2] = 36200; + k[l2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = l2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[l2 + 52 >> 2] = 16; + k[h2 >> 2] = 0; + k[h2 + 4 >> 2] = 0; + k[h2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, h2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + a2 = Wa() | 0; + Sm(h2); + Sm(f2); + xn(e2); + break; + } + Sm(h2); + x = 0; + a2 = va(28, l2 | 0, 50970, 26) | 0; + m2 = x; + x = 0; + do + if ((!(m2 & 1) ? (x = 0, d2 = Aa(38, a2 | 0, b2 & 255 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (x = 0, va(28, d2 | 0, 50997, 18) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, i3 | 0, e2 | 0); + m2 = x; + x = 0; + if (!(m2 & 1)) { + x = 0; + a2 = Da(1) | 0; + m2 = x; + x = 0; + if (!(m2 & 1) ? (x = 0, Ja(36, d2 | 0, 10, a2 | 0, i3 | 0), m2 = x, x = 0, !(m2 & 1)) : 0) { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } else + c2 = 1; + a2 = Wa() | 0; + Sm(i3); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + n2 = 20; + while (0); + if ((n2 | 0) == 20) + a2 = Wa() | 0; + k[l2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + n2 = a2; + fb(n2 | 0); + } + while (0); + n2 = a2; + qn(g2); + fb(n2 | 0); + } + case -25: + case -32: + case -2: { + n2 = 0; + r = c2; + return n2 | 0; + } + default: { + i3 = m2 + 56 | 0; + f2 = m2 + 4 | 0; + k[m2 >> 2] = 36160; + k[i3 >> 2] = 36180; + x = 0; + ra(62, m2 + 56 | 0, f2 | 0); + l2 = x; + x = 0; + if (l2 & 1) { + n2 = Wa() | 0; + qn(i3); + fb(n2 | 0); + } + k[m2 + 128 >> 2] = 0; + k[m2 + 132 >> 2] = -1; + k[m2 >> 2] = 36200; + k[m2 + 56 >> 2] = 36220; + x = 0; + qa(180, f2 | 0); + l2 = x; + x = 0; + do + if (l2 & 1) + a2 = Wa() | 0; + else { + k[f2 >> 2] = 36236; + g2 = m2 + 36 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[m2 + 52 >> 2] = 16; + k[h2 >> 2] = 0; + k[h2 + 4 >> 2] = 0; + k[h2 + 8 >> 2] = 0; + x = 0; + ra(63, f2 | 0, h2 | 0); + l2 = x; + x = 0; + if (l2 & 1) { + a2 = Wa() | 0; + Sm(h2); + Sm(g2); + xn(f2); + break; + } + Sm(h2); + x = 0; + a2 = va(28, m2 | 0, 51016, 20) | 0; + l2 = x; + x = 0; + do + if ((!(l2 & 1) ? (x = 0, e2 = Aa(38, a2 | 0, b2 & 255 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (x = 0, va(28, e2 | 0, 51037, 13) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, j2 | 0, f2 | 0); + l2 = x; + x = 0; + if (!(l2 & 1)) { + x = 0; + a2 = Da(1) | 0; + l2 = x; + x = 0; + if (!(l2 & 1) ? (x = 0, Ja(36, d2 | 0, 11, a2 | 0, j2 | 0), l2 = x, x = 0, !(l2 & 1)) : 0) { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } else + c2 = 1; + a2 = Wa() | 0; + Sm(j2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + n2 = 40; + while (0); + if ((n2 | 0) == 40) + a2 = Wa() | 0; + k[m2 >> 2] = 36200; + k[i3 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(g2); + xn(f2); + qn(i3); + n2 = a2; + fb(n2 | 0); + } + while (0); + n2 = a2; + qn(i3); + fb(n2 | 0); + } } - continue; + return 0; } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === 46 /*.*/) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) - startDot = i; - else if (preDotState !== 1) - preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if (startDot === -1 || end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { - return ''; - } - return path.slice(startDot, end); - }, - - format: function format(pathObject) { - if (pathObject === null || typeof pathObject !== 'object') { - throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject); - } - return _format('/', pathObject); - }, - - parse: function parse(path) { - assertPath(path); - - var ret = { root: '', dir: '', base: '', ext: '', name: '' }; - if (path.length === 0) return ret; - var code = path.charCodeAt(0); - var isAbsolute = code === 47 /*/*/; - var start; - if (isAbsolute) { - ret.root = '/'; - start = 1; - } else { - start = 0; - } - var startDot = -1; - var startPart = 0; - var end = -1; - var matchedSlash = true; - var i = path.length - 1; - - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - var preDotState = 0; - - // Get non-dir info - for (; i >= start; --i) { - code = path.charCodeAt(i); - if (code === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; + function Yi(a2) { + a2 = a2 | 0; + var b2 = 0; + if ((Vi(a2) | 0) << 24 >> 24 != 1) { + a2 = 1; + return a2 | 0; } - continue; + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 52 >> 2] = b2; + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 56 >> 2] = b2; + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 60 >> 2] = b2; + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 64 >> 2] = b2; + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 68 >> 2] = b2; + a2 = 11; + return a2 | 0; } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === 46 /*.*/) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if (startDot === -1 || end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { - if (end !== -1) { - if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end); - } - } else { - if (startPart === 0 && isAbsolute) { - ret.name = path.slice(1, startDot); - ret.base = path.slice(1, end); - } else { - ret.name = path.slice(startPart, startDot); - ret.base = path.slice(startPart, end); - } - ret.ext = path.slice(startDot, end); - } - - if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/'; - - return ret; - }, - - sep: '/', - delimiter: ':', - win32: null, - posix: null -}; - -posix.posix = posix; - -module.exports = posix; - -}).call(this)}).call(this,require('_process')) -},{"_process":33}],33:[function(require,module,exports){ -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; + function Zi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + c2 = r; + r = r + 16 | 0; + e2 = c2; + k[e2 >> 2] = 0; + f2 = e2 + 4 | 0; + k[f2 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + x = 0; + Fa(9, a2 | 0, e2 | 0, 4); + b2 = x; + x = 0; + a: + do + if (b2 & 1) + d2 = 3; + else { + b2 = k[e2 >> 2] | 0; + b: + do + if (!(yl(b2, 51051, 4) | 0)) { + x = 0; + b2 = ta(69, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + d2 = 3; + break a; + } + b2 = b2 & 255; + switch (b2 | 0) { + case 3: + case 2: + case 1: + case 0: { + k[a2 + 44 >> 2] = b2; + a2 = 5; + b2 = k[e2 >> 2] | 0; + break b; + } + case 5: + case 4: { + b2 = Va(16) | 0; + x = 0; + a2 = Da(1) | 0; + g2 = x; + x = 0; + if (!(g2 & 1) ? (x = 0, Fa(7, b2 | 0, 7, a2 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) { + x = 0; + Fa(6, b2 | 0, 824, 96); + x = 0; + d2 = 3; + break a; + } + a2 = Wa() | 0; + Ua(b2 | 0); + break a; + } + default: { + b2 = Va(16) | 0; + x = 0; + a2 = Da(1) | 0; + g2 = x; + x = 0; + if (!(g2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, a2 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) { + x = 0; + Fa(6, b2 | 0, 824, 96); + x = 0; + d2 = 3; + break a; + } + a2 = Wa() | 0; + Ua(b2 | 0); + break a; + } + } + } else + a2 = 4; + while (0); + if (!b2) { + r = c2; + return a2 | 0; + } + if ((k[f2 >> 2] | 0) != (b2 | 0)) + k[f2 >> 2] = b2; + mj(b2); + r = c2; + return a2 | 0; + } + while (0); + if ((d2 | 0) == 3) + a2 = Wa() | 0; + b2 = k[e2 >> 2] | 0; + if (!b2) + fb(a2 | 0); + if ((k[f2 >> 2] | 0) != (b2 | 0)) + k[f2 >> 2] = b2; + mj(b2); + fb(a2 | 0); + return 0; + } + function _i(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + d2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + k[a2 + d2 >> 2] = 36200; + b2 = a2 + (d2 + 56) | 0; + k[b2 >> 2] = 36220; + c2 = a2 + (d2 + 4) | 0; + k[c2 >> 2] = 36236; + Sm(a2 + (d2 + 36) | 0); + xn(c2); + qn(b2); + return; + } + function $i(a2) { + a2 = a2 | 0; + return; + } + function aj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function bj(a2) { + a2 = a2 | 0; + i2[a2 >> 0] = 0; + a2 = a2 + 4 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[a2 + 20 >> 2] = 0; + k[a2 + 24 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + return; + } + function cj(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2; + b2 = Gi(b2) | 0; + k[f2 >> 2] = b2; + c2 = a2 + 28 | 0; + d2 = k[c2 >> 2] | 0; + if (d2 >>> 0 < (k[a2 + 32 >> 2] | 0) >>> 0) { + k[d2 >> 2] = b2; + k[c2 >> 2] = d2 + 4; + k[f2 >> 2] = 0; + r = e2; + return; + } + x = 0; + ra(57, a2 + 24 | 0, f2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + b2 = Wa() | 0; + c2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + if (!c2) + fb(b2 | 0); + Lb[k[(k[c2 >> 2] | 0) + 4 >> 2] & 255](c2); + fb(b2 | 0); + } else { + b2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + if (!b2) { + r = e2; + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + r = e2; + return; + } + } + function dj(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + d2 = a2 + 4 | 0; + k[d2 >> 2] = k[b2 >> 2]; + k[d2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[d2 + 8 >> 2] = k[b2 + 8 >> 2]; + Ni(a2, -1); + Ni(a2, -40); + d2 = a2 + 28 | 0; + e2 = a2 + 24 | 0; + b2 = k[e2 >> 2] | 0; + if ((k[d2 >> 2] | 0) == (b2 | 0)) { + Ni(a2, -1); + Ni(a2, -39); + a2 = a2 + 16 | 0; + a2 = k[a2 >> 2] | 0; + return a2 | 0; + } else + c2 = 0; + do { + f2 = k[b2 + (c2 << 2) >> 2] | 0; + Mb[k[(k[f2 >> 2] | 0) + 8 >> 2] & 127](f2, a2); + c2 = c2 + 1 | 0; + b2 = k[e2 >> 2] | 0; + } while (c2 >>> 0 < (k[d2 >> 2] | 0) - b2 >> 2 >>> 0); + Ni(a2, -1); + Ni(a2, -39); + f2 = a2 + 16 | 0; + f2 = k[f2 >> 2] | 0; + return f2 | 0; + } + function ej(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + m2 = r; + r = r + 48 | 0; + h2 = m2 + 32 | 0; + e2 = m2 + 12 | 0; + i3 = m2 + 8 | 0; + l2 = m2 + 4 | 0; + n2 = m2; + d2 = c2 + 36 | 0; + do + if (((((k[d2 >> 2] | 0) == 0 ? (k[c2 + 40 >> 2] | 0) == 0 : 0) ? (k[c2 + 44 >> 2] | 0) == 0 : 0) ? (k[c2 + 48 >> 2] | 0) == 0 : 0) ? (k[c2 + 52 >> 2] | 0) == 0 : 0) { + d2 = k[c2 + 8 >> 2] | 0; + if ((d2 | 0) <= 12) { + f2 = a2 + 28 | 0; + g2 = a2 + 32 | 0; + break; + } + Oi(e2, (1 << d2) + -1 | 0, k[c2 + 20 >> 2] | 0); + d2 = Fi(e2) | 0; + k[i3 >> 2] = d2; + f2 = a2 + 28 | 0; + e2 = k[f2 >> 2] | 0; + g2 = a2 + 32 | 0; + if (e2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[e2 >> 2] = d2; + k[f2 >> 2] = e2 + 4; + k[i3 >> 2] = 0; + break; + } + x = 0; + ra(57, a2 + 24 | 0, i3 | 0); + h2 = x; + x = 0; + if (!(h2 & 1)) { + d2 = k[i3 >> 2] | 0; + k[i3 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + c2 = Wa() | 0; + d2 = k[i3 >> 2] | 0; + k[i3 >> 2] = 0; + if (!d2) { + n2 = c2; + fb(n2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + n2 = c2; + fb(n2 | 0); + } else + j2 = 6; + while (0); + do + if ((j2 | 0) == 6) { + d2 = Fi(d2) | 0; + k[h2 >> 2] = d2; + f2 = a2 + 28 | 0; + e2 = k[f2 >> 2] | 0; + g2 = a2 + 32 | 0; + if (e2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[e2 >> 2] = d2; + k[f2 >> 2] = e2 + 4; + k[h2 >> 2] = 0; + break; + } + x = 0; + ra(57, a2 + 24 | 0, h2 | 0); + j2 = x; + x = 0; + if (!(j2 & 1)) { + d2 = k[h2 >> 2] | 0; + k[h2 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + c2 = Wa() | 0; + d2 = k[h2 >> 2] | 0; + k[h2 >> 2] = 0; + if (!d2) { + n2 = c2; + fb(n2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + n2 = c2; + fb(n2 | 0); + } + while (0); + d2 = a2 + 20 | 0; + e2 = (k[d2 >> 2] | 0) + 1 | 0; + k[d2 >> 2] = e2; + d2 = k[c2 + 24 >> 2] | 0; + h2 = (d2 | 0) == 0 ? 1 : k[c2 + 16 >> 2] | 0; + d2 = Hi(e2, h2, k[c2 + 20 >> 2] | 0, d2) | 0; + k[l2 >> 2] = d2; + e2 = k[f2 >> 2] | 0; + do + if (e2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[e2 >> 2] = d2; + k[f2 >> 2] = e2 + 4; + k[l2 >> 2] = 0; + } else { + x = 0; + ra(57, a2 + 24 | 0, l2 | 0); + j2 = x; + x = 0; + if (!(j2 & 1)) { + d2 = k[l2 >> 2] | 0; + k[l2 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + c2 = Wa() | 0; + d2 = k[l2 >> 2] | 0; + k[l2 >> 2] = 0; + if (!d2) { + n2 = c2; + fb(n2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + n2 = c2; + fb(n2 | 0); + } + while (0); + i3 = lj(104) | 0; + k[i3 >> 2] = 36820; + k[i3 + 4 >> 2] = h2; + e2 = i3 + 8 | 0; + k[e2 >> 2] = k[b2 >> 2]; + k[e2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[e2 + 8 >> 2] = k[b2 + 8 >> 2]; + e2 = i3 + 20 | 0; + d2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[c2 >> 2]; + e2 = e2 + 4 | 0; + c2 = c2 + 4 | 0; + } while ((e2 | 0) < (d2 | 0)); + k[n2 >> 2] = i3; + c2 = k[f2 >> 2] | 0; + if (c2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[c2 >> 2] = i3; + k[f2 >> 2] = c2 + 4; + k[n2 >> 2] = 0; + r = m2; + return; + } + x = 0; + ra(57, a2 + 24 | 0, n2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + d2 = k[n2 >> 2] | 0; + k[n2 >> 2] = 0; + if (!d2) { + n2 = c2; + fb(n2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + n2 = c2; + fb(n2 | 0); + } else { + c2 = k[n2 >> 2] | 0; + k[n2 >> 2] = 0; + if (!c2) { + r = m2; + return; + } + Lb[k[(k[c2 >> 2] | 0) + 4 >> 2] & 255](c2); + r = m2; + return; + } } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; + function fj(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2, m2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + var n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0; + p2 = r; + r = r + 96 | 0; + o2 = p2; + n2 = sc(a2, b2, o2, 0) | 0; + if (n2) { + e2 = n2; + r = p2; + return e2 | 0; + } + i2[o2 + 32 >> 0] = 0; + s2 = k[o2 + 8 >> 2] | 0; + u2 = k[o2 >> 2] | 0; + t2 = k[o2 + 4 >> 2] | 0; + n2 = ia(t2, u2) | 0; + q2 = k[o2 + 16 >> 2] | 0; + n2 = ia(ia(n2, (s2 | 0) < 9 ? 1 : 2) | 0, q2) | 0; + k[d2 >> 2] = n2; + n2 = Pl(n2) | 0; + k[c2 >> 2] = n2; + k[e2 >> 2] = u2; + k[f2 >> 2] = t2; + k[g2 >> 2] = s2; + k[h2 >> 2] = k[o2 + 12 >> 2]; + k[j2 >> 2] = q2; + k[l2 >> 2] = k[o2 + 20 >> 2]; + k[m2 >> 2] = k[o2 + 24 >> 2]; + e2 = tc(n2, k[d2 >> 2] | 0, a2, b2, 0, 0) | 0; + r = p2; + return e2 | 0; } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); + function gj(a2, b2, c2, d2, e2, f2, g2, h2, i3) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0; + m2 = r; + r = r + 96 | 0; + j2 = m2 + 4 | 0; + g2 = m2; + l2 = j2; + n2 = l2 + 84 | 0; + do { + k[l2 >> 2] = 0; + l2 = l2 + 4 | 0; + } while ((l2 | 0) < (n2 | 0)); + k[j2 + 16 >> 2] = f2; + k[j2 + 8 >> 2] = e2; + k[j2 >> 2] = c2; + k[j2 + 4 >> 2] = d2; + c2 = Pl(b2) | 0; + k[h2 >> 2] = c2; + k[g2 >> 2] = 0; + c2 = rc(h2, b2, g2, a2, b2, j2, 0) | 0; + k[i3 >> 2] = k[g2 >> 2]; + r = m2; + return c2 | 0; } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); + function hj(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + c2 = r; + r = r + 16 | 0; + k[c2 >> 2] = b2; + b2 = k[9320] | 0; + ml(b2, a2, c2) | 0; + el(10, b2) | 0; + Pa(); } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } + function ij(a2) { + a2 = a2 | 0; + Ta(51337, 51366, 1164, 51442); } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; + function jj(a2) { + a2 = a2 | 0; + Ta(51463, 51486, 303, 51442); } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],34:[function(require,module,exports){ -/** - * 过滤XSS攻击 - * - * @author 老雷 - */ - -/* - * 默认HTML标签白名单 - * 标签名=>属性列表 - */ -var defaultWhiteList = { - h1: [], - h2: [], - h3: [], - h4: [], - h5: [], - h6: [], - hr: [], - span: [], - strong: [], - b: [], - i: [], - br: [], - p: [], - pre: [], - code: [], - a: ['target', 'href', 'title'], - img: ['src', 'alt', 'title', 'width', 'height'], - div: [], - table: ['width', 'border'], - tr: ['rowspan'], - td: ['width', 'colspan'], - th: ['width', 'colspan'], - tbody: [], - thead: [], - ul: [], - li: [], - ol: [], - dl: [], - dt: [], - em: [], - cite: [], - section:[], - header: [], - footer: [], - blockquote: [], - audio: ['autoplay', 'controls', 'loop', 'preload', 'src'], - video: ['autoplay', 'controls', 'loop', 'preload', 'src', 'height', 'width'] -}; - -// 正则表达式 -var REGEXP_LT = //g; -var REGEXP_QUOTE = /"/g; -var REGEXP_ATTR_NAME = /[^a-zA-Z0-9_:\.\-]/img; -var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/img; -var REGEXP_ATTR_VALUE_COLON = /:?/img; -var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/img; -var REGEXP_DEFAULT_ON_TAG_ATTR_1 = /\/\*|\*\//mg; -var REGEXP_DEFAULT_ON_TAG_ATTR_2 = /^[\s"'`]*((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/ig; -var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\/\*|\*\//mg; -var REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/ig; -var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/ig; -var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//ig; - - -/** - * 过滤属性值 - * - * @param {String} tag 标签名 - * @param {String} attr 属性名 - * @param {String} value 属性值 - * @return {String} 若不需要修改属性值,不返回任何值 - */ -function defaultOnTagAttr (tag, attr, value) { - if (attr === 'href' || attr === 'src') { - // 过滤 href 和 src 属性 - // javascript: - REGEXP_DEFAULT_ON_TAG_ATTR_1.lastIndex = 0; - if (REGEXP_DEFAULT_ON_TAG_ATTR_1.test(value)) { - return '#'; - } - // /*注释*/ - REGEXP_DEFAULT_ON_TAG_ATTR_2.lastIndex = 0; - if (REGEXP_DEFAULT_ON_TAG_ATTR_2.test(value)) { - return '#'; - } - // data: - REGEXP_DEFAULT_ON_TAG_ATTR_5.lastIndex = 0; - if (REGEXP_DEFAULT_ON_TAG_ATTR_5.test(value)) { - // 允许 data: image/* 类型 - REGEXP_DEFAULT_ON_TAG_ATTR_6.lastIndex = 0; - if (!REGEXP_DEFAULT_ON_TAG_ATTR_6.test(value)) { - return '#'; - } - } - } else if (attr === 'style') { - // 过滤 style 属性 (这个xss漏洞较老了,可能已经不适用) - // javascript: - REGEXP_DEFAULT_ON_TAG_ATTR_3.lastIndex = 0; - if (REGEXP_DEFAULT_ON_TAG_ATTR_3.test(value)) { - return '#'; - } - // /*注释*/ - REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0; - if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) { - return ''; - } - } -} - -/** - * 过滤非白名单的标签 - * - * @param {String} tag 标签名 - * @param {String} html 标签HTML代码(包括属性值) - * @param {Object} options 更多属性: - * position:在返回的HTML代码中的开始位置 - * originalPosition:在原HTML代码中的开始位置 - * isClosing:是否为闭合标签,如 - * @return {String} 若不返回任何值,则默认替换<>为<> - */ -function defaultOnIgnoreTag (tag, html, options) { - return noTag(html); -} - - -/** - * 转换<>为< > - * - * @param {String} text - * @return {String} - */ -function noTag (text) { - return text.replace(REGEXP_LT, '<').replace(REGEXP_GT, '>'); -} - -/** - * 清除不可见字符 - * - * @param {String} str - * @return {String} - */ -function clearNonPrintableCharacter (str) { - var str2 = ''; - for (var i = 0, len = str.length; i < len; i++) { - str2 += str.charCodeAt(i) < 32 ? ' ' : str.charAt(i); - } - return str2.trim(); -} - -/** - * 对双引号进行转义 - * - * @param {String} str - * @return {String} str - */ -function escapeQuotes (str) { - return str.replace(REGEXP_QUOTE, '"e;'); -} - -/** - * 对html实体编码进行转义 - * - * @param {String} str - * @return {String} - */ -function escapeHtmlEntities (str) { - return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode (str, code) { - return (code[0] === 'x' || code[0] === 'X') - ? String.fromCharCode(parseInt(code.substr(1), 16)) - : String.fromCharCode(parseInt(code, 10)); - }); -} - -/** - * 对html5新增的危险实体编码进行转义 - * - * @param {String} str - * @return {String} - */ -function escapeDangerHtml5Entities (str) { - return str.replace(REGEXP_ATTR_VALUE_COLON, ':') - .replace(REGEXP_ATTR_VALUE_NEWLINE, ' '); -} - -/** - * 对属性值进行转义 - * - * @param {String} str - * @return {String} - */ -function safeAttrValue (str) { - // 去掉两边的空白字符 - str = str.trim(); - - // 过滤双引号 - str = escapeQuotes(str); - - // 转换HTML实体编码 - str = escapeHtmlEntities(str); - - // 转换危险的HTML5新增实体编码 - str = escapeDangerHtml5Entities(str); - - // 清除不可见字符 - str = clearNonPrintableCharacter(str); - - return str; -} - -/** - * XSS过滤对象 - * - * @param {Object} options 选项:whiteList, onTagAttr, onIgnoreTag - */ -function FilterXSS (options) { - 'use strict'; - - this.options = options = options || {}; - this.whiteList = options.whiteList || exports.whiteList; - this.onTagAttr = options.onTagAttr || exports.onTagAttr; - this.onIgnoreTag = options.onIgnoreTag || exports.onIgnoreTag; -} - -/** - * 过滤不合法的属性 - * - * @param {String} tagName 标签名称 - * @param {String} attrs 标签属性部分 - * @return {String} - */ -FilterXSS.prototype.filterAttributes = function (tagName, attrs) { - 'use strict'; - - tagName = tagName.toLowerCase(); - var me = this; - var whites = this.whiteList[tagName]; - var lastPos = 0; - var _attrs = ''; - var tmpName = false; - var hasSprit = false; - - var addAttr = function (name, value) { - name = name.trim(); - if (!hasSprit && name === '/') { - hasSprit = true; - return; - } - name = name.replace(REGEXP_ATTR_NAME, '').toLowerCase(); - if (name.length < 1) return; - if (whites.indexOf(name) !== -1) { - if (value) { - // 先对属性值进行转义 - value = safeAttrValue(value); - // 使用用户自定义的 onTagAttr 再过滤 - var newValue = me.onTagAttr(tagName, name, value); - if (typeof newValue !== 'undefined') { - value = newValue; - } - } - _attrs += name + (value ? '="' + value + '"' : '') + ' '; - } - }; - - for (var i = 0, len = attrs.length; i < len; i++) { - var c = attrs.charAt(i),v; - if (tmpName === false && c === '=') { - tmpName = attrs.slice(lastPos, i); - lastPos = i + 1; - continue; - } - if (tmpName !== false) { - if (i === lastPos && (c === '"' || c === "'")) { - var j = attrs.indexOf(c, i + 1); - if (j === -1) { - break; - } else { - v = attrs.slice(lastPos + 1, j).trim(); - addAttr(tmpName, v); - tmpName = false; - i = j; - lastPos = i + 1; - continue; + function kj() { + var a2 = 0, b2 = 0; + a2 = r; + r = r + 16 | 0; + if (!(mb(37024, 4) | 0)) { + b2 = ib(k[9255] | 0) | 0; + r = a2; + return b2 | 0; + } else + hj(51562, a2); + return 0; } - } - } - if (c === ' ') { - v = attrs.slice(lastPos, i).trim(); - if (tmpName === false) { - addAttr(v); - } else { - addAttr(tmpName, v); - } - tmpName = false; - lastPos = i + 1; - continue; - } - } - - if (lastPos < attrs.length) { - if (tmpName === false) { - addAttr(attrs.slice(lastPos)); - } else { - addAttr(tmpName, attrs.slice(lastPos)); - } - } - if (hasSprit) _attrs += '/'; - - return _attrs.trim(); -}; - -/** - * 检查标签是否合法 - * - * @param {String} tag 标签文本,如“' : '>'); - } else { - var attrs = this.filterAttributes(tagName, tag.slice(i + 1, tag.length - 1).trim()); - rethtml += tag.slice(0, spos) + tagName + (attrs.length > 0 ? ' ' + attrs : '') + '>'; - } - } else { - // 过滤不合法的标签 - var options = { - isClosing: (spos === 2), - position: targetPos, - originalPosition: currentPos - tag.length + 1 - }; - var tagHtml = this.onIgnoreTag(tagName, tag, options); - if (typeof tagHtml === 'undefined') { - tagHtml = noTag(tag); - } - rethtml += tagHtml; - } - - return rethtml; -}; - -/** - * 开始处理 - * - * @param {String} html - * @return {String} - */ -FilterXSS.prototype.process = function (html) { - 'use strict'; - - var rethtml = ''; - var lastPos = 0; - var tagStart = false; - var quoteStart = false; - var currentPos = 0; - var len = 0; - - // 逐个分析字符 - for (currentPos = 0, len = html.length; currentPos < len; currentPos++) { - var c = html.charAt(currentPos); - if (tagStart === false) { - if (c === '<') { - tagStart = currentPos; - continue; - } - } else { - if (quoteStart === false) { - if (c === '<') { - rethtml += noTag(html.slice(lastPos, currentPos)); - tagStart = currentPos; - lastPos = currentPos; - continue; + function lj(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = (a2 | 0) == 0 ? 1 : a2; + a2 = Pl(b2) | 0; + a: + do + if (!a2) { + while (1) { + a2 = uj() | 0; + if (!a2) + break; + $b[a2 & 7](); + a2 = Pl(b2) | 0; + if (a2) + break a; + } + b2 = Va(4) | 0; + k[b2 >> 2] = 36844; + ub(b2 | 0, 592, 78); + } + while (0); + return a2 | 0; } - if (c === '>') { - rethtml += noTag(html.slice(lastPos, tagStart)); - rethtml += this.addNewTag(html.slice(tagStart, currentPos + 1), currentPos, rethtml.length); - lastPos = currentPos + 1; - tagStart = false; - continue; + function mj(a2) { + a2 = a2 | 0; + Ql(a2); + return; } - if (c === '"' || c === "'") { - quoteStart = c; - continue; + function nj(a2) { + a2 = a2 | 0; + mj(a2); + return; } - } else { - if (c === quoteStart) { - quoteStart = false; - continue; + function oj(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36844; + return; } - } - } - } - if (lastPos < html.length) { - rethtml += noTag(html.substr(lastPos)); - } - - return rethtml; -}; - -/** - * XSS过滤 - * - * @param {String} html 要过滤的HTML代码 - * @param {Object} options 选项:whiteList, onTagAttr, onIgnoreTag - * @return {String} - */ -function filterXSS (html, options) { - var xss = new FilterXSS(options); - return xss.process(html); -} - -// 默认配置 -exports = module.exports = filterXSS; -exports.FilterXSS = FilterXSS; -exports.whiteList = defaultWhiteList; -exports.onTagAttr = defaultOnTagAttr; -exports.onIgnoreTag = defaultOnIgnoreTag; - -// 工具函数 -exports.utils = require('./utils'); - -// 在浏览器端使用 -if (typeof window !== 'undefined') { - if(!Array.indexOf){ - Array.prototype.indexOf = function(item){ - for(var i=0;i - */ - -var utils = module.exports; - -/** - * 过滤代码块 - * - * @param {array} tags 要隐藏的标签列表 - * @param {function} next 对不在列表中的标签的处理函数 - */ -utils.tagFilter = function (tags, next) { - if (typeof(next) !== 'function') { - next = function () {}; - } - var hidden = []; - var posStart = false; - return { - onIgnoreTag: function (tag, html, options) { - if (tags.indexOf(tag) !== -1) { - var ret = '[removed]'; - if (posStart !== false && options.isClosing) { - var end = options.position + ret.length; - hidden.push([posStart, end]); - posStart = false; - } else { - posStart = options.position; + function qj(a2) { + a2 = a2 | 0; + mj(a2); + return; } - return ret; - } else { - return next(tag, html, options); - } - }, - filter: function (html) { - var rethtml = ''; - var lastPos = 0; - hidden.forEach(function (pos) { - rethtml += html.slice(lastPos, pos[0]); - lastPos = pos[1]; - }); - rethtml += html.slice(lastPos); - return rethtml; - } - }; -}; - - -},{}],36:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.CompressionUtils = daikon.CompressionUtils || {}; - - -/*** Static Pseudo-constants ***/ - -daikon.CompressionUtils.JPEG_MAGIC_NUMBER = [0xFF, 0xD8]; -daikon.CompressionUtils.JPEG2000_MAGIC_NUMBER = [0xFF, 0x4F, 0xFF, 0x51]; - - -/*** Static methods ***/ - -daikon.CompressionUtils.isHeaderJPEG = function (data) { - if (data) { - if (data.getUint8(0) !== daikon.CompressionUtils.JPEG_MAGIC_NUMBER[0]) { - return false; + function rj(a2) { + a2 = a2 | 0; + return 51611; } - - if (data.getUint8(1) !== daikon.CompressionUtils.JPEG_MAGIC_NUMBER[1]) { - return false; + function sj(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = r; + r = r + 16 | 0; + x = 0; + Ga(a2 | 0); + a2 = x; + x = 0; + if (!(a2 & 1)) { + x = 0; + ra(85, 51626, b2 | 0); + x = 0; + } + a2 = Wa(0) | 0; + cb(a2 | 0) | 0; + x = 0; + ra(85, 51666, b2 + 8 | 0); + x = 0; + a2 = Wa(0) | 0; + x = 0; + Ga(3); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else + oc(a2); } - - return true; - } - - return false; -}; - - -daikon.CompressionUtils.isHeaderJPEG2000 = function (data) { - var ctr; - - if (data) { - for (ctr = 0; ctr < daikon.CompressionUtils.JPEG2000_MAGIC_NUMBER.length; ctr+=1) { - if (data.getUint8(ctr) !== daikon.CompressionUtils.JPEG2000_MAGIC_NUMBER[ctr]) { - return false; - } + function tj() { + var a2 = 0, b2 = 0, c2 = 0; + x = 0; + a2 = Da(2) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + if (((a2 | 0) != 0 ? (b2 = k[a2 >> 2] | 0, (b2 | 0) != 0) : 0) ? (c2 = b2 + 48 | 0, (k[c2 >> 2] & -256 | 0) == 1126902528 ? (k[c2 + 4 >> 2] | 0) == 1129074247 : 0) : 0) + sj(k[b2 + 12 >> 2] | 0); + c2 = k[9208] | 0; + k[9208] = c2 + 0; + sj(c2); } - - return true; - } - - return false; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.CompressionUtils; -} -},{}],37:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; - -/** - * daikon.Dictionary - * @type {{}|*} - */ -daikon.Dictionary = daikon.Dictionary || {}; -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); - - -/*** Static Pseudo-constants ***/ - -daikon.Dictionary.dictPrivate = { - "0207" : { - "101F" : ["FE", "ElscintDataScale"] // uses special Elscint double type (see Tag class) - } -}; - - -daikon.Dictionary.dict = { - "0002" : { - "0001" : ["OB", "FileMetaInformationVersion"], - "0002" : ["UI", "MediaStoredSOPClassUID"], - "0003" : ["UI", "MediaStoredSOPInstanceUID"], - "0010" : ["UI", "TransferSyntaxUID"], - "0012" : ["UI", "ImplementationClassUID"], - "0013" : ["SH", "ImplementationVersionName"], - "0016" : ["AE", "SourceApplicationEntityTitle"], - "0100" : ["UI", "PrivateInformationCreatorUID"], - "0102" : ["OB", "PrivateInformation"] - }, - "0004" : { - "1130" : ["CS", "FilesetID"], - "1141" : ["CS", "FilesetDescriptorFileFileID"], - "1142" : ["CS", "FilesetDescriptorFileFormat"], - "1200" : ["UL", "RootDirectoryEntitysFirstDirectoryRecordOffset"], - "1202" : ["UL", "RootDirectoryEntitysLastDirectoryRecordOffset"], - "1212" : ["US", "File-setConsistenceFlag"], - "1220" : ["SQ", "DirectoryRecordSequence"], - "1400" : ["UL", "NextDirectoryRecordOffset"], - "1410" : ["US", "RecordInuseFlag"], - "1420" : ["UL", "ReferencedLowerlevelDirectoryEntityOffset"], - "1430" : ["CS", "DirectoryRecordType"], - "1432" : ["UI", "PrivateRecordUID"], - "1500" : ["CS", "ReferencedFileID"], - "1510" : ["UI", "ReferencedSOPClassUIDInFile"], - "1511" : ["UI", "ReferencedSOPInstanceUIDInFile"], - "1600" : ["UL", "NumberOfReferences"] - }, - "0008" : { - "0001" : ["UL", "LengthToEnd"], - "0005" : ["CS", "SpecificCharacterSet"], - "0006" : ["SQ", "LanguageCodeSequence"], - "0008" : ["CS", "ImageType"], - "0010" : ["SH", "RecognitionCode"], - "0012" : ["DA", "InstanceCreationDate"], - "0013" : ["TM", "InstanceCreationTime"], - "0014" : ["UI", "InstanceCreatorUID"], - "0016" : ["UI", "SOPClassUID"], - "0018" : ["UI", "SOPInstanceUID"], - "001A" : ["UI", "RelatedGeneralSOPClassUID"], - "001B" : ["UI", "OriginalSpecializedSOPClassUID"], - "0020" : ["DA", "StudyDate"], - "0021" : ["DA", "SeriesDate"], - "0022" : ["DA", "AcquisitionDate"], - "0023" : ["DA", "ContentDate"], - "0024" : ["DA", "OverlayDate"], - "0025" : ["DA", "CurveDate"], - "002A" : ["DT", "AcquisitionDateTime"], - "0030" : ["TM", "StudyTime"], - "0031" : ["TM", "SeriesTime"], - "0032" : ["TM", "AcquisitionTime"], - "0033" : ["TM", "ContentTime"], - "0034" : ["TM", "OverlayTime"], - "0035" : ["TM", "CurveTime"], - "0040" : ["US", "DataSetType"], - "0041" : ["LO", "DataSetSubtype"], - "0042" : ["CS", "NuclearMedicineSeriesType"], - "0050" : ["SH", "AccessionNumber"], - "0051" : ["SQ", "IssuerOfAccessionNumberSequence"], - "0052" : ["CS", "QueryRetrieveLevel"], - "0054" : ["AE", "RetrieveAETitle"], - "0056" : ["CS", "InstanceAvailability"], - "0058" : ["UI", "FailedSOPInstanceUIDList"], - "0060" : ["CS", "Modality"], - "0061" : ["CS", "ModalitiesInStudy"], - "0062" : ["UI", "SOPClassesInStudy"], - "0064" : ["CS", "ConversionType"], - "0068" : ["CS", "PresentationIntentType"], - "0070" : ["LO", "Manufacturer"], - "0080" : ["LO", "InstitutionName"], - "0081" : ["ST", "InstitutionAddress"], - "0082" : ["SQ", "InstitutionCodeSequence"], - "0090" : ["PN", "ReferringPhysicianName"], - "0092" : ["ST", "ReferringPhysicianAddress"], - "0094" : ["SH", "ReferringPhysicianTelephoneNumbers"], - "0096" : ["SQ", "ReferringPhysicianIdentificationSequence"], - "0100" : ["SH", "CodeValue"], - "0102" : ["SH", "CodingSchemeDesignator"], - "0103" : ["SH", "CodingSchemeVersion"], - "0104" : ["LO", "CodeMeaning"], - "0105" : ["CS", "MappingResource"], - "0106" : ["DT", "ContextGroupVersion"], - "0107" : ["DT", "ContextGroupLocalVersion"], - "010B" : ["CS", "ContextGroupExtensionFlag"], - "010C" : ["UI", "CodingSchemeUID"], - "010D" : ["UI", "ContextGroupExtensionCreatorUID"], - "010F" : ["CS", "ContextIdentifier"], - "0110" : ["SQ", "CodingSchemeIdentificationSequence"], - "0112" : ["LO", "CodingSchemeRegistry"], - "0114" : ["ST", "CodingSchemeExternalID"], - "0115" : ["ST", "CodingSchemeName"], - "0116" : ["ST", "CodingSchemeResponsibleOrganization"], - "0117" : ["UI", "ContextUID"], - "0201" : ["SH", "TimezoneOffsetFromUTC"], - "1000" : ["AE", "NetworkID"], - "1010" : ["SH", "StationName"], - "1030" : ["LO", "StudyDescription"], - "1032" : ["SQ", "ProcedureCodeSequence"], - "103E" : ["LO", "SeriesDescription"], - "103F" : ["SQ", "SeriesDescriptionCodeSequence"], - "1040" : ["LO", "InstitutionalDepartmentName"], - "1048" : ["PN", "PhysiciansOfRecord"], - "1049" : ["SQ", "PhysiciansOfRecordIdentificationSequence"], - "1050" : ["PN", "PerformingPhysicianName"], - "1052" : ["SQ", "PerformingPhysicianIdentificationSequence"], - "1060" : ["PN", "NameOfPhysiciansReadingStudy"], - "1062" : ["SQ", "PhysiciansReadingStudyIdentificationSequence"], - "1070" : ["PN", "OperatorsName"], - "1072" : ["SQ", "OperatorIdentificationSequence"], - "1080" : ["LO", "AdmittingDiagnosesDescription"], - "1084" : ["SQ", "AdmittingDiagnosesCodeSequence"], - "1090" : ["LO", "ManufacturerModelName"], - "1100" : ["SQ", "ReferencedResultsSequence"], - "1110" : ["SQ", "ReferencedStudySequence"], - "1111" : ["SQ", "ReferencedPerformedProcedureStepSequence"], - "1115" : ["SQ", "ReferencedSeriesSequence"], - "1120" : ["SQ", "ReferencedPatientSequence"], - "1125" : ["SQ", "ReferencedVisitSequence"], - "1130" : ["SQ", "ReferencedOverlaySequence"], - "1134" : ["SQ", "ReferencedStereometricInstanceSequence"], - "113A" : ["SQ", "ReferencedWaveformSequence"], - "1140" : ["SQ", "ReferencedImageSequence"], - "1145" : ["SQ", "ReferencedCurveSequence"], - "114A" : ["SQ", "ReferencedInstanceSequence"], - "114B" : ["SQ", "ReferencedRealWorldValueMappingInstanceSequence"], - "1150" : ["UI", "ReferencedSOPClassUID"], - "1155" : ["UI", "ReferencedSOPInstanceUID"], - "115A" : ["UI", "SOPClassesSupported"], - "1160" : ["IS", "ReferencedFrameNumber"], - "1161" : ["UL", "SimpleFrameList"], - "1162" : ["UL", "CalculatedFrameList"], - "1163" : ["FD", "TimeRange"], - "1164" : ["SQ", "FrameExtractionSequence"], - "1167" : ["UI", "MultiFrameSourceSOPInstanceUID"], - "1195" : ["UI", "TransactionUID"], - "1197" : ["US", "FailureReason"], - "1198" : ["SQ", "FailedSOPSequence"], - "1199" : ["SQ", "ReferencedSOPSequence"], - "1200" : ["SQ", "StudiesContainingOtherReferencedInstancesSequence"], - "1250" : ["SQ", "RelatedSeriesSequence"], - "2110" : ["CS", "LossyImageCompressionRetired"], - "2111" : ["ST", "DerivationDescription"], - "2112" : ["SQ", "SourceImageSequence"], - "2120" : ["SH", "StageName"], - "2122" : ["IS", "StageNumber"], - "2124" : ["IS", "NumberOfStages"], - "2127" : ["SH", "ViewName"], - "2128" : ["IS", "ViewNumber"], - "2129" : ["IS", "NumberOfEventTimers"], - "212A" : ["IS", "NumberOfViewsInStage"], - "2130" : ["DS", "EventElapsedTimes"], - "2132" : ["LO", "EventTimerNames"], - "2133" : ["SQ", "EventTimerSequence"], - "2134" : ["FD", "EventTimeOffset"], - "2135" : ["SQ", "EventCodeSequence"], - "2142" : ["IS", "StartTrim"], - "2143" : ["IS", "StopTrim"], - "2144" : ["IS", "RecommendedDisplayFrameRate"], - "2200" : ["CS", "TransducerPosition"], - "2204" : ["CS", "TransducerOrientation"], - "2208" : ["CS", "AnatomicStructure"], - "2218" : ["SQ", "AnatomicRegionSequence"], - "2220" : ["SQ", "AnatomicRegionModifierSequence"], - "2228" : ["SQ", "PrimaryAnatomicStructureSequence"], - "2229" : ["SQ", "AnatomicStructureSpaceOrRegionSequence"], - "2230" : ["SQ", "PrimaryAnatomicStructureModifierSequence"], - "2240" : ["SQ", "TransducerPositionSequence"], - "2242" : ["SQ", "TransducerPositionModifierSequence"], - "2244" : ["SQ", "TransducerOrientationSequence"], - "2246" : ["SQ", "TransducerOrientationModifierSequence"], - "2251" : ["SQ", "AnatomicStructureSpaceOrRegionCodeSequenceTrial"], - "2253" : ["SQ", "AnatomicPortalOfEntranceCodeSequenceTrial"], - "2255" : ["SQ", "AnatomicApproachDirectionCodeSequenceTrial"], - "2256" : ["ST", "AnatomicPerspectiveDescriptionTrial"], - "2257" : ["SQ", "AnatomicPerspectiveCodeSequenceTrial"], - "2258" : ["ST", "AnatomicLocationOfExaminingInstrumentDescriptionTrial"], - "2259" : ["SQ", "AnatomicLocationOfExaminingInstrumentCodeSequenceTrial"], - "225A" : ["SQ", "AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial"], - "225C" : ["SQ", "OnAxisBackgroundAnatomicStructureCodeSequenceTrial"], - "3001" : ["SQ", "AlternateRepresentationSequence"], - "3010" : ["UI", "IrradiationEventUID"], - "4000" : ["LT", "IdentifyingComments"], - "9007" : ["CS", "FrameType"], - "9092" : ["SQ", "ReferencedImageEvidenceSequence"], - "9121" : ["SQ", "ReferencedRawDataSequence"], - "9123" : ["UI", "CreatorVersionUID"], - "9124" : ["SQ", "DerivationImageSequence"], - "9154" : ["SQ", "SourceImageEvidenceSequence"], - "9205" : ["CS", "PixelPresentation"], - "9206" : ["CS", "VolumetricProperties"], - "9207" : ["CS", "VolumeBasedCalculationTechnique"], - "9208" : ["CS", "ComplexImageComponent"], - "9209" : ["CS", "AcquisitionContrast"], - "9215" : ["SQ", "DerivationCodeSequence"], - "9237" : ["SQ", "ReferencedPresentationStateSequence"], - "9410" : ["SQ", "ReferencedOtherPlaneSequence"], - "9458" : ["SQ", "FrameDisplaySequence"], - "9459" : ["FL", "RecommendedDisplayFrameRateInFloat"], - "9460" : ["CS", "SkipFrameRangeFlag"] - }, - "0010" : { - "0010" : ["PN", "PatientName"], - "0020" : ["LO", "PatientID"], - "0021" : ["LO", "IssuerOfPatientID"], - "0022" : ["CS", "TypeOfPatientID"], - "0024" : ["SQ", "IssuerOfPatientIDQualifiersSequence"], - "0030" : ["DA", "PatientBirthDate"], - "0032" : ["TM", "PatientBirthTime"], - "0040" : ["CS", "PatientSex"], - "0050" : ["SQ", "PatientInsurancePlanCodeSequence"], - "0101" : ["SQ", "PatientPrimaryLanguageCodeSequence"], - "0102" : ["SQ", "PatientPrimaryLanguageModifierCodeSequence"], - "1000" : ["LO", "OtherPatientIDs"], - "1001" : ["PN", "OtherPatientNames"], - "1002" : ["SQ", "OtherPatientIDsSequence"], - "1005" : ["PN", "PatientBirthName"], - "1010" : ["AS", "PatientAge"], - "1020" : ["DS", "PatientSize"], - "1021" : ["SQ", "PatientSizeCodeSequence"], - "1030" : ["DS", "PatientWeight"], - "1040" : ["LO", "PatientAddress"], - "1050" : ["LO", "InsurancePlanIdentification"], - "1060" : ["PN", "PatientMotherBirthName"], - "1080" : ["LO", "MilitaryRank"], - "1081" : ["LO", "BranchOfService"], - "1090" : ["LO", "MedicalRecordLocator"], - "2000" : ["LO", "MedicalAlerts"], - "2110" : ["LO", "Allergies"], - "2150" : ["LO", "CountryOfResidence"], - "2152" : ["LO", "RegionOfResidence"], - "2154" : ["SH", "PatientTelephoneNumbers"], - "2160" : ["SH", "EthnicGroup"], - "2180" : ["SH", "Occupation"], - "21A0" : ["CS", "SmokingStatus"], - "21B0" : ["LT", "AdditionalPatientHistory"], - "21C0" : ["US", "PregnancyStatus"], - "21D0" : ["DA", "LastMenstrualDate"], - "21F0" : ["LO", "PatientReligiousPreference"], - "2201" : ["LO", "PatientSpeciesDescription"], - "2202" : ["SQ", "PatientSpeciesCodeSequence"], - "2203" : ["CS", "PatientSexNeutered"], - "2210" : ["CS", "AnatomicalOrientationType"], - "2292" : ["LO", "PatientBreedDescription"], - "2293" : ["SQ", "PatientBreedCodeSequence"], - "2294" : ["SQ", "BreedRegistrationSequence"], - "2295" : ["LO", "BreedRegistrationNumber"], - "2296" : ["SQ", "BreedRegistryCodeSequence"], - "2297" : ["PN", "ResponsiblePerson"], - "2298" : ["CS", "ResponsiblePersonRole"], - "2299" : ["LO", "ResponsibleOrganization"], - "4000" : ["LT", "PatientComments"], - "9431" : ["FL", "ExaminedBodyThickness"] - }, - "0012" : { - "0010" : ["LO", "ClinicalTrialSponsorName"], - "0020" : ["LO", "ClinicalTrialProtocolID"], - "0021" : ["LO", "ClinicalTrialProtocolName"], - "0030" : ["LO", "ClinicalTrialSiteID"], - "0031" : ["LO", "ClinicalTrialSiteName"], - "0040" : ["LO", "ClinicalTrialSubjectID"], - "0042" : ["LO", "ClinicalTrialSubjectReadingID"], - "0050" : ["LO", "ClinicalTrialTimePointID"], - "0051" : ["ST", "ClinicalTrialTimePointDescription"], - "0060" : ["LO", "ClinicalTrialCoordinatingCenterName"], - "0062" : ["CS", "PatientIdentityRemoved"], - "0063" : ["LO", "DeidentificationMethod"], - "0064" : ["SQ", "DeidentificationMethodCodeSequence"], - "0071" : ["LO", "ClinicalTrialSeriesID"], - "0072" : ["LO", "ClinicalTrialSeriesDescription"], - "0081" : ["LO", "ClinicalTrialProtocolEthicsCommitteeName"], - "0082" : ["LO", "ClinicalTrialProtocolEthicsCommitteeApprovalNumber"], - "0083" : ["SQ", "ConsentForClinicalTrialUseSequence"], - "0084" : ["CS", "DistributionType"], - "0085" : ["CS", "ConsentForDistributionFlag"] - }, - "0014" : { - "0023" : ["ST", "CADFileFormat"], - "0024" : ["ST", "ComponentReferenceSystem"], - "0025" : ["ST", "ComponentManufacturingProcedure"], - "0028" : ["ST", "ComponentManufacturer"], - "0030" : ["DS", "MaterialThickness"], - "0032" : ["DS", "MaterialPipeDiameter"], - "0034" : ["DS", "MaterialIsolationDiameter"], - "0042" : ["ST", "MaterialGrade"], - "0044" : ["ST", "MaterialPropertiesFileID"], - "0045" : ["ST", "MaterialPropertiesFileFormat"], - "0046" : ["LT", "MaterialNotes"], - "0050" : ["CS", "ComponentShape"], - "0052" : ["CS", "CurvatureType"], - "0054" : ["DS", "OuterDiameter"], - "0056" : ["DS", "InnerDiameter"], - "1010" : ["ST", "ActualEnvironmentalConditions"], - "1020" : ["DA", "ExpiryDate"], - "1040" : ["ST", "EnvironmentalConditions"], - "2002" : ["SQ", "EvaluatorSequence"], - "2004" : ["IS", "EvaluatorNumber"], - "2006" : ["PN", "EvaluatorName"], - "2008" : ["IS", "EvaluationAttempt"], - "2012" : ["SQ", "IndicationSequence"], - "2014" : ["IS", "IndicationNumber "], - "2016" : ["SH", "IndicationLabel"], - "2018" : ["ST", "IndicationDescription"], - "201A" : ["CS", "IndicationType"], - "201C" : ["CS", "IndicationDisposition"], - "201E" : ["SQ", "IndicationROISequence"], - "2030" : ["SQ", "IndicationPhysicalPropertySequence"], - "2032" : ["SH", "PropertyLabel"], - "2202" : ["IS", "CoordinateSystemNumberOfAxes "], - "2204" : ["SQ", "CoordinateSystemAxesSequence"], - "2206" : ["ST", "CoordinateSystemAxisDescription"], - "2208" : ["CS", "CoordinateSystemDataSetMapping"], - "220A" : ["IS", "CoordinateSystemAxisNumber"], - "220C" : ["CS", "CoordinateSystemAxisType"], - "220E" : ["CS", "CoordinateSystemAxisUnits"], - "2210" : ["OB", "CoordinateSystemAxisValues"], - "2220" : ["SQ", "CoordinateSystemTransformSequence"], - "2222" : ["ST", "TransformDescription"], - "2224" : ["IS", "TransformNumberOfAxes"], - "2226" : ["IS", "TransformOrderOfAxes"], - "2228" : ["CS", "TransformedAxisUnits"], - "222A" : ["DS", "CoordinateSystemTransformRotationAndScaleMatrix"], - "222C" : ["DS", "CoordinateSystemTransformTranslationMatrix"], - "3011" : ["DS", "InternalDetectorFrameTime"], - "3012" : ["DS", "NumberOfFramesIntegrated"], - "3020" : ["SQ", "DetectorTemperatureSequence"], - "3022" : ["DS", "SensorName"], - "3024" : ["DS", "HorizontalOffsetOfSensor"], - "3026" : ["DS", "VerticalOffsetOfSensor"], - "3028" : ["DS", "SensorTemperature"], - "3040" : ["SQ", "DarkCurrentSequence"], - "3050" : ["OB", "DarkCurrentCounts"], - "3060" : ["SQ", "GainCorrectionReferenceSequence"], - "3070" : ["OB", "AirCounts"], - "3071" : ["DS", "KVUsedInGainCalibration"], - "3072" : ["DS", "MAUsedInGainCalibration"], - "3073" : ["DS", "NumberOfFramesUsedForIntegration"], - "3074" : ["LO", "FilterMaterialUsedInGainCalibration"], - "3075" : ["DS", "FilterThicknessUsedInGainCalibration"], - "3076" : ["DA", "DateOfGainCalibration"], - "3077" : ["TM", "TimeOfGainCalibration"], - "3080" : ["OB", "BadPixelImage"], - "3099" : ["LT", "CalibrationNotes"], - "4002" : ["SQ", "PulserEquipmentSequence"], - "4004" : ["CS", "PulserType"], - "4006" : ["LT", "PulserNotes"], - "4008" : ["SQ", "ReceiverEquipmentSequence"], - "400A" : ["CS", "AmplifierType"], - "400C" : ["LT", "ReceiverNotes"], - "400E" : ["SQ", "PreAmplifierEquipmentSequence"], - "400F" : ["LT", "PreAmplifierNotes"], - "4010" : ["SQ", "TransmitTransducerSequence"], - "4011" : ["SQ", "ReceiveTransducerSequence"], - "4012" : ["US", "NumberOfElements"], - "4013" : ["CS", "ElementShape"], - "4014" : ["DS", "ElementDimensionA"], - "4015" : ["DS", "ElementDimensionB"], - "4016" : ["DS", "ElementPitch"], - "4017" : ["DS", "MeasuredBeamDimensionA"], - "4018" : ["DS", "MeasuredBeamDimensionB"], - "4019" : ["DS", "LocationOfMeasuredBeamDiameter"], - "401A" : ["DS", "NominalFrequency"], - "401B" : ["DS", "MeasuredCenterFrequency"], - "401C" : ["DS", "MeasuredBandwidth"], - "4020" : ["SQ", "PulserSettingsSequence"], - "4022" : ["DS", "PulseWidth"], - "4024" : ["DS", "ExcitationFrequency"], - "4026" : ["CS", "ModulationType"], - "4028" : ["DS", "Damping"], - "4030" : ["SQ", "ReceiverSettingsSequence"], - "4031" : ["DS", "AcquiredSoundpathLength"], - "4032" : ["CS", "AcquisitionCompressionType"], - "4033" : ["IS", "AcquisitionSampleSize"], - "4034" : ["DS", "RectifierSmoothing"], - "4035" : ["SQ", "DACSequence"], - "4036" : ["CS", "DACType"], - "4038" : ["DS", "DACGainPoints"], - "403A" : ["DS", "DACTimePoints"], - "403C" : ["DS", "DACAmplitude"], - "4040" : ["SQ", "PreAmplifierSettingsSequence"], - "4050" : ["SQ", "TransmitTransducerSettingsSequence"], - "4051" : ["SQ", "ReceiveTransducerSettingsSequence"], - "4052" : ["DS", "IncidentAngle"], - "4054" : ["ST", "CouplingTechnique"], - "4056" : ["ST", "CouplingMedium"], - "4057" : ["DS", "CouplingVelocity"], - "4058" : ["DS", "CrystalCenterLocationX"], - "4059" : ["DS", "CrystalCenterLocationZ"], - "405A" : ["DS", "SoundPathLength"], - "405C" : ["ST", "DelayLawIdentifier"], - "4060" : ["SQ", "GateSettingsSequence"], - "4062" : ["DS", "GateThreshold"], - "4064" : ["DS", "VelocityOfSound"], - "4070" : ["SQ", "CalibrationSettingsSequence"], - "4072" : ["ST", "CalibrationProcedure"], - "4074" : ["SH", "ProcedureVersion"], - "4076" : ["DA", "ProcedureCreationDate"], - "4078" : ["DA", "ProcedureExpirationDate"], - "407A" : ["DA", "ProcedureLastModifiedDate"], - "407C" : ["TM", "CalibrationTime"], - "407E" : ["DA", "CalibrationDate"], - "5002" : ["IS", "LINACEnergy"], - "5004" : ["IS", "LINACOutput"] - }, - "0018" : { - "0010" : ["LO", "ContrastBolusAgent"], - "0012" : ["SQ", "ContrastBolusAgentSequence"], - "0014" : ["SQ", "ContrastBolusAdministrationRouteSequence"], - "0015" : ["CS", "BodyPartExamined"], - "0020" : ["CS", "ScanningSequence"], - "0021" : ["CS", "SequenceVariant"], - "0022" : ["CS", "ScanOptions"], - "0023" : ["CS", "MRAcquisitionType"], - "0024" : ["SH", "SequenceName"], - "0025" : ["CS", "AngioFlag"], - "0026" : ["SQ", "InterventionDrugInformationSequence"], - "0027" : ["TM", "InterventionDrugStopTime"], - "0028" : ["DS", "InterventionDrugDose"], - "0029" : ["SQ", "InterventionDrugCodeSequence"], - "002A" : ["SQ", "AdditionalDrugSequence"], - "0030" : ["LO", "Radionuclide"], - "0031" : ["LO", "Radiopharmaceutical"], - "0032" : ["DS", "EnergyWindowCenterline"], - "0033" : ["DS", "EnergyWindowTotalWidth"], - "0034" : ["LO", "InterventionDrugName"], - "0035" : ["TM", "InterventionDrugStartTime"], - "0036" : ["SQ", "InterventionSequence"], - "0037" : ["CS", "TherapyType"], - "0038" : ["CS", "InterventionStatus"], - "0039" : ["CS", "TherapyDescription"], - "003A" : ["ST", "InterventionDescription"], - "0040" : ["IS", "CineRate"], - "0042" : ["CS", "InitialCineRunState"], - "0050" : ["DS", "SliceThickness"], - "0060" : ["DS", "KVP"], - "0070" : ["IS", "CountsAccumulated"], - "0071" : ["CS", "AcquisitionTerminationCondition"], - "0072" : ["DS", "EffectiveDuration"], - "0073" : ["CS", "AcquisitionStartCondition"], - "0074" : ["IS", "AcquisitionStartConditionData"], - "0075" : ["IS", "AcquisitionTerminationConditionData"], - "0080" : ["DS", "RepetitionTime"], - "0081" : ["DS", "EchoTime"], - "0082" : ["DS", "InversionTime"], - "0083" : ["DS", "NumberOfAverages"], - "0084" : ["DS", "ImagingFrequency"], - "0085" : ["SH", "ImagedNucleus"], - "0086" : ["IS", "EchoNumbers"], - "0087" : ["DS", "MagneticFieldStrength"], - "0088" : ["DS", "SpacingBetweenSlices"], - "0089" : ["IS", "NumberOfPhaseEncodingSteps"], - "0090" : ["DS", "DataCollectionDiameter"], - "0091" : ["IS", "EchoTrainLength"], - "0093" : ["DS", "PercentSampling"], - "0094" : ["DS", "PercentPhaseFieldOfView"], - "0095" : ["DS", "PixelBandwidth"], - "1000" : ["LO", "DeviceSerialNumber"], - "1002" : ["UI", "DeviceUID"], - "1003" : ["LO", "DeviceID"], - "1004" : ["LO", "PlateID"], - "1005" : ["LO", "GeneratorID"], - "1006" : ["LO", "GridID"], - "1007" : ["LO", "CassetteID"], - "1008" : ["LO", "GantryID"], - "1010" : ["LO", "SecondaryCaptureDeviceID"], - "1011" : ["LO", "HardcopyCreationDeviceID"], - "1012" : ["DA", "DateOfSecondaryCapture"], - "1014" : ["TM", "TimeOfSecondaryCapture"], - "1016" : ["LO", "SecondaryCaptureDeviceManufacturer"], - "1017" : ["LO", "HardcopyDeviceManufacturer"], - "1018" : ["LO", "SecondaryCaptureDeviceManufacturerModelName"], - "1019" : ["LO", "SecondaryCaptureDeviceSoftwareVersions"], - "101A" : ["LO", "HardcopyDeviceSoftwareVersion"], - "101B" : ["LO", "HardcopyDeviceManufacturerModelName"], - "1020" : ["LO", "SoftwareVersions"], - "1022" : ["SH", "VideoImageFormatAcquired"], - "1023" : ["LO", "DigitalImageFormatAcquired"], - "1030" : ["LO", "ProtocolName"], - "1040" : ["LO", "ContrastBolusRoute"], - "1041" : ["DS", "ContrastBolusVolume"], - "1042" : ["TM", "ContrastBolusStartTime"], - "1043" : ["TM", "ContrastBolusStopTime"], - "1044" : ["DS", "ContrastBolusTotalDose"], - "1045" : ["IS", "SyringeCounts"], - "1046" : ["DS", "ContrastFlowRate"], - "1047" : ["DS", "ContrastFlowDuration"], - "1048" : ["CS", "ContrastBolusIngredient"], - "1049" : ["DS", "ContrastBolusIngredientConcentration"], - "1050" : ["DS", "SpatialResolution"], - "1060" : ["DS", "TriggerTime"], - "1061" : ["LO", "TriggerSourceOrType"], - "1062" : ["IS", "NominalInterval"], - "1063" : ["DS", "FrameTime"], - "1064" : ["LO", "CardiacFramingType"], - "1065" : ["DS", "FrameTimeVector"], - "1066" : ["DS", "FrameDelay"], - "1067" : ["DS", "ImageTriggerDelay"], - "1068" : ["DS", "MultiplexGroupTimeOffset"], - "1069" : ["DS", "TriggerTimeOffset"], - "106A" : ["CS", "SynchronizationTrigger"], - "106C" : ["US", "SynchronizationChannel"], - "106E" : ["UL", "TriggerSamplePosition"], - "1070" : ["LO", "RadiopharmaceuticalRoute"], - "1071" : ["DS", "RadiopharmaceuticalVolume"], - "1072" : ["TM", "RadiopharmaceuticalStartTime"], - "1073" : ["TM", "RadiopharmaceuticalStopTime"], - "1074" : ["DS", "RadionuclideTotalDose"], - "1075" : ["DS", "RadionuclideHalfLife"], - "1076" : ["DS", "RadionuclidePositronFraction"], - "1077" : ["DS", "RadiopharmaceuticalSpecificActivity"], - "1078" : ["DT", "RadiopharmaceuticalStartDateTime"], - "1079" : ["DT", "RadiopharmaceuticalStopDateTime"], - "1080" : ["CS", "BeatRejectionFlag"], - "1081" : ["IS", "LowRRValue"], - "1082" : ["IS", "HighRRValue"], - "1083" : ["IS", "IntervalsAcquired"], - "1084" : ["IS", "IntervalsRejected"], - "1085" : ["LO", "PVCRejection"], - "1086" : ["IS", "SkipBeats"], - "1088" : ["IS", "HeartRate"], - "1090" : ["IS", "CardiacNumberOfImages"], - "1094" : ["IS", "TriggerWindow"], - "1100" : ["DS", "ReconstructionDiameter"], - "1110" : ["DS", "DistanceSourceToDetector"], - "1111" : ["DS", "DistanceSourceToPatient"], - "1114" : ["DS", "EstimatedRadiographicMagnificationFactor"], - "1120" : ["DS", "GantryDetectorTilt"], - "1121" : ["DS", "GantryDetectorSlew"], - "1130" : ["DS", "TableHeight"], - "1131" : ["DS", "TableTraverse"], - "1134" : ["CS", "TableMotion"], - "1135" : ["DS", "TableVerticalIncrement"], - "1136" : ["DS", "TableLateralIncrement"], - "1137" : ["DS", "TableLongitudinalIncrement"], - "1138" : ["DS", "TableAngle"], - "113A" : ["CS", "TableType"], - "1140" : ["CS", "RotationDirection"], - "1141" : ["DS", "AngularPosition"], - "1142" : ["DS", "RadialPosition"], - "1143" : ["DS", "ScanArc"], - "1144" : ["DS", "AngularStep"], - "1145" : ["DS", "CenterOfRotationOffset"], - "1146" : ["DS", "RotationOffset"], - "1147" : ["CS", "FieldOfViewShape"], - "1149" : ["IS", "FieldOfViewDimensions"], - "1150" : ["IS", "ExposureTime"], - "1151" : ["IS", "XRayTubeCurrent"], - "1152" : ["IS", "Exposure"], - "1153" : ["IS", "ExposureInuAs"], - "1154" : ["DS", "AveragePulseWidth"], - "1155" : ["CS", "RadiationSetting"], - "1156" : ["CS", "RectificationType"], - "115A" : ["CS", "RadiationMode"], - "115E" : ["DS", "ImageAndFluoroscopyAreaDoseProduct"], - "1160" : ["SH", "FilterType"], - "1161" : ["LO", "TypeOfFilters"], - "1162" : ["DS", "IntensifierSize"], - "1164" : ["DS", "ImagerPixelSpacing"], - "1166" : ["CS", "Grid"], - "1170" : ["IS", "GeneratorPower"], - "1180" : ["SH", "CollimatorGridName"], - "1181" : ["CS", "CollimatorType"], - "1182" : ["IS", "FocalDistance"], - "1183" : ["DS", "XFocusCenter"], - "1184" : ["DS", "YFocusCenter"], - "1190" : ["DS", "FocalSpots"], - "1191" : ["CS", "AnodeTargetMaterial"], - "11A0" : ["DS", "BodyPartThickness"], - "11A2" : ["DS", "CompressionForce"], - "1200" : ["DA", "DateOfLastCalibration"], - "1201" : ["TM", "TimeOfLastCalibration"], - "1210" : ["SH", "ConvolutionKernel"], - "1240" : ["IS", "UpperLowerPixelValues"], - "1242" : ["IS", "ActualFrameDuration"], - "1243" : ["IS", "CountRate"], - "1244" : ["US", "PreferredPlaybackSequencing"], - "1250" : ["SH", "ReceiveCoilName"], - "1251" : ["SH", "TransmitCoilName"], - "1260" : ["SH", "PlateType"], - "1261" : ["LO", "PhosphorType"], - "1300" : ["DS", "ScanVelocity"], - "1301" : ["CS", "WholeBodyTechnique"], - "1302" : ["IS", "ScanLength"], - "1310" : ["US", "AcquisitionMatrix"], - "1312" : ["CS", "InPlanePhaseEncodingDirection"], - "1314" : ["DS", "FlipAngle"], - "1315" : ["CS", "VariableFlipAngleFlag"], - "1316" : ["DS", "SAR"], - "1318" : ["DS", "dBdt"], - "1400" : ["LO", "AcquisitionDeviceProcessingDescription"], - "1401" : ["LO", "AcquisitionDeviceProcessingCode"], - "1402" : ["CS", "CassetteOrientation"], - "1403" : ["CS", "CassetteSize"], - "1404" : ["US", "ExposuresOnPlate"], - "1405" : ["IS", "RelativeXRayExposure"], - "1411" : ["DS", "ExposureIndex"], - "1412" : ["DS", "TargetExposureIndex"], - "1413" : ["DS", "DeviationIndex"], - "1450" : ["DS", "ColumnAngulation"], - "1460" : ["DS", "TomoLayerHeight"], - "1470" : ["DS", "TomoAngle"], - "1480" : ["DS", "TomoTime"], - "1490" : ["CS", "TomoType"], - "1491" : ["CS", "TomoClass"], - "1495" : ["IS", "NumberOfTomosynthesisSourceImages"], - "1500" : ["CS", "PositionerMotion"], - "1508" : ["CS", "PositionerType"], - "1510" : ["DS", "PositionerPrimaryAngle"], - "1511" : ["DS", "PositionerSecondaryAngle"], - "1520" : ["DS", "PositionerPrimaryAngleIncrement"], - "1521" : ["DS", "PositionerSecondaryAngleIncrement"], - "1530" : ["DS", "DetectorPrimaryAngle"], - "1531" : ["DS", "DetectorSecondaryAngle"], - "1600" : ["CS", "ShutterShape"], - "1602" : ["IS", "ShutterLeftVerticalEdge"], - "1604" : ["IS", "ShutterRightVerticalEdge"], - "1606" : ["IS", "ShutterUpperHorizontalEdge"], - "1608" : ["IS", "ShutterLowerHorizontalEdge"], - "1610" : ["IS", "CenterOfCircularShutter"], - "1612" : ["IS", "RadiusOfCircularShutter"], - "1620" : ["IS", "VerticesOfThePolygonalShutter"], - "1622" : ["US", "ShutterPresentationValue"], - "1623" : ["US", "ShutterOverlayGroup"], - "1624" : ["US", "ShutterPresentationColorCIELabValue"], - "1700" : ["CS", "CollimatorShape"], - "1702" : ["IS", "CollimatorLeftVerticalEdge"], - "1704" : ["IS", "CollimatorRightVerticalEdge"], - "1706" : ["IS", "CollimatorUpperHorizontalEdge"], - "1708" : ["IS", "CollimatorLowerHorizontalEdge"], - "1710" : ["IS", "CenterOfCircularCollimator"], - "1712" : ["IS", "RadiusOfCircularCollimator"], - "1720" : ["IS", "VerticesOfThePolygonalCollimator"], - "1800" : ["CS", "AcquisitionTimeSynchronized"], - "1801" : ["SH", "TimeSource"], - "1802" : ["CS", "TimeDistributionProtocol"], - "1803" : ["LO", "NTPSourceAddress"], - "2001" : ["IS", "PageNumberVector"], - "2002" : ["SH", "FrameLabelVector"], - "2003" : ["DS", "FramePrimaryAngleVector"], - "2004" : ["DS", "FrameSecondaryAngleVector"], - "2005" : ["DS", "SliceLocationVector"], - "2006" : ["SH", "DisplayWindowLabelVector"], - "2010" : ["DS", "NominalScannedPixelSpacing"], - "2020" : ["CS", "DigitizingDeviceTransportDirection"], - "2030" : ["DS", "RotationOfScannedFilm"], - "3100" : ["CS", "IVUSAcquisition"], - "3101" : ["DS", "IVUSPullbackRate"], - "3102" : ["DS", "IVUSGatedRate"], - "3103" : ["IS", "IVUSPullbackStartFrameNumber"], - "3104" : ["IS", "IVUSPullbackStopFrameNumber"], - "3105" : ["IS", "LesionNumber"], - "4000" : ["LT", "AcquisitionComments"], - "5000" : ["SH", "OutputPower"], - "5010" : ["LO", "TransducerData"], - "5012" : ["DS", "FocusDepth"], - "5020" : ["LO", "ProcessingFunction"], - "5021" : ["LO", "PostprocessingFunction"], - "5022" : ["DS", "MechanicalIndex"], - "5024" : ["DS", "BoneThermalIndex"], - "5026" : ["DS", "CranialThermalIndex"], - "5027" : ["DS", "SoftTissueThermalIndex"], - "5028" : ["DS", "SoftTissueFocusThermalIndex"], - "5029" : ["DS", "SoftTissueSurfaceThermalIndex"], - "5030" : ["DS", "DynamicRange"], - "5040" : ["DS", "TotalGain"], - "5050" : ["IS", "DepthOfScanField"], - "5100" : ["CS", "PatientPosition"], - "5101" : ["CS", "ViewPosition"], - "5104" : ["SQ", "ProjectionEponymousNameCodeSequence"], - "5210" : ["DS", "ImageTransformationMatrix"], - "5212" : ["DS", "ImageTranslationVector"], - "6000" : ["DS", "Sensitivity"], - "6011" : ["SQ", "SequenceOfUltrasoundRegions"], - "6012" : ["US", "RegionSpatialFormat"], - "6014" : ["US", "RegionDataType"], - "6016" : ["UL", "RegionFlags"], - "6018" : ["UL", "RegionLocationMinX0"], - "601A" : ["UL", "RegionLocationMinY0"], - "601C" : ["UL", "RegionLocationMaxX1"], - "601E" : ["UL", "RegionLocationMaxY1"], - "6020" : ["SL", "ReferencePixelX0"], - "6022" : ["SL", "ReferencePixelY0"], - "6024" : ["US", "PhysicalUnitsXDirection"], - "6026" : ["US", "PhysicalUnitsYDirection"], - "6028" : ["FD", "ReferencePixelPhysicalValueX"], - "602A" : ["FD", "ReferencePixelPhysicalValueY"], - "602C" : ["FD", "PhysicalDeltaX"], - "602E" : ["FD", "PhysicalDeltaY"], - "6030" : ["UL", "TransducerFrequency"], - "6031" : ["CS", "TransducerType"], - "6032" : ["UL", "PulseRepetitionFrequency"], - "6034" : ["FD", "DopplerCorrectionAngle"], - "6036" : ["FD", "SteeringAngle"], - "6038" : ["UL", "DopplerSampleVolumeXPositionRetired"], - "6039" : ["SL", "DopplerSampleVolumeXPosition"], - "603A" : ["UL", "DopplerSampleVolumeYPositionRetired"], - "603B" : ["SL", "DopplerSampleVolumeYPosition"], - "603C" : ["UL", "TMLinePositionX0Retired"], - "603D" : ["SL", "TMLinePositionX0"], - "603E" : ["UL", "TMLinePositionY0Retired"], - "603F" : ["SL", "TMLinePositionY0"], - "6040" : ["UL", "TMLinePositionX1Retired"], - "6041" : ["SL", "TMLinePositionX1"], - "6042" : ["UL", "TMLinePositionY1Retired"], - "6043" : ["SL", "TMLinePositionY1"], - "6044" : ["US", "PixelComponentOrganization"], - "6046" : ["UL", "PixelComponentMask"], - "6048" : ["UL", "PixelComponentRangeStart"], - "604A" : ["UL", "PixelComponentRangeStop"], - "604C" : ["US", "PixelComponentPhysicalUnits"], - "604E" : ["US", "PixelComponentDataType"], - "6050" : ["UL", "NumberOfTableBreakPoints"], - "6052" : ["UL", "TableOfXBreakPoints"], - "6054" : ["FD", "TableOfYBreakPoints"], - "6056" : ["UL", "NumberOfTableEntries"], - "6058" : ["UL", "TableOfPixelValues"], - "605A" : ["FL", "TableOfParameterValues"], - "6060" : ["FL", "RWaveTimeVector"], - "7000" : ["CS", "DetectorConditionsNominalFlag"], - "7001" : ["DS", "DetectorTemperature"], - "7004" : ["CS", "DetectorType"], - "7005" : ["CS", "DetectorConfiguration"], - "7006" : ["LT", "DetectorDescription"], - "7008" : ["LT", "DetectorMode"], - "700A" : ["SH", "DetectorID"], - "700C" : ["DA", "DateOfLastDetectorCalibration"], - "700E" : ["TM", "TimeOfLastDetectorCalibration"], - "7010" : ["IS", "ExposuresOnDetectorSinceLastCalibration"], - "7011" : ["IS", "ExposuresOnDetectorSinceManufactured"], - "7012" : ["DS", "DetectorTimeSinceLastExposure"], - "7014" : ["DS", "DetectorActiveTime"], - "7016" : ["DS", "DetectorActivationOffsetFromExposure"], - "701A" : ["DS", "DetectorBinning"], - "7020" : ["DS", "DetectorElementPhysicalSize"], - "7022" : ["DS", "DetectorElementSpacing"], - "7024" : ["CS", "DetectorActiveShape"], - "7026" : ["DS", "DetectorActiveDimensions"], - "7028" : ["DS", "DetectorActiveOrigin"], - "702A" : ["LO", "DetectorManufacturerName"], - "702B" : ["LO", "DetectorManufacturerModelName"], - "7030" : ["DS", "FieldOfViewOrigin"], - "7032" : ["DS", "FieldOfViewRotation"], - "7034" : ["CS", "FieldOfViewHorizontalFlip"], - "7036" : ["FL", "PixelDataAreaOriginRelativeToFOV"], - "7038" : ["FL", "PixelDataAreaRotationAngleRelativeToFOV"], - "7040" : ["LT", "GridAbsorbingMaterial"], - "7041" : ["LT", "GridSpacingMaterial"], - "7042" : ["DS", "GridThickness"], - "7044" : ["DS", "GridPitch"], - "7046" : ["IS", "GridAspectRatio"], - "7048" : ["DS", "GridPeriod"], - "704C" : ["DS", "GridFocalDistance"], - "7050" : ["CS", "FilterMaterial"], - "7052" : ["DS", "FilterThicknessMinimum"], - "7054" : ["DS", "FilterThicknessMaximum"], - "7056" : ["FL", "FilterBeamPathLengthMinimum"], - "7058" : ["FL", "FilterBeamPathLengthMaximum"], - "7060" : ["CS", "ExposureControlMode"], - "7062" : ["LT", "ExposureControlModeDescription"], - "7064" : ["CS", "ExposureStatus"], - "7065" : ["DS", "PhototimerSetting"], - "8150" : ["DS", "ExposureTimeInuS"], - "8151" : ["DS", "XRayTubeCurrentInuA"], - "9004" : ["CS", "ContentQualification"], - "9005" : ["SH", "PulseSequenceName"], - "9006" : ["SQ", "MRImagingModifierSequence"], - "9008" : ["CS", "EchoPulseSequence"], - "9009" : ["CS", "InversionRecovery"], - "9010" : ["CS", "FlowCompensation"], - "9011" : ["CS", "MultipleSpinEcho"], - "9012" : ["CS", "MultiPlanarExcitation"], - "9014" : ["CS", "PhaseContrast"], - "9015" : ["CS", "TimeOfFlightContrast"], - "9016" : ["CS", "Spoiling"], - "9017" : ["CS", "SteadyStatePulseSequence"], - "9018" : ["CS", "EchoPlanarPulseSequence"], - "9019" : ["FD", "TagAngleFirstAxis"], - "9020" : ["CS", "MagnetizationTransfer"], - "9021" : ["CS", "T2Preparation"], - "9022" : ["CS", "BloodSignalNulling"], - "9024" : ["CS", "SaturationRecovery"], - "9025" : ["CS", "SpectrallySelectedSuppression"], - "9026" : ["CS", "SpectrallySelectedExcitation"], - "9027" : ["CS", "SpatialPresaturation"], - "9028" : ["CS", "Tagging"], - "9029" : ["CS", "OversamplingPhase"], - "9030" : ["FD", "TagSpacingFirstDimension"], - "9032" : ["CS", "GeometryOfKSpaceTraversal"], - "9033" : ["CS", "SegmentedKSpaceTraversal"], - "9034" : ["CS", "RectilinearPhaseEncodeReordering"], - "9035" : ["FD", "TagThickness"], - "9036" : ["CS", "PartialFourierDirection"], - "9037" : ["CS", "CardiacSynchronizationTechnique"], - "9041" : ["LO", "ReceiveCoilManufacturerName"], - "9042" : ["SQ", "MRReceiveCoilSequence"], - "9043" : ["CS", "ReceiveCoilType"], - "9044" : ["CS", "QuadratureReceiveCoil"], - "9045" : ["SQ", "MultiCoilDefinitionSequence"], - "9046" : ["LO", "MultiCoilConfiguration"], - "9047" : ["SH", "MultiCoilElementName"], - "9048" : ["CS", "MultiCoilElementUsed"], - "9049" : ["SQ", "MRTransmitCoilSequence"], - "9050" : ["LO", "TransmitCoilManufacturerName"], - "9051" : ["CS", "TransmitCoilType"], - "9052" : ["FD", "SpectralWidth"], - "9053" : ["FD", "ChemicalShiftReference"], - "9054" : ["CS", "VolumeLocalizationTechnique"], - "9058" : ["US", "MRAcquisitionFrequencyEncodingSteps"], - "9059" : ["CS", "Decoupling"], - "9060" : ["CS", "DecoupledNucleus"], - "9061" : ["FD", "DecouplingFrequency"], - "9062" : ["CS", "DecouplingMethod"], - "9063" : ["FD", "DecouplingChemicalShiftReference"], - "9064" : ["CS", "KSpaceFiltering"], - "9065" : ["CS", "TimeDomainFiltering"], - "9066" : ["US", "NumberOfZeroFills"], - "9067" : ["CS", "BaselineCorrection"], - "9069" : ["FD", "ParallelReductionFactorInPlane"], - "9070" : ["FD", "CardiacRRIntervalSpecified"], - "9073" : ["FD", "AcquisitionDuration"], - "9074" : ["DT", "FrameAcquisitionDateTime"], - "9075" : ["CS", "DiffusionDirectionality"], - "9076" : ["SQ", "DiffusionGradientDirectionSequence"], - "9077" : ["CS", "ParallelAcquisition"], - "9078" : ["CS", "ParallelAcquisitionTechnique"], - "9079" : ["FD", "InversionTimes"], - "9080" : ["ST", "MetaboliteMapDescription"], - "9081" : ["CS", "PartialFourier"], - "9082" : ["FD", "EffectiveEchoTime"], - "9083" : ["SQ", "MetaboliteMapCodeSequence"], - "9084" : ["SQ", "ChemicalShiftSequence"], - "9085" : ["CS", "CardiacSignalSource"], - "9087" : ["FD", "DiffusionBValue"], - "9089" : ["FD", "DiffusionGradientOrientation"], - "9090" : ["FD", "VelocityEncodingDirection"], - "9091" : ["FD", "VelocityEncodingMinimumValue"], - "9092" : ["SQ", "VelocityEncodingAcquisitionSequence"], - "9093" : ["US", "NumberOfKSpaceTrajectories"], - "9094" : ["CS", "CoverageOfKSpace"], - "9095" : ["UL", "SpectroscopyAcquisitionPhaseRows"], - "9096" : ["FD", "ParallelReductionFactorInPlaneRetired"], - "9098" : ["FD", "TransmitterFrequency"], - "9100" : ["CS", "ResonantNucleus"], - "9101" : ["CS", "FrequencyCorrection"], - "9103" : ["SQ", "MRSpectroscopyFOVGeometrySequence"], - "9104" : ["FD", "SlabThickness"], - "9105" : ["FD", "SlabOrientation"], - "9106" : ["FD", "MidSlabPosition"], - "9107" : ["SQ", "MRSpatialSaturationSequence"], - "9112" : ["SQ", "MRTimingAndRelatedParametersSequence"], - "9114" : ["SQ", "MREchoSequence"], - "9115" : ["SQ", "MRModifierSequence"], - "9117" : ["SQ", "MRDiffusionSequence"], - "9118" : ["SQ", "CardiacSynchronizationSequence"], - "9119" : ["SQ", "MRAveragesSequence"], - "9125" : ["SQ", "MRFOVGeometrySequence"], - "9126" : ["SQ", "VolumeLocalizationSequence"], - "9127" : ["UL", "SpectroscopyAcquisitionDataColumns"], - "9147" : ["CS", "DiffusionAnisotropyType"], - "9151" : ["DT", "FrameReferenceDateTime"], - "9152" : ["SQ", "MRMetaboliteMapSequence"], - "9155" : ["FD", "ParallelReductionFactorOutOfPlane"], - "9159" : ["UL", "SpectroscopyAcquisitionOutOfPlanePhaseSteps"], - "9166" : ["CS", "BulkMotionStatus"], - "9168" : ["FD", "ParallelReductionFactorSecondInPlane"], - "9169" : ["CS", "CardiacBeatRejectionTechnique"], - "9170" : ["CS", "RespiratoryMotionCompensationTechnique"], - "9171" : ["CS", "RespiratorySignalSource"], - "9172" : ["CS", "BulkMotionCompensationTechnique"], - "9173" : ["CS", "BulkMotionSignalSource"], - "9174" : ["CS", "ApplicableSafetyStandardAgency"], - "9175" : ["LO", "ApplicableSafetyStandardDescription"], - "9176" : ["SQ", "OperatingModeSequence"], - "9177" : ["CS", "OperatingModeType"], - "9178" : ["CS", "OperatingMode"], - "9179" : ["CS", "SpecificAbsorptionRateDefinition"], - "9180" : ["CS", "GradientOutputType"], - "9181" : ["FD", "SpecificAbsorptionRateValue"], - "9182" : ["FD", "GradientOutput"], - "9183" : ["CS", "FlowCompensationDirection"], - "9184" : ["FD", "TaggingDelay"], - "9185" : ["ST", "RespiratoryMotionCompensationTechniqueDescription"], - "9186" : ["SH", "RespiratorySignalSourceID"], - "9195" : ["FD", "ChemicalShiftMinimumIntegrationLimitInHz"], - "9196" : ["FD", "ChemicalShiftMaximumIntegrationLimitInHz"], - "9197" : ["SQ", "MRVelocityEncodingSequence"], - "9198" : ["CS", "FirstOrderPhaseCorrection"], - "9199" : ["CS", "WaterReferencedPhaseCorrection"], - "9200" : ["CS", "MRSpectroscopyAcquisitionType"], - "9214" : ["CS", "RespiratoryCyclePosition"], - "9217" : ["FD", "VelocityEncodingMaximumValue"], - "9218" : ["FD", "TagSpacingSecondDimension"], - "9219" : ["SS", "TagAngleSecondAxis"], - "9220" : ["FD", "FrameAcquisitionDuration"], - "9226" : ["SQ", "MRImageFrameTypeSequence"], - "9227" : ["SQ", "MRSpectroscopyFrameTypeSequence"], - "9231" : ["US", "MRAcquisitionPhaseEncodingStepsInPlane"], - "9232" : ["US", "MRAcquisitionPhaseEncodingStepsOutOfPlane"], - "9234" : ["UL", "SpectroscopyAcquisitionPhaseColumns"], - "9236" : ["CS", "CardiacCyclePosition"], - "9239" : ["SQ", "SpecificAbsorptionRateSequence"], - "9240" : ["US", "RFEchoTrainLength"], - "9241" : ["US", "GradientEchoTrainLength"], - "9250" : ["CS", "ArterialSpinLabelingContrast"], - "9251" : ["SQ", "MRArterialSpinLabelingSequence"], - "9252" : ["LO", "ASLTechniqueDescription"], - "9253" : ["US", "ASLSlabNumber"], - "9254" : ["FD ", "ASLSlabThickness"], - "9255" : ["FD ", "ASLSlabOrientation"], - "9256" : ["FD ", "ASLMidSlabPosition"], - "9257" : ["CS", "ASLContext"], - "9258" : ["UL", "ASLPulseTrainDuration"], - "9259" : ["CS", "ASLCrusherFlag"], - "925A" : ["FD", "ASLCrusherFlow"], - "925B" : ["LO", "ASLCrusherDescription"], - "925C" : ["CS", "ASLBolusCutoffFlag"], - "925D" : ["SQ", "ASLBolusCutoffTimingSequence"], - "925E" : ["LO", "ASLBolusCutoffTechnique"], - "925F" : ["UL", "ASLBolusCutoffDelayTime"], - "9260" : ["SQ", "ASLSlabSequence"], - "9295" : ["FD", "ChemicalShiftMinimumIntegrationLimitInppm"], - "9296" : ["FD", "ChemicalShiftMaximumIntegrationLimitInppm"], - "9301" : ["SQ", "CTAcquisitionTypeSequence"], - "9302" : ["CS", "AcquisitionType"], - "9303" : ["FD", "TubeAngle"], - "9304" : ["SQ", "CTAcquisitionDetailsSequence"], - "9305" : ["FD", "RevolutionTime"], - "9306" : ["FD", "SingleCollimationWidth"], - "9307" : ["FD", "TotalCollimationWidth"], - "9308" : ["SQ", "CTTableDynamicsSequence"], - "9309" : ["FD", "TableSpeed"], - "9310" : ["FD", "TableFeedPerRotation"], - "9311" : ["FD", "SpiralPitchFactor"], - "9312" : ["SQ", "CTGeometrySequence"], - "9313" : ["FD", "DataCollectionCenterPatient"], - "9314" : ["SQ", "CTReconstructionSequence"], - "9315" : ["CS", "ReconstructionAlgorithm"], - "9316" : ["CS", "ConvolutionKernelGroup"], - "9317" : ["FD", "ReconstructionFieldOfView"], - "9318" : ["FD", "ReconstructionTargetCenterPatient"], - "9319" : ["FD", "ReconstructionAngle"], - "9320" : ["SH", "ImageFilter"], - "9321" : ["SQ", "CTExposureSequence"], - "9322" : ["FD", "ReconstructionPixelSpacing"], - "9323" : ["CS", "ExposureModulationType"], - "9324" : ["FD", "EstimatedDoseSaving"], - "9325" : ["SQ", "CTXRayDetailsSequence"], - "9326" : ["SQ", "CTPositionSequence"], - "9327" : ["FD", "TablePosition"], - "9328" : ["FD", "ExposureTimeInms"], - "9329" : ["SQ", "CTImageFrameTypeSequence"], - "9330" : ["FD", "XRayTubeCurrentInmA"], - "9332" : ["FD", "ExposureInmAs"], - "9333" : ["CS", "ConstantVolumeFlag"], - "9334" : ["CS", "FluoroscopyFlag"], - "9335" : ["FD", "DistanceSourceToDataCollectionCenter"], - "9337" : ["US", "ContrastBolusAgentNumber"], - "9338" : ["SQ", "ContrastBolusIngredientCodeSequence"], - "9340" : ["SQ", "ContrastAdministrationProfileSequence"], - "9341" : ["SQ", "ContrastBolusUsageSequence"], - "9342" : ["CS", "ContrastBolusAgentAdministered"], - "9343" : ["CS", "ContrastBolusAgentDetected"], - "9344" : ["CS", "ContrastBolusAgentPhase"], - "9345" : ["FD", "CTDIvol"], - "9346" : ["SQ", "CTDIPhantomTypeCodeSequence"], - "9351" : ["FL", "CalciumScoringMassFactorPatient"], - "9352" : ["FL", "CalciumScoringMassFactorDevice"], - "9353" : ["FL", "EnergyWeightingFactor"], - "9360" : ["SQ", "CTAdditionalXRaySourceSequence"], - "9401" : ["SQ", "ProjectionPixelCalibrationSequence"], - "9402" : ["FL", "DistanceSourceToIsocenter"], - "9403" : ["FL", "DistanceObjectToTableTop"], - "9404" : ["FL", "ObjectPixelSpacingInCenterOfBeam"], - "9405" : ["SQ", "PositionerPositionSequence"], - "9406" : ["SQ", "TablePositionSequence"], - "9407" : ["SQ", "CollimatorShapeSequence"], - "9410" : ["CS", "PlanesInAcquisition"], - "9412" : ["SQ", "XAXRFFrameCharacteristicsSequence"], - "9417" : ["SQ", "FrameAcquisitionSequence"], - "9420" : ["CS", "XRayReceptorType"], - "9423" : ["LO", "AcquisitionProtocolName"], - "9424" : ["LT", "AcquisitionProtocolDescription"], - "9425" : ["CS", "ContrastBolusIngredientOpaque"], - "9426" : ["FL", "DistanceReceptorPlaneToDetectorHousing"], - "9427" : ["CS", "IntensifierActiveShape"], - "9428" : ["FL", "IntensifierActiveDimensions"], - "9429" : ["FL", "PhysicalDetectorSize"], - "9430" : ["FL", "PositionOfIsocenterProjection"], - "9432" : ["SQ", "FieldOfViewSequence"], - "9433" : ["LO", "FieldOfViewDescription"], - "9434" : ["SQ", "ExposureControlSensingRegionsSequence"], - "9435" : ["CS", "ExposureControlSensingRegionShape"], - "9436" : ["SS", "ExposureControlSensingRegionLeftVerticalEdge"], - "9437" : ["SS", "ExposureControlSensingRegionRightVerticalEdge"], - "9438" : ["SS", "ExposureControlSensingRegionUpperHorizontalEdge"], - "9439" : ["SS", "ExposureControlSensingRegionLowerHorizontalEdge"], - "9440" : ["SS", "CenterOfCircularExposureControlSensingRegion"], - "9441" : ["US", "RadiusOfCircularExposureControlSensingRegion"], - "9442" : ["SS", "VerticesOfThePolygonalExposureControlSensingRegion"], - "9447" : ["FL", "ColumnAngulationPatient"], - "9449" : ["FL", "BeamAngle"], - "9451" : ["SQ", "FrameDetectorParametersSequence"], - "9452" : ["FL", "CalculatedAnatomyThickness"], - "9455" : ["SQ", "CalibrationSequence"], - "9456" : ["SQ", "ObjectThicknessSequence"], - "9457" : ["CS", "PlaneIdentification"], - "9461" : ["FL", "FieldOfViewDimensionsInFloat"], - "9462" : ["SQ", "IsocenterReferenceSystemSequence"], - "9463" : ["FL", "PositionerIsocenterPrimaryAngle"], - "9464" : ["FL", "PositionerIsocenterSecondaryAngle"], - "9465" : ["FL", "PositionerIsocenterDetectorRotationAngle"], - "9466" : ["FL", "TableXPositionToIsocenter"], - "9467" : ["FL", "TableYPositionToIsocenter"], - "9468" : ["FL", "TableZPositionToIsocenter"], - "9469" : ["FL", "TableHorizontalRotationAngle"], - "9470" : ["FL", "TableHeadTiltAngle"], - "9471" : ["FL", "TableCradleTiltAngle"], - "9472" : ["SQ", "FrameDisplayShutterSequence"], - "9473" : ["FL", "AcquiredImageAreaDoseProduct"], - "9474" : ["CS", "CArmPositionerTabletopRelationship"], - "9476" : ["SQ", "XRayGeometrySequence"], - "9477" : ["SQ", "IrradiationEventIdentificationSequence"], - "9504" : ["SQ", "XRay3DFrameTypeSequence"], - "9506" : ["SQ", "ContributingSourcesSequence"], - "9507" : ["SQ", "XRay3DAcquisitionSequence"], - "9508" : ["FL", "PrimaryPositionerScanArc"], - "9509" : ["FL", "SecondaryPositionerScanArc"], - "9510" : ["FL ", "PrimaryPositionerScanStartAngle"], - "9511" : ["FL", "SecondaryPositionerScanStartAngle"], - "9514" : ["FL", "PrimaryPositionerIncrement"], - "9515" : ["FL", "SecondaryPositionerIncrement"], - "9516" : ["DT", "StartAcquisitionDateTime"], - "9517" : ["DT", "EndAcquisitionDateTime"], - "9524" : ["LO", "ApplicationName"], - "9525" : ["LO", "ApplicationVersion"], - "9526" : ["LO", "ApplicationManufacturer"], - "9527" : ["CS", "AlgorithmType"], - "9528" : ["LO", "AlgorithmDescription"], - "9530" : ["SQ", "XRay3DReconstructionSequence"], - "9531" : ["LO", "ReconstructionDescription"], - "9538" : ["SQ", "PerProjectionAcquisitionSequence"], - "9601" : ["SQ", "DiffusionBMatrixSequence"], - "9602" : ["FD", "DiffusionBValueXX"], - "9603" : ["FD", "DiffusionBValueXY"], - "9604" : ["FD", "DiffusionBValueXZ"], - "9605" : ["FD", "DiffusionBValueYY"], - "9606" : ["FD", "DiffusionBValueYZ"], - "9607" : ["FD", "DiffusionBValueZZ"], - "9701" : ["DT", "DecayCorrectionDateTime"], - "9715" : ["FD", "StartDensityThreshold"], - "9716" : ["FD", "StartRelativeDensityDifferenceThreshold"], - "9717" : ["FD", "StartCardiacTriggerCountThreshold"], - "9718" : ["FD", "StartRespiratoryTriggerCountThreshold"], - "9719" : ["FD", "TerminationCountsThreshold"], - "9720" : ["FD", "TerminationDensityThreshold"], - "9721" : ["FD", "TerminationRelativeDensityThreshold"], - "9722" : ["FD", "TerminationTimeThreshold"], - "9723" : ["FD", "TerminationCardiacTriggerCountThreshold"], - "9724" : ["FD", "TerminationRespiratoryTriggerCountThreshold"], - "9725" : ["CS", "DetectorGeometry"], - "9726" : ["FD", "TransverseDetectorSeparation"], - "9727" : ["FD", "AxialDetectorDimension"], - "9729" : ["US", "RadiopharmaceuticalAgentNumber"], - "9732" : ["SQ", "PETFrameAcquisitionSequence"], - "9733" : ["SQ", "PETDetectorMotionDetailsSequence"], - "9734" : ["SQ", "PETTableDynamicsSequence"], - "9735" : ["SQ", "PETPositionSequence"], - "9736" : ["SQ", "PETFrameCorrectionFactorsSequence"], - "9737" : ["SQ", "RadiopharmaceuticalUsageSequence"], - "9738" : ["CS", "AttenuationCorrectionSource"], - "9739" : ["US", "NumberOfIterations"], - "9740" : ["US", "NumberOfSubsets"], - "9749" : ["SQ", "PETReconstructionSequence"], - "9751" : ["SQ", "PETFrameTypeSequence"], - "9755" : ["CS", "TimeOfFlightInformationUsed"], - "9756" : ["CS", "ReconstructionType"], - "9758" : ["CS", "DecayCorrected"], - "9759" : ["CS", "AttenuationCorrected"], - "9760" : ["CS", "ScatterCorrected"], - "9761" : ["CS", "DeadTimeCorrected"], - "9762" : ["CS", "GantryMotionCorrected"], - "9763" : ["CS", "PatientMotionCorrected"], - "9764" : ["CS", "CountLossNormalizationCorrected"], - "9765" : ["CS", "RandomsCorrected"], - "9766" : ["CS", "NonUniformRadialSamplingCorrected"], - "9767" : ["CS", "SensitivityCalibrated"], - "9768" : ["CS", "DetectorNormalizationCorrection"], - "9769" : ["CS", "IterativeReconstructionMethod"], - "9770" : ["CS", "AttenuationCorrectionTemporalRelationship"], - "9771" : ["SQ", "PatientPhysiologicalStateSequence"], - "9772" : ["SQ", "PatientPhysiologicalStateCodeSequence"], - "9801" : ["FD", "DepthsOfFocus"], - "9803" : ["SQ", "ExcludedIntervalsSequence"], - "9804" : ["DT", "ExclusionStartDatetime"], - "9805" : ["FD", "ExclusionDuration"], - "9806" : ["SQ", "USImageDescriptionSequence"], - "9807" : ["SQ", "ImageDataTypeSequence"], - "9808" : ["CS", "DataType"], - "9809" : ["SQ", "TransducerScanPatternCodeSequence"], - "980B" : ["CS", "AliasedDataType"], - "980C" : ["CS", "PositionMeasuringDeviceUsed"], - "980D" : ["SQ", "TransducerGeometryCodeSequence"], - "980E" : ["SQ", "TransducerBeamSteeringCodeSequence"], - "980F" : ["SQ", "TransducerApplicationCodeSequence"], - "A001" : ["SQ", "ContributingEquipmentSequence"], - "A002" : ["DT", "ContributionDateTime"], - "A003" : ["ST", "ContributionDescription"] - }, - "0020" : { - "000D" : ["UI", "StudyInstanceUID"], - "000E" : ["UI", "SeriesInstanceUID"], - "0010" : ["SH", "StudyID"], - "0011" : ["IS", "SeriesNumber"], - "0012" : ["IS", "AcquisitionNumber"], - "0013" : ["IS", "InstanceNumber"], - "0014" : ["IS", "IsotopeNumber"], - "0015" : ["IS", "PhaseNumber"], - "0016" : ["IS", "IntervalNumber"], - "0017" : ["IS", "TimeSlotNumber"], - "0018" : ["IS", "AngleNumber"], - "0019" : ["IS", "ItemNumber"], - "0020" : ["CS", "PatientOrientation"], - "0022" : ["IS", "OverlayNumber"], - "0024" : ["IS", "CurveNumber"], - "0026" : ["IS", "LUTNumber"], - "0030" : ["DS", "ImagePosition"], - "0032" : ["DS", "ImagePositionPatient"], - "0035" : ["DS", "ImageOrientation"], - "0037" : ["DS", "ImageOrientationPatient"], - "0050" : ["DS", "Location"], - "0052" : ["UI", "FrameOfReferenceUID"], - "0060" : ["CS", "Laterality"], - "0062" : ["CS", "ImageLaterality"], - "0070" : ["LO", "ImageGeometryType"], - "0080" : ["CS", "MaskingImage"], - "00AA" : ["IS", "ReportNumber"], - "0100" : ["IS", "TemporalPositionIdentifier"], - "0105" : ["IS", "NumberOfTemporalPositions"], - "0110" : ["DS", "TemporalResolution"], - "0200" : ["UI", "SynchronizationFrameOfReferenceUID"], - "0242" : ["UI", "SOPInstanceUIDOfConcatenationSource"], - "1000" : ["IS", "SeriesInStudy"], - "1001" : ["IS", "AcquisitionsInSeries"], - "1002" : ["IS", "ImagesInAcquisition"], - "1003" : ["IS", "ImagesInSeries"], - "1004" : ["IS", "AcquisitionsInStudy"], - "1005" : ["IS", "ImagesInStudy"], - "1020" : ["LO", "Reference"], - "1040" : ["LO", "PositionReferenceIndicator"], - "1041" : ["DS", "SliceLocation"], - "1070" : ["IS", "OtherStudyNumbers"], - "1200" : ["IS", "NumberOfPatientRelatedStudies"], - "1202" : ["IS", "NumberOfPatientRelatedSeries"], - "1204" : ["IS", "NumberOfPatientRelatedInstances"], - "1206" : ["IS", "NumberOfStudyRelatedSeries"], - "1208" : ["IS", "NumberOfStudyRelatedInstances"], - "1209" : ["IS", "NumberOfSeriesRelatedInstances"], - "3401" : ["CS", "ModifyingDeviceID"], - "3402" : ["CS", "ModifiedImageID"], - "3403" : ["DA", "ModifiedImageDate"], - "3404" : ["LO", "ModifyingDeviceManufacturer"], - "3405" : ["TM", "ModifiedImageTime"], - "3406" : ["LO", "ModifiedImageDescription"], - "4000" : ["LT", "ImageComments"], - "5000" : ["AT", "OriginalImageIdentification"], - "5002" : ["LO", "OriginalImageIdentificationNomenclature"], - "9056" : ["SH", "StackID"], - "9057" : ["UL", "InStackPositionNumber"], - "9071" : ["SQ", "FrameAnatomySequence"], - "9072" : ["CS", "FrameLaterality"], - "9111" : ["SQ", "FrameContentSequence"], - "9113" : ["SQ", "PlanePositionSequence"], - "9116" : ["SQ", "PlaneOrientationSequence"], - "9128" : ["UL", "TemporalPositionIndex"], - "9153" : ["FD", "NominalCardiacTriggerDelayTime"], - "9154" : ["FL", "NominalCardiacTriggerTimePriorToRPeak"], - "9155" : ["FL", "ActualCardiacTriggerTimePriorToRPeak"], - "9156" : ["US", "FrameAcquisitionNumber"], - "9157" : ["UL", "DimensionIndexValues"], - "9158" : ["LT", "FrameComments"], - "9161" : ["UI", "ConcatenationUID"], - "9162" : ["US", "InConcatenationNumber"], - "9163" : ["US", "InConcatenationTotalNumber"], - "9164" : ["UI", "DimensionOrganizationUID"], - "9165" : ["AT", "DimensionIndexPointer"], - "9167" : ["AT", "FunctionalGroupPointer"], - "9213" : ["LO", "DimensionIndexPrivateCreator"], - "9221" : ["SQ", "DimensionOrganizationSequence"], - "9222" : ["SQ", "DimensionIndexSequence"], - "9228" : ["UL", "ConcatenationFrameOffsetNumber"], - "9238" : ["LO", "FunctionalGroupPrivateCreator"], - "9241" : ["FL", "NominalPercentageOfCardiacPhase"], - "9245" : ["FL", "NominalPercentageOfRespiratoryPhase"], - "9246" : ["FL", "StartingRespiratoryAmplitude"], - "9247" : ["CS", "StartingRespiratoryPhase"], - "9248" : ["FL", "EndingRespiratoryAmplitude"], - "9249" : ["CS", "EndingRespiratoryPhase"], - "9250" : ["CS", "RespiratoryTriggerType"], - "9251" : ["FD", "RRIntervalTimeNominal"], - "9252" : ["FD", "ActualCardiacTriggerDelayTime"], - "9253" : ["SQ", "RespiratorySynchronizationSequence"], - "9254" : ["FD", "RespiratoryIntervalTime"], - "9255" : ["FD", "NominalRespiratoryTriggerDelayTime"], - "9256" : ["FD", "RespiratoryTriggerDelayThreshold"], - "9257" : ["FD", "ActualRespiratoryTriggerDelayTime"], - "9301" : ["FD", "ImagePositionVolume"], - "9302" : ["FD", "ImageOrientationVolume"], - "9307" : ["CS", "UltrasoundAcquisitionGeometry"], - "9308" : ["FD", "ApexPosition"], - "9309" : ["FD", "VolumeToTransducerMappingMatrix"], - "930A" : ["FD", "VolumeToTableMappingMatrix"], - "930C" : ["CS", "PatientFrameOfReferenceSource"], - "930D" : ["FD", "TemporalPositionTimeOffset"], - "930E" : ["SQ", "PlanePositionVolumeSequence"], - "930F" : ["SQ", "PlaneOrientationVolumeSequence"], - "9310" : ["SQ", "TemporalPositionSequence"], - "9311" : ["CS", "DimensionOrganizationType"], - "9312" : ["UI", "VolumeFrameOfReferenceUID"], - "9313" : ["UI", "TableFrameOfReferenceUID"], - "9421" : ["LO", "DimensionDescriptionLabel"], - "9450" : ["SQ", "PatientOrientationInFrameSequence"], - "9453" : ["LO", "FrameLabel"], - "9518" : ["US", "AcquisitionIndex"], - "9529" : ["SQ", "ContributingSOPInstancesReferenceSequence"], - "9536" : ["US", "ReconstructionIndex"] - }, - "0022" : { - "0001" : ["US", "LightPathFilterPassThroughWavelength"], - "0002" : ["US", "LightPathFilterPassBand"], - "0003" : ["US", "ImagePathFilterPassThroughWavelength"], - "0004" : ["US", "ImagePathFilterPassBand"], - "0005" : ["CS", "PatientEyeMovementCommanded"], - "0006" : ["SQ", "PatientEyeMovementCommandCodeSequence"], - "0007" : ["FL", "SphericalLensPower"], - "0008" : ["FL", "CylinderLensPower"], - "0009" : ["FL", "CylinderAxis"], - "000A" : ["FL", "EmmetropicMagnification"], - "000B" : ["FL", "IntraOcularPressure"], - "000C" : ["FL", "HorizontalFieldOfView"], - "000D" : ["CS", "PupilDilated"], - "000E" : ["FL", "DegreeOfDilation"], - "0010" : ["FL", "StereoBaselineAngle"], - "0011" : ["FL", "StereoBaselineDisplacement"], - "0012" : ["FL", "StereoHorizontalPixelOffset"], - "0013" : ["FL", "StereoVerticalPixelOffset"], - "0014" : ["FL", "StereoRotation"], - "0015" : ["SQ", "AcquisitionDeviceTypeCodeSequence"], - "0016" : ["SQ", "IlluminationTypeCodeSequence"], - "0017" : ["SQ", "LightPathFilterTypeStackCodeSequence"], - "0018" : ["SQ", "ImagePathFilterTypeStackCodeSequence"], - "0019" : ["SQ", "LensesCodeSequence"], - "001A" : ["SQ", "ChannelDescriptionCodeSequence"], - "001B" : ["SQ", "RefractiveStateSequence"], - "001C" : ["SQ", "MydriaticAgentCodeSequence"], - "001D" : ["SQ", "RelativeImagePositionCodeSequence"], - "001E" : ["FL", "CameraAngleOfView"], - "0020" : ["SQ", "StereoPairsSequence"], - "0021" : ["SQ", "LeftImageSequence"], - "0022" : ["SQ", "RightImageSequence"], - "0030" : ["FL", "AxialLengthOfTheEye"], - "0031" : ["SQ", "OphthalmicFrameLocationSequence"], - "0032" : ["FL", "ReferenceCoordinates"], - "0035" : ["FL", "DepthSpatialResolution"], - "0036" : ["FL", "MaximumDepthDistortion"], - "0037" : ["FL", "AlongScanSpatialResolution"], - "0038" : ["FL", "MaximumAlongScanDistortion"], - "0039" : ["CS", "OphthalmicImageOrientation"], - "0041" : ["FL", "DepthOfTransverseImage"], - "0042" : ["SQ", "MydriaticAgentConcentrationUnitsSequence"], - "0048" : ["FL", "AcrossScanSpatialResolution"], - "0049" : ["FL", "MaximumAcrossScanDistortion"], - "004E" : ["DS", "MydriaticAgentConcentration"], - "0055" : ["FL", "IlluminationWaveLength"], - "0056" : ["FL", "IlluminationPower"], - "0057" : ["FL", "IlluminationBandwidth"], - "0058" : ["SQ", "MydriaticAgentSequence"], - "1007" : ["SQ", "OphthalmicAxialMeasurementsRightEyeSequence"], - "1008" : ["SQ", "OphthalmicAxialMeasurementsLeftEyeSequence"], - "1010" : ["CS", "OphthalmicAxialLengthMeasurementsType"], - "1019" : ["FL", "OphthalmicAxialLength"], - "1024" : ["SQ", "LensStatusCodeSequence"], - "1025" : ["SQ", "VitreousStatusCodeSequence"], - "1028" : ["SQ", "IOLFormulaCodeSequence"], - "1029" : ["LO", "IOLFormulaDetail"], - "1033" : ["FL", "KeratometerIndex"], - "1035" : ["SQ", "SourceOfOphthalmicAxialLengthCodeSequence"], - "1037" : ["FL", "TargetRefraction"], - "1039" : ["CS", "RefractiveProcedureOccurred"], - "1040" : ["SQ", "RefractiveSurgeryTypeCodeSequence"], - "1044" : ["SQ", "OphthalmicUltrasoundAxialMeasurementsTypeCodeSequence"], - "1050" : ["SQ", "OphthalmicAxialLengthMeasurementsSequence"], - "1053" : ["FL", "IOLPower"], - "1054" : ["FL", "PredictedRefractiveError"], - "1059" : ["FL", "OphthalmicAxialLengthVelocity"], - "1065" : ["LO", "LensStatusDescription"], - "1066" : ["LO", "VitreousStatusDescription"], - "1090" : ["SQ", "IOLPowerSequence"], - "1092" : ["SQ", "LensConstantSequence"], - "1093" : ["LO", "IOLManufacturer"], - "1094" : ["LO", "LensConstantDescription"], - "1096" : ["SQ", "KeratometryMeasurementTypeCodeSequence"], - "1100" : ["SQ", "ReferencedOphthalmicAxialMeasurementsSequence"], - "1101" : ["SQ", "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence"], - "1103" : ["SQ", "RefractiveErrorBeforeRefractiveSurgeryCodeSequence"], - "1121" : ["FL", "IOLPowerForExactEmmetropia"], - "1122" : ["FL", "IOLPowerForExactTargetRefraction"], - "1125" : ["SQ", "AnteriorChamberDepthDefinitionCodeSequence"], - "1130" : ["FL", "LensThickness"], - "1131" : ["FL", "AnteriorChamberDepth"], - "1132" : ["SQ", "SourceOfLensThicknessDataCodeSequence"], - "1133" : ["SQ", "SourceOfAnteriorChamberDepthDataCodeSequence"], - "1135" : ["SQ", "SourceOfRefractiveErrorDataCodeSequence"], - "1140" : ["CS", "OphthalmicAxialLengthMeasurementModified"], - "1150" : ["SQ", "OphthalmicAxialLengthDataSourceCodeSequence"], - "1153" : ["SQ", "OphthalmicAxialLengthAcquisitionMethodCodeSequence"], - "1155" : ["FL", "SignalToNoiseRatio"], - "1159" : ["LO", "OphthalmicAxialLengthDataSourceDescription"], - "1210" : ["SQ", "OphthalmicAxialLengthMeasurementsTotalLengthSequence"], - "1211" : ["SQ", "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"], - "1212" : ["SQ", "OphthalmicAxialLengthMeasurementsLengthSummationSequence"], - "1220" : ["SQ", "UltrasoundOphthalmicAxialLengthMeasurementsSequence"], - "1225" : ["SQ", "OpticalOphthalmicAxialLengthMeasurementsSequence"], - "1230" : ["SQ", "UltrasoundSelectedOphthalmicAxialLengthSequence"], - "1250" : ["SQ", "OphthalmicAxialLengthSelectionMethodCodeSequence"], - "1255" : ["SQ", "OpticalSelectedOphthalmicAxialLengthSequence"], - "1257" : ["SQ", "SelectedSegmentalOphthalmicAxialLengthSequence"], - "1260" : ["SQ", "SelectedTotalOphthalmicAxialLengthSequence"], - "1262" : ["SQ", "OphthalmicAxialLengthQualityMetricSequence"], - "1273" : ["LO", "OphthalmicAxialLengthQualityMetricTypeDescription"], - "1300" : ["SQ", "IntraocularLensCalculationsRightEyeSequence"], - "1310" : ["SQ", "IntraocularLensCalculationsLeftEyeSequence"], - "1330" : ["SQ", "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence"] - }, - "0024" : { - "0010" : ["FL", "VisualFieldHorizontalExtent"], - "0011" : ["FL", "VisualFieldVerticalExtent"], - "0012" : ["CS", "VisualFieldShape"], - "0016" : ["SQ", "ScreeningTestModeCodeSequence"], - "0018" : ["FL", "MaximumStimulusLuminance"], - "0020" : ["FL", "BackgroundLuminance"], - "0021" : ["SQ", "StimulusColorCodeSequence"], - "0024" : ["SQ", "BackgroundIlluminationColorCodeSequence"], - "0025" : ["FL", "StimulusArea"], - "0028" : ["FL", "StimulusPresentationTime"], - "0032" : ["SQ", "FixationSequence"], - "0033" : ["SQ", "FixationMonitoringCodeSequence"], - "0034" : ["SQ", "VisualFieldCatchTrialSequence"], - "0035" : ["US", "FixationCheckedQuantity"], - "0036" : ["US", "PatientNotProperlyFixatedQuantity"], - "0037" : ["CS", "PresentedVisualStimuliDataFlag"], - "0038" : ["US", "NumberOfVisualStimuli"], - "0039" : ["CS", "ExcessiveFixationLossesDataFlag"], - "0040" : ["CS", "ExcessiveFixationLosses"], - "0042" : ["US", "StimuliRetestingQuantity"], - "0044" : ["LT", "CommentsOnPatientPerformanceOfVisualField"], - "0045" : ["CS", "FalseNegativesEstimateFlag"], - "0046" : ["FL", "FalseNegativesEstimate"], - "0048" : ["US", "NegativeCatchTrialsQuantity"], - "0050" : ["US", "FalseNegativesQuantity"], - "0051" : ["CS", "ExcessiveFalseNegativesDataFlag"], - "0052" : ["CS", "ExcessiveFalseNegatives"], - "0053" : ["CS", "FalsePositivesEstimateFlag"], - "0054" : ["FL", "FalsePositivesEstimate"], - "0055" : ["CS", "CatchTrialsDataFlag"], - "0056" : ["US", "PositiveCatchTrialsQuantity"], - "0057" : ["CS", "TestPointNormalsDataFlag"], - "0058" : ["SQ", "TestPointNormalsSequence"], - "0059" : ["CS", "GlobalDeviationProbabilityNormalsFlag"], - "0060" : ["US", "FalsePositivesQuantity"], - "0061" : ["CS", "ExcessiveFalsePositivesDataFlag"], - "0062" : ["CS", "ExcessiveFalsePositives"], - "0063" : ["CS", "VisualFieldTestNormalsFlag"], - "0064" : ["SQ", "ResultsNormalsSequence"], - "0065" : ["SQ", "AgeCorrectedSensitivityDeviationAlgorithmSequence"], - "0066" : ["FL", "GlobalDeviationFromNormal"], - "0067" : ["SQ", "GeneralizedDefectSensitivityDeviationAlgorithmSequence"], - "0068" : ["FL", "LocalizedDeviationfromNormal"], - "0069" : ["LO", "PatientReliabilityIndicator"], - "0070" : ["FL", "VisualFieldMeanSensitivity"], - "0071" : ["FL", "GlobalDeviationProbability"], - "0072" : ["CS", "LocalDeviationProbabilityNormalsFlag"], - "0073" : ["FL", "LocalizedDeviationProbability"], - "0074" : ["CS", "ShortTermFluctuationCalculated"], - "0075" : ["FL", "ShortTermFluctuation"], - "0076" : ["CS", "ShortTermFluctuationProbabilityCalculated"], - "0077" : ["FL", "ShortTermFluctuationProbability"], - "0078" : ["CS", "CorrectedLocalizedDeviationFromNormalCalculated"], - "0079" : ["FL", "CorrectedLocalizedDeviationFromNormal"], - "0080" : ["CS", "CorrectedLocalizedDeviationFromNormalProbabilityCalculated"], - "0081" : ["FL", "CorrectedLocalizedDeviationFromNormalProbability"], - "0083" : ["SQ", "GlobalDeviationProbabilitySequence"], - "0085" : ["SQ", "LocalizedDeviationProbabilitySequence"], - "0086" : ["CS", "FovealSensitivityMeasured"], - "0087" : ["FL", "FovealSensitivity"], - "0088" : ["FL", "VisualFieldTestDuration"], - "0089" : ["SQ", "VisualFieldTestPointSequence"], - "0090" : ["FL", "VisualFieldTestPointXCoordinate"], - "0091" : ["FL", "VisualFieldTestPointYCoordinate"], - "0092" : ["FL", "AgeCorrectedSensitivityDeviationValue"], - "0093" : ["CS", "StimulusResults"], - "0094" : ["FL", "SensitivityValue"], - "0095" : ["CS", "RetestStimulusSeen"], - "0096" : ["FL", "RetestSensitivityValue"], - "0097" : ["SQ", "VisualFieldTestPointNormalsSequence"], - "0098" : ["FL", "QuantifiedDefect"], - "0100" : ["FL", "AgeCorrectedSensitivityDeviationProbabilityValue"], - "0102" : ["CS", "GeneralizedDefectCorrectedSensitivityDeviationFlag "], - "0103" : ["FL", "GeneralizedDefectCorrectedSensitivityDeviationValue "], - "0104" : ["FL", "GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue"], - "0105" : ["FL ", "MinimumSensitivityValue"], - "0106" : ["CS", "BlindSpotLocalized"], - "0107" : ["FL", "BlindSpotXCoordinate"], - "0108" : ["FL", "BlindSpotYCoordinate "], - "0110" : ["SQ", "VisualAcuityMeasurementSequence"], - "0112" : ["SQ", "RefractiveParametersUsedOnPatientSequence"], - "0113" : ["CS", "MeasurementLaterality"], - "0114" : ["SQ", "OphthalmicPatientClinicalInformationLeftEyeSequence"], - "0115" : ["SQ", "OphthalmicPatientClinicalInformationRightEyeSequence"], - "0117" : ["CS", "FovealPointNormativeDataFlag"], - "0118" : ["FL", "FovealPointProbabilityValue"], - "0120" : ["CS", "ScreeningBaselineMeasured"], - "0122" : ["SQ", "ScreeningBaselineMeasuredSequence"], - "0124" : ["CS", "ScreeningBaselineType"], - "0126" : ["FL", "ScreeningBaselineValue"], - "0202" : ["LO", "AlgorithmSource"], - "0306" : ["LO", "DataSetName"], - "0307" : ["LO", "DataSetVersion"], - "0308" : ["LO", "DataSetSource"], - "0309" : ["LO", "DataSetDescription"], - "0317" : ["SQ", "VisualFieldTestReliabilityGlobalIndexSequence"], - "0320" : ["SQ", "VisualFieldGlobalResultsIndexSequence"], - "0325" : ["SQ", "DataObservationSequence"], - "0338" : ["CS", "IndexNormalsFlag"], - "0341" : ["FL", "IndexProbability"], - "0344" : ["SQ", "IndexProbabilitySequence"] - }, - "0028" : { - "0002" : ["US", "SamplesPerPixel"], - "0003" : ["US", "SamplesPerPixelUsed"], - "0004" : ["CS", "PhotometricInterpretation"], - "0005" : ["US", "ImageDimensions"], - "0006" : ["US", "PlanarConfiguration"], - "0008" : ["IS", "NumberOfFrames"], - "0009" : ["AT", "FrameIncrementPointer"], - "000A" : ["AT", "FrameDimensionPointer"], - "0010" : ["US", "Rows"], - "0011" : ["US", "Columns"], - "0012" : ["US", "Planes"], - "0014" : ["US", "UltrasoundColorDataPresent"], - "0030" : ["DS", "PixelSpacing"], - "0031" : ["DS", "ZoomFactor"], - "0032" : ["DS", "ZoomCenter"], - "0034" : ["IS", "PixelAspectRatio"], - "0040" : ["CS", "ImageFormat"], - "0050" : ["LO", "ManipulatedImage"], - "0051" : ["CS", "CorrectedImage"], - "005F" : ["LO", "CompressionRecognitionCode"], - "0060" : ["CS", "CompressionCode"], - "0061" : ["SH", "CompressionOriginator"], - "0062" : ["LO", "CompressionLabel"], - "0063" : ["SH", "CompressionDescription"], - "0065" : ["CS", "CompressionSequence"], - "0066" : ["AT", "CompressionStepPointers"], - "0068" : ["US", "RepeatInterval"], - "0069" : ["US", "BitsGrouped"], - "0070" : ["US", "PerimeterTable"], - "0071" : ["SS", "PerimeterValue"], - "0080" : ["US", "PredictorRows"], - "0081" : ["US", "PredictorColumns"], - "0082" : ["US", "PredictorConstants"], - "0090" : ["CS", "BlockedPixels"], - "0091" : ["US", "BlockRows"], - "0092" : ["US", "BlockColumns"], - "0093" : ["US", "RowOverlap"], - "0094" : ["US", "ColumnOverlap"], - "0100" : ["US", "BitsAllocated"], - "0101" : ["US", "BitsStored"], - "0102" : ["US", "HighBit"], - "0103" : ["US", "PixelRepresentation"], - "0104" : ["SS", "SmallestValidPixelValue"], - "0105" : ["SS", "LargestValidPixelValue"], - "0106" : ["SS", "SmallestImagePixelValue"], - "0107" : ["SS", "LargestImagePixelValue"], - "0108" : ["SS", "SmallestPixelValueInSeries"], - "0109" : ["SS", "LargestPixelValueInSeries"], - "0110" : ["SS", "SmallestImagePixelValueInPlane"], - "0111" : ["SS", "LargestImagePixelValueInPlane"], - "0120" : ["SS", "PixelPaddingValue"], - "0121" : ["SS", "PixelPaddingRangeLimit"], - "0200" : ["US", "ImageLocation"], - "0300" : ["CS", "QualityControlImage"], - "0301" : ["CS", "BurnedInAnnotation"], - "0302" : ["CS", "RecognizableVisualFeatures"], - "0303" : ["CS", "LongitudinalTemporalInformationModified"], - "0400" : ["LO", "TransformLabel"], - "0401" : ["LO", "TransformVersionNumber"], - "0402" : ["US", "NumberOfTransformSteps"], - "0403" : ["LO", "SequenceOfCompressedData"], - "0404" : ["AT", "DetailsOfCoefficients"], - "0700" : ["LO", "DCTLabel"], - "0701" : ["CS", "DataBlockDescription"], - "0702" : ["AT", "DataBlock"], - "0710" : ["US", "NormalizationFactorFormat"], - "0720" : ["US", "ZonalMapNumberFormat"], - "0721" : ["AT", "ZonalMapLocation"], - "0722" : ["US", "ZonalMapFormat"], - "0730" : ["US", "AdaptiveMapFormat"], - "0740" : ["US", "CodeNumberFormat"], - "0A02" : ["CS", "PixelSpacingCalibrationType"], - "0A04" : ["LO", "PixelSpacingCalibrationDescription"], - "1040" : ["CS", "PixelIntensityRelationship"], - "1041" : ["SS", "PixelIntensityRelationshipSign"], - "1050" : ["DS", "WindowCenter"], - "1051" : ["DS", "WindowWidth"], - "1052" : ["DS", "RescaleIntercept"], - "1053" : ["DS", "RescaleSlope"], - "1054" : ["LO", "RescaleType"], - "1055" : ["LO", "WindowCenterWidthExplanation"], - "1056" : ["CS", "VOILUTFunction"], - "1080" : ["CS", "GrayScale"], - "1090" : ["CS", "RecommendedViewingMode"], - "1100" : ["SS", "GrayLookupTableDescriptor"], - "1101" : ["SS", "RedPaletteColorLookupTableDescriptor"], - "1102" : ["SS", "GreenPaletteColorLookupTableDescriptor"], - "1103" : ["SS", "BluePaletteColorLookupTableDescriptor"], - "1104" : ["US", "AlphaPaletteColorLookupTableDescriptor"], - "1111" : ["SS", "LargeRedPaletteColorLookupTableDescriptor"], - "1112" : ["SS", "LargeGreenPaletteColorLookupTableDescriptor"], - "1113" : ["SS", "LargeBluePaletteColorLookupTableDescriptor"], - "1199" : ["UI", "PaletteColorLookupTableUID"], - "1200" : ["OW", "GrayLookupTableData"], - "1201" : ["OW", "RedPaletteColorLookupTableData"], - "1202" : ["OW", "GreenPaletteColorLookupTableData"], - "1203" : ["OW", "BluePaletteColorLookupTableData"], - "1204" : ["OW", "AlphaPaletteColorLookupTableData"], - "1211" : ["OW", "LargeRedPaletteColorLookupTableData"], - "1212" : ["OW", "LargeGreenPaletteColorLookupTableData"], - "1213" : ["OW", "LargeBluePaletteColorLookupTableData"], - "1214" : ["UI", "LargePaletteColorLookupTableUID"], - "1221" : ["OW", "SegmentedRedPaletteColorLookupTableData"], - "1222" : ["OW", "SegmentedGreenPaletteColorLookupTableData"], - "1223" : ["OW", "SegmentedBluePaletteColorLookupTableData"], - "1300" : ["CS", "BreastImplantPresent"], - "1350" : ["CS", "PartialView"], - "1351" : ["ST", "PartialViewDescription"], - "1352" : ["SQ", "PartialViewCodeSequence"], - "135A" : ["CS", "SpatialLocationsPreserved"], - "1401" : ["SQ", "DataFrameAssignmentSequence"], - "1402" : ["CS", "DataPathAssignment"], - "1403" : ["US", "BitsMappedToColorLookupTable"], - "1404" : ["SQ", "BlendingLUT1Sequence"], - "1405" : ["CS", "BlendingLUT1TransferFunction"], - "1406" : ["FD", "BlendingWeightConstant"], - "1407" : ["US", "BlendingLookupTableDescriptor"], - "1408" : ["OW", "BlendingLookupTableData"], - "140B" : ["SQ", "EnhancedPaletteColorLookupTableSequence"], - "140C" : ["SQ", "BlendingLUT2Sequence"], - "140D" : ["CS", "BlendingLUT2TransferFunction"], - "140E" : ["CS", "DataPathID"], - "140F" : ["CS", "RGBLUTTransferFunction"], - "1410" : ["CS", "AlphaLUTTransferFunction"], - "2000" : ["OB", "ICCProfile"], - "2110" : ["CS", "LossyImageCompression"], - "2112" : ["DS", "LossyImageCompressionRatio"], - "2114" : ["CS", "LossyImageCompressionMethod"], - "3000" : ["SQ", "ModalityLUTSequence"], - "3002" : ["SS", "LUTDescriptor"], - "3003" : ["LO", "LUTExplanation"], - "3004" : ["LO", "ModalityLUTType"], - "3006" : ["OW", "LUTData"], - "3010" : ["SQ", "VOILUTSequence"], - "3110" : ["SQ", "SoftcopyVOILUTSequence"], - "4000" : ["LT", "ImagePresentationComments"], - "5000" : ["SQ", "BiPlaneAcquisitionSequence"], - "6010" : ["US", "RepresentativeFrameNumber"], - "6020" : ["US", "FrameNumbersOfInterest"], - "6022" : ["LO", "FrameOfInterestDescription"], - "6023" : ["CS", "FrameOfInterestType"], - "6030" : ["US", "MaskPointers"], - "6040" : ["US", "RWavePointer"], - "6100" : ["SQ", "MaskSubtractionSequence"], - "6101" : ["CS", "MaskOperation"], - "6102" : ["US", "ApplicableFrameRange"], - "6110" : ["US", "MaskFrameNumbers"], - "6112" : ["US", "ContrastFrameAveraging"], - "6114" : ["FL", "MaskSubPixelShift"], - "6120" : ["SS", "TIDOffset"], - "6190" : ["ST", "MaskOperationExplanation"], - "7FE0" : ["UT", "PixelDataProviderURL"], - "9001" : ["UL", "DataPointRows"], - "9002" : ["UL", "DataPointColumns"], - "9003" : ["CS", "SignalDomainColumns"], - "9099" : ["US", "LargestMonochromePixelValue"], - "9108" : ["CS", "DataRepresentation"], - "9110" : ["SQ", "PixelMeasuresSequence"], - "9132" : ["SQ", "FrameVOILUTSequence"], - "9145" : ["SQ", "PixelValueTransformationSequence"], - "9235" : ["CS", "SignalDomainRows"], - "9411" : ["FL", "DisplayFilterPercentage"], - "9415" : ["SQ", "FramePixelShiftSequence"], - "9416" : ["US", "SubtractionItemID"], - "9422" : ["SQ", "PixelIntensityRelationshipLUTSequence"], - "9443" : ["SQ", "FramePixelDataPropertiesSequence"], - "9444" : ["CS", "GeometricalProperties"], - "9445" : ["FL", "GeometricMaximumDistortion"], - "9446" : ["CS", "ImageProcessingApplied"], - "9454" : ["CS", "MaskSelectionMode"], - "9474" : ["CS", "LUTFunction"], - "9478" : ["FL", "MaskVisibilityPercentage"], - "9501" : ["SQ", "PixelShiftSequence"], - "9502" : ["SQ", "RegionPixelShiftSequence"], - "9503" : ["SS", "VerticesOfTheRegion"], - "9505" : ["SQ", "MultiFramePresentationSequence"], - "9506" : ["US", "PixelShiftFrameRange"], - "9507" : ["US", "LUTFrameRange"], - "9520" : ["DS", "ImageToEquipmentMappingMatrix"], - "9537" : ["CS", "EquipmentCoordinateSystemIdentification"] - }, - "0032" : { - "000A" : ["CS", "StudyStatusID"], - "000C" : ["CS", "StudyPriorityID"], - "0012" : ["LO", "StudyIDIssuer"], - "0032" : ["DA", "StudyVerifiedDate"], - "0033" : ["TM", "StudyVerifiedTime"], - "0034" : ["DA", "StudyReadDate"], - "0035" : ["TM", "StudyReadTime"], - "1000" : ["DA", "ScheduledStudyStartDate"], - "1001" : ["TM", "ScheduledStudyStartTime"], - "1010" : ["DA", "ScheduledStudyStopDate"], - "1011" : ["TM", "ScheduledStudyStopTime"], - "1020" : ["LO", "ScheduledStudyLocation"], - "1021" : ["AE", "ScheduledStudyLocationAETitle"], - "1030" : ["LO", "ReasonForStudy"], - "1031" : ["SQ", "RequestingPhysicianIdentificationSequence"], - "1032" : ["PN", "RequestingPhysician"], - "1033" : ["LO", "RequestingService"], - "1034" : ["SQ", "RequestingServiceCodeSequence"], - "1040" : ["DA", "StudyArrivalDate"], - "1041" : ["TM", "StudyArrivalTime"], - "1050" : ["DA", "StudyCompletionDate"], - "1051" : ["TM", "StudyCompletionTime"], - "1055" : ["CS", "StudyComponentStatusID"], - "1060" : ["LO", "RequestedProcedureDescription"], - "1064" : ["SQ", "RequestedProcedureCodeSequence"], - "1070" : ["LO", "RequestedContrastAgent"], - "4000" : ["LT", "StudyComments"] - }, - "0038" : { - "0004" : ["SQ", "ReferencedPatientAliasSequence"], - "0008" : ["CS", "VisitStatusID"], - "0010" : ["LO", "AdmissionID"], - "0011" : ["LO", "IssuerOfAdmissionID"], - "0014" : ["SQ", "IssuerOfAdmissionIDSequence"], - "0016" : ["LO", "RouteOfAdmissions"], - "001A" : ["DA", "ScheduledAdmissionDate"], - "001B" : ["TM", "ScheduledAdmissionTime"], - "001C" : ["DA", "ScheduledDischargeDate"], - "001D" : ["TM", "ScheduledDischargeTime"], - "001E" : ["LO", "ScheduledPatientInstitutionResidence"], - "0020" : ["DA", "AdmittingDate"], - "0021" : ["TM", "AdmittingTime"], - "0030" : ["DA", "DischargeDate"], - "0032" : ["TM", "DischargeTime"], - "0040" : ["LO", "DischargeDiagnosisDescription"], - "0044" : ["SQ", "DischargeDiagnosisCodeSequence"], - "0050" : ["LO", "SpecialNeeds"], - "0060" : ["LO", "ServiceEpisodeID"], - "0061" : ["LO", "IssuerOfServiceEpisodeID"], - "0062" : ["LO", "ServiceEpisodeDescription"], - "0064" : ["SQ", "IssuerOfServiceEpisodeIDSequence"], - "0100" : ["SQ", "PertinentDocumentsSequence"], - "0300" : ["LO", "CurrentPatientLocation"], - "0400" : ["LO", "PatientInstitutionResidence"], - "0500" : ["LO", "PatientState"], - "0502" : ["SQ", "PatientClinicalTrialParticipationSequence"], - "4000" : ["LT", "VisitComments"] - }, - "003A" : { - "0004" : ["CS", "WaveformOriginality"], - "0005" : ["US", "NumberOfWaveformChannels"], - "0010" : ["UL", "NumberOfWaveformSamples"], - "001A" : ["DS", "SamplingFrequency"], - "0020" : ["SH", "MultiplexGroupLabel"], - "0200" : ["SQ", "ChannelDefinitionSequence"], - "0202" : ["IS", "WaveformChannelNumber"], - "0203" : ["SH", "ChannelLabel"], - "0205" : ["CS", "ChannelStatus"], - "0208" : ["SQ", "ChannelSourceSequence"], - "0209" : ["SQ", "ChannelSourceModifiersSequence"], - "020A" : ["SQ", "SourceWaveformSequence"], - "020C" : ["LO", "ChannelDerivationDescription"], - "0210" : ["DS", "ChannelSensitivity"], - "0211" : ["SQ", "ChannelSensitivityUnitsSequence"], - "0212" : ["DS", "ChannelSensitivityCorrectionFactor"], - "0213" : ["DS", "ChannelBaseline"], - "0214" : ["DS", "ChannelTimeSkew"], - "0215" : ["DS", "ChannelSampleSkew"], - "0218" : ["DS", "ChannelOffset"], - "021A" : ["US", "WaveformBitsStored"], - "0220" : ["DS", "FilterLowFrequency"], - "0221" : ["DS", "FilterHighFrequency"], - "0222" : ["DS", "NotchFilterFrequency"], - "0223" : ["DS", "NotchFilterBandwidth"], - "0230" : ["FL", "WaveformDataDisplayScale"], - "0231" : ["US", "WaveformDisplayBackgroundCIELabValue"], - "0240" : ["SQ", "WaveformPresentationGroupSequence"], - "0241" : ["US", "PresentationGroupNumber"], - "0242" : ["SQ", "ChannelDisplaySequence"], - "0244" : ["US", "ChannelRecommendedDisplayCIELabValue"], - "0245" : ["FL", "ChannelPosition"], - "0246" : ["CS", "DisplayShadingFlag"], - "0247" : ["FL", "FractionalChannelDisplayScale"], - "0248" : ["FL", "AbsoluteChannelDisplayScale"], - "0300" : ["SQ", "MultiplexedAudioChannelsDescriptionCodeSequence"], - "0301" : ["IS", "ChannelIdentificationCode"], - "0302" : ["CS", "ChannelMode"] - }, - "0040" : { - "0001" : ["AE", "ScheduledStationAETitle"], - "0002" : ["DA", "ScheduledProcedureStepStartDate"], - "0003" : ["TM", "ScheduledProcedureStepStartTime"], - "0004" : ["DA", "ScheduledProcedureStepEndDate"], - "0005" : ["TM", "ScheduledProcedureStepEndTime"], - "0006" : ["PN", "ScheduledPerformingPhysicianName"], - "0007" : ["LO", "ScheduledProcedureStepDescription"], - "0008" : ["SQ", "ScheduledProtocolCodeSequence"], - "0009" : ["SH", "ScheduledProcedureStepID"], - "000A" : ["SQ", "StageCodeSequence"], - "000B" : ["SQ", "ScheduledPerformingPhysicianIdentificationSequence"], - "0010" : ["SH", "ScheduledStationName"], - "0011" : ["SH", "ScheduledProcedureStepLocation"], - "0012" : ["LO", "PreMedication"], - "0020" : ["CS", "ScheduledProcedureStepStatus"], - "0026" : ["SQ", "OrderPlacerIdentifierSequence"], - "0027" : ["SQ", "OrderFillerIdentifierSequence"], - "0031" : ["UT", "LocalNamespaceEntityID"], - "0032" : ["UT", "UniversalEntityID"], - "0033" : ["CS", "UniversalEntityIDType"], - "0035" : ["CS", "IdentifierTypeCode"], - "0036" : ["SQ", "AssigningFacilitySequence"], - "0039" : ["SQ", "AssigningJurisdictionCodeSequence"], - "003A" : ["SQ", "AssigningAgencyOrDepartmentCodeSequence"], - "0100" : ["SQ", "ScheduledProcedureStepSequence"], - "0220" : ["SQ", "ReferencedNonImageCompositeSOPInstanceSequence"], - "0241" : ["AE", "PerformedStationAETitle"], - "0242" : ["SH", "PerformedStationName"], - "0243" : ["SH", "PerformedLocation"], - "0244" : ["DA", "PerformedProcedureStepStartDate"], - "0245" : ["TM", "PerformedProcedureStepStartTime"], - "0250" : ["DA", "PerformedProcedureStepEndDate"], - "0251" : ["TM", "PerformedProcedureStepEndTime"], - "0252" : ["CS", "PerformedProcedureStepStatus"], - "0253" : ["SH", "PerformedProcedureStepID"], - "0254" : ["LO", "PerformedProcedureStepDescription"], - "0255" : ["LO", "PerformedProcedureTypeDescription"], - "0260" : ["SQ", "PerformedProtocolCodeSequence"], - "0261" : ["CS", "PerformedProtocolType"], - "0270" : ["SQ", "ScheduledStepAttributesSequence"], - "0275" : ["SQ", "RequestAttributesSequence"], - "0280" : ["ST", "CommentsOnThePerformedProcedureStep"], - "0281" : ["SQ", "PerformedProcedureStepDiscontinuationReasonCodeSequence"], - "0293" : ["SQ", "QuantitySequence"], - "0294" : ["DS", "Quantity"], - "0295" : ["SQ", "MeasuringUnitsSequence"], - "0296" : ["SQ", "BillingItemSequence"], - "0300" : ["US", "TotalTimeOfFluoroscopy"], - "0301" : ["US", "TotalNumberOfExposures"], - "0302" : ["US", "EntranceDose"], - "0303" : ["US", "ExposedArea"], - "0306" : ["DS", "DistanceSourceToEntrance"], - "0307" : ["DS", "DistanceSourceToSupport"], - "030E" : ["SQ", "ExposureDoseSequence"], - "0310" : ["ST", "CommentsOnRadiationDose"], - "0312" : ["DS", "XRayOutput"], - "0314" : ["DS", "HalfValueLayer"], - "0316" : ["DS", "OrganDose"], - "0318" : ["CS", "OrganExposed"], - "0320" : ["SQ", "BillingProcedureStepSequence"], - "0321" : ["SQ", "FilmConsumptionSequence"], - "0324" : ["SQ", "BillingSuppliesAndDevicesSequence"], - "0330" : ["SQ", "ReferencedProcedureStepSequence"], - "0340" : ["SQ", "PerformedSeriesSequence"], - "0400" : ["LT", "CommentsOnTheScheduledProcedureStep"], - "0440" : ["SQ", "ProtocolContextSequence"], - "0441" : ["SQ", "ContentItemModifierSequence"], - "0500" : ["SQ", "ScheduledSpecimenSequence"], - "050A" : ["LO", "SpecimenAccessionNumber"], - "0512" : ["LO", "ContainerIdentifier"], - "0513" : ["SQ", "IssuerOfTheContainerIdentifierSequence"], - "0515" : ["SQ", "AlternateContainerIdentifierSequence"], - "0518" : ["SQ", "ContainerTypeCodeSequence"], - "051A" : ["LO", "ContainerDescription"], - "0520" : ["SQ", "ContainerComponentSequence"], - "0550" : ["SQ", "SpecimenSequence"], - "0551" : ["LO", "SpecimenIdentifier"], - "0552" : ["SQ", "SpecimenDescriptionSequenceTrial"], - "0553" : ["ST", "SpecimenDescriptionTrial"], - "0554" : ["UI", "SpecimenUID"], - "0555" : ["SQ", "AcquisitionContextSequence"], - "0556" : ["ST", "AcquisitionContextDescription"], - "059A" : ["SQ", "SpecimenTypeCodeSequence"], - "0560" : ["SQ", "SpecimenDescriptionSequence"], - "0562" : ["SQ", "IssuerOfTheSpecimenIdentifierSequence"], - "0600" : ["LO", "SpecimenShortDescription"], - "0602" : ["UT", "SpecimenDetailedDescription"], - "0610" : ["SQ", "SpecimenPreparationSequence"], - "0612" : ["SQ", "SpecimenPreparationStepContentItemSequence"], - "0620" : ["SQ", "SpecimenLocalizationContentItemSequence"], - "06FA" : ["LO", "SlideIdentifier"], - "071A" : ["SQ", "ImageCenterPointCoordinatesSequence"], - "072A" : ["DS", "XOffsetInSlideCoordinateSystem"], - "073A" : ["DS", "YOffsetInSlideCoordinateSystem"], - "074A" : ["DS", "ZOffsetInSlideCoordinateSystem"], - "08D8" : ["SQ", "PixelSpacingSequence"], - "08DA" : ["SQ", "CoordinateSystemAxisCodeSequence"], - "08EA" : ["SQ", "MeasurementUnitsCodeSequence"], - "09F8" : ["SQ", "VitalStainCodeSequenceTrial"], - "1001" : ["SH", "RequestedProcedureID"], - "1002" : ["LO", "ReasonForTheRequestedProcedure"], - "1003" : ["SH", "RequestedProcedurePriority"], - "1004" : ["LO", "PatientTransportArrangements"], - "1005" : ["LO", "RequestedProcedureLocation"], - "1006" : ["SH", "PlacerOrderNumberProcedure"], - "1007" : ["SH", "FillerOrderNumberProcedure"], - "1008" : ["LO", "ConfidentialityCode"], - "1009" : ["SH", "ReportingPriority"], - "100A" : ["SQ", "ReasonForRequestedProcedureCodeSequence"], - "1010" : ["PN", "NamesOfIntendedRecipientsOfResults"], - "1011" : ["SQ", "IntendedRecipientsOfResultsIdentificationSequence"], - "1012" : ["SQ", "ReasonForPerformedProcedureCodeSequence"], - "1060" : ["LO", "RequestedProcedureDescriptionTrial"], - "1101" : ["SQ", "PersonIdentificationCodeSequence"], - "1102" : ["ST", "PersonAddress"], - "1103" : ["LO", "PersonTelephoneNumbers"], - "1400" : ["LT", "RequestedProcedureComments"], - "2001" : ["LO", "ReasonForTheImagingServiceRequest"], - "2004" : ["DA", "IssueDateOfImagingServiceRequest"], - "2005" : ["TM", "IssueTimeOfImagingServiceRequest"], - "2006" : ["SH", "PlacerOrderNumberImagingServiceRequestRetired"], - "2007" : ["SH", "FillerOrderNumberImagingServiceRequestRetired"], - "2008" : ["PN", "OrderEnteredBy"], - "2009" : ["SH", "OrderEntererLocation"], - "2010" : ["SH", "OrderCallbackPhoneNumber"], - "2016" : ["LO", "PlacerOrderNumberImagingServiceRequest"], - "2017" : ["LO", "FillerOrderNumberImagingServiceRequest"], - "2400" : ["LT", "ImagingServiceRequestComments"], - "3001" : ["LO", "ConfidentialityConstraintOnPatientDataDescription"], - "4001" : ["CS", "GeneralPurposeScheduledProcedureStepStatus"], - "4002" : ["CS", "GeneralPurposePerformedProcedureStepStatus"], - "4003" : ["CS", "GeneralPurposeScheduledProcedureStepPriority"], - "4004" : ["SQ", "ScheduledProcessingApplicationsCodeSequence"], - "4005" : ["DT", "ScheduledProcedureStepStartDateTime"], - "4006" : ["CS", "MultipleCopiesFlag"], - "4007" : ["SQ", "PerformedProcessingApplicationsCodeSequence"], - "4009" : ["SQ", "HumanPerformerCodeSequence"], - "4010" : ["DT", "ScheduledProcedureStepModificationDateTime"], - "4011" : ["DT", "ExpectedCompletionDateTime"], - "4015" : ["SQ", "ResultingGeneralPurposePerformedProcedureStepsSequence"], - "4016" : ["SQ", "ReferencedGeneralPurposeScheduledProcedureStepSequence"], - "4018" : ["SQ", "ScheduledWorkitemCodeSequence"], - "4019" : ["SQ", "PerformedWorkitemCodeSequence"], - "4020" : ["CS", "InputAvailabilityFlag"], - "4021" : ["SQ", "InputInformationSequence"], - "4022" : ["SQ", "RelevantInformationSequence"], - "4023" : ["UI", "ReferencedGeneralPurposeScheduledProcedureStepTransactionUID"], - "4025" : ["SQ", "ScheduledStationNameCodeSequence"], - "4026" : ["SQ", "ScheduledStationClassCodeSequence"], - "4027" : ["SQ", "ScheduledStationGeographicLocationCodeSequence"], - "4028" : ["SQ", "PerformedStationNameCodeSequence"], - "4029" : ["SQ", "PerformedStationClassCodeSequence"], - "4030" : ["SQ", "PerformedStationGeographicLocationCodeSequence"], - "4031" : ["SQ", "RequestedSubsequentWorkitemCodeSequence"], - "4032" : ["SQ", "NonDICOMOutputCodeSequence"], - "4033" : ["SQ", "OutputInformationSequence"], - "4034" : ["SQ", "ScheduledHumanPerformersSequence"], - "4035" : ["SQ", "ActualHumanPerformersSequence"], - "4036" : ["LO", "HumanPerformerOrganization"], - "4037" : ["PN", "HumanPerformerName"], - "4040" : ["CS", "RawDataHandling"], - "4041" : ["CS", "InputReadinessState"], - "4050" : ["DT", "PerformedProcedureStepStartDateTime"], - "4051" : ["DT", "PerformedProcedureStepEndDateTime"], - "4052" : ["DT", "ProcedureStepCancellationDateTime"], - "8302" : ["DS", "EntranceDoseInmGy"], - "9094" : ["SQ", "ReferencedImageRealWorldValueMappingSequence"], - "9096" : ["SQ", "RealWorldValueMappingSequence"], - "9098" : ["SQ", "PixelValueMappingCodeSequence"], - "9210" : ["SH", "LUTLabel"], - "9211" : ["SS", "RealWorldValueLastValueMapped"], - "9212" : ["FD", "RealWorldValueLUTData"], - "9216" : ["SS", "RealWorldValueFirstValueMapped"], - "9224" : ["FD", "RealWorldValueIntercept"], - "9225" : ["FD", "RealWorldValueSlope"], - "A007" : ["CS", "FindingsFlagTrial"], - "A010" : ["CS", "RelationshipType"], - "A020" : ["SQ", "FindingsSequenceTrial"], - "A021" : ["UI", "FindingsGroupUIDTrial"], - "A022" : ["UI", "ReferencedFindingsGroupUIDTrial"], - "A023" : ["DA", "FindingsGroupRecordingDateTrial"], - "A024" : ["TM", "FindingsGroupRecordingTimeTrial"], - "A026" : ["SQ", "FindingsSourceCategoryCodeSequenceTrial"], - "A027" : ["LO", "VerifyingOrganization"], - "A028" : ["SQ", "DocumentingOrganizationIdentifierCodeSequenceTrial"], - "A030" : ["DT", "VerificationDateTime"], - "A032" : ["DT", "ObservationDateTime"], - "A040" : ["CS", "ValueType"], - "A043" : ["SQ", "ConceptNameCodeSequence"], - "A047" : ["LO", "MeasurementPrecisionDescriptionTrial"], - "A050" : ["CS", "ContinuityOfContent"], - "A057" : ["CS", "UrgencyOrPriorityAlertsTrial"], - "A060" : ["LO", "SequencingIndicatorTrial"], - "A066" : ["SQ", "DocumentIdentifierCodeSequenceTrial"], - "A067" : ["PN", "DocumentAuthorTrial"], - "A068" : ["SQ", "DocumentAuthorIdentifierCodeSequenceTrial"], - "A070" : ["SQ", "IdentifierCodeSequenceTrial"], - "A073" : ["SQ", "VerifyingObserverSequence"], - "A074" : ["OB", "ObjectBinaryIdentifierTrial"], - "A075" : ["PN", "VerifyingObserverName"], - "A076" : ["SQ", "DocumentingObserverIdentifierCodeSequenceTrial"], - "A078" : ["SQ", "AuthorObserverSequence"], - "A07A" : ["SQ", "ParticipantSequence"], - "A07C" : ["SQ", "CustodialOrganizationSequence"], - "A080" : ["CS", "ParticipationType"], - "A082" : ["DT", "ParticipationDateTime"], - "A084" : ["CS", "ObserverType"], - "A085" : ["SQ", "ProcedureIdentifierCodeSequenceTrial"], - "A088" : ["SQ", "VerifyingObserverIdentificationCodeSequence"], - "A089" : ["OB", "ObjectDirectoryBinaryIdentifierTrial"], - "A090" : ["SQ", "EquivalentCDADocumentSequence"], - "A0B0" : ["US", "ReferencedWaveformChannels"], - "A110" : ["DA", "DateOfDocumentOrVerbalTransactionTrial"], - "A112" : ["TM", "TimeOfDocumentCreationOrVerbalTransactionTrial"], - "A120" : ["DT", "DateTime"], - "A121" : ["DA", "Date"], - "A122" : ["TM", "Time"], - "A123" : ["PN", "PersonName"], - "A124" : ["UI", "UID"], - "A125" : ["CS", "ReportStatusIDTrial"], - "A130" : ["CS", "TemporalRangeType"], - "A132" : ["UL", "ReferencedSamplePositions"], - "A136" : ["US", "ReferencedFrameNumbers"], - "A138" : ["DS", "ReferencedTimeOffsets"], - "A13A" : ["DT", "ReferencedDateTime"], - "A160" : ["UT", "TextValue"], - "A167" : ["SQ", "ObservationCategoryCodeSequenceTrial"], - "A168" : ["SQ", "ConceptCodeSequence"], - "A16A" : ["ST", "BibliographicCitationTrial"], - "A170" : ["SQ", "PurposeOfReferenceCodeSequence"], - "A171" : ["UI", "ObservationUIDTrial"], - "A172" : ["UI", "ReferencedObservationUIDTrial"], - "A173" : ["CS", "ReferencedObservationClassTrial"], - "A174" : ["CS", "ReferencedObjectObservationClassTrial"], - "A180" : ["US", "AnnotationGroupNumber"], - "A192" : ["DA", "ObservationDateTrial"], - "A193" : ["TM", "ObservationTimeTrial"], - "A194" : ["CS", "MeasurementAutomationTrial"], - "A195" : ["SQ", "ModifierCodeSequence"], - "A224" : ["ST", "IdentificationDescriptionTrial"], - "A290" : ["CS", "CoordinatesSetGeometricTypeTrial"], - "A296" : ["SQ", "AlgorithmCodeSequenceTrial"], - "A297" : ["ST", "AlgorithmDescriptionTrial"], - "A29A" : ["SL", "PixelCoordinatesSetTrial"], - "A300" : ["SQ", "MeasuredValueSequence"], - "A301" : ["SQ", "NumericValueQualifierCodeSequence"], - "A307" : ["PN", "CurrentObserverTrial"], - "A30A" : ["DS", "NumericValue"], - "A313" : ["SQ", "ReferencedAccessionSequenceTrial"], - "A33A" : ["ST", "ReportStatusCommentTrial"], - "A340" : ["SQ", "ProcedureContextSequenceTrial"], - "A352" : ["PN", "VerbalSourceTrial"], - "A353" : ["ST", "AddressTrial"], - "A354" : ["LO", "TelephoneNumberTrial"], - "A358" : ["SQ", "VerbalSourceIdentifierCodeSequenceTrial"], - "A360" : ["SQ", "PredecessorDocumentsSequence"], - "A370" : ["SQ", "ReferencedRequestSequence"], - "A372" : ["SQ", "PerformedProcedureCodeSequence"], - "A375" : ["SQ", "CurrentRequestedProcedureEvidenceSequence"], - "A380" : ["SQ", "ReportDetailSequenceTrial"], - "A385" : ["SQ", "PertinentOtherEvidenceSequence"], - "A390" : ["SQ", "HL7StructuredDocumentReferenceSequence"], - "A402" : ["UI", "ObservationSubjectUIDTrial"], - "A403" : ["CS", "ObservationSubjectClassTrial"], - "A404" : ["SQ", "ObservationSubjectTypeCodeSequenceTrial"], - "A491" : ["CS", "CompletionFlag"], - "A492" : ["LO", "CompletionFlagDescription"], - "A493" : ["CS", "VerificationFlag"], - "A494" : ["CS", "ArchiveRequested"], - "A496" : ["CS", "PreliminaryFlag"], - "A504" : ["SQ", "ContentTemplateSequence"], - "A525" : ["SQ", "IdenticalDocumentsSequence"], - "A600" : ["CS", "ObservationSubjectContextFlagTrial"], - "A601" : ["CS", "ObserverContextFlagTrial"], - "A603" : ["CS", "ProcedureContextFlagTrial"], - "A730" : ["SQ", "ContentSequence"], - "A731" : ["SQ", "RelationshipSequenceTrial"], - "A732" : ["SQ", "RelationshipTypeCodeSequenceTrial"], - "A744" : ["SQ", "LanguageCodeSequenceTrial"], - "A992" : ["ST", "UniformResourceLocatorTrial"], - "B020" : ["SQ", "WaveformAnnotationSequence"], - "DB00" : ["CS", "TemplateIdentifier"], - "DB06" : ["DT", "TemplateVersion"], - "DB07" : ["DT", "TemplateLocalVersion"], - "DB0B" : ["CS", "TemplateExtensionFlag"], - "DB0C" : ["UI", "TemplateExtensionOrganizationUID"], - "DB0D" : ["UI", "TemplateExtensionCreatorUID"], - "DB73" : ["UL", "ReferencedContentItemIdentifier"], - "E001" : ["ST", "HL7InstanceIdentifier"], - "E004" : ["DT", "HL7DocumentEffectiveTime"], - "E006" : ["SQ", "HL7DocumentTypeCodeSequence"], - "E008" : ["SQ", "DocumentClassCodeSequence"], - "E010" : ["UT", "RetrieveURI"], - "E011" : ["UI", "RetrieveLocationUID"], - "E020" : ["CS", "TypeOfInstances"], - "E021" : ["SQ", "DICOMRetrievalSequence"], - "E022" : ["SQ", "DICOMMediaRetrievalSequence"], - "E023" : ["SQ", "WADORetrievalSequence"], - "E024" : ["SQ", "XDSRetrievalSequence"], - "E030" : ["UI", "RepositoryUniqueID"], - "E031" : ["UI", "HomeCommunityID"] - }, - "0042" : { - "0010" : ["ST", "DocumentTitle"], - "0011" : ["OB", "EncapsulatedDocument"], - "0012" : ["LO", "MIMETypeOfEncapsulatedDocument"], - "0013" : ["SQ", "SourceInstanceSequence"], - "0014" : ["LO", "ListOfMIMETypes"] - }, - "0044" : { - "0001" : ["ST", "ProductPackageIdentifier"], - "0002" : ["CS", "SubstanceAdministrationApproval"], - "0003" : ["LT", "ApprovalStatusFurtherDescription"], - "0004" : ["DT", "ApprovalStatusDateTime"], - "0007" : ["SQ", "ProductTypeCodeSequence"], - "0008" : ["LO", "ProductName"], - "0009" : ["LT", "ProductDescription"], - "000A" : ["LO", "ProductLotIdentifier"], - "000B" : ["DT", "ProductExpirationDateTime"], - "0010" : ["DT", "SubstanceAdministrationDateTime"], - "0011" : ["LO", "SubstanceAdministrationNotes"], - "0012" : ["LO", "SubstanceAdministrationDeviceID"], - "0013" : ["SQ", "ProductParameterSequence"], - "0019" : ["SQ", "SubstanceAdministrationParameterSequence"] - }, - "0046" : { - "0012" : ["LO", "LensDescription"], - "0014" : ["SQ", "RightLensSequence"], - "0015" : ["SQ", "LeftLensSequence"], - "0016" : ["SQ", "UnspecifiedLateralityLensSequence"], - "0018" : ["SQ", "CylinderSequence"], - "0028" : ["SQ", "PrismSequence"], - "0030" : ["FD", "HorizontalPrismPower"], - "0032" : ["CS", "HorizontalPrismBase"], - "0034" : ["FD", "VerticalPrismPower"], - "0036" : ["CS", "VerticalPrismBase"], - "0038" : ["CS", "LensSegmentType"], - "0040" : ["FD", "OpticalTransmittance"], - "0042" : ["FD", "ChannelWidth"], - "0044" : ["FD", "PupilSize"], - "0046" : ["FD", "CornealSize"], - "0050" : ["SQ", "AutorefractionRightEyeSequence"], - "0052" : ["SQ", "AutorefractionLeftEyeSequence"], - "0060" : ["FD", "DistancePupillaryDistance"], - "0062" : ["FD", "NearPupillaryDistance"], - "0063" : ["FD", "IntermediatePupillaryDistance"], - "0064" : ["FD", "OtherPupillaryDistance"], - "0070" : ["SQ", "KeratometryRightEyeSequence"], - "0071" : ["SQ", "KeratometryLeftEyeSequence"], - "0074" : ["SQ", "SteepKeratometricAxisSequence"], - "0075" : ["FD", "RadiusOfCurvature"], - "0076" : ["FD", "KeratometricPower"], - "0077" : ["FD", "KeratometricAxis"], - "0080" : ["SQ", "FlatKeratometricAxisSequence"], - "0092" : ["CS", "BackgroundColor"], - "0094" : ["CS", "Optotype"], - "0095" : ["CS", "OptotypePresentation"], - "0097" : ["SQ", "SubjectiveRefractionRightEyeSequence"], - "0098" : ["SQ", "SubjectiveRefractionLeftEyeSequence"], - "0100" : ["SQ", "AddNearSequence"], - "0101" : ["SQ", "AddIntermediateSequence"], - "0102" : ["SQ", "AddOtherSequence"], - "0104" : ["FD", "AddPower"], - "0106" : ["FD", "ViewingDistance"], - "0121" : ["SQ", "VisualAcuityTypeCodeSequence"], - "0122" : ["SQ", "VisualAcuityRightEyeSequence"], - "0123" : ["SQ", "VisualAcuityLeftEyeSequence"], - "0124" : ["SQ", "VisualAcuityBothEyesOpenSequence"], - "0125" : ["CS", "ViewingDistanceType"], - "0135" : ["SS", "VisualAcuityModifiers"], - "0137" : ["FD", "DecimalVisualAcuity"], - "0139" : ["LO", "OptotypeDetailedDefinition"], - "0145" : ["SQ", "ReferencedRefractiveMeasurementsSequence"], - "0146" : ["FD", "SpherePower"], - "0147" : ["FD", "CylinderPower"] - }, - "0048" : { - "0001" : ["FL", "ImagedVolumeWidth"], - "0002" : ["FL", "ImagedVolumeHeight"], - "0003" : ["FL", "ImagedVolumeDepth"], - "0006" : ["UL", "TotalPixelMatrixColumns"], - "0007" : ["UL", "TotalPixelMatrixRows"], - "0008" : ["SQ", "TotalPixelMatrixOriginSequence"], - "0010" : ["CS", "SpecimenLabelInImage"], - "0011" : ["CS", "FocusMethod"], - "0012" : ["CS", "ExtendedDepthOfField"], - "0013" : ["US", "NumberOfFocalPlanes"], - "0014" : ["FL", "DistanceBetweenFocalPlanes"], - "0015" : ["US", "RecommendedAbsentPixelCIELabValue"], - "0100" : ["SQ", "IlluminatorTypeCodeSequence"], - "0102" : ["DS", "ImageOrientationSlide"], - "0105" : ["SQ", "OpticalPathSequence"], - "0106" : ["SH", "OpticalPathIdentifier"], - "0107" : ["ST", "OpticalPathDescription"], - "0108" : ["SQ", "IlluminationColorCodeSequence"], - "0110" : ["SQ", "SpecimenReferenceSequence"], - "0111" : ["DS", "CondenserLensPower"], - "0112" : ["DS", "ObjectiveLensPower"], - "0113" : ["DS", "ObjectiveLensNumericalAperture"], - "0120" : ["SQ", "PaletteColorLookupTableSequence"], - "0200" : ["SQ", "ReferencedImageNavigationSequence"], - "0201" : ["US", "TopLeftHandCornerOfLocalizerArea"], - "0202" : ["US", "BottomRightHandCornerOfLocalizerArea"], - "0207" : ["SQ", "OpticalPathIdentificationSequence"], - "021A" : ["SQ", "PlanePositionSlideSequence"], - "021E" : ["SL", "RowPositionInTotalImagePixelMatrix"], - "021F" : ["SL", "ColumnPositionInTotalImagePixelMatrix"], - "0301" : ["CS", "PixelOriginInterpretation"] - }, - "0050" : { - "0004" : ["CS", "CalibrationImage"], - "0010" : ["SQ", "DeviceSequence"], - "0012" : ["SQ", "ContainerComponentTypeCodeSequence"], - "0013" : ["FD", "ContainerComponentThickness"], - "0014" : ["DS", "DeviceLength"], - "0015" : ["FD", "ContainerComponentWidth"], - "0016" : ["DS", "DeviceDiameter"], - "0017" : ["CS", "DeviceDiameterUnits"], - "0018" : ["DS", "DeviceVolume"], - "0019" : ["DS", "InterMarkerDistance"], - "001A" : ["CS", "ContainerComponentMaterial"], - "001B" : ["LO", "ContainerComponentID"], - "001C" : ["FD", "ContainerComponentLength"], - "001D" : ["FD", "ContainerComponentDiameter"], - "001E" : ["LO", "ContainerComponentDescription"], - "0020" : ["LO", "DeviceDescription"] - }, - "0052" : { - "0001" : ["FL", "ContrastBolusIngredientPercentByVolume"], - "0002" : ["FD", "OCTFocalDistance"], - "0003" : ["FD", "BeamSpotSize"], - "0004" : ["FD", "EffectiveRefractiveIndex"], - "0006" : ["CS", "OCTAcquisitionDomain"], - "0007" : ["FD", "OCTOpticalCenterWavelength"], - "0008" : ["FD", "AxialResolution"], - "0009" : ["FD", "RangingDepth"], - "0011" : ["FD", "ALineRate"], - "0012" : ["US", "ALinesPerFrame"], - "0013" : ["FD", "CatheterRotationalRate"], - "0014" : ["FD", "ALinePixelSpacing"], - "0016" : ["SQ", "ModeOfPercutaneousAccessSequence"], - "0025" : ["SQ", "IntravascularOCTFrameTypeSequence"], - "0026" : ["CS", "OCTZOffsetApplied"], - "0027" : ["SQ", "IntravascularFrameContentSequence"], - "0028" : ["FD", "IntravascularLongitudinalDistance"], - "0029" : ["SQ", "IntravascularOCTFrameContentSequence"], - "0030" : ["SS", "OCTZOffsetCorrection"], - "0031" : ["CS", "CatheterDirectionOfRotation"], - "0033" : ["FD", "SeamLineLocation"], - "0034" : ["FD", "FirstALineLocation"], - "0036" : ["US", "SeamLineIndex"], - "0038" : ["US", "NumberOfPaddedAlines"], - "0039" : ["CS", "InterpolationType"], - "003A" : ["CS", "RefractiveIndexApplied"] - }, - "0054" : { - "0010" : ["US", "EnergyWindowVector"], - "0011" : ["US", "NumberOfEnergyWindows"], - "0012" : ["SQ", "EnergyWindowInformationSequence"], - "0013" : ["SQ", "EnergyWindowRangeSequence"], - "0014" : ["DS", "EnergyWindowLowerLimit"], - "0015" : ["DS", "EnergyWindowUpperLimit"], - "0016" : ["SQ", "RadiopharmaceuticalInformationSequence"], - "0017" : ["IS", "ResidualSyringeCounts"], - "0018" : ["SH", "EnergyWindowName"], - "0020" : ["US", "DetectorVector"], - "0021" : ["US", "NumberOfDetectors"], - "0022" : ["SQ", "DetectorInformationSequence"], - "0030" : ["US", "PhaseVector"], - "0031" : ["US", "NumberOfPhases"], - "0032" : ["SQ", "PhaseInformationSequence"], - "0033" : ["US", "NumberOfFramesInPhase"], - "0036" : ["IS", "PhaseDelay"], - "0038" : ["IS", "PauseBetweenFrames"], - "0039" : ["CS", "PhaseDescription"], - "0050" : ["US", "RotationVector"], - "0051" : ["US", "NumberOfRotations"], - "0052" : ["SQ", "RotationInformationSequence"], - "0053" : ["US", "NumberOfFramesInRotation"], - "0060" : ["US", "RRIntervalVector"], - "0061" : ["US", "NumberOfRRIntervals"], - "0062" : ["SQ", "GatedInformationSequence"], - "0063" : ["SQ", "DataInformationSequence"], - "0070" : ["US", "TimeSlotVector"], - "0071" : ["US", "NumberOfTimeSlots"], - "0072" : ["SQ", "TimeSlotInformationSequence"], - "0073" : ["DS", "TimeSlotTime"], - "0080" : ["US", "SliceVector"], - "0081" : ["US", "NumberOfSlices"], - "0090" : ["US", "AngularViewVector"], - "0100" : ["US", "TimeSliceVector"], - "0101" : ["US", "NumberOfTimeSlices"], - "0200" : ["DS", "StartAngle"], - "0202" : ["CS", "TypeOfDetectorMotion"], - "0210" : ["IS", "TriggerVector"], - "0211" : ["US", "NumberOfTriggersInPhase"], - "0220" : ["SQ", "ViewCodeSequence"], - "0222" : ["SQ", "ViewModifierCodeSequence"], - "0300" : ["SQ", "RadionuclideCodeSequence"], - "0302" : ["SQ", "AdministrationRouteCodeSequence"], - "0304" : ["SQ", "RadiopharmaceuticalCodeSequence"], - "0306" : ["SQ", "CalibrationDataSequence"], - "0308" : ["US", "EnergyWindowNumber"], - "0400" : ["SH", "ImageID"], - "0410" : ["SQ", "PatientOrientationCodeSequence"], - "0412" : ["SQ", "PatientOrientationModifierCodeSequence"], - "0414" : ["SQ", "PatientGantryRelationshipCodeSequence"], - "0500" : ["CS", "SliceProgressionDirection"], - "1000" : ["CS", "SeriesType"], - "1001" : ["CS", "Units"], - "1002" : ["CS", "CountsSource"], - "1004" : ["CS", "ReprojectionMethod"], - "1006" : ["CS", "SUVType"], - "1100" : ["CS", "RandomsCorrectionMethod"], - "1101" : ["LO", "AttenuationCorrectionMethod"], - "1102" : ["CS", "DecayCorrection"], - "1103" : ["LO", "ReconstructionMethod"], - "1104" : ["LO", "DetectorLinesOfResponseUsed"], - "1105" : ["LO", "ScatterCorrectionMethod"], - "1200" : ["DS", "AxialAcceptance"], - "1201" : ["IS", "AxialMash"], - "1202" : ["IS", "TransverseMash"], - "1203" : ["DS", "DetectorElementSize"], - "1210" : ["DS", "CoincidenceWindowWidth"], - "1220" : ["CS", "SecondaryCountsType"], - "1300" : ["DS", "FrameReferenceTime"], - "1310" : ["IS", "PrimaryPromptsCountsAccumulated"], - "1311" : ["IS", "SecondaryCountsAccumulated"], - "1320" : ["DS", "SliceSensitivityFactor"], - "1321" : ["DS", "DecayFactor"], - "1322" : ["DS", "DoseCalibrationFactor"], - "1323" : ["DS", "ScatterFractionFactor"], - "1324" : ["DS", "DeadTimeFactor"], - "1330" : ["US", "ImageIndex"], - "1400" : ["CS", "CountsIncluded"], - "1401" : ["CS", "DeadTimeCorrectionFlag"] - }, - "0060" : { - "3000" : ["SQ", "HistogramSequence"], - "3002" : ["US", "HistogramNumberOfBins"], - "3004" : ["SS", "HistogramFirstBinValue"], - "3006" : ["SS", "HistogramLastBinValue"], - "3008" : ["US", "HistogramBinWidth"], - "3010" : ["LO", "HistogramExplanation"], - "3020" : ["UL", "HistogramData"] - }, - "0062" : { - "0001" : ["CS", "SegmentationType"], - "0002" : ["SQ", "SegmentSequence"], - "0003" : ["SQ", "SegmentedPropertyCategoryCodeSequence"], - "0004" : ["US", "SegmentNumber"], - "0005" : ["LO", "SegmentLabel"], - "0006" : ["ST", "SegmentDescription"], - "0008" : ["CS", "SegmentAlgorithmType"], - "0009" : ["LO", "SegmentAlgorithmName"], - "000A" : ["SQ", "SegmentIdentificationSequence"], - "000B" : ["US", "ReferencedSegmentNumber"], - "000C" : ["US", "RecommendedDisplayGrayscaleValue"], - "000D" : ["US", "RecommendedDisplayCIELabValue"], - "000E" : ["US", "MaximumFractionalValue"], - "000F" : ["SQ", "SegmentedPropertyTypeCodeSequence"], - "0010" : ["CS", "SegmentationFractionalType"] - }, - "0064" : { - "0002" : ["SQ", "DeformableRegistrationSequence"], - "0003" : ["UI", "SourceFrameOfReferenceUID"], - "0005" : ["SQ", "DeformableRegistrationGridSequence"], - "0007" : ["UL", "GridDimensions"], - "0008" : ["FD", "GridResolution"], - "0009" : ["OF", "VectorGridData"], - "000F" : ["SQ", "PreDeformationMatrixRegistrationSequence"], - "0010" : ["SQ", "PostDeformationMatrixRegistrationSequence"] - }, - "0066" : { - "0001" : ["UL", "NumberOfSurfaces"], - "0002" : ["SQ", "SurfaceSequence"], - "0003" : ["UL", "SurfaceNumber"], - "0004" : ["LT", "SurfaceComments"], - "0009" : ["CS", "SurfaceProcessing"], - "000A" : ["FL", "SurfaceProcessingRatio"], - "000B" : ["LO", "SurfaceProcessingDescription"], - "000C" : ["FL", "RecommendedPresentationOpacity"], - "000D" : ["CS", "RecommendedPresentationType"], - "000E" : ["CS", "FiniteVolume"], - "0010" : ["CS", "Manifold"], - "0011" : ["SQ", "SurfacePointsSequence"], - "0012" : ["SQ", "SurfacePointsNormalsSequence"], - "0013" : ["SQ", "SurfaceMeshPrimitivesSequence"], - "0015" : ["UL", "NumberOfSurfacePoints"], - "0016" : ["OF", "PointCoordinatesData"], - "0017" : ["FL", "PointPositionAccuracy"], - "0018" : ["FL", "MeanPointDistance"], - "0019" : ["FL", "MaximumPointDistance"], - "001A" : ["FL", "PointsBoundingBoxCoordinates"], - "001B" : ["FL", "AxisOfRotation"], - "001C" : ["FL", "CenterOfRotation"], - "001E" : ["UL", "NumberOfVectors"], - "001F" : ["US", "VectorDimensionality"], - "0020" : ["FL", "VectorAccuracy"], - "0021" : ["OF", "VectorCoordinateData"], - "0023" : ["OW", "TrianglePointIndexList"], - "0024" : ["OW", "EdgePointIndexList"], - "0025" : ["OW", "VertexPointIndexList"], - "0026" : ["SQ", "TriangleStripSequence"], - "0027" : ["SQ", "TriangleFanSequence"], - "0028" : ["SQ", "LineSequence"], - "0029" : ["OW", "PrimitivePointIndexList"], - "002A" : ["UL", "SurfaceCount"], - "002B" : ["SQ", "ReferencedSurfaceSequence"], - "002C" : ["UL", "ReferencedSurfaceNumber"], - "002D" : ["SQ", "SegmentSurfaceGenerationAlgorithmIdentificationSequence"], - "002E" : ["SQ", "SegmentSurfaceSourceInstanceSequence"], - "002F" : ["SQ", "AlgorithmFamilyCodeSequence"], - "0030" : ["SQ", "AlgorithmNameCodeSequence"], - "0031" : ["LO", "AlgorithmVersion"], - "0032" : ["LT", "AlgorithmParameters"], - "0034" : ["SQ", "FacetSequence"], - "0035" : ["SQ", "SurfaceProcessingAlgorithmIdentificationSequence"], - "0036" : ["LO", "AlgorithmName"] - }, - "0068" : { - "6210" : ["LO", "ImplantSize"], - "6221" : ["LO", "ImplantTemplateVersion"], - "6222" : ["SQ", "ReplacedImplantTemplateSequence"], - "6223" : ["CS", "ImplantType"], - "6224" : ["SQ", "DerivationImplantTemplateSequence"], - "6225" : ["SQ", "OriginalImplantTemplateSequence"], - "6226" : ["DT", "EffectiveDateTime"], - "6230" : ["SQ", "ImplantTargetAnatomySequence"], - "6260" : ["SQ", "InformationFromManufacturerSequence"], - "6265" : ["SQ", "NotificationFromManufacturerSequence"], - "6270" : ["DT", "InformationIssueDateTime"], - "6280" : ["ST", "InformationSummary"], - "62A0" : ["SQ", "ImplantRegulatoryDisapprovalCodeSequence"], - "62A5" : ["FD", "OverallTemplateSpatialTolerance"], - "62C0" : ["SQ", "HPGLDocumentSequence"], - "62D0" : ["US", "HPGLDocumentID"], - "62D5" : ["LO", "HPGLDocumentLabel"], - "62E0" : ["SQ", "ViewOrientationCodeSequence"], - "62F0" : ["FD", "ViewOrientationModifier"], - "62F2" : ["FD", "HPGLDocumentScaling"], - "6300" : ["OB", "HPGLDocument"], - "6310" : ["US", "HPGLContourPenNumber"], - "6320" : ["SQ", "HPGLPenSequence"], - "6330" : ["US", "HPGLPenNumber"], - "6340" : ["LO", "HPGLPenLabel"], - "6345" : ["ST", "HPGLPenDescription"], - "6346" : ["FD", "RecommendedRotationPoint"], - "6347" : ["FD", "BoundingRectangle"], - "6350" : ["US", "ImplantTemplate3DModelSurfaceNumber"], - "6360" : ["SQ", "SurfaceModelDescriptionSequence"], - "6380" : ["LO", "SurfaceModelLabel"], - "6390" : ["FD", "SurfaceModelScalingFactor"], - "63A0" : ["SQ", "MaterialsCodeSequence"], - "63A4" : ["SQ", "CoatingMaterialsCodeSequence"], - "63A8" : ["SQ", "ImplantTypeCodeSequence"], - "63AC" : ["SQ", "FixationMethodCodeSequence"], - "63B0" : ["SQ", "MatingFeatureSetsSequence"], - "63C0" : ["US", "MatingFeatureSetID"], - "63D0" : ["LO", "MatingFeatureSetLabel"], - "63E0" : ["SQ", "MatingFeatureSequence"], - "63F0" : ["US", "MatingFeatureID"], - "6400" : ["SQ", "MatingFeatureDegreeOfFreedomSequence"], - "6410" : ["US", "DegreeOfFreedomID"], - "6420" : ["CS", "DegreeOfFreedomType"], - "6430" : ["SQ", "TwoDMatingFeatureCoordinatesSequence"], - "6440" : ["US", "ReferencedHPGLDocumentID"], - "6450" : ["FD", "TwoDMatingPoint"], - "6460" : ["FD", "TwoDMatingAxes"], - "6470" : ["SQ", "TwoDDegreeOfFreedomSequence"], - "6490" : ["FD", "ThreeDDegreeOfFreedomAxis"], - "64A0" : ["FD", "RangeOfFreedom"], - "64C0" : ["FD", "ThreeDMatingPoint"], - "64D0" : ["FD", "ThreeDMatingAxes"], - "64F0" : ["FD", "TwoDDegreeOfFreedomAxis"], - "6500" : ["SQ", "PlanningLandmarkPointSequence"], - "6510" : ["SQ", "PlanningLandmarkLineSequence"], - "6520" : ["SQ", "PlanningLandmarkPlaneSequence"], - "6530" : ["US", "PlanningLandmarkID"], - "6540" : ["LO", "PlanningLandmarkDescription"], - "6545" : ["SQ", "PlanningLandmarkIdentificationCodeSequence"], - "6550" : ["SQ", "TwoDPointCoordinatesSequence"], - "6560" : ["FD", "TwoDPointCoordinates"], - "6590" : ["FD", "ThreeDPointCoordinates"], - "65A0" : ["SQ", "TwoDLineCoordinatesSequence"], - "65B0" : ["FD", "TwoDLineCoordinates"], - "65D0" : ["FD", "ThreeDLineCoordinates"], - "65E0" : ["SQ", "TwoDPlaneCoordinatesSequence"], - "65F0" : ["FD", "TwoDPlaneIntersection"], - "6610" : ["FD", "ThreeDPlaneOrigin"], - "6620" : ["FD", "ThreeDPlaneNormal"] - }, - "0070" : { - "0001" : ["SQ", "GraphicAnnotationSequence"], - "0002" : ["CS", "GraphicLayer"], - "0003" : ["CS", "BoundingBoxAnnotationUnits"], - "0004" : ["CS", "AnchorPointAnnotationUnits"], - "0005" : ["CS", "GraphicAnnotationUnits"], - "0006" : ["ST", "UnformattedTextValue"], - "0008" : ["SQ", "TextObjectSequence"], - "0009" : ["SQ", "GraphicObjectSequence"], - "0010" : ["FL", "BoundingBoxTopLeftHandCorner"], - "0011" : ["FL", "BoundingBoxBottomRightHandCorner"], - "0012" : ["CS", "BoundingBoxTextHorizontalJustification"], - "0014" : ["FL", "AnchorPoint"], - "0015" : ["CS", "AnchorPointVisibility"], - "0020" : ["US", "GraphicDimensions"], - "0021" : ["US", "NumberOfGraphicPoints"], - "0022" : ["FL", "GraphicData"], - "0023" : ["CS", "GraphicType"], - "0024" : ["CS", "GraphicFilled"], - "0040" : ["IS", "ImageRotationRetired"], - "0041" : ["CS", "ImageHorizontalFlip"], - "0042" : ["US", "ImageRotation"], - "0050" : ["US", "DisplayedAreaTopLeftHandCornerTrial"], - "0051" : ["US", "DisplayedAreaBottomRightHandCornerTrial"], - "0052" : ["SL", "DisplayedAreaTopLeftHandCorner"], - "0053" : ["SL", "DisplayedAreaBottomRightHandCorner"], - "005A" : ["SQ", "DisplayedAreaSelectionSequence"], - "0060" : ["SQ", "GraphicLayerSequence"], - "0062" : ["IS", "GraphicLayerOrder"], - "0066" : ["US", "GraphicLayerRecommendedDisplayGrayscaleValue"], - "0067" : ["US", "GraphicLayerRecommendedDisplayRGBValue"], - "0068" : ["LO", "GraphicLayerDescription"], - "0080" : ["CS", "ContentLabel"], - "0081" : ["LO", "ContentDescription"], - "0082" : ["DA", "PresentationCreationDate"], - "0083" : ["TM", "PresentationCreationTime"], - "0084" : ["PN", "ContentCreatorName"], - "0086" : ["SQ", "ContentCreatorIdentificationCodeSequence"], - "0087" : ["SQ", "AlternateContentDescriptionSequence"], - "0100" : ["CS", "PresentationSizeMode"], - "0101" : ["DS", "PresentationPixelSpacing"], - "0102" : ["IS", "PresentationPixelAspectRatio"], - "0103" : ["FL", "PresentationPixelMagnificationRatio"], - "0207" : ["LO", "GraphicGroupLabel"], - "0208" : ["ST", "GraphicGroupDescription"], - "0209" : ["SQ", "CompoundGraphicSequence"], - "0226" : ["UL", "CompoundGraphicInstanceID"], - "0227" : ["LO", "FontName"], - "0228" : ["CS", "FontNameType"], - "0229" : ["LO", "CSSFontName"], - "0230" : ["FD", "RotationAngle"], - "0231" : ["SQ", "TextStyleSequence"], - "0232" : ["SQ", "LineStyleSequence"], - "0233" : ["SQ", "FillStyleSequence"], - "0234" : ["SQ", "GraphicGroupSequence"], - "0241" : ["US", "TextColorCIELabValue"], - "0242" : ["CS", "HorizontalAlignment"], - "0243" : ["CS", "VerticalAlignment"], - "0244" : ["CS", "ShadowStyle"], - "0245" : ["FL", "ShadowOffsetX"], - "0246" : ["FL", "ShadowOffsetY"], - "0247" : ["US", "ShadowColorCIELabValue"], - "0248" : ["CS", "Underlined"], - "0249" : ["CS", "Bold"], - "0250" : ["CS", "Italic"], - "0251" : ["US", "PatternOnColorCIELabValue"], - "0252" : ["US", "PatternOffColorCIELabValue"], - "0253" : ["FL", "LineThickness"], - "0254" : ["CS", "LineDashingStyle"], - "0255" : ["UL", "LinePattern"], - "0256" : ["OB", "FillPattern"], - "0257" : ["CS", "FillMode"], - "0258" : ["FL", "ShadowOpacity"], - "0261" : ["FL", "GapLength"], - "0262" : ["FL", "DiameterOfVisibility"], - "0273" : ["FL", "RotationPoint"], - "0274" : ["CS", "TickAlignment"], - "0278" : ["CS", "ShowTickLabel"], - "0279" : ["CS", "TickLabelAlignment"], - "0282" : ["CS", "CompoundGraphicUnits"], - "0284" : ["FL", "PatternOnOpacity"], - "0285" : ["FL", "PatternOffOpacity"], - "0287" : ["SQ", "MajorTicksSequence"], - "0288" : ["FL", "TickPosition"], - "0289" : ["SH", "TickLabel"], - "0294" : ["CS", "CompoundGraphicType"], - "0295" : ["UL", "GraphicGroupID"], - "0306" : ["CS", "ShapeType"], - "0308" : ["SQ", "RegistrationSequence"], - "0309" : ["SQ", "MatrixRegistrationSequence"], - "030A" : ["SQ", "MatrixSequence"], - "030C" : ["CS", "FrameOfReferenceTransformationMatrixType"], - "030D" : ["SQ", "RegistrationTypeCodeSequence"], - "030F" : ["ST", "FiducialDescription"], - "0310" : ["SH", "FiducialIdentifier"], - "0311" : ["SQ", "FiducialIdentifierCodeSequence"], - "0312" : ["FD", "ContourUncertaintyRadius"], - "0314" : ["SQ", "UsedFiducialsSequence"], - "0318" : ["SQ", "GraphicCoordinatesDataSequence"], - "031A" : ["UI", "FiducialUID"], - "031C" : ["SQ", "FiducialSetSequence"], - "031E" : ["SQ", "FiducialSequence"], - "0401" : ["US", "GraphicLayerRecommendedDisplayCIELabValue"], - "0402" : ["SQ", "BlendingSequence"], - "0403" : ["FL", "RelativeOpacity"], - "0404" : ["SQ", "ReferencedSpatialRegistrationSequence"], - "0405" : ["CS", "BlendingPosition"] - }, - "0072" : { - "0002" : ["SH", "HangingProtocolName"], - "0004" : ["LO", "HangingProtocolDescription"], - "0006" : ["CS", "HangingProtocolLevel"], - "0008" : ["LO", "HangingProtocolCreator"], - "000A" : ["DT", "HangingProtocolCreationDateTime"], - "000C" : ["SQ", "HangingProtocolDefinitionSequence"], - "000E" : ["SQ", "HangingProtocolUserIdentificationCodeSequence"], - "0010" : ["LO", "HangingProtocolUserGroupName"], - "0012" : ["SQ", "SourceHangingProtocolSequence"], - "0014" : ["US", "NumberOfPriorsReferenced"], - "0020" : ["SQ", "ImageSetsSequence"], - "0022" : ["SQ", "ImageSetSelectorSequence"], - "0024" : ["CS", "ImageSetSelectorUsageFlag"], - "0026" : ["AT", "SelectorAttribute"], - "0028" : ["US", "SelectorValueNumber"], - "0030" : ["SQ", "TimeBasedImageSetsSequence"], - "0032" : ["US", "ImageSetNumber"], - "0034" : ["CS", "ImageSetSelectorCategory"], - "0038" : ["US", "RelativeTime"], - "003A" : ["CS", "RelativeTimeUnits"], - "003C" : ["SS", "AbstractPriorValue"], - "003E" : ["SQ", "AbstractPriorCodeSequence"], - "0040" : ["LO", "ImageSetLabel"], - "0050" : ["CS", "SelectorAttributeVR"], - "0052" : ["AT", "SelectorSequencePointer"], - "0054" : ["LO", "SelectorSequencePointerPrivateCreator"], - "0056" : ["LO", "SelectorAttributePrivateCreator"], - "0060" : ["AT", "SelectorATValue"], - "0062" : ["CS", "SelectorCSValue"], - "0064" : ["IS", "SelectorISValue"], - "0066" : ["LO", "SelectorLOValue"], - "0068" : ["LT", "SelectorLTValue"], - "006A" : ["PN", "SelectorPNValue"], - "006C" : ["SH", "SelectorSHValue"], - "006E" : ["ST", "SelectorSTValue"], - "0070" : ["UT", "SelectorUTValue"], - "0072" : ["DS", "SelectorDSValue"], - "0074" : ["FD", "SelectorFDValue"], - "0076" : ["FL", "SelectorFLValue"], - "0078" : ["UL", "SelectorULValue"], - "007A" : ["US", "SelectorUSValue"], - "007C" : ["SL", "SelectorSLValue"], - "007E" : ["SS", "SelectorSSValue"], - "0080" : ["SQ", "SelectorCodeSequenceValue"], - "0100" : ["US", "NumberOfScreens"], - "0102" : ["SQ", "NominalScreenDefinitionSequence"], - "0104" : ["US", "NumberOfVerticalPixels"], - "0106" : ["US", "NumberOfHorizontalPixels"], - "0108" : ["FD", "DisplayEnvironmentSpatialPosition"], - "010A" : ["US", "ScreenMinimumGrayscaleBitDepth"], - "010C" : ["US", "ScreenMinimumColorBitDepth"], - "010E" : ["US", "ApplicationMaximumRepaintTime"], - "0200" : ["SQ", "DisplaySetsSequence"], - "0202" : ["US", "DisplaySetNumber"], - "0203" : ["LO", "DisplaySetLabel"], - "0204" : ["US", "DisplaySetPresentationGroup"], - "0206" : ["LO", "DisplaySetPresentationGroupDescription"], - "0208" : ["CS", "PartialDataDisplayHandling"], - "0210" : ["SQ", "SynchronizedScrollingSequence"], - "0212" : ["US", "DisplaySetScrollingGroup"], - "0214" : ["SQ", "NavigationIndicatorSequence"], - "0216" : ["US", "NavigationDisplaySet"], - "0218" : ["US", "ReferenceDisplaySets"], - "0300" : ["SQ", "ImageBoxesSequence"], - "0302" : ["US", "ImageBoxNumber"], - "0304" : ["CS", "ImageBoxLayoutType"], - "0306" : ["US", "ImageBoxTileHorizontalDimension"], - "0308" : ["US", "ImageBoxTileVerticalDimension"], - "0310" : ["CS", "ImageBoxScrollDirection"], - "0312" : ["CS", "ImageBoxSmallScrollType"], - "0314" : ["US", "ImageBoxSmallScrollAmount"], - "0316" : ["CS", "ImageBoxLargeScrollType"], - "0318" : ["US", "ImageBoxLargeScrollAmount"], - "0320" : ["US", "ImageBoxOverlapPriority"], - "0330" : ["FD", "CineRelativeToRealTime"], - "0400" : ["SQ", "FilterOperationsSequence"], - "0402" : ["CS", "FilterByCategory"], - "0404" : ["CS", "FilterByAttributePresence"], - "0406" : ["CS", "FilterByOperator"], - "0420" : ["US", "StructuredDisplayBackgroundCIELabValue"], - "0421" : ["US", "EmptyImageBoxCIELabValue"], - "0422" : ["SQ", "StructuredDisplayImageBoxSequence"], - "0424" : ["SQ", "StructuredDisplayTextBoxSequence"], - "0427" : ["SQ", "ReferencedFirstFrameSequence"], - "0430" : ["SQ", "ImageBoxSynchronizationSequence"], - "0432" : ["US", "SynchronizedImageBoxList"], - "0434" : ["CS", "TypeOfSynchronization"], - "0500" : ["CS", "BlendingOperationType"], - "0510" : ["CS", "ReformattingOperationType"], - "0512" : ["FD", "ReformattingThickness"], - "0514" : ["FD", "ReformattingInterval"], - "0516" : ["CS", "ReformattingOperationInitialViewDirection"], - "0520" : ["CS", "ThreeDRenderingType"], - "0600" : ["SQ", "SortingOperationsSequence"], - "0602" : ["CS", "SortByCategory"], - "0604" : ["CS", "SortingDirection"], - "0700" : ["CS", "DisplaySetPatientOrientation"], - "0702" : ["CS", "VOIType"], - "0704" : ["CS", "PseudoColorType"], - "0705" : ["SQ", "PseudoColorPaletteInstanceReferenceSequence"], - "0706" : ["CS", "ShowGrayscaleInverted"], - "0710" : ["CS", "ShowImageTrueSizeFlag"], - "0712" : ["CS", "ShowGraphicAnnotationFlag"], - "0714" : ["CS", "ShowPatientDemographicsFlag"], - "0716" : ["CS", "ShowAcquisitionTechniquesFlag"], - "0717" : ["CS", "DisplaySetHorizontalJustification"], - "0718" : ["CS", "DisplaySetVerticalJustification"] - }, - "0074" : { - "0120" : ["FD", "ContinuationStartMeterset"], - "0121" : ["FD", "ContinuationEndMeterset"], - "1000" : ["CS", "ProcedureStepState"], - "1002" : ["SQ", "ProcedureStepProgressInformationSequence"], - "1004" : ["DS", "ProcedureStepProgress"], - "1006" : ["ST", "ProcedureStepProgressDescription"], - "1008" : ["SQ", "ProcedureStepCommunicationsURISequence"], - "100A" : ["ST", "ContactURI"], - "100C" : ["LO", "ContactDisplayName"], - "100E" : ["SQ", "ProcedureStepDiscontinuationReasonCodeSequence"], - "1020" : ["SQ", "BeamTaskSequence"], - "1022" : ["CS", "BeamTaskType"], - "1024" : ["IS", "BeamOrderIndexTrial"], - "1026" : ["FD", "TableTopVerticalAdjustedPosition"], - "1027" : ["FD", "TableTopLongitudinalAdjustedPosition"], - "1028" : ["FD", "TableTopLateralAdjustedPosition"], - "102A" : ["FD", "PatientSupportAdjustedAngle"], - "102B" : ["FD", "TableTopEccentricAdjustedAngle"], - "102C" : ["FD", "TableTopPitchAdjustedAngle"], - "102D" : ["FD", "TableTopRollAdjustedAngle"], - "1030" : ["SQ", "DeliveryVerificationImageSequence"], - "1032" : ["CS", "VerificationImageTiming"], - "1034" : ["CS", "DoubleExposureFlag"], - "1036" : ["CS", "DoubleExposureOrdering"], - "1038" : ["DS", "DoubleExposureMetersetTrial"], - "103A" : ["DS", "DoubleExposureFieldDeltaTrial"], - "1040" : ["SQ", "RelatedReferenceRTImageSequence"], - "1042" : ["SQ", "GeneralMachineVerificationSequence"], - "1044" : ["SQ", "ConventionalMachineVerificationSequence"], - "1046" : ["SQ", "IonMachineVerificationSequence"], - "1048" : ["SQ", "FailedAttributesSequence"], - "104A" : ["SQ", "OverriddenAttributesSequence"], - "104C" : ["SQ", "ConventionalControlPointVerificationSequence"], - "104E" : ["SQ", "IonControlPointVerificationSequence"], - "1050" : ["SQ", "AttributeOccurrenceSequence"], - "1052" : ["AT", "AttributeOccurrencePointer"], - "1054" : ["UL", "AttributeItemSelector"], - "1056" : ["LO", "AttributeOccurrencePrivateCreator"], - "1057" : ["IS", "SelectorSequencePointerItems"], - "1200" : ["CS", "ScheduledProcedureStepPriority"], - "1202" : ["LO", "WorklistLabel"], - "1204" : ["LO", "ProcedureStepLabel"], - "1210" : ["SQ", "ScheduledProcessingParametersSequence"], - "1212" : ["SQ", "PerformedProcessingParametersSequence"], - "1216" : ["SQ", "UnifiedProcedureStepPerformedProcedureSequence"], - "1220" : ["SQ", "RelatedProcedureStepSequence"], - "1222" : ["LO", "ProcedureStepRelationshipType"], - "1224" : ["SQ", "ReplacedProcedureStepSequence"], - "1230" : ["LO", "DeletionLock"], - "1234" : ["AE", "ReceivingAE"], - "1236" : ["AE", "RequestingAE"], - "1238" : ["LT", "ReasonForCancellation"], - "1242" : ["CS", "SCPStatus"], - "1244" : ["CS", "SubscriptionListStatus"], - "1246" : ["CS", "UnifiedProcedureStepListStatus"], - "1324" : ["UL", "BeamOrderIndex"], - "1338" : ["FD", "DoubleExposureMeterset"], - "133A" : ["FD", "DoubleExposureFieldDelta"] - }, - "0076" : { - "0001" : ["LO", "ImplantAssemblyTemplateName"], - "0003" : ["LO", "ImplantAssemblyTemplateIssuer"], - "0006" : ["LO", "ImplantAssemblyTemplateVersion"], - "0008" : ["SQ", "ReplacedImplantAssemblyTemplateSequence"], - "000A" : ["CS", "ImplantAssemblyTemplateType"], - "000C" : ["SQ", "OriginalImplantAssemblyTemplateSequence"], - "000E" : ["SQ", "DerivationImplantAssemblyTemplateSequence"], - "0010" : ["SQ", "ImplantAssemblyTemplateTargetAnatomySequence"], - "0020" : ["SQ", "ProcedureTypeCodeSequence"], - "0030" : ["LO", "SurgicalTechnique"], - "0032" : ["SQ", "ComponentTypesSequence"], - "0034" : ["CS", "ComponentTypeCodeSequence"], - "0036" : ["CS", "ExclusiveComponentType"], - "0038" : ["CS", "MandatoryComponentType"], - "0040" : ["SQ", "ComponentSequence"], - "0055" : ["US", "ComponentID"], - "0060" : ["SQ", "ComponentAssemblySequence"], - "0070" : ["US", "Component1ReferencedID"], - "0080" : ["US", "Component1ReferencedMatingFeatureSetID"], - "0090" : ["US", "Component1ReferencedMatingFeatureID"], - "00A0" : ["US", "Component2ReferencedID"], - "00B0" : ["US", "Component2ReferencedMatingFeatureSetID"], - "00C0" : ["US", "Component2ReferencedMatingFeatureID"] - }, - "0078" : { - "0001" : ["LO", "ImplantTemplateGroupName"], - "0010" : ["ST", "ImplantTemplateGroupDescription"], - "0020" : ["LO", "ImplantTemplateGroupIssuer"], - "0024" : ["LO", "ImplantTemplateGroupVersion"], - "0026" : ["SQ", "ReplacedImplantTemplateGroupSequence"], - "0028" : ["SQ", "ImplantTemplateGroupTargetAnatomySequence"], - "002A" : ["SQ", "ImplantTemplateGroupMembersSequence"], - "002E" : ["US", "ImplantTemplateGroupMemberID"], - "0050" : ["FD", "ThreeDImplantTemplateGroupMemberMatchingPoint"], - "0060" : ["FD", "ThreeDImplantTemplateGroupMemberMatchingAxes"], - "0070" : ["SQ", "ImplantTemplateGroupMemberMatching2DCoordinatesSequence"], - "0090" : ["FD", "TwoDImplantTemplateGroupMemberMatchingPoint"], - "00A0" : ["FD", "TwoDImplantTemplateGroupMemberMatchingAxes"], - "00B0" : ["SQ", "ImplantTemplateGroupVariationDimensionSequence"], - "00B2" : ["LO", "ImplantTemplateGroupVariationDimensionName"], - "00B4" : ["SQ", "ImplantTemplateGroupVariationDimensionRankSequence"], - "00B6" : ["US", "ReferencedImplantTemplateGroupMemberID"], - "00B8" : ["US", "ImplantTemplateGroupVariationDimensionRank"] - }, - "0088" : { - "0130" : ["SH", "StorageMediaFileSetID"], - "0140" : ["UI", "StorageMediaFileSetUID"], - "0200" : ["SQ", "IconImageSequence"], - "0904" : ["LO", "TopicTitle"], - "0906" : ["ST", "TopicSubject"], - "0910" : ["LO", "TopicAuthor"], - "0912" : ["LO", "TopicKeywords"] - }, - "0100" : { - "0410" : ["CS", "SOPInstanceStatus"], - "0420" : ["DT", "SOPAuthorizationDateTime"], - "0424" : ["LT", "SOPAuthorizationComment"], - "0426" : ["LO", "AuthorizationEquipmentCertificationNumber"] - }, - "0400" : { - "0005" : ["US", "MACIDNumber"], - "0010" : ["UI", "MACCalculationTransferSyntaxUID"], - "0015" : ["CS", "MACAlgorithm"], - "0020" : ["AT", "DataElementsSigned"], - "0100" : ["UI", "DigitalSignatureUID"], - "0105" : ["DT", "DigitalSignatureDateTime"], - "0110" : ["CS", "CertificateType"], - "0115" : ["OB", "CertificateOfSigner"], - "0120" : ["OB", "Signature"], - "0305" : ["CS", "CertifiedTimestampType"], - "0310" : ["OB", "CertifiedTimestamp"], - "0401" : ["SQ", "DigitalSignaturePurposeCodeSequence"], - "0402" : ["SQ", "ReferencedDigitalSignatureSequence"], - "0403" : ["SQ", "ReferencedSOPInstanceMACSequence"], - "0404" : ["OB", "MAC"], - "0500" : ["SQ", "EncryptedAttributesSequence"], - "0510" : ["UI", "EncryptedContentTransferSyntaxUID"], - "0520" : ["OB", "EncryptedContent"], - "0550" : ["SQ", "ModifiedAttributesSequence"], - "0561" : ["SQ", "OriginalAttributesSequence"], - "0562" : ["DT", "AttributeModificationDateTime"], - "0563" : ["LO", "ModifyingSystem"], - "0564" : ["LO", "SourceOfPreviousValues"], - "0565" : ["CS", "ReasonForTheAttributeModification"] - }, - "2000" : { - "0010" : ["IS", "NumberOfCopies"], - "001E" : ["SQ", "PrinterConfigurationSequence"], - "0020" : ["CS", "PrintPriority"], - "0030" : ["CS", "MediumType"], - "0040" : ["CS", "FilmDestination"], - "0050" : ["LO", "FilmSessionLabel"], - "0060" : ["IS", "MemoryAllocation"], - "0061" : ["IS", "MaximumMemoryAllocation"], - "0062" : ["CS", "ColorImagePrintingFlag"], - "0063" : ["CS", "CollationFlag"], - "0065" : ["CS", "AnnotationFlag"], - "0067" : ["CS", "ImageOverlayFlag"], - "0069" : ["CS", "PresentationLUTFlag"], - "006A" : ["CS", "ImageBoxPresentationLUTFlag"], - "00A0" : ["US", "MemoryBitDepth"], - "00A1" : ["US", "PrintingBitDepth"], - "00A2" : ["SQ", "MediaInstalledSequence"], - "00A4" : ["SQ", "OtherMediaAvailableSequence"], - "00A8" : ["SQ", "SupportedImageDisplayFormatsSequence"], - "0500" : ["SQ", "ReferencedFilmBoxSequence"], - "0510" : ["SQ", "ReferencedStoredPrintSequence"] - }, - "2010" : { - "0010" : ["ST", "ImageDisplayFormat"], - "0030" : ["CS", "AnnotationDisplayFormatID"], - "0040" : ["CS", "FilmOrientation"], - "0050" : ["CS", "FilmSizeID"], - "0052" : ["CS", "PrinterResolutionID"], - "0054" : ["CS", "DefaultPrinterResolutionID"], - "0060" : ["CS", "MagnificationType"], - "0080" : ["CS", "SmoothingType"], - "00A6" : ["CS", "DefaultMagnificationType"], - "00A7" : ["CS", "OtherMagnificationTypesAvailable"], - "00A8" : ["CS", "DefaultSmoothingType"], - "00A9" : ["CS", "OtherSmoothingTypesAvailable"], - "0100" : ["CS", "BorderDensity"], - "0110" : ["CS", "EmptyImageDensity"], - "0120" : ["US", "MinDensity"], - "0130" : ["US", "MaxDensity"], - "0140" : ["CS", "Trim"], - "0150" : ["ST", "ConfigurationInformation"], - "0152" : ["LT", "ConfigurationInformationDescription"], - "0154" : ["IS", "MaximumCollatedFilms"], - "015E" : ["US", "Illumination"], - "0160" : ["US", "ReflectedAmbientLight"], - "0376" : ["DS", "PrinterPixelSpacing"], - "0500" : ["SQ", "ReferencedFilmSessionSequence"], - "0510" : ["SQ", "ReferencedImageBoxSequence"], - "0520" : ["SQ", "ReferencedBasicAnnotationBoxSequence"] - }, - "2020" : { - "0010" : ["US", "ImageBoxPosition"], - "0020" : ["CS", "Polarity"], - "0030" : ["DS", "RequestedImageSize"], - "0040" : ["CS", "RequestedDecimateCropBehavior"], - "0050" : ["CS", "RequestedResolutionID"], - "00A0" : ["CS", "RequestedImageSizeFlag"], - "00A2" : ["CS", "DecimateCropResult"], - "0110" : ["SQ", "BasicGrayscaleImageSequence"], - "0111" : ["SQ", "BasicColorImageSequence"], - "0130" : ["SQ", "ReferencedImageOverlayBoxSequence"], - "0140" : ["SQ", "ReferencedVOILUTBoxSequence"] - }, - "2030" : { - "0010" : ["US", "AnnotationPosition"], - "0020" : ["LO", "TextString"] - }, - "2040" : { - "0010" : ["SQ", "ReferencedOverlayPlaneSequence"], - "0011" : ["US", "ReferencedOverlayPlaneGroups"], - "0020" : ["SQ", "OverlayPixelDataSequence"], - "0060" : ["CS", "OverlayMagnificationType"], - "0070" : ["CS", "OverlaySmoothingType"], - "0072" : ["CS", "OverlayOrImageMagnification"], - "0074" : ["US", "MagnifyToNumberOfColumns"], - "0080" : ["CS", "OverlayForegroundDensity"], - "0082" : ["CS", "OverlayBackgroundDensity"], - "0090" : ["CS", "OverlayMode"], - "0100" : ["CS", "ThresholdDensity"], - "0500" : ["SQ", "ReferencedImageBoxSequenceRetired"] - }, - "2050" : { - "0010" : ["SQ", "PresentationLUTSequence"], - "0020" : ["CS", "PresentationLUTShape"], - "0500" : ["SQ", "ReferencedPresentationLUTSequence"] - }, - "2100" : { - "0010" : ["SH", "PrintJobID"], - "0020" : ["CS", "ExecutionStatus"], - "0030" : ["CS", "ExecutionStatusInfo"], - "0040" : ["DA", "CreationDate"], - "0050" : ["TM", "CreationTime"], - "0070" : ["AE", "Originator"], - "0140" : ["AE", "DestinationAE"], - "0160" : ["SH", "OwnerID"], - "0170" : ["IS", "NumberOfFilms"], - "0500" : ["SQ", "ReferencedPrintJobSequencePullStoredPrint"] - }, - "2110" : { - "0010" : ["CS", "PrinterStatus"], - "0020" : ["CS", "PrinterStatusInfo"], - "0030" : ["LO", "PrinterName"], - "0099" : ["SH", "PrintQueueID"] - }, - "2120" : { - "0010" : ["CS", "QueueStatus"], - "0050" : ["SQ", "PrintJobDescriptionSequence"], - "0070" : ["SQ", "ReferencedPrintJobSequence"] - }, - "2130" : { - "0010" : ["SQ", "PrintManagementCapabilitiesSequence"], - "0015" : ["SQ", "PrinterCharacteristicsSequence"], - "0030" : ["SQ", "FilmBoxContentSequence"], - "0040" : ["SQ", "ImageBoxContentSequence"], - "0050" : ["SQ", "AnnotationContentSequence"], - "0060" : ["SQ", "ImageOverlayBoxContentSequence"], - "0080" : ["SQ", "PresentationLUTContentSequence"], - "00A0" : ["SQ", "ProposedStudySequence"], - "00C0" : ["SQ", "OriginalImageSequence"] - }, - "2200" : { - "0001" : ["CS", "LabelUsingInformationExtractedFromInstances"], - "0002" : ["UT", "LabelText"], - "0003" : ["CS", "LabelStyleSelection"], - "0004" : ["LT", "MediaDisposition"], - "0005" : ["LT", "BarcodeValue"], - "0006" : ["CS", "BarcodeSymbology"], - "0007" : ["CS", "AllowMediaSplitting"], - "0008" : ["CS", "IncludeNonDICOMObjects"], - "0009" : ["CS", "IncludeDisplayApplication"], - "000A" : ["CS", "PreserveCompositeInstancesAfterMediaCreation"], - "000B" : ["US", "TotalNumberOfPiecesOfMediaCreated"], - "000C" : ["LO", "RequestedMediaApplicationProfile"], - "000D" : ["SQ", "ReferencedStorageMediaSequence"], - "000E" : ["AT", "FailureAttributes"], - "000F" : ["CS", "AllowLossyCompression"], - "0020" : ["CS", "RequestPriority"] - }, - "3002" : { - "0002" : ["SH", "RTImageLabel"], - "0003" : ["LO", "RTImageName"], - "0004" : ["ST", "RTImageDescription"], - "000A" : ["CS", "ReportedValuesOrigin"], - "000C" : ["CS", "RTImagePlane"], - "000D" : ["DS", "XRayImageReceptorTranslation"], - "000E" : ["DS", "XRayImageReceptorAngle"], - "0010" : ["DS", "RTImageOrientation"], - "0011" : ["DS", "ImagePlanePixelSpacing"], - "0012" : ["DS", "RTImagePosition"], - "0020" : ["SH", "RadiationMachineName"], - "0022" : ["DS", "RadiationMachineSAD"], - "0024" : ["DS", "RadiationMachineSSD"], - "0026" : ["DS", "RTImageSID"], - "0028" : ["DS", "SourceToReferenceObjectDistance"], - "0029" : ["IS", "FractionNumber"], - "0030" : ["SQ", "ExposureSequence"], - "0032" : ["DS", "MetersetExposure"], - "0034" : ["DS", "DiaphragmPosition"], - "0040" : ["SQ", "FluenceMapSequence"], - "0041" : ["CS", "FluenceDataSource"], - "0042" : ["DS", "FluenceDataScale"], - "0050" : ["SQ", "PrimaryFluenceModeSequence"], - "0051" : ["CS", "FluenceMode"], - "0052" : ["SH", "FluenceModeID"] - }, - "3004" : { - "0001" : ["CS", "DVHType"], - "0002" : ["CS", "DoseUnits"], - "0004" : ["CS", "DoseType"], - "0006" : ["LO", "DoseComment"], - "0008" : ["DS", "NormalizationPoint"], - "000A" : ["CS", "DoseSummationType"], - "000C" : ["DS", "GridFrameOffsetVector"], - "000E" : ["DS", "DoseGridScaling"], - "0010" : ["SQ", "RTDoseROISequence"], - "0012" : ["DS", "DoseValue"], - "0014" : ["CS", "TissueHeterogeneityCorrection"], - "0040" : ["DS", "DVHNormalizationPoint"], - "0042" : ["DS", "DVHNormalizationDoseValue"], - "0050" : ["SQ", "DVHSequence"], - "0052" : ["DS", "DVHDoseScaling"], - "0054" : ["CS", "DVHVolumeUnits"], - "0056" : ["IS", "DVHNumberOfBins"], - "0058" : ["DS", "DVHData"], - "0060" : ["SQ", "DVHReferencedROISequence"], - "0062" : ["CS", "DVHROIContributionType"], - "0070" : ["DS", "DVHMinimumDose"], - "0072" : ["DS", "DVHMaximumDose"], - "0074" : ["DS", "DVHMeanDose"] - }, - "3006" : { - "0002" : ["SH", "StructureSetLabel"], - "0004" : ["LO", "StructureSetName"], - "0006" : ["ST", "StructureSetDescription"], - "0008" : ["DA", "StructureSetDate"], - "0009" : ["TM", "StructureSetTime"], - "0010" : ["SQ", "ReferencedFrameOfReferenceSequence"], - "0012" : ["SQ", "RTReferencedStudySequence"], - "0014" : ["SQ", "RTReferencedSeriesSequence"], - "0016" : ["SQ", "ContourImageSequence"], - "0020" : ["SQ", "StructureSetROISequence"], - "0022" : ["IS", "ROINumber"], - "0024" : ["UI", "ReferencedFrameOfReferenceUID"], - "0026" : ["LO", "ROIName"], - "0028" : ["ST", "ROIDescription"], - "002A" : ["IS", "ROIDisplayColor"], - "002C" : ["DS", "ROIVolume"], - "0030" : ["SQ", "RTRelatedROISequence"], - "0033" : ["CS", "RTROIRelationship"], - "0036" : ["CS", "ROIGenerationAlgorithm"], - "0038" : ["LO", "ROIGenerationDescription"], - "0039" : ["SQ", "ROIContourSequence"], - "0040" : ["SQ", "ContourSequence"], - "0042" : ["CS", "ContourGeometricType"], - "0044" : ["DS", "ContourSlabThickness"], - "0045" : ["DS", "ContourOffsetVector"], - "0046" : ["IS", "NumberOfContourPoints"], - "0048" : ["IS", "ContourNumber"], - "0049" : ["IS", "AttachedContours"], - "0050" : ["DS", "ContourData"], - "0080" : ["SQ", "RTROIObservationsSequence"], - "0082" : ["IS", "ObservationNumber"], - "0084" : ["IS", "ReferencedROINumber"], - "0085" : ["SH", "ROIObservationLabel"], - "0086" : ["SQ", "RTROIIdentificationCodeSequence"], - "0088" : ["ST", "ROIObservationDescription"], - "00A0" : ["SQ", "RelatedRTROIObservationsSequence"], - "00A4" : ["CS", "RTROIInterpretedType"], - "00A6" : ["PN", "ROIInterpreter"], - "00B0" : ["SQ", "ROIPhysicalPropertiesSequence"], - "00B2" : ["CS", "ROIPhysicalProperty"], - "00B4" : ["DS", "ROIPhysicalPropertyValue"], - "00B6" : ["SQ", "ROIElementalCompositionSequence"], - "00B7" : ["US", "ROIElementalCompositionAtomicNumber"], - "00B8" : ["FL", "ROIElementalCompositionAtomicMassFraction"], - "00C0" : ["SQ", "FrameOfReferenceRelationshipSequence"], - "00C2" : ["UI", "RelatedFrameOfReferenceUID"], - "00C4" : ["CS", "FrameOfReferenceTransformationType"], - "00C6" : ["DS", "FrameOfReferenceTransformationMatrix"], - "00C8" : ["LO", "FrameOfReferenceTransformationComment"] - }, - "3008" : { - "0010" : ["SQ", "MeasuredDoseReferenceSequence"], - "0012" : ["ST", "MeasuredDoseDescription"], - "0014" : ["CS", "MeasuredDoseType"], - "0016" : ["DS", "MeasuredDoseValue"], - "0020" : ["SQ", "TreatmentSessionBeamSequence"], - "0021" : ["SQ", "TreatmentSessionIonBeamSequence"], - "0022" : ["IS", "CurrentFractionNumber"], - "0024" : ["DA", "TreatmentControlPointDate"], - "0025" : ["TM", "TreatmentControlPointTime"], - "002A" : ["CS", "TreatmentTerminationStatus"], - "002B" : ["SH", "TreatmentTerminationCode"], - "002C" : ["CS", "TreatmentVerificationStatus"], - "0030" : ["SQ", "ReferencedTreatmentRecordSequence"], - "0032" : ["DS", "SpecifiedPrimaryMeterset"], - "0033" : ["DS", "SpecifiedSecondaryMeterset"], - "0036" : ["DS", "DeliveredPrimaryMeterset"], - "0037" : ["DS", "DeliveredSecondaryMeterset"], - "003A" : ["DS", "SpecifiedTreatmentTime"], - "003B" : ["DS", "DeliveredTreatmentTime"], - "0040" : ["SQ", "ControlPointDeliverySequence"], - "0041" : ["SQ", "IonControlPointDeliverySequence"], - "0042" : ["DS", "SpecifiedMeterset"], - "0044" : ["DS", "DeliveredMeterset"], - "0045" : ["FL", "MetersetRateSet"], - "0046" : ["FL", "MetersetRateDelivered"], - "0047" : ["FL", "ScanSpotMetersetsDelivered"], - "0048" : ["DS", "DoseRateDelivered"], - "0050" : ["SQ", "TreatmentSummaryCalculatedDoseReferenceSequence"], - "0052" : ["DS", "CumulativeDoseToDoseReference"], - "0054" : ["DA", "FirstTreatmentDate"], - "0056" : ["DA", "MostRecentTreatmentDate"], - "005A" : ["IS", "NumberOfFractionsDelivered"], - "0060" : ["SQ", "OverrideSequence"], - "0061" : ["AT", "ParameterSequencePointer"], - "0062" : ["AT", "OverrideParameterPointer"], - "0063" : ["IS", "ParameterItemIndex"], - "0064" : ["IS", "MeasuredDoseReferenceNumber"], - "0065" : ["AT", "ParameterPointer"], - "0066" : ["ST", "OverrideReason"], - "0068" : ["SQ", "CorrectedParameterSequence"], - "006A" : ["FL", "CorrectionValue"], - "0070" : ["SQ", "CalculatedDoseReferenceSequence"], - "0072" : ["IS", "CalculatedDoseReferenceNumber"], - "0074" : ["ST", "CalculatedDoseReferenceDescription"], - "0076" : ["DS", "CalculatedDoseReferenceDoseValue"], - "0078" : ["DS", "StartMeterset"], - "007A" : ["DS", "EndMeterset"], - "0080" : ["SQ", "ReferencedMeasuredDoseReferenceSequence"], - "0082" : ["IS", "ReferencedMeasuredDoseReferenceNumber"], - "0090" : ["SQ", "ReferencedCalculatedDoseReferenceSequence"], - "0092" : ["IS", "ReferencedCalculatedDoseReferenceNumber"], - "00A0" : ["SQ", "BeamLimitingDeviceLeafPairsSequence"], - "00B0" : ["SQ", "RecordedWedgeSequence"], - "00C0" : ["SQ", "RecordedCompensatorSequence"], - "00D0" : ["SQ", "RecordedBlockSequence"], - "00E0" : ["SQ", "TreatmentSummaryMeasuredDoseReferenceSequence"], - "00F0" : ["SQ", "RecordedSnoutSequence"], - "00F2" : ["SQ", "RecordedRangeShifterSequence"], - "00F4" : ["SQ", "RecordedLateralSpreadingDeviceSequence"], - "00F6" : ["SQ", "RecordedRangeModulatorSequence"], - "0100" : ["SQ", "RecordedSourceSequence"], - "0105" : ["LO", "SourceSerialNumber"], - "0110" : ["SQ", "TreatmentSessionApplicationSetupSequence"], - "0116" : ["CS", "ApplicationSetupCheck"], - "0120" : ["SQ", "RecordedBrachyAccessoryDeviceSequence"], - "0122" : ["IS", "ReferencedBrachyAccessoryDeviceNumber"], - "0130" : ["SQ", "RecordedChannelSequence"], - "0132" : ["DS", "SpecifiedChannelTotalTime"], - "0134" : ["DS", "DeliveredChannelTotalTime"], - "0136" : ["IS", "SpecifiedNumberOfPulses"], - "0138" : ["IS", "DeliveredNumberOfPulses"], - "013A" : ["DS", "SpecifiedPulseRepetitionInterval"], - "013C" : ["DS", "DeliveredPulseRepetitionInterval"], - "0140" : ["SQ", "RecordedSourceApplicatorSequence"], - "0142" : ["IS", "ReferencedSourceApplicatorNumber"], - "0150" : ["SQ", "RecordedChannelShieldSequence"], - "0152" : ["IS", "ReferencedChannelShieldNumber"], - "0160" : ["SQ", "BrachyControlPointDeliveredSequence"], - "0162" : ["DA", "SafePositionExitDate"], - "0164" : ["TM", "SafePositionExitTime"], - "0166" : ["DA", "SafePositionReturnDate"], - "0168" : ["TM", "SafePositionReturnTime"], - "0200" : ["CS", "CurrentTreatmentStatus"], - "0202" : ["ST", "TreatmentStatusComment"], - "0220" : ["SQ", "FractionGroupSummarySequence"], - "0223" : ["IS", "ReferencedFractionNumber"], - "0224" : ["CS", "FractionGroupType"], - "0230" : ["CS", "BeamStopperPosition"], - "0240" : ["SQ", "FractionStatusSummarySequence"], - "0250" : ["DA", "TreatmentDate"], - "0251" : ["TM", "TreatmentTime"] - }, - "300A" : { - "0002" : ["SH", "RTPlanLabel"], - "0003" : ["LO", "RTPlanName"], - "0004" : ["ST", "RTPlanDescription"], - "0006" : ["DA", "RTPlanDate"], - "0007" : ["TM", "RTPlanTime"], - "0009" : ["LO", "TreatmentProtocols"], - "000A" : ["CS", "PlanIntent"], - "000B" : ["LO", "TreatmentSites"], - "000C" : ["CS", "RTPlanGeometry"], - "000E" : ["ST", "PrescriptionDescription"], - "0010" : ["SQ", "DoseReferenceSequence"], - "0012" : ["IS", "DoseReferenceNumber"], - "0013" : ["UI", "DoseReferenceUID"], - "0014" : ["CS", "DoseReferenceStructureType"], - "0015" : ["CS", "NominalBeamEnergyUnit"], - "0016" : ["LO", "DoseReferenceDescription"], - "0018" : ["DS", "DoseReferencePointCoordinates"], - "001A" : ["DS", "NominalPriorDose"], - "0020" : ["CS", "DoseReferenceType"], - "0021" : ["DS", "ConstraintWeight"], - "0022" : ["DS", "DeliveryWarningDose"], - "0023" : ["DS", "DeliveryMaximumDose"], - "0025" : ["DS", "TargetMinimumDose"], - "0026" : ["DS", "TargetPrescriptionDose"], - "0027" : ["DS", "TargetMaximumDose"], - "0028" : ["DS", "TargetUnderdoseVolumeFraction"], - "002A" : ["DS", "OrganAtRiskFullVolumeDose"], - "002B" : ["DS", "OrganAtRiskLimitDose"], - "002C" : ["DS", "OrganAtRiskMaximumDose"], - "002D" : ["DS", "OrganAtRiskOverdoseVolumeFraction"], - "0040" : ["SQ", "ToleranceTableSequence"], - "0042" : ["IS", "ToleranceTableNumber"], - "0043" : ["SH", "ToleranceTableLabel"], - "0044" : ["DS", "GantryAngleTolerance"], - "0046" : ["DS", "BeamLimitingDeviceAngleTolerance"], - "0048" : ["SQ", "BeamLimitingDeviceToleranceSequence"], - "004A" : ["DS", "BeamLimitingDevicePositionTolerance"], - "004B" : ["FL", "SnoutPositionTolerance"], - "004C" : ["DS", "PatientSupportAngleTolerance"], - "004E" : ["DS", "TableTopEccentricAngleTolerance"], - "004F" : ["FL", "TableTopPitchAngleTolerance"], - "0050" : ["FL", "TableTopRollAngleTolerance"], - "0051" : ["DS", "TableTopVerticalPositionTolerance"], - "0052" : ["DS", "TableTopLongitudinalPositionTolerance"], - "0053" : ["DS", "TableTopLateralPositionTolerance"], - "0055" : ["CS", "RTPlanRelationship"], - "0070" : ["SQ", "FractionGroupSequence"], - "0071" : ["IS", "FractionGroupNumber"], - "0072" : ["LO", "FractionGroupDescription"], - "0078" : ["IS", "NumberOfFractionsPlanned"], - "0079" : ["IS", "NumberOfFractionPatternDigitsPerDay"], - "007A" : ["IS", "RepeatFractionCycleLength"], - "007B" : ["LT", "FractionPattern"], - "0080" : ["IS", "NumberOfBeams"], - "0082" : ["DS", "BeamDoseSpecificationPoint"], - "0084" : ["DS", "BeamDose"], - "0086" : ["DS", "BeamMeterset"], - "0088" : ["FL", "BeamDosePointDepth"], - "0089" : ["FL", "BeamDosePointEquivalentDepth"], - "008A" : ["FL", "BeamDosePointSSD"], - "00A0" : ["IS", "NumberOfBrachyApplicationSetups"], - "00A2" : ["DS", "BrachyApplicationSetupDoseSpecificationPoint"], - "00A4" : ["DS", "BrachyApplicationSetupDose"], - "00B0" : ["SQ", "BeamSequence"], - "00B2" : ["SH", "TreatmentMachineName"], - "00B3" : ["CS", "PrimaryDosimeterUnit"], - "00B4" : ["DS", "SourceAxisDistance"], - "00B6" : ["SQ", "BeamLimitingDeviceSequence"], - "00B8" : ["CS", "RTBeamLimitingDeviceType"], - "00BA" : ["DS", "SourceToBeamLimitingDeviceDistance"], - "00BB" : ["FL", "IsocenterToBeamLimitingDeviceDistance"], - "00BC" : ["IS", "NumberOfLeafJawPairs"], - "00BE" : ["DS", "LeafPositionBoundaries"], - "00C0" : ["IS", "BeamNumber"], - "00C2" : ["LO", "BeamName"], - "00C3" : ["ST", "BeamDescription"], - "00C4" : ["CS", "BeamType"], - "00C6" : ["CS", "RadiationType"], - "00C7" : ["CS", "HighDoseTechniqueType"], - "00C8" : ["IS", "ReferenceImageNumber"], - "00CA" : ["SQ", "PlannedVerificationImageSequence"], - "00CC" : ["LO", "ImagingDeviceSpecificAcquisitionParameters"], - "00CE" : ["CS", "TreatmentDeliveryType"], - "00D0" : ["IS", "NumberOfWedges"], - "00D1" : ["SQ", "WedgeSequence"], - "00D2" : ["IS", "WedgeNumber"], - "00D3" : ["CS", "WedgeType"], - "00D4" : ["SH", "WedgeID"], - "00D5" : ["IS", "WedgeAngle"], - "00D6" : ["DS", "WedgeFactor"], - "00D7" : ["FL", "TotalWedgeTrayWaterEquivalentThickness"], - "00D8" : ["DS", "WedgeOrientation"], - "00D9" : ["FL", "IsocenterToWedgeTrayDistance"], - "00DA" : ["DS", "SourceToWedgeTrayDistance"], - "00DB" : ["FL", "WedgeThinEdgePosition"], - "00DC" : ["SH", "BolusID"], - "00DD" : ["ST", "BolusDescription"], - "00E0" : ["IS", "NumberOfCompensators"], - "00E1" : ["SH", "MaterialID"], - "00E2" : ["DS", "TotalCompensatorTrayFactor"], - "00E3" : ["SQ", "CompensatorSequence"], - "00E4" : ["IS", "CompensatorNumber"], - "00E5" : ["SH", "CompensatorID"], - "00E6" : ["DS", "SourceToCompensatorTrayDistance"], - "00E7" : ["IS", "CompensatorRows"], - "00E8" : ["IS", "CompensatorColumns"], - "00E9" : ["DS", "CompensatorPixelSpacing"], - "00EA" : ["DS", "CompensatorPosition"], - "00EB" : ["DS", "CompensatorTransmissionData"], - "00EC" : ["DS", "CompensatorThicknessData"], - "00ED" : ["IS", "NumberOfBoli"], - "00EE" : ["CS", "CompensatorType"], - "00F0" : ["IS", "NumberOfBlocks"], - "00F2" : ["DS", "TotalBlockTrayFactor"], - "00F3" : ["FL", "TotalBlockTrayWaterEquivalentThickness"], - "00F4" : ["SQ", "BlockSequence"], - "00F5" : ["SH", "BlockTrayID"], - "00F6" : ["DS", "SourceToBlockTrayDistance"], - "00F7" : ["FL", "IsocenterToBlockTrayDistance"], - "00F8" : ["CS", "BlockType"], - "00F9" : ["LO", "AccessoryCode"], - "00FA" : ["CS", "BlockDivergence"], - "00FB" : ["CS", "BlockMountingPosition"], - "00FC" : ["IS", "BlockNumber"], - "00FE" : ["LO", "BlockName"], - "0100" : ["DS", "BlockThickness"], - "0102" : ["DS", "BlockTransmission"], - "0104" : ["IS", "BlockNumberOfPoints"], - "0106" : ["DS", "BlockData"], - "0107" : ["SQ", "ApplicatorSequence"], - "0108" : ["SH", "ApplicatorID"], - "0109" : ["CS", "ApplicatorType"], - "010A" : ["LO", "ApplicatorDescription"], - "010C" : ["DS", "CumulativeDoseReferenceCoefficient"], - "010E" : ["DS", "FinalCumulativeMetersetWeight"], - "0110" : ["IS", "NumberOfControlPoints"], - "0111" : ["SQ", "ControlPointSequence"], - "0112" : ["IS", "ControlPointIndex"], - "0114" : ["DS", "NominalBeamEnergy"], - "0115" : ["DS", "DoseRateSet"], - "0116" : ["SQ", "WedgePositionSequence"], - "0118" : ["CS", "WedgePosition"], - "011A" : ["SQ", "BeamLimitingDevicePositionSequence"], - "011C" : ["DS", "LeafJawPositions"], - "011E" : ["DS", "GantryAngle"], - "011F" : ["CS", "GantryRotationDirection"], - "0120" : ["DS", "BeamLimitingDeviceAngle"], - "0121" : ["CS", "BeamLimitingDeviceRotationDirection"], - "0122" : ["DS", "PatientSupportAngle"], - "0123" : ["CS", "PatientSupportRotationDirection"], - "0124" : ["DS", "TableTopEccentricAxisDistance"], - "0125" : ["DS", "TableTopEccentricAngle"], - "0126" : ["CS", "TableTopEccentricRotationDirection"], - "0128" : ["DS", "TableTopVerticalPosition"], - "0129" : ["DS", "TableTopLongitudinalPosition"], - "012A" : ["DS", "TableTopLateralPosition"], - "012C" : ["DS", "IsocenterPosition"], - "012E" : ["DS", "SurfaceEntryPoint"], - "0130" : ["DS", "SourceToSurfaceDistance"], - "0134" : ["DS", "CumulativeMetersetWeight"], - "0140" : ["FL", "TableTopPitchAngle"], - "0142" : ["CS", "TableTopPitchRotationDirection"], - "0144" : ["FL", "TableTopRollAngle"], - "0146" : ["CS", "TableTopRollRotationDirection"], - "0148" : ["FL", "HeadFixationAngle"], - "014A" : ["FL", "GantryPitchAngle"], - "014C" : ["CS", "GantryPitchRotationDirection"], - "014E" : ["FL", "GantryPitchAngleTolerance"], - "0180" : ["SQ", "PatientSetupSequence"], - "0182" : ["IS", "PatientSetupNumber"], - "0183" : ["LO", "PatientSetupLabel"], - "0184" : ["LO", "PatientAdditionalPosition"], - "0190" : ["SQ", "FixationDeviceSequence"], - "0192" : ["CS", "FixationDeviceType"], - "0194" : ["SH", "FixationDeviceLabel"], - "0196" : ["ST", "FixationDeviceDescription"], - "0198" : ["SH", "FixationDevicePosition"], - "0199" : ["FL", "FixationDevicePitchAngle"], - "019A" : ["FL", "FixationDeviceRollAngle"], - "01A0" : ["SQ", "ShieldingDeviceSequence"], - "01A2" : ["CS", "ShieldingDeviceType"], - "01A4" : ["SH", "ShieldingDeviceLabel"], - "01A6" : ["ST", "ShieldingDeviceDescription"], - "01A8" : ["SH", "ShieldingDevicePosition"], - "01B0" : ["CS", "SetupTechnique"], - "01B2" : ["ST", "SetupTechniqueDescription"], - "01B4" : ["SQ", "SetupDeviceSequence"], - "01B6" : ["CS", "SetupDeviceType"], - "01B8" : ["SH", "SetupDeviceLabel"], - "01BA" : ["ST", "SetupDeviceDescription"], - "01BC" : ["DS", "SetupDeviceParameter"], - "01D0" : ["ST", "SetupReferenceDescription"], - "01D2" : ["DS", "TableTopVerticalSetupDisplacement"], - "01D4" : ["DS", "TableTopLongitudinalSetupDisplacement"], - "01D6" : ["DS", "TableTopLateralSetupDisplacement"], - "0200" : ["CS", "BrachyTreatmentTechnique"], - "0202" : ["CS", "BrachyTreatmentType"], - "0206" : ["SQ", "TreatmentMachineSequence"], - "0210" : ["SQ", "SourceSequence"], - "0212" : ["IS", "SourceNumber"], - "0214" : ["CS", "SourceType"], - "0216" : ["LO", "SourceManufacturer"], - "0218" : ["DS", "ActiveSourceDiameter"], - "021A" : ["DS", "ActiveSourceLength"], - "0222" : ["DS", "SourceEncapsulationNominalThickness"], - "0224" : ["DS", "SourceEncapsulationNominalTransmission"], - "0226" : ["LO", "SourceIsotopeName"], - "0228" : ["DS", "SourceIsotopeHalfLife"], - "0229" : ["CS", "SourceStrengthUnits"], - "022A" : ["DS", "ReferenceAirKermaRate"], - "022B" : ["DS", "SourceStrength"], - "022C" : ["DA", "SourceStrengthReferenceDate"], - "022E" : ["TM", "SourceStrengthReferenceTime"], - "0230" : ["SQ", "ApplicationSetupSequence"], - "0232" : ["CS", "ApplicationSetupType"], - "0234" : ["IS", "ApplicationSetupNumber"], - "0236" : ["LO", "ApplicationSetupName"], - "0238" : ["LO", "ApplicationSetupManufacturer"], - "0240" : ["IS", "TemplateNumber"], - "0242" : ["SH", "TemplateType"], - "0244" : ["LO", "TemplateName"], - "0250" : ["DS", "TotalReferenceAirKerma"], - "0260" : ["SQ", "BrachyAccessoryDeviceSequence"], - "0262" : ["IS", "BrachyAccessoryDeviceNumber"], - "0263" : ["SH", "BrachyAccessoryDeviceID"], - "0264" : ["CS", "BrachyAccessoryDeviceType"], - "0266" : ["LO", "BrachyAccessoryDeviceName"], - "026A" : ["DS", "BrachyAccessoryDeviceNominalThickness"], - "026C" : ["DS", "BrachyAccessoryDeviceNominalTransmission"], - "0280" : ["SQ", "ChannelSequence"], - "0282" : ["IS", "ChannelNumber"], - "0284" : ["DS", "ChannelLength"], - "0286" : ["DS", "ChannelTotalTime"], - "0288" : ["CS", "SourceMovementType"], - "028A" : ["IS", "NumberOfPulses"], - "028C" : ["DS", "PulseRepetitionInterval"], - "0290" : ["IS", "SourceApplicatorNumber"], - "0291" : ["SH", "SourceApplicatorID"], - "0292" : ["CS", "SourceApplicatorType"], - "0294" : ["LO", "SourceApplicatorName"], - "0296" : ["DS", "SourceApplicatorLength"], - "0298" : ["LO", "SourceApplicatorManufacturer"], - "029C" : ["DS", "SourceApplicatorWallNominalThickness"], - "029E" : ["DS", "SourceApplicatorWallNominalTransmission"], - "02A0" : ["DS", "SourceApplicatorStepSize"], - "02A2" : ["IS", "TransferTubeNumber"], - "02A4" : ["DS", "TransferTubeLength"], - "02B0" : ["SQ", "ChannelShieldSequence"], - "02B2" : ["IS", "ChannelShieldNumber"], - "02B3" : ["SH", "ChannelShieldID"], - "02B4" : ["LO", "ChannelShieldName"], - "02B8" : ["DS", "ChannelShieldNominalThickness"], - "02BA" : ["DS", "ChannelShieldNominalTransmission"], - "02C8" : ["DS", "FinalCumulativeTimeWeight"], - "02D0" : ["SQ", "BrachyControlPointSequence"], - "02D2" : ["DS", "ControlPointRelativePosition"], - "02D4" : ["DS", "ControlPoint3DPosition"], - "02D6" : ["DS", "CumulativeTimeWeight"], - "02E0" : ["CS", "CompensatorDivergence"], - "02E1" : ["CS", "CompensatorMountingPosition"], - "02E2" : ["DS", "SourceToCompensatorDistance"], - "02E3" : ["FL", "TotalCompensatorTrayWaterEquivalentThickness"], - "02E4" : ["FL", "IsocenterToCompensatorTrayDistance"], - "02E5" : ["FL", "CompensatorColumnOffset"], - "02E6" : ["FL", "IsocenterToCompensatorDistances"], - "02E7" : ["FL", "CompensatorRelativeStoppingPowerRatio"], - "02E8" : ["FL", "CompensatorMillingToolDiameter"], - "02EA" : ["SQ", "IonRangeCompensatorSequence"], - "02EB" : ["LT", "CompensatorDescription"], - "0302" : ["IS", "RadiationMassNumber"], - "0304" : ["IS", "RadiationAtomicNumber"], - "0306" : ["SS", "RadiationChargeState"], - "0308" : ["CS", "ScanMode"], - "030A" : ["FL", "VirtualSourceAxisDistances"], - "030C" : ["SQ", "SnoutSequence"], - "030D" : ["FL", "SnoutPosition"], - "030F" : ["SH", "SnoutID"], - "0312" : ["IS", "NumberOfRangeShifters"], - "0314" : ["SQ", "RangeShifterSequence"], - "0316" : ["IS", "RangeShifterNumber"], - "0318" : ["SH", "RangeShifterID"], - "0320" : ["CS", "RangeShifterType"], - "0322" : ["LO", "RangeShifterDescription"], - "0330" : ["IS", "NumberOfLateralSpreadingDevices"], - "0332" : ["SQ", "LateralSpreadingDeviceSequence"], - "0334" : ["IS", "LateralSpreadingDeviceNumber"], - "0336" : ["SH", "LateralSpreadingDeviceID"], - "0338" : ["CS", "LateralSpreadingDeviceType"], - "033A" : ["LO", "LateralSpreadingDeviceDescription"], - "033C" : ["FL", "LateralSpreadingDeviceWaterEquivalentThickness"], - "0340" : ["IS", "NumberOfRangeModulators"], - "0342" : ["SQ", "RangeModulatorSequence"], - "0344" : ["IS", "RangeModulatorNumber"], - "0346" : ["SH", "RangeModulatorID"], - "0348" : ["CS", "RangeModulatorType"], - "034A" : ["LO", "RangeModulatorDescription"], - "034C" : ["SH", "BeamCurrentModulationID"], - "0350" : ["CS", "PatientSupportType"], - "0352" : ["SH", "PatientSupportID"], - "0354" : ["LO", "PatientSupportAccessoryCode"], - "0356" : ["FL", "FixationLightAzimuthalAngle"], - "0358" : ["FL", "FixationLightPolarAngle"], - "035A" : ["FL", "MetersetRate"], - "0360" : ["SQ", "RangeShifterSettingsSequence"], - "0362" : ["LO", "RangeShifterSetting"], - "0364" : ["FL", "IsocenterToRangeShifterDistance"], - "0366" : ["FL", "RangeShifterWaterEquivalentThickness"], - "0370" : ["SQ", "LateralSpreadingDeviceSettingsSequence"], - "0372" : ["LO", "LateralSpreadingDeviceSetting"], - "0374" : ["FL", "IsocenterToLateralSpreadingDeviceDistance"], - "0380" : ["SQ", "RangeModulatorSettingsSequence"], - "0382" : ["FL", "RangeModulatorGatingStartValue"], - "0384" : ["FL", "RangeModulatorGatingStopValue"], - "0386" : ["FL", "RangeModulatorGatingStartWaterEquivalentThickness"], - "0388" : ["FL", "RangeModulatorGatingStopWaterEquivalentThickness"], - "038A" : ["FL", "IsocenterToRangeModulatorDistance"], - "0390" : ["SH", "ScanSpotTuneID"], - "0392" : ["IS", "NumberOfScanSpotPositions"], - "0394" : ["FL", "ScanSpotPositionMap"], - "0396" : ["FL", "ScanSpotMetersetWeights"], - "0398" : ["FL", "ScanningSpotSize"], - "039A" : ["IS", "NumberOfPaintings"], - "03A0" : ["SQ", "IonToleranceTableSequence"], - "03A2" : ["SQ", "IonBeamSequence"], - "03A4" : ["SQ", "IonBeamLimitingDeviceSequence"], - "03A6" : ["SQ", "IonBlockSequence"], - "03A8" : ["SQ", "IonControlPointSequence"], - "03AA" : ["SQ", "IonWedgeSequence"], - "03AC" : ["SQ", "IonWedgePositionSequence"], - "0401" : ["SQ", "ReferencedSetupImageSequence"], - "0402" : ["ST", "SetupImageComment"], - "0410" : ["SQ", "MotionSynchronizationSequence"], - "0412" : ["FL", "ControlPointOrientation"], - "0420" : ["SQ", "GeneralAccessorySequence"], - "0421" : ["SH", "GeneralAccessoryID"], - "0422" : ["ST", "GeneralAccessoryDescription"], - "0423" : ["CS", "GeneralAccessoryType"], - "0424" : ["IS", "GeneralAccessoryNumber"], - "0431" : ["SQ", "ApplicatorGeometrySequence"], - "0432" : ["CS", "ApplicatorApertureShape"], - "0433" : ["FL", "ApplicatorOpening"], - "0434" : ["FL", "ApplicatorOpeningX"], - "0435" : ["FL", "ApplicatorOpeningY"], - "0436" : ["FL", "SourceToApplicatorMountingPositionDistance"] - }, - "300C" : { - "0002" : ["SQ", "ReferencedRTPlanSequence"], - "0004" : ["SQ", "ReferencedBeamSequence"], - "0006" : ["IS", "ReferencedBeamNumber"], - "0007" : ["IS", "ReferencedReferenceImageNumber"], - "0008" : ["DS", "StartCumulativeMetersetWeight"], - "0009" : ["DS", "EndCumulativeMetersetWeight"], - "000A" : ["SQ", "ReferencedBrachyApplicationSetupSequence"], - "000C" : ["IS", "ReferencedBrachyApplicationSetupNumber"], - "000E" : ["IS", "ReferencedSourceNumber"], - "0020" : ["SQ", "ReferencedFractionGroupSequence"], - "0022" : ["IS", "ReferencedFractionGroupNumber"], - "0040" : ["SQ", "ReferencedVerificationImageSequence"], - "0042" : ["SQ", "ReferencedReferenceImageSequence"], - "0050" : ["SQ", "ReferencedDoseReferenceSequence"], - "0051" : ["IS", "ReferencedDoseReferenceNumber"], - "0055" : ["SQ", "BrachyReferencedDoseReferenceSequence"], - "0060" : ["SQ", "ReferencedStructureSetSequence"], - "006A" : ["IS", "ReferencedPatientSetupNumber"], - "0080" : ["SQ", "ReferencedDoseSequence"], - "00A0" : ["IS", "ReferencedToleranceTableNumber"], - "00B0" : ["SQ", "ReferencedBolusSequence"], - "00C0" : ["IS", "ReferencedWedgeNumber"], - "00D0" : ["IS", "ReferencedCompensatorNumber"], - "00E0" : ["IS", "ReferencedBlockNumber"], - "00F0" : ["IS", "ReferencedControlPointIndex"], - "00F2" : ["SQ", "ReferencedControlPointSequence"], - "00F4" : ["IS", "ReferencedStartControlPointIndex"], - "00F6" : ["IS", "ReferencedStopControlPointIndex"], - "0100" : ["IS", "ReferencedRangeShifterNumber"], - "0102" : ["IS", "ReferencedLateralSpreadingDeviceNumber"], - "0104" : ["IS", "ReferencedRangeModulatorNumber"] - }, - "300E" : { - "0002" : ["CS", "ApprovalStatus"], - "0004" : ["DA", "ReviewDate"], - "0005" : ["TM", "ReviewTime"], - "0008" : ["PN", "ReviewerName"] - }, - "4000" : { - "0010" : ["LT", "Arbitrary"], - "4000" : ["LT", "TextComments"] - }, - "4008" : { - "0040" : ["SH", "ResultsID"], - "0042" : ["LO", "ResultsIDIssuer"], - "0050" : ["SQ", "ReferencedInterpretationSequence"], - "00FF" : ["CS", "ReportProductionStatusTrial"], - "0100" : ["DA", "InterpretationRecordedDate"], - "0101" : ["TM", "InterpretationRecordedTime"], - "0102" : ["PN", "InterpretationRecorder"], - "0103" : ["LO", "ReferenceToRecordedSound"], - "0108" : ["DA", "InterpretationTranscriptionDate"], - "0109" : ["TM", "InterpretationTranscriptionTime"], - "010A" : ["PN", "InterpretationTranscriber"], - "010B" : ["ST", "InterpretationText"], - "010C" : ["PN", "InterpretationAuthor"], - "0111" : ["SQ", "InterpretationApproverSequence"], - "0112" : ["DA", "InterpretationApprovalDate"], - "0113" : ["TM", "InterpretationApprovalTime"], - "0114" : ["PN", "PhysicianApprovingInterpretation"], - "0115" : ["LT", "InterpretationDiagnosisDescription"], - "0117" : ["SQ", "InterpretationDiagnosisCodeSequence"], - "0118" : ["SQ", "ResultsDistributionListSequence"], - "0119" : ["PN", "DistributionName"], - "011A" : ["LO", "DistributionAddress"], - "0200" : ["SH", "InterpretationID"], - "0202" : ["LO", "InterpretationIDIssuer"], - "0210" : ["CS", "InterpretationTypeID"], - "0212" : ["CS", "InterpretationStatusID"], - "0300" : ["ST", "Impressions"], - "4000" : ["ST", "ResultsComments"] - }, - "4010" : { - "0001" : ["CS", "LowEnergyDetectors"], - "0002" : ["CS", "HighEnergyDetectors"], - "0004" : ["SQ", "DetectorGeometrySequence"], - "1001" : ["SQ", "ThreatROIVoxelSequence"], - "1004" : ["FL", "ThreatROIBase"], - "1005" : ["FL", "ThreatROIExtents"], - "1006" : ["OB", "ThreatROIBitmap"], - "1007" : ["SH", "RouteSegmentID"], - "1008" : ["CS", "GantryType"], - "1009" : ["CS", "OOIOwnerType"], - "100A" : ["SQ", "RouteSegmentSequence"], - "1010" : ["US", "PotentialThreatObjectID"], - "1011" : ["SQ", "ThreatSequence"], - "1012" : ["CS", "ThreatCategory"], - "1013" : ["LT", "ThreatCategoryDescription"], - "1014" : ["CS", "ATDAbilityAssessment"], - "1015" : ["CS", "ATDAssessmentFlag"], - "1016" : ["FL", "ATDAssessmentProbability"], - "1017" : ["FL", "Mass"], - "1018" : ["FL", "Density"], - "1019" : ["FL", "ZEffective"], - "101A" : ["SH", "BoardingPassID"], - "101B" : ["FL", "CenterOfMass"], - "101C" : ["FL", "CenterOfPTO"], - "101D" : ["FL", "BoundingPolygon"], - "101E" : ["SH", "RouteSegmentStartLocationID"], - "101F" : ["SH", "RouteSegmentEndLocationID"], - "1020" : ["CS", "RouteSegmentLocationIDType"], - "1021" : ["CS", "AbortReason"], - "1023" : ["FL", "VolumeOfPTO"], - "1024" : ["CS", "AbortFlag"], - "1025" : ["DT", "RouteSegmentStartTime"], - "1026" : ["DT", "RouteSegmentEndTime"], - "1027" : ["CS", "TDRType"], - "1028" : ["CS", "InternationalRouteSegment"], - "1029" : ["LO", "ThreatDetectionAlgorithmandVersion"], - "102A" : ["SH", "AssignedLocation"], - "102B" : ["DT", "AlarmDecisionTime"], - "1031" : ["CS", "AlarmDecision"], - "1033" : ["US", "NumberOfTotalObjects"], - "1034" : ["US", "NumberOfAlarmObjects"], - "1037" : ["SQ", "PTORepresentationSequence"], - "1038" : ["SQ", "ATDAssessmentSequence"], - "1039" : ["CS", "TIPType"], - "103A" : ["CS", "DICOSVersion"], - "1041" : ["DT", "OOIOwnerCreationTime"], - "1042" : ["CS", "OOIType"], - "1043" : ["FL", "OOISize"], - "1044" : ["CS", "AcquisitionStatus"], - "1045" : ["SQ", "BasisMaterialsCodeSequence"], - "1046" : ["CS", "PhantomType"], - "1047" : ["SQ", "OOIOwnerSequence"], - "1048" : ["CS", "ScanType"], - "1051" : ["LO", "ItineraryID"], - "1052" : ["SH", "ItineraryIDType"], - "1053" : ["LO", "ItineraryIDAssigningAuthority"], - "1054" : ["SH", "RouteID"], - "1055" : ["SH", "RouteIDAssigningAuthority"], - "1056" : ["CS", "InboundArrivalType"], - "1058" : ["SH", "CarrierID"], - "1059" : ["CS", "CarrierIDAssigningAuthority"], - "1060" : ["FL", "SourceOrientation"], - "1061" : ["FL", "SourcePosition"], - "1062" : ["FL", "BeltHeight"], - "1064" : ["SQ", "AlgorithmRoutingCodeSequence"], - "1067" : ["CS", "TransportClassification"], - "1068" : ["LT", "OOITypeDescriptor"], - "1069" : ["FL", "TotalProcessingTime"], - "106C" : ["OB", "DetectorCalibrationData"] - } -}; - - - -/*** Static Methods ***/ - -/** - * Returns the VR for the specified group and element. - * @param {number} group - * @param {number} element - * @returns {string} - */ -daikon.Dictionary.getVR = function (group, element) { - var vr, elementData, groupData; - - groupData = daikon.Dictionary.dict[daikon.Utils.dec2hex(group)]; - if (groupData) { - elementData = groupData[daikon.Utils.dec2hex(element)]; - if (elementData) { - vr = elementData[0]; - } else if (element === 0) { - vr = 'UL'; + function uj() { + var a2 = 0; + a2 = k[9214] | 0; + k[9214] = a2 + 0; + return a2 | 0; + } + function vj(a2) { + a2 = a2 | 0; + return; } - } - - if (!vr) { - groupData = daikon.Dictionary.dictPrivate[daikon.Utils.dec2hex(group)]; - if (groupData) { - elementData = groupData[daikon.Utils.dec2hex(element)]; - if (elementData) { - vr = elementData[0]; - } + function wj(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36868; + dk(a2 + 4 | 0); + return; } - } - - if (!vr) { - vr = 'OB'; - } - - return vr; -}; - - - -/** - * Returns the description for the specified group and element. - * @param {number} group - * @param {number} element - * @returns {string} - */ -daikon.Dictionary.getDescription = function (group, element) { - var des, elementData, groupData; - - groupData = daikon.Dictionary.dict[daikon.Utils.dec2hex(group)]; - if (groupData) { - elementData = groupData[daikon.Utils.dec2hex(element)]; - if (elementData) { - des = elementData[1]; - } else if (element === 0) { - des = ("Group " + daikon.Utils.dec2hex(group) + " Length"); + function xj(a2) { + a2 = a2 | 0; + wj(a2); + mj(a2); + return; } - } - - if (!des) { - groupData = daikon.Dictionary.dictPrivate[daikon.Utils.dec2hex(group)]; - if (groupData) { - elementData = groupData[daikon.Utils.dec2hex(element)]; - if (elementData) { - des = elementData[1]; - } + function yj(a2) { + a2 = a2 | 0; + return k[a2 + 4 >> 2] | 0; } - } - - if (!des) { - des = 'PrivateData'; - } - - return des; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Dictionary; -} - -},{"./utilities.js":47}],38:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Tag = daikon.Tag || ((typeof require !== 'undefined') ? require('./tag.js') : null); -daikon.CompressionUtils = daikon.CompressionUtils || ((typeof require !== 'undefined') ? require('./compression-utils.js') : null); -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); -daikon.RLE = daikon.RLE || ((typeof require !== 'undefined') ? require('./rle.js') : null); - -var jpeg = ((typeof require !== 'undefined') ? require('jpeg-lossless-decoder-js') : null); -var JpegDecoder = JpegDecoder || ((typeof require !== 'undefined') ? require('../lib/jpeg-baseline.js').JpegImage : null); -var JpxImage = JpxImage || ((typeof require !== 'undefined') ? require('../lib/jpx.js') : null); -var JpegLSDecoder = JpegLSDecoder || ((typeof require !== 'undefined') ? require('../lib/jpeg-ls.js') : null); - - -/*** Constructor ***/ - -/** - * The Image constructor. - * @property {object} tags - a map of tag id to tag (see daikon.Tag.createId) - * @property {object} tagsFlat - a flattened map of tags - * @type {Function} - */ -daikon.Image = daikon.Image || function () { - this.tags = {}; - this.tagsFlat = {}; - this.littleEndian = false; - this.index = -1; - this.decompressed = false; - this.privateDataAll = null; - this.convertedPalette = false; -}; - - -/*** Static Pseudo-constants ***/ - -daikon.Image.SLICE_DIRECTION_UNKNOWN = -1; -daikon.Image.SLICE_DIRECTION_AXIAL = 2; -daikon.Image.SLICE_DIRECTION_CORONAL = 1; -daikon.Image.SLICE_DIRECTION_SAGITTAL = 0; -daikon.Image.SLICE_DIRECTION_OBLIQUE = 3; -daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE = 0.8; - -daikon.Image.BYTE_TYPE_UNKNOWN = 0; -daikon.Image.BYTE_TYPE_BINARY = 1; -daikon.Image.BYTE_TYPE_INTEGER = 2; -daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED = 3; -daikon.Image.BYTE_TYPE_FLOAT = 4; -daikon.Image.BYTE_TYPE_COMPLEX = 5; -daikon.Image.BYTE_TYPE_RGB = 6; - - -/*** Static Methods ***/ - -daikon.Image.skipPaletteConversion = false; - - -daikon.Image.getSingleValueSafely = function (tag, index) { - if (tag && tag.value) { - return tag.value[index]; - } - - return null; -}; - - - -daikon.Image.getValueSafely = function (tag) { - if (tag) { - return tag.value; - } - - return null; -}; - - - -// originally from: http://public.kitware.com/pipermail/insight-users/2005-March/012246.html -daikon.Image.getMajorAxisFromPatientRelativeDirectionCosine = function(x, y, z) { - var axis, orientationX, orientationY, orientationZ, absX, absY, absZ; - - orientationX = (x < 0) ? "R" : "L"; - orientationY = (y < 0) ? "A" : "P"; - orientationZ = (z < 0) ? "F" : "H"; - - absX = Math.abs(x); - absY = Math.abs(y); - absZ = Math.abs(z); - - // The tests here really don't need to check the other dimensions, - // just the threshold, since the sum of the squares should be == 1.0 - // but just in case ... - - if ((absX > daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE) && (absX > absY) && (absX > absZ)) { - axis = orientationX; - } else if ((absY > daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE) && (absY > absX) && (absY > absZ)) { - axis = orientationY; - } else if ((absZ > daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE) && (absZ > absX) && (absZ > absY)) { - axis = orientationZ; - } else { - axis = null; - } - - return axis; -}; - - -/*** Prototype Methods ***/ - -/** - * Returns the number of columns. - * @returns {number} - */ -daikon.Image.prototype.getCols = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_COLS[0], daikon.Tag.TAG_COLS[1]), 0); -}; - - - -/** - * Returns the number of rows. - * @returns {number} - */ -daikon.Image.prototype.getRows = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_ROWS[0], daikon.Tag.TAG_ROWS[1]), 0); -}; - - - -/** - * Returns the series description. - * @returns {string} - */ -daikon.Image.prototype.getSeriesDescription = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_DESCRIPTION[0], daikon.Tag.TAG_SERIES_DESCRIPTION[1]), 0); -}; - - - -/** - * Returns the series instance UID. - * @returns {string} - */ -daikon.Image.prototype.getSeriesInstanceUID = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_INSTANCE_UID[0], daikon.Tag.TAG_SERIES_INSTANCE_UID[1]), 0); -}; - - - -/** - * Returns the series number. - * @returns {number} - */ -daikon.Image.prototype.getSeriesNumber = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_NUMBER[0], daikon.Tag.TAG_SERIES_NUMBER[1]), 0); -}; - - - -/** - * Returns the echo number. - * @returns {number} - */ -daikon.Image.prototype.getEchoNumber = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_ECHO_NUMBER[0], daikon.Tag.TAG_ECHO_NUMBER[1]), 0); -}; - - - -/** - * Returns the image position. - * @return {number[]} - */ -daikon.Image.prototype.getImagePosition = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_POSITION[0], daikon.Tag.TAG_IMAGE_POSITION[1])); -}; - -/** - * Returns the image axis directions - * @return {number[]} - */ -daikon.Image.prototype.getImageDirections = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_ORIENTATION[0], daikon.Tag.TAG_IMAGE_ORIENTATION[1])) -}; - - -/** - * Returns the image position value by index. - * @param {number} sliceDir - the index - * @returns {number} - */ -daikon.Image.prototype.getImagePositionSliceDir = function (sliceDir) { - var imagePos = daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_POSITION[0], daikon.Tag.TAG_IMAGE_POSITION[1])); - if (imagePos) { - if (sliceDir >= 0) { - return imagePos[sliceDir]; + function zj(a2) { + a2 = a2 | 0; + return; } - } - - return 0; -}; - - -/** - * Returns the modality - * @returns {string} - */ -daikon.Image.prototype.getModality = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_MODALITY[0], daikon.Tag.TAG_MODALITY[1]), 0); -}; - - -/** - * Returns the slice location. - * @returns {number} - */ -daikon.Image.prototype.getSliceLocation = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SLICE_LOCATION[0], daikon.Tag.TAG_SLICE_LOCATION[1]), 0); -}; - - - -/** - * Returns the slice location vector. - * @returns {number[]} - */ -daikon.Image.prototype.getSliceLocationVector = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_SLICE_LOCATION_VECTOR[0], daikon.Tag.TAG_SLICE_LOCATION_VECTOR[1])); -}; - - - -/** - * Returns the image number. - * @returns {number} - */ -daikon.Image.prototype.getImageNumber = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_NUM[0], daikon.Tag.TAG_IMAGE_NUM[1]), 0); -}; - - -/** - * Returns the temporal position. - * @returns {number} - */ -daikon.Image.prototype.getTemporalPosition = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_TEMPORAL_POSITION[0], daikon.Tag.TAG_TEMPORAL_POSITION[1]), 0); -}; - - -/** - * Returns the temporal number. - * @returns {number} - */ -daikon.Image.prototype.getTemporalNumber = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[0], daikon.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[1]), 0); -}; - - -/** - * Returns the slice gap. - * @returns {number} - */ -daikon.Image.prototype.getSliceGap = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SLICE_GAP[0], daikon.Tag.TAG_SLICE_GAP[1]), 0); -}; - - -/** - * Returns the slice thickness. - * @returns {number} - */ -daikon.Image.prototype.getSliceThickness = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SLICE_THICKNESS[0], daikon.Tag.TAG_SLICE_THICKNESS[1]), 0); -}; - - -/** - * Returns the image maximum. - * @returns {number} - */ -daikon.Image.prototype.getImageMax = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_MAX[0], daikon.Tag.TAG_IMAGE_MAX[1]), 0); -}; - - -/** - * Returns the image minimum. - * @returns {number} - */ -daikon.Image.prototype.getImageMin = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_MIN[0], daikon.Tag.TAG_IMAGE_MIN[1]), 0); -}; - - -/** - * Returns the rescale slope. - * @returns {number} - */ -daikon.Image.prototype.getDataScaleSlope = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_DATA_SCALE_SLOPE[0], daikon.Tag.TAG_DATA_SCALE_SLOPE[1]), 0); -}; - - -/** - * Returns the rescale intercept. - * @returns {number} - */ -daikon.Image.prototype.getDataScaleIntercept = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_DATA_SCALE_INTERCEPT[0], daikon.Tag.TAG_DATA_SCALE_INTERCEPT[1]), 0); -}; - - - -daikon.Image.prototype.getDataScaleElscint = function () { - var scale = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon.Tag.TAG_DATA_SCALE_ELSCINT[1]), 0); - - if (!scale) { - scale = 1; - } - - var bandwidth = this.getPixelBandwidth(); - scale = Math.sqrt(bandwidth) / (10 * scale); - - if (scale <= 0) { - scale = 1; - } - - return scale; -}; - - -/** - * Returns the window width. - * @returns {number} - */ -daikon.Image.prototype.getWindowWidth = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_WINDOW_WIDTH[0], daikon.Tag.TAG_WINDOW_WIDTH[1]), 0); -}; - - -/** - * Returns the window center. - * @returns {number} - */ -daikon.Image.prototype.getWindowCenter = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_WINDOW_CENTER[0], daikon.Tag.TAG_WINDOW_CENTER[1]), 0); -}; - - - -daikon.Image.prototype.getPixelBandwidth = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PIXEL_BANDWIDTH[0], daikon.Tag.TAG_PIXEL_BANDWIDTH[1]), 0); -}; - - - -daikon.Image.prototype.getSeriesId = function () { - var des = this.getSeriesDescription(); - var uid = this.getSeriesInstanceUID(); - var num = this.getSeriesNumber(); - var echo = this.getEchoNumber(); - var orientation = this.getOrientation(); - var cols = this.getCols(); - var rows = this.getRows(); - - var id = ""; - - if (des !== null) { - id += (" " + des); - } - - if (uid !== null) { - id += (" " + uid); - } - - if (num !== null) { - id += (" " + num); - } - - if (echo !== null) { - id += (" " + echo); - } - - if (orientation !== null) { - id += (" " + orientation); - } - - id += (" (" + cols + " x " + rows + ")"); - - return id; -}; - - -/** - * Returns the pixel spacing. - * @returns {number[]} - */ -daikon.Image.prototype.getPixelSpacing = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_PIXEL_SPACING[0], daikon.Tag.TAG_PIXEL_SPACING[1])); -}; - - -/** - * Returns the image type. - * @returns {string[]} - */ -daikon.Image.prototype.getImageType = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_TYPE[0], daikon.Tag.TAG_IMAGE_TYPE[1])); -}; - - -/** - * Returns the number of bits stored. - * @returns {number} - */ -daikon.Image.prototype.getBitsStored = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_BITS_STORED[0], daikon.Tag.TAG_BITS_STORED[1]), 0); -}; - - -/** - * Returns the number of bits allocated. - * @returns {number} - */ -daikon.Image.prototype.getBitsAllocated = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_BITS_ALLOCATED[0], daikon.Tag.TAG_BITS_ALLOCATED[1]), 0); -}; - - -/** - * Returns the frame time. - * @returns {number} - */ -daikon.Image.prototype.getFrameTime = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_FRAME_TIME[0], daikon.Tag.TAG_FRAME_TIME[1]), 0); -}; - - -/** - * Returns the acquisition matrix (e.g., "mosaic" data). - * @returns {number[]} - */ -daikon.Image.prototype.getAcquisitionMatrix = function () { - var mat, matPrivate, start, end, str; - - mat = [0, 0]; - mat[0] = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_ACQUISITION_MATRIX[0], daikon.Tag.TAG_ACQUISITION_MATRIX[1]), 0); - - if (this.privateDataAll === null) { - this.privateDataAll = this.getAllInterpretedPrivateData(); - } - - if ((this.privateDataAll !== null) && (this.privateDataAll.length > 0)) { - start = this.privateDataAll.indexOf("AcquisitionMatrixText"); - if (start !== -1) { - - end = this.privateDataAll.indexOf('\n', start); - - if (end !== -1) { - str = this.privateDataAll.substring(start, end); - matPrivate = str.match(/\d+/g); - - if ((matPrivate !== null) && (matPrivate.length === 2)) { - mat[0] = matPrivate[0]; - mat[1] = matPrivate[1]; - } else if ((matPrivate !== null) && (matPrivate.length === 1)) { - mat[0] = matPrivate[0]; + function Aj(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36888; + return; + } + function Bj(a2) { + a2 = a2 | 0; + return; + } + function Cj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Dj(a2) { + a2 = a2 | 0; + return 51716; + } + function Ej(a2) { + a2 = a2 | 0; + return; + } + function Fj(a2) { + a2 = a2 | 0; + return; + } + function Gj(a2) { + a2 = a2 | 0; + return; + } + function Hj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Ij(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Jj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Kj(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + g2 = r; + r = r + 64 | 0; + f2 = g2; + if ((a2 | 0) != (b2 | 0)) + if ((b2 | 0) != 0 ? (e2 = Qj(b2, 656, 672, 0) | 0, (e2 | 0) != 0) : 0) { + b2 = f2; + d2 = b2 + 56 | 0; + do { + k[b2 >> 2] = 0; + b2 = b2 + 4 | 0; + } while ((b2 | 0) < (d2 | 0)); + k[f2 >> 2] = e2; + k[f2 + 8 >> 2] = a2; + k[f2 + 12 >> 2] = -1; + k[f2 + 48 >> 2] = 1; + cc[k[(k[e2 >> 2] | 0) + 28 >> 2] & 63](e2, f2, k[c2 >> 2] | 0, 1); + if ((k[f2 + 24 >> 2] | 0) == 1) { + k[c2 >> 2] = k[f2 + 16 >> 2]; + b2 = 1; + } else + b2 = 0; + } else + b2 = 0; + else + b2 = 1; + r = g2; + return b2 | 0; + } + function Lj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + a2 = b2 + 16 | 0; + e2 = k[a2 >> 2] | 0; + do + if (e2) { + if ((e2 | 0) != (c2 | 0)) { + d2 = b2 + 36 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) + 1; + k[b2 + 24 >> 2] = 2; + i2[b2 + 54 >> 0] = 1; + break; + } + a2 = b2 + 24 | 0; + if ((k[a2 >> 2] | 0) == 2) + k[a2 >> 2] = d2; + } else { + k[a2 >> 2] = c2; + k[b2 + 24 >> 2] = d2; + k[b2 + 36 >> 2] = 1; + } + while (0); + return; + } + function Mj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Lj(0, b2, c2, d2); + return; + } + function Nj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Lj(0, b2, c2, d2); + else { + a2 = k[a2 + 8 >> 2] | 0; + cc[k[(k[a2 >> 2] | 0) + 28 >> 2] & 63](a2, b2, c2, d2); + } + return; + } + function Oj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + f2 = k[a2 + 4 >> 2] | 0; + e2 = f2 >> 8; + if (f2 & 1) + e2 = k[(k[c2 >> 2] | 0) + e2 >> 2] | 0; + a2 = k[a2 >> 2] | 0; + cc[k[(k[a2 >> 2] | 0) + 28 >> 2] & 63](a2, b2, c2 + e2 | 0, (f2 & 2 | 0) != 0 ? d2 : 2); + return; + } + function Pj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + a: + do + if ((a2 | 0) != (k[b2 + 8 >> 2] | 0)) { + f2 = k[a2 + 12 >> 2] | 0; + e2 = a2 + 16 + (f2 << 3) | 0; + Oj(a2 + 16 | 0, b2, c2, d2); + if ((f2 | 0) > 1) { + f2 = b2 + 54 | 0; + a2 = a2 + 24 | 0; + do { + Oj(a2, b2, c2, d2); + if (i2[f2 >> 0] | 0) + break a; + a2 = a2 + 8 | 0; + } while (a2 >>> 0 < e2 >>> 0); + } + } else + Lj(0, b2, c2, d2); + while (0); + return; + } + function Qj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = r; + r = r + 64 | 0; + p2 = q2; + o2 = k[a2 >> 2] | 0; + n2 = a2 + (k[o2 + -8 >> 2] | 0) | 0; + o2 = k[o2 + -4 >> 2] | 0; + k[p2 >> 2] = c2; + k[p2 + 4 >> 2] = a2; + k[p2 + 8 >> 2] = b2; + k[p2 + 12 >> 2] = d2; + d2 = p2 + 16 | 0; + a2 = p2 + 20 | 0; + b2 = p2 + 24 | 0; + e2 = p2 + 28 | 0; + f2 = p2 + 32 | 0; + g2 = p2 + 40 | 0; + h2 = (o2 | 0) == (c2 | 0); + l2 = d2; + m2 = l2 + 36 | 0; + do { + k[l2 >> 2] = 0; + l2 = l2 + 4 | 0; + } while ((l2 | 0) < (m2 | 0)); + j[d2 + 36 >> 1] = 0; + i2[d2 + 38 >> 0] = 0; + a: + do + if (h2) { + k[p2 + 48 >> 2] = 1; + Sb[k[(k[c2 >> 2] | 0) + 20 >> 2] & 15](c2, p2, n2, n2, 1, 0); + d2 = (k[b2 >> 2] | 0) == 1 ? n2 : 0; + } else { + Jb[k[(k[o2 >> 2] | 0) + 24 >> 2] & 15](o2, p2, n2, 1, 0); + switch (k[p2 + 36 >> 2] | 0) { + case 0: { + d2 = (k[g2 >> 2] | 0) == 1 & (k[e2 >> 2] | 0) == 1 & (k[f2 >> 2] | 0) == 1 ? k[a2 >> 2] | 0 : 0; + break a; + } + case 1: + break; + default: { + d2 = 0; + break a; + } + } + if ((k[b2 >> 2] | 0) != 1 ? !((k[g2 >> 2] | 0) == 0 & (k[e2 >> 2] | 0) == 1 & (k[f2 >> 2] | 0) == 1) : 0) { + d2 = 0; + break; } + d2 = k[d2 >> 2] | 0; + } + while (0); + r = q2; + return d2 | 0; + } + function Rj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + i2[b2 + 53 >> 0] = 1; + do + if ((k[b2 + 4 >> 2] | 0) == (d2 | 0)) { + i2[b2 + 52 >> 0] = 1; + d2 = b2 + 16 | 0; + a2 = k[d2 >> 2] | 0; + if (!a2) { + k[d2 >> 2] = c2; + k[b2 + 24 >> 2] = e2; + k[b2 + 36 >> 2] = 1; + if (!((e2 | 0) == 1 ? (k[b2 + 48 >> 2] | 0) == 1 : 0)) + break; + i2[b2 + 54 >> 0] = 1; + break; + } + if ((a2 | 0) != (c2 | 0)) { + e2 = b2 + 36 | 0; + k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; + i2[b2 + 54 >> 0] = 1; + break; + } + a2 = b2 + 24 | 0; + d2 = k[a2 >> 2] | 0; + if ((d2 | 0) == 2) { + k[a2 >> 2] = e2; + d2 = e2; + } + if ((d2 | 0) == 1 ? (k[b2 + 48 >> 2] | 0) == 1 : 0) + i2[b2 + 54 >> 0] = 1; } + while (0); + return; } - } - - if (mat[1] === 0) { - mat[1] = mat[0]; - } - - return mat; -}; - - -/** - * Returns the TR. - * @returns {number} - */ -daikon.Image.prototype.getTR = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_TR, daikon.Tag.TAG_TR[1]), 0); -}; - - - -daikon.Image.prototype.putTag = function (tag) { - if (this.tags[tag.id] && this.tags[tag.id].value[0] !== tag.value[0]) { - return; - } - this.tags[tag.id] = tag; - this.putFlattenedTag(this.tagsFlat, tag); -}; - - - -daikon.Image.prototype.putFlattenedTag = function (tags, tag) { - var ctr; - - if (tag.sublist) { - for (ctr = 0; ctr < tag.value.length; ctr += 1) { - this.putFlattenedTag(tags, tag.value[ctr]); + function Sj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + a: + do + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) { + if ((k[b2 + 4 >> 2] | 0) == (c2 | 0) ? (f2 = b2 + 28 | 0, (k[f2 >> 2] | 0) != 1) : 0) + k[f2 >> 2] = d2; + } else { + if ((a2 | 0) != (k[b2 >> 2] | 0)) { + q2 = k[a2 + 12 >> 2] | 0; + h2 = a2 + 16 + (q2 << 3) | 0; + Uj(a2 + 16 | 0, b2, c2, d2, e2); + f2 = a2 + 24 | 0; + if ((q2 | 0) <= 1) + break; + g2 = k[a2 + 8 >> 2] | 0; + if ((g2 & 2 | 0) == 0 ? (j2 = b2 + 36 | 0, (k[j2 >> 2] | 0) != 1) : 0) { + if (!(g2 & 1)) { + g2 = b2 + 54 | 0; + while (1) { + if (i2[g2 >> 0] | 0) + break a; + if ((k[j2 >> 2] | 0) == 1) + break a; + Uj(f2, b2, c2, d2, e2); + f2 = f2 + 8 | 0; + if (f2 >>> 0 >= h2 >>> 0) + break a; + } + } + g2 = b2 + 24 | 0; + a2 = b2 + 54 | 0; + while (1) { + if (i2[a2 >> 0] | 0) + break a; + if ((k[j2 >> 2] | 0) == 1 ? (k[g2 >> 2] | 0) == 1 : 0) + break a; + Uj(f2, b2, c2, d2, e2); + f2 = f2 + 8 | 0; + if (f2 >>> 0 >= h2 >>> 0) + break a; + } + } + g2 = b2 + 54 | 0; + while (1) { + if (i2[g2 >> 0] | 0) + break a; + Uj(f2, b2, c2, d2, e2); + f2 = f2 + 8 | 0; + if (f2 >>> 0 >= h2 >>> 0) + break a; + } + } + if ((k[b2 + 16 >> 2] | 0) != (c2 | 0) ? (p2 = b2 + 20 | 0, (k[p2 >> 2] | 0) != (c2 | 0)) : 0) { + k[b2 + 32 >> 2] = d2; + m2 = b2 + 44 | 0; + if ((k[m2 >> 2] | 0) == 4) + break; + g2 = k[a2 + 12 >> 2] | 0; + h2 = a2 + 16 + (g2 << 3) | 0; + j2 = b2 + 52 | 0; + d2 = b2 + 53 | 0; + n2 = b2 + 54 | 0; + l2 = a2 + 8 | 0; + o2 = b2 + 24 | 0; + b: + do + if ((g2 | 0) > 0) { + g2 = 0; + f2 = 0; + a2 = a2 + 16 | 0; + while (1) { + i2[j2 >> 0] = 0; + i2[d2 >> 0] = 0; + Tj(a2, b2, c2, c2, 1, e2); + if (i2[n2 >> 0] | 0) { + q2 = 20; + break b; + } + do + if (i2[d2 >> 0] | 0) { + if (!(i2[j2 >> 0] | 0)) + if (!(k[l2 >> 2] & 1)) { + f2 = 1; + q2 = 20; + break b; + } else { + f2 = 1; + break; + } + if ((k[o2 >> 2] | 0) == 1) + break b; + if (!(k[l2 >> 2] & 2)) + break b; + else { + g2 = 1; + f2 = 1; + } + } + while (0); + a2 = a2 + 8 | 0; + if (a2 >>> 0 >= h2 >>> 0) { + q2 = 20; + break; + } + } + } else { + g2 = 0; + f2 = 0; + q2 = 20; + } + while (0); + do + if ((q2 | 0) == 20) { + if ((!g2 ? (k[p2 >> 2] = c2, c2 = b2 + 40 | 0, k[c2 >> 2] = (k[c2 >> 2] | 0) + 1, (k[b2 + 36 >> 2] | 0) == 1) : 0) ? (k[o2 >> 2] | 0) == 2 : 0) { + i2[n2 >> 0] = 1; + if (f2) + break; + } else + q2 = 24; + if ((q2 | 0) == 24 ? f2 : 0) + break; + k[m2 >> 2] = 4; + break a; + } + while (0); + k[m2 >> 2] = 3; + break; + } + if ((d2 | 0) == 1) + k[b2 + 32 >> 2] = 1; + } + while (0); + return; + } + function Tj(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + h2 = k[a2 + 4 >> 2] | 0; + g2 = h2 >> 8; + if (h2 & 1) + g2 = k[(k[d2 >> 2] | 0) + g2 >> 2] | 0; + a2 = k[a2 >> 2] | 0; + Sb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 15](a2, b2, c2, d2 + g2 | 0, (h2 & 2 | 0) != 0 ? e2 : 2, f2); + return; + } + function Uj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = k[a2 + 4 >> 2] | 0; + f2 = g2 >> 8; + if (g2 & 1) + f2 = k[(k[c2 >> 2] | 0) + f2 >> 2] | 0; + a2 = k[a2 >> 2] | 0; + Jb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 15](a2, b2, c2 + f2 | 0, (g2 & 2 | 0) != 0 ? d2 : 2, e2); + return; + } + function Vj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0; + a: + do + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) { + if ((k[b2 + 4 >> 2] | 0) == (c2 | 0) ? (f2 = b2 + 28 | 0, (k[f2 >> 2] | 0) != 1) : 0) + k[f2 >> 2] = d2; + } else { + if ((a2 | 0) != (k[b2 >> 2] | 0)) { + h2 = k[a2 + 8 >> 2] | 0; + Jb[k[(k[h2 >> 2] | 0) + 24 >> 2] & 15](h2, b2, c2, d2, e2); + break; + } + if ((k[b2 + 16 >> 2] | 0) != (c2 | 0) ? (g2 = b2 + 20 | 0, (k[g2 >> 2] | 0) != (c2 | 0)) : 0) { + k[b2 + 32 >> 2] = d2; + d2 = b2 + 44 | 0; + if ((k[d2 >> 2] | 0) == 4) + break; + f2 = b2 + 52 | 0; + i2[f2 >> 0] = 0; + j2 = b2 + 53 | 0; + i2[j2 >> 0] = 0; + a2 = k[a2 + 8 >> 2] | 0; + Sb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 15](a2, b2, c2, c2, 1, e2); + if (i2[j2 >> 0] | 0) { + if (!(i2[f2 >> 0] | 0)) { + f2 = 1; + h2 = 13; + } + } else { + f2 = 0; + h2 = 13; + } + do + if ((h2 | 0) == 13) { + k[g2 >> 2] = c2; + j2 = b2 + 40 | 0; + k[j2 >> 2] = (k[j2 >> 2] | 0) + 1; + if ((k[b2 + 36 >> 2] | 0) == 1 ? (k[b2 + 24 >> 2] | 0) == 2 : 0) { + i2[b2 + 54 >> 0] = 1; + if (f2) + break; + } else + h2 = 16; + if ((h2 | 0) == 16 ? f2 : 0) + break; + k[d2 >> 2] = 4; + break a; + } + while (0); + k[d2 >> 2] = 3; + break; + } + if ((d2 | 0) == 1) + k[b2 + 32 >> 2] = 1; + } + while (0); + return; + } + function Wj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + do + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) { + if ((k[b2 + 4 >> 2] | 0) == (c2 | 0) ? (g2 = b2 + 28 | 0, (k[g2 >> 2] | 0) != 1) : 0) + k[g2 >> 2] = d2; + } else if ((a2 | 0) == (k[b2 >> 2] | 0)) { + if ((k[b2 + 16 >> 2] | 0) != (c2 | 0) ? (f2 = b2 + 20 | 0, (k[f2 >> 2] | 0) != (c2 | 0)) : 0) { + k[b2 + 32 >> 2] = d2; + k[f2 >> 2] = c2; + e2 = b2 + 40 | 0; + k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; + if ((k[b2 + 36 >> 2] | 0) == 1 ? (k[b2 + 24 >> 2] | 0) == 2 : 0) + i2[b2 + 54 >> 0] = 1; + k[b2 + 44 >> 2] = 4; + break; + } + if ((d2 | 0) == 1) + k[b2 + 32 >> 2] = 1; + } + while (0); + return; + } + function Xj(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Rj(0, b2, c2, d2, e2); + else { + m2 = b2 + 52 | 0; + n2 = i2[m2 >> 0] | 0; + o2 = b2 + 53 | 0; + p2 = i2[o2 >> 0] | 0; + l2 = k[a2 + 12 >> 2] | 0; + g2 = a2 + 16 + (l2 << 3) | 0; + i2[m2 >> 0] = 0; + i2[o2 >> 0] = 0; + Tj(a2 + 16 | 0, b2, c2, d2, e2, f2); + a: + do + if ((l2 | 0) > 1) { + h2 = b2 + 24 | 0; + j2 = a2 + 8 | 0; + l2 = b2 + 54 | 0; + a2 = a2 + 24 | 0; + do { + if (i2[l2 >> 0] | 0) + break a; + if (!(i2[m2 >> 0] | 0)) { + if ((i2[o2 >> 0] | 0) != 0 ? (k[j2 >> 2] & 1 | 0) == 0 : 0) + break a; + } else { + if ((k[h2 >> 2] | 0) == 1) + break a; + if (!(k[j2 >> 2] & 2)) + break a; + } + i2[m2 >> 0] = 0; + i2[o2 >> 0] = 0; + Tj(a2, b2, c2, d2, e2, f2); + a2 = a2 + 8 | 0; + } while (a2 >>> 0 < g2 >>> 0); + } + while (0); + i2[m2 >> 0] = n2; + i2[o2 >> 0] = p2; + } + return; + } + function Yj(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Rj(0, b2, c2, d2, e2); + else { + a2 = k[a2 + 8 >> 2] | 0; + Sb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 15](a2, b2, c2, d2, e2, f2); + } + return; + } + function Zj(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Rj(0, b2, c2, d2, e2); + return; + } + function _j(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = r; + r = r + 16 | 0; + d2 = e2; + k[d2 >> 2] = k[c2 >> 2]; + a2 = Qb[k[(k[a2 >> 2] | 0) + 16 >> 2] & 63](a2, b2, d2) | 0; + if (a2) + k[c2 >> 2] = k[d2 >> 2]; + r = e2; + return a2 & 1 | 0; + } + function $j(a2) { + a2 = a2 | 0; + if (!a2) + a2 = 0; + else + a2 = (Qj(a2, 656, 704, 0) | 0) != 0; + return a2 & 1 | 0; + } + function ak() { + var a2 = 0; + a2 = Va(4) | 0; + oj(a2); + ub(a2 | 0, 592, 78); + } + function bk() { + var a2 = 0, b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 48 | 0; + g2 = e2 + 32 | 0; + c2 = e2 + 24 | 0; + h2 = e2 + 16 | 0; + f2 = e2; + e2 = e2 + 36 | 0; + a2 = kj() | 0; + if ((a2 | 0) != 0 ? (d2 = k[a2 >> 2] | 0, (d2 | 0) != 0) : 0) { + a2 = d2 + 48 | 0; + b2 = k[a2 >> 2] | 0; + a2 = k[a2 + 4 >> 2] | 0; + if (!((b2 & -256 | 0) == 1126902528 & (a2 | 0) == 1129074247)) { + k[c2 >> 2] = k[9257]; + hj(51919, c2); + } + if ((b2 | 0) == 1126902529 & (a2 | 0) == 1129074247) + a2 = k[d2 + 44 >> 2] | 0; + else + a2 = d2 + 80 | 0; + k[e2 >> 2] = a2; + d2 = k[d2 >> 2] | 0; + a2 = k[d2 + 4 >> 2] | 0; + if (Qb[k[(k[608 >> 2] | 0) + 16 >> 2] & 63](608, d2, e2) | 0) { + h2 = k[e2 >> 2] | 0; + e2 = k[9257] | 0; + h2 = Ob[k[(k[h2 >> 2] | 0) + 8 >> 2] & 127](h2) | 0; + k[f2 >> 2] = e2; + k[f2 + 4 >> 2] = a2; + k[f2 + 8 >> 2] = h2; + hj(51833, f2); + } else { + k[h2 >> 2] = k[9257]; + k[h2 + 4 >> 2] = a2; + hj(51878, h2); + } + } + hj(51957, g2); + } + function ck() { + var a2 = 0; + a2 = r; + r = r + 16 | 0; + if (!(Oa(37020, 184) | 0)) { + r = a2; + return; + } else + hj(51730, a2); + } + function dk(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = (k[a2 >> 2] | 0) + -4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = b2 + -1; + if ((b2 + -1 | 0) < 0) + mj((k[a2 >> 2] | 0) + -12 | 0); + return; + } + function ek(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = r; + r = r + 16 | 0; + Ql(a2); + if (!(sb(k[9255] | 0, 0) | 0)) { + r = b2; + return; + } else + hj(51780, b2); + } + function fk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + a2 = rl(a2, b2, c2) | 0; + return a2 | 0; + } + function gk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + a2 = sl(a2, b2, c2) | 0; + return a2 | 0; + } + function hk() { + return 37296; + } + function ik() { + return 37300; + } + function jk() { + return 37304; + } + function kk(a2) { + a2 = a2 | 0; + return ((a2 | 0) == 32 | (a2 + -9 | 0) >>> 0 < 5) & 1 | 0; + } + function lk(a2) { + a2 = a2 | 0; + if ((a2 + -48 | 0) >>> 0 < 10) + a2 = 1; + else + a2 = ((a2 | 32) + -97 | 0) >>> 0 < 6; + return a2 & 1 | 0; + } + function mk() { + var a2 = 0; + if (!(k[9258] | 0)) + a2 = 37308; + else { + a2 = (kb() | 0) + 60 | 0; + a2 = k[a2 >> 2] | 0; + } + return a2 | 0; + } + function nk(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = 0; + while (1) { + if ((l[51978 + b2 >> 0] | 0) == (a2 | 0)) { + c2 = 2; + break; + } + b2 = b2 + 1 | 0; + if ((b2 | 0) == 87) { + b2 = 87; + a2 = 52066; + c2 = 5; + break; + } + } + if ((c2 | 0) == 2) + if (!b2) + a2 = 52066; + else { + a2 = 52066; + c2 = 5; + } + if ((c2 | 0) == 5) + while (1) { + c2 = a2; + while (1) { + a2 = c2 + 1 | 0; + if (!(i2[c2 >> 0] | 0)) + break; + else + c2 = a2; + } + b2 = b2 + -1 | 0; + if (!b2) + break; + else + c2 = 5; + } + return a2 | 0; + } + function ok(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0; + K2 = r; + r = r + 512 | 0; + G2 = K2; + switch (b2 | 0) { + case 0: { + J2 = 24; + I2 = -149; + y2 = 4; + break; + } + case 1: { + J2 = 53; + I2 = -1074; + y2 = 4; + break; + } + case 2: { + J2 = 53; + I2 = -1074; + y2 = 4; + break; + } + default: + d2 = 0; + } + a: + do + if ((y2 | 0) == 4) { + D2 = a2 + 4 | 0; + A2 = a2 + 100 | 0; + do { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + } while ((kk(b2) | 0) != 0); + b: + do + switch (b2 | 0) { + case 43: + case 45: { + e2 = 1 - (((b2 | 0) == 45 & 1) << 1) | 0; + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + H2 = e2; + break b; + } else { + b2 = rk(a2) | 0; + H2 = e2; + break b; + } + } + default: + H2 = 1; + } + while (0); + e2 = b2; + b2 = 0; + do { + if ((e2 | 32 | 0) != (i2[53870 + b2 >> 0] | 0)) + break; + do + if (b2 >>> 0 < 7) { + e2 = k[D2 >> 2] | 0; + if (e2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = e2 + 1; + e2 = l[e2 >> 0] | 0; + break; + } else { + e2 = rk(a2) | 0; + break; + } + } + while (0); + b2 = b2 + 1 | 0; + } while (b2 >>> 0 < 8); + c: + do + switch (b2 | 0) { + case 8: + break; + case 3: { + y2 = 23; + break; + } + default: { + g2 = (c2 | 0) != 0; + if (g2 & b2 >>> 0 > 3) + if ((b2 | 0) == 8) + break c; + else { + y2 = 23; + break c; + } + d: + do + if (!b2) { + b2 = 0; + do { + if ((e2 | 32 | 0) != (i2[56747 + b2 >> 0] | 0)) + break d; + do + if (b2 >>> 0 < 2) { + e2 = k[D2 >> 2] | 0; + if (e2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = e2 + 1; + e2 = l[e2 >> 0] | 0; + break; + } else { + e2 = rk(a2) | 0; + break; + } + } + while (0); + b2 = b2 + 1 | 0; + } while (b2 >>> 0 < 3); + } + while (0); + switch (b2 | 0) { + case 3: { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 0) == 40) + b2 = 1; + else { + if (!(k[A2 >> 2] | 0)) { + d2 = B; + break a; + } + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + d2 = B; + break a; + } + while (1) { + e2 = k[D2 >> 2] | 0; + if (e2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = e2 + 1; + e2 = l[e2 >> 0] | 0; + } else + e2 = rk(a2) | 0; + if (!((e2 + -48 | 0) >>> 0 < 10 | (e2 + -65 | 0) >>> 0 < 26) ? !((e2 | 0) == 95 | (e2 + -97 | 0) >>> 0 < 26) : 0) + break; + b2 = b2 + 1 | 0; + } + if ((e2 | 0) == 41) { + d2 = B; + break a; + } + e2 = (k[A2 >> 2] | 0) == 0; + if (!e2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if (!g2) { + J2 = mk() | 0; + k[J2 >> 2] = 22; + qk(a2, 0); + d2 = 0; + break a; + } + if (!b2) { + d2 = B; + break a; + } + while (1) { + b2 = b2 + -1 | 0; + if (!e2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if (!b2) { + d2 = B; + break a; + } + } + } + case 0: { + do + if ((e2 | 0) == 48) { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 32 | 0) != 120) { + if (!(k[A2 >> 2] | 0)) { + b2 = 48; + break; + } + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + b2 = 48; + break; + } + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + g2 = 0; + } else { + b2 = rk(a2) | 0; + g2 = 0; + } + e: + while (1) { + switch (b2 | 0) { + case 46: { + y2 = 74; + break e; + } + case 48: + break; + default: { + w2 = 0; + h2 = 0; + v2 = 0; + e2 = 0; + m2 = g2; + n2 = 0; + u2 = 0; + j2 = 1; + g2 = 0; + d2 = 0; + break e; + } + } + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + g2 = 1; + continue; + } else { + b2 = rk(a2) | 0; + g2 = 1; + continue; + } + } + if ((y2 | 0) == 74) { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 0) == 48) { + g2 = 0; + e2 = 0; + do { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + g2 = tw(g2 | 0, e2 | 0, -1, -1) | 0; + e2 = M; + } while ((b2 | 0) == 48); + w2 = 0; + h2 = 0; + v2 = g2; + m2 = 1; + n2 = 1; + u2 = 0; + j2 = 1; + g2 = 0; + d2 = 0; + } else { + w2 = 0; + h2 = 0; + v2 = 0; + e2 = 0; + m2 = g2; + n2 = 1; + u2 = 0; + j2 = 1; + g2 = 0; + d2 = 0; + } + } + while (1) { + s2 = b2 + -48 | 0; + o2 = b2 | 32; + if (s2 >>> 0 >= 10) { + t2 = (b2 | 0) == 46; + if (!(t2 | (o2 + -97 | 0) >>> 0 < 6)) { + o2 = v2; + s2 = w2; + break; + } + if (t2) + if (!n2) { + t2 = h2; + e2 = w2; + s2 = w2; + n2 = 1; + o2 = u2; + f2 = j2; + } else { + o2 = v2; + s2 = w2; + b2 = 46; + break; + } + else + y2 = 86; + } else + y2 = 86; + if ((y2 | 0) == 86) { + y2 = 0; + b2 = (b2 | 0) > 57 ? o2 + -87 | 0 : s2; + do + if (!((w2 | 0) < 0 | (w2 | 0) == 0 & h2 >>> 0 < 8)) { + if ((w2 | 0) < 0 | (w2 | 0) == 0 & h2 >>> 0 < 14) { + q2 = j2 * 0.0625; + o2 = u2; + f2 = q2; + d2 = d2 + q2 * +(b2 | 0); + break; + } + if ((u2 | 0) != 0 | (b2 | 0) == 0) { + o2 = u2; + f2 = j2; + } else { + o2 = 1; + f2 = j2; + d2 = d2 + j2 * 0.5; + } + } else { + o2 = u2; + f2 = j2; + g2 = b2 + (g2 << 4) | 0; + } + while (0); + h2 = tw(h2 | 0, w2 | 0, 1, 0) | 0; + t2 = v2; + s2 = M; + m2 = 1; + } + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + w2 = s2; + v2 = t2; + b2 = l[b2 >> 0] | 0; + u2 = o2; + j2 = f2; + continue; + } else { + w2 = s2; + v2 = t2; + b2 = rk(a2) | 0; + u2 = o2; + j2 = f2; + continue; + } + } + if (!m2) { + b2 = (k[A2 >> 2] | 0) == 0; + if (!b2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if (c2) { + if (!b2 ? (x2 = k[D2 >> 2] | 0, k[D2 >> 2] = x2 + -1, (n2 | 0) != 0) : 0) + k[D2 >> 2] = x2 + -2; + } else + qk(a2, 0); + d2 = +(H2 | 0) * 0; + break a; + } + m2 = (n2 | 0) == 0; + n2 = m2 ? h2 : o2; + m2 = m2 ? s2 : e2; + if ((s2 | 0) < 0 | (s2 | 0) == 0 & h2 >>> 0 < 8) { + e2 = s2; + do { + g2 = g2 << 4; + h2 = tw(h2 | 0, e2 | 0, 1, 0) | 0; + e2 = M; + } while ((e2 | 0) < 0 | (e2 | 0) == 0 & h2 >>> 0 < 8); + } + if ((b2 | 32 | 0) == 112) { + e2 = Dl(a2, c2) | 0; + b2 = M; + if ((e2 | 0) == 0 & (b2 | 0) == -2147483648) { + if (!c2) { + qk(a2, 0); + d2 = 0; + break a; + } + if (!(k[A2 >> 2] | 0)) { + e2 = 0; + b2 = 0; + } else { + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + e2 = 0; + b2 = 0; + } + } + } else if (!(k[A2 >> 2] | 0)) { + e2 = 0; + b2 = 0; + } else { + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + e2 = 0; + b2 = 0; + } + G2 = ww(n2 | 0, m2 | 0, 2) | 0; + G2 = tw(G2 | 0, M | 0, -32, -1) | 0; + b2 = tw(G2 | 0, M | 0, e2 | 0, b2 | 0) | 0; + e2 = M; + if (!g2) { + d2 = +(H2 | 0) * 0; + break a; + } + if ((e2 | 0) > 0 | (e2 | 0) == 0 & b2 >>> 0 > (0 - I2 | 0) >>> 0) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + d2 = +(H2 | 0) * 17976931348623157e292 * 17976931348623157e292; + break a; + } + G2 = I2 + -106 | 0; + F2 = ((G2 | 0) < 0) << 31 >> 31; + if ((e2 | 0) < (F2 | 0) | (e2 | 0) == (F2 | 0) & b2 >>> 0 < G2 >>> 0) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + d2 = +(H2 | 0) * 22250738585072014e-324 * 22250738585072014e-324; + break a; + } + if ((g2 | 0) > -1) { + do { + F2 = !(d2 >= 0.5); + G2 = F2 & 1 | g2 << 1; + g2 = G2 ^ 1; + d2 = d2 + (F2 ? d2 : d2 + -1); + b2 = tw(b2 | 0, e2 | 0, -1, -1) | 0; + e2 = M; + } while ((G2 | 0) > -1); + h2 = b2; + j2 = d2; + } else { + h2 = b2; + j2 = d2; + } + b2 = rw(32, 0, I2 | 0, ((I2 | 0) < 0) << 31 >> 31 | 0) | 0; + b2 = tw(h2 | 0, e2 | 0, b2 | 0, M | 0) | 0; + I2 = M; + if (0 > (I2 | 0) | 0 == (I2 | 0) & J2 >>> 0 > b2 >>> 0) + if ((b2 | 0) < 0) { + b2 = 0; + y2 = 127; + } else + y2 = 125; + else { + b2 = J2; + y2 = 125; + } + if ((y2 | 0) == 125) + if ((b2 | 0) < 53) + y2 = 127; + else { + e2 = b2; + f2 = +(H2 | 0); + d2 = 0; + } + if ((y2 | 0) == 127) { + d2 = +(H2 | 0); + e2 = b2; + f2 = d2; + d2 = +Ck(+Hk(1, 84 - b2 | 0), d2); + } + J2 = (g2 & 1 | 0) == 0 & (j2 != 0 & (e2 | 0) < 32); + d2 = f2 * (J2 ? 0 : j2) + (d2 + f2 * +(((J2 & 1) + g2 | 0) >>> 0)) - d2; + if (!(d2 != 0)) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + } + d2 = +Ik(d2, h2); + break a; + } else + b2 = e2; + while (0); + E2 = I2 + J2 | 0; + F2 = 0 - E2 | 0; + g2 = 0; + f: + while (1) { + switch (b2 | 0) { + case 46: { + y2 = 138; + break f; + } + case 48: + break; + default: { + e2 = 0; + o2 = 0; + n2 = 0; + break f; + } + } + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + g2 = 1; + continue; + } else { + b2 = rk(a2) | 0; + g2 = 1; + continue; + } + } + if ((y2 | 0) == 138) { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 0) == 48) { + e2 = 0; + b2 = 0; + while (1) { + e2 = tw(e2 | 0, b2 | 0, -1, -1) | 0; + g2 = M; + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 0) == 48) + b2 = g2; + else { + o2 = g2; + g2 = 1; + n2 = 1; + break; + } + } + } else { + e2 = 0; + o2 = 0; + n2 = 1; + } + } + k[G2 >> 2] = 0; + m2 = b2 + -48 | 0; + h2 = (b2 | 0) == 46; + g: + do + if (h2 | m2 >>> 0 < 10) { + z2 = G2 + 496 | 0; + w2 = 0; + t2 = 0; + u2 = h2; + y2 = o2; + s2 = g2; + x2 = n2; + g2 = 0; + h2 = 0; + n2 = 0; + h: + while (1) { + do + if (u2) + if (!x2) { + e2 = w2; + o2 = t2; + x2 = 1; + } else { + o2 = y2; + b2 = w2; + m2 = t2; + break h; + } + else { + u2 = tw(w2 | 0, t2 | 0, 1, 0) | 0; + t2 = M; + v2 = (b2 | 0) != 48; + if ((h2 | 0) >= 125) { + if (!v2) { + o2 = y2; + w2 = u2; + break; + } + k[z2 >> 2] = k[z2 >> 2] | 1; + o2 = y2; + w2 = u2; + break; + } + o2 = G2 + (h2 << 2) | 0; + if (g2) + m2 = b2 + -48 + ((k[o2 >> 2] | 0) * 10 | 0) | 0; + k[o2 >> 2] = m2; + g2 = g2 + 1 | 0; + m2 = (g2 | 0) == 9; + o2 = y2; + w2 = u2; + s2 = 1; + g2 = m2 ? 0 : g2; + h2 = (m2 & 1) + h2 | 0; + n2 = v2 ? u2 : n2; + } + while (0); + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + m2 = b2 + -48 | 0; + u2 = (b2 | 0) == 46; + if (!(u2 | m2 >>> 0 < 10)) { + m2 = x2; + y2 = 161; + break g; + } else + y2 = o2; + } + s2 = (s2 | 0) != 0; + y2 = 169; + } else { + w2 = 0; + t2 = 0; + s2 = g2; + m2 = n2; + g2 = 0; + h2 = 0; + n2 = 0; + y2 = 161; + } + while (0); + do + if ((y2 | 0) == 161) { + z2 = (m2 | 0) == 0; + e2 = z2 ? w2 : e2; + o2 = z2 ? t2 : o2; + s2 = (s2 | 0) != 0; + if (!((b2 | 32 | 0) == 101 & s2)) + if ((b2 | 0) > -1) { + b2 = w2; + m2 = t2; + y2 = 169; + break; + } else { + b2 = w2; + m2 = t2; + y2 = 171; + break; + } + m2 = Dl(a2, c2) | 0; + b2 = M; + if ((m2 | 0) == 0 & (b2 | 0) == -2147483648) { + if (!c2) { + qk(a2, 0); + d2 = 0; + break; + } + if (!(k[A2 >> 2] | 0)) { + m2 = 0; + b2 = 0; + } else { + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + m2 = 0; + b2 = 0; + } + } + e2 = tw(m2 | 0, b2 | 0, e2 | 0, o2 | 0) | 0; + s2 = w2; + o2 = M; + m2 = t2; + y2 = 173; + } + while (0); + if ((y2 | 0) == 169) + if (k[A2 >> 2] | 0) { + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if (s2) { + s2 = b2; + y2 = 173; + } else + y2 = 172; + } else + y2 = 171; + if ((y2 | 0) == 171) + if (s2) { + s2 = b2; + y2 = 173; + } else + y2 = 172; + do + if ((y2 | 0) == 172) { + J2 = mk() | 0; + k[J2 >> 2] = 22; + qk(a2, 0); + d2 = 0; + } else if ((y2 | 0) == 173) { + b2 = k[G2 >> 2] | 0; + if (!b2) { + d2 = +(H2 | 0) * 0; + break; + } + if (((m2 | 0) < 0 | (m2 | 0) == 0 & s2 >>> 0 < 10) & ((e2 | 0) == (s2 | 0) & (o2 | 0) == (m2 | 0)) ? J2 >>> 0 > 30 | (b2 >>> J2 | 0) == 0 : 0) { + d2 = +(H2 | 0) * +(b2 >>> 0); + break; + } + a2 = (I2 | 0) / -2 | 0; + D2 = ((a2 | 0) < 0) << 31 >> 31; + if ((o2 | 0) > (D2 | 0) | (o2 | 0) == (D2 | 0) & e2 >>> 0 > a2 >>> 0) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + d2 = +(H2 | 0) * 17976931348623157e292 * 17976931348623157e292; + break; + } + a2 = I2 + -106 | 0; + D2 = ((a2 | 0) < 0) << 31 >> 31; + if ((o2 | 0) < (D2 | 0) | (o2 | 0) == (D2 | 0) & e2 >>> 0 < a2 >>> 0) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + d2 = +(H2 | 0) * 22250738585072014e-324 * 22250738585072014e-324; + break; + } + if (g2) { + if ((g2 | 0) < 9) { + m2 = G2 + (h2 << 2) | 0; + b2 = k[m2 >> 2] | 0; + do { + b2 = b2 * 10 | 0; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != 9); + k[m2 >> 2] = b2; + } + h2 = h2 + 1 | 0; + } + if ((n2 | 0) < 9 ? (n2 | 0) <= (e2 | 0) & (e2 | 0) < 18 : 0) { + if ((e2 | 0) == 9) { + d2 = +(H2 | 0) * +((k[G2 >> 2] | 0) >>> 0); + break; + } + if ((e2 | 0) < 9) { + d2 = +(H2 | 0) * +((k[G2 >> 2] | 0) >>> 0) / +(k[37312 + (8 - e2 << 2) >> 2] | 0); + break; + } + a2 = J2 + 27 + (ia(e2, -3) | 0) | 0; + b2 = k[G2 >> 2] | 0; + if ((a2 | 0) > 30 | (b2 >>> a2 | 0) == 0) { + d2 = +(H2 | 0) * +(b2 >>> 0) * +(k[37312 + (e2 + -10 << 2) >> 2] | 0); + break; + } + } + b2 = (e2 | 0) % 9 | 0; + if (!b2) { + g2 = 0; + b2 = 0; + } else { + s2 = (e2 | 0) > -1 ? b2 : b2 + 9 | 0; + m2 = k[37312 + (8 - s2 << 2) >> 2] | 0; + if (h2) { + n2 = 1e9 / (m2 | 0) | 0; + g2 = 0; + b2 = 0; + o2 = 0; + do { + A2 = G2 + (o2 << 2) | 0; + D2 = k[A2 >> 2] | 0; + a2 = ((D2 >>> 0) / (m2 >>> 0) | 0) + b2 | 0; + k[A2 >> 2] = a2; + b2 = ia((D2 >>> 0) % (m2 >>> 0) | 0, n2) | 0; + a2 = (o2 | 0) == (g2 | 0) & (a2 | 0) == 0; + o2 = o2 + 1 | 0; + e2 = a2 ? e2 + -9 | 0 : e2; + g2 = a2 ? o2 & 127 : g2; + } while ((o2 | 0) != (h2 | 0)); + if (b2) { + k[G2 + (h2 << 2) >> 2] = b2; + h2 = h2 + 1 | 0; + } + } else { + g2 = 0; + h2 = 0; + } + b2 = 0; + e2 = 9 - s2 + e2 | 0; + } + i: + while (1) { + t2 = (e2 | 0) < 18; + u2 = (e2 | 0) == 18; + v2 = G2 + (g2 << 2) | 0; + do { + if (!t2) { + if (!u2) + break i; + if ((k[v2 >> 2] | 0) >>> 0 >= 9007199) { + e2 = 18; + break i; + } + } + m2 = 0; + n2 = h2 + 127 | 0; + while (1) { + s2 = n2 & 127; + o2 = G2 + (s2 << 2) | 0; + n2 = ww(k[o2 >> 2] | 0, 0, 29) | 0; + n2 = tw(n2 | 0, M | 0, m2 | 0, 0) | 0; + m2 = M; + if (m2 >>> 0 > 0 | (m2 | 0) == 0 & n2 >>> 0 > 1e9) { + a2 = Ew(n2 | 0, m2 | 0, 1e9, 0) | 0; + n2 = Fw(n2 | 0, m2 | 0, 1e9, 0) | 0; + m2 = a2; + } else + m2 = 0; + k[o2 >> 2] = n2; + a2 = (s2 | 0) == (g2 | 0); + h2 = (s2 | 0) != (h2 + 127 & 127 | 0) | a2 ? h2 : (n2 | 0) == 0 ? s2 : h2; + if (a2) + break; + else + n2 = s2 + -1 | 0; + } + b2 = b2 + -29 | 0; + } while ((m2 | 0) == 0); + g2 = g2 + 127 & 127; + if ((g2 | 0) == (h2 | 0)) { + a2 = h2 + 127 & 127; + h2 = G2 + ((h2 + 126 & 127) << 2) | 0; + k[h2 >> 2] = k[h2 >> 2] | k[G2 + (a2 << 2) >> 2]; + h2 = a2; + } + k[G2 + (g2 << 2) >> 2] = m2; + e2 = e2 + 9 | 0; + } + j: + while (1) { + w2 = h2 + 1 & 127; + v2 = G2 + ((h2 + 127 & 127) << 2) | 0; + while (1) { + t2 = (e2 | 0) == 18; + u2 = (e2 | 0) > 27 ? 9 : 1; + s2 = t2 ^ 1; + while (1) { + n2 = g2 & 127; + o2 = (n2 | 0) == (h2 | 0); + do + if (!o2) { + m2 = k[G2 + (n2 << 2) >> 2] | 0; + if (m2 >>> 0 < 9007199) { + y2 = 219; + break; + } + if (m2 >>> 0 > 9007199) + break; + m2 = g2 + 1 & 127; + if ((m2 | 0) == (h2 | 0)) { + y2 = 219; + break; + } + m2 = k[G2 + (m2 << 2) >> 2] | 0; + if (m2 >>> 0 < 254740991) { + y2 = 219; + break; + } + if (!(m2 >>> 0 > 254740991 | s2)) { + e2 = n2; + break j; + } + } else + y2 = 219; + while (0); + if ((y2 | 0) == 219 ? (y2 = 0, t2) : 0) { + y2 = 220; + break j; + } + b2 = b2 + u2 | 0; + if ((g2 | 0) == (h2 | 0)) + g2 = h2; + else + break; + } + s2 = (1 << u2) + -1 | 0; + t2 = 1e9 >>> u2; + n2 = g2; + m2 = 0; + o2 = g2; + while (1) { + D2 = G2 + (o2 << 2) | 0; + a2 = k[D2 >> 2] | 0; + g2 = (a2 >>> u2) + m2 | 0; + k[D2 >> 2] = g2; + m2 = ia(a2 & s2, t2) | 0; + g2 = (o2 | 0) == (n2 | 0) & (g2 | 0) == 0; + o2 = o2 + 1 & 127; + e2 = g2 ? e2 + -9 | 0 : e2; + g2 = g2 ? o2 : n2; + if ((o2 | 0) == (h2 | 0)) + break; + else + n2 = g2; + } + if (!m2) + continue; + if ((w2 | 0) != (g2 | 0)) + break; + k[v2 >> 2] = k[v2 >> 2] | 1; + } + k[G2 + (h2 << 2) >> 2] = m2; + h2 = w2; + } + if ((y2 | 0) == 220) + if (o2) { + k[G2 + (w2 + -1 << 2) >> 2] = 0; + e2 = h2; + h2 = w2; + } else + e2 = n2; + d2 = +((k[G2 + (e2 << 2) >> 2] | 0) >>> 0); + e2 = g2 + 1 & 127; + if ((e2 | 0) == (h2 | 0)) { + h2 = g2 + 2 & 127; + k[G2 + (h2 + -1 << 2) >> 2] = 0; + } + q2 = +(H2 | 0); + f2 = q2 * (d2 * 1e9 + +((k[G2 + (e2 << 2) >> 2] | 0) >>> 0)); + t2 = b2 + 53 | 0; + o2 = t2 - I2 | 0; + s2 = (o2 | 0) < (J2 | 0); + e2 = s2 & 1; + n2 = s2 ? (o2 | 0) < 0 ? 0 : o2 : J2; + if ((n2 | 0) < 53) { + L2 = +Ck(+Hk(1, 105 - n2 | 0), f2); + j2 = +Ek(f2, +Hk(1, 53 - n2 | 0)); + p2 = L2; + d2 = j2; + j2 = L2 + (f2 - j2); + } else { + p2 = 0; + d2 = 0; + j2 = f2; + } + m2 = g2 + 2 & 127; + do + if ((m2 | 0) == (h2 | 0)) + f2 = d2; + else { + m2 = k[G2 + (m2 << 2) >> 2] | 0; + do + if (m2 >>> 0 >= 5e8) { + if (m2 >>> 0 > 5e8) { + d2 = q2 * 0.75 + d2; + break; + } + if ((g2 + 3 & 127 | 0) == (h2 | 0)) { + d2 = q2 * 0.5 + d2; + break; + } else { + d2 = q2 * 0.75 + d2; + break; + } + } else { + if ((m2 | 0) == 0 ? (g2 + 3 & 127 | 0) == (h2 | 0) : 0) + break; + d2 = q2 * 0.25 + d2; + } + while (0); + if ((53 - n2 | 0) <= 1) { + f2 = d2; + break; + } + if (+Ek(d2, 1) != 0) { + f2 = d2; + break; + } + f2 = d2 + 1; + } + while (0); + d2 = j2 + f2 - p2; + do + if ((t2 & 2147483647 | 0) > (-2 - E2 | 0)) { + if (+X(+d2) >= 9007199254740992) { + e2 = s2 & (n2 | 0) == (o2 | 0) ? 0 : e2; + b2 = b2 + 1 | 0; + d2 = d2 * 0.5; + } + if ((b2 + 50 | 0) <= (F2 | 0) ? !(f2 != 0 & (e2 | 0) != 0) : 0) + break; + J2 = mk() | 0; + k[J2 >> 2] = 34; + } + while (0); + d2 = +Ik(d2, b2); + } + while (0); + break a; + } + default: { + if (k[A2 >> 2] | 0) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + J2 = mk() | 0; + k[J2 >> 2] = 22; + qk(a2, 0); + d2 = 0; + break a; + } + } + } + } + while (0); + if ((y2 | 0) == 23) { + e2 = (k[A2 >> 2] | 0) == 0; + if (!e2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if ((c2 | 0) != 0 & b2 >>> 0 > 3) + do { + if (!e2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + b2 = b2 + -1 | 0; + } while (b2 >>> 0 > 3); + } + d2 = +(H2 | 0) * C; + } + while (0); + r = K2; + return +d2; + } + function pk(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + a: + do + if (b2 >>> 0 > 36) { + e2 = mk() | 0; + k[e2 >> 2] = 22; + e2 = 0; + d2 = 0; + } else { + r2 = a2 + 4 | 0; + q2 = a2 + 100 | 0; + do { + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + } while ((kk(f2) | 0) != 0); + b: + do + switch (f2 | 0) { + case 43: + case 45: { + g2 = ((f2 | 0) == 45) << 31 >> 31; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + p2 = g2; + break b; + } else { + f2 = rk(a2) | 0; + p2 = g2; + break b; + } + } + default: + p2 = 0; + } + while (0); + g2 = (b2 | 0) == 0; + do + if ((b2 & -17 | 0) == 0 & (f2 | 0) == 48) { + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + if ((f2 | 32 | 0) != 120) + if (g2) { + b2 = 8; + n2 = 46; + break; + } else { + n2 = 32; + break; + } + b2 = k[r2 >> 2] | 0; + if (b2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = b2 + 1; + f2 = l[b2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + if ((l[53879 + (f2 + 1) >> 0] | 0) > 15) { + d2 = (k[q2 >> 2] | 0) == 0; + if (!d2) + k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; + if (!c2) { + qk(a2, 0); + e2 = 0; + d2 = 0; + break a; + } + if (d2) { + e2 = 0; + d2 = 0; + break a; + } + k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; + e2 = 0; + d2 = 0; + break a; + } else { + b2 = 16; + n2 = 46; + } + } else { + b2 = g2 ? 10 : b2; + if ((l[53879 + (f2 + 1) >> 0] | 0) >>> 0 < b2 >>> 0) + n2 = 32; + else { + if (k[q2 >> 2] | 0) + k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; + qk(a2, 0); + e2 = mk() | 0; + k[e2 >> 2] = 22; + e2 = 0; + d2 = 0; + break a; + } + } + while (0); + if ((n2 | 0) == 32) + if ((b2 | 0) == 10) { + b2 = f2 + -48 | 0; + if (b2 >>> 0 < 10) { + f2 = 0; + while (1) { + g2 = (f2 * 10 | 0) + b2 | 0; + b2 = k[r2 >> 2] | 0; + if (b2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = b2 + 1; + f2 = l[b2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + b2 = f2 + -48 | 0; + if (!(b2 >>> 0 < 10 & g2 >>> 0 < 429496729)) { + b2 = g2; + break; + } else + f2 = g2; + } + g2 = 0; + } else { + b2 = 0; + g2 = 0; + } + c2 = f2 + -48 | 0; + if (c2 >>> 0 < 10) { + while (1) { + h2 = Dw(b2 | 0, g2 | 0, 10, 0) | 0; + j2 = M; + m2 = ((c2 | 0) < 0) << 31 >> 31; + o2 = ~m2; + if (j2 >>> 0 > o2 >>> 0 | (j2 | 0) == (o2 | 0) & h2 >>> 0 > ~c2 >>> 0) { + h2 = b2; + break; + } + b2 = tw(h2 | 0, j2 | 0, c2 | 0, m2 | 0) | 0; + g2 = M; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + c2 = f2 + -48 | 0; + if (!(c2 >>> 0 < 10 & (g2 >>> 0 < 429496729 | (g2 | 0) == 429496729 & b2 >>> 0 < 2576980378))) { + h2 = b2; + break; + } + } + if (c2 >>> 0 > 9) { + f2 = h2; + b2 = p2; + } else { + b2 = 10; + n2 = 72; + } + } else { + f2 = b2; + b2 = p2; + } + } else + n2 = 46; + c: + do + if ((n2 | 0) == 46) { + if (!(b2 + -1 & b2)) { + n2 = i2[54136 + ((b2 * 23 | 0) >>> 5 & 7) >> 0] | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + c2 = g2 & 255; + if (c2 >>> 0 < b2 >>> 0) { + f2 = 0; + while (1) { + h2 = c2 | f2 << n2; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + c2 = g2 & 255; + if (!(h2 >>> 0 < 134217728 & c2 >>> 0 < b2 >>> 0)) + break; + else + f2 = h2; + } + c2 = 0; + } else { + c2 = 0; + h2 = 0; + } + j2 = uw(-1, -1, n2 | 0) | 0; + m2 = M; + if ((g2 & 255) >>> 0 >= b2 >>> 0 | (c2 >>> 0 > m2 >>> 0 | (c2 | 0) == (m2 | 0) & h2 >>> 0 > j2 >>> 0)) { + g2 = c2; + n2 = 72; + break; + } else + f2 = c2; + while (1) { + h2 = ww(h2 | 0, f2 | 0, n2 | 0) | 0; + c2 = M; + h2 = g2 & 255 | h2; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + if ((g2 & 255) >>> 0 >= b2 >>> 0 | (c2 >>> 0 > m2 >>> 0 | (c2 | 0) == (m2 | 0) & h2 >>> 0 > j2 >>> 0)) { + g2 = c2; + n2 = 72; + break c; + } else + f2 = c2; + } + } + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + c2 = g2 & 255; + if (c2 >>> 0 < b2 >>> 0) { + f2 = 0; + while (1) { + h2 = c2 + (ia(f2, b2) | 0) | 0; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + c2 = g2 & 255; + if (!(h2 >>> 0 < 119304647 & c2 >>> 0 < b2 >>> 0)) + break; + else + f2 = h2; + } + c2 = 0; + } else { + h2 = 0; + c2 = 0; + } + if ((g2 & 255) >>> 0 < b2 >>> 0) { + n2 = Ew(-1, -1, b2 | 0, 0) | 0; + o2 = M; + m2 = c2; + while (1) { + if (m2 >>> 0 > o2 >>> 0 | (m2 | 0) == (o2 | 0) & h2 >>> 0 > n2 >>> 0) { + g2 = m2; + n2 = 72; + break c; + } + c2 = Dw(h2 | 0, m2 | 0, b2 | 0, 0) | 0; + j2 = M; + g2 = g2 & 255; + if (j2 >>> 0 > 4294967295 | (j2 | 0) == -1 & c2 >>> 0 > ~g2 >>> 0) { + g2 = m2; + n2 = 72; + break c; + } + h2 = tw(g2 | 0, 0, c2 | 0, j2 | 0) | 0; + c2 = M; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + if ((g2 & 255) >>> 0 >= b2 >>> 0) { + g2 = c2; + n2 = 72; + break; + } else + m2 = c2; + } + } else { + g2 = c2; + n2 = 72; + } + } + while (0); + if ((n2 | 0) == 72) + if ((l[53879 + (f2 + 1) >> 0] | 0) >>> 0 < b2 >>> 0) { + do { + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + } while ((l[53879 + (f2 + 1) >> 0] | 0) >>> 0 < b2 >>> 0); + g2 = mk() | 0; + k[g2 >> 2] = 34; + g2 = e2; + f2 = d2; + b2 = (d2 & 1 | 0) == 0 & true ? p2 : 0; + } else { + f2 = h2; + b2 = p2; + } + if (k[q2 >> 2] | 0) + k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; + if (!(g2 >>> 0 < e2 >>> 0 | (g2 | 0) == (e2 | 0) & f2 >>> 0 < d2 >>> 0)) { + if (!((d2 & 1 | 0) != 0 | false | (b2 | 0) != 0)) { + r2 = mk() | 0; + k[r2 >> 2] = 34; + d2 = tw(d2 | 0, e2 | 0, -1, -1) | 0; + e2 = M; + break; + } + if (g2 >>> 0 > e2 >>> 0 | (g2 | 0) == (e2 | 0) & f2 >>> 0 > d2 >>> 0) { + r2 = mk() | 0; + k[r2 >> 2] = 34; + break; + } + } + d2 = ((b2 | 0) < 0) << 31 >> 31; + d2 = rw(f2 ^ b2 | 0, g2 ^ d2 | 0, b2 | 0, d2 | 0) | 0; + e2 = M; + } + while (0); + M = e2; + return d2 | 0; } - } else { - if (!tags[tag.id]) { - tags[tag.id] = tag; + function qk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + k[a2 + 104 >> 2] = b2; + c2 = k[a2 + 4 >> 2] | 0; + d2 = k[a2 + 8 >> 2] | 0; + e2 = d2 - c2 | 0; + k[a2 + 108 >> 2] = e2; + if ((b2 | 0) != 0 & (e2 | 0) > (b2 | 0)) + k[a2 + 100 >> 2] = c2 + b2; + else + k[a2 + 100 >> 2] = d2; + return; } - } -}; - - -/** - * Returns a tag matching the specified group and element. - * @param {number} group - * @param {number} element - * @returns {daikon.Tag} - */ -daikon.Image.prototype.getTag = function (group, element) { - var tagId = daikon.Tag.createId(group, element); - - if (this.tags[tagId]) { - return this.tags[tagId]; - } - - return this.tagsFlat[tagId]; -}; - - -/** - * Returns the pixel data tag. - * @returns {daikon.Tag} - */ -daikon.Image.prototype.getPixelData = function () { - return this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])]; -}; - - - -daikon.Image.prototype.getPixelDataBytes = function () { - if (this.isCompressed()) { - this.decompress(); - } - - if (this.isPalette() && !daikon.Image.skipPaletteConversion) { - this.convertPalette(); - } - - return this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value.buffer; -}; - - -/** - * Returns the raw pixel data. - * @returns {ArrayBuffer} - */ -daikon.Image.prototype.getRawData = function () { - return this.getPixelDataBytes(); -}; - - -/** - * Returns interpreted pixel data (considers datatype, byte order, data scales). - * @param {boolean} asArray - if true, the returned data is a JavaScript Array - * @param {boolean} asObject - if true, an object is returned with properties: data, min, max, minIndex, maxIndex, numCols, numRows - * @param {number} frameIndex - if provided, only the desired frame in a multi-frame dataset is returned - * @returns {Float32Array|Array|object} - */ -daikon.Image.prototype.getInterpretedData = function (asArray, asObject, frameIndex) { - var datatype, numBytes, numElements, dataView, data, ctr, mask, slope, intercept, min, max, value, minIndex, - maxIndex, littleEndian, rawValue, rawData, allFrames, elementsPerFrame, totalElements, offset, dataCtr; - allFrames = arguments.length < 3; - mask = daikon.Utils.createBitMask(this.getBitsAllocated() / 8, this.getBitsStored(), - this.getDataType() === daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED); - datatype = this.getPixelRepresentation() ? daikon.Image.BYTE_TYPE_INTEGER : daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED; - numBytes = this.getBitsAllocated() / 8; - rawData = this.getRawData(); - dataView = new DataView(rawData); - totalElements = rawData.byteLength / numBytes; - elementsPerFrame = totalElements / this.getNumberOfFrames(); - numElements = allFrames ? totalElements : elementsPerFrame; - offset = allFrames ? 0 : frameIndex * elementsPerFrame; - slope = this.getDataScaleSlope() || 1; - intercept = this.getDataScaleIntercept() || 0; - min = daikon.Utils.MAX_VALUE; - max = daikon.Utils.MIN_VALUE; - minIndex = -1; - maxIndex = -1; - littleEndian = this.littleEndian; - - if (asArray) { - data = new Array(numElements); - } else { - data = new Float32Array(numElements); - } - var getWord; - if (datatype === daikon.Image.BYTE_TYPE_INTEGER) { - if (numBytes === 1) { - getWord = dataView.getInt8.bind(dataView) - } else if (numBytes === 2) { - getWord = dataView.getInt16.bind(dataView) + function rk(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + c2 = a2 + 104 | 0; + f2 = k[c2 >> 2] | 0; + if ((f2 | 0) != 0 ? (k[a2 + 108 >> 2] | 0) >= (f2 | 0) : 0) + g2 = 4; + else { + b2 = cl(a2) | 0; + if ((b2 | 0) >= 0) { + e2 = k[c2 >> 2] | 0; + c2 = a2 + 8 | 0; + if (e2) { + d2 = k[c2 >> 2] | 0; + f2 = k[a2 + 4 >> 2] | 0; + c2 = d2; + e2 = e2 - (k[a2 + 108 >> 2] | 0) + -1 | 0; + if ((c2 - f2 | 0) > (e2 | 0)) + k[a2 + 100 >> 2] = f2 + e2; + else + g2 = 9; + } else { + d2 = k[c2 >> 2] | 0; + c2 = d2; + g2 = 9; + } + if ((g2 | 0) == 9) + k[a2 + 100 >> 2] = c2; + c2 = k[a2 + 4 >> 2] | 0; + if (d2) { + a2 = a2 + 108 | 0; + k[a2 >> 2] = d2 + 1 - c2 + (k[a2 >> 2] | 0); + } + c2 = c2 + -1 | 0; + if ((l[c2 >> 0] | 0 | 0) != (b2 | 0)) + i2[c2 >> 0] = b2; + } else + g2 = 4; + } + if ((g2 | 0) == 4) { + k[a2 + 100 >> 2] = 0; + b2 = -1; + } + return b2 | 0; } - } else if (datatype === daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED) { - if (numBytes === 1) { - getWord = dataView.getUint8.bind(dataView) - } else if (numBytes === 2) { - getWord = dataView.getUint16.bind(dataView) + function sk(a2) { + a2 = a2 | 0; + var b2 = 0; + if (a2 >>> 0 > 4294963200) { + b2 = mk() | 0; + k[b2 >> 2] = 0 - a2; + a2 = -1; + } + return a2 | 0; } - } - - // invert pixel values if INVERTED or MONOCHROME1 - var invert = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_LUT_SHAPE[0], daikon.Tag.TAG_LUT_SHAPE[1]), 0) === "INVERSE"; - invert = invert || this.getPhotometricInterpretation() === "MONOCHROME1"; - if (invert) { - var maxVal = Math.pow(2, this.getBitsStored()) - 1; - var minVal = 0; - if (datatype === daikon.Image.BYTE_TYPE_INTEGER) { - maxVal /= 2; - minVal = -maxVal; + function tk(a2) { + a2 = a2 | 0; + return 0; } - var originalGetWord = getWord; - getWord = function(offset, endian) { - var val = maxVal - originalGetWord(offset, endian); - return Math.min(maxVal, Math.max(minVal, val)); + function uk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + return d2 | 0; } - } - - for (ctr = offset, dataCtr = 0; dataCtr < numElements; ctr++, dataCtr++) { - rawValue = getWord(ctr * numBytes, littleEndian); - - value = ((rawValue & mask) * slope) + intercept; - data[dataCtr] = value; - - if (value < min) { - min = value; - minIndex = dataCtr; + function vk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1 | 0; } - - if (value > max) { - max = value; - maxIndex = dataCtr; + function wk(a2) { + a2 = a2 | 0; + Ql(a2); + return; } - } - - if (asObject) { - return {data: data, min: min, minIndex: minIndex, max: max, maxIndex: maxIndex, numCols: this.getCols(), - numRows: this.getRows()}; - } - - return data; -}; - - - -daikon.Image.prototype.convertPalette = function () { - var data, reds, greens, blues, rgb, numBytes, numElements, ctr, index, rVal, gVal, bVal; - - data = this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value; - - reds = this.getPalleteValues(daikon.Tag.TAG_PALETTE_RED); - greens = this.getPalleteValues(daikon.Tag.TAG_PALETTE_GREEN); - blues = this.getPalleteValues(daikon.Tag.TAG_PALETTE_BLUE); - - if ((reds !== null) && (reds.length > 0) && (greens !== null) && (greens.length > 0) && (blues !== null) && - (blues.length > 0) && !this.convertedPalette) { - rgb = new DataView(new ArrayBuffer(this.getRows() * this.getCols() * this.getNumberOfFrames() * 3)); - numBytes = parseInt(Math.ceil(this.getBitsAllocated() / 8)); - numElements = data.byteLength / numBytes; - - if (numBytes === 1) { - for (ctr = 0; ctr < numElements; ctr += 1) { - index = data.getUint8(ctr); - rVal = reds[index]; - gVal = greens[index]; - bVal = blues[index]; - rgb.setUint8((ctr * 3), rVal); - rgb.setUint8((ctr * 3) + 1, gVal); - rgb.setUint8((ctr * 3) + 2, bVal); + function xk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return (a2 + -48 | 0) >>> 0 < 10 | 0; + } + function yk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return lk(a2) | 0; + } + function zk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if (((i2[b2 >> 0] | 0) != 0 ? (vl(b2, 58885) | 0) != 0 : 0) ? (vl(b2, 54145) | 0) != 0 : 0) + c2 = 0; + else if (!c2) + c2 = Rl(1, 4) | 0; + return c2 | 0; + } + function Ak(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = (kb() | 0) + 176 | 0; + c2 = k[b2 >> 2] | 0; + if (a2) + k[b2 >> 2] = a2; + return c2 | 0; + } + function Bk(a2, b2) { + a2 = +a2; + b2 = +b2; + var c2 = 0, d2 = 0; + p[t >> 3] = a2; + d2 = k[t >> 2] | 0; + c2 = k[t + 4 >> 2] | 0; + p[t >> 3] = b2; + c2 = k[t + 4 >> 2] & -2147483648 | c2 & 2147483647; + k[t >> 2] = d2; + k[t + 4 >> 2] = c2; + return + +p[t >> 3]; + } + function Ck(a2, b2) { + a2 = +a2; + b2 = +b2; + return + +Bk(a2, b2); + } + function Dk(a2, b2) { + a2 = +a2; + b2 = +b2; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + p[t >> 3] = a2; + c2 = k[t >> 2] | 0; + j2 = k[t + 4 >> 2] | 0; + p[t >> 3] = b2; + l2 = k[t >> 2] | 0; + m2 = k[t + 4 >> 2] | 0; + d2 = uw(c2 | 0, j2 | 0, 52) | 0; + d2 = d2 & 2047; + h2 = uw(l2 | 0, m2 | 0, 52) | 0; + h2 = h2 & 2047; + n2 = j2 & -2147483648; + g2 = ww(l2 | 0, m2 | 0, 1) | 0; + i3 = M; + a: + do + if (!((g2 | 0) == 0 & (i3 | 0) == 0) ? (f2 = m2 & 2147483647, !(f2 >>> 0 > 2146435072 | (f2 | 0) == 2146435072 & l2 >>> 0 > 0 | (d2 | 0) == 2047)) : 0) { + e2 = ww(c2 | 0, j2 | 0, 1) | 0; + f2 = M; + if (!(f2 >>> 0 > i3 >>> 0 | (f2 | 0) == (i3 | 0) & e2 >>> 0 > g2 >>> 0)) + return +((e2 | 0) == (g2 | 0) & (f2 | 0) == (i3 | 0) ? a2 * 0 : a2); + if (!d2) { + d2 = ww(c2 | 0, j2 | 0, 12) | 0; + e2 = M; + if ((e2 | 0) > -1 | (e2 | 0) == -1 & d2 >>> 0 > 4294967295) { + f2 = d2; + d2 = 0; + do { + d2 = d2 + -1 | 0; + f2 = ww(f2 | 0, e2 | 0, 1) | 0; + e2 = M; + } while ((e2 | 0) > -1 | (e2 | 0) == -1 & f2 >>> 0 > 4294967295); + } else + d2 = 0; + c2 = ww(c2 | 0, j2 | 0, 1 - d2 | 0) | 0; + e2 = M; + } else + e2 = j2 & 1048575 | 1048576; + if (!h2) { + f2 = ww(l2 | 0, m2 | 0, 12) | 0; + g2 = M; + if ((g2 | 0) > -1 | (g2 | 0) == -1 & f2 >>> 0 > 4294967295) { + h2 = 0; + do { + h2 = h2 + -1 | 0; + f2 = ww(f2 | 0, g2 | 0, 1) | 0; + g2 = M; + } while ((g2 | 0) > -1 | (g2 | 0) == -1 & f2 >>> 0 > 4294967295); + } else + h2 = 0; + l2 = ww(l2 | 0, m2 | 0, 1 - h2 | 0) | 0; + j2 = M; + } else + j2 = m2 & 1048575 | 1048576; + i3 = rw(c2 | 0, e2 | 0, l2 | 0, j2 | 0) | 0; + g2 = M; + f2 = (g2 | 0) > -1 | (g2 | 0) == -1 & i3 >>> 0 > 4294967295; + b: + do + if ((d2 | 0) > (h2 | 0)) { + while (1) { + if (f2) + if ((c2 | 0) == (l2 | 0) & (e2 | 0) == (j2 | 0)) + break; + else { + c2 = i3; + e2 = g2; + } + c2 = ww(c2 | 0, e2 | 0, 1) | 0; + e2 = M; + d2 = d2 + -1 | 0; + i3 = rw(c2 | 0, e2 | 0, l2 | 0, j2 | 0) | 0; + g2 = M; + f2 = (g2 | 0) > -1 | (g2 | 0) == -1 & i3 >>> 0 > 4294967295; + if ((d2 | 0) <= (h2 | 0)) + break b; + } + b2 = a2 * 0; + break a; + } + while (0); + if (f2) + if ((c2 | 0) == (l2 | 0) & (e2 | 0) == (j2 | 0)) { + b2 = a2 * 0; + break; + } else { + e2 = g2; + c2 = i3; + } + if (e2 >>> 0 < 1048576 | (e2 | 0) == 1048576 & c2 >>> 0 < 0) + do { + c2 = ww(c2 | 0, e2 | 0, 1) | 0; + e2 = M; + d2 = d2 + -1 | 0; + } while (e2 >>> 0 < 1048576 | (e2 | 0) == 1048576 & c2 >>> 0 < 0); + if ((d2 | 0) > 0) { + m2 = tw(c2 | 0, e2 | 0, 0, -1048576) | 0; + c2 = M; + d2 = ww(d2 | 0, 0, 52) | 0; + c2 = c2 | M; + d2 = m2 | d2; + } else { + d2 = uw(c2 | 0, e2 | 0, 1 - d2 | 0) | 0; + c2 = M; + } + k[t >> 2] = d2; + k[t + 4 >> 2] = c2 | n2; + b2 = +p[t >> 3]; + } else + o2 = 3; + while (0); + if ((o2 | 0) == 3) { + b2 = a2 * b2; + b2 = b2 / b2; + } + return +b2; + } + function Ek(a2, b2) { + a2 = +a2; + b2 = +b2; + return + +Dk(a2, b2); + } + function Fk(a2, b2) { + a2 = +a2; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + p[t >> 3] = a2; + c2 = k[t >> 2] | 0; + d2 = k[t + 4 >> 2] | 0; + e2 = uw(c2 | 0, d2 | 0, 52) | 0; + e2 = e2 & 2047; + switch (e2 | 0) { + case 0: { + if (a2 != 0) { + a2 = +Fk(a2 * 18446744073709552e3, b2); + c2 = (k[b2 >> 2] | 0) + -64 | 0; + } else + c2 = 0; + k[b2 >> 2] = c2; + break; } - } else if (numBytes === 2) { - for (ctr = 0; ctr < numElements; ctr += 1) { - index = data.getUint16(ctr * 2); - rVal = reds[index]; - gVal = greens[index]; - bVal = blues[index]; - rgb.setUint8((ctr * 3), rVal); - rgb.setUint8((ctr * 3) + 1, gVal); - rgb.setUint8((ctr * 3) + 2, bVal); + case 2047: + break; + default: { + k[b2 >> 2] = e2 + -1022; + k[t >> 2] = c2; + k[t + 4 >> 2] = d2 & -2146435073 | 1071644672; + a2 = +p[t >> 3]; } + } + return +a2; } - - data = rgb; - this.convertedPalette = true; - } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = data; -}; - - - -daikon.Image.prototype.decompressJPEG = function (jpg) { - if (this.isCompressedJPEGLossless()) { - var decoder = new jpeg.lossless.Decoder(); - return decoder.decode(jpg); - } else if (this.isCompressedJPEGBaseline()) { - var decoder = new JpegDecoder(); - decoder.parse(new Uint8Array(jpg)); - var width = decoder.width; - var height = decoder.height; - - var decoded; - if (this.getBitsAllocated() === 8) { - decoded = decoder.getData(width, height); - } else if (this.getBitsAllocated() === 16) { - decoded = decoder.getData16(width, height); + function Gk(a2, b2) { + a2 = +a2; + b2 = b2 | 0; + return + +Fk(a2, b2); } - - return decoded; - } else if (this.isCompressedJPEG2000()) { - var decoder = new JpxImage(); - decoder.parse(new Uint8Array(jpg)); - return decoder.tiles[0].items; - } else if (this.isCompressedJPEGLS()) { - var decoder = new JpegLSDecoder(); - return decoder.decodeJPEGLS(new Uint8Array(jpg), this.getDataType() === daikon.Image.BYTE_TYPE_INTEGER); - } -}; - - - -daikon.Image.prototype.decompress = function () { - var jpegs, rle, decoder, decompressed, numFrames, frameSize, temp, ctr, width, height, numComponents, decoded; - - decompressed = null; - - if (!this.decompressed) { - this.decompressed = true; - - frameSize = this.getRows() * this.getCols() * parseInt(Math.ceil(this.getBitsAllocated() / 8)); - numFrames = this.getNumberOfFrames(); - - if (this.isCompressedJPEGLossless()) { - jpegs = this.getJpegs(); - - for (ctr = 0; ctr < jpegs.length; ctr+=1) { - decoder = new jpeg.lossless.Decoder(); - temp = decoder.decode(jpegs[ctr]); - numComponents = decoder.numComp; - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); - } - - (new Uint8Array(decompressed.buffer)).set(new Uint8Array(temp.buffer), (ctr * frameSize * numComponents)); - temp = null; + function Hk(a2, b2) { + a2 = +a2; + b2 = b2 | 0; + var c2 = 0; + if ((b2 | 0) > 1023) { + a2 = a2 * 898846567431158e293; + c2 = b2 + -1023 | 0; + if ((c2 | 0) > 1023) { + c2 = b2 + -2046 | 0; + c2 = (c2 | 0) > 1023 ? 1023 : c2; + a2 = a2 * 898846567431158e293; } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; - } else if (this.isCompressedJPEGBaseline()) { - jpegs = this.getJpegs(); - - for (ctr = 0; ctr < jpegs.length; ctr+=1) { - decoder = new JpegDecoder(); - decoder.parse(new Uint8Array(jpegs[ctr])); - width = decoder.width; - height = decoder.height; - numComponents = decoder.components.length; - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); + } else if ((b2 | 0) < -1022) { + a2 = a2 * 22250738585072014e-324; + c2 = b2 + 1022 | 0; + if ((c2 | 0) < -1022) { + c2 = b2 + 2044 | 0; + c2 = (c2 | 0) < -1022 ? -1022 : c2; + a2 = a2 * 22250738585072014e-324; + } + } else + c2 = b2; + c2 = ww(c2 + 1023 | 0, 0, 52) | 0; + b2 = M; + k[t >> 2] = c2; + k[t + 4 >> 2] = b2; + return +(a2 * +p[t >> 3]); + } + function Ik(a2, b2) { + a2 = +a2; + b2 = b2 | 0; + return + +Hk(a2, b2); + } + function Jk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return Kk(0, a2, b2, (c2 | 0) != 0 ? c2 : 37344) | 0; + } + function Kk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + e2 = j2; + g2 = (d2 | 0) == 0 ? 37348 : d2; + d2 = k[g2 >> 2] | 0; + a: + do + if (!b2) + if (!d2) + d2 = 0; + else + h2 = 15; + else { + f2 = (a2 | 0) == 0 ? e2 : a2; + if (!c2) + d2 = -2; + else { + if (!d2) { + d2 = i2[b2 >> 0] | 0; + e2 = d2 & 255; + if (d2 << 24 >> 24 > -1) { + k[f2 >> 2] = e2; + d2 = d2 << 24 >> 24 != 0 & 1; + break; + } + d2 = e2 + -194 | 0; + if (d2 >>> 0 > 50) { + h2 = 15; + break; + } + d2 = k[37076 + (d2 << 2) >> 2] | 0; + e2 = c2 + -1 | 0; + if (e2) { + b2 = b2 + 1 | 0; + h2 = 9; + } + } else { + e2 = c2; + h2 = 9; + } + b: + do + if ((h2 | 0) == 9) { + a2 = i2[b2 >> 0] | 0; + l2 = (a2 & 255) >>> 3; + if ((l2 + -16 | l2 + (d2 >> 26)) >>> 0 > 7) { + h2 = 15; + break a; + } + while (1) { + b2 = b2 + 1 | 0; + d2 = (a2 & 255) + -128 | d2 << 6; + e2 = e2 + -1 | 0; + if ((d2 | 0) >= 0) + break; + if (!e2) + break b; + a2 = i2[b2 >> 0] | 0; + if ((a2 & -64) << 24 >> 24 != -128) { + h2 = 15; + break a; + } + } + k[g2 >> 2] = 0; + k[f2 >> 2] = d2; + d2 = c2 - e2 | 0; + break a; + } + while (0); + k[g2 >> 2] = d2; + d2 = -2; } - - if (this.getBitsAllocated() === 8) { - decoded = decoder.getData(width, height); - } else if (this.getBitsAllocated() === 16) { - decoded = decoder.getData16(width, height); + } + while (0); + if ((h2 | 0) == 15) { + k[g2 >> 2] = 0; + d2 = mk() | 0; + k[d2 >> 2] = 84; + d2 = -1; + } + r = j2; + return d2 | 0; + } + function Lk(a2) { + a2 = a2 | 0; + if (!a2) + a2 = 1; + else + a2 = (k[a2 >> 2] | 0) == 0; + return a2 & 1 | 0; + } + function Mk(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + n2 = r; + r = r + 1040 | 0; + j2 = n2 + 8 | 0; + m2 = n2; + i3 = k[b2 >> 2] | 0; + k[m2 >> 2] = i3; + l2 = (a2 | 0) != 0; + d2 = l2 ? d2 : 256; + a2 = l2 ? a2 : j2; + f2 = i3; + a: + do + if ((d2 | 0) != 0 & (i3 | 0) != 0) { + h2 = d2; + i3 = f2; + d2 = 0; + while (1) { + f2 = c2 >>> 2; + g2 = f2 >>> 0 >= h2 >>> 0; + if (!(c2 >>> 0 > 131 | g2)) { + f2 = i3; + break a; + } + f2 = g2 ? h2 : f2; + c2 = c2 - f2 | 0; + f2 = Nk(a2, m2, f2, e2) | 0; + if ((f2 | 0) == -1) { + d2 = c2; + break; + } + o2 = (a2 | 0) == (j2 | 0); + i3 = o2 ? 0 : f2; + g2 = h2 - i3 | 0; + a2 = o2 ? a2 : a2 + (f2 << 2) | 0; + d2 = f2 + d2 | 0; + f2 = k[m2 >> 2] | 0; + if ((h2 | 0) != (i3 | 0) & (f2 | 0) != 0) { + h2 = g2; + i3 = f2; + } else { + h2 = g2; + break a; + } } - - daikon.Utils.fillBuffer(decoded, decompressed, (ctr * frameSize * numComponents), - parseInt(Math.ceil(this.getBitsAllocated() / 8))); - - decoded = null; + c2 = d2; + h2 = 0; + f2 = k[m2 >> 2] | 0; + d2 = -1; + } else { + h2 = d2; + d2 = 0; + } + while (0); + b: + do + if ((f2 | 0) != 0 ? (h2 | 0) != 0 & (c2 | 0) != 0 : 0) { + g2 = f2; + f2 = a2; + while (1) { + a2 = Kk(f2, g2, c2, e2) | 0; + if ((a2 + 2 | 0) >>> 0 < 3) + break; + g2 = (k[m2 >> 2] | 0) + a2 | 0; + k[m2 >> 2] = g2; + h2 = h2 + -1 | 0; + d2 = d2 + 1 | 0; + if (!((h2 | 0) != 0 & (c2 | 0) != (a2 | 0))) + break b; + else { + c2 = c2 - a2 | 0; + f2 = f2 + 4 | 0; + } + } + switch (a2 | 0) { + case -1: { + d2 = -1; + break b; + } + case 0: { + k[m2 >> 2] = 0; + break b; + } + default: { + k[e2 >> 2] = 0; + break b; + } + } + } + while (0); + if (l2) + k[b2 >> 2] = k[m2 >> 2]; + r = n2; + return d2 | 0; + } + function Nk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + e2 = k[b2 >> 2] | 0; + if ((d2 | 0) != 0 ? (f2 = k[d2 >> 2] | 0, (f2 | 0) != 0) : 0) + if (!a2) { + d2 = c2; + g2 = e2; + m2 = 16; + } else { + k[d2 >> 2] = 0; + j2 = a2; + d2 = c2; + h2 = f2; + m2 = 37; } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; - } else if (this.isCompressedJPEG2000()) { - jpegs = this.getJpegs(); - - for (ctr = 0; ctr < jpegs.length; ctr+=1) { - decoder = new JpxImage(); - decoder.parse(new Uint8Array(jpegs[ctr])); - width = decoder.width; - height = decoder.height; - decoded = decoder.tiles[0].items; - numComponents = decoder.componentsCount; - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); + else if (!a2) { + d2 = c2; + m2 = 7; + } else { + f2 = a2; + d2 = c2; + m2 = 6; + } + a: + while (1) + if ((m2 | 0) == 6) { + if (!d2) { + m2 = 26; + break; + } else + a2 = f2; + while (1) { + f2 = i2[e2 >> 0] | 0; + do + if (((f2 & 255) + -1 | 0) >>> 0 < 127 ? d2 >>> 0 > 4 & (e2 & 3 | 0) == 0 : 0) { + g2 = e2; + while (1) { + e2 = k[g2 >> 2] | 0; + if ((e2 + -16843009 | e2) & -2139062144) { + f2 = e2; + e2 = g2; + m2 = 32; + break; + } + k[a2 >> 2] = e2 & 255; + k[a2 + 4 >> 2] = l[g2 + 1 >> 0]; + k[a2 + 8 >> 2] = l[g2 + 2 >> 0]; + e2 = g2 + 4 | 0; + f2 = a2 + 16 | 0; + k[a2 + 12 >> 2] = l[g2 + 3 >> 0]; + d2 = d2 + -4 | 0; + if (d2 >>> 0 > 4) { + a2 = f2; + g2 = e2; + } else { + m2 = 31; + break; + } + } + if ((m2 | 0) == 31) { + a2 = f2; + f2 = i2[e2 >> 0] | 0; + break; + } else if ((m2 | 0) == 32) { + f2 = f2 & 255; + break; + } + } + while (0); + f2 = f2 & 255; + if ((f2 + -1 | 0) >>> 0 >= 127) + break; + e2 = e2 + 1 | 0; + k[a2 >> 2] = f2; + d2 = d2 + -1 | 0; + if (!d2) { + m2 = 26; + break a; + } else + a2 = a2 + 4 | 0; } - - daikon.Utils.fillBuffer(decoded, decompressed, (ctr * frameSize * numComponents), - parseInt(Math.ceil(this.getBitsAllocated() / 8))); - - decoded = null; + f2 = f2 + -194 | 0; + if (f2 >>> 0 > 50) { + m2 = 48; + break; + } + j2 = a2; + h2 = k[37076 + (f2 << 2) >> 2] | 0; + e2 = e2 + 1 | 0; + m2 = 37; + continue; + } else if ((m2 | 0) == 7) { + f2 = i2[e2 >> 0] | 0; + if (((f2 & 255) + -1 | 0) >>> 0 < 127 ? (e2 & 3 | 0) == 0 : 0) { + f2 = k[e2 >> 2] | 0; + if (!((f2 + -16843009 | f2) & -2139062144)) + do { + e2 = e2 + 4 | 0; + d2 = d2 + -4 | 0; + f2 = k[e2 >> 2] | 0; + } while (((f2 + -16843009 | f2) & -2139062144 | 0) == 0); + f2 = f2 & 255; + } + f2 = f2 & 255; + if ((f2 + -1 | 0) >>> 0 < 127) { + d2 = d2 + -1 | 0; + e2 = e2 + 1 | 0; + m2 = 7; + continue; + } + f2 = f2 + -194 | 0; + if (f2 >>> 0 > 50) { + m2 = 48; + break; + } + f2 = k[37076 + (f2 << 2) >> 2] | 0; + g2 = e2 + 1 | 0; + m2 = 16; + continue; + } else if ((m2 | 0) == 16) { + m2 = (l[g2 >> 0] | 0) >>> 3; + if ((m2 + -16 | m2 + (f2 >> 26)) >>> 0 > 7) { + m2 = 17; + break; + } + e2 = g2 + 1 | 0; + if (f2 & 33554432) { + if ((i2[e2 >> 0] & -64) << 24 >> 24 != -128) { + m2 = 20; + break; + } + e2 = g2 + 2 | 0; + if (f2 & 524288) { + if ((i2[e2 >> 0] & -64) << 24 >> 24 != -128) { + m2 = 23; + break; + } + e2 = g2 + 3 | 0; + } + } + d2 = d2 + -1 | 0; + m2 = 7; + continue; + } else if ((m2 | 0) == 37) { + f2 = l[e2 >> 0] | 0; + m2 = f2 >>> 3; + if ((m2 + -16 | m2 + (h2 >> 26)) >>> 0 > 7) { + m2 = 38; + break; + } + g2 = e2 + 1 | 0; + a2 = f2 + -128 | h2 << 6; + if ((a2 | 0) < 0) { + f2 = l[g2 >> 0] | 0; + if ((f2 & 192 | 0) != 128) { + m2 = 41; + break; + } + g2 = e2 + 2 | 0; + a2 = f2 + -128 | a2 << 6; + if ((a2 | 0) < 0) { + f2 = l[g2 >> 0] | 0; + if ((f2 & 192 | 0) != 128) { + m2 = 44; + break; + } + a2 = f2 + -128 | a2 << 6; + e2 = e2 + 3 | 0; + } else + e2 = g2; + } else + e2 = g2; + k[j2 >> 2] = a2; + f2 = j2 + 4 | 0; + d2 = d2 + -1 | 0; + m2 = 6; + continue; + } + if ((m2 | 0) == 17) { + e2 = g2 + -1 | 0; + m2 = 47; + } else if ((m2 | 0) == 20) { + e2 = g2 + -1 | 0; + m2 = 47; + } else if ((m2 | 0) == 23) { + e2 = g2 + -1 | 0; + m2 = 47; + } else if ((m2 | 0) == 26) + k[b2 >> 2] = e2; + else if ((m2 | 0) == 38) { + a2 = j2; + f2 = h2; + e2 = e2 + -1 | 0; + m2 = 47; + } else if ((m2 | 0) == 41) { + d2 = j2; + c2 = e2 + -1 | 0; + m2 = 52; + } else if ((m2 | 0) == 44) { + d2 = j2; + c2 = e2 + -1 | 0; + m2 = 52; + } + if ((m2 | 0) == 47) + if (!f2) + m2 = 48; + else { + d2 = a2; + c2 = e2; + m2 = 52; } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; - } else if (this.isCompressedJPEGLS()) { - jpegs = this.getJpegs(); - - for (ctr = 0; ctr < jpegs.length; ctr+=1) { - decoder = new JpegLSDecoder(); - var decoded = decoder.decodeJPEGLS(new Uint8Array(jpegs[ctr]), this.getDataType() === daikon.Image.BYTE_TYPE_INTEGER); - width = decoded.columns; - height = decoded.rows; - decoded = decoded.pixelData; - numComponents = this.getNumberOfSamplesPerPixel(); - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); + if ((m2 | 0) == 48) + if (!(i2[e2 >> 0] | 0)) { + if (a2) { + k[a2 >> 2] = 0; + k[b2 >> 2] = 0; + } + c2 = c2 - d2 | 0; + } else { + d2 = a2; + c2 = e2; + m2 = 52; + } + if ((m2 | 0) == 52) { + m2 = mk() | 0; + k[m2 >> 2] = 84; + if (!d2) + c2 = -1; + else { + k[b2 >> 2] = c2; + c2 = -1; + } + } + return c2 | 0; + } + function Ok(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + g2 = r; + r = r + 16 | 0; + d2 = g2; + a: + do + if (!b2) + d2 = 0; + else { + do + if (c2) { + f2 = (a2 | 0) == 0 ? d2 : a2; + d2 = i2[b2 >> 0] | 0; + a2 = d2 & 255; + if (d2 << 24 >> 24 > -1) { + k[f2 >> 2] = a2; + d2 = d2 << 24 >> 24 != 0 & 1; + break a; + } + d2 = a2 + -194 | 0; + if (d2 >>> 0 <= 50) { + a2 = b2 + 1 | 0; + e2 = k[37076 + (d2 << 2) >> 2] | 0; + if (c2 >>> 0 < 4 ? (e2 & -2147483648 >>> ((c2 * 6 | 0) + -6 | 0) | 0) != 0 : 0) + break; + d2 = l[a2 >> 0] | 0; + c2 = d2 >>> 3; + if ((c2 + -16 | c2 + (e2 >> 26)) >>> 0 <= 7) { + d2 = d2 + -128 | e2 << 6; + if ((d2 | 0) >= 0) { + k[f2 >> 2] = d2; + d2 = 2; + break a; + } + a2 = l[b2 + 2 >> 0] | 0; + if ((a2 & 192 | 0) == 128) { + a2 = a2 + -128 | d2 << 6; + if ((a2 | 0) >= 0) { + k[f2 >> 2] = a2; + d2 = 3; + break a; + } + d2 = l[b2 + 3 >> 0] | 0; + if ((d2 & 192 | 0) == 128) { + k[f2 >> 2] = d2 + -128 | a2 << 6; + d2 = 4; + break a; + } + } + } + } + } + while (0); + d2 = mk() | 0; + k[d2 >> 2] = 84; + d2 = -1; + } + while (0); + r = g2; + return d2 | 0; + } + function Pk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + do + if (a2) { + if (b2 >>> 0 < 128) { + i2[a2 >> 0] = b2; + a2 = 1; + break; + } + if (b2 >>> 0 < 2048) { + i2[a2 >> 0] = b2 >>> 6 | 192; + i2[a2 + 1 >> 0] = b2 & 63 | 128; + a2 = 2; + break; + } + if (b2 >>> 0 < 55296 | (b2 & -8192 | 0) == 57344) { + i2[a2 >> 0] = b2 >>> 12 | 224; + i2[a2 + 1 >> 0] = b2 >>> 6 & 63 | 128; + i2[a2 + 2 >> 0] = b2 & 63 | 128; + a2 = 3; + break; + } + if ((b2 + -65536 | 0) >>> 0 < 1048576) { + i2[a2 >> 0] = b2 >>> 18 | 240; + i2[a2 + 1 >> 0] = b2 >>> 12 & 63 | 128; + i2[a2 + 2 >> 0] = b2 >>> 6 & 63 | 128; + i2[a2 + 3 >> 0] = b2 & 63 | 128; + a2 = 4; + break; + } else { + a2 = mk() | 0; + k[a2 >> 2] = 84; + a2 = -1; + break; + } + } else + a2 = 1; + while (0); + return a2 | 0; + } + function Qk(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + l2 = r; + r = r + 272 | 0; + h2 = l2 + 8 | 0; + j2 = l2; + g2 = k[b2 >> 2] | 0; + k[j2 >> 2] = g2; + i3 = (a2 | 0) != 0; + e2 = i3 ? d2 : 256; + d2 = i3 ? a2 : h2; + a2 = g2; + a: + do + if ((e2 | 0) != 0 & (g2 | 0) != 0) { + g2 = e2; + f2 = a2; + e2 = 0; + while (1) { + a2 = c2 >>> 0 >= g2 >>> 0; + if (!(a2 | c2 >>> 0 > 32)) { + a2 = f2; + break a; + } + a2 = a2 ? g2 : c2; + c2 = c2 - a2 | 0; + a2 = Rk(d2, j2, a2, 0) | 0; + if ((a2 | 0) == -1) { + e2 = c2; + break; + } + n2 = (d2 | 0) == (h2 | 0); + m2 = n2 ? 0 : a2; + f2 = g2 - m2 | 0; + d2 = n2 ? d2 : d2 + a2 | 0; + e2 = a2 + e2 | 0; + a2 = k[j2 >> 2] | 0; + if ((g2 | 0) != (m2 | 0) & (a2 | 0) != 0) { + g2 = f2; + f2 = a2; + } else { + g2 = f2; + break a; + } + } + c2 = e2; + g2 = 0; + a2 = k[j2 >> 2] | 0; + e2 = -1; + } else { + g2 = e2; + e2 = 0; + } + while (0); + b: + do + if ((a2 | 0) != 0 ? (g2 | 0) != 0 & (c2 | 0) != 0 : 0) { + f2 = a2; + a2 = d2; + while (1) { + d2 = Pk(a2, k[f2 >> 2] | 0, 0) | 0; + if ((d2 + 1 | 0) >>> 0 < 2) + break; + f2 = (k[j2 >> 2] | 0) + 4 | 0; + k[j2 >> 2] = f2; + c2 = c2 + -1 | 0; + e2 = e2 + 1 | 0; + if (!((g2 | 0) != (d2 | 0) & (c2 | 0) != 0)) + break b; + else { + g2 = g2 - d2 | 0; + a2 = a2 + d2 | 0; + } } - - daikon.Utils.fillBuffer(decoded, decompressed, (ctr * frameSize * numComponents), - parseInt(Math.ceil(this.getBitsAllocated() / 8))); - - decoded = null; - } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; - } else if (this.isCompressedRLE()) { - rle = this.getRLE(); - - for (ctr = 0; ctr < rle.length; ctr+=1) { - decoder = new daikon.RLE(); - temp = decoder.decode(rle[ctr], this.littleEndian, this.getRows() * this.getCols()); - numComponents = (decoder.numSegments === 3 ? 3 : 1); - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); + if (!d2) + k[j2 >> 2] = 0; + else + e2 = -1; + } + while (0); + if (i3) + k[b2 >> 2] = k[j2 >> 2]; + r = l2; + return e2 | 0; + } + function Rk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + a: + do + if (!a2) { + a2 = k[b2 >> 2] | 0; + d2 = k[a2 >> 2] | 0; + if (!d2) + c2 = 0; + else { + c2 = 0; + do { + if (d2 >>> 0 > 127) { + d2 = Pk(g2, d2, 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + } else + d2 = 1; + c2 = d2 + c2 | 0; + a2 = a2 + 4 | 0; + d2 = k[a2 >> 2] | 0; + } while ((d2 | 0) != 0); } - - (new Uint8Array(decompressed.buffer)).set(new Uint8Array(temp.buffer), (ctr * frameSize * numComponents)); - temp = null; + } else { + b: + do + if (c2 >>> 0 > 3) { + d2 = c2; + e2 = k[b2 >> 2] | 0; + while (1) { + f2 = k[e2 >> 2] | 0; + if ((f2 + -1 | 0) >>> 0 > 126) { + if (!f2) + break; + f2 = Pk(a2, f2, 0) | 0; + if ((f2 | 0) == -1) { + c2 = -1; + break a; + } + a2 = a2 + f2 | 0; + d2 = d2 - f2 | 0; + } else { + i2[a2 >> 0] = f2; + a2 = a2 + 1 | 0; + d2 = d2 + -1 | 0; + e2 = k[b2 >> 2] | 0; + } + e2 = e2 + 4 | 0; + k[b2 >> 2] = e2; + if (d2 >>> 0 <= 3) + break b; + } + i2[a2 >> 0] = 0; + k[b2 >> 2] = 0; + c2 = c2 - d2 | 0; + break a; + } else + d2 = c2; + while (0); + if (d2) { + e2 = k[b2 >> 2] | 0; + while (1) { + f2 = k[e2 >> 2] | 0; + if ((f2 + -1 | 0) >>> 0 > 126) { + if (!f2) { + e2 = 19; + break; + } + f2 = Pk(g2, f2, 0) | 0; + if ((f2 | 0) == -1) { + c2 = -1; + break a; + } + if (d2 >>> 0 < f2 >>> 0) { + e2 = 22; + break; + } + Pk(a2, k[e2 >> 2] | 0, 0) | 0; + a2 = a2 + f2 | 0; + d2 = d2 - f2 | 0; + } else { + i2[a2 >> 0] = f2; + a2 = a2 + 1 | 0; + d2 = d2 + -1 | 0; + e2 = k[b2 >> 2] | 0; + } + e2 = e2 + 4 | 0; + k[b2 >> 2] = e2; + if (!d2) + break a; + } + if ((e2 | 0) == 19) { + i2[a2 >> 0] = 0; + k[b2 >> 2] = 0; + c2 = c2 - d2 | 0; + break; + } else if ((e2 | 0) == 22) { + c2 = c2 - d2 | 0; + break; + } + } + } + while (0); + r = h2; + return c2 | 0; + } + function Sk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (!a2) + a2 = 0; + else + a2 = Pk(a2, b2, 0) | 0; + return a2 | 0; + } + function Tk(a2) { + a2 = a2 | 0; + return 0; + } + function Uk(a2) { + a2 = a2 | 0; + return; + } + function Vk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + g2 = b2 & 255; + i2[h2 >> 0] = g2; + d2 = a2 + 16 | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + if (!(bl(a2) | 0)) { + e2 = k[d2 >> 2] | 0; + f2 = 4; + } else + c2 = -1; + else + f2 = 4; + do + if ((f2 | 0) == 4) { + d2 = a2 + 20 | 0; + f2 = k[d2 >> 2] | 0; + if (f2 >>> 0 < e2 >>> 0 ? (c2 = b2 & 255, (c2 | 0) != (i2[a2 + 75 >> 0] | 0)) : 0) { + k[d2 >> 2] = f2 + 1; + i2[f2 >> 0] = g2; + break; + } + if ((Qb[k[a2 + 36 >> 2] & 63](a2, h2, 1) | 0) == 1) + c2 = l[h2 >> 0] | 0; + else + c2 = -1; } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + while (0); + r = j2; + return c2 | 0; } - } -}; - - -/** - * Returns true if pixel data is found. - * @returns {boolean} - */ -daikon.Image.prototype.hasPixelData = function () { - return (this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])] !== undefined); -}; - - - -daikon.Image.prototype.clearPixelData = function () { - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = null; -}; - - -/** - * Returns an orientation string (e.g., XYZ+--). - * @returns {string} - */ -daikon.Image.prototype.getOrientation = function () { - var orientation = null, - dirCos = daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_ORIENTATION[0], daikon.Tag.TAG_IMAGE_ORIENTATION[1])), - ctr, - spacing, - rowSpacing, - swapZ, - bigRow = 0, bigCol = 0, - biggest = 0, orient = ''; - - if (!dirCos || (dirCos.length !== 6)) { - return null; - } - - spacing = this.getPixelSpacing(); - - if (!spacing) { - return null; - } - - rowSpacing = spacing[0]; - swapZ = true; - - for (ctr = 0; ctr < 3; ctr += 1) { - if (Math.abs(dirCos[ctr]) > biggest) { - biggest = Math.abs(dirCos[ctr]); - bigRow = ctr; + function Wk(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = r; + r = r + 16 | 0; + c2 = b2; + k[c2 >> 2] = k[a2 + 60 >> 2]; + a2 = sk(wb(6, c2 | 0) | 0) | 0; + r = b2; + return a2 | 0; } - } - - biggest = 0; - for (; ctr < 6; ctr += 1) { - if (Math.abs(dirCos[ctr]) > biggest) { - biggest = Math.abs(dirCos[ctr]); - bigCol = ctr; + function Xk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + l2 = r; + r = r + 48 | 0; + f2 = l2 + 16 | 0; + e2 = l2; + d2 = l2 + 32 | 0; + k[d2 >> 2] = b2; + g2 = d2 + 4 | 0; + j2 = a2 + 48 | 0; + m2 = k[j2 >> 2] | 0; + k[g2 >> 2] = c2 - ((m2 | 0) != 0 & 1); + h2 = a2 + 44 | 0; + k[d2 + 8 >> 2] = k[h2 >> 2]; + k[d2 + 12 >> 2] = m2; + if (!(k[9258] | 0)) { + k[f2 >> 2] = k[a2 + 60 >> 2]; + k[f2 + 4 >> 2] = d2; + k[f2 + 8 >> 2] = 2; + d2 = sk(Eb(145, f2 | 0) | 0) | 0; + } else { + xb(185, a2 | 0); + k[e2 >> 2] = k[a2 + 60 >> 2]; + k[e2 + 4 >> 2] = d2; + k[e2 + 8 >> 2] = 2; + d2 = sk(Eb(145, e2 | 0) | 0) | 0; + pb(0); + } + if ((d2 | 0) >= 1) { + g2 = k[g2 >> 2] | 0; + if (d2 >>> 0 > g2 >>> 0) { + f2 = k[h2 >> 2] | 0; + e2 = a2 + 4 | 0; + k[e2 >> 2] = f2; + k[a2 + 8 >> 2] = f2 + (d2 - g2); + if (!(k[j2 >> 2] | 0)) + d2 = c2; + else { + k[e2 >> 2] = f2 + 1; + i2[b2 + (c2 + -1) >> 0] = i2[f2 >> 0] | 0; + d2 = c2; + } + } + } else { + k[a2 >> 2] = k[a2 >> 2] | d2 & 48 ^ 16; + k[a2 + 8 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + } + r = l2; + return d2 | 0; } - } - - switch (bigRow) { - case 0: - orient += ('X'); - if (bigCol === 4) { - orient += ("YZ"); + function Yk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 32 | 0; + f2 = e2; + d2 = e2 + 20 | 0; + k[f2 >> 2] = k[a2 + 60 >> 2]; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = b2; + k[f2 + 12 >> 2] = d2; + k[f2 + 16 >> 2] = c2; + if ((sk(Db(140, f2 | 0) | 0) | 0) < 0) { + k[d2 >> 2] = -1; + a2 = -1; + } else + a2 = k[d2 >> 2] | 0; + r = e2; + return a2 | 0; + } + function Zk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + p2 = r; + r = r + 48 | 0; + m2 = p2 + 16 | 0; + l2 = p2; + d2 = p2 + 32 | 0; + n2 = a2 + 28 | 0; + e2 = k[n2 >> 2] | 0; + k[d2 >> 2] = e2; + o2 = a2 + 20 | 0; + e2 = (k[o2 >> 2] | 0) - e2 | 0; + k[d2 + 4 >> 2] = e2; + k[d2 + 8 >> 2] = b2; + k[d2 + 12 >> 2] = c2; + i3 = a2 + 60 | 0; + j2 = a2 + 44 | 0; + b2 = 2; + e2 = e2 + c2 | 0; + while (1) { + if (!(k[9258] | 0)) { + k[m2 >> 2] = k[i3 >> 2]; + k[m2 + 4 >> 2] = d2; + k[m2 + 8 >> 2] = b2; + g2 = sk(Fb(146, m2 | 0) | 0) | 0; } else { - orient += ("ZY"); + xb(186, a2 | 0); + k[l2 >> 2] = k[i3 >> 2]; + k[l2 + 4 >> 2] = d2; + k[l2 + 8 >> 2] = b2; + g2 = sk(Fb(146, l2 | 0) | 0) | 0; + pb(0); } - break; - case 1: - orient += ('Y'); - if (bigCol === 3) { - orient += ("XZ"); - } else { - orient += ("ZX"); + if ((e2 | 0) == (g2 | 0)) { + e2 = 6; + break; } - break; - case 2: - orient += ('Z'); - if (bigCol === 3) { - orient += ("XY"); - } else { - orient += ("YX"); + if ((g2 | 0) < 0) { + e2 = 8; + break; } - break; - default: - break; - } - - switch (bigRow) { - case 0: - if (dirCos[bigRow] > 0.0) { - orient += ('-'); - } else { - orient += ('+'); + e2 = e2 - g2 | 0; + f2 = k[d2 + 4 >> 2] | 0; + if (g2 >>> 0 <= f2 >>> 0) + if ((b2 | 0) == 2) { + k[n2 >> 2] = (k[n2 >> 2] | 0) + g2; + h2 = f2; + b2 = 2; + } else + h2 = f2; + else { + h2 = k[j2 >> 2] | 0; + k[n2 >> 2] = h2; + k[o2 >> 2] = h2; + h2 = k[d2 + 12 >> 2] | 0; + g2 = g2 - f2 | 0; + d2 = d2 + 8 | 0; + b2 = b2 + -1 | 0; } - if (bigCol === 4) { - if (dirCos[bigCol] > 0.0) { - orient += ('-'); - } else { - orient += ('+'); - } - } else { - if (dirCos[bigCol] > 0.0) { - orient += ('+'); - } else { - orient += ('-'); - } + k[d2 >> 2] = (k[d2 >> 2] | 0) + g2; + k[d2 + 4 >> 2] = h2 - g2; + } + if ((e2 | 0) == 6) { + m2 = k[j2 >> 2] | 0; + k[a2 + 16 >> 2] = m2 + (k[a2 + 48 >> 2] | 0); + a2 = m2; + k[n2 >> 2] = a2; + k[o2 >> 2] = a2; + } else if ((e2 | 0) == 8) { + k[a2 + 16 >> 2] = 0; + k[n2 >> 2] = 0; + k[o2 >> 2] = 0; + k[a2 >> 2] = k[a2 >> 2] | 32; + if ((b2 | 0) == 2) + c2 = 0; + else + c2 = c2 - (k[d2 + 4 >> 2] | 0) | 0; + } + r = p2; + return c2 | 0; + } + function _k(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = r; + r = r + 80 | 0; + d2 = e2; + k[a2 + 36 >> 2] = 8; + if ((k[a2 >> 2] & 64 | 0) == 0 ? (k[d2 >> 2] = k[a2 + 60 >> 2], k[d2 + 4 >> 2] = 21505, k[d2 + 8 >> 2] = e2 + 12, (nb(54, d2 | 0) | 0) != 0) : 0) + i2[a2 + 75 >> 0] = -1; + d2 = Zk(a2, b2, c2) | 0; + r = e2; + return d2 | 0; + } + function $k(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = a2 + 84 | 0; + f2 = k[d2 >> 2] | 0; + g2 = c2 + 256 | 0; + e2 = tl(f2, 0, g2) | 0; + e2 = (e2 | 0) == 0 ? g2 : e2 - f2 | 0; + c2 = e2 >>> 0 < c2 >>> 0 ? e2 : c2; + vw(b2 | 0, f2 | 0, c2 | 0) | 0; + k[a2 + 4 >> 2] = f2 + c2; + b2 = f2 + e2 | 0; + k[a2 + 8 >> 2] = b2; + k[d2 >> 2] = b2; + return c2 | 0; + } + function al(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = a2 + 74 | 0; + c2 = i2[b2 >> 0] | 0; + i2[b2 >> 0] = c2 + 255 | c2; + b2 = a2 + 20 | 0; + c2 = a2 + 44 | 0; + if ((k[b2 >> 2] | 0) >>> 0 > (k[c2 >> 2] | 0) >>> 0) + Qb[k[a2 + 36 >> 2] & 63](a2, 0, 0) | 0; + k[a2 + 16 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + k[b2 >> 2] = 0; + b2 = k[a2 >> 2] | 0; + if (b2 & 20) + if (!(b2 & 4)) + b2 = -1; + else { + k[a2 >> 2] = b2 | 32; + b2 = -1; } - break; - case 1: - if (dirCos[bigRow] > 0.0) { - orient += ('-'); + else { + b2 = k[c2 >> 2] | 0; + k[a2 + 8 >> 2] = b2; + k[a2 + 4 >> 2] = b2; + b2 = 0; + } + return b2 | 0; + } + function bl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = a2 + 74 | 0; + c2 = i2[b2 >> 0] | 0; + i2[b2 >> 0] = c2 + 255 | c2; + b2 = k[a2 >> 2] | 0; + if (!(b2 & 8)) { + k[a2 + 8 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + b2 = k[a2 + 44 >> 2] | 0; + k[a2 + 28 >> 2] = b2; + k[a2 + 20 >> 2] = b2; + k[a2 + 16 >> 2] = b2 + (k[a2 + 48 >> 2] | 0); + b2 = 0; + } else { + k[a2 >> 2] = b2 | 32; + b2 = -1; + } + return b2 | 0; + } + function cl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = r; + r = r + 16 | 0; + b2 = c2; + if ((k[a2 + 8 >> 2] | 0) == 0 ? (al(a2) | 0) != 0 : 0) + b2 = -1; + else if ((Qb[k[a2 + 32 >> 2] & 63](a2, b2, 1) | 0) == 1) + b2 = l[b2 >> 0] | 0; + else + b2 = -1; + r = c2; + return b2 | 0; + } + function dl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + do + if (a2) { + if ((k[a2 + 76 >> 2] | 0) <= -1) { + b2 = Gl(a2) | 0; + break; + } + c2 = (Tk(a2) | 0) == 0; + b2 = Gl(a2) | 0; + if (!c2) + Uk(a2); } else { - orient += ('+'); + if (!(k[9323] | 0)) + b2 = 0; + else + b2 = dl(k[9323] | 0) | 0; + Na(37060); + a2 = k[9264] | 0; + if (a2) + do { + if ((k[a2 + 76 >> 2] | 0) > -1) + c2 = Tk(a2) | 0; + else + c2 = 0; + if ((k[a2 + 20 >> 2] | 0) >>> 0 > (k[a2 + 28 >> 2] | 0) >>> 0) + b2 = Gl(a2) | 0 | b2; + if (c2) + Uk(a2); + a2 = k[a2 + 56 >> 2] | 0; + } while ((a2 | 0) != 0); + ob(37060); } - if (bigCol === 3) { - if (dirCos[bigCol] > 0.0) { - orient += ('-'); - } else { - orient += ('+'); - } - } else { - if (dirCos[bigCol] > 0.0) { - orient += ('+'); - } else { - orient += ('-'); + while (0); + return b2 | 0; + } + function el(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + if ((k[b2 + 76 >> 2] | 0) >= 0 ? (Tk(b2) | 0) != 0 : 0) { + if ((i2[b2 + 75 >> 0] | 0) != (a2 | 0) ? (d2 = b2 + 20 | 0, e2 = k[d2 >> 2] | 0, e2 >>> 0 < (k[b2 + 16 >> 2] | 0) >>> 0) : 0) { + k[d2 >> 2] = e2 + 1; + i2[e2 >> 0] = a2; + c2 = a2 & 255; + } else + c2 = Vk(b2, a2) | 0; + Uk(b2); + } else + g2 = 3; + do + if ((g2 | 0) == 3) { + if ((i2[b2 + 75 >> 0] | 0) != (a2 | 0) ? (f2 = b2 + 20 | 0, c2 = k[f2 >> 2] | 0, c2 >>> 0 < (k[b2 + 16 >> 2] | 0) >>> 0) : 0) { + k[f2 >> 2] = c2 + 1; + i2[c2 >> 0] = a2; + c2 = a2 & 255; + break; + } + c2 = Vk(b2, a2) | 0; + } + while (0); + return c2 | 0; + } + function fl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = c2 + 16 | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + if (!(bl(c2) | 0)) { + e2 = k[d2 >> 2] | 0; + f2 = 4; + } else + d2 = 0; + else + f2 = 4; + a: + do + if ((f2 | 0) == 4) { + g2 = c2 + 20 | 0; + f2 = k[g2 >> 2] | 0; + if ((e2 - f2 | 0) >>> 0 < b2 >>> 0) { + d2 = Qb[k[c2 + 36 >> 2] & 63](c2, a2, b2) | 0; + break; } + b: + do + if ((i2[c2 + 75 >> 0] | 0) > -1) { + d2 = b2; + while (1) { + if (!d2) { + e2 = f2; + d2 = 0; + break b; + } + e2 = d2 + -1 | 0; + if ((i2[a2 + e2 >> 0] | 0) == 10) + break; + else + d2 = e2; + } + if ((Qb[k[c2 + 36 >> 2] & 63](c2, a2, d2) | 0) >>> 0 < d2 >>> 0) + break a; + b2 = b2 - d2 | 0; + a2 = a2 + d2 | 0; + e2 = k[g2 >> 2] | 0; + } else { + e2 = f2; + d2 = 0; + } + while (0); + vw(e2 | 0, a2 | 0, b2 | 0) | 0; + k[g2 >> 2] = (k[g2 >> 2] | 0) + b2; + d2 = d2 + b2 | 0; + } + while (0); + return d2 | 0; + } + function gl(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = ia(c2, b2) | 0; + if ((k[d2 + 76 >> 2] | 0) > -1) { + f2 = (Tk(d2) | 0) == 0; + a2 = fl(a2, e2, d2) | 0; + if (!f2) + Uk(d2); + } else + a2 = fl(a2, e2, d2) | 0; + if ((a2 | 0) != (e2 | 0)) + c2 = (a2 >>> 0) / (b2 >>> 0) | 0; + return c2 | 0; + } + function hl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + if ((k[a2 + 76 >> 2] | 0) >= 0 ? (Tk(a2) | 0) != 0 : 0) { + b2 = a2 + 4 | 0; + c2 = k[b2 >> 2] | 0; + if (c2 >>> 0 < (k[a2 + 8 >> 2] | 0) >>> 0) { + k[b2 >> 2] = c2 + 1; + b2 = l[c2 >> 0] | 0; + } else + b2 = cl(a2) | 0; + } else + d2 = 3; + do + if ((d2 | 0) == 3) { + b2 = a2 + 4 | 0; + c2 = k[b2 >> 2] | 0; + if (c2 >>> 0 < (k[a2 + 8 >> 2] | 0) >>> 0) { + k[b2 >> 2] = c2 + 1; + b2 = l[c2 >> 0] | 0; + break; + } else { + b2 = cl(a2) | 0; + break; + } } - break; - case 2: - if (dirCos[bigRow] > 0.0) { - orient += ('+'); + while (0); + return b2 | 0; + } + function il(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2; + k[f2 >> 2] = d2; + d2 = ol(a2, b2, c2, f2) | 0; + r = e2; + return d2 | 0; + } + function jl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + d2 = r; + r = r + 16 | 0; + e2 = d2; + k[e2 >> 2] = c2; + c2 = pl(a2, b2, e2) | 0; + r = d2; + return c2 | 0; + } + function kl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + do + if ((a2 | 0) != -1) { + if ((k[b2 + 76 >> 2] | 0) > -1) + e2 = Tk(b2) | 0; + else + e2 = 0; + if (!((k[b2 + 8 >> 2] | 0) == 0 ? (al(b2) | 0) != 0 : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (c2 = b2 + 4 | 0, d2 = k[c2 >> 2] | 0, d2 >>> 0 > ((k[b2 + 44 >> 2] | 0) + -8 | 0) >>> 0) : 0) { + f2 = d2 + -1 | 0; + k[c2 >> 2] = f2; + i2[f2 >> 0] = a2; + k[b2 >> 2] = k[b2 >> 2] & -17; + if (!e2) + break; + Uk(b2); + break; + } + if (e2) { + Uk(b2); + a2 = -1; + } else + a2 = -1; + } else + a2 = -1; + while (0); + return a2 | 0; + } + function ll(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + d2 = h2; + e2 = Pl(240) | 0; + do + if (e2) { + k[d2 >> 2] = k[c2 >> 2]; + d2 = ol(e2, 240, b2, d2) | 0; + if (d2 >>> 0 < 240) { + b2 = Sl(e2, d2 + 1 | 0) | 0; + k[a2 >> 2] = (b2 | 0) != 0 ? b2 : e2; + break; + } + Ql(e2); + if ((d2 | 0) >= 0 ? (g2 = d2 + 1 | 0, f2 = Pl(g2) | 0, k[a2 >> 2] = f2, (f2 | 0) != 0) : 0) + d2 = ol(f2, g2, b2, c2) | 0; + else + d2 = -1; + } else + d2 = -1; + while (0); + r = h2; + return d2 | 0; + } + function ml(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + s2 = r; + r = r + 224 | 0; + n2 = s2 + 80 | 0; + q2 = s2 + 96 | 0; + p2 = s2; + o2 = s2 + 136 | 0; + d2 = q2; + e2 = d2 + 40 | 0; + do { + k[d2 >> 2] = 0; + d2 = d2 + 4 | 0; + } while ((d2 | 0) < (e2 | 0)); + k[n2 >> 2] = k[c2 >> 2]; + if ((Hl(0, b2, n2, p2, q2) | 0) < 0) + c2 = -1; + else { + if ((k[a2 + 76 >> 2] | 0) > -1) + l2 = Tk(a2) | 0; + else + l2 = 0; + c2 = k[a2 >> 2] | 0; + m2 = c2 & 32; + if ((i2[a2 + 74 >> 0] | 0) < 1) + k[a2 >> 2] = c2 & -33; + c2 = a2 + 48 | 0; + if (!(k[c2 >> 2] | 0)) { + e2 = a2 + 44 | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = o2; + g2 = a2 + 28 | 0; + k[g2 >> 2] = o2; + h2 = a2 + 20 | 0; + k[h2 >> 2] = o2; + k[c2 >> 2] = 80; + j2 = a2 + 16 | 0; + k[j2 >> 2] = o2 + 80; + d2 = Hl(a2, b2, n2, p2, q2) | 0; + if (f2) { + Qb[k[a2 + 36 >> 2] & 63](a2, 0, 0) | 0; + d2 = (k[h2 >> 2] | 0) == 0 ? -1 : d2; + k[e2 >> 2] = f2; + k[c2 >> 2] = 0; + k[j2 >> 2] = 0; + k[g2 >> 2] = 0; + k[h2 >> 2] = 0; + } + } else + d2 = Hl(a2, b2, n2, p2, q2) | 0; + c2 = k[a2 >> 2] | 0; + k[a2 >> 2] = c2 | m2; + if (l2) + Uk(a2); + c2 = (c2 & 32 | 0) == 0 ? d2 : -1; + } + r = s2; + return c2 | 0; + } + function nl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, m2 = 0, n2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0; + P2 = r; + r = r + 304 | 0; + G2 = P2 + 16 | 0; + I2 = P2 + 8 | 0; + H2 = P2 + 33 | 0; + J2 = P2; + y2 = P2 + 32 | 0; + if ((k[a2 + 76 >> 2] | 0) > -1) + O2 = Tk(a2) | 0; + else + O2 = 0; + d2 = i2[b2 >> 0] | 0; + a: + do + if (d2 << 24 >> 24) { + K2 = a2 + 4 | 0; + L2 = a2 + 100 | 0; + F2 = a2 + 108 | 0; + z2 = a2 + 8 | 0; + A2 = H2 + 10 | 0; + B2 = H2 + 33 | 0; + C2 = I2 + 4 | 0; + D2 = H2 + 46 | 0; + E2 = H2 + 94 | 0; + f2 = d2; + d2 = 0; + g2 = b2; + s2 = 0; + e2 = 0; + b2 = 0; + b: + while (1) { + c: + do + if (!(kk(f2 & 255) | 0)) { + f2 = (i2[g2 >> 0] | 0) == 37; + d: + do + if (f2) { + n2 = g2 + 1 | 0; + h2 = i2[n2 >> 0] | 0; + e: + do + switch (h2 << 24 >> 24) { + case 37: + break d; + case 42: { + x2 = 0; + h2 = g2 + 2 | 0; + break; + } + default: { + h2 = (h2 & 255) + -48 | 0; + if (h2 >>> 0 < 10 ? (i2[g2 + 2 >> 0] | 0) == 36 : 0) { + k[G2 >> 2] = k[c2 >> 2]; + while (1) { + x2 = (k[G2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + f2 = k[x2 >> 2] | 0; + k[G2 >> 2] = x2 + 4; + if (h2 >>> 0 > 1) + h2 = h2 + -1 | 0; + else + break; + } + x2 = f2; + h2 = g2 + 3 | 0; + break e; + } + h2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + x2 = k[h2 >> 2] | 0; + k[c2 >> 2] = h2 + 4; + h2 = n2; + } + } + while (0); + f2 = i2[h2 >> 0] | 0; + g2 = f2 & 255; + if ((g2 + -48 | 0) >>> 0 < 10) { + f2 = 0; + while (1) { + n2 = (f2 * 10 | 0) + -48 + g2 | 0; + h2 = h2 + 1 | 0; + f2 = i2[h2 >> 0] | 0; + g2 = f2 & 255; + if ((g2 + -48 | 0) >>> 0 >= 10) + break; + else + f2 = n2; + } + } else + n2 = 0; + if (f2 << 24 >> 24 == 109) { + h2 = h2 + 1 | 0; + q2 = i2[h2 >> 0] | 0; + f2 = (x2 | 0) != 0 & 1; + e2 = 0; + b2 = 0; + } else { + q2 = f2; + f2 = 0; + } + g2 = h2 + 1 | 0; + switch (q2 & 255 | 0) { + case 104: { + w2 = (i2[g2 >> 0] | 0) == 104; + g2 = w2 ? h2 + 2 | 0 : g2; + h2 = w2 ? -2 : -1; + break; + } + case 108: { + w2 = (i2[g2 >> 0] | 0) == 108; + g2 = w2 ? h2 + 2 | 0 : g2; + h2 = w2 ? 3 : 1; + break; + } + case 106: { + h2 = 3; + break; + } + case 116: + case 122: { + h2 = 1; + break; + } + case 76: { + h2 = 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: { + g2 = h2; + h2 = 0; + break; + } + default: { + N2 = 152; + break b; + } + } + q2 = l[g2 >> 0] | 0; + t2 = (q2 & 47 | 0) == 3; + q2 = t2 ? q2 | 32 : q2; + t2 = t2 ? 1 : h2; + switch (q2 | 0) { + case 99: { + w2 = s2; + v2 = (n2 | 0) < 1 ? 1 : n2; + break; + } + case 91: { + w2 = s2; + v2 = n2; + break; + } + case 110: { + if (!x2) { + h2 = s2; + break c; + } + switch (t2 | 0) { + case -2: { + i2[x2 >> 0] = s2; + h2 = s2; + break c; + } + case -1: { + j[x2 >> 1] = s2; + h2 = s2; + break c; + } + case 0: { + k[x2 >> 2] = s2; + h2 = s2; + break c; + } + case 1: { + k[x2 >> 2] = s2; + h2 = s2; + break c; + } + case 3: { + h2 = x2; + k[h2 >> 2] = s2; + k[h2 + 4 >> 2] = ((s2 | 0) < 0) << 31 >> 31; + h2 = s2; + break c; + } + default: { + h2 = s2; + break c; + } + } + } + default: { + qk(a2, 0); + do { + h2 = k[K2 >> 2] | 0; + if (h2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = h2 + 1; + h2 = l[h2 >> 0] | 0; + } else + h2 = rk(a2) | 0; + } while ((kk(h2) | 0) != 0); + h2 = k[K2 >> 2] | 0; + if (k[L2 >> 2] | 0) { + h2 = h2 + -1 | 0; + k[K2 >> 2] = h2; + } + w2 = (k[F2 >> 2] | 0) + s2 + h2 - (k[z2 >> 2] | 0) | 0; + v2 = n2; + } + } + qk(a2, v2); + h2 = k[K2 >> 2] | 0; + n2 = k[L2 >> 2] | 0; + if (h2 >>> 0 < n2 >>> 0) + k[K2 >> 2] = h2 + 1; + else { + if ((rk(a2) | 0) < 0) { + N2 = 152; + break b; + } + n2 = k[L2 >> 2] | 0; + } + if (n2) + k[K2 >> 2] = (k[K2 >> 2] | 0) + -1; + f: + do + switch (q2 | 0) { + case 91: + case 99: + case 115: { + u2 = (q2 | 0) == 99; + g: + do + if ((q2 & 239 | 0) == 99) { + sw(H2 | 0, -1, 257) | 0; + i2[H2 >> 0] = 0; + if ((q2 | 0) == 115) { + i2[B2 >> 0] = 0; + i2[A2 >> 0] = 0; + i2[A2 + 1 >> 0] = 0; + i2[A2 + 2 >> 0] = 0; + i2[A2 + 3 >> 0] = 0; + i2[A2 + 4 >> 0] = 0; + } + } else { + Q2 = g2 + 1 | 0; + s2 = (i2[Q2 >> 0] | 0) == 94; + h2 = s2 & 1; + q2 = s2 ? Q2 : g2; + g2 = s2 ? g2 + 2 | 0 : Q2; + sw(H2 | 0, s2 & 1 | 0, 257) | 0; + i2[H2 >> 0] = 0; + switch (i2[g2 >> 0] | 0) { + case 45: { + s2 = (h2 ^ 1) & 255; + i2[D2 >> 0] = s2; + g2 = q2 + 2 | 0; + break; + } + case 93: { + s2 = (h2 ^ 1) & 255; + i2[E2 >> 0] = s2; + g2 = q2 + 2 | 0; + break; + } + default: + s2 = (h2 ^ 1) & 255; + } + while (1) { + h2 = i2[g2 >> 0] | 0; + h: + do + switch (h2 << 24 >> 24) { + case 0: { + N2 = 152; + break b; + } + case 93: + break g; + case 45: { + q2 = g2 + 1 | 0; + h2 = i2[q2 >> 0] | 0; + switch (h2 << 24 >> 24) { + case 93: + case 0: { + h2 = 45; + break h; + } + default: { + } + } + g2 = i2[g2 + -1 >> 0] | 0; + if ((g2 & 255) < (h2 & 255)) { + g2 = g2 & 255; + do { + g2 = g2 + 1 | 0; + i2[H2 + g2 >> 0] = s2; + h2 = i2[q2 >> 0] | 0; + } while ((g2 | 0) < (h2 & 255 | 0)); + g2 = q2; + } else + g2 = q2; + break; + } + default: { + } + } + while (0); + i2[H2 + ((h2 & 255) + 1) >> 0] = s2; + g2 = g2 + 1 | 0; + } + } + while (0); + q2 = u2 ? v2 + 1 | 0 : 31; + s2 = (t2 | 0) == 1; + t2 = (f2 | 0) != 0; + i: + do + if (s2) { + if (t2) { + b2 = Pl(q2 << 2) | 0; + if (!b2) { + e2 = 0; + N2 = 152; + break b; + } + } else + b2 = x2; + k[I2 >> 2] = 0; + k[C2 >> 2] = 0; + e2 = 0; + j: + while (1) { + n2 = (b2 | 0) == 0; + do { + k: + while (1) { + h2 = k[K2 >> 2] | 0; + if (h2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = h2 + 1; + h2 = l[h2 >> 0] | 0; + } else + h2 = rk(a2) | 0; + if (!(i2[H2 + (h2 + 1) >> 0] | 0)) + break j; + i2[y2 >> 0] = h2; + switch (Kk(J2, y2, 1, I2) | 0) { + case -1: { + e2 = 0; + N2 = 152; + break b; + } + case -2: + break; + default: + break k; + } + } + if (!n2) { + k[b2 + (e2 << 2) >> 2] = k[J2 >> 2]; + e2 = e2 + 1 | 0; + } + } while (!(t2 & (e2 | 0) == (q2 | 0))); + e2 = q2 << 1 | 1; + h2 = Sl(b2, e2 << 2) | 0; + if (!h2) { + e2 = 0; + N2 = 152; + break b; + } + Q2 = q2; + q2 = e2; + b2 = h2; + e2 = Q2; + } + if (!(Lk(I2) | 0)) { + e2 = 0; + N2 = 152; + break b; + } else { + n2 = e2; + e2 = 0; + } + } else { + if (t2) { + e2 = Pl(q2) | 0; + if (!e2) { + e2 = 0; + b2 = 0; + N2 = 152; + break b; + } else + h2 = 0; + while (1) { + do { + b2 = k[K2 >> 2] | 0; + if (b2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if (!(i2[H2 + (b2 + 1) >> 0] | 0)) { + n2 = h2; + b2 = 0; + break i; + } + i2[e2 + h2 >> 0] = b2; + h2 = h2 + 1 | 0; + } while ((h2 | 0) != (q2 | 0)); + b2 = q2 << 1 | 1; + h2 = Sl(e2, b2) | 0; + if (!h2) { + b2 = 0; + N2 = 152; + break b; + } else { + Q2 = q2; + q2 = b2; + e2 = h2; + h2 = Q2; + } + } + } + if (!x2) { + e2 = n2; + while (1) { + b2 = k[K2 >> 2] | 0; + if (b2 >>> 0 < e2 >>> 0) { + k[K2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if (!(i2[H2 + (b2 + 1) >> 0] | 0)) { + n2 = 0; + e2 = 0; + b2 = 0; + break i; + } + e2 = k[L2 >> 2] | 0; + } + } else { + e2 = 0; + while (1) { + b2 = k[K2 >> 2] | 0; + if (b2 >>> 0 < n2 >>> 0) { + k[K2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if (!(i2[H2 + (b2 + 1) >> 0] | 0)) { + n2 = e2; + e2 = x2; + b2 = 0; + break i; + } + i2[x2 + e2 >> 0] = b2; + n2 = k[L2 >> 2] | 0; + e2 = e2 + 1 | 0; + } + } + } + while (0); + h2 = k[K2 >> 2] | 0; + if (k[L2 >> 2] | 0) { + h2 = h2 + -1 | 0; + k[K2 >> 2] = h2; + } + h2 = h2 - (k[z2 >> 2] | 0) + (k[F2 >> 2] | 0) | 0; + if (!h2) + break b; + if (!((h2 | 0) == (v2 | 0) | u2 ^ 1)) + break b; + do + if (t2) + if (s2) { + k[x2 >> 2] = b2; + break; + } else { + k[x2 >> 2] = e2; + break; + } + while (0); + if (!u2) { + if (b2) + k[b2 + (n2 << 2) >> 2] = 0; + if (!e2) { + e2 = 0; + break f; + } + i2[e2 + n2 >> 0] = 0; + } + break; + } + case 120: + case 88: + case 112: { + h2 = 16; + N2 = 134; + break; + } + case 111: { + h2 = 8; + N2 = 134; + break; + } + case 117: + case 100: { + h2 = 10; + N2 = 134; + break; + } + case 105: { + h2 = 0; + N2 = 134; + break; + } + case 71: + case 103: + case 70: + case 102: + case 69: + case 101: + case 65: + case 97: { + m2 = +ok(a2, t2, 0); + if ((k[F2 >> 2] | 0) == ((k[z2 >> 2] | 0) - (k[K2 >> 2] | 0) | 0)) + break b; + if (x2) + switch (t2 | 0) { + case 0: { + o[x2 >> 2] = m2; + break f; + } + case 1: { + p[x2 >> 3] = m2; + break f; + } + case 2: { + p[x2 >> 3] = m2; + break f; + } + default: + break f; + } + break; + } + default: { + } + } + while (0); + l: + do + if ((N2 | 0) == 134) { + N2 = 0; + h2 = pk(a2, h2, 0, -1, -1) | 0; + if ((k[F2 >> 2] | 0) == ((k[z2 >> 2] | 0) - (k[K2 >> 2] | 0) | 0)) + break b; + if ((x2 | 0) != 0 & (q2 | 0) == 112) { + k[x2 >> 2] = h2; + break; + } + if (x2) + switch (t2 | 0) { + case -2: { + i2[x2 >> 0] = h2; + break l; + } + case -1: { + j[x2 >> 1] = h2; + break l; + } + case 0: { + k[x2 >> 2] = h2; + break l; + } + case 1: { + k[x2 >> 2] = h2; + break l; + } + case 3: { + Q2 = x2; + k[Q2 >> 2] = h2; + k[Q2 + 4 >> 2] = M; + break l; + } + default: + break l; + } + } + while (0); + d2 = ((x2 | 0) != 0 & 1) + d2 | 0; + h2 = (k[F2 >> 2] | 0) + w2 + (k[K2 >> 2] | 0) - (k[z2 >> 2] | 0) | 0; + break c; + } + while (0); + g2 = g2 + (f2 & 1) | 0; + qk(a2, 0); + f2 = k[K2 >> 2] | 0; + if (f2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + if ((f2 | 0) != (l[g2 >> 0] | 0)) { + N2 = 21; + break b; + } + h2 = s2 + 1 | 0; + } else { + while (1) { + f2 = g2 + 1 | 0; + if (!(kk(l[f2 >> 0] | 0) | 0)) + break; + else + g2 = f2; + } + qk(a2, 0); + do { + f2 = k[K2 >> 2] | 0; + if (f2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + } while ((kk(f2) | 0) != 0); + f2 = k[K2 >> 2] | 0; + if (k[L2 >> 2] | 0) { + f2 = f2 + -1 | 0; + k[K2 >> 2] = f2; + } + h2 = (k[F2 >> 2] | 0) + s2 + f2 - (k[z2 >> 2] | 0) | 0; + } + while (0); + g2 = g2 + 1 | 0; + f2 = i2[g2 >> 0] | 0; + if (!(f2 << 24 >> 24)) + break a; + else + s2 = h2; + } + if ((N2 | 0) == 21) { + if (k[L2 >> 2] | 0) + k[K2 >> 2] = (k[K2 >> 2] | 0) + -1; + if ((d2 | 0) != 0 | (f2 | 0) > -1) + break; + else { + d2 = 0; + N2 = 153; + } + } else if ((N2 | 0) == 152) { + if (!d2) { + d2 = f2; + N2 = 153; + } + } + if ((N2 | 0) == 153) { + f2 = d2; + d2 = -1; + } + if (f2) { + Ql(e2); + Ql(b2); + } + } else + d2 = 0; + while (0); + if (O2) + Uk(a2); + r = P2; + return d2 | 0; + } + function ol(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 128 | 0; + e2 = m2 + 112 | 0; + l2 = m2; + f2 = l2; + g2 = 37352; + h2 = f2 + 112 | 0; + do { + k[f2 >> 2] = k[g2 >> 2]; + f2 = f2 + 4 | 0; + g2 = g2 + 4 | 0; + } while ((f2 | 0) < (h2 | 0)); + if ((b2 + -1 | 0) >>> 0 > 2147483646) + if (!b2) { + b2 = 1; + j2 = 4; } else { - orient += ('-'); + b2 = mk() | 0; + k[b2 >> 2] = 75; + b2 = -1; } - //Has to be X or Y so opposite senses - if (dirCos[bigCol] > 0.0) { - orient += ('-'); - } else { - orient += ('+'); + else { + e2 = a2; + j2 = 4; + } + if ((j2 | 0) == 4) { + j2 = -2 - e2 | 0; + j2 = b2 >>> 0 > j2 >>> 0 ? j2 : b2; + k[l2 + 48 >> 2] = j2; + a2 = l2 + 20 | 0; + k[a2 >> 2] = e2; + k[l2 + 44 >> 2] = e2; + b2 = e2 + j2 | 0; + e2 = l2 + 16 | 0; + k[e2 >> 2] = b2; + k[l2 + 28 >> 2] = b2; + b2 = ml(l2, c2, d2) | 0; + if (j2) { + c2 = k[a2 >> 2] | 0; + i2[c2 + (((c2 | 0) == (k[e2 >> 2] | 0)) << 31 >> 31) >> 0] = 0; } - break; - default: - break; - } - - if (rowSpacing === 0.0) { - orient += ('+'); - orientation = orient; - } else { - if (swapZ) { - switch (orient.charAt(2)) { - case 'X': - if (rowSpacing > 0.0) { - orient += ('-'); - } else { - orient += ('+'); - } + } + r = m2; + return b2 | 0; + } + function pl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = r; + r = r + 112 | 0; + d2 = f2; + e2 = d2; + g2 = e2 + 112 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[d2 + 32 >> 2] = 29; + k[d2 + 44 >> 2] = a2; + k[d2 + 76 >> 2] = -1; + k[d2 + 84 >> 2] = a2; + g2 = nl(d2, b2, c2) | 0; + r = f2; + return g2 | 0; + } + function ql(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return + +Jl(a2, b2, 2); + } + function rl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + a2 = Kl(a2, b2, c2, -1, -1) | 0; + return a2 | 0; + } + function sl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + a2 = Kl(a2, b2, c2, 0, -2147483648) | 0; + return a2 | 0; + } + function tl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = b2 & 255; + d2 = (c2 | 0) != 0; + a: + do + if (d2 & (a2 & 3 | 0) != 0) { + e2 = b2 & 255; + while (1) { + if ((i2[a2 >> 0] | 0) == e2 << 24 >> 24) { + g2 = 6; + break a; + } + a2 = a2 + 1 | 0; + c2 = c2 + -1 | 0; + d2 = (c2 | 0) != 0; + if (!(d2 & (a2 & 3 | 0) != 0)) { + g2 = 5; break; - case 'Y': - case 'Z': - if (rowSpacing > 0.0) { - orient += ('+'); - } else { - orient += ('-'); + } + } + } else + g2 = 5; + while (0); + if ((g2 | 0) == 5) + if (d2) + g2 = 6; + else + c2 = 0; + b: + do + if ((g2 | 0) == 6) { + e2 = b2 & 255; + if ((i2[a2 >> 0] | 0) != e2 << 24 >> 24) { + d2 = ia(f2, 16843009) | 0; + c: + do + if (c2 >>> 0 > 3) + while (1) { + f2 = k[a2 >> 2] ^ d2; + if ((f2 & -2139062144 ^ -2139062144) & f2 + -16843009) + break; + a2 = a2 + 4 | 0; + c2 = c2 + -4 | 0; + if (c2 >>> 0 <= 3) { + g2 = 11; + break c; + } + } + else + g2 = 11; + while (0); + if ((g2 | 0) == 11) { + if (!c2) { + c2 = 0; + break; } - break; - default: - break; - } - } else { - switch (orient.charAt(2)) { - case 'X': - if (rowSpacing > 0.0) { - orient += ('+'); - } else { - orient += ('-'); + } + while (1) { + if ((i2[a2 >> 0] | 0) == e2 << 24 >> 24) + break b; + a2 = a2 + 1 | 0; + c2 = c2 + -1 | 0; + if (!c2) { + c2 = 0; + break; } + } + } + } + while (0); + return ((c2 | 0) != 0 ? a2 : 0) | 0; + } + function ul(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + c2 = b2; + a: + do + if (!((c2 ^ a2) & 3)) { + if (c2 & 3) + do { + c2 = i2[b2 >> 0] | 0; + i2[a2 >> 0] = c2; + if (!(c2 << 24 >> 24)) + break a; + b2 = b2 + 1 | 0; + a2 = a2 + 1 | 0; + } while ((b2 & 3 | 0) != 0); + c2 = k[b2 >> 2] | 0; + if (!((c2 & -2139062144 ^ -2139062144) & c2 + -16843009)) { + d2 = a2; + while (1) { + b2 = b2 + 4 | 0; + a2 = d2 + 4 | 0; + k[d2 >> 2] = c2; + c2 = k[b2 >> 2] | 0; + if ((c2 & -2139062144 ^ -2139062144) & c2 + -16843009) + break; + else + d2 = a2; + } + } + d2 = 8; + } else + d2 = 8; + while (0); + if ((d2 | 0) == 8) { + d2 = i2[b2 >> 0] | 0; + i2[a2 >> 0] = d2; + if (d2 << 24 >> 24) + do { + b2 = b2 + 1 | 0; + a2 = a2 + 1 | 0; + d2 = i2[b2 >> 0] | 0; + i2[a2 >> 0] = d2; + } while (d2 << 24 >> 24 != 0); + } + return a2 | 0; + } + function vl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + d2 = i2[a2 >> 0] | 0; + c2 = i2[b2 >> 0] | 0; + if (d2 << 24 >> 24 == 0 ? 1 : d2 << 24 >> 24 != c2 << 24 >> 24) + b2 = d2; + else { + do { + a2 = a2 + 1 | 0; + b2 = b2 + 1 | 0; + d2 = i2[a2 >> 0] | 0; + c2 = i2[b2 >> 0] | 0; + } while (!(d2 << 24 >> 24 == 0 ? 1 : d2 << 24 >> 24 != c2 << 24 >> 24)); + b2 = d2; + } + return (b2 & 255) - (c2 & 255) | 0; + } + function wl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + ul(a2, b2) | 0; + return a2 | 0; + } + function xl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + d2 = a2; + a: + do + if (!(d2 & 3)) + c2 = 4; + else { + b2 = a2; + a2 = d2; + while (1) { + if (!(i2[b2 >> 0] | 0)) + break a; + b2 = b2 + 1 | 0; + a2 = b2; + if (!(a2 & 3)) { + a2 = b2; + c2 = 4; break; - case 'Y': - case 'Z': - if (rowSpacing > 0.0) { - orient += ('-'); - } else { - orient += ('+'); + } + } + } + while (0); + if ((c2 | 0) == 4) { + while (1) { + b2 = k[a2 >> 2] | 0; + if (!((b2 & -2139062144 ^ -2139062144) & b2 + -16843009)) + a2 = a2 + 4 | 0; + else + break; + } + if ((b2 & 255) << 24 >> 24) + do + a2 = a2 + 1 | 0; + while ((i2[a2 >> 0] | 0) != 0); + } + return a2 - d2 | 0; + } + function yl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (!c2) + b2 = 0; + else { + d2 = i2[a2 >> 0] | 0; + a: + do + if (!(d2 << 24 >> 24)) + d2 = 0; + else + while (1) { + c2 = c2 + -1 | 0; + e2 = i2[b2 >> 0] | 0; + if (!(d2 << 24 >> 24 == e2 << 24 >> 24 & ((c2 | 0) != 0 & e2 << 24 >> 24 != 0))) + break a; + a2 = a2 + 1 | 0; + b2 = b2 + 1 | 0; + d2 = i2[a2 >> 0] | 0; + if (!(d2 << 24 >> 24)) { + d2 = 0; + break; } - break; - default: - break; + } + while (0); + b2 = (d2 & 255) - (l[b2 >> 0] | 0) | 0; + } + return b2 | 0; + } + function zl(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = a2; + while (1) + if (!(k[b2 >> 2] | 0)) + break; + else + b2 = b2 + 4 | 0; + return b2 - a2 >> 2 | 0; + } + function Al(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if (c2) { + d2 = a2; + while (1) { + c2 = c2 + -1 | 0; + k[d2 >> 2] = k[b2 >> 2]; + if (!c2) + break; + else { + b2 = b2 + 4 | 0; + d2 = d2 + 4 | 0; + } } + } + return a2 | 0; } - - orientation = orient; - } - - return orientation; -}; - - -/** - * Returns true if this image is "mosaic". - * @returns {boolean} - */ -daikon.Image.prototype.isMosaic = function () { - var imageType, labeledAsMosaic = false, canReadAsMosaic, ctr, matSize; - - imageType = this.getImageType(); - - if (imageType !== null) { - for (ctr = 0; ctr < imageType.length; ctr += 1) { - if (imageType[ctr].toUpperCase().indexOf("MOSAIC") !== -1) { - labeledAsMosaic = true; + function Bl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + d2 = (c2 | 0) == 0; + if (a2 - b2 >> 2 >>> 0 < c2 >>> 0) { + if (!d2) + do { + c2 = c2 + -1 | 0; + k[a2 + (c2 << 2) >> 2] = k[b2 + (c2 << 2) >> 2]; + } while ((c2 | 0) != 0); + } else if (!d2) { + d2 = b2; + b2 = a2; + while (1) { + c2 = c2 + -1 | 0; + k[b2 >> 2] = k[d2 >> 2]; + if (!c2) + break; + else { + d2 = d2 + 4 | 0; + b2 = b2 + 4 | 0; + } + } + } + return a2 | 0; + } + function Cl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if (c2) { + d2 = a2; + while (1) { + c2 = c2 + -1 | 0; + k[d2 >> 2] = b2; + if (!c2) break; + else + d2 = d2 + 4 | 0; } + } + return a2 | 0; } - } - - matSize = this.getAcquisitionMatrix(); - canReadAsMosaic = (matSize[0] > 0) && ((matSize[0] < this.getRows()) || (matSize[1] < this.getCols())); - return labeledAsMosaic && canReadAsMosaic; -}; - - -/** - * Returns true if this image uses palette colors. - * @returns {boolean} - */ -daikon.Image.prototype.isPalette = function () { - var value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); - - if (value !== null) { - if (value.toLowerCase().indexOf("palette") !== -1) { - return true; + function Dl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + g2 = a2 + 4 | 0; + c2 = k[g2 >> 2] | 0; + h2 = a2 + 100 | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + switch (c2 | 0) { + case 43: + case 45: { + d2 = (c2 | 0) == 45 & 1; + c2 = k[g2 >> 2] | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + if ((b2 | 0) != 0 & (c2 + -48 | 0) >>> 0 > 9 ? (k[h2 >> 2] | 0) != 0 : 0) { + k[g2 >> 2] = (k[g2 >> 2] | 0) + -1; + f2 = d2; + } else + f2 = d2; + break; + } + default: + f2 = 0; + } + if ((c2 + -48 | 0) >>> 0 > 9) + if (!(k[h2 >> 2] | 0)) { + d2 = -2147483648; + c2 = 0; + } else { + k[g2 >> 2] = (k[g2 >> 2] | 0) + -1; + d2 = -2147483648; + c2 = 0; + } + else { + d2 = 0; + do { + d2 = c2 + -48 + (d2 * 10 | 0) | 0; + c2 = k[g2 >> 2] | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + } while ((c2 + -48 | 0) >>> 0 < 10 & (d2 | 0) < 214748364); + b2 = ((d2 | 0) < 0) << 31 >> 31; + if ((c2 + -48 | 0) >>> 0 < 10) { + do { + b2 = Dw(d2 | 0, b2 | 0, 10, 0) | 0; + d2 = M; + c2 = tw(c2 | 0, ((c2 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0; + d2 = tw(c2 | 0, M | 0, b2 | 0, d2 | 0) | 0; + b2 = M; + c2 = k[g2 >> 2] | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + } while ((c2 + -48 | 0) >>> 0 < 10 & ((b2 | 0) < 21474836 | (b2 | 0) == 21474836 & d2 >>> 0 < 2061584302)); + e2 = d2; + } else + e2 = d2; + if ((c2 + -48 | 0) >>> 0 < 10) + do { + c2 = k[g2 >> 2] | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + } while ((c2 + -48 | 0) >>> 0 < 10); + if (k[h2 >> 2] | 0) + k[g2 >> 2] = (k[g2 >> 2] | 0) + -1; + a2 = (f2 | 0) != 0; + c2 = rw(0, 0, e2 | 0, b2 | 0) | 0; + d2 = a2 ? M : b2; + c2 = a2 ? c2 : e2; + } + M = d2; + return c2 | 0; } - } - - return false; -}; - - - -daikon.Image.prototype.getMosaicCols = function() { - return this.getCols() / this.getAcquisitionMatrix()[1]; -}; - - - -daikon.Image.prototype.getMosaicRows = function() { - return this.getRows() / this.getAcquisitionMatrix()[0]; -}; - - - -daikon.Image.prototype.isElscint = function() { - var tag = this.getTag(daikon.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon.Tag.TAG_DATA_SCALE_ELSCINT[1]); - return (tag !== undefined); -}; - - -/** - * Returns true if this image stores compressed data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressed = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { - return true; - } else if (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { - return true; + function El(a2) { + a2 = a2 | 0; + if (!(k[a2 + 68 >> 2] | 0)) + Uk(a2); + return; } - } - - return false; -}; - - -/** - * Returns true if this image stores JPEG data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEG = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { - return true; + function Fl(a2) { + a2 = a2 | 0; + if (!(k[a2 + 68 >> 2] | 0)) + Uk(a2); + return; } - } - - return false; -}; - - -/** - * Returns true of this image stores lossless JPEG data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEGLossless = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if ((transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS) !== -1) || - (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1) !== -1)) { - return true; + function Gl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + b2 = a2 + 20 | 0; + f2 = a2 + 28 | 0; + if ((k[b2 >> 2] | 0) >>> 0 > (k[f2 >> 2] | 0) >>> 0 ? (Qb[k[a2 + 36 >> 2] & 63](a2, 0, 0) | 0, (k[b2 >> 2] | 0) == 0) : 0) + b2 = -1; + else { + g2 = a2 + 4 | 0; + c2 = k[g2 >> 2] | 0; + d2 = a2 + 8 | 0; + e2 = k[d2 >> 2] | 0; + if (c2 >>> 0 < e2 >>> 0) + Qb[k[a2 + 40 >> 2] & 63](a2, c2 - e2 | 0, 1) | 0; + k[a2 + 16 >> 2] = 0; + k[f2 >> 2] = 0; + k[b2 >> 2] = 0; + k[d2 >> 2] = 0; + k[g2 >> 2] = 0; + b2 = 0; + } + return b2 | 0; } - } - - return false; -}; - - -/** - * Returns true if this image stores baseline JPEG data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEGBaseline = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if ((transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT) !== -1) || - (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT) !== -1)) { - return true; + var Ib = [cx, _q, cr, Yr, as, fs, hs, Hu, Su, cx, cx, cx, cx, cx, cx, cx]; + var Jb = [dx, si, gi, Wh, Kh, yh, mh, ah, Lg, Wj, Vj, Sj, dx, dx, dx, dx]; + var Kb = [ex, ls, rs, ex]; + var Lb = [fx, oi, pi, ci, di, Sh, Th, Gh, Hh, uh, vh, ih, jh, Yg, Zg, Hg, Ig, ug, vg, ig, jg, Yf, Zf, Mf, Nf, Af, Bf, Ie, Je, ve, we, Dc, Ec, Zd, be, _d, mo, oo, no, po, ud, vd, _i, wd, nd, od, Sc, Tc, _c, $c, fd, gd, xd, yd, Ed, Fd, Ld, Md, Sd, Td, te, ue, Re, Se, Ye, Ze, df, ef, lf, mf, Wg, Xg, Nm, Ai, Ki, Li, $i, aj, pj, qj, wj, xj, Bj, Cj, Ej, Hj, Fj, Gj, Ij, Jj, Mn, bm, hm, xn, mm, sm, Lm, Mm, yn, Nn, $n, bo, ao, co, go, io, ho, jo, uo, wo, vo, xo, Eo, Fo, pn, Go, Ho, Io, Ko, Us, Oo, Po, To, Uo, gp, hp, Ap, Bp, Pp, Qp, aq, bq, zq, Aq, Xq, Zq, ar, br, er, fr, pr, qr, Ar, Br, Lr, Mr, Wr, Xr, ds, es, js, ks, ps, qs, vs, ws, As, Bs, Is, Js, kt, lt, Gu, Dt, du, eu, fu, gu, Jo, Ts, Ws, ut, Lt, Tt, $t, au, bj, Si, jj, Cc, zn, fo, ie, Og, ek, El, Fl, Wl, wk, Zr, $r, Vs, Qv, Xv, Yv, Zv, _v, $v, aw, Sm, en, Ql, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx]; + var Mb = [gx, ri, fi, Vh, Jh, xh, lh, $g, Kg, wg, kg, _f, Of, Cf, Ke, xe, Fc, An, Mi, Pi, cm, gm, nm, rm, Pn, ir, jr, kr, lr, nr, or, tr, ur, vr, wr, yr, zr, Er, Fr, Gr, Hr, Jr, Kr, Pr, Qr, Rr, Sr, Ur, Vr, zs, Es, lu, nu, pu, mu, ou, qu, uc, cj, Qi, Ri, Ti, un, Mc, Oc, qo, on, _m, he, Be, tf, Gf, Sf, cg, og, Ag, Ng, ch, oh, Ah, Mh, Yh, ii, ui, Ii, hj, Cm, Am, sn, yo, Bm, Ym, jn, hn, kv, lv, mv, nv, ov, pv, Ct, qv, rv, sv, tv, uv, vv, wv, xv, yv, zv, Av, Bv, Cv, Dv, Ev, Fv, Gv, Hv, Iv, Jv, Kv, Lv, Mv, Ov, gw, gx, gx]; + var Nb = [hx, Vo, Wo, Xo, Yo, Zo, _o, $o, ap, bp, cp, dp, ip, jp, kp, lp, mp, np, op, pp, qp, rp, sp, Hp, Jp, Up, Wp, dq, eq, fq, hq, jq, Cq, Dq, Eq, Gq, Iq, os, us, md, cv, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx]; + var Ob = [ix, En, Fn, rd, In, Bi, rj, yj, Dj, Wk, dm, Un, Wn, Xn, Tn, im, jm, om, Hn, tm, um, Ao, cq, su, uu, wu, Cu, Eu, yu, Au, Bq, tu, vu, xu, Du, Fu, zu, Bu, gr, hr, mr, rr, sr, xr, Cr, Dr, Ir, Nr, Or, Tr, Ht, It, Kt, hu, ju, iu, ku, yt, zt, Bt, Pt, Qt, St, Xt, Yt, _t, Ei, lj, tn, Vi, eo, ko, jx, kx, lx, Ak, zl, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix]; + var Pb = [mx, _r, gs, mx]; + var Qb = [nx, Bn, Gn, Kn, Em, Fm, Kj, Ll, Zk, Yk, Xk, _k, Qn, Vn, em, Zn, pm, No, So, xs, Cs, nt, pt, st, Xs, ct, ft, it, Nc, Il, $m, zk, hv, jv, Pk, Ok, Jk, ll, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx]; + var Rb = [ox, ns, ts, ox]; + var Sb = [px, pd, Zj, Yj, Xj, Rn, Cn, ys, Ds, px, px, px, px, px, px, px]; + var Tb = [qx, Gp, Mp, Tp, Yp, qx, qx, qx]; + var Ub = [rx, bs, is, ms, ss, rx, rx, rx]; + var Vb = [sx, qi, ei, Uh, Ih, wh, kh, _g, Jg, yg, mg, ag, Qf, Ef, Me, ze, Hc, sd, td, Yn, fm, km, _n, Jn, qm, vm, Ln, mt, ot, qt, at, dt, gt, dj, yc, Ac, so, Ss, to, yk, xk, Um, fn, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx]; + var Wb = [tx, Lo, Qo, Cp, Dp, Ip, Op, Rp, Sp, Vp, _p, tt, Gt, Jt, jt, xt, At, Ot, Rt, Wt, Zt, Qk, Mk, tx, tx, tx, tx, tx, tx, tx, tx, tx]; + var Xb = [ux, jw, iw, hw]; + var Yb = [vx, vc, kj, fp, Ls, Ms, Ns, hk, jk, ik, vx, vx, vx, vx, vx, vx]; + var Zb = [wx, xg, lg, $f, Pf, Df, Le, ye, Gc, rt, Zs, _s, $s, ht, Di, Ji, Ru, bv, Nk, uk, Kk, pw, ow, nw, mw, lw, kw, wx, wx, wx, wx, wx]; + var _b = [xx, Dm, Ci, Bo, ej, Qm, yx, Km, Wm, Ui, Hm, Do, fv, gv, iv, cn]; + var $b = [zx, Ax, bk, Bx, ck, Cx, ak, zx]; + var ac = [Dx, lq, Kq, Et, Ft, vt, wt, Mt, Nt, Ut, Vt, Dx, Dx, Dx, Dx, Dx]; + var bc = [Ex, Kp, Np, Xp, Zp, Ex, Ex, Ex]; + var cc = [Fx, ce, de, $d, ae, qd, Uc, Vc, ad, bd, hd, id, zd, Ad, Gd, Hd, Nd, Od, Ud, Vd, Te, Ue, _e, $e, ff, gf, nf, of, Mj, Nj, Pj, Sn, Dn, Mo, Ro, nc, Jm, Ic, Jc, Kc, Lc, Pc, Qc, Rc, Ne, Oe, Pe, Qe, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx]; + return { _jpegls_encode: gj, ___cxa_can_catch: _j, _free: Ql, _jpegls_decode: fj, ___cxa_is_pointer_type: $j, _i64Add: tw, _memmove: xw, _i64Subtract: rw, _memset: sw, _malloc: Pl, _memcpy: vw, _bitshift64Lshr: uw, _bitshift64Shl: ww, __GLOBAL__I_000101: Xl, __GLOBAL__sub_I_jpegls_cpp: Bc, __GLOBAL__sub_I_iostream_cpp: Yl, runPostSets: qw, _emscripten_replace_memory: Hb, stackAlloc: dc, stackSave: ec, stackRestore: fc, establishStackSpace: gc, setThrew: hc, setTempRet0: kc, getTempRet0: lc, dynCall_iiiiiiii: Hw, dynCall_viiiii: Iw, dynCall_iiiiiid: Jw, dynCall_vi: Kw, dynCall_vii: Lw, dynCall_iiiiiii: Mw, dynCall_ii: Nw, dynCall_iiiiiiiiiiii: Ow, dynCall_iiii: Pw, dynCall_viiiiiiiiiiiiiii: Qw, dynCall_viiiiii: Rw, dynCall_viiiiiii: Sw, dynCall_viiiiiiiiii: Tw, dynCall_iii: Uw, dynCall_iiiiii: Vw, dynCall_diii: Ww, dynCall_i: Xw, dynCall_iiiii: Yw, dynCall_viii: Zw, dynCall_v: _w, dynCall_iiiiiiiii: $w, dynCall_iiiiid: ax, dynCall_viiii: bx }; + }(Module.asmGlobalArg, Module.asmLibraryArg, buffer); + var _jpegls_encode = Module["_jpegls_encode"] = asm["_jpegls_encode"]; + var ___cxa_can_catch = Module["___cxa_can_catch"] = asm["___cxa_can_catch"]; + var _free = Module["_free"] = asm["_free"]; + var _jpegls_decode = Module["_jpegls_decode"] = asm["_jpegls_decode"]; + var ___cxa_is_pointer_type = Module["___cxa_is_pointer_type"] = asm["___cxa_is_pointer_type"]; + var _i64Add = Module["_i64Add"] = asm["_i64Add"]; + var _memmove = Module["_memmove"] = asm["_memmove"]; + var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; + var _memset = Module["_memset"] = asm["_memset"]; + var _malloc = Module["_malloc"] = asm["_malloc"]; + var _memcpy = Module["_memcpy"] = asm["_memcpy"]; + var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = asm["_emscripten_replace_memory"]; + var runPostSets = Module["runPostSets"] = asm["runPostSets"]; + var __GLOBAL__sub_I_iostream_cpp = Module["__GLOBAL__sub_I_iostream_cpp"] = asm["__GLOBAL__sub_I_iostream_cpp"]; + var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; + var __GLOBAL__sub_I_jpegls_cpp = Module["__GLOBAL__sub_I_jpegls_cpp"] = asm["__GLOBAL__sub_I_jpegls_cpp"]; + var __GLOBAL__I_000101 = Module["__GLOBAL__I_000101"] = asm["__GLOBAL__I_000101"]; + var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; + var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = asm["dynCall_iiiiiiii"]; + var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; + var dynCall_iiiiiid = Module["dynCall_iiiiiid"] = asm["dynCall_iiiiiid"]; + var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; + var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; + var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = asm["dynCall_iiiiiii"]; + var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; + var dynCall_iiiiiiiiiiii = Module["dynCall_iiiiiiiiiiii"] = asm["dynCall_iiiiiiiiiiii"]; + var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; + var dynCall_viiiiiiiiiiiiiii = Module["dynCall_viiiiiiiiiiiiiii"] = asm["dynCall_viiiiiiiiiiiiiii"]; + var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; + var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; + var dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = asm["dynCall_viiiiiiiiii"]; + var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; + var dynCall_iiiiii = Module["dynCall_iiiiii"] = asm["dynCall_iiiiii"]; + var dynCall_diii = Module["dynCall_diii"] = asm["dynCall_diii"]; + var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; + var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"]; + var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; + var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; + var dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = asm["dynCall_iiiiiiiii"]; + var dynCall_iiiiid = Module["dynCall_iiiiid"] = asm["dynCall_iiiiid"]; + var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; + Runtime.stackAlloc = asm["stackAlloc"]; + Runtime.stackSave = asm["stackSave"]; + Runtime.stackRestore = asm["stackRestore"]; + Runtime.establishStackSpace = asm["establishStackSpace"]; + Runtime.setTempRet0 = asm["setTempRet0"]; + Runtime.getTempRet0 = asm["getTempRet0"]; + function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; + } + ExitStatus.prototype = new Error(); + ExitStatus.prototype.constructor = ExitStatus; + var initialStackTop; + var preloadStartTime = null; + var calledMain = false; + dependenciesFulfilled = function runCaller() { + if (!Module["calledRun"]) + run(); + if (!Module["calledRun"]) + dependenciesFulfilled = runCaller; + }; + Module["callMain"] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, "cannot call main when async dependencies remain! (listen on __ATMAIN__)"); + assert(__ATPRERUN__.length == 0, "cannot call main when preRun functions remain to be called"); + args = args || []; + ensureInitRuntime(); + var argc = args.length + 1; + function pad() { + for (var i3 = 0; i3 < 4 - 1; i3++) { + argv.push(0); + } } - } - - return false; -}; - - -/** - * Returns true if this image stores JPEG2000 data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEG2000 = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if ((transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000) !== -1) || - (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS) !== -1)) { - return true; + var argv = [allocate(intArrayFromString(Module["thisProgram"]), "i8", ALLOC_NORMAL)]; + pad(); + for (var i2 = 0; i2 < argc - 1; i2 = i2 + 1) { + argv.push(allocate(intArrayFromString(args[i2]), "i8", ALLOC_NORMAL)); + pad(); } - } - - return false; -}; - - -/** - * Returns true if this image stores JPEG-LS data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEGLS = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if ((transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS) !== -1) || - (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS) !== -1)) { - return true; + argv.push(0); + argv = allocate(argv, "i32", ALLOC_NORMAL); + try { + var ret = Module["_main"](argc, argv, 0); + exit(ret, true); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else if (e == "SimulateInfiniteLoop") { + Module["noExitRuntime"] = true; + return; + } else { + if (e && typeof e === "object" && e.stack) + Module.printErr("exception thrown: " + [e, e.stack]); + throw e; + } + } finally { + calledMain = true; } - } - - return false; -}; - - -/** - * Returns true if this image stores RLE data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedRLE = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { - return true; + }; + function run(args) { + args = args || Module["arguments"]; + if (preloadStartTime === null) + preloadStartTime = Date.now(); + if (runDependencies > 0) { + return; } - } - - return false; -}; - - -/** - * Returns the number of frames. - * @returns {number} - */ -daikon.Image.prototype.getNumberOfFrames = function () { - var value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_NUMBER_OF_FRAMES[0], daikon.Tag.TAG_NUMBER_OF_FRAMES[1]), 0); - - if (value !== null) { - return value; - } - - return 1; -}; - - -/** - * Returns the number of samples per pixel. - * @returns {number} - */ -daikon.Image.prototype.getNumberOfSamplesPerPixel = function () { - var value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SAMPLES_PER_PIXEL[0], daikon.Tag.TAG_SAMPLES_PER_PIXEL[1]), 0); - - if (value !== null) { - return value; - } - - return 1; -}; - - - -daikon.Image.prototype.getNumberOfImplicitFrames = function () { - var pixelData, length, size; - - if (this.isCompressed()) { - return 1; - } - - pixelData = this.getPixelData(); - length = pixelData.offsetEnd - pixelData.offsetValue; - size = this.getCols() * this.getRows() * (parseInt(this.getBitsAllocated() / 8)); - - return parseInt(length / size); -}; - - -/** - * Returns the pixel representation. - * @returns {number} - */ -daikon.Image.prototype.getPixelRepresentation = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PIXEL_REPRESENTATION[0], daikon.Tag.TAG_PIXEL_REPRESENTATION[1]), 0); -}; - - -/** - * Returns the photometric interpretation. - * @returns {string} - */ -daikon.Image.prototype.getPhotometricInterpretation = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); -}; - - -/** - * Returns the patient name. - * @returns {string} - */ -daikon.Image.prototype.getPatientName = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PATIENT_NAME[0], daikon.Tag.TAG_PATIENT_NAME[1]), 0); -}; - - -/** - * Returns the patient ID. - * @returns {string} - */ -daikon.Image.prototype.getPatientID = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PATIENT_ID[0], daikon.Tag.TAG_PATIENT_ID[1]), 0); -}; - - -/** - * Returns the study time. - * @returns {string} - */ -daikon.Image.prototype.getStudyTime = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_STUDY_TIME[0], daikon.Tag.TAG_STUDY_TIME[1]), 0); -}; - - -/** - * Returns the transfer syntax. - * @returns {string} - */ -daikon.Image.prototype.getTransferSyntax = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_TRANSFER_SYNTAX[0], daikon.Tag.TAG_TRANSFER_SYNTAX[1]), 0); -}; - - -/** - * Returns the study date. - * @returns {string} - */ -daikon.Image.prototype.getStudyDate = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_STUDY_DATE[0], daikon.Tag.TAG_STUDY_DATE[1]), 0); -}; - - -/** - * Returns the planar configuration. - * @returns {number} - */ -daikon.Image.prototype.getPlanarConfig = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PLANAR_CONFIG[0], daikon.Tag.TAG_PLANAR_CONFIG[1]), 0); -}; - - -/** - * Returns all descriptive info for this image. - * @returns {string} - */ -daikon.Image.prototype.getImageDescription = function () { - var value, string = ""; - - value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_STUDY_DES[0], daikon.Tag.TAG_STUDY_DES[1]), 0); - if (value !== null) { - string += (" " + value); - } - - value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_DESCRIPTION[0], daikon.Tag.TAG_SERIES_DESCRIPTION[1]), 0); - if (value !== null) { - string += (" " + value); - } - - value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_COMMENTS[0], daikon.Tag.TAG_IMAGE_COMMENTS[1]), 0); - if (value !== null) { - string += (" " + value); - } - - return string.trim(); -}; - - -/** - * Returns the datatype (e.g., daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED). - * @returns {number} - */ -daikon.Image.prototype.getDataType = function () { - var interp, dataType; - - dataType = this.getPixelRepresentation(); - - if (dataType === null) { - return daikon.Image.BYTE_TYPE_UNKNOWN; - } - - interp = this.getPhotometricInterpretation(); - if (interp !== null) { - if ((interp.trim().indexOf('RGB') !== -1) || (interp.trim().indexOf('YBR') !== -1) || - (interp.trim().toLowerCase().indexOf('palette') !== -1)) { - return daikon.Image.BYTE_TYPE_RGB; + 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 (dataType === 0) { - return daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED; - } else if (dataType === 1) { - return daikon.Image.BYTE_TYPE_INTEGER; - } else { - return daikon.Image.BYTE_TYPE_UNKNOWN; - } -}; - - - -// originally from: http://public.kitware.com/pipermail/insight-users/2005-March/012246.html -daikon.Image.prototype.getAcquiredSliceDirection = function () { - var dirCos, rowAxis, colAxis, label; - - dirCos = daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_ORIENTATION[0], daikon.Tag.TAG_IMAGE_ORIENTATION[1])); - - if (!dirCos || (dirCos.length !== 6)) { - return daikon.Image.SLICE_DIRECTION_UNKNOWN; - } - - rowAxis = daikon.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[0], dirCos[1], dirCos[2]); - colAxis = daikon.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[3], dirCos[4], dirCos[5]); - - if ((rowAxis !== null) && (colAxis !== null)) { - if (((rowAxis === "R") || (rowAxis === "L")) && ((colAxis === "A") || (colAxis === "P"))) { - label = daikon.Image.SLICE_DIRECTION_AXIAL; - } else if (((colAxis === "R") || (colAxis === "L")) && ((rowAxis === "A") || (rowAxis === "P"))) { - label = daikon.Image.SLICE_DIRECTION_AXIAL; - } else if (((rowAxis === "R") || (rowAxis === "L")) && ((colAxis === "H") || (colAxis === "F"))) { - label = daikon.Image.SLICE_DIRECTION_CORONAL; - } else if (((colAxis === "R") || (colAxis === "L")) && ((rowAxis === "H") || (rowAxis === "F"))) { - label = daikon.Image.SLICE_DIRECTION_CORONAL; - } else if (((rowAxis === "A") || (rowAxis === "P")) && ((colAxis === "H") || (colAxis === "F"))) { - label = daikon.Image.SLICE_DIRECTION_SAGITTAL; - } else if (((colAxis === "A") || (colAxis === "P")) && ((rowAxis === "H") || (rowAxis === "F"))) { - label = daikon.Image.SLICE_DIRECTION_SAGITTAL; + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); } - } else { - label = daikon.Image.SLICE_DIRECTION_OBLIQUE; - } - - return label; -}; - - - -// returns an array of tags -/** - * Returns encapsulated data tags. - * @returns {daikon.Tag[]} - */ -daikon.Image.prototype.getEncapsulatedData = function () { - var buffer, parser; - - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - buffer = this.getPixelData().value.buffer; - parser = new daikon.Parser(); - return parser.parseEncapsulated(new DataView(buffer)); -}; - - - -daikon.Image.prototype.getJpegs = function () { - var encapTags, numTags, ctr, currentJpeg, data = [], dataConcat = []; - - encapTags = this.getEncapsulatedData(); - - // organize data as an array of an array of JPEG parts - if (encapTags) { - numTags = encapTags.length; - - for (ctr = 0; ctr < numTags; ctr += 1) { - if (daikon.CompressionUtils.isHeaderJPEG(encapTags[ctr].value) || - daikon.CompressionUtils.isHeaderJPEG2000(encapTags[ctr].value)) { - currentJpeg = []; - currentJpeg.push(encapTags[ctr].value.buffer); - data.push(currentJpeg); - } else if (currentJpeg && encapTags[ctr].value) { - currentJpeg.push(encapTags[ctr].value.buffer); - } + } + Module["run"] = Module.run = run; + function exit(status, implicit) { + if (implicit && Module["noExitRuntime"]) { + return; } - } - - // concat into an array of full JPEGs - for (ctr = 0; ctr < data.length; ctr += 1) { - if (data[ctr].length > 1) { - dataConcat[ctr] = daikon.Utils.concatArrayBuffers2(data[ctr]); + if (Module["noExitRuntime"]) { } else { - dataConcat[ctr] = data[ctr][0]; - } - - data[ctr] = null; - } - - return dataConcat; -}; - - - -daikon.Image.prototype.getRLE = function () { - var encapTags, numTags, ctr, data = []; - - encapTags = this.getEncapsulatedData(); - - // organize data as an array of an array of JPEG parts - if (encapTags) { - numTags = encapTags.length; - - // the first sublist item contains offsets, need offsets? - for (ctr = 1; ctr < numTags; ctr += 1) { - if (encapTags[ctr].value) { - data.push(encapTags[ctr].value.buffer); - } + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + exitRuntime(); + if (Module["onExit"]) + Module["onExit"](status); } - } - - return data; -}; - - -/** - * Returns a string of interpreted private data. - * @returns {string} - */ -daikon.Image.prototype.getAllInterpretedPrivateData = function() { - var ctr, key, tag, str = ""; - - var sorted_keys = Object.keys(this.tags).sort(); - - for (ctr = 0; ctr < sorted_keys.length; ctr+=1) { - key = sorted_keys[ctr]; - if (this.tags.hasOwnProperty(key)) { - tag = this.tags[key]; - if (tag.hasInterpretedPrivateData()) { - str += tag.value; - } + if (ENVIRONMENT_IS_NODE) { + process["stdout"]["once"]("drain", function() { + process["exit"](status); + }); + console.log(" "); + setTimeout(function() { + process["exit"](status); + }, 500); + } else if (ENVIRONMENT_IS_SHELL && typeof quit === "function") { + quit(status); } - } - - return str; -}; - - -/** - * Returns a string representation of this image. - * @returns {string} - */ -daikon.Image.prototype.toString = function () { - var ctr, tag, key, str = ""; - - var sorted_keys = Object.keys(this.tags).sort(); - - for (ctr = 0; ctr < sorted_keys.length; ctr+=1) { - key = sorted_keys[ctr]; - if (this.tags.hasOwnProperty(key)) { - tag = this.tags[key]; - str += (tag.toHTMLString() + "
"); + throw new ExitStatus(status); + } + Module["exit"] = Module.exit = exit; + var abortDecorators = []; + function abort(what) { + if (what !== void 0) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what); + } else { + what = ""; + } + ABORT = true; + EXITSTATUS = 1; + var extra = "\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."; + var output = "abort(" + what + ") at " + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach(function(decorator) { + output = decorator(output, what); + }); } + throw output; + } + Module["abort"] = Module.abort = abort; + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") + Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + var shouldRunNow = true; + if (Module["noInitialRun"]) { + shouldRunNow = false; + } + run(); + return Module; + }; + var moduleType = typeof module; + if (moduleType !== "undefined" && module.exports) { + module.exports = CharLS; } + } +}); - str = str.replace(/\n\s*\n/g, '\n'); // replace mutli-newlines with single newline - str = str.replace(/(?:\r\n|\r|\n)/g, '
'); // replace newlines with
- - return str; -}; - - - -daikon.Image.prototype.getPalleteValues = function (tagID) { - /*jslint bitwise: true */ - - var valsBig, valsLittle, value, numVals, ctr, valsBigMax, valsBigMin, valsLittleMax, valsLittleMin, valsBigDiff, - valsLittleDiff; - - valsBig = null; - valsLittle = null; - - value = daikon.Image.getValueSafely(this.getTag(tagID[0], tagID[1])); - - if (value !== null) { - numVals = value.buffer.byteLength / 2; - valsBig = []; - valsLittle = []; - - for (ctr = 0; ctr < numVals; ctr += 1) { - valsBig[ctr] = (value.getUint16(ctr * 2, false) & 0xFFFF); - valsLittle[ctr] = (value.getUint16(ctr * 2, true) & 0xFFFF); +// lib/jpeg-ls.js +var require_jpeg_ls = __commonJS({ + "lib/jpeg-ls.js"(exports2, module2) { + "use strict"; + var CharLS3 = CharLS3 || (typeof require !== "undefined" ? require_charLS_DynamicMemory_browser() : null); + var JpegLS = function() { + var charLS; + function constructor() { + } + constructor.prototype = { + decodeJPEGLS: function(pixelData, signed) { + return decodeJPEGLS(pixelData, signed); } - - valsBigMax = Math.max.apply(Math, valsBig); - valsBigMin = Math.min.apply(Math, valsBig); - valsLittleMax = Math.max.apply(Math, valsLittle); - valsLittleMin = Math.min.apply(Math, valsLittle); - valsBigDiff = Math.abs(valsBigMax - valsBigMin); - valsLittleDiff = Math.abs(valsLittleMax - valsLittleMin); - - if (valsBigDiff < valsLittleDiff) { - return this.scalePalette(valsBig); + }; + function jpegLSDecode(data, isSigned) { + var dataPtr = charLS._malloc(data.length); + charLS.writeArrayToMemory(data, dataPtr); + var imagePtrPtr = charLS._malloc(4); + var imageSizePtr = charLS._malloc(4); + var widthPtr = charLS._malloc(4); + var heightPtr = charLS._malloc(4); + var bitsPerSamplePtr = charLS._malloc(4); + var stridePtr = charLS._malloc(4); + var allowedLossyErrorPtr = charLS._malloc(4); + var componentsPtr = charLS._malloc(4); + var interleaveModePtr = charLS._malloc(4); + var result = charLS.ccall( + "jpegls_decode", + "number", + ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"], + [dataPtr, data.length, imagePtrPtr, imageSizePtr, widthPtr, heightPtr, bitsPerSamplePtr, stridePtr, componentsPtr, allowedLossyErrorPtr, interleaveModePtr] + ); + var image = { + result, + width: charLS.getValue(widthPtr, "i32"), + height: charLS.getValue(heightPtr, "i32"), + bitsPerSample: charLS.getValue(bitsPerSamplePtr, "i32"), + stride: charLS.getValue(stridePtr, "i32"), + components: charLS.getValue(componentsPtr, "i32"), + allowedLossyError: charLS.getValue(allowedLossyErrorPtr, "i32"), + interleaveMode: charLS.getValue(interleaveModePtr, "i32"), + pixelData: void 0 + }; + var imagePtr = charLS.getValue(imagePtrPtr, "*"); + if (image.bitsPerSample <= 8) { + image.pixelData = new Uint8Array(image.width * image.height * image.components); + image.pixelData.set(new Uint8Array(charLS.HEAP8.buffer, imagePtr, image.pixelData.length)); } else { - return this.scalePalette(valsLittle); + if (isSigned) { + image.pixelData = new Int16Array(image.width * image.height * image.components); + image.pixelData.set(new Int16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); + } else { + image.pixelData = new Uint16Array(image.width * image.height * image.components); + image.pixelData.set(new Uint16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); + } } - } - - return null; -}; - - - -daikon.Image.prototype.scalePalette = function (pal) { - var min, max, ctr, slope, intercept; - - max = Math.max.apply(Math, pal); - min = Math.min.apply(Math, pal); - - if ((max > 255) || (min < 0)) { - slope = 255.0 / (max - min); - intercept = min; - - for (ctr = 0; ctr < pal.length; ctr += 1) { - pal[ctr] = parseInt(Math.round((pal[ctr] - intercept) * slope)); + charLS._free(dataPtr); + charLS._free(imagePtr); + charLS._free(imagePtrPtr); + charLS._free(imageSizePtr); + charLS._free(widthPtr); + charLS._free(heightPtr); + charLS._free(bitsPerSamplePtr); + charLS._free(stridePtr); + charLS._free(componentsPtr); + charLS._free(interleaveModePtr); + return image; + } + function initializeJPEGLS() { + if (typeof CharLS3 === "undefined") { + throw "No JPEG-LS decoder loaded"; } - } - - return pal; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Image; -} - -},{"../lib/jpeg-baseline.js":2,"../lib/jpeg-ls.js":3,"../lib/jpx.js":4,"./compression-utils.js":36,"./parser.js":42,"./rle.js":43,"./tag.js":46,"./utilities.js":47,"jpeg-lossless-decoder-js":11}],39:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; - - -/*** Constructor ***/ -daikon.OrderedMapIterator = daikon.OrderedMapIterator || function (orderedMap) { - this.orderedMap = orderedMap; - this.index = 0; -}; - - -/*** Prototype Methods ***/ - -daikon.OrderedMapIterator.prototype.hasNext = function() { - return (this.index < this.orderedMap.orderedKeys.length); -}; - - - -daikon.OrderedMapIterator.prototype.next = function() { - var item = this.orderedMap.get(this.orderedMap.orderedKeys[this.index]); - this.index += 1; - return item; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.OrderedMapIterator; -} - -},{}],40:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ****/ - -/** - * daikon - * @type {*|{}} - */ -var daikon = daikon || {}; - -daikon.CompressionUtils = daikon.CompressionUtils || ((typeof require !== 'undefined') ? require('./compression-utils.js') : null); -daikon.Dictionary = daikon.Dictionary || ((typeof require !== 'undefined') ? require('./dictionary.js') : null); -daikon.Image = daikon.Image || ((typeof require !== 'undefined') ? require('./image.js') : null); -daikon.OrderedMapIterator = daikon.OrderedMapIterator || ((typeof require !== 'undefined') ? require('./iterator.js') : null); -daikon.OrderedMap = daikon.OrderedMap || ((typeof require !== 'undefined') ? require('./orderedmap.js') : null); -daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); -daikon.RLE = daikon.RLE || ((typeof require !== 'undefined') ? require('./rle.js') : null); -daikon.Series = daikon.Series || ((typeof require !== 'undefined') ? require('./series.js') : null); -daikon.Tag = daikon.Tag || ((typeof require !== 'undefined') ? require('./tag.js') : null); -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); -daikon.Siemens = daikon.Siemens || ((typeof require !== 'undefined') ? require('./siemens.js') : null); - -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.Decoder = ((typeof require !== 'undefined') ? require('jpeg-lossless-decoder-js') : null); - -var JpegDecoder = JpegDecoder || ((typeof require !== 'undefined') ? require('../lib/jpeg-baseline.js').JpegImage : null); - -var JpxImage = JpxImage || ((typeof require !== 'undefined') ? require('../lib/jpx.js') : null); - -//var CharLS = CharLS || ((typeof require !== 'undefined') ? require('../lib/charlsjs.js') : null); -var CharLS = CharLS || ((typeof require !== 'undefined') ? require('../lib/charLS-DynamicMemory-browser.js') : null); -var JpegLSDecoder = JpegLSDecoder || ((typeof require !== 'undefined') ? require('../lib/jpeg-ls.js') : null); - -//use fflate not pako -var pako = pako || ((typeof require !== 'undefined') ? require('pako') : null); -//var fflate = fflate || ((typeof require !== 'undefined') ? require('fflate') : null); - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon; -} - -},{"../lib/charLS-DynamicMemory-browser.js":1,"../lib/jpeg-baseline.js":2,"../lib/jpeg-ls.js":3,"../lib/jpx.js":4,"./compression-utils.js":36,"./dictionary.js":37,"./image.js":38,"./iterator.js":39,"./orderedmap.js":41,"./parser.js":42,"./rle.js":43,"./series.js":44,"./siemens.js":45,"./tag.js":46,"./utilities.js":47,"jpeg-lossless-decoder-js":11,"pako":16}],41:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require */ - -"use strict"; - -// Based on: http://stackoverflow.com/questions/3549894/javascript-data-structure-for-fast-lookup-and-ordered-looping - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.OrderedMapIterator = daikon.OrderedMapIterator || ((typeof require !== 'undefined') ? require('./iterator.js') : null); - - -/*** Constructor ***/ -daikon.OrderedMap = daikon.OrderedMap || function () { - this.map = {}; - this.orderedKeys = []; -}; - - - -daikon.OrderedMap.prototype.put = function(key, value) { - if (key in this.map) { // key already exists, replace value - this.map[key] = value; - } else { // insert new key and value - this.orderedKeys.push(key); - this.orderedKeys.sort(function(a, b) { return parseFloat(a) - parseFloat(b); }); - this.map[key] = value; - } -}; - - - -daikon.OrderedMap.prototype.remove = function(key) { - var index = this.orderedKeys.indexOf(key); - if(index === -1) { - throw new Error('key does not exist'); - } - - this.orderedKeys.splice(index, 1); - delete this.map[key]; -}; - - - -daikon.OrderedMap.prototype.get = function(key) { - if (key in this.map) { - return this.map[key]; - } - - return null; -}; - - - -daikon.OrderedMap.prototype.iterator = function() { - return new daikon.OrderedMapIterator(this); -}; - - - -daikon.OrderedMap.prototype.getOrderedValues = function() { - var orderedValues = [], it = this.iterator(); - - while (it.hasNext()) { - orderedValues.push(it.next()); - } - - return orderedValues; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.OrderedMap; -} - -},{"./iterator.js":39}],42:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Tag = daikon.Tag || ((typeof require !== 'undefined') ? require('./tag.js') : null); -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); -daikon.Dictionary = daikon.Dictionary || ((typeof require !== 'undefined') ? require('./dictionary.js') : null); -daikon.Image = daikon.Image || ((typeof require !== 'undefined') ? require('./image.js') : null); - -//use fflate not pako -var pako = pako || ((typeof require !== 'undefined') ? require('pako') : null); -//var fflate = fflate || ((typeof require !== 'undefined') ? require('fflate') : null); - -/*** Constructor ***/ - -/** - * The Parser constructor. - * @property {boolean} explicit - * @property {boolean} littleEndian - * @type {Function} - */ -daikon.Parser = daikon.Parser || function () { - this.littleEndian = true; - this.explicit = true; - this.metaFound = false; - this.metaFinished = false; - this.metaFinishedOffset = -1; - this.needsDeflate = false; - this.inflated = null; - this.encapsulation = false; - this.level = 0; - this.error = null; -}; - - -/*** Static Fields ***/ - -/** - * Global property to output string representation of tags as they are parsed. - * @type {boolean} - */ -daikon.Parser.verbose = false; - - -/*** Static Pseudo-constants ***/ - -daikon.Parser.MAGIC_COOKIE_OFFSET = 128; -daikon.Parser.MAGIC_COOKIE = [68, 73, 67, 77]; -daikon.Parser.VRS = ["AE", "AS", "AT", "CS", "DA", "DS", "DT", "FL", "FD", "IS", "LO", "LT", "OB", "OD", "OF", "OW", "PN", "SH", "SL", "SS", "ST", "TM", "UI", "UL", "UN", "US", "UT", "UC"]; -daikon.Parser.DATA_VRS = ["OB", "OW", "OF", "SQ", "UT", "UN", "UC"]; -daikon.Parser.RAW_DATA_VRS = ["OB", "OD", "OF", "OW", "UN"]; -daikon.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE = "1.2.840.10008.1.2"; -daikon.Parser.TRANSFER_SYNTAX_EXPLICIT_LITTLE = "1.2.840.10008.1.2.1"; -daikon.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG = "1.2.840.10008.1.2.2"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG = "1.2.840.10008.1.2.4"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS = "1.2.840.10008.1.2.4.57"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1 = "1.2.840.10008.1.2.4.70"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT = "1.2.840.10008.1.2.4.50"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT = "1.2.840.10008.1.2.4.51"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS = "1.2.840.10008.1.2.4.80"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS = "1.2.840.10008.1.2.4.81"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS = "1.2.840.10008.1.2.4.90"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000 = "1.2.840.10008.1.2.4.91"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE = "1.2.840.10008.1.2.5"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE = "1.2.840.10008.1.2.1.99"; -daikon.Parser.UNDEFINED_LENGTH = 0xFFFFFFFF; - - -/*** Static Methods ***/ - -/** - * Returns true if the DICOM magic cookie is found. - * @param {DataView} data - * @returns {boolean} - */ -daikon.Parser.isMagicCookieFound = function (data) { - var offset = daikon.Parser.MAGIC_COOKIE_OFFSET, magicCookieLength = daikon.Parser.MAGIC_COOKIE.length, ctr; - - for (ctr = 0; ctr < magicCookieLength; ctr += 1) { - if (data.getUint8(offset + ctr) !== daikon.Parser.MAGIC_COOKIE[ctr]) { - return false; + if (!charLS) { + charLS = CharLS3(); + if (!charLS || !charLS._jpegls_decode) { + throw "JPEG-LS failed to initialize"; + } } - } - - return true; -}; - - -/*** Prototype Methods ***/ - -/** - * Parses this data and returns an image object. - * @param {DataView} data - * @returns {daikon.Image|null} - */ -daikon.Parser.prototype.parse = function (data) { - var image = null, offset, tag, copyMeta, copyDeflated; - - try { - image = new daikon.Image(); - offset = this.findFirstTagOffset(data); - tag = this.getNextTag(data, offset); - - while (tag !== null) { - if (daikon.Parser.verbose) { - console.log(tag.toString()); - } - - image.putTag(tag); - - if (tag.isPixelData()) { - break; - } - - if (this.needsDeflate && (tag.offsetEnd >= this.metaFinishedOffset)) { - this.needsDeflate = false; - copyMeta = data.buffer.slice(0, tag.offsetEnd); - copyDeflated = data.buffer.slice(tag.offsetEnd); - this.inflated = daikon.Utils.concatArrayBuffers(copyMeta, pako.inflateRaw(copyDeflated)); - //this.inflated = daikon.Utils.concatArrayBuffers(copyMeta, fflate.decompressSync(new Uint8Array(copyDeflated))); - data = new DataView(this.inflated); - } - - tag = this.getNextTag(data, tag.offsetEnd); + } + function decodeJPEGLS(pixelData, signed) { + initializeJPEGLS(); + var image = jpegLSDecode(pixelData, signed); + if (image.result !== 0 && image.result !== 6) { + throw "JPEG-LS decoder failed to decode frame (error code " + image.result + ")"; } - } catch (err) { - this.error = err; + var imageFrame = {}; + imageFrame.columns = image.width; + imageFrame.rows = image.height; + imageFrame.pixelData = image.pixelData; + return imageFrame; + } + return constructor; + }(); + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = JpegLS; } + } +}); - if (image !== null) { - image.littleEndian = this.littleEndian; +// node_modules/pako/lib/utils/common.js +var require_common = __commonJS({ + "node_modules/pako/lib/utils/common.js"(exports2) { + "use strict"; + var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; + function _has(obj, key2) { + return Object.prototype.hasOwnProperty.call(obj, key2); } - - return image; -}; - - - -daikon.Parser.prototype.parseEncapsulated = function (data) { - var offset = 0, tag, tags = []; - - this.encapsulation = true; - - try { - tag = this.getNextTag(data, offset); - - while (tag !== null) { - if (tag.isSublistItem()) { - tags.push(tag); - } - - if (daikon.Parser.verbose) { - console.log(tag.toString()); - } - - tag = this.getNextTag(data, tag.offsetEnd); + exports2.assign = function(obj) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { + continue; } - } catch (err) { - this.error = err; + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + exports2.shrinkBuf = function(buf, size) { + if (buf.length === size) { + return buf; + } + if (buf.subarray) { + return buf.subarray(0, size); + } + buf.length = size; + return buf; + }; + var fnTyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + for (var i2 = 0; i2 < len; i2++) { + dest[dest_offs + i2] = src[src_offs + i2]; + } + }, + // Join array of chunks to single array. + flattenChunks: function(chunks) { + var i2, l, len, pos, chunk, result; + len = 0; + for (i2 = 0, l = chunks.length; i2 < l; i2++) { + len += chunks[i2].length; + } + result = new Uint8Array(len); + pos = 0; + for (i2 = 0, l = chunks.length; i2 < l; i2++) { + chunk = chunks[i2]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + } + }; + var fnUntyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + for (var i2 = 0; i2 < len; i2++) { + dest[dest_offs + i2] = src[src_offs + i2]; + } + }, + // Join array of chunks to single array. + flattenChunks: function(chunks) { + return [].concat.apply([], chunks); + } + }; + exports2.setTyped = function(on) { + if (on) { + exports2.Buf8 = Uint8Array; + exports2.Buf16 = Uint16Array; + exports2.Buf32 = Int32Array; + exports2.assign(exports2, fnTyped); + } else { + exports2.Buf8 = Array; + exports2.Buf16 = Array; + exports2.Buf32 = Array; + exports2.assign(exports2, fnUntyped); + } + }; + exports2.setTyped(TYPED_OK); + } +}); +// node_modules/pako/lib/zlib/trees.js +var require_trees = __commonJS({ + "node_modules/pako/lib/zlib/trees.js"(exports2) { + "use strict"; + var utils = require_common(); + var Z_FIXED = 4; + var Z_BINARY = 0; + var Z_TEXT = 1; + var Z_UNKNOWN = 2; + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } } - - return tags; -}; - - - -daikon.Parser.prototype.testForValidTag = function (data) { - var offset, tag = null; - - try { - offset = this.findFirstTagOffset(data); - tag = this.getNextTag(data, offset, false); - } catch (err) { - this.error = err; + var STORED_BLOCK = 0; + var STATIC_TREES = 1; + var DYN_TREES = 2; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var Buf_size = 16; + var MAX_BL_BITS = 7; + var END_BLOCK = 256; + var REP_3_6 = 16; + var REPZ_3_10 = 17; + var REPZ_11_138 = 18; + var extra_lbits = ( + /* extra bits for each length code */ + [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0] + ); + var extra_dbits = ( + /* extra bits for each distance code */ + [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13] + ); + var extra_blbits = ( + /* extra bits for each bit length code */ + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7] + ); + var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + var DIST_CODE_LEN = 512; + var static_ltree = new Array((L_CODES + 2) * 2); + zero(static_ltree); + var static_dtree = new Array(D_CODES * 2); + zero(static_dtree); + var _dist_code = new Array(DIST_CODE_LEN); + zero(_dist_code); + var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); + zero(_length_code); + var base_length = new Array(LENGTH_CODES); + zero(base_length); + var base_dist = new Array(D_CODES); + zero(base_dist); + function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + this.static_tree = static_tree; + this.extra_bits = extra_bits; + this.extra_base = extra_base; + this.elems = elems; + this.max_length = max_length; + this.has_stree = static_tree && static_tree.length; } - - return tag; -}; - - - -daikon.Parser.prototype.getNextTag = function (data, offset, testForTag) { - var group = 0, element, value = null, offsetStart = offset, offsetValue, length = 0, little = true, vr = null, tag; - - if (offset >= data.byteLength) { - return null; + var static_l_desc; + var static_d_desc; + var static_bl_desc; + function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; + this.max_code = 0; + this.stat_desc = stat_desc; } - - if (this.metaFinished) { - little = this.littleEndian; - group = data.getUint16(offset, little); - } else { - group = data.getUint16(offset, true); - - if (((this.metaFinishedOffset !== -1) && (offset >= this.metaFinishedOffset)) || (group !== 0x0002)) { - this.metaFinished = true; - little = this.littleEndian; - group = data.getUint16(offset, little); - } else { - little = true; + function d_code(dist) { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; + } + function put_short(s, w) { + s.pending_buf[s.pending++] = w & 255; + s.pending_buf[s.pending++] = w >>> 8 & 255; + } + function send_bits(s, value, length) { + if (s.bi_valid > Buf_size - length) { + s.bi_buf |= value << s.bi_valid & 65535; + put_short(s, s.bi_buf); + s.bi_buf = value >> Buf_size - s.bi_valid; + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= value << s.bi_valid & 65535; + s.bi_valid += length; + } + } + function send_code(s, c, tree) { + send_bits( + s, + tree[c * 2], + tree[c * 2 + 1] + /*.Len*/ + ); + } + function bi_reverse(code, len) { + var res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; + } + function bi_flush(s) { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 255; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } + } + function gen_bitlen(s, desc) { + var tree = desc.dyn_tree; + var max_code = desc.max_code; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var extra = desc.stat_desc.extra_bits; + var base = desc.stat_desc.extra_base; + var max_length = desc.stat_desc.max_length; + var h; + var n, m; + var bits; + var xbits; + var f; + var overflow = 0; + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + tree[s.heap[s.heap_max] * 2 + 1] = 0; + for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1] = bits; + if (n > max_code) { + continue; + } + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1] + xbits); } + } + if (overflow === 0) { + return; + } + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { + bits--; + } + s.bl_count[bits]--; + s.bl_count[bits + 1] += 2; + s.bl_count[max_length]--; + overflow -= 2; + } while (overflow > 0); + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { + continue; + } + if (tree[m * 2 + 1] !== bits) { + s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; + tree[m * 2 + 1] = bits; + } + n--; + } + } } - - if (!this.metaFound && (group === 0x0002)) { - this.metaFound = true; + function gen_codes(tree, max_code, bl_count) { + var next_code = new Array(MAX_BITS + 1); + var code = 0; + var bits; + var n; + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = code + bl_count[bits - 1] << 1; + } + for (n = 0; n <= max_code; n++) { + var len = tree[n * 2 + 1]; + if (len === 0) { + continue; + } + tree[n * 2] = bi_reverse(next_code[len]++, len); + } } - - offset += 2; - - element = data.getUint16(offset, little); - offset += 2; - if (this.explicit || !this.metaFinished) { - vr = daikon.Utils.getStringAt(data, offset, 2); - - if (!this.metaFound && this.metaFinished && (daikon.Parser.VRS.indexOf(vr) === -1)) { - vr = daikon.Dictionary.getVR(group, element); - length = data.getUint32(offset, little); - offset += 4; - this.explicit = false; - } else { - offset += 2; - - if (daikon.Parser.DATA_VRS.indexOf(vr) !== -1) { - offset += 2; // skip two empty bytes - - length = data.getUint32(offset, little); - offset += 4; - } else { - length = data.getUint16(offset, little); - offset += 2; - } + function tr_static_init() { + var n; + var bits; + var length; + var code; + var dist; + var bl_count = new Array(MAX_BITS + 1); + length = 0; + for (code = 0; code < LENGTH_CODES - 1; code++) { + base_length[code] = length; + for (n = 0; n < 1 << extra_lbits[code]; n++) { + _length_code[length++] = code; } - } else { - vr = daikon.Dictionary.getVR(group, element); - length = data.getUint32(offset, little); - - if (length === daikon.Parser.UNDEFINED_LENGTH) { - vr = 'SQ'; + } + _length_code[length - 1] = code; + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < 1 << extra_dbits[code]; n++) { + _dist_code[dist++] = code; } - - offset += 4; + } + dist >>= 7; + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < 1 << extra_dbits[code] - 7; n++) { + _dist_code[256 + dist++] = code; + } + } + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1] = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1] = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + gen_codes(static_ltree, L_CODES + 1, bl_count); + for (n = 0; n < D_CODES; n++) { + static_dtree[n * 2 + 1] = 5; + static_dtree[n * 2] = bi_reverse(n, 5); + } + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); } - - offsetValue = offset; - - var isPixelData = ((group === daikon.Tag.TAG_PIXEL_DATA[0]) && (element === daikon.Tag.TAG_PIXEL_DATA[1])); - /* - color lookup data will be in (0028,12XX), so don't try to treat these as a sublist even though it can look like a list. Example: - (0028,1201) OW 0000\ffff\ffff\0000\ffff\ffff\0000\cccc\0000\0000\1e1e\0000\0101... # 512, 1 RedPaletteColorLookupTableData - (0028,1202) OW 0000\ffff\0000\ffff\8080\3333\ffff\b3b3\0000\0000\1e1e\0000\0101... # 512, 1 GreenPaletteColorLookupTableData - (0028,1203) OW 0000\0000\ffff\ffff\0000\4d4d\0000\0000\0000\0000\1e1e\0000\0101... # 512, 1 BluePaletteColorLookupTableData - */ - var isLookupTableData = 0x0028 === group && element>= 0x1201 && element<0x1300; - - if ((vr === 'SQ') || (!isLookupTableData && !isPixelData && !this.encapsulation && (daikon.Parser.DATA_VRS.indexOf(vr) !== -1) && (vr !== 'UC'))) { - value = this.parseSublist(data, offset, length, vr !== 'SQ'); - - if (length === daikon.Parser.UNDEFINED_LENGTH) { - length = value[value.length - 1].offsetEnd - offset; + function init_block(s) { + var n; + for (n = 0; n < L_CODES; n++) { + s.dyn_ltree[n * 2] = 0; + } + for (n = 0; n < D_CODES; n++) { + s.dyn_dtree[n * 2] = 0; + } + for (n = 0; n < BL_CODES; n++) { + s.bl_tree[n * 2] = 0; + } + s.dyn_ltree[END_BLOCK * 2] = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; + } + function bi_windup(s) { + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; + } + function copy_block(s, buf, len, header) { + bi_windup(s); + if (header) { + put_short(s, len); + put_short(s, ~len); + } + utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); + s.pending += len; + } + function smaller(tree, n, m, depth) { + var _n2 = n * 2; + var _m2 = m * 2; + return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m]; + } + function pqdownheap(s, tree, k) { + var v = s.heap[k]; + var j = k << 1; + while (j <= s.heap_len) { + if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; } - } else if ((length > 0) && !testForTag) { - if (length === daikon.Parser.UNDEFINED_LENGTH) { - if (isPixelData) { - length = (data.byteLength - offset); - } + if (smaller(tree, v, s.heap[j], s.depth)) { + break; } - - value = data.buffer.slice(offset, offset + length); + s.heap[k] = s.heap[j]; + k = j; + j <<= 1; + } + s.heap[k] = v; } - - offset += length; - tag = new daikon.Tag(group, element, vr, value, offsetStart, offsetValue, offset, this.littleEndian, this.charset); - - if (tag.value) { - if (tag.isTransformSyntax()) { - // 传输语法已存在 - this.transformSyntaxAlreadyExist = true; - if (tag.value[0] === daikon.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE) { - this.explicit = false; - this.littleEndian = true; - } else if (tag.value[0] === daikon.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG) { - this.explicit = true; - this.littleEndian = false; - } else if (tag.value[0] === daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE) { - this.needsDeflate = true; - this.explicit = true; - this.littleEndian = true; - } else { - this.explicit = true; - this.littleEndian = true; - } - } else if (tag.isMetaLength()) { - this.metaFinishedOffset = tag.value[0] + offset; - } else if (tag.isCharset()) { - var charset = tag.value; - if (charset.length == 2) { - charset = (charset[0] || "ISO 2022 IR 6") + "\\" + charset[1]; + function compress_block(s, ltree, dtree) { + var dist; + var lc; + var lx = 0; + var code; + var extra; + if (s.last_lit !== 0) { + do { + dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1]; + lc = s.pending_buf[s.l_buf + lx]; + lx++; + if (dist === 0) { + send_code(s, lc, ltree); + } else { + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); } - else if (charset.length == 1) { - - charset = charset[0]; + dist--; + code = d_code(dist); + send_code(s, code, dtree); + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); } - this.charset = charset; + } + } while (lx < s.last_lit); + } + send_code(s, END_BLOCK, ltree); + } + function build_tree(s, desc) { + var tree = desc.dyn_tree; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var elems = desc.stat_desc.elems; + var n, m; + var max_code = -1; + var node; + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + for (n = 0; n < elems; n++) { + if (tree[n * 2] !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + } else { + tree[n * 2 + 1] = 0; + } + } + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0; + tree[node * 2] = 1; + s.depth[node] = 0; + s.opt_len--; + if (has_stree) { + s.static_len -= stree[node * 2 + 1]; } + } + desc.max_code = max_code; + for (n = s.heap_len >> 1; n >= 1; n--) { + pqdownheap(s, tree, n); + } + node = elems; + do { + n = s.heap[ + 1 + /*SMALLEST*/ + ]; + s.heap[ + 1 + /*SMALLEST*/ + ] = s.heap[s.heap_len--]; + pqdownheap( + s, + tree, + 1 + /*SMALLEST*/ + ); + m = s.heap[ + 1 + /*SMALLEST*/ + ]; + s.heap[--s.heap_max] = n; + s.heap[--s.heap_max] = m; + tree[node * 2] = tree[n * 2] + tree[m * 2]; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1] = tree[m * 2 + 1] = node; + s.heap[ + 1 + /*SMALLEST*/ + ] = node++; + pqdownheap( + s, + tree, + 1 + /*SMALLEST*/ + ); + } while (s.heap_len >= 2); + s.heap[--s.heap_max] = s.heap[ + 1 + /*SMALLEST*/ + ]; + gen_bitlen(s, desc); + gen_codes(tree, max_code, s.bl_count); } - - return tag; -}; - - - -daikon.Parser.prototype.parseSublist = function (data, offset, length, raw) { - var sublistItem, - offsetEnd = offset + length, - tags = []; - - this.level++; - - if (length === daikon.Parser.UNDEFINED_LENGTH) { - sublistItem = this.parseSublistItem(data, offset, raw); - - while (!sublistItem.isSequenceDelim()) { - tags.push(sublistItem); - offset = sublistItem.offsetEnd; - sublistItem = this.parseSublistItem(data, offset, raw); + function scan_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1] = 65535; + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + s.bl_tree[curlen * 2] += count; + } else if (curlen !== 0) { + if (curlen !== prevlen) { + s.bl_tree[curlen * 2]++; + } + s.bl_tree[REP_3_6 * 2]++; + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]++; + } else { + s.bl_tree[REPZ_11_138 * 2]++; } - - tags.push(sublistItem); - } else { - while (offset < offsetEnd) { - sublistItem = this.parseSublistItem(data, offset, raw); - tags.push(sublistItem); - offset = sublistItem.offsetEnd; + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; } + } } - - this.level--; - - return tags; -}; - - - -daikon.Parser.prototype.parseSublistItem = function (data, offset, raw) { - var group, element, length, offsetEnd, tag, offsetStart = offset, value = null, offsetValue, sublistItemTag, tags = []; - - group = data.getUint16(offset, this.littleEndian); - offset += 2; - - element = data.getUint16(offset, this.littleEndian); - offset += 2; - - length = data.getUint32(offset, this.littleEndian); - offset += 4; - - offsetValue = offset; - - if (length === daikon.Parser.UNDEFINED_LENGTH) { - tag = this.getNextTag(data, offset); - - while (tag && !tag.isSublistItemDelim()) { - tags.push(tag); - offset = tag.offsetEnd; - tag = this.getNextTag(data, offset); + function send_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + do { + send_code(s, curlen, s.bl_tree); + } while (--count !== 0); + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); } - - tag && tags.push(tag); - tag && (offset = tag.offsetEnd); - } else if (raw) { - value = data.buffer.slice(offset, offset + length); - offset = offset + length; - } else { - offsetEnd = offset + length; - - while (offset < offsetEnd) { - tag = this.getNextTag(data, offset); - tags.push(tag); - offset = tag.offsetEnd; + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; } + } } - - sublistItemTag = new daikon.Tag(group, element, null, value || tags, offsetStart, offsetValue, offset, this.littleEndian); - - return sublistItemTag; -}; - - - -daikon.Parser.prototype.findFirstTagOffset = function (data) { - var offset = 0, - magicCookieLength = daikon.Parser.MAGIC_COOKIE.length, - searchOffsetMax = daikon.Parser.MAGIC_COOKIE_OFFSET * 5, - found = false, - ctr = 0, - ctrIn = 0, - ch = 0; - - if (daikon.Parser.isMagicCookieFound(data)) { - offset = daikon.Parser.MAGIC_COOKIE_OFFSET + magicCookieLength; - } else { - for (ctr = 0; ctr < searchOffsetMax; ctr += 1) { - ch = data.getUint8(ctr); - if (ch === daikon.Parser.MAGIC_COOKIE[0]) { - found = true; - for (ctrIn = 1; ctrIn < magicCookieLength; ctrIn += 1) { - if (data.getUint8(ctr + ctrIn) !== daikon.Parser.MAGIC_COOKIE[ctrIn]) { - found = false; - } - } - - if (found) { - offset = ctr + magicCookieLength; - break; - } - } + function build_bl_tree(s) { + var max_blindex; + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + build_tree(s, s.bl_desc); + for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { + break; } + } + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + return max_blindex; } - - return offset; -}; - - - -daikon.Parser.prototype.hasError = function () { - return (this.error !== null); -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Parser; -} - -},{"./dictionary.js":37,"./image.js":38,"./tag.js":46,"./utilities.js":47,"pako":16}],43:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; - - -/*** Constructor ***/ - -/** - * The RLE constructor. - * @type {Function} - */ -daikon.RLE = daikon.RLE || function () { - this.rawData = null; - this.bytesRead = 0; - this.bytesPut = 0; - this.segElemPut = 0; - this.numSegments = 0; - this.segmentOffsets = []; - this.littleEndian = true; - this.segmentIndex = 0; - this.numElements = 0; - this.size = 0; - this.output = null; -}; - - -/*** Static Pseudo-constants ***/ - -daikon.RLE.HEADER_SIZE = 64; - - -/*** Prototype Methods ***/ - -/** - * Decodes the RLE data. - * @param {ArrayBuffer} data - * @param {boolean} littleEndian - * @param {number} numElements - * @returns {DataView} - */ -daikon.RLE.prototype.decode = function (data, littleEndian, numElements) { - var ctr; - - this.rawData = new DataView(data); - this.littleEndian = littleEndian; - this.numElements = numElements; - - this.readHeader(); - this.output = new DataView(new ArrayBuffer(this.size)); - - for (ctr = 0; ctr < this.numSegments; ctr+=1) { - this.readNextSegment(); + function send_all_trees(s, lcodes, dcodes, blcodes) { + var rank; + send_bits(s, lcodes - 257, 5); + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); + for (rank = 0; rank < blcodes; rank++) { + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); + } + send_tree(s, s.dyn_ltree, lcodes - 1); + send_tree(s, s.dyn_dtree, dcodes - 1); } - - return this.processData(); -}; - - -daikon.RLE.prototype.processData = function () { - /*jslint bitwise: true */ - - var ctr, temp1, temp2, temp3, value, outputProcessed, offset; - - if (this.numSegments === 1) { - return this.output; - } else if (this.numSegments === 2) { - outputProcessed = new DataView(new ArrayBuffer(this.size)); - - for (ctr = 0; ctr < this.numElements; ctr+=1) { - temp1 = (this.output.getInt8(ctr)); - temp2 = (this.output.getInt8(ctr + this.numElements)); - value = (((temp1 & 0xFF) << 8) | (temp2 & 0xFF)); - outputProcessed.setInt16(ctr * 2, value, this.littleEndian); + function detect_data_type(s) { + var black_mask = 4093624447; + var n; + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) { + return Z_BINARY; } - - return outputProcessed; - } else if (this.numSegments === 3) { // rgb - outputProcessed = new DataView(new ArrayBuffer(this.size)); - offset = (2 * this.numElements); - - for (ctr = 0; ctr < this.numElements; ctr+=1) { - outputProcessed.setInt8(ctr * 3, this.output.getInt8(ctr)); - outputProcessed.setInt8(ctr * 3 + 1, this.output.getInt8(ctr + this.numElements)); - outputProcessed.setInt8(ctr * 3 + 2, this.output.getInt8(ctr + offset)); + } + if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2] !== 0) { + return Z_TEXT; + } + } + return Z_BINARY; + } + var static_init_done = false; + function _tr_init(s) { + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + s.bi_buf = 0; + s.bi_valid = 0; + init_block(s); + } + function _tr_stored_block(s, buf, stored_len, last) { + send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); + copy_block(s, buf, stored_len, true); + } + function _tr_align(s) { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); + } + function _tr_flush_block(s, buf, stored_len, last) { + var opt_lenb, static_lenb; + var max_blindex = 0; + if (s.level > 0) { + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + build_tree(s, s.l_desc); + build_tree(s, s.d_desc); + max_blindex = build_bl_tree(s); + opt_lenb = s.opt_len + 3 + 7 >>> 3; + static_lenb = s.static_len + 3 + 7 >>> 3; + if (static_lenb <= opt_lenb) { + opt_lenb = static_lenb; } - - return outputProcessed; - } else { - throw new Error("RLE data with " + this.numSegments + " segments is not supported!"); + } else { + opt_lenb = static_lenb = stored_len + 5; + } + if (stored_len + 4 <= opt_lenb && buf !== -1) { + _tr_stored_block(s, buf, stored_len, last); + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + } else { + send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + init_block(s); + if (last) { + bi_windup(s); + } } -}; - - - -daikon.RLE.prototype.readHeader = function () { - var ctr; - - this.numSegments = this.getInt32(); - this.size = this.numElements * this.numSegments; - - for (ctr = 0; ctr < this.numSegments; ctr+=1) { - this.segmentOffsets[ctr] = this.getInt32(); + function _tr_tally(s, dist, lc) { + s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255; + s.pending_buf[s.l_buf + s.last_lit] = lc & 255; + s.last_lit++; + if (dist === 0) { + s.dyn_ltree[lc * 2]++; + } else { + s.matches++; + dist--; + s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; + s.dyn_dtree[d_code(dist) * 2]++; + } + return s.last_lit === s.lit_bufsize - 1; } + exports2._tr_init = _tr_init; + exports2._tr_stored_block = _tr_stored_block; + exports2._tr_flush_block = _tr_flush_block; + exports2._tr_tally = _tr_tally; + exports2._tr_align = _tr_align; + } +}); - this.bytesRead = daikon.RLE.HEADER_SIZE; -}; - - - -daikon.RLE.prototype.hasValidInput = function () { - return ((this.bytesRead < this.rawData.buffer.byteLength) && - (this.bytesPut < this.size) && (this.segElemPut < this.numElements)); -}; - - - -daikon.RLE.prototype.readNextSegment = function () { - var code; - - this.bytesRead = this.segmentOffsets[this.segmentIndex]; - this.segElemPut = 0; - - while (this.hasValidInput()) { - code = this.get(); +// node_modules/pako/lib/zlib/adler32.js +var require_adler32 = __commonJS({ + "node_modules/pako/lib/zlib/adler32.js"(exports2, module2) { + "use strict"; + function adler32(adler, buf, len, pos) { + var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + } + module2.exports = adler32; + } +}); - if ((code >= 0) && (code < 128)) { - this.readLiteral(code); - } else if ((code <= -1) && (code > -128)) { - this.readEncoded(code); - } else if (code === -128) { - console.warn("RLE: unsupported code!"); +// node_modules/pako/lib/zlib/crc32.js +var require_crc32 = __commonJS({ + "node_modules/pako/lib/zlib/crc32.js"(exports2, module2) { + "use strict"; + function makeTable() { + var c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; } + table[n] = c; + } + return table; } + var crcTable = makeTable(); + function crc32(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + crc ^= -1; + for (var i2 = pos; i2 < end; i2++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i2]) & 255]; + } + return crc ^ -1; + } + module2.exports = crc32; + } +}); - this.segmentIndex+=1; -}; - - - -daikon.RLE.prototype.readLiteral = function (code) { - var ctr, length = (code + 1); +// node_modules/pako/lib/zlib/messages.js +var require_messages = __commonJS({ + "node_modules/pako/lib/zlib/messages.js"(exports2, module2) { + "use strict"; + module2.exports = { + 2: "need dictionary", + /* Z_NEED_DICT 2 */ + 1: "stream end", + /* Z_STREAM_END 1 */ + 0: "", + /* Z_OK 0 */ + "-1": "file error", + /* Z_ERRNO (-1) */ + "-2": "stream error", + /* Z_STREAM_ERROR (-2) */ + "-3": "data error", + /* Z_DATA_ERROR (-3) */ + "-4": "insufficient memory", + /* Z_MEM_ERROR (-4) */ + "-5": "buffer error", + /* Z_BUF_ERROR (-5) */ + "-6": "incompatible version" + /* Z_VERSION_ERROR (-6) */ + }; + } +}); - if (this.hasValidInput()) { - for (ctr = 0; ctr < length; ctr+=1) { - this.put(this.get()); +// node_modules/pako/lib/zlib/deflate.js +var require_deflate = __commonJS({ + "node_modules/pako/lib/zlib/deflate.js"(exports2) { + "use strict"; + var utils = require_common(); + var trees = require_trees(); + var adler32 = require_adler32(); + var crc32 = require_crc32(); + var msg = require_messages(); + var Z_NO_FLUSH = 0; + var Z_PARTIAL_FLUSH = 1; + var Z_FULL_FLUSH = 3; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_BUF_ERROR = -5; + var Z_DEFAULT_COMPRESSION = -1; + var Z_FILTERED = 1; + var Z_HUFFMAN_ONLY = 2; + var Z_RLE = 3; + var Z_FIXED = 4; + var Z_DEFAULT_STRATEGY = 0; + var Z_UNKNOWN = 2; + var Z_DEFLATED = 8; + var MAX_MEM_LEVEL = 9; + var MAX_WBITS = 15; + var DEF_MEM_LEVEL = 8; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; + var PRESET_DICT = 32; + var INIT_STATE = 42; + var EXTRA_STATE = 69; + var NAME_STATE = 73; + var COMMENT_STATE = 91; + var HCRC_STATE = 103; + var BUSY_STATE = 113; + var FINISH_STATE = 666; + var BS_NEED_MORE = 1; + var BS_BLOCK_DONE = 2; + var BS_FINISH_STARTED = 3; + var BS_FINISH_DONE = 4; + var OS_CODE = 3; + function err(strm, errorCode) { + strm.msg = msg[errorCode]; + return errorCode; + } + function rank(f) { + return (f << 1) - (f > 4 ? 9 : 0); + } + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + function flush_pending(strm) { + var s = strm.state; + var len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { + return; + } + utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } + } + function flush_block_only(s, last) { + trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last); + s.block_start = s.strstart; + flush_pending(s.strm); + } + function put_byte(s, b) { + s.pending_buf[s.pending++] = b; + } + function putShortMSB(s, b) { + s.pending_buf[s.pending++] = b >>> 8 & 255; + s.pending_buf[s.pending++] = b & 255; + } + function read_buf(strm, buf, start, size) { + var len = strm.avail_in; + if (len > size) { + len = size; + } + if (len === 0) { + return 0; + } + strm.avail_in -= len; + utils.arraySet(buf, strm.input, strm.next_in, len, start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } else if (strm.state.wrap === 2) { + strm.adler = crc32(strm.adler, buf, len, start); + } + strm.next_in += len; + strm.total_in += len; + return len; + } + function longest_match(s, cur_match) { + var chain_length = s.max_chain_length; + var scan = s.strstart; + var match; + var len; + var best_len = s.prev_length; + var nice_match = s.nice_match; + var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; + var _win = s.window; + var wmask = s.w_mask; + var prev = s.prev; + var strend = s.strstart + MAX_MATCH; + var scan_end1 = _win[scan + best_len - 1]; + var scan_end = _win[scan + best_len]; + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + if (nice_match > s.lookahead) { + nice_match = s.lookahead; + } + do { + match = cur_match; + if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) { + continue; } - } else { - console.warn("RLE: insufficient data!"); + scan += 2; + match++; + do { + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; } -}; - - - -daikon.RLE.prototype.readEncoded = function (code) { - var ctr, - runLength = (1 - code), - encoded = this.get(); - - for (ctr = 0; ctr < runLength; ctr+=1) { - this.put(encoded); + function fill_window(s) { + var _w_size = s.w_size; + var p, n, m, more, str; + do { + more = s.window_size - s.lookahead - s.strstart; + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + utils.arraySet(s.window, s.window, _w_size, _w_size, 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + s.block_start -= _w_size; + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + n = _w_size; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; + while (s.insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); } -}; - - - -daikon.RLE.prototype.getInt32 = function () { - var value = this.rawData.getInt32(this.bytesRead, this.littleEndian); - this.bytesRead += 4; - return value; -}; - - - -daikon.RLE.prototype.getInt16 = function () { - var value = this.rawData.getInt16(this.bytesRead, this.littleEndian); - this.bytesRead += 2; - return value; -}; - - - -daikon.RLE.prototype.get = function () { - var value = this.rawData.getInt8(this.bytesRead); - this.bytesRead += 1; - return value; -}; - - - -daikon.RLE.prototype.put = function (val) { - this.output.setInt8(this.bytesPut, val); - this.bytesPut += 1; - this.segElemPut += 1; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.RLE; -} - -},{}],44:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); -daikon.Image = daikon.Image || ((typeof require !== 'undefined') ? require('./image.js') : null); -daikon.OrderedMap = daikon.OrderedMap || ((typeof require !== 'undefined') ? require('./orderedmap.js') : null); -daikon.OrderedMapIterator = daikon.OrderedMapIterator || ((typeof require !== 'undefined') ? require('./iterator.js') : null); -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); - - -/*** Constructor ***/ - -/** - * The Series constructor. - * @property {daikon.Image[]} images - * @type {Function} - */ -daikon.Series = daikon.Series || function () { - this.images = []; - this.imagesOriginalOrder = null; - this.isMosaic = false; - this.isElscint = false; - this.isCompressed = false; - this.numberOfFrames = 0; - this.numberOfFramesInFile = 0; - this.isMultiFrame = false; - this.isMultiFrameVolume = false; - this.isMultiFrameTimeseries = false; - this.isImplicitTimeseries = false; - this.sliceSense = false; - this.sliceDir = daikon.Image.SLICE_DIRECTION_UNKNOWN; - this.error = null; -}; - - -/*** Static fields ***/ -daikon.Series.parserError = null; - -/** - * True to keep original order of images, ignoring metadata-based ordering. - * @type {boolean} - */ -daikon.Series.useExplicitOrdering = false; - -/** - * A hint to software to use this explicit distance (mm) between slices (see daikon.Series.useExplicitOrdering) - * @type {number} - */ -daikon.Series.useExplicitSpacing = 0; - - -/*** Static Methods ***/ - -/** - * Parses the DICOM header and return an image object. - * @param {DataView} data - * @returns {daikon.Image|null} - */ -daikon.Series.parseImage = function (data) { - var parser, image; - - parser = new daikon.Parser(); - image = parser.parse(data); - - if (parser.hasError()) { - daikon.Series.parserError = parser.error; - return null; + function deflate_stored(s, flush) { + var max_block_size = 65535; + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + for (; ; ) { + if (s.lookahead <= 1) { + fill_window(s); + if (s.lookahead === 0 && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.strstart += s.lookahead; + s.lookahead = 0; + var max_start = s.block_start + max_block_size; + if (s.strstart === 0 || s.strstart >= max_start) { + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.strstart > s.block_start) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_NEED_MORE; } - - if (parser.inflated) { - image.inflated = parser.inflated; + function deflate_fast(s, flush) { + var hash_head; + var bflush; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) { + s.match_length--; + do { + s.strstart++; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } while (--s.match_length !== 0); + s.strstart++; + } else { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; + } + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; } - - return image; -}; - - - -daikon.Series.getMosaicOffset = function (mosaicCols, mosaicColWidth, mosaicRowHeight, mosaicWidth, xLocVal, - yLocVal, zLocVal) { - var xLoc, yLoc, zLoc; - - xLoc = xLocVal; - yLoc = yLocVal; - zLoc = zLocVal; - - xLoc = ((zLoc % mosaicCols) * mosaicColWidth) + xLoc; - yLoc = (((parseInt(zLoc / mosaicCols)) * mosaicRowHeight) + yLoc) * mosaicWidth; - - return (xLoc + yLoc); -}; - - - -daikon.Series.orderDicoms = function (images, numFrames, sliceDir) { - var hasImagePosition, hasSliceLocation, hasImageNumber, timeMap, timeIt, ctr, ctrIn, dg, ordered, - imagesOrderedByTimeAndSpace; - - hasImagePosition = (images[0].getImagePosition() !== null); - hasSliceLocation = (images[0].getSliceLocation() !== null); - hasImageNumber = (images[0].getImageNumber() !== null); - - timeMap = daikon.Series.orderByTime(images, numFrames, sliceDir, hasImagePosition, hasSliceLocation); - timeIt = timeMap.orderedKeys; - - imagesOrderedByTimeAndSpace = []; - - for (ctr = 0; ctr < timeIt.length; ctr += 1) { - dg = timeMap.get(timeIt[ctr]); - - if (hasImagePosition) { - ordered = daikon.Series.orderByImagePosition(dg, sliceDir); - } else if (hasSliceLocation) { - ordered = daikon.Series.orderBySliceLocation(dg); - } else if (hasImageNumber) { - ordered = daikon.Series.orderByImageNumber(dg); + function deflate_slow(s, flush) { + var hash_head; + var bflush; + var max_insert; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) { + s.match_length = MIN_MATCH - 1; + } + } + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } else if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + if (bflush) { + flush_block_only(s, false); + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_rle(s, flush) { + var bflush; + var prev; + var scan, strend; + var _win = s.window; + for (; ; ) { + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; } else { - ordered = dg; + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; } - - for (ctrIn = 0; ctrIn < ordered.length; ctrIn += 1) { - imagesOrderedByTimeAndSpace.push(ordered[ctrIn]); + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; } - - for (ctrIn = 0; ctrIn < imagesOrderedByTimeAndSpace.length; ctrIn += 1) { - imagesOrderedByTimeAndSpace[ctrIn].index = ctrIn; + function deflate_huff(s, flush) { + var bflush; + for (; ; ) { + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; + } + } + s.match_length = 0; + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; } - - return imagesOrderedByTimeAndSpace; -}; - - - -daikon.Series.orderByImagePosition = function (images, sliceDir) { - var dicomMap, ctr; - dicomMap = new daikon.OrderedMap(); - - for (ctr = 0; ctr < images.length; ctr += 1) { - dicomMap.put(images[ctr].getImagePositionSliceDir(sliceDir), images[ctr]); + function Config(good_length, max_lazy, nice_length, max_chain, func2) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func2; } - - return dicomMap.getOrderedValues(); -}; - - - -daikon.Series.orderBySliceLocation = function (images) { - var dicomMap, ctr; - dicomMap = new daikon.OrderedMap(); - - for (ctr = 0; ctr < images.length; ctr += 1) { - dicomMap.put(images[ctr].getSliceLocation(), images[ctr]); + var configuration_table; + configuration_table = [ + /* good lazy nice chain */ + new Config(0, 0, 0, 0, deflate_stored), + /* 0 store only */ + new Config(4, 4, 8, 4, deflate_fast), + /* 1 max speed, no lazy matches */ + new Config(4, 5, 16, 8, deflate_fast), + /* 2 */ + new Config(4, 6, 32, 32, deflate_fast), + /* 3 */ + new Config(4, 4, 16, 16, deflate_slow), + /* 4 lazy matches */ + new Config(8, 16, 32, 32, deflate_slow), + /* 5 */ + new Config(8, 16, 128, 128, deflate_slow), + /* 6 */ + new Config(8, 32, 128, 256, deflate_slow), + /* 7 */ + new Config(32, 128, 258, 1024, deflate_slow), + /* 8 */ + new Config(32, 258, 258, 4096, deflate_slow) + /* 9 max compression */ + ]; + function lm_init(s) { + s.window_size = 2 * s.w_size; + zero(s.head); + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; } - - return dicomMap.getOrderedValues(); -}; - - - -daikon.Series.orderByImageNumber = function (images) { - var dicomMap, ctr; - dicomMap = new daikon.OrderedMap(); - - for (ctr = 0; ctr < images.length; ctr += 1) { - dicomMap.put(images[ctr].getImageNumber(), images[ctr]); + function DeflateState() { + this.strm = null; + this.status = 0; + this.pending_buf = null; + this.pending_buf_size = 0; + this.pending_out = 0; + this.pending = 0; + this.wrap = 0; + this.gzhead = null; + this.gzindex = 0; + this.method = Z_DEFLATED; + this.last_flush = -1; + this.w_size = 0; + this.w_bits = 0; + this.w_mask = 0; + this.window = null; + this.window_size = 0; + this.prev = null; + this.head = null; + this.ins_h = 0; + this.hash_size = 0; + this.hash_bits = 0; + this.hash_mask = 0; + this.hash_shift = 0; + this.block_start = 0; + this.match_length = 0; + this.prev_match = 0; + this.match_available = 0; + this.strstart = 0; + this.match_start = 0; + this.lookahead = 0; + this.prev_length = 0; + this.max_chain_length = 0; + this.max_lazy_match = 0; + this.level = 0; + this.strategy = 0; + this.good_match = 0; + this.nice_match = 0; + this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); + this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2); + this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + this.l_desc = null; + this.d_desc = null; + this.bl_desc = null; + this.bl_count = new utils.Buf16(MAX_BITS + 1); + this.heap = new utils.Buf16(2 * L_CODES + 1); + zero(this.heap); + this.heap_len = 0; + this.heap_max = 0; + this.depth = new utils.Buf16(2 * L_CODES + 1); + zero(this.depth); + this.l_buf = 0; + this.lit_bufsize = 0; + this.last_lit = 0; + this.d_buf = 0; + this.opt_len = 0; + this.static_len = 0; + this.matches = 0; + this.insert = 0; + this.bi_buf = 0; + this.bi_valid = 0; } - - return dicomMap.getOrderedValues(); -}; - - - -daikon.Series.hasMatchingSlice = function (dg, image, sliceDir, doImagePos, doSliceLoc) { - var matchingNum = 0, ctr, current, imagePos, sliceLoc, imageNum; - - if (doImagePos) { - matchingNum = image.getImagePositionSliceDir(sliceDir); - } else if (doSliceLoc) { - matchingNum = image.getSliceLocation(); - } else { - matchingNum = image.getImageNumber(); + function deflateResetKeep(strm) { + var s; + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR); + } + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + s = strm.state; + s.pending = 0; + s.pending_out = 0; + if (s.wrap < 0) { + s.wrap = -s.wrap; + } + s.status = s.wrap ? INIT_STATE : BUSY_STATE; + strm.adler = s.wrap === 2 ? 0 : 1; + s.last_flush = Z_NO_FLUSH; + trees._tr_init(s); + return Z_OK; } - - for (ctr = 0; ctr < dg.length; ctr += 1) { - current = dg[ctr]; - - if (doImagePos) { - imagePos = current.getImagePositionSliceDir(sliceDir); - if (imagePos === matchingNum) { - return true; + function deflateReset(strm) { + var ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; + } + function deflateSetHeader(strm, head) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + if (strm.state.wrap !== 2) { + return Z_STREAM_ERROR; + } + strm.state.gzhead = head; + return Z_OK; + } + function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { + if (!strm) { + return Z_STREAM_ERROR; + } + var wrap = 1; + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else if (windowBits > 15) { + wrap = 2; + windowBits -= 16; + } + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR); + } + if (windowBits === 8) { + windowBits = 9; + } + var s = new DeflateState(); + strm.state = s; + s.strm = strm; + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + s.window = new utils.Buf8(s.w_size * 2); + s.head = new utils.Buf16(s.hash_size); + s.prev = new utils.Buf16(s.w_size); + s.lit_bufsize = 1 << memLevel + 6; + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new utils.Buf8(s.pending_buf_size); + s.d_buf = 1 * s.lit_bufsize; + s.l_buf = (1 + 2) * s.lit_bufsize; + s.level = level; + s.strategy = strategy; + s.method = method; + return deflateReset(strm); + } + function deflateInit(strm, level) { + return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); + } + function deflate(strm, flush) { + var old_flush, s; + var beg, val; + if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + s = strm.state; + if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH) { + return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + s.strm = strm; + old_flush = s.last_flush; + s.last_flush = flush; + if (s.status === INIT_STATE) { + if (s.wrap === 2) { + strm.adler = 0; + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } else { + put_byte( + s, + (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16) + ); + put_byte(s, s.gzhead.time & 255); + put_byte(s, s.gzhead.time >> 8 & 255); + put_byte(s, s.gzhead.time >> 16 & 255); + put_byte(s, s.gzhead.time >> 24 & 255); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, s.gzhead.os & 255); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 255); + put_byte(s, s.gzhead.extra.length >> 8 & 255); } - } else if (doSliceLoc) { - sliceLoc = current.getSliceLocation(); - if (sliceLoc === matchingNum) { - return true; + if (s.gzhead.hcrc) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0); } + s.gzindex = 0; + s.status = EXTRA_STATE; + } } else { - imageNum = current.getImageNumber(); - if (imageNum === matchingNum) { - return true; - } + var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8; + var level_flags = -1; + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= level_flags << 6; + if (s.strstart !== 0) { + header |= PRESET_DICT; + } + header += 31 - header % 31; + s.status = BUSY_STATE; + putShortMSB(s, header); + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + strm.adler = 1; } - } - - return false; -}; - - - -daikon.Series.orderByTime = function (images, numFrames, sliceDir, hasImagePosition, hasSliceLocation) { - var dicomMap, hasTemporalPosition, hasTemporalNumber, ctr, image, tempPos, dg, timeBySliceMap, imageNum, - sliceMarker, slice, dicomsCopy, dicomsCopyIndex, sliceIt, timeIt, dgFound, it; - - dicomMap = new daikon.OrderedMap(); - hasTemporalPosition = (numFrames > 1) && (images[0].getTemporalPosition() !== null); - hasTemporalNumber = (numFrames > 1) && (images[0].getTemporalNumber() !== null) && (images[0].getTemporalNumber() === numFrames); - - if (hasTemporalPosition && hasTemporalNumber) { // explicit series - for (ctr = 0; ctr < images.length; ctr += 1) { - image = images[ctr]; - - tempPos = image.getTemporalPosition(); - dg = dicomMap.get(tempPos); - if (!dg) { - dg = []; - dicomMap.put(tempPos, dg); + } + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra) { + beg = s.pending; + while (s.gzindex < (s.gzhead.extra.length & 65535)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } } - - dg.push(image); + put_byte(s, s.gzhead.extra[s.gzindex] & 255); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } else { + s.status = NAME_STATE; } - } else { // implicit series - // order data by slice then time - timeBySliceMap = new daikon.OrderedMap(); - for (ctr = 0; ctr < images.length; ctr += 1) { - if (images[ctr] !== null) { - imageNum = images[ctr].getImageNumber(); - sliceMarker = ctr; - if (hasImagePosition) { - sliceMarker = images[ctr].getImagePositionSliceDir(sliceDir); - } else if (hasSliceLocation) { - sliceMarker = images[ctr].getSliceLocation(); - } - - slice = timeBySliceMap.get(sliceMarker); - if (slice === null) { - slice = new daikon.OrderedMap(); - timeBySliceMap.put(sliceMarker, slice); - } - - slice.put(ctr, images[ctr]); + } + if (s.status === NAME_STATE) { + if (s.gzhead.name) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } else { + s.status = COMMENT_STATE; } - - // copy into DICOM array (ordered by slice by time) - dicomsCopy = []; - dicomsCopyIndex = 0; - sliceIt = timeBySliceMap.iterator(); - while (sliceIt.hasNext()) { - slice = sliceIt.next(); - timeIt = slice.iterator(); - while (timeIt.hasNext()) { - dicomsCopy[dicomsCopyIndex] = timeIt.next(); - dicomsCopyIndex += 1; + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } else { + s.status = HCRC_STATE; } - - // groups dicoms by timepoint - for (ctr = 0; ctr < dicomsCopy.length; ctr += 1) { - if (dicomsCopy[ctr] !== null) { - dgFound = null; - it = dicomMap.iterator(); - while (it.hasNext()) { - dg = it.next(); - if (!daikon.Series.hasMatchingSlice(dg, dicomsCopy[ctr], sliceDir, hasImagePosition, hasSliceLocation)) { - dgFound = dg; - break; - } - } - - if (dgFound === null) { - dgFound = []; - dicomMap.put(dicomMap.orderedKeys.length, dgFound); - } - - dgFound.push(dicomsCopy[ctr]); + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + strm.adler = 0; + s.status = BUSY_STATE; + } + } else { + s.status = BUSY_STATE; + } + } + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) { + var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush); + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + } + return Z_OK; + } + if (bstate === BS_BLOCK_DONE) { + if (flush === Z_PARTIAL_FLUSH) { + trees._tr_align(s); + } else if (flush !== Z_BLOCK) { + trees._tr_stored_block(s, 0, 0, false); + if (flush === Z_FULL_FLUSH) { + zero(s.head); + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } } + } + if (flush !== Z_FINISH) { + return Z_OK; + } + if (s.wrap <= 0) { + return Z_STREAM_END; + } + if (s.wrap === 2) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + put_byte(s, strm.adler >> 16 & 255); + put_byte(s, strm.adler >> 24 & 255); + put_byte(s, strm.total_in & 255); + put_byte(s, strm.total_in >> 8 & 255); + put_byte(s, strm.total_in >> 16 & 255); + put_byte(s, strm.total_in >> 24 & 255); + } else { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + flush_pending(strm); + if (s.wrap > 0) { + s.wrap = -s.wrap; + } + return s.pending !== 0 ? Z_OK : Z_STREAM_END; } - - return dicomMap; -}; - - -/*** Prototype Methods ***/ - -daikon.Series.prototype.getOrder = function () { - var ctr, order = []; - - for (ctr = 0; ctr < this.imagesOriginalOrder.length; ctr += 1) { - order[ctr] = this.imagesOriginalOrder[ctr].index; - } - - return order; -}; - - -/** - * Returns the series ID. - * @returns {string} - */ -daikon.Series.prototype.toString = function () { - return this.images[0].getSeriesId(); -}; - - -/** - * Returns a nice name for the series. - * @returns {string|null} - */ -daikon.Series.prototype.getName = function () { - var des = this.images[0].getSeriesDescription(); - var uid = this.images[0].getSeriesInstanceUID(); - - if (des !== null) { - return des; - } - - if (uid !== null) { - return uid; + function deflateEnd(strm) { + var status; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + status = strm.state.status; + if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) { + return err(strm, Z_STREAM_ERROR); + } + strm.state = null; + return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; } - - return null; -}; - - -/** - * Adds an image to the series. - * @param {daikon.Image} image - */ -daikon.Series.prototype.addImage = function (image) { - this.images.push(image); -}; - - -/** - * Returns true if the specified image is part of the series (or if no images are yet part of the series). - * @param {daikon.Image} image - * @returns {boolean} - */ -daikon.Series.prototype.matchesSeries = function (image) { - if (this.images.length === 0) { - return true; + function deflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var s; + var str, n; + var wrap; + var avail; + var next; + var input; + var tmpDict; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + s = strm.state; + wrap = s.wrap; + if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) { + return Z_STREAM_ERROR; + } + if (wrap === 1) { + strm.adler = adler32(strm.adler, dictionary, dictLength, 0); + } + s.wrap = 0; + if (dictLength >= s.w_size) { + if (wrap === 0) { + zero(s.head); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + tmpDict = new utils.Buf8(s.w_size); + utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + avail = strm.avail_in; + next = strm.next_in; + input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + str = s.strstart; + n = s.lookahead - (MIN_MATCH - 1); + do { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK; } + exports2.deflateInit = deflateInit; + exports2.deflateInit2 = deflateInit2; + exports2.deflateReset = deflateReset; + exports2.deflateResetKeep = deflateResetKeep; + exports2.deflateSetHeader = deflateSetHeader; + exports2.deflate = deflate; + exports2.deflateEnd = deflateEnd; + exports2.deflateSetDictionary = deflateSetDictionary; + exports2.deflateInfo = "pako deflate (from Nodeca project)"; + } +}); - return (this.images[0].getSeriesId() === image.getSeriesId()); -}; - - -/** - * Orders and organizes the images in this series. - */ -daikon.Series.prototype.buildSeries = function () { - var hasFrameTime, ctr, sliceLoc, orderedImages, sliceLocationFirst, sliceLocationLast, sliceLocDiff, - sliceLocations, orientation, imagePos; - - this.isMosaic = this.images[0].isMosaic(); - this.isElscint = this.images[0].isElscint(); - this.isCompressed = this.images[0].isCompressed(); - - // check for multi-frame - this.numberOfFrames = this.images[0].getNumberOfFrames(); - this.numberOfFramesInFile = this.images[0].getNumberOfImplicitFrames(); - this.isMultiFrame = (this.numberOfFrames > 1) || (this.isMosaic && (this.images[0].length > 1)); - this.isMultiFrameVolume = false; - this.isMultiFrameTimeseries = false; - this.isImplicitTimeseries = false; - - if (this.isMultiFrame) { - hasFrameTime = (this.images[0].getFrameTime() > 0); - if (this.isMosaic) { - this.isMultiFrameTimeseries = true; +// node_modules/pako/lib/utils/strings.js +var require_strings = __commonJS({ + "node_modules/pako/lib/utils/strings.js"(exports2) { + "use strict"; + var utils = require_common(); + var STR_APPLY_OK = true; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (__) { + STR_APPLY_OK = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new utils.Buf8(256); + for (q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + var q; + _utf8len[254] = _utf8len[254] = 1; + exports2.string2buf = function(str) { + var buf, c, c2, m_pos, i2, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new utils.Buf8(buf_len); + for (i2 = 0, m_pos = 0; i2 < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i2++] = c; + } else if (c < 2048) { + buf[i2++] = 192 | c >>> 6; + buf[i2++] = 128 | c & 63; + } else if (c < 65536) { + buf[i2++] = 224 | c >>> 12; + buf[i2++] = 128 | c >>> 6 & 63; + buf[i2++] = 128 | c & 63; } else { - if (hasFrameTime) { - this.isMultiFrameTimeseries = true; - } else if (this.numberOfFramesInFile > 1) { - this.isMultiFrameTimeseries = true; - this.numberOfFrames = this.images.length; - } else { - this.isMultiFrameVolume = true; - } + buf[i2++] = 240 | c >>> 18; + buf[i2++] = 128 | c >>> 12 & 63; + buf[i2++] = 128 | c >>> 6 & 63; + buf[i2++] = 128 | c & 63; } + } + return buf; + }; + function buf2binstring(buf, len) { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + var result = ""; + for (var i2 = 0; i2 < len; i2++) { + result += String.fromCharCode(buf[i2]); + } + return result; } - - if (!this.isMosaic && (this.numberOfFrames <= 1)) { // check for implicit frame count - imagePos = (this.images[0].getImagePosition() || []); - sliceLoc = imagePos.toString(); - this.numberOfFrames = 0; - - for (ctr = 0; ctr < this.images.length; ctr += 1) { - imagePos = (this.images[ctr].getImagePosition() || []); - - if (imagePos.toString() === sliceLoc) { - this.numberOfFrames += 1; - } + exports2.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); + }; + exports2.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i2 = 0, len = buf.length; i2 < len; i2++) { + buf[i2] = str.charCodeAt(i2); + } + return buf; + }; + exports2.buf2string = function(buf, max) { + var i2, out, c, c_len; + var len = max || buf.length; + var utf16buf = new Array(len * 2); + for (out = 0, i2 = 0; i2 < len; ) { + c = buf[i2++]; + if (c < 128) { + utf16buf[out++] = c; + continue; } - - if (this.numberOfFrames > 1) { - this.isImplicitTimeseries = true; + c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i2 += c_len - 1; + continue; } - } - - this.sliceDir = this.images[0].getAcquiredSliceDirection(); + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i2 < len) { + c = c << 6 | buf[i2++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + exports2.utf8border = function(buf, max) { + var pos; + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + } +}); - if (daikon.Series.useExplicitOrdering) { - orderedImages = this.images.slice(); - } else { - orderedImages = daikon.Series.orderDicoms(this.images, this.numberOfFrames, this.sliceDir); +// node_modules/pako/lib/zlib/zstream.js +var require_zstream = __commonJS({ + "node_modules/pako/lib/zlib/zstream.js"(exports2, module2) { + "use strict"; + function ZStream() { + this.input = null; + this.next_in = 0; + this.avail_in = 0; + this.total_in = 0; + this.output = null; + this.next_out = 0; + this.avail_out = 0; + this.total_out = 0; + this.msg = ""; + this.state = null; + this.data_type = 2; + this.adler = 0; } + module2.exports = ZStream; + } +}); - sliceLocationFirst = orderedImages[0].getImagePositionSliceDir(this.sliceDir); - sliceLocationLast = orderedImages[orderedImages.length - 1].getImagePositionSliceDir(this.sliceDir); - sliceLocDiff = sliceLocationLast - sliceLocationFirst; - - if (daikon.Series.useExplicitOrdering) { - this.sliceSense = false; - } else if (this.isMosaic) { - this.sliceSense = true; - } else if (this.isMultiFrame) { - sliceLocations = orderedImages[0].getSliceLocationVector(); - if (sliceLocations !== null) { - orientation = orderedImages[0].getOrientation(); - - if (orientation.charAt(2) === 'Z') { - this.sliceSense = (sliceLocations[0] - sliceLocations[sliceLocations.length - 1]) < 0; - } else { - this.sliceSense = (sliceLocations[0] - sliceLocations[sliceLocations.length - 1]) > 0; - } +// node_modules/pako/lib/deflate.js +var require_deflate2 = __commonJS({ + "node_modules/pako/lib/deflate.js"(exports2) { + "use strict"; + var zlib_deflate = require_deflate(); + var utils = require_common(); + var strings = require_strings(); + var msg = require_messages(); + var ZStream = require_zstream(); + var toString = Object.prototype.toString; + var Z_NO_FLUSH = 0; + var Z_FINISH = 4; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_SYNC_FLUSH = 2; + var Z_DEFAULT_COMPRESSION = -1; + var Z_DEFAULT_STRATEGY = 0; + var Z_DEFLATED = 8; + function Deflate(options) { + if (!(this instanceof Deflate)) + return new Deflate(options); + this.options = utils.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits > 0) { + opt.windowBits = -opt.windowBits; + } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) { + opt.windowBits += 16; + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status = zlib_deflate.deflateInit2( + this.strm, + opt.level, + opt.method, + opt.windowBits, + opt.memLevel, + opt.strategy + ); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + if (opt.header) { + zlib_deflate.deflateSetHeader(this.strm, opt.header); + } + if (opt.dictionary) { + var dict; + if (typeof opt.dictionary === "string") { + dict = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + dict = new Uint8Array(opt.dictionary); } else { - this.sliceSense = sliceLocationFirst < 0 ? false : true; // maybe??? + dict = opt.dictionary; } - } else { - /* - * "The direction of the axes is defined fully by the patient's orientation. The x-axis is increasing to the left hand side of the patient. The - * y-axis is increasing to the posterior side of the patient. The z-axis is increasing toward the head of the patient." - */ - if ((this.sliceDir === daikon.Image.SLICE_DIRECTION_SAGITTAL) || (this.sliceDir === daikon.Image.SLICE_DIRECTION_CORONAL)) { - if (sliceLocDiff > 0) { - this.sliceSense = false; - } else { - this.sliceSense = true; - } - } else { - if (sliceLocDiff > 0) { - this.sliceSense = true; - } else { - this.sliceSense = false; - } + status = zlib_deflate.deflateSetDictionary(this.strm, dict); + if (status !== Z_OK) { + throw new Error(msg[status]); } + this._dict_set = true; + } } - - this.imagesOriginalOrder = this.images; - this.images = orderedImages; -}; - - -/** - * Concatenates image data (asynchronously). - * @param {object} progressMeter -- the object must have a drawProgress(percent, label) function [e.g., drawProgress(.5, "Loading...")] - * @param {Function} onFinishedImageRead -- callback - */ -daikon.Series.prototype.concatenateImageData = function (progressMeter, onFinishedImageRead) { - var buffer, data, length; - - if (this.isMosaic) { - data = this.getMosaicData(this.images[0], this.images[0].getPixelDataBytes()); - } else { - data = this.images[0].getPixelDataBytes(); - } - - length = this.validatePixelDataLength(this.images[0]); - this.images[0].clearPixelData(); - buffer = new Uint8Array(new ArrayBuffer(length * this.images.length)); - buffer.set(new Uint8Array(data, 0, length), 0); - - setTimeout(daikon.Utils.bind(this, function() { this.concatenateNextImageData(buffer, length, progressMeter, 1, onFinishedImageRead)}), 0); -}; - - - -daikon.Series.prototype.concatenateNextImageData = function (buffer, frameSize, progressMeter, index, - onFinishedImageRead) { - var data, length; - - if (index >= this.images.length) { - if (progressMeter) { - progressMeter.drawProgress(1, "Reading DICOM Images"); + Deflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status, _mode; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.string2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; } - - onFinishedImageRead(buffer.buffer); - } else { - if (progressMeter) { - progressMeter.drawProgress(index / this.images.length, "Reading DICOM Images"); + status = zlib_deflate.deflate(strm, _mode); + if (status !== Z_STREAM_END && status !== Z_OK) { + this.onEnd(status); + this.ended = true; + return false; } - - if (this.isMosaic) { - data = this.getMosaicData(this.images[index], this.images[index].getPixelDataBytes()); + if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END); + if (_mode === Z_FINISH) { + status = zlib_deflate.deflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === Z_OK; + } + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Deflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Deflate.prototype.onEnd = function(status) { + if (status === Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); } else { - data = this.images[index].getPixelDataBytes(); + this.result = utils.flattenChunks(this.chunks); } - - length = this.validatePixelDataLength(this.images[index]); - this.images[index].clearPixelData(); - buffer.set(new Uint8Array(data, 0, length), (frameSize * index)); - - setTimeout(daikon.Utils.bind(this, function() {this.concatenateNextImageData(buffer, frameSize, progressMeter, - index + 1, onFinishedImageRead);}), 0); + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + function deflate(input, options) { + var deflator = new Deflate(options); + deflator.push(input, true); + if (deflator.err) { + throw deflator.msg || msg[deflator.err]; + } + return deflator.result; } -}; - - - -daikon.Series.prototype.validatePixelDataLength = function (image) { - var length = image.getPixelDataBytes().byteLength, - sliceLength = image.getCols() * image.getRows(); - - // pixel data length should be divisible by slice size, if not, try to figure out correct pixel data length - if ((length % sliceLength) === 0) { - return length; + function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate(input, options); } + function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate(input, options); + } + exports2.Deflate = Deflate; + exports2.deflate = deflate; + exports2.deflateRaw = deflateRaw; + exports2.gzip = gzip; + } +}); - return sliceLength * image.getNumberOfFrames() * image.getNumberOfSamplesPerPixel() * (image.getBitsAllocated() / 8); -}; - - - -daikon.Series.prototype.getMosaicData = function (image, data) { - var mosaicWidth, mosaicHeight, mosaicRows, mosaicCols, mosaicRowHeight, mosaicColWidth, - numBytes, ctrS, ctrR, ctrC, numSlices, numRows, numCols, buffer, dataTyped, offset, ctr, index = 0; - - numBytes = parseInt(this.images[0].getBitsAllocated() / 8); - numSlices = this.images[0].getMosaicCols() * this.images[0].getMosaicRows(); - numRows = parseInt(this.images[0].getRows() / this.images[0].getMosaicRows()); - numCols = parseInt(this.images[0].getCols() / this.images[0].getMosaicCols()); - - mosaicWidth = this.images[0].getCols(); - mosaicHeight = this.images[0].getRows(); - mosaicRows = this.images[0].getMosaicRows(); - mosaicCols = this.images[0].getMosaicCols(); - mosaicRowHeight = parseInt(mosaicHeight / mosaicRows); - mosaicColWidth = parseInt(mosaicWidth / mosaicCols); - - buffer = new Uint8Array(new ArrayBuffer(numSlices * numRows * numCols * numBytes)); - dataTyped = new Uint8Array(data); - - for (ctrS = 0; ctrS < numSlices; ctrS += 1) { - for (ctrR = 0; ctrR < numRows; ctrR += 1) { - for (ctrC = 0; ctrC < numCols; ctrC += 1) { - offset = daikon.Series.getMosaicOffset(mosaicCols, mosaicColWidth, mosaicRowHeight, mosaicWidth, ctrC, - ctrR, ctrS); - for (ctr = 0; ctr < numBytes; ctr += 1) { - buffer[index] = dataTyped[(offset * numBytes) + ctr]; - index += 1; +// node_modules/pako/lib/zlib/inffast.js +var require_inffast = __commonJS({ + "node_modules/pako/lib/zlib/inffast.js"(exports2, module2) { + "use strict"; + var BAD = 30; + var TYPE = 12; + module2.exports = function inflate_fast(strm, start) { + var state; + var _in; + var last; + var _out; + var beg; + var end; + var dmax; + var wsize; + var whave; + var wnext; + var s_window; + var hold; + var bits; + var lcode; + var dcode; + var lmask; + var dmask; + var here; + var op; + var len; + var dist; + var from; + var from_source; + var input, output; + state = strm.state; + _in = strm.next_in; + input = strm.input; + last = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); + dmax = state.dmax; + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = lcode[hold & lmask]; + dolen: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op === 0) { + output[_out++] = here & 65535; + } else if (op & 16) { + len = here & 65535; + op &= 15; + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & (1 << op) - 1; + hold >>>= op; + bits -= op; } + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + dodist: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op & 16) { + dist = here & 65535; + op &= 15; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & (1 << op) - 1; + if (dist > dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + hold >>>= op; + bits -= op; + op = _out - beg; + if (dist > op) { + op = dist - op; + if (op > whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + } + from = 0; + from_source = s_window; + if (wnext === 0) { + from += wsize - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } else if (wnext < op) { + from += wsize + wnext - op; + op -= wnext; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + } else { + from += wnext - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } else { + from = _out - dist; + do { + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } else if ((op & 64) === 0) { + here = dcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dodist; + } else { + strm.msg = "invalid distance code"; + state.mode = BAD; + break top; + } + break; + } + } else if ((op & 64) === 0) { + here = lcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dolen; + } else if (op & 32) { + state.mode = TYPE; + break top; + } else { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break top; + } + break; } - } - } - - return buffer.buffer; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Series; -} - -},{"./image.js":38,"./iterator.js":39,"./orderedmap.js":41,"./parser.js":42,"./utilities.js":47}],45:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); - - -/*** Constructor ***/ - -/** - * The Siemens constructor. - * @params {ArrayBuffer} buffer - * @type {Function} - */ -daikon.Siemens = daikon.Siemens || function (buffer) { - this.output = ""; - this.data = new DataView(buffer, 0); -}; - - -/*** Static Pseudo-constants ***/ - -daikon.Siemens.CSA2_MAGIC_NUMBER = [83, 86, 49, 48]; -daikon.Siemens.NAME_LENGTH = 64; -daikon.Siemens.ELEMENT_CSA1 = 0x1010; -daikon.Siemens.ELEMENT_CSA2 = 0x1020; -daikon.Siemens.GROUP_CSA = 0x029; - - -/*** Prototype Methods ***/ - -/** - * Reads the Siemens header. (See http://nipy.org/nibabel/dicom/siemens_csa.html) - * @returns {string} - */ -daikon.Siemens.prototype.readHeader = function () { - /*jslint bitwise: true */ - - var ctr, match; - - try { - if (this.data.byteLength > daikon.Siemens.CSA2_MAGIC_NUMBER.length) { - match = true; + } while (_in < last && _out < end); + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last); + strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end); + state.hold = hold; + state.bits = bits; + return; + }; + } +}); - for (ctr = 0; ctr < daikon.Siemens.CSA2_MAGIC_NUMBER.length; ctr += 1) { - match &= (this.data.getUint8(ctr) === daikon.Siemens.CSA2_MAGIC_NUMBER[ctr]); +// node_modules/pako/lib/zlib/inftrees.js +var require_inftrees = __commonJS({ + "node_modules/pako/lib/zlib/inftrees.js"(exports2, module2) { + "use strict"; + var utils = require_common(); + var MAXBITS = 15; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var lbase = [ + /* Length codes 257..285 base */ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 13, + 15, + 17, + 19, + 23, + 27, + 31, + 35, + 43, + 51, + 59, + 67, + 83, + 99, + 115, + 131, + 163, + 195, + 227, + 258, + 0, + 0 + ]; + var lext = [ + /* Length codes 257..285 extra */ + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 20, + 20, + 20, + 20, + 21, + 21, + 21, + 21, + 16, + 72, + 78 + ]; + var dbase = [ + /* Distance codes 0..29 base */ + 1, + 2, + 3, + 4, + 5, + 7, + 9, + 13, + 17, + 25, + 33, + 49, + 65, + 97, + 129, + 193, + 257, + 385, + 513, + 769, + 1025, + 1537, + 2049, + 3073, + 4097, + 6145, + 8193, + 12289, + 16385, + 24577, + 0, + 0 + ]; + var dext = [ + /* Distance codes 0..29 extra */ + 16, + 16, + 16, + 16, + 17, + 17, + 18, + 18, + 19, + 19, + 20, + 20, + 21, + 21, + 22, + 22, + 23, + 23, + 24, + 24, + 25, + 25, + 26, + 26, + 27, + 27, + 28, + 28, + 29, + 29, + 64, + 64 + ]; + module2.exports = function inflate_table(type2, lens, lens_index, codes, table, table_index, work, opts) { + var bits = opts.bits; + var len = 0; + var sym = 0; + var min = 0, max = 0; + var root = 0; + var curr = 0; + var drop = 0; + var left = 0; + var used = 0; + var huff = 0; + var incr; + var fill; + var low; + var mask; + var next; + var base = null; + var base_index = 0; + var end; + var count = new utils.Buf16(MAXBITS + 1); + var offs = new utils.Buf16(MAXBITS + 1); + var extra = null; + var extra_index = 0; + var here_bits, here_op, here_val; + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + root = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { + break; + } + } + if (root > max) { + root = max; + } + if (max === 0) { + table[table_index++] = 1 << 24 | 64 << 16 | 0; + table[table_index++] = 1 << 24 | 64 << 16 | 0; + opts.bits = 1; + return 0; + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { + break; + } + } + if (root < min) { + root = min; + } + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } + } + if (left > 0 && (type2 === CODES || max !== 1)) { + return -1; + } + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + if (type2 === CODES) { + base = extra = work; + end = 19; + } else if (type2 === LENS) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + } else { + base = dbase; + extra = dext; + end = -1; + } + huff = 0; + sym = 0; + len = min; + next = table_index; + curr = root; + drop = 0; + low = -1; + used = 1 << root; + mask = used - 1; + if (type2 === LENS && used > ENOUGH_LENS || type2 === DISTS && used > ENOUGH_DISTS) { + return 1; + } + for (; ; ) { + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } else { + here_op = 32 + 64; + here_val = 0; + } + incr = 1 << len - drop; + fill = 1 << curr; + min = fill; + do { + fill -= incr; + table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0; + } while (fill !== 0); + incr = 1 << len - 1; + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + sym++; + if (--count[len] === 0) { + if (len === max) { + break; + } + len = lens[lens_index + work[sym]]; + } + if (len > root && (huff & mask) !== low) { + if (drop === 0) { + drop = root; + } + next += min; + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { + break; } + curr++; + left <<= 1; + } + used += 1 << curr; + if (type2 === LENS && used > ENOUGH_LENS || type2 === DISTS && used > ENOUGH_DISTS) { + return 1; + } + low = huff & mask; + table[low] = root << 24 | curr << 16 | next - table_index | 0; + } + } + if (huff !== 0) { + table[next + huff] = len - drop << 24 | 64 << 16 | 0; + } + opts.bits = root; + return 0; + }; + } +}); - if (match) { - this.readHeaderAtOffset(daikon.Siemens.CSA2_MAGIC_NUMBER.length + 4); - } else { - this.readHeaderAtOffset(0); - } +// node_modules/pako/lib/zlib/inflate.js +var require_inflate = __commonJS({ + "node_modules/pako/lib/zlib/inflate.js"(exports2) { + "use strict"; + var utils = require_common(); + var adler32 = require_adler32(); + var crc32 = require_crc32(); + var inflate_fast = require_inffast(); + var inflate_table = require_inftrees(); + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_TREES = 6; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_NEED_DICT = 2; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_MEM_ERROR = -4; + var Z_BUF_ERROR = -5; + var Z_DEFLATED = 8; + var HEAD = 1; + var FLAGS = 2; + var TIME = 3; + var OS = 4; + var EXLEN = 5; + var EXTRA = 6; + var NAME = 7; + var COMMENT = 8; + var HCRC = 9; + var DICTID = 10; + var DICT = 11; + var TYPE = 12; + var TYPEDO = 13; + var STORED = 14; + var COPY_ = 15; + var COPY = 16; + var TABLE = 17; + var LENLENS = 18; + var CODELENS = 19; + var LEN_ = 20; + var LEN = 21; + var LENEXT = 22; + var DIST = 23; + var DISTEXT = 24; + var MATCH = 25; + var LIT = 26; + var CHECK = 27; + var LENGTH = 28; + var DONE = 29; + var BAD = 30; + var MEM = 31; + var SYNC = 32; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var MAX_WBITS = 15; + var DEF_WBITS = MAX_WBITS; + function zswap32(q) { + return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24); + } + function InflateState() { + this.mode = 0; + this.last = false; + this.wrap = 0; + this.havedict = false; + this.flags = 0; + this.dmax = 0; + this.check = 0; + this.total = 0; + this.head = null; + this.wbits = 0; + this.wsize = 0; + this.whave = 0; + this.wnext = 0; + this.window = null; + this.hold = 0; + this.bits = 0; + this.length = 0; + this.offset = 0; + this.extra = 0; + this.lencode = null; + this.distcode = null; + this.lenbits = 0; + this.distbits = 0; + this.ncode = 0; + this.nlen = 0; + this.ndist = 0; + this.have = 0; + this.next = null; + this.lens = new utils.Buf16(320); + this.work = new utils.Buf16(288); + this.lendyn = null; + this.distdyn = null; + this.sane = 0; + this.back = 0; + this.was = 0; + } + function inflateResetKeep(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ""; + if (state.wrap) { + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null; + state.hold = 0; + state.bits = 0; + state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); + state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); + state.sane = 1; + state.back = -1; + return Z_OK; + } + function inflateReset(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + } + function inflateReset2(strm, windowBits) { + var wrap; + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; } - } catch (error) { - console.log(error); + } + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); } - - return this.output; -}; - - - -daikon.Siemens.prototype.readHeaderAtOffset = function (offset) { - var numTags, ctr; - - this.output += '\n'; - - numTags = daikon.Utils.swap32(this.data.getUint32(offset)); - - if ((numTags < 1) || (numTags > 128)) { - return this.output; + function inflateInit2(strm, windowBits) { + var ret; + var state; + if (!strm) { + return Z_STREAM_ERROR; + } + state = new InflateState(); + strm.state = state; + state.window = null; + ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK) { + strm.state = null; + } + return ret; } - - offset += 4; - - offset += 4; // unused - - for (ctr = 0; ctr < numTags; ctr += 1) { - offset = this.readTag(offset); - - if (offset === -1) { - break; + function inflateInit(strm) { + return inflateInit2(strm, DEF_WBITS); + } + var virgin = true; + var lenfix; + var distfix; + function fixedtables(state) { + if (virgin) { + var sym; + lenfix = new utils.Buf32(512); + distfix = new utils.Buf32(32); + sym = 0; + while (sym < 144) { + state.lens[sym++] = 8; + } + while (sym < 256) { + state.lens[sym++] = 9; + } + while (sym < 280) { + state.lens[sym++] = 7; + } + while (sym < 288) { + state.lens[sym++] = 8; + } + inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + sym = 0; + while (sym < 32) { + state.lens[sym++] = 5; } + inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + virgin = false; + } + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; } - - return this.output; -}; - - - -daikon.Siemens.prototype.readTag = function (offset) { - var name, ctr, numItems; - - name = this.readString(offset, daikon.Siemens.NAME_LENGTH); - - offset += daikon.Siemens.NAME_LENGTH; - - offset += 4; // vm - - offset += 4; - - offset += 4; // syngodt - - numItems = daikon.Utils.swap32(this.data.getUint32(offset)); - offset += 4; - - offset += 4; // unused - - this.output += (" " + name + "="); - - for (ctr = 0; ctr < numItems; ctr += 1) { - offset = this.readItem(offset); - - if (offset === -1) { - break; - } else if ((offset % 4) !== 0) { - offset += (4 - (offset % 4)); + function updatewindow(strm, src, end, copy) { + var dist; + var state = strm.state; + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + state.window = new utils.Buf8(state.wsize); + } + if (copy >= state.wsize) { + utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); + state.wnext = 0; + state.whave = state.wsize; + } else { + dist = state.wsize - state.wnext; + if (dist > copy) { + dist = copy; + } + utils.arraySet(state.window, src, end - copy, dist, state.wnext); + copy -= dist; + if (copy) { + utils.arraySet(state.window, src, end - copy, copy, 0); + state.wnext = copy; + state.whave = state.wsize; + } else { + state.wnext += dist; + if (state.wnext === state.wsize) { + state.wnext = 0; + } + if (state.whave < state.wsize) { + state.whave += dist; + } + } + } + return 0; + } + function inflate(strm, flush) { + var state; + var input, output; + var next; + var put; + var have, left; + var hold; + var bits; + var _in, _out; + var copy; + var from; + var from_source; + var here = 0; + var here_bits, here_op, here_val; + var last_bits, last_op, last_val; + var len; + var ret; + var hbuf = new utils.Buf8(4); + var opts; + var n; + var order = ( + /* permutation of code lengths */ + [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15] + ); + if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.mode === TYPE) { + state.mode = TYPEDO; + } + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + _in = have; + _out = left; + ret = Z_OK; + inf_leave: + for (; ; ) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 2 && hold === 35615) { + state.check = 0; + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + hold = 0; + bits = 0; + state.mode = FLAGS; + break; + } + state.flags = 0; + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || /* check if zlib header allowed */ + (((hold & 255) << 8) + (hold >> 8)) % 31) { + strm.msg = "incorrect header check"; + state.mode = BAD; + break; + } + if ((hold & 15) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + hold >>>= 4; + bits -= 4; + len = (hold & 15) + 8; + if (state.wbits === 0) { + state.wbits = len; + } else if (len > state.wbits) { + strm.msg = "invalid window size"; + state.mode = BAD; + break; + } + state.dmax = 1 << len; + strm.adler = state.check = 1; + state.mode = hold & 512 ? DICTID : TYPE; + hold = 0; + bits = 0; + break; + case FLAGS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.flags = hold; + if ((state.flags & 255) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + if (state.flags & 57344) { + strm.msg = "unknown header flags set"; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = hold >> 8 & 1; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = TIME; + case TIME: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.time = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + hbuf[2] = hold >>> 16 & 255; + hbuf[3] = hold >>> 24 & 255; + state.check = crc32(state.check, hbuf, 4, 0); + } + hold = 0; + bits = 0; + state.mode = OS; + case OS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.xflags = hold & 255; + state.head.os = hold >> 8; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = EXLEN; + case EXLEN: + if (state.flags & 1024) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + } else if (state.head) { + state.head.extra = null; + } + state.mode = EXTRA; + case EXTRA: + if (state.flags & 1024) { + copy = state.length; + if (copy > have) { + copy = have; + } + if (copy) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + state.head.extra = new Array(state.head.extra_len); + } + utils.arraySet( + state.head.extra, + input, + next, + // extra field is limited to 65536 bytes + // - no need for additional size check + copy, + /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ + len + ); + } + if (state.flags & 512) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + state.length -= copy; + } + if (state.length) { + break inf_leave; + } + } + state.length = 0; + state.mode = NAME; + case NAME: + if (state.flags & 2048) { + if (have === 0) { + break inf_leave; + } + copy = 0; + do { + len = input[next + copy++]; + if (state.head && len && state.length < 65536) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 512) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + case COMMENT: + if (state.flags & 4096) { + if (have === 0) { + break inf_leave; + } + copy = 0; + do { + len = input[next + copy++]; + if (state.head && len && state.length < 65536) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 512) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + case HCRC: + if (state.flags & 512) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.check & 65535)) { + strm.msg = "header crc mismatch"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + if (state.head) { + state.head.hcrc = state.flags >> 9 & 1; + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + strm.adler = state.check = zswap32(hold); + hold = 0; + bits = 0; + state.mode = DICT; + case DICT: + if (state.havedict === 0) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + return Z_NEED_DICT; + } + strm.adler = state.check = 1; + state.mode = TYPE; + case TYPE: + if (flush === Z_BLOCK || flush === Z_TREES) { + break inf_leave; + } + case TYPEDO: + if (state.last) { + hold >>>= bits & 7; + bits -= bits & 7; + state.mode = CHECK; + break; + } + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.last = hold & 1; + hold >>>= 1; + bits -= 1; + switch (hold & 3) { + case 0: + state.mode = STORED; + break; + case 1: + fixedtables(state); + state.mode = LEN_; + if (flush === Z_TREES) { + hold >>>= 2; + bits -= 2; + break inf_leave; + } + break; + case 2: + state.mode = TABLE; + break; + case 3: + strm.msg = "invalid block type"; + state.mode = BAD; + } + hold >>>= 2; + bits -= 2; + break; + case STORED: + hold >>>= bits & 7; + bits -= bits & 7; + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((hold & 65535) !== (hold >>> 16 ^ 65535)) { + strm.msg = "invalid stored block lengths"; + state.mode = BAD; + break; + } + state.length = hold & 65535; + hold = 0; + bits = 0; + state.mode = COPY_; + if (flush === Z_TREES) { + break inf_leave; + } + case COPY_: + state.mode = COPY; + case COPY: + copy = state.length; + if (copy) { + if (copy > have) { + copy = have; + } + if (copy > left) { + copy = left; + } + if (copy === 0) { + break inf_leave; + } + utils.arraySet(output, input, next, copy, put); + have -= copy; + next += copy; + left -= copy; + put += copy; + state.length -= copy; + break; + } + state.mode = TYPE; + break; + case TABLE: + while (bits < 14) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.nlen = (hold & 31) + 257; + hold >>>= 5; + bits -= 5; + state.ndist = (hold & 31) + 1; + hold >>>= 5; + bits -= 5; + state.ncode = (hold & 15) + 4; + hold >>>= 4; + bits -= 4; + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = "too many length or distance symbols"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = LENLENS; + case LENLENS: + while (state.have < state.ncode) { + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.lens[order[state.have++]] = hold & 7; + hold >>>= 3; + bits -= 3; + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + state.lencode = state.lendyn; + state.lenbits = 7; + opts = { bits: state.lenbits }; + ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid code lengths set"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = CODELENS; + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_val < 16) { + hold >>>= here_bits; + bits -= here_bits; + state.lens[state.have++] = here_val; + } else { + if (here_val === 16) { + n = here_bits + 2; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + if (state.have === 0) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy = 3 + (hold & 3); + hold >>>= 2; + bits -= 2; + } else if (here_val === 17) { + n = here_bits + 3; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy = 3 + (hold & 7); + hold >>>= 3; + bits -= 3; + } else { + n = here_bits + 7; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy = 11 + (hold & 127); + hold >>>= 7; + bits -= 7; + } + if (state.have + copy > state.nlen + state.ndist) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + while (copy--) { + state.lens[state.have++] = len; + } + } + } + if (state.mode === BAD) { + break; + } + if (state.lens[256] === 0) { + strm.msg = "invalid code -- missing end-of-block"; + state.mode = BAD; + break; + } + state.lenbits = 9; + opts = { bits: state.lenbits }; + ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid literal/lengths set"; + state.mode = BAD; + break; + } + state.distbits = 6; + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + state.distbits = opts.bits; + if (ret) { + strm.msg = "invalid distances set"; + state.mode = BAD; + break; + } + state.mode = LEN_; + if (flush === Z_TREES) { + break inf_leave; + } + case LEN_: + state.mode = LEN; + case LEN: + if (have >= 6 && left >= 258) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + inflate_fast(strm, _out); + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_op && (here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + state.mode = LIT; + break; + } + if (here_op & 32) { + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + case LENEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + state.was = state.length; + state.mode = DIST; + case DIST: + for (; ; ) { + here = state.distcode[hold & (1 << state.distbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + if (here_op & 64) { + strm.msg = "invalid distance code"; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = here_op & 15; + state.mode = DISTEXT; + case DISTEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.offset += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + if (state.offset > state.dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + state.mode = MATCH; + case MATCH: + if (left === 0) { + break inf_leave; + } + copy = _out - left; + if (state.offset > copy) { + copy = state.offset - copy; + if (copy > state.whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + } + if (copy > state.wnext) { + copy -= state.wnext; + from = state.wsize - copy; + } else { + from = state.wnext - copy; + } + if (copy > state.length) { + copy = state.length; + } + from_source = state.window; + } else { + from_source = output; + from = put - state.offset; + copy = state.length; + } + if (copy > left) { + copy = left; + } + left -= copy; + state.length -= copy; + do { + output[put++] = from_source[from++]; + } while (--copy); + if (state.length === 0) { + state.mode = LEN; + } + break; + case LIT: + if (left === 0) { + break inf_leave; + } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold |= input[next++] << bits; + bits += 8; + } + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = /*UPDATE(state.check, put - _out, _out);*/ + state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out); + } + _out = left; + if ((state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = "incorrect data check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = LENGTH; + case LENGTH: + if (state.wrap && state.flags) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.total & 4294967295)) { + strm.msg = "incorrect length check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = DONE; + case DONE: + ret = Z_STREAM_END; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + default: + return Z_STREAM_ERROR; + } } - } - - this.output += ('\n'); - - return offset; -}; - - - -daikon.Siemens.prototype.readString = function (offset, length) { - var char2, ctr, str = ""; - - for (ctr = 0; ctr < length; ctr += 1) { - char2 = this.data.getUint8(offset + ctr); - - if (char2 === 0) { - break; + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { + state.mode = MEM; + return Z_MEM_ERROR; } - - str += String.fromCharCode(char2); + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ + state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) { + ret = Z_BUF_ERROR; + } + return ret; } - - return str; -}; - - - -daikon.Siemens.prototype.readItem = function (offset) { - var itemLength; - - itemLength = daikon.Utils.swap32(this.data.getUint32(offset)); - - if ((offset + itemLength) > this.data.buffer.length) { - return -1; + function inflateEnd(strm) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + var state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK; } - - offset += 16; - - if (itemLength > 0) { - this.output += (this.readString(offset, itemLength) + " "); + function inflateGetHeader(strm, head) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if ((state.wrap & 2) === 0) { + return Z_STREAM_ERROR; + } + state.head = head; + head.done = false; + return Z_OK; } - - return offset + itemLength; -}; - - -/** - * Returns true if the specified group and element indicate this tag can be read. - * @param {number} group - * @param {number} element - * @returns {boolean} - */ -daikon.Siemens.prototype.canRead = function (group, element) { - return (group === daikon.Siemens.GROUP_CSA) && ((element === daikon.Siemens.ELEMENT_CSA1) || (element === daikon.Siemens.ELEMENT_CSA2)); -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Siemens; -} - -},{"./utilities.js":47}],46:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require */ - -"use strict"; - -var xss = require("xss"); - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); -daikon.Dictionary = daikon.Dictionary || ((typeof require !== 'undefined') ? require('./dictionary.js') : null); -daikon.Siemens = daikon.Siemens || ((typeof require !== 'undefined') ? require('./siemens.js') : null); - - -/*** Constructor ***/ - -/** - * The Tag constuctor. - * @property {number} group - * @property {number} element - * @property {string} vr - * @property {number} offsetStart - * @property {number} offsetValue - * @property {number} offsetEnd - * @property {boolean} sublist - true if this tag is a sublist - * @property {number|number[]|string|string[]|object} value - * @type {Function} - */ -daikon.Tag = daikon.Tag || function (group, element, vr, value, offsetStart, offsetValue, offsetEnd, littleEndian, charset) { - this.group = group; - this.element = element; - this.vr = vr; - this.offsetStart = offsetStart; - this.offsetValue = offsetValue; - this.offsetEnd = offsetEnd; - this.sublist = false; - this.preformatted = false; - this.id = daikon.Tag.createId(group, element); - - if (value instanceof Array) { - this.value = value; - this.sublist = true; - } else if (value !== null) { - var dv = new DataView(value); - this.value = daikon.Tag.convertValue(vr, dv, littleEndian, charset); - - if ((this.value === dv) && this.isPrivateData()) { - this.value = daikon.Tag.convertPrivateValue(group, element, dv); - this.preformatted = (this.value !== dv); + function inflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var state; + var dictid; + var ret; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR; + } + if (state.mode === DICT) { + dictid = 1; + dictid = adler32(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR; } - } else { - this.value = null; - } -}; - - -/*** Static Pseudo-constants ***/ - -daikon.Tag.PRIVATE_DATA_READERS = [daikon.Siemens]; - -daikon.Tag.VR_AE_MAX_LENGTH = 16; -daikon.Tag.VR_AS_MAX_LENGTH = 4; -daikon.Tag.VR_AT_MAX_LENGTH = 4; -daikon.Tag.VR_CS_MAX_LENGTH = 16; -daikon.Tag.VR_DA_MAX_LENGTH = 8; -daikon.Tag.VR_DS_MAX_LENGTH = 16; -daikon.Tag.VR_DT_MAX_LENGTH = 26; -daikon.Tag.VR_FL_MAX_LENGTH = 4; -daikon.Tag.VR_FD_MAX_LENGTH = 8; -daikon.Tag.VR_IS_MAX_LENGTH = 12; -daikon.Tag.VR_LO_MAX_LENGTH = 64; -daikon.Tag.VR_LT_MAX_LENGTH = 10240; -daikon.Tag.VR_OB_MAX_LENGTH = -1; -daikon.Tag.VR_OD_MAX_LENGTH = -1; -daikon.Tag.VR_OF_MAX_LENGTH = -1; -daikon.Tag.VR_OW_MAX_LENGTH = -1; -daikon.Tag.VR_PN_MAX_LENGTH = 64 * 5; -daikon.Tag.VR_SH_MAX_LENGTH = 16; -daikon.Tag.VR_SL_MAX_LENGTH = 4; -daikon.Tag.VR_SS_MAX_LENGTH = 2; -daikon.Tag.VR_ST_MAX_LENGTH = 1024; -daikon.Tag.VR_TM_MAX_LENGTH = 16; -daikon.Tag.VR_UI_MAX_LENGTH = 64; -daikon.Tag.VR_UL_MAX_LENGTH = 4; -daikon.Tag.VR_UN_MAX_LENGTH = -1; -daikon.Tag.VR_US_MAX_LENGTH = 2; -daikon.Tag.VR_UT_MAX_LENGTH = -1; -daikon.Tag.VR_UC_MAX_LENGTH = -1; - -// metadata -daikon.Tag.TAG_TRANSFER_SYNTAX = [0x0002, 0x0010]; -daikon.Tag.TAG_META_LENGTH = [0x0002, 0x0000]; - -// sublists -daikon.Tag.TAG_SUBLIST_ITEM = [0xFFFE, 0xE000]; -daikon.Tag.TAG_SUBLIST_ITEM_DELIM = [0xFFFE, 0xE00D]; -daikon.Tag.TAG_SUBLIST_SEQ_DELIM = [0xFFFE, 0xE0DD]; - -// image dims -daikon.Tag.TAG_ROWS = [0x0028, 0x0010]; -daikon.Tag.TAG_COLS = [0x0028, 0x0011]; -daikon.Tag.TAG_ACQUISITION_MATRIX = [0x0018, 0x1310]; -daikon.Tag.TAG_NUMBER_OF_FRAMES = [0x0028, 0x0008]; -daikon.Tag.TAG_NUMBER_TEMPORAL_POSITIONS = [0x0020, 0x0105]; - -// voxel dims -daikon.Tag.TAG_PIXEL_SPACING = [0x0028, 0x0030]; -daikon.Tag.TAG_SLICE_THICKNESS = [0x0018, 0x0050]; -daikon.Tag.TAG_SLICE_GAP = [0x0018, 0x0088]; -daikon.Tag.TAG_TR = [0x0018, 0x0080]; -daikon.Tag.TAG_FRAME_TIME = [0x0018, 0x1063]; - -// datatype -daikon.Tag.TAG_BITS_ALLOCATED = [0x0028, 0x0100]; -daikon.Tag.TAG_BITS_STORED = [0x0028, 0x0101]; -daikon.Tag.TAG_PIXEL_REPRESENTATION = [0x0028, 0x0103]; -daikon.Tag.TAG_HIGH_BIT = [0x0028, 0x0102]; -daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION = [0x0028, 0x0004]; -daikon.Tag.TAG_SAMPLES_PER_PIXEL = [0x0028, 0x0002]; -daikon.Tag.TAG_PLANAR_CONFIG = [0x0028, 0x0006]; -daikon.Tag.TAG_PALETTE_RED = [0x0028, 0x1201]; -daikon.Tag.TAG_PALETTE_GREEN = [0x0028, 0x1202]; -daikon.Tag.TAG_PALETTE_BLUE = [0x0028, 0x1203]; - -// data scale -daikon.Tag.TAG_DATA_SCALE_SLOPE = [0x0028, 0x1053]; -daikon.Tag.TAG_DATA_SCALE_INTERCEPT = [0x0028, 0x1052]; -daikon.Tag.TAG_DATA_SCALE_ELSCINT = [0x0207, 0x101F]; -daikon.Tag.TAG_PIXEL_BANDWIDTH = [0x0018, 0x0095]; - -// range -daikon.Tag.TAG_IMAGE_MIN = [0x0028, 0x0106]; -daikon.Tag.TAG_IMAGE_MAX = [0x0028, 0x0107]; -daikon.Tag.TAG_WINDOW_CENTER = [0x0028, 0x1050]; -daikon.Tag.TAG_WINDOW_WIDTH = [0x0028, 0x1051]; - -// descriptors -daikon.Tag.TAG_SPECIFIC_CHAR_SET = [0x0008, 0x0005]; -daikon.Tag.TAG_PATIENT_NAME = [0x0010, 0x0010]; -daikon.Tag.TAG_PATIENT_ID = [0x0010, 0x0020]; -daikon.Tag.TAG_STUDY_DATE = [0x0008, 0x0020]; -daikon.Tag.TAG_STUDY_TIME = [0x0008, 0x0030]; -daikon.Tag.TAG_STUDY_DES = [0x0008, 0x1030]; -daikon.Tag.TAG_IMAGE_TYPE = [0x0008, 0x0008]; -daikon.Tag.TAG_IMAGE_COMMENTS = [0x0020, 0x4000]; -daikon.Tag.TAG_SEQUENCE_NAME = [0x0018, 0x0024]; -daikon.Tag.TAG_MODALITY = [0x0008, 0x0060]; - -// session ID -daikon.Tag.TAG_FRAME_OF_REF_UID = [0x0020, 0x0052]; - -// study ID -daikon.Tag.TAG_STUDY_UID = [0x0020, 0x000D]; - -// volume ID -daikon.Tag.TAG_SERIES_DESCRIPTION = [0x0008, 0x103E]; -daikon.Tag.TAG_SERIES_INSTANCE_UID = [0x0020, 0x000E]; -daikon.Tag.TAG_SERIES_NUMBER = [0x0020, 0x0011]; -daikon.Tag.TAG_ECHO_NUMBER = [0x0018, 0x0086]; -daikon.Tag.TAG_TEMPORAL_POSITION = [0x0020, 0x0100]; - -// slice ID -daikon.Tag.TAG_IMAGE_NUM = [0x0020, 0x0013]; -daikon.Tag.TAG_SLICE_LOCATION = [0x0020, 0x1041]; - -// orientation -daikon.Tag.TAG_IMAGE_ORIENTATION = [0x0020, 0x0037]; -daikon.Tag.TAG_IMAGE_POSITION = [0x0020, 0x0032]; -daikon.Tag.TAG_SLICE_LOCATION_VECTOR = [0x0018, 0x2005]; - -// LUT shape -daikon.Tag.TAG_LUT_SHAPE = [0x2050, 0x0020]; - -// pixel data -daikon.Tag.TAG_PIXEL_DATA = [0x7FE0, 0x0010]; - - -/*** Static methods ***/ - -/** - * Create an ID string based on the specified group and element - * @param {number} group - * @param {number} element - * @returns {string} - */ -daikon.Tag.createId = function (group, element) { - var groupStr = daikon.Utils.dec2hex(group), - elemStr = daikon.Utils.dec2hex(element); - return groupStr + elemStr; -}; - - - -daikon.Tag.getUnsignedInteger16 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 2; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getUint16(ctr * 2, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getSignedInteger16 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 2; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getInt16(ctr * 2, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getFloat32 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 4; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getFloat32(ctr * 4, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getSignedInteger32 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 4; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getInt32(ctr * 4, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getUnsignedInteger32 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 4; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getUint32(ctr * 4, littleEndian); + } + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR; + } + state.havedict = 1; + return Z_OK; } + exports2.inflateReset = inflateReset; + exports2.inflateReset2 = inflateReset2; + exports2.inflateResetKeep = inflateResetKeep; + exports2.inflateInit = inflateInit; + exports2.inflateInit2 = inflateInit2; + exports2.inflate = inflate; + exports2.inflateEnd = inflateEnd; + exports2.inflateGetHeader = inflateGetHeader; + exports2.inflateSetDictionary = inflateSetDictionary; + exports2.inflateInfo = "pako inflate (from Nodeca project)"; + } +}); - return data; -}; - - - -daikon.Tag.getFloat64 = function (rawData, littleEndian) { - var data, mul, ctr; +// node_modules/pako/lib/zlib/constants.js +var require_constants = __commonJS({ + "node_modules/pako/lib/zlib/constants.js"(exports2, module2) { + "use strict"; + module2.exports = { + /* Allowed flush values; see deflate() and inflate() below for details */ + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + /* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + //Z_MEM_ERROR: -4, + Z_BUF_ERROR: -5, + //Z_VERSION_ERROR: -6, + /* compression levels */ + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + /* Possible values of the data_type field (though see inflate()) */ + Z_BINARY: 0, + Z_TEXT: 1, + //Z_ASCII: 1, // = Z_TEXT (deprecated) + Z_UNKNOWN: 2, + /* The deflate compression method */ + Z_DEFLATED: 8 + //Z_NULL: null // Use -1 or null inline, depending on var type + }; + } +}); - if (rawData.byteLength < 8) { - return 0; +// node_modules/pako/lib/zlib/gzheader.js +var require_gzheader = __commonJS({ + "node_modules/pako/lib/zlib/gzheader.js"(exports2, module2) { + "use strict"; + function GZheader() { + this.text = 0; + this.time = 0; + this.xflags = 0; + this.os = 0; + this.extra = null; + this.extra_len = 0; + this.name = ""; + this.comment = ""; + this.hcrc = 0; + this.done = false; } + module2.exports = GZheader; + } +}); - mul = rawData.byteLength / 8; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getFloat64(ctr * 8, littleEndian); +// node_modules/pako/lib/inflate.js +var require_inflate2 = __commonJS({ + "node_modules/pako/lib/inflate.js"(exports2) { + "use strict"; + var zlib_inflate = require_inflate(); + var utils = require_common(); + var strings = require_strings(); + var c = require_constants(); + var msg = require_messages(); + var ZStream = require_zstream(); + var GZheader = require_gzheader(); + var toString = Object.prototype.toString; + function Inflate(options) { + if (!(this instanceof Inflate)) + return new Inflate(options); + this.options = utils.assign({ + chunkSize: 16384, + windowBits: 0, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { + opt.windowBits = -15; + } + } + if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) { + opt.windowBits += 32; + } + if (opt.windowBits > 15 && opt.windowBits < 48) { + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status = zlib_inflate.inflateInit2( + this.strm, + opt.windowBits + ); + if (status !== c.Z_OK) { + throw new Error(msg[status]); + } + this.header = new GZheader(); + zlib_inflate.inflateGetHeader(this.strm, this.header); + if (opt.dictionary) { + if (typeof opt.dictionary === "string") { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { + status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); + if (status !== c.Z_OK) { + throw new Error(msg[status]); + } + } + } } - - return data; -}; - - - -daikon.Tag.getDoubleElscint = function (rawData) { - var data = [], reordered = [], ctr; - - for (ctr = 0; ctr < 8; ctr += 1) { - data[ctr] = rawData.getUint8(ctr); + Inflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var dictionary = this.options.dictionary; + var status, _mode; + var next_out_utf8, tail, utf8str; + var allowBufError = false; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.binstring2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); + if (status === c.Z_NEED_DICT && dictionary) { + status = zlib_inflate.inflateSetDictionary(this.strm, dictionary); + } + if (status === c.Z_BUF_ERROR && allowBufError === true) { + status = c.Z_OK; + allowBufError = false; + } + if (status !== c.Z_STREAM_END && status !== c.Z_OK) { + this.onEnd(status); + this.ended = true; + return false; + } + if (strm.next_out) { + if (strm.avail_out === 0 || status === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + tail = strm.next_out - next_out_utf8; + utf8str = strings.buf2string(strm.output, next_out_utf8); + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) { + utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); + } + this.onData(utf8str); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } + if (strm.avail_in === 0 && strm.avail_out === 0) { + allowBufError = true; + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END); + if (status === c.Z_STREAM_END) { + _mode = c.Z_FINISH; + } + if (_mode === c.Z_FINISH) { + status = zlib_inflate.inflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === c.Z_OK; + } + if (_mode === c.Z_SYNC_FLUSH) { + this.onEnd(c.Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Inflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Inflate.prototype.onEnd = function(status) { + if (status === c.Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + function inflate(input, options) { + var inflator = new Inflate(options); + inflator.push(input, true); + if (inflator.err) { + throw inflator.msg || msg[inflator.err]; + } + return inflator.result; } - - reordered[0] = data[3]; - reordered[1] = data[2]; - reordered[2] = data[1]; - reordered[3] = data[0]; - reordered[4] = data[7]; - reordered[5] = data[6]; - reordered[6] = data[5]; - reordered[7] = data[4]; - - data = [daikon.Utils.bytesToDouble(reordered)]; - - return data; -}; - - - -daikon.Tag.getFixedLengthStringValue = function (rawData, maxLength, charset, vr) { - var data, mul, ctr; - - mul = Math.floor(rawData.byteLength / maxLength); - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = daikon.Utils.getStringAt(rawData, ctr * maxLength, maxLength, charset, vr); + function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate(input, options); } + exports2.Inflate = Inflate; + exports2.inflate = inflate; + exports2.inflateRaw = inflateRaw; + exports2.ungzip = inflate; + } +}); - return data; -}; - - - -daikon.Tag.getStringValue = function (rawData, charset, vr) { - var data = daikon.Utils.getStringAt(rawData, 0, rawData.byteLength, charset, vr).split('\\'), ctr; +// node_modules/pako/index.js +var require_pako = __commonJS({ + "node_modules/pako/index.js"(exports2, module2) { + "use strict"; + var assign = require_common().assign; + var deflate = require_deflate2(); + var inflate = require_inflate2(); + var constants = require_constants(); + var pako2 = {}; + assign(pako2, deflate, inflate, constants); + module2.exports = pako2; + } +}); - for (ctr = 0; ctr < data.length; ctr += 1) { - data[ctr] = daikon.Utils.trim(data[ctr]); +// src/parser.js +var require_parser3 = __commonJS({ + "src/parser.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Tag = daikon2.Tag || (typeof require !== "undefined" ? require_tag() : null); + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Dictionary = daikon2.Dictionary || (typeof require !== "undefined" ? require_dictionary() : null); + daikon2.Image = daikon2.Image || (typeof require !== "undefined" ? require_image() : null); + var pako2 = pako2 || (typeof require !== "undefined" ? require_pako() : null); + daikon2.Parser = daikon2.Parser || function() { + this.littleEndian = true; + this.explicit = true; + this.metaFound = false; + this.metaFinished = false; + this.metaFinishedOffset = -1; + this.needsDeflate = false; + this.inflated = null; + this.encapsulation = false; + this.level = 0; + this.error = null; + }; + daikon2.Parser.verbose = false; + daikon2.Parser.MAGIC_COOKIE_OFFSET = 128; + daikon2.Parser.MAGIC_COOKIE = [68, 73, 67, 77]; + daikon2.Parser.VRS = ["AE", "AS", "AT", "CS", "DA", "DS", "DT", "FL", "FD", "IS", "LO", "LT", "OB", "OD", "OF", "OW", "PN", "SH", "SL", "SS", "ST", "TM", "UI", "UL", "UN", "US", "UT", "UC"]; + daikon2.Parser.DATA_VRS = ["OB", "OW", "OF", "SQ", "UT", "UN", "UC"]; + daikon2.Parser.RAW_DATA_VRS = ["OB", "OD", "OF", "OW", "UN"]; + daikon2.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE = "1.2.840.10008.1.2"; + daikon2.Parser.TRANSFER_SYNTAX_EXPLICIT_LITTLE = "1.2.840.10008.1.2.1"; + daikon2.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG = "1.2.840.10008.1.2.2"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG = "1.2.840.10008.1.2.4"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS = "1.2.840.10008.1.2.4.57"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1 = "1.2.840.10008.1.2.4.70"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT = "1.2.840.10008.1.2.4.50"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT = "1.2.840.10008.1.2.4.51"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS = "1.2.840.10008.1.2.4.80"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS = "1.2.840.10008.1.2.4.81"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS = "1.2.840.10008.1.2.4.90"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000 = "1.2.840.10008.1.2.4.91"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE = "1.2.840.10008.1.2.5"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE = "1.2.840.10008.1.2.1.99"; + daikon2.Parser.UNDEFINED_LENGTH = 4294967295; + daikon2.Parser.isMagicCookieFound = function(data) { + var offset = daikon2.Parser.MAGIC_COOKIE_OFFSET, magicCookieLength = daikon2.Parser.MAGIC_COOKIE.length, ctr; + for (ctr = 0; ctr < magicCookieLength; ctr += 1) { + if (data.getUint8(offset + ctr) !== daikon2.Parser.MAGIC_COOKIE[ctr]) { + return false; + } + } + return true; + }; + daikon2.Parser.prototype.parse = function(data) { + var image = null, offset, tag, copyMeta, copyDeflated; + try { + image = new daikon2.Image(); + offset = this.findFirstTagOffset(data); + tag = this.getNextTag(data, offset); + while (tag !== null) { + if (daikon2.Parser.verbose) { + console.log(tag.toString()); + } + image.putTag(tag); + if (tag.isPixelData()) { + break; + } + if (this.needsDeflate && tag.offsetEnd >= this.metaFinishedOffset) { + this.needsDeflate = false; + copyMeta = data.buffer.slice(0, tag.offsetEnd); + copyDeflated = data.buffer.slice(tag.offsetEnd); + this.inflated = daikon2.Utils.concatArrayBuffers(copyMeta, pako2.inflateRaw(copyDeflated)); + data = new DataView(this.inflated); + } + tag = this.getNextTag(data, tag.offsetEnd); + } + } catch (err) { + this.error = err; + } + if (image !== null) { + image.littleEndian = this.littleEndian; + } + return image; + }; + daikon2.Parser.prototype.parseEncapsulated = function(data) { + var offset = 0, tag, tags = []; + this.encapsulation = true; + try { + tag = this.getNextTag(data, offset); + while (tag !== null) { + if (tag.isSublistItem()) { + tags.push(tag); + } + if (daikon2.Parser.verbose) { + console.log(tag.toString()); + } + tag = this.getNextTag(data, tag.offsetEnd); + } + } catch (err) { + this.error = err; + } + return tags; + }; + daikon2.Parser.prototype.testForValidTag = function(data) { + var offset, tag = null; + try { + offset = this.findFirstTagOffset(data); + tag = this.getNextTag(data, offset, false); + } catch (err) { + this.error = err; + } + return tag; + }; + daikon2.Parser.prototype.getNextTag = function(data, offset, testForTag) { + var group = 0, element, value = null, offsetStart = offset, offsetValue, length = 0, little = true, vr = null, tag; + if (offset >= data.byteLength) { + return null; + } + if (this.metaFinished) { + little = this.littleEndian; + group = data.getUint16(offset, little); + } else { + group = data.getUint16(offset, true); + if (this.metaFinishedOffset !== -1 && offset >= this.metaFinishedOffset || group !== 2) { + this.metaFinished = true; + little = this.littleEndian; + group = data.getUint16(offset, little); + } else { + little = true; + } + } + if (!this.metaFound && group === 2) { + this.metaFound = true; + } + offset += 2; + element = data.getUint16(offset, little); + offset += 2; + if (this.explicit || !this.metaFinished) { + vr = daikon2.Utils.getStringAt(data, offset, 2); + if (!this.metaFound && this.metaFinished && daikon2.Parser.VRS.indexOf(vr) === -1) { + vr = daikon2.Dictionary.getVR(group, element); + length = data.getUint32(offset, little); + offset += 4; + this.explicit = false; + } else { + offset += 2; + if (daikon2.Parser.DATA_VRS.indexOf(vr) !== -1) { + offset += 2; + length = data.getUint32(offset, little); + offset += 4; + } else { + length = data.getUint16(offset, little); + offset += 2; + } + } + } else { + vr = daikon2.Dictionary.getVR(group, element); + length = data.getUint32(offset, little); + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + vr = "SQ"; + } + offset += 4; + } + offsetValue = offset; + var isPixelData = group === daikon2.Tag.TAG_PIXEL_DATA[0] && element === daikon2.Tag.TAG_PIXEL_DATA[1]; + var isLookupTableData = 40 === group && element >= 4609 && element < 4864; + if (vr === "SQ" || !isLookupTableData && !isPixelData && !this.encapsulation && daikon2.Parser.DATA_VRS.indexOf(vr) !== -1 && vr !== "UC") { + value = this.parseSublist(data, offset, length, vr !== "SQ"); + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + length = value[value.length - 1].offsetEnd - offset; + } + } else if (length > 0 && !testForTag) { + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + if (isPixelData) { + length = data.byteLength - offset; + } + } + value = data.buffer.slice(offset, offset + length); + } + offset += length; + tag = new daikon2.Tag(group, element, vr, value, offsetStart, offsetValue, offset, this.littleEndian, this.charset); + if (tag.value) { + if (tag.isTransformSyntax()) { + this.transformSyntaxAlreadyExist = true; + if (tag.value[0] === daikon2.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE) { + this.explicit = false; + this.littleEndian = true; + } else if (tag.value[0] === daikon2.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG) { + this.explicit = true; + this.littleEndian = false; + } else if (tag.value[0] === daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE) { + this.needsDeflate = true; + this.explicit = true; + this.littleEndian = true; + } else { + this.explicit = true; + this.littleEndian = true; + } + } else if (tag.isMetaLength()) { + this.metaFinishedOffset = tag.value[0] + offset; + } else if (tag.isCharset()) { + var charset = tag.value; + if (charset.length == 2) { + charset = (charset[0] || "ISO 2022 IR 6") + "\\" + charset[1]; + } else if (charset.length == 1) { + charset = charset[0]; + } + this.charset = charset; + } + } + return tag; + }; + daikon2.Parser.prototype.parseSublist = function(data, offset, length, raw) { + var sublistItem, offsetEnd = offset + length, tags = []; + this.level++; + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + sublistItem = this.parseSublistItem(data, offset, raw); + while (!sublistItem.isSequenceDelim()) { + tags.push(sublistItem); + offset = sublistItem.offsetEnd; + sublistItem = this.parseSublistItem(data, offset, raw); + } + tags.push(sublistItem); + } else { + while (offset < offsetEnd) { + sublistItem = this.parseSublistItem(data, offset, raw); + tags.push(sublistItem); + offset = sublistItem.offsetEnd; + } + } + this.level--; + return tags; + }; + daikon2.Parser.prototype.parseSublistItem = function(data, offset, raw) { + var group, element, length, offsetEnd, tag, offsetStart = offset, value = null, offsetValue, sublistItemTag, tags = []; + group = data.getUint16(offset, this.littleEndian); + offset += 2; + element = data.getUint16(offset, this.littleEndian); + offset += 2; + length = data.getUint32(offset, this.littleEndian); + offset += 4; + offsetValue = offset; + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + tag = this.getNextTag(data, offset); + while (tag && !tag.isSublistItemDelim()) { + tags.push(tag); + offset = tag.offsetEnd; + tag = this.getNextTag(data, offset); + } + tag && tags.push(tag); + tag && (offset = tag.offsetEnd); + } else if (raw) { + value = data.buffer.slice(offset, offset + length); + offset = offset + length; + } else { + offsetEnd = offset + length; + while (offset < offsetEnd) { + tag = this.getNextTag(data, offset); + tags.push(tag); + offset = tag.offsetEnd; + } + } + sublistItemTag = new daikon2.Tag(group, element, null, value || tags, offsetStart, offsetValue, offset, this.littleEndian); + return sublistItemTag; + }; + daikon2.Parser.prototype.findFirstTagOffset = function(data) { + var offset = 0, magicCookieLength = daikon2.Parser.MAGIC_COOKIE.length, searchOffsetMax = daikon2.Parser.MAGIC_COOKIE_OFFSET * 5, found = false, ctr = 0, ctrIn = 0, ch = 0; + if (daikon2.Parser.isMagicCookieFound(data)) { + offset = daikon2.Parser.MAGIC_COOKIE_OFFSET + magicCookieLength; + } else { + for (ctr = 0; ctr < searchOffsetMax; ctr += 1) { + ch = data.getUint8(ctr); + if (ch === daikon2.Parser.MAGIC_COOKIE[0]) { + found = true; + for (ctrIn = 1; ctrIn < magicCookieLength; ctrIn += 1) { + if (data.getUint8(ctr + ctrIn) !== daikon2.Parser.MAGIC_COOKIE[ctrIn]) { + found = false; + } + } + if (found) { + offset = ctr + magicCookieLength; + break; + } + } + } + } + return offset; + }; + daikon2.Parser.prototype.hasError = function() { + return this.error !== null; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Parser; } + } +}); - return data; -}; - - - -daikon.Tag.getDateStringValue = function (rawData) { - var dotFormat = (daikon.Tag.getSingleStringValue(rawData)[0].indexOf('.') !== -1), - stringData = daikon.Tag.getFixedLengthStringValue(rawData, dotFormat ? 10 : daikon.Tag.VR_DA_MAX_LENGTH), - parts = null, - data = [], - ctr; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - if (dotFormat) { - parts = stringData[ctr].split('.'); - if (parts.length === 3) { - data[ctr] = new Date(daikon.Utils.safeParseInt(parts[0]), - daikon.Utils.safeParseInt(parts[1]) - 1, - daikon.Utils.safeParseInt(parts[2])); - } else { - data[ctr] = new Date(); +// src/image.js +var require_image = __commonJS({ + "src/image.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Tag = daikon2.Tag || (typeof require !== "undefined" ? require_tag() : null); + daikon2.CompressionUtils = daikon2.CompressionUtils || (typeof require !== "undefined" ? require_compression_utils() : null); + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.RLE = daikon2.RLE || (typeof require !== "undefined" ? require_rle() : null); + var jpeg2 = typeof require !== "undefined" ? require_main() : null; + var JpegDecoder2 = JpegDecoder2 || (typeof require !== "undefined" ? require_jpeg_baseline().JpegImage : null); + var JpxImage2 = JpxImage2 || (typeof require !== "undefined" ? require_jpx() : null); + var JpegLSDecoder2 = JpegLSDecoder2 || (typeof require !== "undefined" ? require_jpeg_ls() : null); + daikon2.Image = daikon2.Image || function() { + this.tags = {}; + this.tagsFlat = {}; + this.littleEndian = false; + this.index = -1; + this.decompressed = false; + this.privateDataAll = null; + this.convertedPalette = false; + }; + daikon2.Image.SLICE_DIRECTION_UNKNOWN = -1; + daikon2.Image.SLICE_DIRECTION_AXIAL = 2; + daikon2.Image.SLICE_DIRECTION_CORONAL = 1; + daikon2.Image.SLICE_DIRECTION_SAGITTAL = 0; + daikon2.Image.SLICE_DIRECTION_OBLIQUE = 3; + daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE = 0.8; + daikon2.Image.BYTE_TYPE_UNKNOWN = 0; + daikon2.Image.BYTE_TYPE_BINARY = 1; + daikon2.Image.BYTE_TYPE_INTEGER = 2; + daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED = 3; + daikon2.Image.BYTE_TYPE_FLOAT = 4; + daikon2.Image.BYTE_TYPE_COMPLEX = 5; + daikon2.Image.BYTE_TYPE_RGB = 6; + daikon2.Image.skipPaletteConversion = false; + daikon2.Image.getSingleValueSafely = function(tag, index) { + if (tag && tag.value) { + return tag.value[index]; + } + return null; + }; + daikon2.Image.getValueSafely = function(tag) { + if (tag) { + return tag.value; + } + return null; + }; + daikon2.Image.getMajorAxisFromPatientRelativeDirectionCosine = function(x, y, z) { + var axis, orientationX, orientationY, orientationZ, absX, absY, absZ; + orientationX = x < 0 ? "R" : "L"; + orientationY = y < 0 ? "A" : "P"; + orientationZ = z < 0 ? "F" : "H"; + absX = Math.abs(x); + absY = Math.abs(y); + absZ = Math.abs(z); + if (absX > daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE && absX > absY && absX > absZ) { + axis = orientationX; + } else if (absY > daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE && absY > absX && absY > absZ) { + axis = orientationY; + } else if (absZ > daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE && absZ > absX && absZ > absY) { + axis = orientationZ; + } else { + axis = null; + } + return axis; + }; + daikon2.Image.prototype.getCols = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_COLS[0], daikon2.Tag.TAG_COLS[1]), 0); + }; + daikon2.Image.prototype.getRows = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_ROWS[0], daikon2.Tag.TAG_ROWS[1]), 0); + }; + daikon2.Image.prototype.getSeriesDescription = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_DESCRIPTION[0], daikon2.Tag.TAG_SERIES_DESCRIPTION[1]), 0); + }; + daikon2.Image.prototype.getSeriesInstanceUID = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_INSTANCE_UID[0], daikon2.Tag.TAG_SERIES_INSTANCE_UID[1]), 0); + }; + daikon2.Image.prototype.getSeriesNumber = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_NUMBER[0], daikon2.Tag.TAG_SERIES_NUMBER[1]), 0); + }; + daikon2.Image.prototype.getEchoNumber = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_ECHO_NUMBER[0], daikon2.Tag.TAG_ECHO_NUMBER[1]), 0); + }; + daikon2.Image.prototype.getImagePosition = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_POSITION[0], daikon2.Tag.TAG_IMAGE_POSITION[1])); + }; + daikon2.Image.prototype.getImageDirections = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_ORIENTATION[0], daikon2.Tag.TAG_IMAGE_ORIENTATION[1])); + }; + daikon2.Image.prototype.getImagePositionSliceDir = function(sliceDir) { + var imagePos = daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_POSITION[0], daikon2.Tag.TAG_IMAGE_POSITION[1])); + if (imagePos) { + if (sliceDir >= 0) { + return imagePos[sliceDir]; + } + } + return 0; + }; + daikon2.Image.prototype.getModality = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_MODALITY[0], daikon2.Tag.TAG_MODALITY[1]), 0); + }; + daikon2.Image.prototype.getSliceLocation = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_LOCATION[0], daikon2.Tag.TAG_SLICE_LOCATION[1]), 0); + }; + daikon2.Image.prototype.getSliceLocationVector = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_LOCATION_VECTOR[0], daikon2.Tag.TAG_SLICE_LOCATION_VECTOR[1])); + }; + daikon2.Image.prototype.getImageNumber = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_NUM[0], daikon2.Tag.TAG_IMAGE_NUM[1]), 0); + }; + daikon2.Image.prototype.getTemporalPosition = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_TEMPORAL_POSITION[0], daikon2.Tag.TAG_TEMPORAL_POSITION[1]), 0); + }; + daikon2.Image.prototype.getTemporalNumber = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[0], daikon2.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[1]), 0); + }; + daikon2.Image.prototype.getSliceGap = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_GAP[0], daikon2.Tag.TAG_SLICE_GAP[1]), 0); + }; + daikon2.Image.prototype.getSliceThickness = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_THICKNESS[0], daikon2.Tag.TAG_SLICE_THICKNESS[1]), 0); + }; + daikon2.Image.prototype.getImageMax = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_MAX[0], daikon2.Tag.TAG_IMAGE_MAX[1]), 0); + }; + daikon2.Image.prototype.getImageMin = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_MIN[0], daikon2.Tag.TAG_IMAGE_MIN[1]), 0); + }; + daikon2.Image.prototype.getDataScaleSlope = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_DATA_SCALE_SLOPE[0], daikon2.Tag.TAG_DATA_SCALE_SLOPE[1]), 0); + }; + daikon2.Image.prototype.getDataScaleIntercept = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_DATA_SCALE_INTERCEPT[0], daikon2.Tag.TAG_DATA_SCALE_INTERCEPT[1]), 0); + }; + daikon2.Image.prototype.getDataScaleElscint = function() { + var scale = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon2.Tag.TAG_DATA_SCALE_ELSCINT[1]), 0); + if (!scale) { + scale = 1; + } + var bandwidth = this.getPixelBandwidth(); + scale = Math.sqrt(bandwidth) / (10 * scale); + if (scale <= 0) { + scale = 1; + } + return scale; + }; + daikon2.Image.prototype.getWindowWidth = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_WINDOW_WIDTH[0], daikon2.Tag.TAG_WINDOW_WIDTH[1]), 0); + }; + daikon2.Image.prototype.getWindowCenter = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_WINDOW_CENTER[0], daikon2.Tag.TAG_WINDOW_CENTER[1]), 0); + }; + daikon2.Image.prototype.getPixelBandwidth = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PIXEL_BANDWIDTH[0], daikon2.Tag.TAG_PIXEL_BANDWIDTH[1]), 0); + }; + daikon2.Image.prototype.getSeriesId = function() { + var des = this.getSeriesDescription(); + var uid = this.getSeriesInstanceUID(); + var num = this.getSeriesNumber(); + var echo = this.getEchoNumber(); + var orientation = this.getOrientation(); + var cols = this.getCols(); + var rows = this.getRows(); + var id = ""; + if (des !== null) { + id += " " + des; + } + if (uid !== null) { + id += " " + uid; + } + if (num !== null) { + id += " " + num; + } + if (echo !== null) { + id += " " + echo; + } + if (orientation !== null) { + id += " " + orientation; + } + id += " (" + cols + " x " + rows + ")"; + return id; + }; + daikon2.Image.prototype.getPixelSpacing = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_PIXEL_SPACING[0], daikon2.Tag.TAG_PIXEL_SPACING[1])); + }; + daikon2.Image.prototype.getImageType = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_TYPE[0], daikon2.Tag.TAG_IMAGE_TYPE[1])); + }; + daikon2.Image.prototype.getBitsStored = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_BITS_STORED[0], daikon2.Tag.TAG_BITS_STORED[1]), 0); + }; + daikon2.Image.prototype.getBitsAllocated = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_BITS_ALLOCATED[0], daikon2.Tag.TAG_BITS_ALLOCATED[1]), 0); + }; + daikon2.Image.prototype.getFrameTime = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_FRAME_TIME[0], daikon2.Tag.TAG_FRAME_TIME[1]), 0); + }; + daikon2.Image.prototype.getAcquisitionMatrix = function() { + var mat, matPrivate, start, end, str; + mat = [0, 0]; + mat[0] = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_ACQUISITION_MATRIX[0], daikon2.Tag.TAG_ACQUISITION_MATRIX[1]), 0); + if (this.privateDataAll === null) { + this.privateDataAll = this.getAllInterpretedPrivateData(); + } + if (this.privateDataAll !== null && this.privateDataAll.length > 0) { + start = this.privateDataAll.indexOf("AcquisitionMatrixText"); + if (start !== -1) { + end = this.privateDataAll.indexOf("\n", start); + if (end !== -1) { + str = this.privateDataAll.substring(start, end); + matPrivate = str.match(/\d+/g); + if (matPrivate !== null && matPrivate.length === 2) { + mat[0] = matPrivate[0]; + mat[1] = matPrivate[1]; + } else if (matPrivate !== null && matPrivate.length === 1) { + mat[0] = matPrivate[0]; } - } else if (stringData[ctr].length === 8) { - data[ctr] = new Date(daikon.Utils.safeParseInt(stringData[ctr].substring(0, 4)), - daikon.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1, - daikon.Utils.safeParseInt(stringData[ctr].substring(6, 8))); - } else { - data[ctr] = Date.parse(stringData[ctr]); + } } - - if (!daikon.Utils.isValidDate(data[ctr])) { - data[ctr] = stringData[ctr]; + } + if (mat[1] === 0) { + mat[1] = mat[0]; + } + return mat; + }; + daikon2.Image.prototype.getTR = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_TR, daikon2.Tag.TAG_TR[1]), 0); + }; + daikon2.Image.prototype.putTag = function(tag) { + if (this.tags[tag.id] && this.tags[tag.id].value[0] !== tag.value[0]) { + return; + } + this.tags[tag.id] = tag; + this.putFlattenedTag(this.tagsFlat, tag); + }; + daikon2.Image.prototype.putFlattenedTag = function(tags, tag) { + var ctr; + if (tag.sublist) { + for (ctr = 0; ctr < tag.value.length; ctr += 1) { + this.putFlattenedTag(tags, tag.value[ctr]); + } + } else { + if (!tags[tag.id]) { + tags[tag.id] = tag; + } + } + }; + daikon2.Image.prototype.getTag = function(group, element) { + var tagId = daikon2.Tag.createId(group, element); + if (this.tags[tagId]) { + return this.tags[tagId]; + } + return this.tagsFlat[tagId]; + }; + daikon2.Image.prototype.getPixelData = function() { + return this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])]; + }; + daikon2.Image.prototype.getPixelDataBytes = function() { + if (this.isCompressed()) { + this.decompress(); + } + if (this.isPalette() && !daikon2.Image.skipPaletteConversion) { + this.convertPalette(); + } + return this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value.buffer; + }; + daikon2.Image.prototype.getRawData = function() { + return this.getPixelDataBytes(); + }; + daikon2.Image.prototype.getInterpretedData = function(asArray, asObject, frameIndex) { + var datatype, numBytes, numElements, dataView, data, ctr, mask, slope, intercept, min, max, value, minIndex, maxIndex, littleEndian, rawValue, rawData, allFrames, elementsPerFrame, totalElements, offset, dataCtr; + allFrames = arguments.length < 3; + mask = daikon2.Utils.createBitMask( + this.getBitsAllocated() / 8, + this.getBitsStored(), + this.getDataType() === daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED + ); + datatype = this.getPixelRepresentation() ? daikon2.Image.BYTE_TYPE_INTEGER : daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED; + numBytes = this.getBitsAllocated() / 8; + rawData = this.getRawData(); + dataView = new DataView(rawData); + totalElements = rawData.byteLength / numBytes; + elementsPerFrame = totalElements / this.getNumberOfFrames(); + numElements = allFrames ? totalElements : elementsPerFrame; + offset = allFrames ? 0 : frameIndex * elementsPerFrame; + slope = this.getDataScaleSlope() || 1; + intercept = this.getDataScaleIntercept() || 0; + min = daikon2.Utils.MAX_VALUE; + max = daikon2.Utils.MIN_VALUE; + minIndex = -1; + maxIndex = -1; + littleEndian = this.littleEndian; + if (asArray) { + data = new Array(numElements); + } else { + data = new Float32Array(numElements); + } + var getWord; + if (datatype === daikon2.Image.BYTE_TYPE_INTEGER) { + if (numBytes === 1) { + getWord = dataView.getInt8.bind(dataView); + } else if (numBytes === 2) { + getWord = dataView.getInt16.bind(dataView); + } + } else if (datatype === daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED) { + if (numBytes === 1) { + getWord = dataView.getUint8.bind(dataView); + } else if (numBytes === 2) { + getWord = dataView.getUint16.bind(dataView); + } + } + var invert = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_LUT_SHAPE[0], daikon2.Tag.TAG_LUT_SHAPE[1]), 0) === "INVERSE"; + invert = invert || this.getPhotometricInterpretation() === "MONOCHROME1"; + if (invert) { + var maxVal = Math.pow(2, this.getBitsStored()) - 1; + var minVal = 0; + if (datatype === daikon2.Image.BYTE_TYPE_INTEGER) { + maxVal /= 2; + minVal = -maxVal; + } + var originalGetWord = getWord; + getWord = function(offset2, endian) { + var val = maxVal - originalGetWord(offset2, endian); + return Math.min(maxVal, Math.max(minVal, val)); + }; + } + for (ctr = offset, dataCtr = 0; dataCtr < numElements; ctr++, dataCtr++) { + rawValue = getWord(ctr * numBytes, littleEndian); + value = (rawValue & mask) * slope + intercept; + data[dataCtr] = value; + if (value < min) { + min = value; + minIndex = dataCtr; + } + if (value > max) { + max = value; + maxIndex = dataCtr; + } + } + if (asObject) { + return { + data, + min, + minIndex, + max, + maxIndex, + numCols: this.getCols(), + numRows: this.getRows() + }; + } + return data; + }; + daikon2.Image.prototype.convertPalette = function() { + var data, reds, greens, blues, rgb, numBytes, numElements, ctr, index, rVal, gVal, bVal; + data = this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value; + reds = this.getPalleteValues(daikon2.Tag.TAG_PALETTE_RED); + greens = this.getPalleteValues(daikon2.Tag.TAG_PALETTE_GREEN); + blues = this.getPalleteValues(daikon2.Tag.TAG_PALETTE_BLUE); + if (reds !== null && reds.length > 0 && greens !== null && greens.length > 0 && blues !== null && blues.length > 0 && !this.convertedPalette) { + rgb = new DataView(new ArrayBuffer(this.getRows() * this.getCols() * this.getNumberOfFrames() * 3)); + numBytes = parseInt(Math.ceil(this.getBitsAllocated() / 8)); + numElements = data.byteLength / numBytes; + if (numBytes === 1) { + for (ctr = 0; ctr < numElements; ctr += 1) { + index = data.getUint8(ctr); + rVal = reds[index]; + gVal = greens[index]; + bVal = blues[index]; + rgb.setUint8(ctr * 3, rVal); + rgb.setUint8(ctr * 3 + 1, gVal); + rgb.setUint8(ctr * 3 + 2, bVal); + } + } else if (numBytes === 2) { + for (ctr = 0; ctr < numElements; ctr += 1) { + index = data.getUint16(ctr * 2); + rVal = reds[index]; + gVal = greens[index]; + bVal = blues[index]; + rgb.setUint8(ctr * 3, rVal); + rgb.setUint8(ctr * 3 + 1, gVal); + rgb.setUint8(ctr * 3 + 2, bVal); + } + } + data = rgb; + this.convertedPalette = true; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = data; + }; + daikon2.Image.prototype.decompressJPEG = function(jpg) { + if (this.isCompressedJPEGLossless()) { + var decoder = new jpeg2.lossless.Decoder(); + return decoder.decode(jpg); + } else if (this.isCompressedJPEGBaseline()) { + var decoder = new JpegDecoder2(); + decoder.parse(new Uint8Array(jpg)); + var width = decoder.width; + var height = decoder.height; + var decoded; + if (this.getBitsAllocated() === 8) { + decoded = decoder.getData(width, height); + } else if (this.getBitsAllocated() === 16) { + decoded = decoder.getData16(width, height); } - } - - return data; -}; - - - -daikon.Tag.getDateTimeStringValue = function (rawData) { - var stringData = daikon.Tag.getStringValue(rawData), - data = [], - ctr, - year = null, - month = null, - date = null, - hours = null, - minutes = null, - seconds = null; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - if (stringData[ctr].length >= 4) { - year = parseInt(stringData[ctr].substring(0, 4), 10); // required - - if (stringData[ctr].length >= 6) { - month = daikon.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1; + return decoded; + } else if (this.isCompressedJPEG2000()) { + var decoder = new JpxImage2(); + decoder.parse(new Uint8Array(jpg)); + return decoder.tiles[0].items; + } else if (this.isCompressedJPEGLS()) { + var decoder = new JpegLSDecoder2(); + return decoder.decodeJPEGLS(new Uint8Array(jpg), this.getDataType() === daikon2.Image.BYTE_TYPE_INTEGER); + } + }; + daikon2.Image.prototype.decompress = function() { + var jpegs, rle, decoder, decompressed, numFrames, frameSize, temp, ctr, width, height, numComponents, decoded; + decompressed = null; + if (!this.decompressed) { + this.decompressed = true; + frameSize = this.getRows() * this.getCols() * parseInt(Math.ceil(this.getBitsAllocated() / 8)); + numFrames = this.getNumberOfFrames(); + if (this.isCompressedJPEGLossless()) { + jpegs = this.getJpegs(); + for (ctr = 0; ctr < jpegs.length; ctr += 1) { + decoder = new jpeg2.lossless.Decoder(); + temp = decoder.decode(jpegs[ctr]); + numComponents = decoder.numComp; + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } - - if (stringData[ctr].length >= 8) { - date = daikon.Utils.safeParseInt(stringData[ctr].substring(6, 8)); + new Uint8Array(decompressed.buffer).set(new Uint8Array(temp.buffer), ctr * frameSize * numComponents); + temp = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + } else if (this.isCompressedJPEGBaseline()) { + jpegs = this.getJpegs(); + for (ctr = 0; ctr < jpegs.length; ctr += 1) { + decoder = new JpegDecoder2(); + decoder.parse(new Uint8Array(jpegs[ctr])); + width = decoder.width; + height = decoder.height; + numComponents = decoder.components.length; + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } - - if (stringData[ctr].length >= 10) { - hours = daikon.Utils.safeParseInt(stringData[ctr].substring(8, 10)); + if (this.getBitsAllocated() === 8) { + decoded = decoder.getData(width, height); + } else if (this.getBitsAllocated() === 16) { + decoded = decoder.getData16(width, height); } - - if (stringData[ctr].length >= 12) { - minutes = daikon.Utils.safeParseInt(stringData[ctr].substring(10, 12)); + daikon2.Utils.fillBuffer( + decoded, + decompressed, + ctr * frameSize * numComponents, + parseInt(Math.ceil(this.getBitsAllocated() / 8)) + ); + decoded = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + } else if (this.isCompressedJPEG2000()) { + jpegs = this.getJpegs(); + for (ctr = 0; ctr < jpegs.length; ctr += 1) { + decoder = new JpxImage2(); + decoder.parse(new Uint8Array(jpegs[ctr])); + width = decoder.width; + height = decoder.height; + decoded = decoder.tiles[0].items; + numComponents = decoder.componentsCount; + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } - - if (stringData[ctr].length >= 14) { - seconds = daikon.Utils.safeParseInt(stringData[ctr].substring(12, 14)); + daikon2.Utils.fillBuffer( + decoded, + decompressed, + ctr * frameSize * numComponents, + parseInt(Math.ceil(this.getBitsAllocated() / 8)) + ); + decoded = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + } else if (this.isCompressedJPEGLS()) { + jpegs = this.getJpegs(); + for (ctr = 0; ctr < jpegs.length; ctr += 1) { + decoder = new JpegLSDecoder2(); + var decoded = decoder.decodeJPEGLS(new Uint8Array(jpegs[ctr]), this.getDataType() === daikon2.Image.BYTE_TYPE_INTEGER); + width = decoded.columns; + height = decoded.rows; + decoded = decoded.pixelData; + numComponents = this.getNumberOfSamplesPerPixel(); + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } - - data[ctr] = new Date(year, month, date, hours, minutes, seconds); - } else { - data[ctr] = Date.parse(stringData[ctr]); + daikon2.Utils.fillBuffer( + decoded, + decompressed, + ctr * frameSize * numComponents, + parseInt(Math.ceil(this.getBitsAllocated() / 8)) + ); + decoded = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + } else if (this.isCompressedRLE()) { + rle = this.getRLE(); + for (ctr = 0; ctr < rle.length; ctr += 1) { + decoder = new daikon2.RLE(); + temp = decoder.decode(rle[ctr], this.littleEndian, this.getRows() * this.getCols()); + numComponents = decoder.numSegments === 3 ? 3 : 1; + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); + } + new Uint8Array(decompressed.buffer).set(new Uint8Array(temp.buffer), ctr * frameSize * numComponents); + temp = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; } - - if (!daikon.Utils.isValidDate(data[ctr])) { - data[ctr] = stringData[ctr]; + } + }; + daikon2.Image.prototype.hasPixelData = function() { + return this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])] !== void 0; + }; + daikon2.Image.prototype.clearPixelData = function() { + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = null; + }; + daikon2.Image.prototype.getOrientation = function() { + var orientation = null, dirCos = daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_ORIENTATION[0], daikon2.Tag.TAG_IMAGE_ORIENTATION[1])), ctr, spacing, rowSpacing, swapZ, bigRow = 0, bigCol = 0, biggest = 0, orient = ""; + if (!dirCos || dirCos.length !== 6) { + return null; + } + spacing = this.getPixelSpacing(); + if (!spacing) { + return null; + } + rowSpacing = spacing[0]; + swapZ = true; + for (ctr = 0; ctr < 3; ctr += 1) { + if (Math.abs(dirCos[ctr]) > biggest) { + biggest = Math.abs(dirCos[ctr]); + bigRow = ctr; } - } - - return data; -}; - - - -daikon.Tag.getTimeStringValue = function (rawData, ms) { - var stringData = daikon.Tag.getStringValue(rawData), - data = []; - - if (ms) { - var parts = null, - ctr, - hours = 0, - minutes = 0, - seconds = 0; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - if (stringData[ctr].indexOf(':') !== -1) { - parts = stringData[ctr].split(':'); - hours = daikon.Utils.safeParseInt(parts[0]); - - if (parts.length > 1) { - minutes = daikon.Utils.safeParseInt(parts[1]); - } - - if (parts.length > 2) { - seconds = daikon.Utils.safeParseFloat(parts[2]); - } + } + biggest = 0; + for (; ctr < 6; ctr += 1) { + if (Math.abs(dirCos[ctr]) > biggest) { + biggest = Math.abs(dirCos[ctr]); + bigCol = ctr; + } + } + switch (bigRow) { + case 0: + orient += "X"; + if (bigCol === 4) { + orient += "YZ"; + } else { + orient += "ZY"; + } + break; + case 1: + orient += "Y"; + if (bigCol === 3) { + orient += "XZ"; + } else { + orient += "ZX"; + } + break; + case 2: + orient += "Z"; + if (bigCol === 3) { + orient += "XY"; + } else { + orient += "YX"; + } + break; + default: + break; + } + switch (bigRow) { + case 0: + if (dirCos[bigRow] > 0) { + orient += "-"; + } else { + orient += "+"; + } + if (bigCol === 4) { + if (dirCos[bigCol] > 0) { + orient += "-"; } else { - if (stringData[ctr].length >= 2) { - hours = daikon.Utils.safeParseInt(stringData[ctr].substring(0, 2)); - } - - if (stringData[ctr].length >= 4) { - minutes = daikon.Utils.safeParseInt(stringData[ctr].substring(2, 4)); - } - - if (stringData[ctr].length >= 6) { - seconds = daikon.Utils.safeParseFloat(stringData[ctr].substring(4)); - } + orient += "+"; } - - data[ctr] = Math.round((hours * 60 * 60 * 1000) + (minutes * 60 * 1000) + (seconds * 1000)); + } else { + if (dirCos[bigCol] > 0) { + orient += "+"; + } else { + orient += "-"; + } + } + break; + case 1: + if (dirCos[bigRow] > 0) { + orient += "-"; + } else { + orient += "+"; + } + if (bigCol === 3) { + if (dirCos[bigCol] > 0) { + orient += "-"; + } else { + orient += "+"; + } + } else { + if (dirCos[bigCol] > 0) { + orient += "+"; + } else { + orient += "-"; + } + } + break; + case 2: + if (dirCos[bigRow] > 0) { + orient += "+"; + } else { + orient += "-"; + } + if (dirCos[bigCol] > 0) { + orient += "-"; + } else { + orient += "+"; + } + break; + default: + break; + } + if (rowSpacing === 0) { + orient += "+"; + orientation = orient; + } else { + if (swapZ) { + switch (orient.charAt(2)) { + case "X": + if (rowSpacing > 0) { + orient += "-"; + } else { + orient += "+"; + } + break; + case "Y": + case "Z": + if (rowSpacing > 0) { + orient += "+"; + } else { + orient += "-"; + } + break; + default: + break; + } + } else { + switch (orient.charAt(2)) { + case "X": + if (rowSpacing > 0) { + orient += "+"; + } else { + orient += "-"; + } + break; + case "Y": + case "Z": + if (rowSpacing > 0) { + orient += "-"; + } else { + orient += "+"; + } + break; + default: + break; + } } - - return data; - } - - - return stringData; -}; - - - -daikon.Tag.getDoubleStringValue = function (rawData) { - var stringData = daikon.Tag.getStringValue(rawData), - data = [], - ctr; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - data[ctr] = parseFloat(stringData[ctr]); - } - - return data; -}; - - - -daikon.Tag.getIntegerStringValue = function (rawData) { - var stringData = daikon.Tag.getStringValue(rawData), - data = [], - ctr; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - data[ctr] = parseInt(stringData[ctr], 10); - } - - return data; -}; - - - -daikon.Tag.getSingleStringValue = function (rawData, maxLength, charset, vr) { - var len = rawData.byteLength; - if (maxLength) { - len = Math.min(rawData.byteLength, maxLength); - } - return [daikon.Utils.trim(daikon.Utils.getStringAt(rawData, 0, len, charset, vr))]; -}; - - - -daikon.Tag.getPersonNameStringValue = function (rawData, charset, vr) { - var stringData = daikon.Tag.getStringValue(rawData, charset, vr), - data = [], - ctr; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - data[ctr] = stringData[ctr].replace('^', ' '); - } - - return data; -}; - - - -daikon.Tag.convertPrivateValue = function (group, element, rawData) { - var ctr, privReader; - - for (ctr = 0; ctr < daikon.Tag.PRIVATE_DATA_READERS.length; ctr += 1) { - privReader = new daikon.Tag.PRIVATE_DATA_READERS[ctr](rawData.buffer); - if (privReader.canRead(group, element)) { - return privReader.readHeader(); + orientation = orient; + } + return orientation; + }; + daikon2.Image.prototype.isMosaic = function() { + var imageType, labeledAsMosaic = false, canReadAsMosaic, ctr, matSize; + imageType = this.getImageType(); + if (imageType !== null) { + for (ctr = 0; ctr < imageType.length; ctr += 1) { + if (imageType[ctr].toUpperCase().indexOf("MOSAIC") !== -1) { + labeledAsMosaic = true; + break; + } + } + } + matSize = this.getAcquisitionMatrix(); + canReadAsMosaic = matSize[0] > 0 && (matSize[0] < this.getRows() || matSize[1] < this.getCols()); + return labeledAsMosaic && canReadAsMosaic; + }; + daikon2.Image.prototype.isPalette = function() { + var value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); + if (value !== null) { + if (value.toLowerCase().indexOf("palette") !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.getMosaicCols = function() { + return this.getCols() / this.getAcquisitionMatrix()[1]; + }; + daikon2.Image.prototype.getMosaicRows = function() { + return this.getRows() / this.getAcquisitionMatrix()[0]; + }; + daikon2.Image.prototype.isElscint = function() { + var tag = this.getTag(daikon2.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon2.Tag.TAG_DATA_SCALE_ELSCINT[1]); + return tag !== void 0; + }; + daikon2.Image.prototype.isCompressed = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { + return true; + } else if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEG = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEGLossless = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEGBaseline = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEG2000 = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEGLS = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedRLE = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.getNumberOfFrames = function() { + var value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_NUMBER_OF_FRAMES[0], daikon2.Tag.TAG_NUMBER_OF_FRAMES[1]), 0); + if (value !== null) { + return value; + } + return 1; + }; + daikon2.Image.prototype.getNumberOfSamplesPerPixel = function() { + var value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SAMPLES_PER_PIXEL[0], daikon2.Tag.TAG_SAMPLES_PER_PIXEL[1]), 0); + if (value !== null) { + return value; + } + return 1; + }; + daikon2.Image.prototype.getNumberOfImplicitFrames = function() { + var pixelData, length, size; + if (this.isCompressed()) { + return 1; + } + pixelData = this.getPixelData(); + length = pixelData.offsetEnd - pixelData.offsetValue; + size = this.getCols() * this.getRows() * parseInt(this.getBitsAllocated() / 8); + return parseInt(length / size); + }; + daikon2.Image.prototype.getPixelRepresentation = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PIXEL_REPRESENTATION[0], daikon2.Tag.TAG_PIXEL_REPRESENTATION[1]), 0); + }; + daikon2.Image.prototype.getPhotometricInterpretation = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); + }; + daikon2.Image.prototype.getPatientName = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PATIENT_NAME[0], daikon2.Tag.TAG_PATIENT_NAME[1]), 0); + }; + daikon2.Image.prototype.getPatientID = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PATIENT_ID[0], daikon2.Tag.TAG_PATIENT_ID[1]), 0); + }; + daikon2.Image.prototype.getStudyTime = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_STUDY_TIME[0], daikon2.Tag.TAG_STUDY_TIME[1]), 0); + }; + daikon2.Image.prototype.getTransferSyntax = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_TRANSFER_SYNTAX[0], daikon2.Tag.TAG_TRANSFER_SYNTAX[1]), 0); + }; + daikon2.Image.prototype.getStudyDate = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_STUDY_DATE[0], daikon2.Tag.TAG_STUDY_DATE[1]), 0); + }; + daikon2.Image.prototype.getPlanarConfig = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PLANAR_CONFIG[0], daikon2.Tag.TAG_PLANAR_CONFIG[1]), 0); + }; + daikon2.Image.prototype.getImageDescription = function() { + var value, string = ""; + value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_STUDY_DES[0], daikon2.Tag.TAG_STUDY_DES[1]), 0); + if (value !== null) { + string += " " + value; + } + value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_DESCRIPTION[0], daikon2.Tag.TAG_SERIES_DESCRIPTION[1]), 0); + if (value !== null) { + string += " " + value; + } + value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_COMMENTS[0], daikon2.Tag.TAG_IMAGE_COMMENTS[1]), 0); + if (value !== null) { + string += " " + value; + } + return string.trim(); + }; + daikon2.Image.prototype.getDataType = function() { + var interp, dataType; + dataType = this.getPixelRepresentation(); + if (dataType === null) { + return daikon2.Image.BYTE_TYPE_UNKNOWN; + } + interp = this.getPhotometricInterpretation(); + if (interp !== null) { + if (interp.trim().indexOf("RGB") !== -1 || interp.trim().indexOf("YBR") !== -1 || interp.trim().toLowerCase().indexOf("palette") !== -1) { + return daikon2.Image.BYTE_TYPE_RGB; } - } - - return rawData; -}; - - - -daikon.Tag.convertValue = function (vr, rawData, littleEndian, charset) { - var data = null; - // http://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html - if (vr === 'AE') { - data = daikon.Tag.getSingleStringValue(rawData, daikon.Tag.VR_AE_MAX_LENGTH); - } else if (vr === 'AS') { - data = daikon.Tag.getFixedLengthStringValue(rawData, daikon.Tag.VR_AS_MAX_LENGTH); - } else if (vr === 'AT') { - data = daikon.Tag.getUnsignedInteger16(rawData, littleEndian); - } else if (vr === 'CS') { - data = daikon.Tag.getStringValue(rawData); - } else if (vr === 'DA') { - data = daikon.Tag.getDateStringValue(rawData); - } else if (vr === 'DS') { - data = daikon.Tag.getDoubleStringValue(rawData); - } else if (vr === 'DT') { - data = daikon.Tag.getDateTimeStringValue(rawData); - } else if (vr === 'FL') { - data = daikon.Tag.getFloat32(rawData, littleEndian); - } else if (vr === 'FD') { - data = daikon.Tag.getFloat64(rawData, littleEndian); - } else if (vr === 'FE') { // special Elscint double (see dictionary) - data = daikon.Tag.getDoubleElscint(rawData, littleEndian); - } else if (vr === 'IS') { - data = daikon.Tag.getIntegerStringValue(rawData); - } else if (vr === 'LO') { - data = daikon.Tag.getStringValue(rawData, charset, vr); - } else if (vr === 'LT') { - data = daikon.Tag.getSingleStringValue(rawData, daikon.Tag.VR_AT_MAX_LENGTH, charset, vr); - } else if (vr === 'OB') { - data = rawData; - } else if (vr === 'OD') { - data = rawData; - } else if (vr === 'OF') { - data = rawData; - } else if (vr === 'OW') { - data = rawData; - } else if (vr === 'PN') { - data = daikon.Tag.getPersonNameStringValue(rawData, charset, vr); - } else if (vr === 'SH') { - data = daikon.Tag.getStringValue(rawData, charset, vr); - } else if (vr === 'SL') { - data = daikon.Tag.getSignedInteger32(rawData, littleEndian); - } else if (vr === 'SQ') { - data = null; - } else if (vr === 'SS') { - data = daikon.Tag.getSignedInteger16(rawData, littleEndian); - } else if (vr === 'ST') { - data = daikon.Tag.getSingleStringValue(rawData, daikon.Tag.VR_ST_MAX_LENGTH, charset, vr); - } else if (vr === 'TM') { - data = daikon.Tag.getTimeStringValue(rawData); - } else if (vr === 'UI') { - data = daikon.Tag.getStringValue(rawData); - } else if (vr === 'UL') { - data = daikon.Tag.getUnsignedInteger32(rawData, littleEndian); - } else if (vr === 'UN') { - data = rawData; - } else if (vr === 'US') { - data = daikon.Tag.getUnsignedInteger16(rawData, littleEndian); - } else if (vr === 'UT') { - data = daikon.Tag.getSingleStringValue(rawData, Number.MAX_SAFE_INTEGER, charset, vr); - } else if (vr === 'UC') { - data = daikon.Tag.getStringValue(rawData); - } - - return data; -}; - - -/*** Prototype Methods ***/ - -/** - * Returns a string representation of this tag. - * @param {number} [level] - the indentation level - * @param {boolean} [html] - * @returns {string} - */ -daikon.Tag.prototype.toString = function (level, html) { - var valueStr = '', - ctr, - groupStr = daikon.Utils.dec2hex(this.group), - elemStr = daikon.Utils.dec2hex(this.element), - tagStr = '(' + groupStr + ',' + elemStr + ')', - des = '', - padding; - - if (level === undefined) { - level = 0; - } - - padding = ""; - for (ctr = 0; ctr < level; ctr += 1) { - if (html) { - padding += "  "; - } else { - padding += " "; + } + if (dataType === 0) { + return daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED; + } else if (dataType === 1) { + return daikon2.Image.BYTE_TYPE_INTEGER; + } else { + return daikon2.Image.BYTE_TYPE_UNKNOWN; + } + }; + daikon2.Image.prototype.getAcquiredSliceDirection = function() { + var dirCos, rowAxis, colAxis, label; + dirCos = daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_ORIENTATION[0], daikon2.Tag.TAG_IMAGE_ORIENTATION[1])); + if (!dirCos || dirCos.length !== 6) { + return daikon2.Image.SLICE_DIRECTION_UNKNOWN; + } + rowAxis = daikon2.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[0], dirCos[1], dirCos[2]); + colAxis = daikon2.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[3], dirCos[4], dirCos[5]); + if (rowAxis !== null && colAxis !== null) { + if ((rowAxis === "R" || rowAxis === "L") && (colAxis === "A" || colAxis === "P")) { + label = daikon2.Image.SLICE_DIRECTION_AXIAL; + } else if ((colAxis === "R" || colAxis === "L") && (rowAxis === "A" || rowAxis === "P")) { + label = daikon2.Image.SLICE_DIRECTION_AXIAL; + } else if ((rowAxis === "R" || rowAxis === "L") && (colAxis === "H" || colAxis === "F")) { + label = daikon2.Image.SLICE_DIRECTION_CORONAL; + } else if ((colAxis === "R" || colAxis === "L") && (rowAxis === "H" || rowAxis === "F")) { + label = daikon2.Image.SLICE_DIRECTION_CORONAL; + } else if ((rowAxis === "A" || rowAxis === "P") && (colAxis === "H" || colAxis === "F")) { + label = daikon2.Image.SLICE_DIRECTION_SAGITTAL; + } else if ((colAxis === "A" || colAxis === "P") && (rowAxis === "H" || rowAxis === "F")) { + label = daikon2.Image.SLICE_DIRECTION_SAGITTAL; } - } - - if (this.sublist) { - for (ctr = 0; ctr < this.value.length; ctr += 1) { - valueStr += ('\n' + (this.value[ctr].toString(level + 1, html))); - } - } else if (this.vr === 'SQ') { - valueStr = ''; - } else if (this.isPixelData()) { - valueStr = ''; - } else if (!this.value) { - valueStr = ''; - } else { - if (html && this.preformatted) { - valueStr = "[
"+this.value +"
]"; + } else { + label = daikon2.Image.SLICE_DIRECTION_OBLIQUE; + } + return label; + }; + daikon2.Image.prototype.getEncapsulatedData = function() { + var buffer2, parser; + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + buffer2 = this.getPixelData().value.buffer; + parser = new daikon2.Parser(); + return parser.parseEncapsulated(new DataView(buffer2)); + }; + daikon2.Image.prototype.getJpegs = function() { + var encapTags, numTags, ctr, currentJpeg, data = [], dataConcat = []; + encapTags = this.getEncapsulatedData(); + if (encapTags) { + numTags = encapTags.length; + for (ctr = 0; ctr < numTags; ctr += 1) { + if (daikon2.CompressionUtils.isHeaderJPEG(encapTags[ctr].value) || daikon2.CompressionUtils.isHeaderJPEG2000(encapTags[ctr].value)) { + currentJpeg = []; + currentJpeg.push(encapTags[ctr].value.buffer); + data.push(currentJpeg); + } else if (currentJpeg && encapTags[ctr].value) { + currentJpeg.push(encapTags[ctr].value.buffer); + } + } + } + for (ctr = 0; ctr < data.length; ctr += 1) { + if (data[ctr].length > 1) { + dataConcat[ctr] = daikon2.Utils.concatArrayBuffers2(data[ctr]); } else { - valueStr = '[' + this.value + ']'; + dataConcat[ctr] = data[ctr][0]; } - } - - if (this.isSublistItem()) { - tagStr = "Sequence Item"; - } else if (this.isSublistItemDelim()) { - tagStr = "Sequence Item Delimiter"; - } else if (this.isSequenceDelim()) { - tagStr = "Sequence Delimiter"; - } else if (this.isPixelData()) { - tagStr = "Pixel Data"; - } else { - des = daikon.Utils.convertCamcelCaseToTitleCase(daikon.Dictionary.getDescription(this.group, this.element)); - } - - // filter for xss - valueStr = xss(valueStr); - - if (html) { - return padding + "" + tagStr + "   " + des + '   ' + valueStr; - } else { - return padding + ' ' + tagStr + ' ' + des + ' ' + valueStr; - } -}; - - -/** - * Returns an HTML string representation of this tag. - * @param {number} level - the indentation level - * @returns {string} - */ -daikon.Tag.prototype.toHTMLString = function (level) { - return this.toString(level, true); -}; - - -/** - * Returns true if this is the transform syntax tag. - * @returns {boolean} - */ -daikon.Tag.prototype.isTransformSyntax = function () { - return (this.group === daikon.Tag.TAG_TRANSFER_SYNTAX[0]) && (this.element === daikon.Tag.TAG_TRANSFER_SYNTAX[1]); -}; - - -/** - * Returns true if this is the char set tag. - * @returns {boolean} - */ -daikon.Tag.prototype.isCharset = function () { - return (this.group === daikon.Tag.TAG_SPECIFIC_CHAR_SET[0]) && (this.element === daikon.Tag.TAG_SPECIFIC_CHAR_SET[1]); -}; - - -/** - * Returns true if this is the pixel data tag. - * @returns {boolean} - */ -daikon.Tag.prototype.isPixelData = function () { - return (this.group === daikon.Tag.TAG_PIXEL_DATA[0]) && (this.element === daikon.Tag.TAG_PIXEL_DATA[1]); -}; - - -/** - * Returns true if this tag contains private data. - * @returns {boolean} - */ -daikon.Tag.prototype.isPrivateData = function () { - /*jslint bitwise: true */ - return ((this.group & 1) === 1); -}; - - -/** - * Returns true if this tag contains private data that can be read. - * @returns {boolean} - */ -daikon.Tag.prototype.hasInterpretedPrivateData = function () { - return this.isPrivateData() && daikon.Utils.isString(this.value); -}; - - -/** - * Returns true if this tag is a sublist item. - * @returns {boolean} - */ -daikon.Tag.prototype.isSublistItem = function () { - return (this.group === daikon.Tag.TAG_SUBLIST_ITEM[0]) && (this.element === daikon.Tag.TAG_SUBLIST_ITEM[1]); -}; - - -/** - * Returns true if this tag is a sublist item delimiter. - * @returns {boolean} - */ -daikon.Tag.prototype.isSublistItemDelim = function () { - return (this.group === daikon.Tag.TAG_SUBLIST_ITEM_DELIM[0]) && (this.element === daikon.Tag.TAG_SUBLIST_ITEM_DELIM[1]); -}; - - -/** - * Returns true if this tag is a sequence delimiter. - * @returns {boolean} - */ -daikon.Tag.prototype.isSequenceDelim = function () { - return (this.group === daikon.Tag.TAG_SUBLIST_SEQ_DELIM[0]) && (this.element === daikon.Tag.TAG_SUBLIST_SEQ_DELIM[1]); -}; - - -/** - * Returns true if this is a meta length tag. - * @returns {boolean} - */ -daikon.Tag.prototype.isMetaLength = function () { - return (this.group === daikon.Tag.TAG_META_LENGTH[0]) && (this.element === daikon.Tag.TAG_META_LENGTH[1]); -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Tag; -} - -},{"./dictionary.js":37,"./siemens.js":45,"./utilities.js":47,"xss":34}],47:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -//var convertBytes = require('@wearemothership/dicom-character-set').convertBytes; -var daikon = daikon || {}; -daikon.Utils = daikon.Utils || {}; - - -daikon.Utils.crcTable = null; - - -/*** Static Pseudo-constants ***/ - -daikon.Utils.MAX_VALUE = 9007199254740991; -daikon.Utils.MIN_VALUE = -9007199254740991; - - - -/*** Static methods ***/ - -daikon.Utils.dec2hex = function (i) { - return (i + 0x10000).toString(16).substr(-4).toUpperCase(); -}; - - - -// http://stackoverflow.com/questions/966225/how-can-i-create-a-two-dimensional-array-in-javascript -daikon.Utils.createArray = function (length) { - var arr = new Array(length || 0), - i = length; - - if (arguments.length > 1) { - var args = Array.prototype.slice.call(arguments, 1); - while(i--) arr[length-1 - i] = daikon.Utils.createArray.apply(this, args); - } - - return arr; -}; - - -daikon.Utils.getStringAt = function (dataview, start, length, charset, vr) { - var str = "", ctr, ch; - - for (ctr = 0; ctr < length; ctr += 1) { - ch = dataview.getUint8(start + ctr); - - if (ch !== 0) { - str += String.fromCharCode(ch); + data[ctr] = null; + } + return dataConcat; + }; + daikon2.Image.prototype.getRLE = function() { + var encapTags, numTags, ctr, data = []; + encapTags = this.getEncapsulatedData(); + if (encapTags) { + numTags = encapTags.length; + for (ctr = 1; ctr < numTags; ctr += 1) { + if (encapTags[ctr].value) { + data.push(encapTags[ctr].value.buffer); + } } - } - - /* - @from wearemothership dicom-character-set - var strBuff = new Uint8Array(dataview.buffer, dataview.byteOffset + start, length); - var str = convertBytes(charset || "ISO 2022 IR 6", strBuff, {vr: vr} ); - while (str && str.charCodeAt(str.length - 1) === 0) { - str = str.slice(0,-1); - } - */ - return str; -}; - - - -daikon.Utils.trim = function (str) { - return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); -}; - - - -daikon.Utils.stripLeadingZeros = function (str) { - return str.replace(/^[0]+/g, ""); -}; - - - -daikon.Utils.safeParseInt = function (str) { - str = daikon.Utils.stripLeadingZeros(str); - if (str.length > 0) { - return parseInt(str, 10); - } - - return 0; -}; - - - -daikon.Utils.convertCamcelCaseToTitleCase = function (str) { - var result = str.replace(/([A-Z][a-z])/g, " $1"); - return daikon.Utils.trim(result.charAt(0).toUpperCase() + result.slice(1)); -}; - - - -daikon.Utils.safeParseFloat = function (str) { - str = daikon.Utils.stripLeadingZeros(str); - if (str.length > 0) { - return parseFloat(str); - } - - return 0; -}; - - -// http://stackoverflow.com/questions/8361086/convert-byte-array-to-numbers-in-javascript -daikon.Utils.bytesToDouble = function (data) { - var sign = (data[0] & 1<<7)>>7; - - var exponent = (((data[0] & 127) << 4) | (data[1]&(15<<4))>>4); - - if(exponent == 0) return 0; - if(exponent == 0x7ff) return (sign) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - - var mul = Math.pow(2,exponent - 1023 - 52); - var mantissa = data[7]+ - data[6]*Math.pow(2,8)+ - data[5]*Math.pow(2,8*2)+ - data[4]*Math.pow(2,8*3)+ - data[3]*Math.pow(2,8*4)+ - data[2]*Math.pow(2,8*5)+ - (data[1]&15)*Math.pow(2,8*6)+ - Math.pow(2,52); - - return Math.pow(-1,sign)*mantissa*mul; -}; - - - -daikon.Utils.concatArrayBuffers = function (buffer1, buffer2) { - var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength); - tmp.set(new Uint8Array(buffer1), 0); - tmp.set(new Uint8Array(buffer2), buffer1.byteLength); - return tmp.buffer; -}; - - - -daikon.Utils.concatArrayBuffers2 = function (buffers) { - var length = 0, offset = 0, ctr; - - for (ctr = 0; ctr < buffers.length; ctr += 1) { - length += buffers[ctr].byteLength; - } - - var tmp = new Uint8Array(length); - - for (ctr = 0; ctr < buffers.length; ctr += 1) { - tmp.set(new Uint8Array(buffers[ctr]), offset); - offset += buffers[ctr].byteLength; - - } - - return tmp.buffer; -}; - - - -daikon.Utils.fillBuffer = function (array, buffer, offset, numBytes) { - var ctr; - - if (numBytes === 1) { - for (ctr = 0; ctr < array.length; ctr+=1) { - buffer.setUint8(offset + ctr, array[ctr]); + } + return data; + }; + daikon2.Image.prototype.getAllInterpretedPrivateData = function() { + var ctr, key2, tag, str = ""; + var sorted_keys = Object.keys(this.tags).sort(); + for (ctr = 0; ctr < sorted_keys.length; ctr += 1) { + key2 = sorted_keys[ctr]; + if (this.tags.hasOwnProperty(key2)) { + tag = this.tags[key2]; + if (tag.hasInterpretedPrivateData()) { + str += tag.value; + } + } + } + return str; + }; + daikon2.Image.prototype.toString = function() { + var ctr, tag, key2, str = ""; + var sorted_keys = Object.keys(this.tags).sort(); + for (ctr = 0; ctr < sorted_keys.length; ctr += 1) { + key2 = sorted_keys[ctr]; + if (this.tags.hasOwnProperty(key2)) { + tag = this.tags[key2]; + str += tag.toHTMLString() + "
"; + } + } + str = str.replace(/\n\s*\n/g, "\n"); + str = str.replace(/(?:\r\n|\r|\n)/g, "
"); + return str; + }; + daikon2.Image.prototype.getPalleteValues = function(tagID) { + var valsBig, valsLittle, value, numVals, ctr, valsBigMax, valsBigMin, valsLittleMax, valsLittleMin, valsBigDiff, valsLittleDiff; + valsBig = null; + valsLittle = null; + value = daikon2.Image.getValueSafely(this.getTag(tagID[0], tagID[1])); + if (value !== null) { + numVals = value.buffer.byteLength / 2; + valsBig = []; + valsLittle = []; + for (ctr = 0; ctr < numVals; ctr += 1) { + valsBig[ctr] = value.getUint16(ctr * 2, false) & 65535; + valsLittle[ctr] = value.getUint16(ctr * 2, true) & 65535; + } + valsBigMax = Math.max.apply(Math, valsBig); + valsBigMin = Math.min.apply(Math, valsBig); + valsLittleMax = Math.max.apply(Math, valsLittle); + valsLittleMin = Math.min.apply(Math, valsLittle); + valsBigDiff = Math.abs(valsBigMax - valsBigMin); + valsLittleDiff = Math.abs(valsLittleMax - valsLittleMin); + if (valsBigDiff < valsLittleDiff) { + return this.scalePalette(valsBig); + } else { + return this.scalePalette(valsLittle); } - } else if (numBytes === 2) { - for (ctr = 0; ctr < array.length; ctr+=1) { - buffer.setUint16(offset + (ctr * 2), array[ctr], true); + } + return null; + }; + daikon2.Image.prototype.scalePalette = function(pal) { + var min, max, ctr, slope, intercept; + max = Math.max.apply(Math, pal); + min = Math.min.apply(Math, pal); + if (max > 255 || min < 0) { + slope = 255 / (max - min); + intercept = min; + for (ctr = 0; ctr < pal.length; ctr += 1) { + pal[ctr] = parseInt(Math.round((pal[ctr] - intercept) * slope)); } + } + return pal; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Image; } -}; - - - -daikon.Utils.fillBufferRGB = function (array, buffer, offset) { - var r, g, b, ctr, numElements = (parseInt(array.length / 3)); - - for (ctr = 0; ctr < numElements; ctr+=1) { - r = array[ctr * 3]; - g = array[ctr * 3 + 1]; - b = array[ctr * 3 + 2]; + } +}); - buffer.setUint8(offset + ctr, parseInt((r + b + g) / 3), true); +// src/iterator.js +var require_iterator = __commonJS({ + "src/iterator.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.OrderedMapIterator = daikon2.OrderedMapIterator || function(orderedMap) { + this.orderedMap = orderedMap; + this.index = 0; + }; + daikon2.OrderedMapIterator.prototype.hasNext = function() { + return this.index < this.orderedMap.orderedKeys.length; + }; + daikon2.OrderedMapIterator.prototype.next = function() { + var item = this.orderedMap.get(this.orderedMap.orderedKeys[this.index]); + this.index += 1; + return item; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.OrderedMapIterator; } -}; - - + } +}); -daikon.Utils.bind = function (scope, fn, args, appendArgs) { - if (arguments.length === 2) { - return function () { - return fn.apply(scope, arguments); - }; +// src/orderedmap.js +var require_orderedmap = __commonJS({ + "src/orderedmap.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.OrderedMapIterator = daikon2.OrderedMapIterator || (typeof require !== "undefined" ? require_iterator() : null); + daikon2.OrderedMap = daikon2.OrderedMap || function() { + this.map = {}; + this.orderedKeys = []; + }; + daikon2.OrderedMap.prototype.put = function(key2, value) { + if (key2 in this.map) { + this.map[key2] = value; + } else { + this.orderedKeys.push(key2); + this.orderedKeys.sort(function(a, b) { + return parseFloat(a) - parseFloat(b); + }); + this.map[key2] = value; + } + }; + daikon2.OrderedMap.prototype.remove = function(key2) { + var index = this.orderedKeys.indexOf(key2); + if (index === -1) { + throw new Error("key does not exist"); + } + this.orderedKeys.splice(index, 1); + delete this.map[key2]; + }; + daikon2.OrderedMap.prototype.get = function(key2) { + if (key2 in this.map) { + return this.map[key2]; + } + return null; + }; + daikon2.OrderedMap.prototype.iterator = function() { + return new daikon2.OrderedMapIterator(this); + }; + daikon2.OrderedMap.prototype.getOrderedValues = function() { + var orderedValues = [], it = this.iterator(); + while (it.hasNext()) { + orderedValues.push(it.next()); + } + return orderedValues; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.OrderedMap; } + } +}); - var method = fn, - slice = Array.prototype.slice; - - return function () { - var callArgs = args || arguments; - - if (appendArgs === true) { - callArgs = slice.call(arguments, 0); - callArgs = callArgs.concat(args); - } else if (typeof appendArgs === 'number') { - callArgs = slice.call(arguments, 0); // copy arguments first - Ext.Array.insert(callArgs, appendArgs, args); +// src/series.js +var require_series = __commonJS({ + "src/series.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + daikon2.Image = daikon2.Image || (typeof require !== "undefined" ? require_image() : null); + daikon2.OrderedMap = daikon2.OrderedMap || (typeof require !== "undefined" ? require_orderedmap() : null); + daikon2.OrderedMapIterator = daikon2.OrderedMapIterator || (typeof require !== "undefined" ? require_iterator() : null); + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Series = daikon2.Series || function() { + this.images = []; + this.imagesOriginalOrder = null; + this.isMosaic = false; + this.isElscint = false; + this.isCompressed = false; + this.numberOfFrames = 0; + this.numberOfFramesInFile = 0; + this.isMultiFrame = false; + this.isMultiFrameVolume = false; + this.isMultiFrameTimeseries = false; + this.isImplicitTimeseries = false; + this.sliceSense = false; + this.sliceDir = daikon2.Image.SLICE_DIRECTION_UNKNOWN; + this.error = null; + }; + daikon2.Series.parserError = null; + daikon2.Series.useExplicitOrdering = false; + daikon2.Series.useExplicitSpacing = 0; + daikon2.Series.parseImage = function(data) { + var parser, image; + parser = new daikon2.Parser(); + image = parser.parse(data); + if (parser.hasError()) { + daikon2.Series.parserError = parser.error; + return null; + } + if (parser.inflated) { + image.inflated = parser.inflated; + } + return image; + }; + daikon2.Series.getMosaicOffset = function(mosaicCols, mosaicColWidth, mosaicRowHeight, mosaicWidth, xLocVal, yLocVal, zLocVal) { + var xLoc, yLoc, zLoc; + xLoc = xLocVal; + yLoc = yLocVal; + zLoc = zLocVal; + xLoc = zLoc % mosaicCols * mosaicColWidth + xLoc; + yLoc = (parseInt(zLoc / mosaicCols) * mosaicRowHeight + yLoc) * mosaicWidth; + return xLoc + yLoc; + }; + daikon2.Series.orderDicoms = function(images, numFrames, sliceDir) { + var hasImagePosition, hasSliceLocation, hasImageNumber, timeMap, timeIt, ctr, ctrIn, dg, ordered, imagesOrderedByTimeAndSpace; + hasImagePosition = images[0].getImagePosition() !== null; + hasSliceLocation = images[0].getSliceLocation() !== null; + hasImageNumber = images[0].getImageNumber() !== null; + timeMap = daikon2.Series.orderByTime(images, numFrames, sliceDir, hasImagePosition, hasSliceLocation); + timeIt = timeMap.orderedKeys; + imagesOrderedByTimeAndSpace = []; + for (ctr = 0; ctr < timeIt.length; ctr += 1) { + dg = timeMap.get(timeIt[ctr]); + if (hasImagePosition) { + ordered = daikon2.Series.orderByImagePosition(dg, sliceDir); + } else if (hasSliceLocation) { + ordered = daikon2.Series.orderBySliceLocation(dg); + } else if (hasImageNumber) { + ordered = daikon2.Series.orderByImageNumber(dg); + } else { + ordered = dg; } - - return method.apply(scope || window, callArgs); + for (ctrIn = 0; ctrIn < ordered.length; ctrIn += 1) { + imagesOrderedByTimeAndSpace.push(ordered[ctrIn]); + } + } + for (ctrIn = 0; ctrIn < imagesOrderedByTimeAndSpace.length; ctrIn += 1) { + imagesOrderedByTimeAndSpace[ctrIn].index = ctrIn; + } + return imagesOrderedByTimeAndSpace; }; -}; - - - -daikon.Utils.toArrayBuffer = function (buffer) { - var ab, view, i; - - ab = new ArrayBuffer(buffer.length); - view = new Uint8Array(ab); - for (i = 0; i < buffer.length; i += 1) { - view[i] = buffer[i]; - } - return ab; -}; - - - -// http://stackoverflow.com/questions/203739/why-does-instanceof-return-false-for-some-literals -daikon.Utils.isString = function (s) { - return typeof(s) === 'string' || s instanceof String; -}; - - - -// http://stackoverflow.com/questions/1353684/detecting-an-invalid-date-date-instance-in-javascript -daikon.Utils.isValidDate = function(d) { - if (Object.prototype.toString.call(d) === "[object Date]") { - if (isNaN(d.getTime())) { - return false; + daikon2.Series.orderByImagePosition = function(images, sliceDir) { + var dicomMap, ctr; + dicomMap = new daikon2.OrderedMap(); + for (ctr = 0; ctr < images.length; ctr += 1) { + dicomMap.put(images[ctr].getImagePositionSliceDir(sliceDir), images[ctr]); + } + return dicomMap.getOrderedValues(); + }; + daikon2.Series.orderBySliceLocation = function(images) { + var dicomMap, ctr; + dicomMap = new daikon2.OrderedMap(); + for (ctr = 0; ctr < images.length; ctr += 1) { + dicomMap.put(images[ctr].getSliceLocation(), images[ctr]); + } + return dicomMap.getOrderedValues(); + }; + daikon2.Series.orderByImageNumber = function(images) { + var dicomMap, ctr; + dicomMap = new daikon2.OrderedMap(); + for (ctr = 0; ctr < images.length; ctr += 1) { + dicomMap.put(images[ctr].getImageNumber(), images[ctr]); + } + return dicomMap.getOrderedValues(); + }; + daikon2.Series.hasMatchingSlice = function(dg, image, sliceDir, doImagePos, doSliceLoc) { + var matchingNum = 0, ctr, current, imagePos, sliceLoc, imageNum; + if (doImagePos) { + matchingNum = image.getImagePositionSliceDir(sliceDir); + } else if (doSliceLoc) { + matchingNum = image.getSliceLocation(); + } else { + matchingNum = image.getImageNumber(); + } + for (ctr = 0; ctr < dg.length; ctr += 1) { + current = dg[ctr]; + if (doImagePos) { + imagePos = current.getImagePositionSliceDir(sliceDir); + if (imagePos === matchingNum) { + return true; + } + } else if (doSliceLoc) { + sliceLoc = current.getSliceLocation(); + if (sliceLoc === matchingNum) { + return true; + } } else { + imageNum = current.getImageNumber(); + if (imageNum === matchingNum) { return true; + } } - } else { - return false; - } -}; - - - -daikon.Utils.swap32 = function (val) { - /*jslint bitwise: true */ - return ((val & 0xFF) << 24) | ((val & 0xFF00) << 8) | ((val >> 8) & 0xFF00) | ((val >> 24) & 0xFF); -}; - - - -daikon.Utils.swap16 = function (val) { - /*jslint bitwise: true */ - return ((((val & 0xFF) << 8) | ((val >> 8) & 0xFF)) << 16) >> 16; // since JS uses 32-bit when bit shifting -}; - - -// http://stackoverflow.com/questions/18638900/javascript-crc32 -daikon.Utils.makeCRCTable = function(){ - var c; - var crcTable = []; - for(var n =0; n < 256; n++){ - c = n; - for(var k =0; k < 8; k++){ - c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + } + return false; + }; + daikon2.Series.orderByTime = function(images, numFrames, sliceDir, hasImagePosition, hasSliceLocation) { + var dicomMap, hasTemporalPosition, hasTemporalNumber, ctr, image, tempPos, dg, timeBySliceMap, imageNum, sliceMarker, slice, dicomsCopy, dicomsCopyIndex, sliceIt, timeIt, dgFound, it; + dicomMap = new daikon2.OrderedMap(); + hasTemporalPosition = numFrames > 1 && images[0].getTemporalPosition() !== null; + hasTemporalNumber = numFrames > 1 && images[0].getTemporalNumber() !== null && images[0].getTemporalNumber() === numFrames; + if (hasTemporalPosition && hasTemporalNumber) { + for (ctr = 0; ctr < images.length; ctr += 1) { + image = images[ctr]; + tempPos = image.getTemporalPosition(); + dg = dicomMap.get(tempPos); + if (!dg) { + dg = []; + dicomMap.put(tempPos, dg); + } + dg.push(image); } - crcTable[n] = c; - } - return crcTable; -}; - -daikon.Utils.crc32 = function(dataView) { - var crcTable = daikon.Utils.crcTable || (daikon.Utils.crcTable = daikon.Utils.makeCRCTable()); - var crc = 0 ^ (-1); - - for (var i = 0; i < dataView.byteLength; i++ ) { - crc = (crc >>> 8) ^ crcTable[(crc ^ dataView.getUint8(i)) & 0xFF]; + } else { + timeBySliceMap = new daikon2.OrderedMap(); + for (ctr = 0; ctr < images.length; ctr += 1) { + if (images[ctr] !== null) { + imageNum = images[ctr].getImageNumber(); + sliceMarker = ctr; + if (hasImagePosition) { + sliceMarker = images[ctr].getImagePositionSliceDir(sliceDir); + } else if (hasSliceLocation) { + sliceMarker = images[ctr].getSliceLocation(); + } + slice = timeBySliceMap.get(sliceMarker); + if (slice === null) { + slice = new daikon2.OrderedMap(); + timeBySliceMap.put(sliceMarker, slice); + } + slice.put(ctr, images[ctr]); + } + } + dicomsCopy = []; + dicomsCopyIndex = 0; + sliceIt = timeBySliceMap.iterator(); + while (sliceIt.hasNext()) { + slice = sliceIt.next(); + timeIt = slice.iterator(); + while (timeIt.hasNext()) { + dicomsCopy[dicomsCopyIndex] = timeIt.next(); + dicomsCopyIndex += 1; + } + } + for (ctr = 0; ctr < dicomsCopy.length; ctr += 1) { + if (dicomsCopy[ctr] !== null) { + dgFound = null; + it = dicomMap.iterator(); + while (it.hasNext()) { + dg = it.next(); + if (!daikon2.Series.hasMatchingSlice(dg, dicomsCopy[ctr], sliceDir, hasImagePosition, hasSliceLocation)) { + dgFound = dg; + break; + } + } + if (dgFound === null) { + dgFound = []; + dicomMap.put(dicomMap.orderedKeys.length, dgFound); + } + dgFound.push(dicomsCopy[ctr]); + } + } + } + return dicomMap; + }; + daikon2.Series.prototype.getOrder = function() { + var ctr, order = []; + for (ctr = 0; ctr < this.imagesOriginalOrder.length; ctr += 1) { + order[ctr] = this.imagesOriginalOrder[ctr].index; + } + return order; + }; + daikon2.Series.prototype.toString = function() { + return this.images[0].getSeriesId(); + }; + daikon2.Series.prototype.getName = function() { + var des = this.images[0].getSeriesDescription(); + var uid = this.images[0].getSeriesInstanceUID(); + if (des !== null) { + return des; + } + if (uid !== null) { + return uid; + } + return null; + }; + daikon2.Series.prototype.addImage = function(image) { + this.images.push(image); + }; + daikon2.Series.prototype.matchesSeries = function(image) { + if (this.images.length === 0) { + return true; + } + return this.images[0].getSeriesId() === image.getSeriesId(); + }; + daikon2.Series.prototype.buildSeries = function() { + var hasFrameTime, ctr, sliceLoc, orderedImages, sliceLocationFirst, sliceLocationLast, sliceLocDiff, sliceLocations, orientation, imagePos; + this.isMosaic = this.images[0].isMosaic(); + this.isElscint = this.images[0].isElscint(); + this.isCompressed = this.images[0].isCompressed(); + this.numberOfFrames = this.images[0].getNumberOfFrames(); + this.numberOfFramesInFile = this.images[0].getNumberOfImplicitFrames(); + this.isMultiFrame = this.numberOfFrames > 1 || this.isMosaic && this.images[0].length > 1; + this.isMultiFrameVolume = false; + this.isMultiFrameTimeseries = false; + this.isImplicitTimeseries = false; + if (this.isMultiFrame) { + hasFrameTime = this.images[0].getFrameTime() > 0; + if (this.isMosaic) { + this.isMultiFrameTimeseries = true; + } else { + if (hasFrameTime) { + this.isMultiFrameTimeseries = true; + } else if (this.numberOfFramesInFile > 1) { + this.isMultiFrameTimeseries = true; + this.numberOfFrames = this.images.length; + } else { + this.isMultiFrameVolume = true; + } + } + } + if (!this.isMosaic && this.numberOfFrames <= 1) { + imagePos = this.images[0].getImagePosition() || []; + sliceLoc = imagePos.toString(); + this.numberOfFrames = 0; + for (ctr = 0; ctr < this.images.length; ctr += 1) { + imagePos = this.images[ctr].getImagePosition() || []; + if (imagePos.toString() === sliceLoc) { + this.numberOfFrames += 1; + } + } + if (this.numberOfFrames > 1) { + this.isImplicitTimeseries = true; + } + } + this.sliceDir = this.images[0].getAcquiredSliceDirection(); + if (daikon2.Series.useExplicitOrdering) { + orderedImages = this.images.slice(); + } else { + orderedImages = daikon2.Series.orderDicoms(this.images, this.numberOfFrames, this.sliceDir); + } + sliceLocationFirst = orderedImages[0].getImagePositionSliceDir(this.sliceDir); + sliceLocationLast = orderedImages[orderedImages.length - 1].getImagePositionSliceDir(this.sliceDir); + sliceLocDiff = sliceLocationLast - sliceLocationFirst; + if (daikon2.Series.useExplicitOrdering) { + this.sliceSense = false; + } else if (this.isMosaic) { + this.sliceSense = true; + } else if (this.isMultiFrame) { + sliceLocations = orderedImages[0].getSliceLocationVector(); + if (sliceLocations !== null) { + orientation = orderedImages[0].getOrientation(); + if (orientation.charAt(2) === "Z") { + this.sliceSense = sliceLocations[0] - sliceLocations[sliceLocations.length - 1] < 0; + } else { + this.sliceSense = sliceLocations[0] - sliceLocations[sliceLocations.length - 1] > 0; + } + } else { + this.sliceSense = sliceLocationFirst < 0 ? false : true; + } + } else { + if (this.sliceDir === daikon2.Image.SLICE_DIRECTION_SAGITTAL || this.sliceDir === daikon2.Image.SLICE_DIRECTION_CORONAL) { + if (sliceLocDiff > 0) { + this.sliceSense = false; + } else { + this.sliceSense = true; + } + } else { + if (sliceLocDiff > 0) { + this.sliceSense = true; + } else { + this.sliceSense = false; + } + } + } + this.imagesOriginalOrder = this.images; + this.images = orderedImages; + }; + daikon2.Series.prototype.concatenateImageData = function(progressMeter, onFinishedImageRead) { + var buffer2, data, length; + if (this.isMosaic) { + data = this.getMosaicData(this.images[0], this.images[0].getPixelDataBytes()); + } else { + data = this.images[0].getPixelDataBytes(); + } + length = this.validatePixelDataLength(this.images[0]); + this.images[0].clearPixelData(); + buffer2 = new Uint8Array(new ArrayBuffer(length * this.images.length)); + buffer2.set(new Uint8Array(data, 0, length), 0); + setTimeout(daikon2.Utils.bind(this, function() { + this.concatenateNextImageData(buffer2, length, progressMeter, 1, onFinishedImageRead); + }), 0); + }; + daikon2.Series.prototype.concatenateNextImageData = function(buffer2, frameSize, progressMeter, index, onFinishedImageRead) { + var data, length; + if (index >= this.images.length) { + if (progressMeter) { + progressMeter.drawProgress(1, "Reading DICOM Images"); + } + onFinishedImageRead(buffer2.buffer); + } else { + if (progressMeter) { + progressMeter.drawProgress(index / this.images.length, "Reading DICOM Images"); + } + if (this.isMosaic) { + data = this.getMosaicData(this.images[index], this.images[index].getPixelDataBytes()); + } else { + data = this.images[index].getPixelDataBytes(); + } + length = this.validatePixelDataLength(this.images[index]); + this.images[index].clearPixelData(); + buffer2.set(new Uint8Array(data, 0, length), frameSize * index); + setTimeout(daikon2.Utils.bind(this, function() { + this.concatenateNextImageData( + buffer2, + frameSize, + progressMeter, + index + 1, + onFinishedImageRead + ); + }), 0); + } + }; + daikon2.Series.prototype.validatePixelDataLength = function(image) { + var length = image.getPixelDataBytes().byteLength, sliceLength = image.getCols() * image.getRows(); + if (length % sliceLength === 0) { + return length; + } + return sliceLength * image.getNumberOfFrames() * image.getNumberOfSamplesPerPixel() * (image.getBitsAllocated() / 8); + }; + daikon2.Series.prototype.getMosaicData = function(image, data) { + var mosaicWidth, mosaicHeight, mosaicRows, mosaicCols, mosaicRowHeight, mosaicColWidth, numBytes, ctrS, ctrR, ctrC, numSlices, numRows, numCols, buffer2, dataTyped, offset, ctr, index = 0; + numBytes = parseInt(this.images[0].getBitsAllocated() / 8); + numSlices = this.images[0].getMosaicCols() * this.images[0].getMosaicRows(); + numRows = parseInt(this.images[0].getRows() / this.images[0].getMosaicRows()); + numCols = parseInt(this.images[0].getCols() / this.images[0].getMosaicCols()); + mosaicWidth = this.images[0].getCols(); + mosaicHeight = this.images[0].getRows(); + mosaicRows = this.images[0].getMosaicRows(); + mosaicCols = this.images[0].getMosaicCols(); + mosaicRowHeight = parseInt(mosaicHeight / mosaicRows); + mosaicColWidth = parseInt(mosaicWidth / mosaicCols); + buffer2 = new Uint8Array(new ArrayBuffer(numSlices * numRows * numCols * numBytes)); + dataTyped = new Uint8Array(data); + for (ctrS = 0; ctrS < numSlices; ctrS += 1) { + for (ctrR = 0; ctrR < numRows; ctrR += 1) { + for (ctrC = 0; ctrC < numCols; ctrC += 1) { + offset = daikon2.Series.getMosaicOffset( + mosaicCols, + mosaicColWidth, + mosaicRowHeight, + mosaicWidth, + ctrC, + ctrR, + ctrS + ); + for (ctr = 0; ctr < numBytes; ctr += 1) { + buffer2[index] = dataTyped[offset * numBytes + ctr]; + index += 1; + } + } + } + } + return buffer2.buffer; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Series; } + } +}); - return (crc ^ (-1)) >>> 0; -}; - +// src/main.js +var daikon = daikon || {}; +daikon.CompressionUtils = daikon.CompressionUtils || (typeof require !== "undefined" ? require_compression_utils() : null); +daikon.Dictionary = daikon.Dictionary || (typeof require !== "undefined" ? require_dictionary() : null); +daikon.Image = daikon.Image || (typeof require !== "undefined" ? require_image() : null); +daikon.OrderedMapIterator = daikon.OrderedMapIterator || (typeof require !== "undefined" ? require_iterator() : null); +daikon.OrderedMap = daikon.OrderedMap || (typeof require !== "undefined" ? require_orderedmap() : null); +daikon.Parser = daikon.Parser || (typeof require !== "undefined" ? require_parser3() : null); +daikon.RLE = daikon.RLE || (typeof require !== "undefined" ? require_rle() : null); +daikon.Series = daikon.Series || (typeof require !== "undefined" ? require_series() : null); +daikon.Tag = daikon.Tag || (typeof require !== "undefined" ? require_tag() : null); +daikon.Utils = daikon.Utils || (typeof require !== "undefined" ? require_utilities() : null); +daikon.Siemens = daikon.Siemens || (typeof require !== "undefined" ? require_siemens() : null); +var jpeg = jpeg || {}; +jpeg.lossless = jpeg.lossless || {}; +jpeg.lossless.Decoder = typeof require !== "undefined" ? require_main() : null; +var JpegDecoder = JpegDecoder || (typeof require !== "undefined" ? require_jpeg_baseline().JpegImage : null); +var JpxImage = JpxImage || (typeof require !== "undefined" ? require_jpx() : null); +var CharLS2 = CharLS2 || (typeof require !== "undefined" ? require_charLS_DynamicMemory_browser() : null); +var JpegLSDecoder = JpegLSDecoder || (typeof require !== "undefined" ? require_jpeg_ls() : null); +var pako = pako || (typeof require !== "undefined" ? require_pako() : null); +var moduleType2 = typeof module; +if (moduleType2 !== "undefined" && module.exports) { + module.exports = daikon; +} +/*! image-JPEG2000 - v0.3.1 - 2015-08-26 | https://github.com/OHIF/image-JPEG2000 */ +/*! CharLS.js - v2.0.1 - 2016-06-08 | (c) 2016 Chris Hafey | https://github.com/chafey/charls */ +/*! + Copyright (c) 2007-2010, Jan de Vaan + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: -daikon.Utils.createBitMask = function (numBytes, bitsStored, unsigned) { - var mask = 0xFFFFFFFF; - mask >>>= (((4 - numBytes) * 8) + ((numBytes * 8) - bitsStored)); + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. - if (unsigned) { - if (numBytes == 1) { - mask &= 0x000000FF; - } else if (numBytes == 2) { - mask &= 0x0000FFFF; - } else if (numBytes == 4) { - mask &= 0xFFFFFFFF; - } else if (numBytes == 8) { - mask = 0xFFFFFFFF; - } - } else { - mask = 0xFFFFFFFF; - } + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. - return mask; -}; + * Neither the name of my employer, nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/*! + The MIT License (MIT) + Copyright (c) 2014 Chris Hafey (chafey@gmail.com) -/*** Exports ***/ + 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: -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Utils; -} + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. -},{}]},{},[40])(40) -}); + 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. + */